【论文解读】TOOD:任务对齐的一阶段物体检测器
导读
显式的使用loss来对齐分类和定位任务。
TOOD: Task-aligned One-stage Object Detection
论文链接:后台发送“tood”获取论文和代码链接。
1、介绍
现有的物体检测方法的2个局限性:
(1)分类和定位的独立性。目前,分类和定位一般用的是2个独立的分支,这样使得2个任务之间缺乏交互,在预测的时候就会出现不一致性。得分高的预测位置不准,位置准的预测得分不高。
(2)任务无关的样本分配。大多数的anchor free的物体检测器使用基于几何的方式来分配样本点,anchor-based物体检测器一般使用IoU的方式来分配样本点,但是对于分类最优的anchor和对于定位最优的anchor往往并不是同一个。这些常用的样本分配策略都是和任务无关的,不能对这两个任务同时做出准确的预测。
针对上面的2个问题,我们提出了任务对齐的一阶段物体检测器(Task-aligned One-stage Object Detection:TOOD)。
Task-aligned head
我们设计了一个Task-aligned head (T-head) 来增强2个任务之间的交互。概念上很简单:计算2个任务的交互特征。通过TAP(Task-Aligned Predictor )来做预测。
Task alignment learning
我们提出了Task Alignment Learning (TAL) 来显式的把两个任务的最优anchor拉近。这是通过设计一个样本分配策略和任务对齐loss来实现的。样本分配器计算每个anchor的任务对齐度,同时任务对齐loss可以逐步将分类和定位的最佳anchor统一起来。
2、方法
总的pipeline还是‘backbone-FPN-head’ 的形式,这里和ATSS一样,每个位置只使用了一个anchor。这里的anchor其实和anchor free中的anchor point是一个概念。总体结构如下图,T-head和TAL协同工作,提升性能。具体来说,T-head首先对FPN特征进行预测,然后TAL对这两个任务给出一个一致性的度量,最后T-head会自动的调整分类输出和定位输出。
2.1 Task-aligned Head
我们设计的这个任务对齐头如下图(b),目标有两个,提高2个任务的交互性,增加检测器学习对齐的能力。
如图b所示,FPN的特征先经过N个堆叠的卷积,并保存每次卷积的结果,这样就得到N个输出,称为,其实就是N个特征group,这N个输出具有不同尺度的感受野,其实就是多尺度的特征。然后经过两个TAP,进行对齐的分类和定位预测。
TAP的结构如图c所示,首先经过一个Layer attention模块,其实就是计算每个特征group的权重,然后相乘。然后拼接起来做卷积,得到,然后得到分类得分或者包围框。
预测对齐,在预测的时候,我们需要显式的做一次对齐,对于分类,我们用空间概率图来调整分类预测:
对于包围框,我们用空间偏差图来调整预测:
这两个用来对齐的图是自动学习出来的:
2.2 Task Alignment Learning
2.2.1 任务对齐样本分配
anchor对齐度量
我们用分类得分和预测框和gt的IoU的高阶组合来表示这个度量:
这里α和β可以用来控制得分和IoU对这个指标的影响程度。
训练样本分配
对于每个gt,我们选择m个具有最大t值的anchor作为正样本点,其余的为负样本。另外,训练的时候还会计算一个新loss,用来对齐分类和定位。
2.2.2 Task-aligned Loss
分类目标函数
为了显式的增加对齐的anchor的得分,减少不对齐的anchor的得分,我们用t来代替正样本anchor的标签。我们发现,当α和β变换导致正样本的标签变小之后,模型无法收敛,因此,我们使用了归一化的t,这个归一化有两个性质:1)确保可以有效学习困难样本,2)保持原来的排序。
同时,我们借鉴了focal loss的思想,最后的损失函数如下。
定位损失函数
和分类类似,我们使用归一化的t来对GIoU loss进行了加权:
总的loss就是把这两个损失加起来。
3、实验
3.1 消融实验
使用T-head的效果:
样本分配策略的效果:
TOOD在anchor free和anchor based上的比较:
超参数的效果:
和其他的SOTA的比较:
任务对齐的质量分析:
往期精彩回顾 本站qq群851320808,加入微信群请扫码: