
FightingCV
2022/09/25阅读:49主题:默认主题
ICLR22|将Anchor box重新引入DETR,提供query可解释性并加速收敛
ICLR22 | 将Anchor box重新引入DETR,提供query可解释性并加速收敛
来源:https://zhuanlan.zhihu.com/p/567496850
文章链接
arxiv链接: DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR
readpaper链接:DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR-ReadPaper论文阅读平台
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。
模型性能:
模型 | mAP(原始 repo) | mAP(detrex) |
---|---|---|
DAB-DETR-R50 | 42.2 | 43.3 |
DAB-Deformable-DETR-R50 | 48.7 | 48.9 |
我们的formulation可以使用在原始DETR或者Deformable DETR上,都能相比于原始模型带来增益。基于detrex 的模型带来了更好的结果。
文章内容简述
动机和分析
DETR作为首个使用Transformer做目标检测的模型,非常具有创新性。他将目标检测建模成集合预测的任务,即输入一组(如100个)learnable的query,然后输入对应数量(如100个)的物体预测结果。在训练过程中,使用二分图匹配预测和标签进行训练,而测试时不需要后处理(如nms)即可产生所有结果。
尽管很简单、优雅,但是DETR存在两个问题,一是query含义并不清楚,不可解释,二是模型收敛慢。我们在这篇文章里主要希望解决两个问题。本来这应该是两个独立问题,不过后来我们发现,DETR收敛慢很大程度上来自于query含义的不明。
DETR中的query
在原始的DETR文章中的object query画的比较简单,可能会让人觉得query就是一组向量:

原始DETR中的框图
然而实际上object query应该有两部分组成,我们称之为content query和positional query(这里感谢conditional detr,这两个名字由他们提出。)我们这里画出来了encoder和decoder中的attention的组成部分。

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的作用与soft-ROI pooling
接下来我们想来说明一下cross-attention在做什么,以及与传统的Faster RCNN之间的关系。

attention & soft ROI pooling
我们看到,在attention模块中,query和key计算相似度,同时考虑了content信息和positional 信息,计算出一个注意力图,然后使用这个注意力图从原始图片特征中提取特征。
这个步骤非常类似于传统两阶段检测器中的ROI pooling(或者ROI align)。但是由于注意力图是有query和key共同决定的,并不局限于物体框内信息,我们称之为Soft ROI pooling。
将query建模成anchor box
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提供位置先验

从DETR到DAB-DETR
将anchor box引入之后的好处有:
-
query有了可解释性。 -
为模型提供了位置先验,加速收敛。 -
anchor box中的位置信息可以用来调制注意力图。 -
anchor box可以层与层进行更新。
anchor box直接提供了roi区域用来做soft roi pooling,因而这一描述也更加的自然。
模型改进简述

我们将我们的模型和DETR&Conditional DETR的对比列了出来。我们核心改进有:
-
直接学习anchor box作为query -
使用正余弦编码后的x,y作为positional query -
使用w,h调制注意力图 -
层与层更新anchor box
DAB-Deformable-DETR
我们的建模方式也是通用的,我们将anchor box的建模方式用到deformble DETR里,依然能带来性能的提升。
DETR类模型对比
我们在文章里做了很多对比,包括将DAB-DETR和之前的DETR系列做对比:

DETR类模型的对比
DAB-DETR & Faster RCNN
这里其实更想和大家分享关于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?-ReadPaper论文阅读平台很有启发意义。
综上,DETR结构也可以看做是一种two stage模型,只是用了不同的模型结构(Transformer)和标签分配方式(匈牙利匹配)。
【项目推荐】
面向小白的顶会论文核心代码库:https://github.com/xmu-xiaoma666/External-Attention-pytorch
面向小白的YOLO目标检测库:https://github.com/iscyy/yoloair
面向小白的顶刊顶会的论文解析:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading

【技术交流】
已建立深度学习公众号——FightingCV,关注于最新论文解读、基础知识巩固、学术科研交流,欢迎大家关注!!!
请关注FightingCV公众号,并后台回复ECCV2022即可获得ECCV中稿论文汇总列表。
推荐加入FightingCV交流群,每日会发送论文解析、算法和代码的干货分享,进行学术交流,加群请添加小助手wx:FightngCV666,备注:地区-学校(公司)-名称

【赠书活动】
为感谢各位老粉和新粉的支持,FightingCV公众号将在10月1日包邮送出4本《智能数据分析:入门、实战与平台构建》来帮助大家学习,赠书对象为当日阅读榜和分享榜前两名。想要参与赠书活动的朋友,请添加小助手微信FightngCV666(备注“城市-方向-ID”),方便联系获得邮寄地址。

作者介绍

FightingCV
公众号 FightingCV