Dome-DETR

Ein auf D-FINE basierender Spezialist für winzige Objekte: Ein Dichte-Head bestimmt, wo sich Objekte befinden, die Encoder-Attention beschränkt sich auf die Fenster, die sie enthalten, und die Query-Anzahl wird aus dieser Dichte abgeleitet, statt fest zu sein. LibreYOLO unterstützt ihn für die Objekterkennung.

Aufgaben
detection
Größen
s, m, l at 800 px
Installation
pip install libreyolo
Supportstufe
Unterstützt, seit v1.5.0. Ergänzende trainierbare Modelle: Die CI bleibt grün, Funktionen kommen bei Gelegenheit hinzu.
Upstream
Dome-DETR von The Dome-DETR Authors, Apache-2.0 code; academic-research-only weights. Publikation, Quelle
Lizenzen
Code Apache-2.0, Gewichte Apache-2.0 code; academic-research-only weights. Kommerzielle Nutzung

Installation

Dome-DETR benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

Die sechs konvertierten Checkpoints werden automatisch von LibreYOLO-Mirrors heruntergeladen. Ihre Upstream-Bedingungen beschränken die Nutzung auf akademische Forschung.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Vortrainierte Gewichte sind auf akademische Forschung beschränkt.model = LibreYOLO("LibreDOMEDETRs-visdrone.pt", device="cpu")print(model(SAMPLE_IMAGE).boxes)

Das zurückgegebene Results-Objekt entspricht dem aller anderen Familien. Der Wechsel zu einem anderen Detektor erfordert daher nur eine Änderung in einer Zeile. conf und max_det filtern die Auswahl der Queries. iou wird aus Gründen der API-Parität akzeptiert, hat aber keine Wirkung, weil der Decoder Mengen vorhersagt und keinen NMS-Schritt verwendet. Unter Vorhersage findest du Quellen, Streaming und die Verarbeitung von Ergebnissen.

Zwei Funktionen sind für diese Familie abgeschaltet. Die CUDA-Graph-Erfassung ist deaktiviert, weil die Query-Anzahl von PAQI datenabhängig ist und sich die Form des Vorwärtslaufs deshalb von Bild zu Bild ändert. Genau das kann die Graph-Erfassung nicht abbilden. Die Test-Time Augmentation läuft mit einer einzelnen festen quadratischen Größe, sodass eine mehrskalige TTA-Anforderung keine Wirkung hat.

Varianten

Es gibt drei Größen s, m und l, alle mit 800 mal 800. Die Größe wählt das Backbone. Der Datensatz, aus dem die Gewichte stammen, bestimmt die Tiefe des Decoders und das Query-Budget. Ein Größencode allein identifiziert daher keinen Graphen. AI-TOD-V2-Gewichte wählen pro Bild zwischen 300 und 1500 Queries, VisDrone-Gewichte zwischen 250 und 500. Das große Modell verwendet auf AI-TOD-V2 vier Decoder-Schichten, auf VisDrone dagegen sechs.

Dome-DETR erweitert D-FINE um drei Bestandteile. DeFE sagt eine Dichtekarte vorher. MWAS beschränkt mithilfe dieser Karte die Encoder-Attention auf die Fenster, die tatsächlich Objekte enthalten, statt alle Bereiche zu beachten. PAQI leitet die Größe der Query-Menge aus derselben Dichte ab, statt stets 300 Queries zu dekodieren. Der Gewinn konzentriert sich auf die kleinsten Objekte und nimmt mit deren Größe ab: In der eigenen Ablation des Upstreams steigt AP für sehr winzige Objekte von 14.0 auf 17.8, während AP für mittelgroße Objekte nur von 45.4 auf 46.4 steigt. Betrachte das Modell als Ergänzung zu D-FINE für Luft-, Drohnen- und Fernerkundungsbilder, nicht als Ersatz.

Für diese Familie sind keine Vision-Analysis-Benchmarkzeilen erfasst.

Training

