DINO:一种新的端到端目标检测器(速读版)

原文:Zhang H, Li F, Liu S, et al. Dino: Detr with improved denoising anchor boxes for end-to-end object detection[J]. arXiv preprint arXiv:2203.03605, 2022.

源码:https://github.com/IDEACVR/DINO

我们提出了一种新的端到端目标检测器DINO,它在性能和效率上均优于以往的DETR类模型,主要得益于以下三点:对比去噪训练、用于锚框初始化的混合query选择、用于边框预测的look forward twice方案。DINO使用ResNet-50和多尺度特征在COCO上实现了49.4 AP(12轮)和51.3 AP(24轮)的成绩,与之前最好的DETR类模型DN-DETR相比,分别涨点6.0 AP和2.7 AP。DINO在模型大小和数据大小方面都具有良好的可扩展性。在不使用花哨技巧的情况下,DINO使用Swin-L骨干网络在Objects365数据集上进行预训练后,在COCO val2017和test-dev数据集上获得了最佳结果,分别是63.2 AP和63.3 AP。与目标检测排行榜上的其他模型相比,DINO在获得更好结果的同时,显著减小了模型大小和预训练数据大小。

图1:在COCO数据集上,DINO与其他模型结果的比较。

图2:DINO模型的框架。我们的改进主要在Transformer编码器和解码器方面。我们选择最后一层中的top-K编码器特征来初始化Transformer解码器的位置queries,而内容queries保持为可学习的参数。我们的解码器还包含一个对比去噪(CDN)部分。

图3:CDN group的结构和正负例的演示。

图4:(a)和(b)分别是全部物体和小物体上的ATD(100)值。(c)是小物体上的AP值。

图5:三种query初始化方法的比较。

图6:Deformable DETR和DINO边框更新方法的比较。

表1:在COCO val2017数据集上,DINO和其他检测模型结果的比较(使用ResNet-50骨干网络,训练12轮)。

表2:在COCO val2017数据集上,DINO和其他检测模型结果的比较(使用ResNet-50骨干网络,训练更多轮)。

图7:在COCO val2017数据集上,DINO和其他两个检测模型的训练收敛曲线(使用ResNet-50骨干网络和多尺度特征)。

表3:MS-COCO上最佳检测模型的比较。

表4:算法组件的消融研究。QS、CDN、LFT分别表示Query Selection、Contrastive De-Noising Training、Look Forward Twice。

图8:左图是使用DN queries训练的模型的检测结果,右图是DINO的结果。在左图中,箭头所指的男孩有3个重复的边框。

表5:不同模型的训练效率(使用ResNet-50骨干网络)。所有模型均使用8块Nvidia A100 GPU进行测试。

表6:编码器/解码器层数的消融研究。

表7:去噪queries数量的消融研究。

表8:DINO模型中使用的超参数。

在本文中,我们提出了一种强大的端到端Transformer检测器DINO,借助contrastive denoising training、mixed query selection、look forward twice方法,大大提高了模型的训练效率和检测性能。我们进一步尝试在更大的数据集上用更强的骨干网络训练DINO,并在COCO 2017 test-dev数据集上达到了新的SOTA水平,63.3 AP。

多模态人工智能

为人类文明进步而努力奋斗^_^↑

欢迎关注“多模态人工智能”公众号^_^↑

### DINO Model Based on Transformer for End-to-End Object Detection DINO (DETR with Improved Denoising Anchor Boxes)一种基于 Transformer 的端到端目标检测框架,旨在改善传统 DETR 模型中存在的收敛速度慢以及检测精度不足等问题[^2]。 #### 改进的去噪锚框机制 为了提升模型性能并加速训练过程,DINO 引入了一种新的去噪锚框策略。这种技术通过引入虚拟噪声样本作为辅助学习信号来增强模型对于真实物体边界框位置的学习能力。具体来说,在训练阶段会随机生成一些带有轻微偏移的真实标签副本,并将其混入原始数据集中用于监督训练;而在推理过程中则仅依赖于干净的目标标注信息完成预测任务。 #### 高效解码结构设计 除了创新性的前向传播算法外,DINO 还特别注重编码器之后部分的设计——即如何有效地从全局特征图中提取局部区域描述子进而实现精准定位与分类。为此,研究者们精心构建了一个多尺度融合模块配合动态卷积层共同作用以获得更佳的感受野范围覆盖度和平滑过渡特性,从而显著提高了最终输出质量。 ```python import torch.nn as nn class DINODecoder(nn.Module): def __init__(self, d_model=256, nhead=8, num_decoder_layers=6): super().__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_decoder_layers) def forward(self, tgt, memory, tgt_mask=None, memory_mask=None, tgt_key_padding_mask=None, memory_key_padding_mask=None): output = self.decoder(tgt=tgt, memory=memory, tgt_mask=tgt_mask, memory_mask=memory_mask, tgt_key_padding_mask=tgt_key_padding_mask, memory_key_padding_mask=memory_key_padding_mask) return output ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值