TOOD: Task-aligned One-stage Object Detection
1、Introduction
这篇文章想要解决的问题为:得分最高和回归最好的物体可能并不是同一个位置所预测出来的
针对上述问题作者提出了TAHead与TAL
现在主流的检测器会有以下问题
作者接着分析造成上述两种问题的原因,其一是两个分支是分别预测的,并没有太多内在联系,其二是样本分配的策略只关注了几何特征而忽略了得分的特征
所以本片论文的贡献如下:
- 设计了T-head能够让两种任务充分进行互动
- 提出了TAL重新进行正负样本的选择
3. Task-aligned One-stage Object Detection
3.1. Task-aligned Head
该模块的设计原则为:增加两个任务的交互并且提高检测器对两种任务的对其能力
所以作者首先将输出的FPN特征图进行一系列卷积操作得到堆叠的卷积特征图,这样的设计不仅是利用了任务间的交互更为两种任务提供了更有效的多尺度感受野
公式如下所示:
$$
X_{k}^{inter} =
\begin{cases}
\delta(conv_k(X^{fpn})), & {k=1} \
\delta(conv_k(X^{inter}_{k-1})), & k>1
\end{cases}
$$
除了整体的头部设计,作者还对预测器的结构做了改进;作者使用了层注意力机制,促使在预测的时候将两种任务解耦,方法其实就是SE模块,图示只显示了一层全连接层操作,其实一共有两层全连接层操作
Prediction alignment
除此之外,作者为了能够在两个独立任务预测时能够隐式地考虑到别的任务带来的影响,还额外引出了一条支路与预测器的特征图进行逐元素的相乘,如果是预测分支,那么需要一副一通道的特征图,
$$
P^{align}=\sqrt{P×M}
$$
如果是回归分支,就需要预测8通道的特征图
$$
B^{align}(i,j,c)=B(i+O(i,j,2×c),j+O(i,j,2×c+1),c)
$$
其中O代表的8通道特征图
3.2. Task Alignment Learning
3.2.1 Task-aligned Sample Assignment
由于有NMS这一步后处理操作,所以为了能够有更好的结果,需要满足以下两个特点
- 高IoU的anchor需要有更高的分数
- 低IoU的anchor分数也不能很高
Anchor alignment metric
为此,作者使用了一种新的匹配得分方式
$$
t=s^α×u^β
$$
其中s代表的是分类得分,u代表的是IoU
Training sample assignment
对于每个目标都选择m个有最大t的当作正样本,其余均作为负样本
3.2.2 Task-aligned Loss
Classification objective
anchor的真实标签已经从1替换成了t,但是作者发现当正阳本的数量减少的时候,网络就开始很难收敛,所以作者为又对t做了标准化处理,这样可有确保学习道Hard instance,并且可以一定程度保存预测基于改instance预测出的顺序
再结合focal loss,最终可以得到下面的公式:
$$
L_cls=∑_{i=1}^{N_{pos}}|\hat{t_i}-s_i|^γ BCE(s_i,\hat{t_i})+∑_{j=1}^{N_{neg}}s_j^γ BCE(s_j,0)
$$
Localization objective
$$
L_reg=∑_{i=1}^{N_{pos}}\hat{t_i} ̂L_{GIoU}(b_i, b_{igt})
$$