导读
这篇文章提供了一种使用不同proposal来分别做检测和分类的二阶段物体检测方法,相比之前的方法有稳定的performance的提升。
摘要:FasterRCNN中的分类和定位是共享的head,这种方式用了很长时间,这篇文章提供了一个观点,分类和定位的特征在空间上是不对齐的,这种不对齐性在使用sibling head(即两个结构一样的head)的时候,会对训练产生影响,但是这个不对齐的问题可以通过一个简单的操作,叫做task-aware spatial disentanglement (TSD)来解决。对于分类和定位的任务,TSD从空间的维度上生成两个独立的proposal。这其实来自于一个简单的直觉,在分类的时候,显著性的区域提供了最多的信息,而在定位的时候,边缘的区域更加适合进行回归box。这种简单的设计,就可以在各种backbone上有3%mAP的提高。然后,我们提出了一种渐进式的约束,又提升了1mAP。
1. 介绍
本文定量研究了anchor based物体检测器中的sibling head的任务不对齐的现象。我们研究了分类和定位的空间敏感性,基于常用的sibling head,我们对空间敏感性热图进行了可视化,见图1,第一列是分类的空间敏感性热图,第二列是定位的空间敏感性热图,这表明对于分类,显著性区域的信息量大,对于定位,边缘区域的信息量大。也就是说,如果检测器是从相同的point/anchor上进行分类和定位的预测的,就无法得到很完美的结果。
总结一下,本文的贡献如下:
1)我们深入研究了ROI based物体检测器的任务耦合性,发现了检测性能的一个瓶颈,限制了模型的效果。
2)提出了一个简单的操作叫做task-aware spatial disentanglement (TSD),用来解决分类和定位任务之间的冲突,这个操作可以生成互不干扰的特定任务的特征表示,减少了任务之间的相互影响。
3)我们进一步提出了一个渐进式的约束,进一步提升了效果。
4)我们在COCO和OpenImage上进行了验证,我们的方法相比于原来有稳定的提升效果。
2. 方法
2.1 TSD
如图2,经典的FasterRCNN,目标是在共享的特征P上,优化分类和回归的loss:
后面发现,共享P其实不好,于是为每个任务单独生成一个特征表示,虽然这种方法有提升,但是在空间上的不对齐性仍然存在。
对于这个问题,我们的目标是在空间维度上解决任务的不对齐的问题,我们提出了TSD head,如图2,于是,式子(1)可以写成:
其中,和是基于同一个共享的P生成的
其中,是一个P上逐点的变形,是每个proposal上的变换。
具体来说,TSD以RoI的特征P为输入,生成不相干的两个proposal和,不同的任务通过分开的proposal可以解开耦合,然后,分类和定位的特征图可以通过两个并行的分支得到。在第一个分支中,分类的特征图送到一个3层的全连接中进行分类,在第二个分支中,通过提取到的特征再送到和第一个分支类似的结构中进行回归。TSD适用于大多数的RoI based检测器。
2.2 任务相关的空间解耦学习
受到图1的启发,我们提出了任务相关的空间解耦学习,入图2,定义了RoI特征的P和F,我们在TSD中使用了基于deformation-learning的方法。对于定位,设计了一个3层的全连接Fr,用来在P上生成,这个过程可以写成:
其中,是一个1x1x2的向量,
3. 实验
消融实验
从表1可以看到,从主干上就把分类和定位分开对performance影响很大,这表示backbone中的语义信息应该在分类和回归任务中共享。但是,把head分开有是对performance有帮助的,而使用了TSD可以进一步的提升performance。
在TSD中,共享的propsal P也是可以用来做分类和回归的,我们发现,对这个head进行训练是有互补的作用的。结果见表2,而在推理阶段,只有TSD部分保留。
不同主干网络上的效果:
在mask-rcnn上的效果:
和其他方法的比较:
首发:AI公园公众号
作者:ronghuaiyang
推荐阅读
关注图像处理,自然语言处理,机器学习等人工智能领域,请点击关注AI公园专栏。
欢迎关注微信公众号