Modell-Arbeitsbereich öffnen hochauflösende Bildverarbeitung

Hochauflösende Segmentierung mit birefnet

Masken für die Bildbearbeitung.

Scharfe Kanten Mehrere Aufgaben MIT-Toolkit
birefnet ausprobieren
Prompt / Bild
Beispieleingaben ein Tippen

Bildbereit · einzeiliger Workflow · in Sekunden starten

birefnet / hochauflösende Bildsegmentierung
main MIT Modellnotizen
Repository-Dateien
Letzte Aktualisierung · aktualisierte Modellleitfäden und Evaluationsnotizen Quelle / birefnet
Datei Aktualisiert
Evaluation aktuell
Modelle aktuell
Tutorials aktuell
.gitignore zuletzt
LICENSE zuletzt
README.md zuletzt
config.py zuletzt
dataset.py zuletzt
eval_existingOnes.py zuletzt
gen_best_ep.py zuletzt
image_proc.py zuletzt
inference.py kürzlich
loss.py kürzlich
make_a_copy.sh kürzlich
requirements.txt kürzlich
rm_cache.sh kürzlich
sub.sh kürzlich
test.sh kürzlich
train.py kürzlich
train.sh kürzlich
train_test.sh kürzlich
utils.py kürzlich

Bilaterale Referenz für die hochauflösende Bildsegmentierung

Ein forschungsorientierter Modellarbeitsbereich für scharfe Masken, schwierige Kanten und reproduzierbare visuelle Experimente.

Fachartikel Projekt MIT Modell Mehrere Bilder Inferenz Box-Hinweise
DIS-Sample_1
Ein traditioneller Pavillon an spiegelndem Wasser, dargestellt als Studie zur kontrastreichen Vordergrundsegmentierung.
DIS-Sample_2
Ein radiales Goldornament mit feinen Speichen und Perlen, dargestellt als anspruchsvolle Studie zur hochauflösenden Segmentierung.

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 von 256x256 bis 2304x2304 fü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 auf 2048x2048 Bildern 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

python
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
Die Modellfamilie umfasst Vordergrundsegmentierung, die Erkennung getarnter Objekte, die Erkennung markanter Objekte in hoher Auflösung, Matting und die geführte Extraktion. Der beste Checkpoint hängt von der Aufgabe und der Eingabeauflösung ab.

Testen Sie unsere Online-Demos für die Inferenz:

Eine dunkle Browser-Arbeitsoberfläche mit Bildeingabe, kontrastreicher Vordergrundmaske und kompaktem Auswertungsbereich.

Auszeichnungen:

Rund um birefnet sind einige starke Projekte von Studierenden und aus der Community entstanden.
Anerkennung von Community-Projekten
Eine formelle Innovationspreisurkunde mit blauem Rand auf einem Schreibtisch, frontal fotografiert in einer zurückhaltenden akademischen Präsentation.

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
AufgabeTrainingssätzeBackboneHerunterladen
DISDIS5K-TRswin_v1_largeModelldatei
CODCOD10K-TR, CAMO-TRswin_v1_largeModelldatei
HRSODDUTS-TRswin_v1_largeModelldatei
HRSODDUTS-TR, HRSOD-TRswin_v1_largeModelldatei
HRSODDUTS-TR, UHRSD-TRswin_v1_largeModelldatei
HRSODDUTS-TR, HRSOD-TR, UHRSD-TRswin_v1_largeModelldatei
Modelle für den allgemeinen Gebrauch und Matting
AufgabeTrainingsdatensätzeBackboneTestdatensatzMetrikHerunterladen
allgemeiner Gebrauch, 2048x2048AIM-500, DIS, HIM2K, PPM-100 und hochauflösende Personendatensätzeswin_v1_largeDIS-VD0.927, 0.894Modelldatei
allgemeiner GebrauchDIS5K, DIS-TEs, DUTS, HRSOD und UHRSDswin_v1_largeDIS-VD0.911, 0.875Modelldatei
allgemeiner GebrauchDIS5K und DIS-TEsswin_v1_tinyDIS-VD0.882, 0.830Modelldatei
allgemeines MattingP3M, Personen, AIM-500, HIM2K und synthetische Hintergründeswin_v1_largeTE-P3M0.979, 0.988Modelldatei
Porträt-FreistellungP3M- und menschliche Bilddatensätzeswin_v1_largeP3M-500-P0.983, 0.989Modelldatei
Segmentierung mit Box-Führung
Verwenden Sie eine geführte Box, um die Segmentierung vor der Verfeinerung der Maske auf einen ausgewählten Bereich zu konzentrieren.
Modelleffizienz
LaufzeitFP32FP16
A10086.8ms69.4ms
409095.8ms57.7ms
V100384ms152ms
ONNX-Konvertierung
Der Konvertierungspfad exportiert trainierte Gewichte für die lokale Inferenz. Die Kompatibilität zwischen Laufzeit, CUDA und cuDNN sollte vor der Bereitstellung geprüft werden.

Werke Dritter

