空间先验
Fast Convergence of DETR with Spatially Modulated Co-Attention(ICCV 2021)
DETR的收敛速度较慢。从头开始训练DETR[4]需要500个epoch才能获得高精度。为了加速其收敛,本文提出了一种简单而有效的改进DETR框架的方案,即Spatially Modulated Co-Attention(SMCA)机制。SMCA的核心思想是通过将co-attention响应限制在初始估计的边界框位置附近的较高区域,在DETR中进行regression-aware co-attention。本文提出的SMCA通过替换decoder中的原始co-attention,同时保持DETR中的其他操作不变,提高了DETR的收敛速度。此外,通过将multi-head和scale-selection注意力设计集成到SMCA中,与基于空洞卷积的主干的DETR相比,本文的SMCA可以实现更好的性能。论文对COCO数据集进行了广泛的消融研究,以验证所提出的SMCA的有效性。
主要贡献如下:
- 提出了一种新的空间调制共同注意(SMCA),它可以通过进行位置约束目标回归来加速DETR的收敛。SMCA是原始DETR中的即插即用模块。没有多尺度特征和多头注意力的SMCA的基本版本已经可以在50个epoch达到41.0 mAP,在108个时期达到42.7 mAP。将SMCA的基本版本训练50个时期需要265个V100 GPU小时。
- 完整SMCA进一步集成了多尺度特征和多头空间调制,这可以通过更少的训练迭代进一步显著改进和超越DETR。SMCA在50个epoch可达到43.7mAP,在108个时期可实现45.6mAP,而DETR-DC5在500个时期可获得43.3mAP。将完整的SMCA训练50个epoch需要600 V100 GPU小时。
- 对COCO 2017数据集进行了广泛的消融研究,以验证所提出的SMCA模块和网络设计。
动机
为了加速DETR收敛,本文通过动态预测一个2D的空间高斯weight map,来跟co-attention feature maps相乘来达到加快收敛速度的目的。即插即用,让DETR涨点明显。性能优于可变形DETR、DETR等网络。
实验结果如下:
Conditional DETR(ICCV 2021)
本文针对DETR训练收敛缓慢这一关键问题,提出了一种用于快速DETR训练的conditional cross-attention机制。动机是DETR中的cross-attention高度依赖内容嵌入来定位和预测box,这增加了对高质量内容嵌入的需求,从而增加了训练难度。
本文的方法称为Conditional DETR,从解码器嵌入中学习条件空间query,用于解码器multi-head cross-attention。好处在于,通过条件空间query,每个交叉注意力头能够关注包含不同区域的band,例如,一个目标末端或目标框内的区域。这缩小了用于定位目标分类和box回归的不同区域的空间范围,从而放松了对内容嵌入的依赖,并简化了训练。实验结果表明,对于主干R50和R101,Conditional DETR收敛速度快6.7倍,对于更强的主干DC5-R50和DC5-R101,收敛速度快10倍。
动机
为了分析 DETR 为什么收敛慢,论文对 DETR decoder cross-attention 中的 spatial attention map 进行了可视化。
每个 head 的 spatial attention map 都在尝试找物体的一个 extremity 区域。论文认为,DETR 在计算 cross-attention 时,query 中的 content embedding 要同时和 key 中的 content embedding 以及 key 中的 spatial embedding 做匹配,这就对 content embedding 的质量要求非常高。而训练了 50 epoch 的DETR,因为 content embedding 质量不高,无法准确地缩小搜寻物体的范围,导致收敛缓慢。所以用一句话总结 DETR 收敛慢的原因,就是DETR 高度依赖高质量的 content embedding 去定位物体的 extremity 区域,而这部分区域恰恰是定位和识别物体的关键。
基于此,提出Conditional DETR!
实验结果如下:
Anchor DETR(AAAI 2022)
代码链接:https://github.com/megvii-research/AnchorDETR
本文提出了一种新的基于Transfomrer的目标检测查询机制。在以前的基于Transfomrer的检测器中,object query是一组学习的嵌入。然而,每个学习到的嵌入都没有明确的物理意义,我们无法解释它将集中在哪里。由于每个object query的预测slot没有特定的模式,因此很难进行优化。换句话说,每个object query都不会关注特定区域。为了解决这些问题,在本文的query设计中,object query基于anchor point,这在基于CNN的检测器中被广泛使用。因此,每个object query都集中在anchor附近的目标上。此外,本文的query设计可以在一个位置预测多个目标以解决困难:“一个区域,多个目标”。此外,本文设计了一种注意力变体,它可以降低内存成本,同时实现与DETR中的标准注意力相似或更好的性能。由于query设计和注意力变体,本文方法名为Anchor DETR,可以实现比DETR更好的性能,并且运行速度比DETR更快。
回顾基于CNN的检测器,anchor与位置高度相关,包含可解释的意义。受此启发,作者提出了一种基于锚点(anchor points)的查询设计,即将anchor points编码为目标查询。查询是锚点坐标的编码,因此每个目标查询都具有显式的物理意义。
但是,这个解决方案还有一个限制:多个目标可能出现在一个位置 。在这种情况下,只有这个位置的一个查询不能预测多个目标,因此来自其他位置的查询必须协同预测这些目标。它将导致每个目标查询负责一个更大的区域。因此,作者通过向每个锚点添加多个模式(multiple patterns,即一个锚点可以检测多个目标)来改进目标查询设计,以便每个锚点都可以预测多个目标
除了查询设计之外,作者还设计了一个attention变体—行列解耦注意(Row-Column Decouple Attention,RCDA) 。它将二维key特征解耦为一维行特征和一维列特征,然后依次进行行注意力和列注意力。RCDA可以降低计算成本,同时实现与DETR中的标准注意力相似甚至更好的性能。
实验结果如下:
Efficient DETR(旷视)
DETR和Deformable DETR,具有堆叠6个解码器层的级联结构,以迭代更新object query,否则它们的性能会严重下降。本文研究了目标容器(包括object query和reference point)的随机初始化主要负责多次迭代的需求。基于论文的发现提出了Efficient DETR,这是一种用于端到端目标检测的简单高效的管道。通过利用密集检测和稀疏集合检测,Efficient DETR在初始化目标容器之前利用密集先验,并消除了1解码器结构和6解码器结构之间的差距。在MS COCO上进行的实验表明,本文的方法仅具有3个编码器层和1个解码器层,与最先进的目标检测方法相比,可以获得具有竞争力的性能。Efficient DETR在拥挤的场景中也很强大。它在CrowdHuman数据集上大大优于当期检测器。
实验结果如下:
Dynamic DETR(ICCV 2021)
本文提出了一种新的Dynamic DETR(Transfomrer检测)方法,将动态注意力引入DETR的编码器和解码器阶段,以打破其在小特征分辨率和训练收敛慢方面的两个限制。为了解决第一个限制,这是由于Transformer编码器中的自注意力模块的二次计算复杂性,论文提出了一种动态编码器,以使用具有各种注意力类型的基于卷积的动态编码器来近似Transformer编码器的注意力机制。这种编码器可以基于诸如尺度重要性、空间重要性和表示(即,特征维度)重要性的多个因素来动态调整注意力。为了减轻学习难度的第二个限制,论文引入了一个动态解码器,通过在Transformer解码器中使用基于ROI的动态注意力来替换交叉注意力模块。这种解码器有效地帮助Transfomrer从coarse-to-fine地关注ROI,并显著降低学习难度,从而实现更快的收敛。论文进行了一系列实验来证明我们的优势。Dynamic DETR显著缩短了训练时间(减少了14倍),但性能要好得多(mAP提升3.6)。
本文的主要贡献如下:
- 提出了一种新的Dynamic DETR方法,它相干地结合了基于动态卷积的编码器和基于动态Transformer的解码器。该方法显著提高了目标检测头的表示能力和学习效率,而无需任何计算开销。
- 与原始的DETR相比,Dynamic DETR大大减少了训练时间(减少了14倍),但却显著提高了性能(3.6 mAP),如图1所示;
- 是第一个在标准1x设置中实现优于传统性能的端到端方法,采用ResNet-50主干,42.9mAP。
实验结果如下:
结构重新设计
Rethinking Transformer-based Set Prediction for Object Detection(ICCV 2021)
代码链接:GitHub: Let’s build from hereEdward-Sun/TSP-Detection
DETR是最近提出的一种基于Transformer的方法,它将目标检测视为一个集合预测问题,并实现了最先进的性能,但需要额外的训练时间来收敛。本文研究了DETR训练中优化困难的原因,揭示了导致DETR缓慢收敛的几个因素,主要是匈牙利损失和Transformer中co-attention的问题。为了克服这些问题,本文提出了两种解决方案,即TSP-FCOS(使用FCOS的基于Transformer的集合预测)和TSP-RCNN(使用RCNN的基于Transformer集合预测)。实验结果表明,所提出的方法不仅比原始DETR收敛更快,而且在检测精度方面显著优于DETR和其他基线。
- TSP-FCOS:在backbone和encoder之间加上了head;
- TSP-RCNN:在backbone和encoder之间加上了RoIAlign;
实验结果如下:
You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection(NeurIPS 2021)
代码链接:GitHub - hustvl/YOLOS: You Only Look at One Sequence (NeurIPS 2021)
Transformer能否在对2D空间结构了解最少的情况下,从纯sequence-to-sequence的角度进行2D目标和区域级别的识别?为了回答这个问题,论文提出了“你只看一个序列”(YOLOS),这是一系列基于朴素视觉Transformer的目标检测模型,具有最少的可能修改、区域优先级以及目标任务的归纳偏差。论文发现只有在中型ImageNet-1k数据集上预训练的YOLOS才能在COCO目标检测基准上获得相当有竞争力的性能,例如,直接采用BERT-Base架构的YOLOS-Base可以在COCO值上获得42.0 box AP。论文还通过YOLOS讨论了当前预训练方案和Transformer模型缩放策略的影响和局限性。
本文的主要贡献如下:
- 使用中等大小的ImageNet-1k[51]作为唯一的预训练数据集,并表明可以成功地迁移到普通ViT[21],以执行复杂的目标检测任务,并在COCO[36]基准上以最少的可能修改(即,only looking at one sequence(YOLOS))输出有竞争力的结果;
- 首次证明,通过将固定大小的非重叠图像块序列作为输入,可以以纯序列到序列的方式完成2D目标检测。在现有的物体检测器中,YOLOS利用最小的2D感应偏置。
- 对于朴素ViT,论文发现目标检测结果对预训练方案非常敏感,并且检测性能远未饱和。因此,所提出的YOLOS也可以作为一项具有挑战性的基准任务,以评估不同的(标签监督和自监督)ViT预训练策略。
实验结果如下:
匹配优化
DN-DETR(CVPR 2022)
代码链接:https://github.com/FengLi-ust/DN-DETR
本文提出了一种新的去噪训练方法,以加速DETR(DEtection TRansformer)训练,并加深了对类DETR方法的收敛慢问题的理解。本文认为收敛缓慢是由于二分匹配的不稳定性导致的,这在早期训练阶段导致了不一致的优化目标。为了解决这个问题,除了匈牙利损失外,论文还将带有噪声的GT框输入Transformer解码器,并训练模型以重建原始框,这有效地降低了二分匹配的难度,并可以更快的收敛。本文的方法是通用的,可以通过添加几十行代码轻松地插入到任何类DETR的方法中,以实现显著的改进。因此,DN-DETR在相同的设置下产生了显著的改进(+1.9AP)。与相同设置下的基线相比,DN-DETR在50%的训练时间内实现了可比的性能。
本文的主要贡献如下:
- 设计了一种新的训练方法来加速DETR训练。实验结果表明,我们的方法不仅加快了训练收敛,而且导致了显著更好的训练结果—在12个epoch设置下,在所有检测算法中获得最佳结果。此外,我们的方法显示出比基线DAB-DETR显著的改进(+1.9AP),并且可以很容易地集成到其他类DETR的方法中;
- 从一个新的角度分析了DETR的缓慢收敛,并对DETR训练有了更深入的理解。设计了一个度量来评估二分匹配的不稳定性,并验证了我们的方法可以有效地降低不稳定性;
- 进行了一系列消融研究,以分析我们模型中不同组件的有效性,如噪声、标签嵌入和注意力mask。
实验结果后如下:
DINO
代码链接:https://github.com/IDEACVR/DINO
本文提出DINO,这是一种先进的端到端目标检测器。DINO通过使用对比的去噪训练方法、anchor初始化的混合query选择方法和box预测的look forward twice方案,在性能和效率上改进了以前的类DETR模型。DINO在具有ResNet-50主干和多尺度特征的COCO上实现了12个epoch的49.4 AP和24个epoch的51.3AP,与之前最好的类DETR的模型DN-DETR相比,分别显著提高了+6.0 AP和+2.7 AP。DINO在模型大小和数据大小方面都具有很好的扩展性。没有任何trick,在使用SwinL主干的Objects365数据集上进行预训练后,DINO在COCO val 2017(63.2AP)和测试集(63.3AP)上都获得了最好的结果。与排行榜上的其他模型相比,DINO显著减少了其模型大小和预训练数据大小,同时获得了更好的结果。
本文的主要贡献如下:
- 设计了一种新的端到端类DETR的目标检测器,采用了几种新技术,包括对比DN训练、混合查询选择,并对DINO模型的不同部分进行了两次前向。
- 进行了深入的消融研究,以验证DINO中不同设计选择的有效性。因此,DINO通过ResNet-50和多尺度特征在12个epoch内达到49.4AP,在24个epoch内实现51.3AP,显著优于之前最好的类DETR的模型。特别是,在12个epoch训练的DINO在小目标上表现出更显著的改善,提高了+7.5AP。
- 不用任何trick,DINO可以在公共基准上取得最好的成绩。在使用SwinL[23]主干对Objects365[33]数据集进行预训练后,DINO在COCO val2017(63.2AP)和测试集(63.3AP)基准上都取得了最好的结果。据我们所知,这是端到端Transformer检测首次在COCO排行榜上超过最先进(SOTA)模型[1]。实验结果如下:
原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)