BiRefNet

Ein bilaterales Referenznetz, das eine weiche Alpha-Matte vorhersagt und damit ein Motiv von seinem Hintergrund trennt. LibreYOLO liefert Inferenz und Validierung für den matte-Task von BiRefNet.

Aufgaben
matte
Größen
t, l at 1024 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
BiRefNet von Nankai University, MIT. Publikation, Quelle
Lizenzen
Code MIT, Gewichte MIT. Kommerzielle Nutzung

Installation

BiRefNet braucht kein optionales Extra. Alles, was es importiert, steckt in der Basisinstallation.

bash
pip install libreyolo

Vorhersage

Die Gewichte werden beim ersten Aufruf von Hugging Face geladen und lokal zwischengespeichert.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE, save=True) matte = result.matteprint(matte.array.shape, matte.array.dtype)
CLI
libreyolo predict model=LibreBiRefNetl-matte.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Freisteller
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreBiRefNetl-matte.pt")result = model(SAMPLE_IMAGE) # RGBA (H, W, 4) uint8: Quell-RGB plus die Matte als Alphakanal.rgba = result.cutout()result.save("subject.png")

Ein Matte-Ergebnis trägt keine Boxen; result.matte ist ein dichtes float32-Array der Form (H, W) in [0, 1], wobei 1 vollständig Vordergrund und 0 vollständig Hintergrund bedeutet. Anders als eine binäre Maske behält die weiche Matte kantengeglättete Details wie Haare und Fell. result.cutout() setzt das Quellbild mit diesem Alphakanal zu einem RGBA-Array zusammen, und result.save(path) (oder save=True beim Vorhersageaufruf) schreibt es direkt in ein PNG mit transparentem Hintergrund. Das Modell arbeitet mit einer festen nativen Canvas-Größe von 1024x1024; eine andere Auflösung wird nicht unterstützt, weil die Tabellen für relative Positionen des Swin-Backbones daran gebunden sind und eine Abweichung sie schlecht interpoliert, statt einen Fehler auszulösen. Siehe Vorhersage für Quellen, Streaming und den Umgang mit Ergebnissen.

Varianten

Ein veröffentlichter Checkpoint, l, das BiRefNet-general-Modell der Swin-L-Stufe und upstream die Standardwahl für Qualität. Der Code der Familie unterstützt außerdem eine Swin-T-Lite-Stufe, t, aber dafür ist noch keine LibreYOLO-Konvertierung veröffentlicht.

Validierung

val() meldet zwei Metriken über einen gepaarten Ordner aus Bildern und Matten, beide in [0, 1] und unabhängig von der Auflösung: MAE, den mittleren absoluten Fehler gegenüber dem Alpha der Ground Truth (niedriger ist besser), und S-measure (Fan et al., ICCV 2017), eine strukturelle Ähnlichkeit, die es honoriert, wenn Form und Löcher des Motivs erhalten bleiben, was der reine Pixel-MAE übersieht (höher ist besser). Die Validierung läuft über das predict des Modells selbst und nutzt damit exakt das Preprocessing der Familie.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt") # Statt einer Datensatz-YAML funktioniert auch ein Verzeichnis mit# images/ und einem automatisch erkannten Matte-Verzeichnis# (mattes/, matte/, gt/, masks/, mask/ oder alpha/).metrics = model.val(data="my-matte-dataset/") print(metrics["metrics/MAE"])print(metrics["metrics/Smeasure"])

Die Validierung ist reine Inferenz; Fine-Tuning ist ein dokumentierter nächster Schritt und keine ausgelieferte Funktion (siehe Vorhersage für die genaue Auflösungsbeschränkung, die jeder künftige Trainer erben würde).

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
mattematte to ONNX: unterstütztmatte to TorchScript: unterstütztmatte to ExecuTorch: nicht unterstütztmatte to TensorRT: nicht unterstütztmatte to OpenVINO: nicht unterstütztmatte to Paddle: nicht unterstütztmatte to MNN: nicht unterstütztmatte to RKNN: nicht unterstütztmatte to ncnn: nicht unterstütztmatte to TFLite: nicht unterstütztmatte to CoreML: nicht unterstütztmatte to Core AI: nicht unterstützt

Ein exportiertes Artefakt lädt über LibreYOLO() anhand seiner Dateiendung wieder, eine .onnx-Datei verhält sich also wie ein Checkpoint und liefert dasselbe Results. TorchScript ist der validierte Weg; die ONNX-Konvertierung läuft, hat aber dieselbe Paritätshürde nicht genommen. Export listet die Argumente auf, die jedes Format akzeptiert, und die Extras, die einige davon hinzufügen.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt")model.export(format="onnx")
CLI
libreyolo export model=LibreBiRefNetl-matte.pt format=onnx
Die exportierte Datei nutzen
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory routet über die Dateiendung, ein exportiertes Artefakt# lädt also wie jeder Checkpoint und liefert dasselbe Results-Objekt.model = LibreYOLO("LibreBiRefNetl-matte.onnx")result = model(SAMPLE_IMAGE) print(result.matte.array.shape)

Checkpoints

Jede veröffentlichte Gewichtsdatei dieser Familie.

DateiEingabe (px)Lizenz der Gewichte
matte
LibreBiRefNetl-matte.ptmit

Jede oben aufgeführte Datei ist heute in der LibreYOLO-Organisation verfügbar und wird bei der ersten Verwendung heruntergeladen.

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
BiRefNet, Nankai University
Upstream-Lizenz
MIT
LibreYOLO-Code
MIT
Gewichte
MIT, erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
MIT is a permissive license, so these weights can be used in commercial and closed-source products. The one standing obligation is to keep the license text and copyright notice with any copy you redistribute. It places no condition on your own application code. LibreYOLO's checkpoint is a format conversion of the official pretrained BiRefNet-general weights (the Swin-L, quality-default tier), with the learned parameters unchanged; fine-tuning is not wired into this library in v1, so there is no LibreYOLO-trained variant to license separately.

Zitieren

@article{zheng2024birefnet,
  title={Bilateral Reference for High-Resolution Dichotomous Image Segmentation},
  author={Zheng, Peng and Gao, Dehong and Fan, Deng-Ping and Liu, Li and Laaksonen, Jorma and Ouyang, Wanli and Sebe, Nicu},
  journal={CAAI Artificial Intelligence Research},
  volume = {3},
  pages = {9150038},
  year={2024}
}

Aus dem Zitierblock der Autoren unter github.com/ZhengPeng7/BiRefNet#citation kopiert.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.