Dome-DETR kann trainiert werden. Beim Training wird die vollständige Upstream-Zielfunktion ausgeführt: die D-FINE-Losses sowie die Dichte- und Anzahlüberwachung von DeFE. Aufgefüllte Queries werden aus den Klassifizierungstermen ausgeschlossen. Bildweise Denoising-Attention-Masken verhindern außerdem, dass die Auffüllung eines Bildes in ein anderes gelangt.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDOMEDETRs-visdrone.pt")model.train(data="my-dataset.yaml", epochs=160, imgsz=800, batch=4, lr0=2e-4)
CLI
libreyolo train model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yaml \  epochs=160 imgsz=800 batch=4 lr0=2e-4
Multi-GPU
libreyolo train model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yaml \  epochs=160 device=0,1 batch=4

Die Konfiguration übernimmt das D-FINE-Rezept und ändert die von MWAS benötigten Werte. imgsz ist 800, lr0 ist 2e-4, die Backbone-Parametergruppe wird mit backbone_lr_mult=0.1 skaliert, und multi_scale wird abgeschaltet, weil die MWAS-Fenster eine durch Stride 8 teilbare Eingabe benötigen. batch ist standardmäßig 4 statt 16 wie bei D-FINE: PAQI füllt jeden Batch bis zu seinem breitesten Element auf, sodass der Speicherbedarf vom umfangreichsten Bild im Batch abhängt und nicht vom Durchschnitt.

Zur Accuracy gilt eine wichtige Einschränkung. Upstream trainiert 160 Epochen mit MultiStepLR(milestones=[80, 120], gamma=0.8). Diese Standardwerte verwenden für dieselben 160 Epochen dagegen den Flat-Cosine-Zeitplan von D-FINE. Dieser Zeitplan wurde hier nicht reproduziert, ebenso wenig wie die AP-Werte der Veröffentlichung. Betrachte sie daher als Ergebnisse der Upstream-Autoren und nicht als Zusage, dass dieses Rezept sie erreicht. Nutze den Upstream-Zeitplan, wenn du die Veröffentlichung reproduzieren möchtest.

Unter Training findest du Datensätze, Datenaugmentierung, Multi-GPU und Logger.

Validierung

val() gibt ein Dictionary mit den Metriknamen als Schlüsseln zurück und druckt klassenspezifische Ergebnisse, solange verbose aktiviert bleibt.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDOMEDETRs-visdrone.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yaml

Die Validierung erfolgt auf deinem eigenen Datensatz in dem Format, das du für das Training verwendet hast. Die COCO-Validierungsschranke der Bibliothek gilt hier nicht, weil kein COCO-Checkpoint dieser Familie für eine Messung vorhanden ist.

Export

Der Export wird in keinem Format unterstützt. Eine Exportanforderung löst einen Fehler aus, statt eine Datei zu erzeugen.

Der Grund dafür ist PAQI. Es bestimmt die Query-Anzahl pro Bild aus dichtegefilterten Vorschlägen und einer greedy dichteadaptiven Unterdrückungsschleife. Die Ausgabelänge des Decoders hängt somit von der Eingabe statt vom Graphen ab. Beim Tracing wird die zufällige Anzahl des Tracing-Bildes festgeschrieben. Das erzeugte Artefakt liefert für jedes andere Bild unbemerkt falsche Ergebnisse. Eine statische Formulierung müsste die Unterdrückung über alle 250 bis 1500 Kandidaten ausrollen. Eine Reduzierung auf ein festes Top-k würde genau den Recall für winzige Objekte entfernen, für den diese Familie existiert. Wenn du einen exportierbaren Detection Transformer benötigst, verwende D-FINE.

Checkpoints

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
Dome-DETR, The Dome-DETR Authors
Upstream-Lizenz
Apache-2.0 code; academic-research-only weights
LibreYOLO-Code
MIT
Gewichte
Apache-2.0 code; academic-research-only weights, erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
The upstream source is Apache-2.0. Six mirrored checkpoints retain the publisher academic-research-only restriction.

Die sechs Mirrors behalten die Upstream-Beschränkung auf akademische Forschung bei. Der Code ist gesondert lizenziert. Das Upstream-Repository steht unter Apache-2.0, die LibreYOLO-Portierung unter MIT, und Gewichte, die du selbst mit deinen eigenen Daten trainierst, gehören dir.

Mit LibreYOLO v1.6.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.