本文分享一下我们 ICLR 2022 的文章 DAB-DETR, 我们将在这里介绍文章的主要内容,以及我们对于目标检测问题的思考。
https://arxiv.org/abs/2201.12329
https://readpaper.com/paper/4588454363555438593
代码链接:
https://github.com/IDEA-Research/DAB-DETR
https://zhuanlan.zhihu.com/p/560513044
非常感谢上面作者的详细解读。
我们的代码已经开源。另外我们提供了官方的基于 Transformer 检测工具包 detrex,这一工具包包含了 DETR,Deformable DETR,Conditional DETR,DAB-DETR,DN-DETR,以及在 COCO 获得了 63.3AP 的 DINO,并将进一步支持更多的 DETR 类模型:
DAB-DETR 提出了一种新的建模 DETR 中 query 的方式,使用 4 维的 anchor box,这一建模方式不仅使得 DETR query 有了可解释性,同时作为位置先验可以加速模型收敛,以及利用 box 的尺度信息调制注意力图。
这一建模方式也将 DETR 类模型和传统的 two-stage 模型如 Faster RCNN 联系了起来。decoder 中 cross-attention 的作用类似于 ROI pooling 或者 ROI align,我们称之为 soft-ROI pooling。
我们的 formulation 可以使用在原始 DETR 或者 Deformable DETR 上,都能相比于原始模型带来很大的增益。另外,基于我们新的算法库 detrex 的模型带来了更好的结果。
DETR 作为首个使用 Transformer 做目标检测的模型,非常具有创新性。他将目标检测建模成集合预测的任务,即输入一组(如 100 个)learnable 的 query,然后输入对应数量(如 100 个)的物体预测结果。在训练过程中,使用二分图匹配预测和标签进行训练,而测试时不需要后处理(如 nms)即可产生所有结果。
尽管很简单、优雅,但是 DETR 存在两个问题,一是 query 含义并不清楚,不可解释,二是模型收敛慢。我们在这篇文章里主要希望解决两个问题。本来这应该是两个独立问题,不过后来我们发现,DETR 收敛慢很大程度上来自于 query 含义的不明。
DETR中的query
在原始的 DETR 文章中的 object query 画的比较简单,可能会让人觉得 query 就是一组向量:
然而实际上 object query 应该有两部分组成,我们称之为 content query 和 positional query(这里感谢 conditional detr,这两个名字由他们提出。)我们这里画出来了 encoder 和 decoder 中的 attention 的组成部分。
可以看到,encoder 和 decoder 里 attention 和 query 和 key 都是由两部分组成的,比如 encoder 里的 query 分别来自于图像特征(包含语义信息)和位置编码(包含位置信息),因此这两部分分别称为 content query(对应图像特征)和 positional query(对应位置编码)。key 和 query 完全相同。value 只有图像特征这一语义部分。
再看 decoder,decoder 的 key 和 value 与 encoder 的组成完全相同,但是 query 则不同。query 的语义部分来自于 decoder embeddings,对应上层的输入,是由图像特征组合来的。而位置部分则来自于 learnable queries,这是与我们看 DETR 的框架图后的第一反应不同的。因此 decoder 的 learnable query 实际指代的是位置信息。
接下来我们想来说明一下 cross-attention 在做什么,以及与传统的 Faster RCNN 之间的关系。
我们看到,在 attention 模块中,query 和 key 计算相似度,同时考虑了 content 信息和 positional 信息,计算出一个注意力图,然后使用这个注意力图从原始图片特征中提取特征。
这个步骤非常类似于传统两阶段检测器中的 ROI pooling(或者 ROI align)。但是由于注意力图是有 query 和 key 共同决定的,并不局限于物体框内信息,我们称之为 Soft ROI pooling。
learnable query 不够好
既然了解了 attention 及 decoder 的作用,下面我们看原始的 detr 中 query 问题在哪。
我们发现,原始的 learnable query 学习到的特征并不够好,即不能提供 soft roi pooling 中所需的 roi 信息。
如图,训练前后的 learnable query 产生的位置注意力图仍然存在多模式、退化解等现象,并不能为 soft roi pooling 提供 roi 的信息。
那么很自然的,我们意识到,要为 cross attention 提供更好的位置先验,提供更好的 roi region。很自然的,传统两阶段检测器中的 anchor box 可以引入到模型中作为位置先验。
引入anchor box作为query提供位置先验
将 anchor box 引入之后的好处有:
query 有了可解释性。
为模型提供了位置先验,加速收敛。
anchor box 中的位置信息可以用来调制注意力图。
anchor box 直接提供了 roi 区域用来做 soft roi pooling,因而这一描述也更加的自然。
模型改进简述
我们将我们的模型和 DETR&Conditional DETR 的对比列了出来。我们核心改进有:
直接学习 anchor box 作为 query
使用正余弦编码后的 x,y 作为 positional query
使用 w,h 调制注意力图
我们的建模方式也是通用的,我们将 anchor box 的建模方式用到 deformble DETR 里,依然能带来性能的提升。
我们在文章里做了很多对比,包括将 DAB-DETR 和之前的 DETR 系列做对比:
这里其实更想和大家分享关于 DETR 和传统检测器进行对比。从我们的讨论中我们看到,DETR 中的 encoder 起到了特征增强的作用,类似于一个 non-local 的模块。
而更令人着迷的 decoder 则起到了类似于 two-stage 模型中 ROI head 的作用,通过 Soft ROI pooling 的方式不断从特征图中采集特征,进行 box 的回归。而多个 decoder layer 又起到了类似于 cascade RCNN,类似于级联的 ROI head 的效果。
那么现在来看除了结构上(Transformer 和卷积)以外,DAB-DETR 和 Faster RCNN 还有哪些区别:
一是 box 产生的方式。Faster RCNN 来自于 RPN,而 DAB-DETR 来自于 learnable 的 anchor box(从这个意义上 DAB-DETR 更像是 Sparse RCNN)。那如果我们也将 DAB-DETR 的 anchor box 来自一个 RPN 或者 encoder 输出(Deformble DETR 已经做了),我们也可以构造一个 two stage 的 DAB-DETR,也会有更好的性能。
二是标签分配的方式。DETR 类模型的匹配是匈牙利匹配,one-to-one,同时考虑 content 和 position,在 layer 之后;而 Faster RCNN 是 one-to-many(一个 gt 可能对应多个 anchor),只考虑 position,在 layer 之前。
那么最理想的匹配方式是什么?有没有更好的匹配方案?也是一个值得研究的问题。这里推荐 peize 大佬的一篇文章 What Makes for End-to-End Object Detection? 很有启发意义。
综上,DETR 结构也可以看做是一种 two stage 模型,只是用了不同的模型结构(Transformer)和标签分配方式(匈牙利匹配)。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编