研究背景
现在的object detector无论是one-stage还是two-stage,通常都是先生成一组具有分类score的bbox集,然后通过NMS进行后处理来去除同一目标上面的重复bbox。在NMS中,FCOS之前一般使用cls score对bbx进行排序,这损害了检测性能,因为cls score并不总是很好的表示bbox的好坏。为了解决这个问题,之前要么多预测一个IoU分数,要么预测一个centerness score(FCOS),然后将其乘以cls score,将最后的结果作为NMS的排序依据。这些方法可以缓解分类分数与目标定位精度之间的不匹配问题。然而,它们是次优的,因为将两个不完美的预测相乘可能会导致更差的秩基。此外,增加一个额外的network branch来预测 localization score并不是一个优雅的解决方案,而且会增加额外的计算负担。
基于上述说明,作者提出了他的问题:难道非得预测一个额外的 localization score?我们难道不能将其合并到cls score中吗?也就是说,预测一个localization-aware或IoU-aware的cls (IACS:IoU-aware classification score),该分数同时表示某个对象类的存在和生成的包围框的定位精度。
解决思路
IACS-IoU-Aware Classification Score
IACS定义为分类得分向量的标量元素,其中ground-truth类标签位置的值为预测边界框与其ground truth之间的IoU,其他位置为0。如图所示,不是学习预测一个bounding box的类标签(a),而是学习IoU-aware分类得分(IACS)作为检测分数,融合了目标存在置信度和定位精度(b)。
Varifocal Loss
本文设计了一种新的Varifocal Loss来训练密集目标检测器来预测IACS。由于它的灵感来自Focal Loss,这里也简要回顾一下Focal Loss。Focal Loss的设计是为了解决密集目标检测器训练中前景类和背景类之间极度不平衡的问题。定义如下。
在训练detector对连续的IACS进行回归时,我们借用focal loss的思想来解决class imbalance的问题,然而不像focal loss一样平等的对待正负样本,我们不平等的对待他们,我们的varifocal loss定义如下:
p:IACS的预测值;
q:如果该点是background,q=0,如果该点是foreground,那么q就等于该点生成的bbox与gt之间的IoU;
γ和alpha:可调节的比例因子;
如上式所示,我们使用pγ来对负例的loss进行缩放降低,而不以同样的方式降低正例(q>0)。为了平衡正例和负例的损失,我们在负损失项上增加了一个可调节的比例因子α。
Star-Shaped Box Feature Representation
按照FCOS,bbox被encoder为一个四维向量(l, t
, r, b
),分别表示中心点到边界框的左侧、顶部、右侧和底部的距离。我们选取(x, y), (x-l, y), (x, y-t
), (x+r, y), (x, y+b
), (x-l, y-t
), (x+l, y-t
), (x-l, y+b
), (x+r, y+b
) 9个采样点,然后将它们映射到feature map上。它们与(x, y)的相对偏移量作为与deformed conv的偏移量,然后将这9个投影点处的特征与deformed conv进行卷积。
Bounding Box Refinement
作者通过Bounding Box Refinement进一步提高了目标的定位精度,具体来说,就是将Bounding Box Refinement建模成为一个残差学习问题。首先,我们有一个初始化的bbox(上图红框,下文用粗框表示),用(l, t
, r, b
)对它进行表示,再在粗框的基础上,我们学习一个距离尺度因子(distance scale factor),对粗框进行缩放,这个尺度因子可以表示为(∆l, ∆t, ∆r, ∆b),最后将它们相乘得到细化框(l, t, r, b)。
(l, t, r, b) = (∆l×l, ∆t×t
, ∆r×r, ∆b×b
)
VarfocalNet
将上述三个组件附加到FCOS网络结构中,去掉原有的中心分支,就得到了VarifocalNet。上图说明了VFNet的网络架构。VFNet的骨干网和FPN网部分与FCOS相同。区别在于头部的结构。
Loss Function and Inference
Lbbox:GIoU loss;
bbox`:粗框;
bbox*:GT box;
bbox:细框;
λ0和λ1:balance factor;