Project Icon

DINO

降噪锚框实现端到端目标检测

DINO采用改良的降噪锚框,提供先进的端到端目标检测功能,并在COCO数据集上实现了优异的性能表现。模型在较小的模型和数据规模下,达到了63.3AP的优秀成绩。DINO具有快速收敛的特点,使用ResNet-50主干网络仅在12个周期内即可达到49.4AP。项目还提供丰富的模型库和详细的性能评估,用户可以通过Google Drive或百度网盘获取模型检查点和训练日志。

DINO

PWC PWC

这是论文“DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection”的官方实现。 (DINO 发音为 ‘daɪnoʊ’,如同恐龙)

作者: Hao Zhang*, Feng Li*, Shilong Liu*, Lei ZhangHang SuJun ZhuLionel M. NiHeung-Yeung Shum

新闻

[2023/7/10] 我们发布 Semantic-SAM,这是一种通用图像分割模型,可以在任何所需的粒度下分割和识别任何东西。代码检查点 已开放!
[2023/4/28]: 我们发布了一个强大的开放集目标检测和分割模型 OpenSeeD,在开放集目标分割任务中取得了最佳结果。代码和检查点可在这里获取。
[2023/4/26]: DINO 再次闪耀!我们发布了基于 DINO 和 FocalNet-Huge 主干网的 Stable-DINO,在 COCO test-dev 上达到了 64.8 AP
[2023/4/22]: 通过更好的超参数,我们的 DINO-4scale 模型在 12ep 设置下达到了 49.8 AP,请查看 detrex: DINO 了解更多详情。
[2023/3/13]: 我们发布了一个强大的开放集目标检测模型 Grounding DINO,在开放集目标检测任务中取得了最佳结果。它在 COCO 检测中达到了 52.5零样本 AP,没有任何 COCO 训练数据! 在微调后,它在 COCO 上达到了 63.0 AP。代码和检查点将在这里 开放。
[2023/1/23]: DINO 已被 ICLR 2023 接受!
[2022/12/02]: Mask DINO 的代码已经发布(也在 detrex 中)!Mask DINO 在没有额外检测数据的情况下,使用 ResNet-50 和 SwinL 分别在 COCO 上达到了 51.759.0 的箱 AP 超越了 DINO 在相同设置下的表现!
[2022/9/22]: 我们发布了一个工具箱 detrex,提供最先进的基于 Transformer 的检测算法。包括 DINO 性能更佳。欢迎使用!

[2022/9/18]: 我们组织了 ECCV 研讨会 Computer Vision in the Wild (CVinW),举办了两个挑战赛以评估预训练视觉模型在下游任务中的零样本、少样本和全样本表现:

    [研讨会]         [IC 挑战赛]         [OD 挑战赛]
[2022/8/6]: 我们更新了 Swin-L 模型结果,未使用 O365 预训练、大图像尺寸和多尺度测试等技术。我们还将相应的检查点上传到 Google Drive. 我们的五尺度模型在没有任何技巧的情况下在 COCO val 上取得了 58.5 AP。
[2022/7/14]: 我们发布了包含 Swin-L 和 Convnext 主干网的代码。
[2022/7/10]: 我们发布了包含 Resnet-50 主干网的代码和检查点。
[2022/6/7]: 我们发布了一个统一的检测和分割模型 Mask DINO,在三种分割任务中取得了最佳结果(在 COCO 实例榜单 上取得 54.7 AP,在 COCO 全景榜单 上取得 59.5 PQ,在 ADE20K 语义榜单 上取得 60.8 mIoU)!代码将在这里 提供。
[2022/5/28]: DN-DETR的代码在这里提供。
[2022/4/10]: DAB-DETR 的代码在这里提供。
[2022/3/8]: 我们在 MS-COCO 榜单 上达到了 63.3AP 的 SOTA!
[2022/3/9]: 我们建立了一个仓库 Awesome Detection Transformer,展示有关检测和分割的 Transformer 论文。欢迎关注! SOTA results

介绍

我们介绍了 DINO (DETR with Improved deNoising anchOr boxes),具备以下特点:

  1. 先进的 & 端到端:DINO在COCO Val上达到了63.2 AP,在COCO test-dev上达到了63.3 AP,其模型规模和数据规模比以前的最佳模型小十倍以上。
  2. 快速收敛:使用ResNet-50主干,DINO在5个尺度上在12个周期内达到了49.4 AP,在24个周期内达到了51.3 AP。我们的4尺度模型达到了类似的性能,并以23 FPS运行。

方法

method

模型库

我们将模型检查点放在这里 [Google Drive里的模型库] [百度网盘里的模型库](提取码"DINO"),其中checkpoint{x}_{y}scale.pth表示训练了x个周期的y尺度模型的检查点。我们的训练日志在[Google Drive]中。

12个周期设置

名称主干box AP检查点我们的论文中的位置
1DINO-4scaleR5049.0Google Drive / 百度网盘 表1
2DINO-5scaleR5049.4Google Drive / 百度网盘 表1
3DINO-4scaleSwin-L56.8Google Drive 
4DINO-5scaleSwin-L57.3Google Drive 

