Efficient DETR:别再随机初始化了,旷视提出单解码层的高效DETR | CVPR 2021 - 晓飞的算法工程笔记
内容提要
Efficient DETR是一种新的目标检测框架,结合了密集和稀疏检测。它使用密集先验来初始化目标容器,并弥合了单层和六层解码器之间的差距。在MS COCO和CrowdHuman数据集上的实验结果表明,Efficient DETR仅使用三个编码器层和一个解码器层就能达到与最先进方法相竞争的性能。该论文还探讨了DETR的不同组件的影响,并提出了改进措施以解决其局限性。
延伸解读
解码器层为何比编码器层更关键
论文通过实验发现,DETR对解码器层数更敏感:减少两层解码器会导致AP下降约9.3,而减少两层编码器仅下降1.7。这主要是因为解码器每层都带有辅助损失,提供了强监督,使对象查询能高效细化。因此,Efficient DETR将重心放在优化解码器初始化上,而非简单堆叠层数。
参考点初始化对单层解码器的影响
在非级联(1层解码器)结构中,参考点的不同初始化方式会导致性能巨大差异。实验表明,使用滑动窗口中心的网格初始化效果接近可学习初始化,而其他方式则精度骤降。级联结构能通过多次迭代弥补初始化差异,但单层结构高度依赖良好的初始状态。这解释了为何Efficient DETR引入密集先验来初始化参考点。
动态提案数量策略的实用价值
Efficient DETR在训练初期使用300个提案以确保覆盖前景,随着网络收敛线性减少到100个。这种策略使训练更高效,且最终仅用100个提案就能达到与300个提案相当的精度。对于实际部署,这意味着在保持性能的同时降低计算开销,尤其适合资源受限的场景。
密集与稀疏部分共享检测头的设计
Efficient DETR的密集部分和稀疏部分共用相同的检测头,且共享标签分配规则和损失函数。这种设计避免了后处理(如NMS),简化了流程。密集部分生成区域提案,稀疏部分进行细化,两者任务相似,共享参数减少了模型复杂度,同时保持了端到端训练的优势。
Q&A
Efficient DETR 的主要创新点是什么?
Efficient DETR 结合了密集和稀疏检测的优点,使用密集先验初始化目标容器,并仅需三个编码器层和一个解码器层就能实现与最先进方法相竞争的性能。
Efficient DETR 在小物体检测方面的表现如何?
Efficient DETR 在小物体检测方面的性能优于传统的 DETR 方法,得益于其改进的架构和初始化策略。
Efficient DETR 如何提高训练效率?
Efficient DETR 通过动态调整提案数量和使用密集先验来初始化对象查询,从而提高了训练效率。
Efficient DETR 的架构包含哪些部分?
Efficient DETR 的架构包含密集部分和稀疏部分,密集部分生成区域提案,稀疏部分进行细化。
Efficient DETR 如何解决传统 DETR 的局限性?
Efficient DETR 通过引入 RPN 层和改进的初始化策略,解决了传统 DETR 在训练收敛和小物体检测方面的局限性。
Efficient DETR 在 MS COCO 数据集上的表现如何?
在 MS COCO 数据集上,Efficient DETR 仅使用三个编码器层和一个解码器层就能达到与最先进方法相竞争的性能。