Dies ist die offizielle Implementierung des Papiers "Dino: DETR mit verbesserten Denoising-Ankerboxen für die Erkennung von Objekten". (Dino ausgesprochen "Daɪnoʊ" wie im Dinosaurier)
Autoren: Hao Zhang*, Feng Li*, Shilong Liu*, Lei Zhang, Hang Su, Jun Zhu, Lionel M. Ni, Heung-yeung Shum
[2023/7/10] Wir geben Semantic-SAM, ein universelles Bildsegmentierungsmodell, veröffentlicht, um Segment zu ermöglichen und alles in jeder gewünschten Granularität zu erkennen. Code und Checkpoint sind verfügbar!
[2023/4/28]: Wir geben ein starkes Open-Set-Objekterkennungs- und Segmentierungsmodell frei, das die besten Ergebnisse bei Open-Set-Objekt-Segmentierungsaufgaben erzielt. Code und Kontrollpunkte finden Sie hier.
[2023/4/26]: Dino scheint wieder! Wir geben ein Stall-Dino frei, das auf Dino und FocalNet-Huge-Rückgrat aufgebaut ist, das 64.8 AP
auf Coco Test-Dev erreicht.
[2023/4/22]: Mit besseren Hyper-Params erreicht unser Dino-4Scale-Modell 49.8 AP
unter 12EP-Einstellungen, bitte überprüfen Sie DETREX: DINO für weitere Details.
[2023/3/13]: Wir geben ein starkes Open-Set-Objekt-Erkennungsmodell für das Dino frei, das die besten Ergebnisse bei Open-Set-Objekterkennungsaufgaben erzielt. Es erreicht 52,5 Null-Shot -AP für die Coco-Erkennung ohne Coco-Trainingsdaten! Es erreicht nach der Feinabstimmung 63,0 AP auf Coco. Code und Kontrollpunkte finden Sie hier.
[2023/1/23]: Dino wurde in ICLR 2023 angenommen!
[2022/12/02]: Code für Mask Dino wird veröffentlicht (auch in Detrex)! Mask Dino erreicht mit einem Resnet-50 und Swinl ohne zusätzliche Erkennungsdaten 51.7 und 59.0 Box-AP auf Coco und übertrifft Dino unter demselben Umfeld!.
[2022/9/22]: Wir geben einen Toolbox -Detrex frei, der staatliche Transformator-basierte Erkennungsalgorithmen bietet. Es beinhaltet Dino mit besserer Leistung . Willkommen, es zu benutzen!
[2022/9/18]: Wir organisieren in freier Wildbahn (CVINW) , in der zwei Herausforderungen gehostet werden :
[Workshop] [IC Challenge] [OD Challenge]
[2022/8/6]: Wir aktualisieren die SWIN-L-Modellergebnisse ohne Techniken wie O365-Voraussetzer, große Bildgröße und Mehrmaßstabstest. Wir laden auch die entsprechenden Kontrollpunkte auf Google Drive hoch. Unser 5-köpfiges Modell ohne Tricks erhält 58,5 AP auf Coco Val.
[2022/7/14]: Wir veröffentlichen den Code mit SWIN-L und überzeugen Backbone.
[2022/7/10]: Wir veröffentlichen den Code und die Kontrollpunkte mit ResNet-50-Backbone.
[2022/6/7 ] : Wir geben eine einheitliche Erkennung und Segmentierungsmodellmaske Dino frei Rangliste)! Der Code wird hier verfügbar sein.
[2022/5/28] Der Code für DN-Detr ist hier verfügbar.
[2020/4/10]: Der Code für DAB-DETRT ist hier durchschnittlich.
[2022/3/8]: Wir erreichen mit 63,3AP den SOTA in MS-Coco Leader Board!
[2022/3/9]: Wir erstellen einen Repo Fantastic Detection -Transformator, um Artikel über den Transformator zur Erkennung und Sendung vorzustellen. Willkommen zu Ihrer Aufmerksamkeit!
Wir präsentieren Dino ( d ETR mit i -mboved de n oising Anch O r Boxen) mit:
Wir haben unsere Modell-Checkpoints hier [Modellzoo in Google Drive] [Modellzoo in 百度网盘] (提取码 "Dino") eingestellt, wobei der Checkpoint {x} _ {y} scaste.PTH den Kontrollpunkt des y-scale-Modells bezeichnet für X -Epochen trainiert. Unsere Trainingsprotokolle finden Sie in [Google Drive].
Name | Rückgrat | Box ap | Kontrollpunkt | Wo in unserer Zeitung | |
---|---|---|---|---|---|
1 | Dino-4Scale | R50 | 49,0 | Google Drive / Baidu | Tabelle 1 |
2 | Dino-5Scale | R50 | 49,4 | Google Drive / Baidu | Tabelle 1 |
3 | Dino-4Scale | Swin-l | 56,8 | Google Drive | |
4 | Dino-5Scale | Swin-l | 57.3 | Google Drive |
Name | Rückgrat | Box ap | Kontrollpunkt | Wo in unserer Zeitung | |
---|---|---|---|---|---|
1 | Dino-4Scale | R50 | 50.4 | Google Drive / Baidu | Tabelle 2 |
2 | Dino-5Scale | R50 | 51.3 | Google Drive / Baidu | Tabelle 2 |
Name | Rückgrat | Box ap | Kontrollpunkt | Wo in unserer Zeitung | |
---|---|---|---|---|---|
1 | Dino-4Scale | R50 | 50.9 | Google Drive / Baidu | Tabelle 2 |
2 | Dino-5Scale | R50 | 51.2 | Google Drive / Baidu | Tabelle 2 |
3 | Dino-4Scale | Swin-l | 58.0 | Google Drive | |
4 | Dino-5Scale | Swin-l | 58,5 | Google Drive |
Wir nutzen die Umgebung wie dab-detr und dn-detr, um Dino zu betreiben. Wenn Sie DN-DETRT oder DAB-Detr ausgeführt haben, können Sie diesen Schritt überspringen. Wir testen unsere Modelle unter python=3.7.3,pytorch=1.9.0,cuda=11.1
. Andere Versionen könnten ebenfalls verfügbar sein. Klicken Sie auf die folgenden Details
für weitere Details.
git clone https://github.com/IDEA-Research/DINO.git
cd DINO
Befolgen Sie die Anweisung unter https://pytorch.org/get-started/locally/.
# an example:
conda install -c pytorch pytorch torchvision
pip install -r requirements.txt
cd models/dino/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../../..
Bitte laden Sie den Datensatz von Coco 2017 herunter und organisieren Sie sie wie folgt:
COCODIR/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
Laden Sie unseren Dino -Modell -Checkpoint "Checkpoint0011_4scale.pth" von diesem Link herunter und führen Sie den folgenden Befehl aus. Sie können erwarten, den endgültigen AP um 49,0 zu erhalten.
bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint
Für Inferenz und Visualisierungen stellen wir als Beispiel ein Notizbuch zur Verfügung.
Wir verwenden das für 12 Epochen ausgebildete Dino 4-Skala-Modell, um zu demonstrieren, wie unser Modell bewertet und trainiert.
Sie können unser Modell auch für einen einzelnen Prozess trainieren:
bash scripts/DINO_train.sh /path/to/your/COCODIR
Um das SWIN-L-Modell zu trainieren, müssen Sie zuerst den Kontrollpunkt des SWIN-L-Rückgrates vom Link herunterladen und das Dire des vorgeborenen Rückgrates beim Ausführen der Skripte angeben. Hier ist ein Beispiel.
bash scripts/DINO_train_submitit_swin.sh /path/to/your/COCODIR /path/to/your/pretrained_backbone
Da das Training zeitaufwändig ist, empfehlen wir, das Modell auf Multi-Geräte auszubilden.
Wenn Sie vorhaben, die Modelle auf einem Cluster mit Slurm zu trainieren, finden Sie hier ein Beispielbefehl für das Training:
# for DINO-4scale: 49.0
bash scripts/DINO_train_submitit.sh /path/to/your/COCODIR
# for DINO-5scale: 49.4
bash scripts/DINO_train_submitit_5scale.sh /path/to/your/COCODIR
Anmerkungen: Die Ergebnisse sind empfindlich gegenüber der Chargengröße. Wir verwenden 16 (2 Bilder pro GPU x 8 GPUs für Dino-4Scale und 1 Bilder pro GPU x 16 GPUs für Dino-5Scale) standardmäßig.
Oder mit Multi-Processe auf einem einzelnen Knoten ausführen:
# for DINO-4scale: 49.0
bash scripts/DINO_train_dist.sh /path/to/your/COCODIR
Um einen Dino auf einem benutzerdefinierten Datensatz von Grund auf zu trainieren, müssen Sie zwei Parameter in einer Konfigurationsdatei einstellen:
num_classes
auf die Anzahl der Klassen ab, die in Ihrem Datensatz erfasst werden sollen.dn_labebook_size
dn_labebook_size >= num_classes + 1
um sicherzustellenUm unsere vorgeborenen Modelle für die Modellfeineinstellung zu nutzen , schlagen wir vor, zwei weitere Befehle in einer Bash hinzuzufügen:
--pretrain_model_path /path/to/a/pretrianed/model
. Geben Sie ein vorgebildetes Modell an.--finetune_ignore label_enc.weight class_embed
. Ignorieren Sie einige inkonsistente Parameter.Unser Modell basiert auf DAB-Detr und DN-Detr.
DN-DETRT: Beschleunigen Sie das DETR-Training durch Einführung von Abfragen.
Feng Li*, Hao Zhang*, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang.
IEEE -Konferenz über Computer Vision und Mustererkennung ( CVPR ) 2022.
[Papier] [Code] [中文解读]
DAB-Detr: Dynamische Ankerboxen sind bessere Abfragen für DETR.
Shilong Liu, Feng Li, Hao Zhang, Xiao Yang, Xianbiao Qi, Hang Su, Jun Zhu, Lei Zhang.
Internationale Konferenz über Lernrepräsentationen ( ICLR ) 2022.
[Papier] [Code]
Wir danken auch großartige frühere Arbeiten, einschließlich DEL, deformierbares DETR, SMCA, bedingter DETR, Anker DETR, Dynamic DETR usw. Weitere verwandte Arbeiten sind bei Awesome Detection Transformer erhältlich.
Dino wird unter der Apache 2.0 -Lizenz veröffentlicht. Weitere Informationen finden Sie in der Lizenzdatei.
Copyright (c) Idee. Alle Rechte vorbehalten.
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Dateien nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz unter http://www.apache.org/licenses/license-2.0 erhalten
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As is" -Basis ohne Gewährleistung oder Bedingungen jeglicher Art ausdrücklich oder impliziert verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.
Wenn Sie unsere Arbeit für Ihre Recherche hilfreich finden, sollten Sie den folgenden Bibtex -Eintrag zitieren.
@misc { zhang2022dino ,
title = { DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection } ,
author = { Hao Zhang and Feng Li and Shilong Liu and Lei Zhang and Hang Su and Jun Zhu and Lionel M. Ni and Heung-Yeung Shum } ,
year = { 2022 } ,
eprint = { 2203.03605 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
}
@inproceedings { li2022dn ,
title = { Dn-detr: Accelerate detr training by introducing query denoising } ,
author = { Li, Feng and Zhang, Hao and Liu, Shilong and Guo, Jian and Ni, Lionel M and Zhang, Lei } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition } ,
pages = { 13619--13627 } ,
year = { 2022 }
}
@inproceedings {
liu2022dabdetr,
title = { {DAB}-{DETR}: Dynamic Anchor Boxes are Better Queries for {DETR} } ,
author = { Shilong Liu and Feng Li and Hao Zhang and Xiao Yang and Xianbiao Qi and Hang Su and Jun Zhu and Lei Zhang } ,
booktitle = { International Conference on Learning Representations } ,
year = { 2022 } ,
url = { https://openreview.net/forum?id=oMI9PjOb9Jl }
}