这是“ Dino:Detr,具有改进的Denoing锚固盒,以端到端对象检测”的官方实施。 (Dino在恐龙中称为“daɪnoʊ”)
作者:Hao Zhang*,Feng Li*,Shilong Liu*,Lei Zhang,Hang Su,Jun Zhu,Lionel M. Ni,Heung-Yeung Shum
[2023/7/10]我们释放了语义-SAM,这是一种通用图像分割模型,可实现段并识别任何所需粒度的任何内容。代码和检查点可用!
[2023/4/28]:我们发布一个强大的开式对象检测和分割模型开放,该模型可以在开放集对象分割任务上实现最佳结果。代码和检查点可在此处找到。
[2023/4/26]:Dino再次闪耀!我们释放稳定的迪诺裔,该势座建立在可可测试dev上达到64.8 AP
恐龙和焦点骨架上。
[2023/4/22]:有了更好的超帕拉姆,我们的dino-4scale型号可在12ep设置下达到49.8 AP
,请检查detrex:Dino:Dino,以获取更多详细信息。
[2023/3/13]:我们发布了强大的开放式对象检测模型接地Dino,该模型在开放式对象检测任务上取得了最佳结果。在没有任何可可训练数据的情况下,它可以在可可检测上实现52.5零射击AP!微调后,它可以在可可上获得63.0 AP。代码和检查点将在此处提供。
[2023/1/23]:Dino已被ICLR 2023接受!
[2022/12/02]:发行了面具恐龙的代码(也在detrex中)! Mask Dino在Coco上进一步实现了51.7和59.0 Box AP,并使用Resnet-50和Swinl没有额外的检测数据,在相同的设置下表现优于Dino !
[2022/9/22]:我们发布一个工具箱detrex ,提供基于最新的变压器检测算法。它包括表现更好的恐龙。欢迎使用它!
[2022/9/18]:我们在野外组织ECCV研讨会(CVINW),在下游任务中,托管了两个挑战,以评估零射击,几乎没有射击和完整射击的性能:
[研讨会] [IC挑战] [OD挑战]
[2022/8/6]:我们更新SWIN-L模型结果,而没有技术,例如O365预训练,较大的图像大小和多尺度测试。我们还将相应的检查点上传到Google Drive。我们没有任何技巧的5尺度模型在可可谷获得58.5 AP。
[2022/7/14]:我们使用Swin-L和Convnext Backbone发布代码。
[2022/7/10]:我们使用Resnet-50骨干发行代码和检查点。
[2022/6/7]:我们发布了一个统一的检测和分割模型蒙版dino,在所有三个分段任务上都取得了最佳效果(可可实例排行榜上的54.7 AP,可可Panoptic排行榜上的59.5 PQ,在ADE20K Sentical Sentical Sentical Sentic sentical Sentic sentic sentic sentic sentic sentic sentic sentic sentical sentic sentic sentic sentic sentic sentical sentic sentic sentical sentic sentical in排行榜)!代码将在此处提供。
[2022/5/28] DN-DETR的代码可在此处找到。
[2020/4/10]:dab-detr的代码在这里可用。
[2022/3/8]:我们以63.3AP到达MS-Coco领袖委员会的SOTA!
[2022/3/9]:我们构建了一个库存真棒检测变压器,以介绍有关用于检测和分段的变压器的论文。欢迎您注意!
我们与以下方式一起展示Dino ( d eTr,带有我的de n oising hang o r盒)
我们已经将模型检查点放在此处[Google Drive中的模型动物园] [模型Zoo in百度网盘] (提取码“ Dino”),其中检查点{x} _ {y} scale.pth表示y尺度模型的检查点接受了X时代的培训。我们的培训日志在[Google Drive]中。
姓名 | 骨干 | 盒子AP | 检查点 | 在我们的论文中 | |
---|---|---|---|---|---|
1 | Dino-4scale | R50 | 49.0 | Google Drive / Baidu | 表1 |
2 | Dino-5scale | R50 | 49.4 | Google Drive / Baidu | 表1 |
3 | Dino-4scale | SWIN-L | 56.8 | Google Drive | |
4 | Dino-5scale | SWIN-L | 57.3 | Google Drive |
姓名 | 骨干 | 盒子AP | 检查点 | 在我们的论文中 | |
---|---|---|---|---|---|
1 | Dino-4scale | R50 | 50.4 | Google Drive / Baidu | 表2 |
2 | Dino-5scale | R50 | 51.3 | Google Drive / Baidu | 表2 |
姓名 | 骨干 | 盒子AP | 检查点 | 在我们的论文中 | |
---|---|---|---|---|---|
1 | Dino-4scale | R50 | 50.9 | Google Drive / Baidu | 表2 |
2 | Dino-5scale | R50 | 51.2 | Google Drive / Baidu | 表2 |
3 | Dino-4scale | SWIN-L | 58.0 | Google Drive | |
4 | Dino-5scale | SWIN-L | 58.5 | Google Drive |
我们使用相同的环境将dno和dn-detr进行恐龙运行。如果您运行了DN-DETR或DAB-DETR,则可以跳过此步骤。我们在python=3.7.3,pytorch=1.9.0,cuda=11.1
测试我们的模型。其他版本也可能可用。单击下面的Details
以获取更多详细信息。
git clone https://github.com/IDEA-Research/DINO.git
cd DINO
按照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 ../../..
请下载Coco 2017数据集并如下组织:
COCODIR/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
从此链接下载我们的Dino模型检查点“ CheckPoint0011_4Scale.pth”,并执行下面的命令。您可以期望获得最终AP约49.0。
bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint
对于推理和可视化,我们提供了一个笔记本,例如。
我们使用对12个时期训练的Dino 4尺度模型作为一个例子,以演示如何评估和训练我们的模型。
您还可以在一个过程中训练我们的模型:
bash scripts/DINO_train.sh /path/to/your/COCODIR
要训练Swin-L模型,您需要先从链接下载Swin-L主干的检查点,并在运行脚本时指定预训练的主链的DIR。这是一个例子。
bash scripts/DINO_train_submitit_swin.sh /path/to/your/COCODIR /path/to/your/pretrained_backbone
由于培训很耗时,我们建议在多设备上训练该模型。
如果您打算用Slurm在集群上训练模型,则是训练的示例命令:
# 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
注意:结果对批处理大小敏感。默认情况下,我们使用16张(每张GPU x 8 GPU,dino-4scale)和1张GPU x 16 GPU)。
或在单个节点上使用多过程运行:
# for DINO-4scale: 49.0
bash scripts/DINO_train_dist.sh /path/to/your/COCODIR
要从从头开始训练Dino在自定义数据集上,您需要在配置文件中调整两个参数:
num_classes
调整为数据集中检测的类数。dn_labebook_size
以确保dn_labebook_size >= num_classes + 1
为了利用我们的预训练模型进行模型进行微调,我们建议在bash中添加两个命令:
--pretrain_model_path /path/to/a/pretrianed/model
。指定预训练的模型。--finetune_ignore label_enc.weight class_embed
。忽略一些不一致的参数。我们的模型基于DAB-DER和DN-DRE。
DN-DETR:通过引入查询DeNoisising加速DETR培训。
Feng Li*,Hao Zhang*,Shilong Liu,Jian Guo,Lionel M. Ni,Lei Zhang。
IEEE计算机视觉和模式识别会议( CVPR )2022。
[纸] [代码] [中文解读]
dab-det:动态锚点是对detr的更好查询。
Shilong Liu,Feng Li,Hao Zhang,Xiao Yang,Xianbiao Qi,Hang Su,Jun Zhu,Lei Zhang。
国际学习代表会议( ICLR )2022。
[纸] [代码]
我们还要感谢以前的出色工作,包括DETR,可变形的DETR,SMCA,有条件的DETR,锚点DETR,Dynamic Detr等。在Awesome Dincection Transformer中提供了更多相关工作。
Dino以Apache 2.0许可发布。请参阅许可证文件以获取更多信息。
版权(C)想法。版权所有。
根据Apache许可证(版本2.0(“许可”)获得许可;除了符合许可外,您不得使用这些文件。您可以在http://www.apache.org/licenses/license-2.0获得许可证副本
除非适用法律要求或以书面形式同意,否则根据许可证分配的软件是按照“原样”分发的,没有任何明示或暗示的任何形式的保证或条件。请参阅许可证,以获取执行许可条款和限制的特定语言。
如果您发现我们的工作对您的研究有帮助,请考虑引用以下Bibtex条目。
@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 }
}