Mehrere Community-Anwendungen verwenden birefnet als Backend oder Node. Die folgenden Beispiele bewahren denselben praxisnahen, klickorientierten Geist wie das ursprüngliche Projekt.

  1. Anwendungen

    Hintergrundentfernung: ein kompakter Browser-Workflow zum Entfernen von Fotohintergründen mit einer schlanken birefnet-Variante.

    Offener Workflow
    Eine helle Browseroberfläche mit Upload-Bereich zum Entfernen des Hintergrunds, zartrosa Akzenten und einem klaren Workflow mit einem Klick.

    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
    Ein helles Browser-Tool mit einem Schritt zum Hochladen eines Fotos und einer Vorschau mit transparentem Hintergrund, dargestellt als privater lokaler Workflow.

    Flexibler Inferenz-Workflow: eine visuelle Pipeline verbindet Bildeingabe, Modellkonfiguration, Verfeinerung und Ausgab Vorschau.

    Offener Workflow
    Ein dunkler, knotenbasierter Bild-Workflow, der Eingabe, Modelleinstellungen, Maskenverfeinerung und Ausgabevorschauen verbindet.

    ComfyUI-Integration: ein Node-basiertes Bedienfeld macht Segmentierung und Maskenkonvertierung innerhalb eines visuellen Workflows verfügbar.

    Offener Workflow
    Ein dunkler visueller Node-Editor mit Bildinput-, Segmentierungs-, Maskenkonvertierungs- und Vorschau-Nodes, die über ein Raster hinweg verbunden sind.

    Dienst zur Videofreistellung: birefnet kann als Vordergrund-Engine für kurze Workflows zur Entfernung von Videohintergründen dienen.

    Offener Workflow
    Eine filmische Videobearbeitungsvorschau, die eine vor einem transparenten Schachbrett isolierte Tänzerin neben dem Originalbild zeigt.

    Invoke-ähnlicher Node: ein einfaches Bildprimitive speist einen Node zur Hintergrundentfernung mit optionaler Vordergrundverfeinerung.

    Offener Workflow
    Ein ausgefeiltes dunkles Node-Diagramm mit einem Bild-Primitive, das mit einem Hintergrund-entfernen-Node und einer Galerieausgabe verbunden ist.

    Erzeugung von 2D-Assets: Die Vordergrundextraktion wird mit kreativen Tools kombiniert, um saubere Freisteller-Assets für Design und Previsualisierung zu erzeugen.

    Offener Workflow
    Ein 3D-Design-Arbeitsbereich mit mehreren farbenfrohen Charakterausschnitten, die auf einem reflektierenden Studioboden angeordnet sind.

    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
    Eine Designkomposition mit einem Vordergrundmotiv, das vor übergroßen weißen redaktionellen Schriftzeichen vorbeiläuft.

    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
    Ein dunkles Dienstprogramm-Panel zur Bildgenerierung mit einem originalen Fantasy-Porträt, einem ausgeschnittenen Motiv und einer weißen Maskenvorschau.

    Online-Modellspielplatz: Eine fokussierte Oberfläche für Eingaben und Ergebnisse bietet nützliche Steuerelemente, ohne eine lokale Einrichtung zu erfordern.

    Workflow öffnen
    Eine helle Modell-Spielwiese mit einem hochgeladenen Froschbild auf der linken Seite und einem sauber isolierten Ergebnis auf der rechten Seite.
  2. 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
    Ein vierreihiges Vergleichsraster mit farbenfrohen illustrierten Charakteren vor einem türkisfarbenen Hintergrund und Masken im Vordergrund.

    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
    Ein Kontaktbogen mit Produkten, Porträts, Wildtieren und Pflanzen neben freigestellten Motiven auf transparentem Schachbrett-Hintergrund.
  3. Weitere visuelle Vergleiche

    Direktvergleiche zeigen, wie birefnet bei Produktszenen, Porträts und detaillierten Vordergrundkanten arbeitet.

    Eine dunkle Vergleichstafel mit Originalbildern, birefnet-Masken und Ergebnissen benachbarter Modelle anhand von Produkt- und Porträtbeispielen.

    Videovergleiche konzentrieren sich auf Kontinuität, Silhouettenstabilität und die Erhaltung kleiner bewegter Details.

    Ein Videovergleichsbild mit vier beschrifteten Panels, die ein vor schwarzem Hintergrund isoliertes animiertes Motiv zeigen.

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.
Ein übersichtliches Tutorial-Cover mit einem Titel zur hochauflösenden Segmentierung, zwei Bildbeispielen und kompakten Projektabzeichen.
  1. Voraussetzungen: Legen Sie Datensätze unter ${data_root_dir}/TASK_NAME/DATASET_NAMEab, mit den Ordnern im und gt innerhalb jedes Datensatzes.
  2. Vorhandene Aufgabe ändern: Ersetzen Sie den Namen der vorhandenen Aufgabe im gesamten Projekt durch den Namen Ihrer eigenen Aufgabe.
  3. Einstellungen anpassen: Aktualisieren Sie sys_home_dir, testsets, training_set und die Gewichtungen der Verlustfunktion für Ihre Aufgabe.
  4. 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.
  5. 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.

Eine ergebnisorientierte Tafel im Forschungsstil mit dicht gefüllten Benchmark-Tabellen, die Segmentierungsmetriken über mehrere Datensätze hinweg vergleichen.
TestdatensatzStruktur-ScoreGewichteter F-ScoreMAEHCE
DIS-TE10.8600.8190.037106
DIS-TE20.8940.8570.036266
DIS-TE30.9250.8930.028569
DIS-VD0.8910.8540.038989

Qualitative Ergebnisse

Die visuellen Vergleiche konzentrieren sich auf schmale Strukturen, teilweise Verdeckung, wiederkehrende Muster und Tarnung.

Ein gekachelter qualitativer Vergleich mit Eingabeszenen, Ground-Truth-Masken, birefnet-Ausgaben und Ergebnissen benachbarter Methoden anhand schwieriger Vordergrundbeispiele.

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.

Erstellung starten
Erstellung starten