DINO

DINO

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

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

DINO目标检测图像分割深度学习COCOGithub开源项目

DINO <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/bc4b55ea-3580-4321-b82c-d93ab614dcd2.png" width="30">

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

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

    <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/24e12ca0-e09f-4a9b-a9bf-7e77e205eac9.png" width=10%/> [研讨会]         <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/2d34b93a-b722-41fd-8466-49fca9c03d47.jpg" width=10%/> [IC 挑战赛]         <img src="https://yellow-cdn.veclightyear.com/35dd4d3f/39669617-a927-4757-b28f-415e792ae243.jpg" width=10%/> [OD 挑战赛] </br> [2022/8/6]: 我们更新了 Swin-L 模型结果,未使用 O365 预训练、大图像尺寸和多尺度测试等技术。我们还将相应的检查点上传到 Google Drive. 我们的五尺度模型在没有任何技巧的情况下在 COCO val 上取得了 58.5 AP。</br> [2022/7/14]: 我们发布了包含 Swin-L 和 Convnext 主干网的代码。</br> [2022/7/10]: 我们发布了包含 Resnet-50 主干网的代码和检查点。</br> [2022/6/7]: 我们发布了一个统一的检测和分割模型 Mask DINO,在三种分割任务中取得了最佳结果(在 COCO 实例榜单 上取得 54.7 AP,在 COCO 全景榜单 上取得 59.5 PQ,在 ADE20K 语义榜单 上取得 60.8 mIoU)!代码将在这里 提供。 </br> [2022/5/28]: DN-DETR的代码在这里提供。 </br> [2022/4/10]: DAB-DETR 的代码在这里提供。 </br> [2022/3/8]: 我们在 MS-COCO 榜单 上达到了 63.3AP 的 SOTA! </br> [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个周期设置

<table> <thead> <tr style="text-align: right;"> <th></th> <th>名称</th> <th>主干</th> <th>box AP</th> <th>检查点</th> <th>在<a href="https://arxiv.org/abs/2203.03605">我们的论文</a>中的位置</th> </tr> </thead> <tbody> <tr> <th>1</th> <td>DINO-4scale</td> <td>R50</td> <td>49.0</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp</td> <td>表1</td> </tr> <tr> <th>2</th> <td>DINO-5scale</td> <td>R50</td> <td>49.4</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp;</td> <td>表1</td> </tr> <tr> <th>3</th> <td>DINO-4scale</td> <td>Swin-L</td> <td>56.8</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp</td> <td></td> </tr> <tr> <th>4</th> <td>DINO-5scale</td> <td>Swin-L</td> <td>57.3</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp</td> <td></td> </tr> </tbody> </table>

24个周期设置

<table> <thead> <tr style="text-align: right;"> <th></th> <th>名称</th> <th>主干</th> <th>box AP</th> <th>检查点</th> <th>在<a href="https://arxiv.org/abs/2203.03605">我们的论文</a>中的位置</th> </tr> </thead> <tbody> <tr> <th>1</th> <td>DINO-4scale</td> <td>R50</td> <td>50.4</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp</td> <td>表2</td> </tr> <tr> <th>2</th> <td>DINO-5scale</td> <td>R50</td> <td>51.3</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp;</td> <td>表2</td> </tr> </tbody> </table>

36个周期设置

<table> <thead> <tr style="text-align: right;"> <th></th> <th>名称</th> <th>主干</th> <th>box AP</th> <th>检查点</th> <th>在<a href="https://arxiv.org/abs/2203.03605">我们的论文</a>中的位置</th> </tr> </thead> <tbody> <tr> <th>1</th> <td>DINO-4scale</td> <td>R50</td> <td>50.9</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp</td> <td>表2</td> </tr> <tr> <th>2</th> <td>DINO-5scale</td> <td>R50</td> <td>51.2</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp/&nbsp<a href="https://pan.baidu.com/s/1St5rvfgfPwpnPuf_Oe6DpQ">百度网盘</a>&nbsp;</td> <td>表2</td> </tr> <tr> <th>3</th> <td>DINO-4scale</td> <td>Swin-L</td> <td>58.0</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp</td> <td></td> </tr> <tr> <th>4</th> <td>DINO-5scale</td> <td>Swin-L</td> <td>58.5</td> <td><a href="https://drive.google.com/drive/folders/1qD5m1NmK0kjE5hh-G17XUX751WsEG-h_?usp=sharing">Google Drive</a>&nbsp</td> <td></td> </tr> </tbody> </table>

安装

<details> <summary>安装</summary>

我们使用与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 ../../..
</details>

数据

<details> <summary>数据</summary>

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

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

运行

<details> <summary>1. 评估我们预训练的模型</summary> <!-- ### 评估我们预训练的模型 -->

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

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

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

</details> <details> <summary>3. 训练一个4-scale模型12个epoch</summary>

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

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

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

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

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

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

如果你打算在有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
</details> </details> <details> <summary>6. 在自定义数据集上训练/微调DINO</summary>

要在自定义数据集上从头开始训练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。忽略一些不一致的参数。
</details>

链接

我们的模型基于DAB-DETRDN-DETR

<p> <font size=3><b>DN-DETR: 通过引入查询去噪加速DETR训练。</b></font> <br> <font size=2>Feng Li*, Hao Zhang*, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang。</font> <br> <font size=2>IEEE计算机视觉与模式识别会议(<b>CVPR</b>) 2022。</font> <br> <a href='https://arxiv.org/abs/2203.01305'>[论文]</a> <a href='https://github.com/FengLi-ust/DN-DETR'>[代码]</a> <a href='https://www.zhihu.com/question/517340666/answer/2381304399'>[中文解读]</a> </p> <p> <font size=3><b>DAB-DETR: 动态锚框是更好的DETR查询。</b></font> <br> <font size=2>Shilong Liu, Feng Li, Hao Zhang, Xiao Yang, Xianbiao Qi, Hang Su, Jun Zhu, Lei Zhang。</font> <br> <font size=2>国际学习表征大会(<b>ICLR</b>) 2022。</font> <br> <a href='https://arxiv.org/abs/2201.12329'>[论文]</a> <a href='https://github.com/SlongLiu/DAB-DETR'>[代码]</a> </p>

我们还感谢包括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} }

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

聊天机器人AI助手热门AI工具AI对话
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多