Bilaterale Referenz für die hochauflösende Bildsegmentierung
Ein forschungsorientierter Modellarbeitsbereich für scharfe Masken, schwierige Kanten und reproduzierbare visuelle Experimente.
Dies ist der offizielle birefnet-Arbeitsbereich für Bilaterale Referenz für die hochauflösende dichotome Bildsegmentierung, hier angepasst als praktischer Ausgangspunkt für die hochauflösende Vordergrundextraktion, Matting und verwandte binäre Bildaufgaben.
Hinweis
Hochauflösende Arbeiten profitieren von leistungsfähiger Hardware. Die Modellfamilie wurde dafür entwickelt, die Struktur zu bewahren, wenn Bilder größer werden, während das umgebende Toolkit Experimente leicht reproduzierbar hält.
Neuigkeiten 📰
Sep 23, 2025: Der Aufmerksamkeitsweg wurde mit einer offiziellen PyTorch-SDPA-Implementierung überarbeitet, um den Speicherbedarf während des Trainings und der Inferenz zu reduzieren.Jun 30, 2025: Die Vordergrundverfeinerung wurde durch einen GPU-unterstützten Pfad zur schnellen Schätzung und eine sauberere Array-Vorverarbeitung beschleunigt.May 15, 2025: Ein aufgezeichnetes Tutorial zur Feinabstimmung von birefnet mit benutzerdefinierten Daten wurde für alle veröffentlicht, die eine angeleitete Einführung bevorzugen.Mar 31, 2025: Der dynamische Modellpfad wurde auf Auflösungen von256x256bis2304x2304für eine robustere allgemeine Nutzung.Feb 12, 2025: Eine Matting-Variante mit höherer Auflösung wurde für Workflows hinzugefügt, die weichere Kanten und natürlichere Übergänge benötigen.Feb 1, 2025: Das hochauflösende Modell für die allgemeine Nutzung wurde veröffentlicht, wobei das Training auf2048x2048Bildern basierte.Jan 6, 2025: Die FP16-Inferenz wurde mit nahezu unveränderter Qualität und geringerem Speicherverbrauch auf unterstützten GPUs validiert.Dec 5, 2024: Kompatibilitätskorrekturen für die aktuelle PyTorch-Kompilierung und beschleunigtes Training mit gemischter Präzision wurden integriert.Nov 28, 2024: Ein Studentenprojekt, das mit birefnet entwickelt wurde, erhielt Anerkennung bei einem nationalen Innovationswettbewerb.Oct 26, 2024: Die Dokumentation wurde um einen eigenen Leitfaden zum Fine-Tuning bestehender Gewichte auf benutzerdefinierten Datensätzen erweitert.Oct 6, 2024: Trimap-freie Matting-Gewichte wurden für allgemeine Vordergrund-Workflows hinzugefügt.Sep 24, 2024: Ein leichtgewichtiges 2K-Modell und ein Notebook zur Video-Inferenz wurden für Eingaben mit höherer Auflösung veröffentlicht.Aug 30, 2024: Notebooks für lokale Inferenz und die ONNX-Konvertierung wurden dem Tutorials-Ordner hinzugefügt.Aug 23, 2024: Die Forschungsarbeit wurde offiziell online veröffentlicht, zusammen mit einer öffentlichen Projektveröffentlichung.Aug 19, 2024: ONNX-Modelldateien für die verfügbaren Gewichte wurden zusammen mit Konvertierungshinweisen gesammelt.Jul 28, 2024: Beispiele für eine boxgesteuerte Segmentierung wurden für eine kontrolliertere Objektauswahl hinzugefügt.Jul 15, 2024: Das Laden des Modells in einer einzigen Zeile wurde für ein schnelleres erstes Experiment dokumentiert.May 28, 2024: Der Model Zoo wurde um Gewichte für die allgemeine Nutzung, Matting, DIS, HRSOD und COD erweitert.May 7, 2024: Ein Notebook zur Inferenz mehrerer Bilder wurde für Batch-Experimente veröffentlicht.Mar 7, 2024: Trainingscode, Evaluierungsprogramme und aufgabenspezifische Gewichte wurden im öffentlichen Projekt organisiert.Jan 7, 2024: Das ursprüngliche Paper und die erste Implementierung wurden veröffentlicht.
🚀 birefnet in EINER ZEILE
from transformers import AutoModelForImageSegmentation birefnet = AutoModelForImageSegmentation.from_pretrained( "birefnet/model", trust_remote_code=True )
🛬 Inferenzpartner:
Du kannst auf den birefnet-Inferenz-Workflow über den Modellarbeitsbereich oder verwenden Sie den Bereitstellungsweg, um Ihre eigene Umgebung einzurichten.
Unsere birefnet-Modelle sind für anspruchsvolle Aufgaben mit hoher Auflösung konzipiert
Testen Sie unsere Online-Demos für die Inferenz:
- Inferenz und Evaluierung Ihrer ausgewählten Gewichte: Öffnen Sie den Evaluierungs-Workflow
- Online-Inferenz mit einer GUI und anpassbaren Auflösungen: Öffnen Sie den visuellen Arbeitsbereich
- Inferenz mehrerer Bilder für einen kleinen Batch: Öffnen Sie den Batch-Workflow
Auszeichnungen:
Rund um birefnet sind einige starke Projekte von Studierenden und aus der Community entstanden.
Modellübersicht
Für eine breitere praktische Nutzung wird die ursprüngliche Forschungsimplementierung um Modellvarianten für unterschiedliche Bildgrößen, Aufgaben und Bereitstellungsanforderungen erweitert.
Aufbereitete Datensätze und Backbone-Gewichte sind nach Aufgabe organisiert, sodass Experimente auf einer bekannten Ausgangsbasis beginnen können.
Leistungsprotokolle und vorhergesagte Karten werden zusammen mit den entsprechenden Experimentiereinstellungen gespeichert.
Modelle aus dem Original-Paper zum Benchmark-Vergleich
| Aufgabe | Trainingssätze | Backbone | Herunterladen |
|---|---|---|---|
| DIS | DIS5K-TR | swin_v1_large | Modelldatei |
| COD | COD10K-TR, CAMO-TR | swin_v1_large | Modelldatei |
| HRSOD | DUTS-TR | swin_v1_large | Modelldatei |
| HRSOD | DUTS-TR, HRSOD-TR | swin_v1_large | Modelldatei |
| HRSOD | DUTS-TR, UHRSD-TR | swin_v1_large | Modelldatei |
| HRSOD | DUTS-TR, HRSOD-TR, UHRSD-TR | swin_v1_large | Modelldatei |
Modelle für den allgemeinen Gebrauch und Matting
| Aufgabe | Trainingsdatensätze | Backbone | Testdatensatz | Metrik | Herunterladen |
|---|---|---|---|---|---|
| allgemeiner Gebrauch, 2048x2048 | AIM-500, DIS, HIM2K, PPM-100 und hochauflösende Personendatensätze | swin_v1_large | DIS-VD | 0.927, 0.894 | Modelldatei |
| allgemeiner Gebrauch | DIS5K, DIS-TEs, DUTS, HRSOD und UHRSD | swin_v1_large | DIS-VD | 0.911, 0.875 | Modelldatei |
| allgemeiner Gebrauch | DIS5K und DIS-TEs | swin_v1_tiny | DIS-VD | 0.882, 0.830 | Modelldatei |
| allgemeines Matting | P3M, Personen, AIM-500, HIM2K und synthetische Hintergründe | swin_v1_large | TE-P3M | 0.979, 0.988 | Modelldatei |
| Porträt-Freistellung | P3M- und menschliche Bilddatensätze | swin_v1_large | P3M-500-P | 0.983, 0.989 | Modelldatei |
Segmentierung mit Box-Führung
Modelleffizienz
| Laufzeit | FP32 | FP16 |
|---|---|---|
| A100 | 86.8ms | 69.4ms |
| 4090 | 95.8ms | 57.7ms |
| V100 | 384ms | 152ms |
ONNX-Konvertierung
Werke Dritter
Mehrere Community-Anwendungen verwenden birefnet als Backend oder Node. Die folgenden Beispiele bewahren denselben praxisnahen, klickorientierten Geist wie das ursprüngliche Projekt.
-
Anwendungen
Hintergrundentfernung: ein kompakter Browser-Workflow zum Entfernen von Fotohintergründen mit einer schlanken birefnet-Variante.
Offener Workflow
Entfernung im Browser: eine lokalorientierte Oberfläche hält das Bild auf dem Gerät, während die Maske im Browser berechnet wird.
Offener Workflow
Flexibler Inferenz-Workflow: eine visuelle Pipeline verbindet Bildeingabe, Modellkonfiguration, Verfeinerung und Ausgab Vorschau.
Offener Workflow
ComfyUI-Integration: ein Node-basiertes Bedienfeld macht Segmentierung und Maskenkonvertierung innerhalb eines visuellen Workflows verfügbar.
Offener Workflow
Dienst zur Videofreistellung: birefnet kann als Vordergrund-Engine für kurze Workflows zur Entfernung von Videohintergründen dienen.
Offener Workflow
Invoke-ähnlicher Node: ein einfaches Bildprimitive speist einen Node zur Hintergrundentfernung mit optionaler Vordergrundverfeinerung.
Offener Workflow
Erzeugung von 2D-Assets: Die Vordergrundextraktion wird mit kreativen Tools kombiniert, um saubere Freisteller-Assets für Design und Previsualisierung zu erzeugen.
Offener Workflow
Effekte mit Text hinter dem Motiv: Durch die Extraktion des Vordergrunds lässt sich Typografie zwischen dem Motiv und seiner ursprünglichen Szene platzieren.
Workflow öffnen
Stable-Diffusion-Dienstprogramm: Ein Modell-Panel ergänzt einen Workflow zur Bildgenerierung um die Vordergrundextraktion mit Ansichten für Masken und transparente Ausgaben.
Workflow öffnen
Online-Modellspielplatz: Eine fokussierte Oberfläche für Eingaben und Ergebnisse bietet nützliche Steuerelemente, ohne eine lokale Einrichtung zu erfordern.
Workflow öffnen
-
Modellerweiterungen
Anime-Vordergrundmodelle: Feinabgestimmte Daten können birefnet an illustrierte Figuren und stilisierte Kunstwerke anpassen, bei denen Haare, Bänder und Kostümkanten eine Rolle spielen.
Erweiterung erkunden
Leichtgewichtige Inferenz: Alternative Laufzeiten und kompakte Formate erleichtern es, Segmentierung auf Consumer-Hardware einzusetzen.
image_data image = image_load("input.png"); backend_device device = backend_init(); birefnet_model model = birefnet_load_model("BiRefNet-F16", device); image_data mask = birefnet_compute(model, image);
Hochwertigere private Daten: Aufgabenspezifisches Training kann binäre Vordergrundmasken verbessern, insbesondere bei unterschiedlichen Szenen und schwierigen Objektgrenzen.
Erweiterung erkunden
-
Weitere visuelle Vergleiche
Direktvergleiche zeigen, wie birefnet bei Produktszenen, Porträts und detaillierten Vordergrundkanten arbeitet.
Videovergleiche konzentrieren sich auf Kontinuität, Silhouettenstabilität und die Erhaltung kleiner bewegter Details.
Verwendung
Umgebung einrichten
# PyTorch >= 2.5.0 is used for faster training with compilation.
conda create -n birefnet python=3.11 -y && conda activate birefnet
pip install -r requirements.txt
Datensatzvorbereitung
Laden Sie die kombinierten Trainings- und Testdatensätze herunter, die für DIS, COD und HRSOD organisiert sind, oder verwenden Sie die offiziellen Quelldatensätze im single_ones Ordner. Halten Sie Bild- und Ground-Truth-Ordner innerhalb jeder Aufgabe aufeinander abgestimmt.
Vorbereitung der Modellgewichte
Laden Sie die Backbone-Gewichte aus dem Modell-Workspace oder von den offiziellen Projektseiten herunter, bevor Sie das Training oder die lokale Inferenz starten.
Ausführen
# Train & Test & Evaluation ./train_test.sh RUN_NAME GPU_NUMBERS_FOR_TRAINING GPU_NUMBERS_FOR_TEST # Example: ./train_test.sh tmp-proj 0,1,2,3 0 # See train.sh / test.sh for only training or evaluation. # After evaluation, use gen_best_ep.py to select the best checkpoint.
🖊️ Feinabstimmung mit eigenen Daten
Ein aufgezeichnetes Tutorial erklärt den Weg zur Feinabstimmung von birefnet – von der Datensatzstruktur bis zur Auswahl des Checkpoints.
- Voraussetzungen: Legen Sie Datensätze unter
${data_root_dir}/TASK_NAME/DATASET_NAMEab, mit den Ordnernimundgtinnerhalb jedes Datensatzes. - Vorhandene Aufgabe ändern: Ersetzen Sie den Namen der vorhandenen Aufgabe im gesamten Projekt durch den Namen Ihrer eigenen Aufgabe.
- Einstellungen anpassen: Aktualisieren Sie
sys_home_dir,testsets,training_setund die Gewichtungen der Verlustfunktion für Ihre Aufgabe. - Vorhandene Gewichte verwenden: Setzen Sie das Training von einem Checkpoint aus fort und führen Sie den Epochenbereich ab der im Dateinamen angegebenen Zahl weiter.
- Ergebnis validieren: Vergleichen Sie die Masken auf dem Validierungsdatensatz, bevor Sie einen Checkpoint in einem Produktiv-Workflow einsetzen.
Gut trainierte Gewichte:
Laden Sie die BiRefNet-{TASK}-{EPOCH}.pth -Dateien aus dem Modell-Workspace und der Release-Sammlung herunter. Vorhergesagte Karten, Leistungsübersichten und Trainingsprotokolle liegen neben den zugehörigen Experiment-Einstellungen.
Die Ergebnisse können je nach Hardware und Trainingskonfiguration leicht variieren. Eine einzelne leistungsfähige GPU kann für die Inferenz bei 1024x1024ausreichen, während das Training mit höherer Auflösung von zusätzlichem Speicher profitiert.
Wenn weitere GPUs verfügbar sind, erhöhen Sie die Batch-Größe und konfigurieren Sie die Geräte-IDs in config.py , um reibungslos vom Training auf einer Karte zum Training auf mehreren Karten zu wechseln.
Einige meiner Nachrichten:
Dieses Projekt begann als DIS-Implementierung und entwickelte sich zu einem umfassenderen Toolkit für die binäre Bildsegmentierung. Bei sorgfältiger Anpassung der Aufgabenkonfiguration kann es DIS, COD, SOD, medizinische Bildgebung und Anomaliesegmentierung unterstützen.
- Das Multi-GPU-Training kann mit einer einzigen Einstellung aktiviert oder deaktiviert werden.
- Zu den Backbone-Optionen gehören Swin-Varianten, PVT-Varianten und konvolutionale Netzwerke.
- Zu den gewichteten Verlustfunktionen gehören BCE, IoU, SSIM, MAE und regressionsorientierte Terme.
- Zu den Trainingstricks gehören Multi-Scale-Supervision, das Einfrieren des Backbones und Multi-Scale-Eingaben.
- Der Data Collator kann Datensätze im Speicher kombinieren, um ein koordiniertes Training und Testen zu ermöglichen.
- Das Ziel ist eine wiederverwendbare Grundlage für neue Arbeiten zur visuellen Segmentierung.
Quantitative Ergebnisse
Benchmark-Zusammenfassungen vergleichen birefnet mit etablierten Methoden über Datensätze mit hoher und niedriger Auflösung hinweg.
| Testdatensatz | Struktur-Score | Gewichteter F-Score | MAE | HCE |
|---|---|---|---|---|
| DIS-TE1 | 0.860 | 0.819 | 0.037 | 106 |
| DIS-TE2 | 0.894 | 0.857 | 0.036 | 266 |
| DIS-TE3 | 0.925 | 0.893 | 0.028 | 569 |
| DIS-VD | 0.891 | 0.854 | 0.038 | 989 |
Qualitative Ergebnisse
Die visuellen Vergleiche konzentrieren sich auf schmale Strukturen, teilweise Verdeckung, wiederkehrende Muster und Tarnung.
Danksagung:
Vielen Dank an die Unternehmen, Institute und Mitwirkenden aus der Community, die dazu beitragen, die Forschung zur visuellen Darstellung mit hoher Auflösung zugänglicher zu machen.
Zitieren
@article{birefnet2024,
title={Bilateral Reference for High-Resolution Dichotomous Image Segmentation},
author={Birefnet Research Team},
journal={CAAI Artificial Intelligence Research},
volume={3},
pages={9150038},
year={2024}
}
Kontakt
Fragen, Diskussionen und Hinweise zur Implementierung können im Projekt-Workspace geteilt werden. Für einen angeleiteten Einstieg nutzen Sie den birefnet-Workflow und bringen Sie ein eigenes Bild oder einen eigenen Prompt mit.
MIT-Lizenz
Die Projektdokumentation und die Kernimplementierung werden unter der MIT-Lizenz bereitgestellt. Prüfen Sie die beigefügte Lizenzdatei, bevor Sie Modellgewichte oder Erweiterungen von Drittanbietern verwenden.