如何用Transformer来做目标检测?一文简述DERT及其变体
©PaperWeekly 原创 · 作者|张一帆
学校|华南理工大学本科生
研究方向|CV,Causality
论文标题:
End-to-End Object Detection with Transformers
收录会议:
ECCV 2020
论文链接:
https://arxiv.org/abs/2005.12872
代码链接:
https://github.com/facebookresearch/detr
facebook 力作,网上类似的解读已经很多了,将 object detection 视为一个 set prediction 的问题。个人觉得他吸引人的地方在于简洁优雅的训练方式,无需任何后处理,实现非常简单。当然 DETR 的缺点也很明显,需要较长的训练时间,而且在小物体上的检测结果并不尽如人意。之后这几篇 paper 也是从不同的角度相对这个问题作出回应。
ViT-FRCNN
论文标题:
Toward Transformer-Based Object Detection
论文链接:
https://arxiv.org/abs/2012.09958
我们知道 ViT 其实只有 encoder,但是他很好地完成了分类这一任务,他只使用 cls token 做分类,其余的 image patch 生成的 token 抛弃掉了。但是这些 token 其实包含大量的局部信息,非常适合用来做目标定位。所以只要能利用好这些 token,我们是不是可以不需要 decoder 呢?答案是肯定的。
ViT-FRCNN,具体与 DETR 的不同之处主要体现在以下几个方面:
无需 CNN 提取特征,采用了 ViT 的输入方式直接将 image 切割成 patch 然后做 Linear projection 即可变为输入。 对于 encoder 产生的各个 embedding,ViT-FRCNN 将他们重新组织成为 feature map。这样我们就可以用 Faster-RCNN 的方法,先在 feature map 上做 region proposal,然后对这些 RoI 做分类和定位。
TSP-FCOS & TSP-RCNN
论文标题:
Rethinking Transformer-based Set Prediction for Object Detection
论文链接:
https://arxiv.org/abs/2011.10881
文章研究了 DETR 训练中优化困难的原因:Hungarian loss 和 Transformer cross-attention 机制等问题。为了克服这些问题,还提出了两种解决方案,即 TSP-FCOS 和 TSP-RCNN。实验结果表明所提出的方法不仅比原始 DETR 训练更快,准确性方面也明显优于 DETR。
作者首先猜测可能是因为使用了二分图匹配来计算两个集合的相似度,但是试验结果表明问题这里的问题其实不算严重。相反,decoder 中的 cross attention 才是罪魁祸首。我们知道 attention map 在初始化的时候是非常均匀的,但是随着他不断收敛会变得越来越稀疏。
我们可以看到,cross-attention 的稀疏性持续增加,即使在 100 次训练后也没有收敛。这意味着 DETR 的交叉注意部分是一个导致收敛速度慢的主导因素。
3.2 我们一定需要交叉注意力吗?
文中认为一种可能的解释是,一个大对象可能包含太多潜在的匹配特征点,这对于只使用编码器的 DETR 来说是很难处理的。另一个可能的原因是编码器处理的单一特征映射对于预测不同尺度的对象是不鲁棒的(融入 FPN 可能能解决这个问题)。
TSP-FCOS:在 backbone 和 encoder 之间加上了 head; TSP-RCNN:在 backbone 和 encoder 之间加上了 RoIAlign;
主要与 DETR 的区别在于 在输入 encoder 之前都会从图像金字塔中抽取 RoI,FoI 作为 encoder 的输入,这一步显然会增加定位精度,但是同时模型也变得更加复杂了。 针对 RoI 采取了特殊的 position encoding (根据 box 的中心点,长宽高设计 encoding) 将传统 FCOS 和 RCNN 匹配 ground truth 和预测 box 的方法融入 DETR 中,进一步提高匹配的效果与效率。
3.4 实验
论文标题:
Deformable DETR: Deformable Transformers for End-to-End Object Detection
收录会议:
ICLR 2021
论文链接:
https://arxiv.org/abs/2010.04159
代码链接:
https://github.com/DeppMeng/Deformable-DETR
文章先 argue 了两个 DETR 面临的主要问题
训练周期长,收敛速度慢,比 Faster-RCNN 慢 20 倍。这主要是因为 attention map 要从均匀到稀疏这个训练过程确实非常耗时。 小物体检测效果差,FPN 可以减缓这个缺陷,但是由于 Transformer 的复杂度是 ,高分辨率对 DETR 来说会带来不可估量的内存和计算速度增加。
而可变形卷积 deformable convolution 就是一种有效关注稀疏空间定位的方式,可以克服以上两个缺点。
4.1 Deformer Attention
作者首先提出了 Deformer Attention 模块,attention 难就难在他是一个密集连接,但是需要学到非常稀疏的知识,Deformer 直接将需要学习的知识定义为稀疏的。与传统 attention 的最大区别在于:Attention weight 不再基于 query 和 key 的 pairwise 对比,而是只依赖于 query。
4.2 Multi-scale Deformable Attention Module
4.3 Deformable Transformer Encoder
这里虽然还称之为 transformer,实际上输入输出已经不是序列数据了,而是保持相同分辨率的多尺度特征图。这里的 query,key 都是多尺度特征图上的像素点,对每个 query 像素点,他的 reference point 就是它本身。之后我们就使用上文提出的 deformable attention 对 query,key 进行处理。
4.4 Deformable Transformer Decoder
将 cross-attention 的部分替换为 deformable attention,保持 self-attention 模块不变(query,key 都是 object query),这样做是为了使得各个 object query 之间也能够有充分的交互,同时减少交叉注意力时 key 值的数目。
有一点也很有意思,我们这些 reference point 并不只是用来索引的,他们还可以作为预测 box 的初始中心点,这样我们就能将回归目标设为 offset 而不是直接预测长和宽,降低了优化的难度。
decoder 部分 iterative bbox refinement 和 two stage 的思路看起来就是传统检测模型的一种引入。
4.5 Experiments
ACT
论文标题:
End-to-End Object Detection with Adaptive Clustering Transformers
论文链接:
https://arxiv.org/abs/2011.09315
文章的 motivation 给的比较清晰,主要有两点:
而第二个观察告诉我们,不同层特征的相似度是不同的,因此我们可以对不同层规定不同数目的 prototype,如果这一层大多数都很类似,那我们大可以选比较少的 prototype。文中采用了 E2LSH 这种哈希技术来自动进行聚类。
5.1 Adaptive Clustering Transformer
主题内容到这里就结束了,文章还提到了误差的分析和使用知识蒸馏的方式进一步提升效果。
5.2 Experiments
更多阅读
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。