【论文阅读】Deformable DETR

背景和改进思路

DETR的优点:消除了 anchor 和 nms(用集合的思想回归出200个 query,之后再使用匈牙利算法二分图匹配的方式得到最终的正样本和负样本),第一个做到了真正的端到端的检测。

缺点:

  1. 收敛慢,训练起来非常慢,至少要训练500个epoch,比faster rcnn慢十几倍(注意力模块初始化比较稀疏,需要很长的时间去学习,收敛比较慢);

  2. 计算量大:对小目标的性能非常不好,因为 DETR 是无法使用高分辨率图片的,计算量太大了,并且没有使用多尺度特征。

DCN(Deformable Convolution Networks)在卷积当中引入了学习空间几何形变的能力,不再是使用常规的领域矩阵卷积,而是让卷积自动的去学习需要需要卷积的周围像素,以此可以适应更加复杂的几何形变任务。

Deformable CNN(DCN)

作者这里将DCN和DETR相结合,DETR不是收敛慢和计算量大嘛,而且主要的原因是transformer模块带来的频繁计算(每个位置需要计算和其他所有位置的相似度,而且不像卷积那样共享参数),那么很朴素的想法就是:让每个位置不必和所有位置交互计算,只需要和部分(学习来的,重要的部分)进行交互即可。这个思想不正和DCN的思想不谋而合,所以作者提出 Deformable Attention 模块,并且将这个模块很方便的应用到多尺度特征上。

image.png

细节原理

多尺度特征

上节提到了作者提出的Deformable Attention模块,可以很方便的处理多尺度特征。于是Deformable DETR在backbone(ResNet50)部分会提取不同尺度的特征,总共会提取4层。如下图,前三层分别来自ResNet50的Layer2-4,下采样率分别为8、16、32,再分别接一个1x1卷积+GroupNorm,将特征统一降维到256。第三层来自Layer4,经过一个3x3卷积 + GroupNorm,得到下采样率为64、将维到256的特征。

image.png

多尺度可变形注意力

image.png

image.png

n×n n \times n 的注意力机制换成针对指定数量的采样点进行注意力计算。

image.png

986d7d4005388c073d838184236a2351.jpg

Bounding Box 偏移量修正

Deformable DETR 的 bbox 预测头的预测结果是相对于参考点的坐标偏移量,这样的设计可以降低优化网络的难度。首先经过 Linear 层得出参考点的初始坐标,因此最后的 bbox 输出不再表示坐标值,而是表示了坐标的偏移量,用以对参考点的坐标进行修正,这样也更符合网络的设计。

b^q={σ(bqx+σ1(p^qx)),σ(bqy+σ1(p^qy)),σ(bqw),σ(bqh)}\hat{\boldsymbol{b}}q=\left{\sigma\left(b{qx}+\sigma^{-1}\left(\hat{p}{qx}\right)\right),\sigma\left(b{qy}+\sigma^{-1}\left(\hat{p}{qy}\right)\right),\sigma\left(b{qw}\right),\sigma\left(b_{qh}\right)\right}

其中,(p^qx,p^qy)(\hat{p}{qx}, \hat{p}{qy}) 表示的是参考点的坐标,(bqx,bqy)(b_{qx}, b_{qy}) 表示的是偏移量 Offset,σ\sigma 指 Sigmoid 归一化函数。

经过多层 Decoder 网络后,逐渐迭代式地优化参考点的坐标。

评论 (0)

暂无评论,来发表第一条评论吧!