24个周期设置

名称主干box AP检查点我们的论文中的位置
1DINO-4scaleR5050.4Google Drive / 百度网盘 表2
2DINO-5scaleR5051.3Google Drive / 百度网盘 表2

36个周期设置

名称主干box AP检查点我们的论文中的位置
1DINO-4scaleR5050.9Google Drive / 百度网盘 表2
2DINO-5scaleR5051.2Google Drive / 百度网盘 表2
3DINO-4scaleSwin-L58.0Google Drive 
4DINO-5scaleSwin-L58.5Google Drive 

安装

安装

我们使用与DAB-DETR和DN-DETR相同的环境来运行DINO。如果你已经运行过DN-DETR或DAB-DETR,你可以跳过这一步。我们在python=3.7.3, pytorch=1.9.0, cuda=11.1环境下测试了我们的模型。其他版本也可能适用。点击下面的Details了解更多详细信息。

  1. 克隆此仓库
git clone https://github.com/IDEA-Research/DINO.git
cd DINO
  1. 安装Pytorch和torchvision

按照https://pytorch.org/get-started/locally/上的说明进行安装。

# 一个例子:
conda install -c pytorch pytorch torchvision
  1. 安装其他需要的软件包
pip install -r requirements.txt
  1. 编译CUDA操作
cd models/dino/ops
python setup.py build install
# 单元测试(应看到所有检查都为True)
python test.py
cd ../../..

数据

数据

请下载 COCO 2017 数据集并按如下方式组织:

COCODIR/
  ├── train2017/
  ├── val2017/
  └── annotations/
  	├── instances_train2017.json
  	└── instances_val2017.json

运行

1. 评估我们预训练的模型

这个链接 下载我们的DINO模型检查点 "checkpoint0011_4scale.pth",并执行下面的命令。你可以期望得到大约49.0的最终AP。

bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint
2. 推理和可视化

对于推理和可视化,我们提供了一份notebook作为示例。

3. 训练一个4-scale模型12个epoch

我们使用训练了12个epoch的DINO 4-scale模型作为示例,演示如何评估和训练我们的模型。

你也可以通过单个进程训练我们的模型:

bash scripts/DINO_train.sh /path/to/your/COCODIR
4. 对Swin Transformer的支持

要训练Swin-L模型,你需要首先从链接下载Swin-L骨干的检查点,并在运行脚本时指定预训练骨干的目录。以下是一个示例。

bash scripts/DINO_train_submitit_swin.sh /path/to/your/COCODIR /path/to/your/pretrained_backbone 
5. 分布式运行

由于训练时间较长,我们建议在多设备上训练模型。

如果你打算在有Slurm的集群上训练模型,这里有一个训练的示例命令:

# DINO-4scale: 49.0
bash scripts/DINO_train_submitit.sh /path/to/your/COCODIR

# DINO-5scale: 49.4
bash scripts/DINO_train_submitit_5scale.sh /path/to/your/COCODIR

注意: 结果对批处理大小敏感。我们默认使用16(每个GPU2张图片 x 8个GPU用于DINO-4scale,每个GPU1张图片 x 16个GPU用于DINO-5scale)。

或在单节点上使用多进程运行:

# DINO-4scale: 49.0
bash scripts/DINO_train_dist.sh /path/to/your/COCODIR
6. 在自定义数据集上训练/微调DINO

要在自定义数据集上从头开始训练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-DETRDN-DETR

DN-DETR: 通过引入查询去噪加速DETR训练。
Feng Li*, Hao Zhang*, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang。
IEEE计算机视觉与模式识别会议(CVPR) 2022。
[论文] [代码] [中文解读]

DAB-DETR: 动态锚框是更好的DETR查询。
Shilong Liu, Feng Li, Hao Zhang, Xiao Yang, Xianbiao Qi, Hang Su, Jun Zhu, Lei Zhang。
国际学习表征大会(ICLR) 2022。
[论文] [代码]

我们还感谢包括DETR, Deformable DETR, SMCA, Conditional DETR, Anchor DETR, Dynamic DETR等在内的优秀前期工作。更多相关工作请访问Awesome Detection Transformer

许可证

DINO在Apache 2.0许可证下发布。请参阅LICENSE文件了解更多信息。

版权所有(c) IDEA。保留所有权利。

根据Apache许可证2.0版许可,你不得使用这些文件,除非符合许可证。你可以在http://www.apache.org/licenses/LICENSE-2.0获得许可证的副本。

除非适用法律要求或书面同意,根据许可证分发的软件按“原样”分发,没有任何明示或暗示的担保。请参阅许可证了解管理权限和限制的更多信息。

Bibtex

如果你认为我们的工作对你的研究有帮助,请考虑引用以下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}
}

@会议论文{ liu2022dabdetr, 标题={{DAB}-{DETR}: 动态锚框是更好的查询对于{DETR}}, 作者={刘士龙, 李峰, 张浩, 杨潇, 亓显彪, 苏杭, 朱军, 张雷}, 书名={国际学习表征会议}, 年份={2022}, 链接={https://openreview.net/forum?id=oMI9PjOb9Jl} }

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号