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.
pip install libreyoloVorhersage
Die Gewichte werden beim ersten Aufruf von Hugging Face geladen und lokal zwischengespeichert.
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)libreyolo predict model=LibreBiRefNetl-matte.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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.
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
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| matte | matte to ONNX: unterstützt | matte to TorchScript: unterstützt | matte to ExecuTorch: nicht unterstützt | matte to TensorRT: nicht unterstützt | matte to OpenVINO: nicht unterstützt | matte to Paddle: nicht unterstützt | matte to MNN: nicht unterstützt | matte to RKNN: nicht unterstützt | matte to ncnn: nicht unterstützt | matte to TFLite: nicht unterstützt | matte to CoreML: nicht unterstützt | matte 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreBiRefNetl-matte.pt")model.export(format="onnx")libreyolo export model=LibreBiRefNetl-matte.pt format=onnxfrom 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.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| matte | ||
| LibreBiRefNetl-matte.pt | mit | |
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
- Upstream-Quelle
- github.com/ZhengPeng7/BiRefNet
- 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.