问题
本文首先分析了FPN网络的必要性。并通过实验证明,FPN有效的原因并不是因为融合了不用尺度的特征,而是因为其采取的分治的处理方法。其实验结果如图所示:
其中MiMo(Multi-Input-Multi-Output)表示的是不同尺度的特征图作为输入,同时不同尺度的特征图对应多个输出,SiMo(Single-Input-Multi-Output)表示仅使用单个尺度的特征图作为输入,然后分别对特征图进行下采样或者上采样最后生成不同尺度的输出。其余的方法类似。从作者的实验结果可以看出,其中SiMo网络获得的性能和MiMo网络获得的性能非常相近,其差别<1AP。这在一定程度上说明了FPN网络的成功并不是因为其融合了多尺度的特征,而是因为他分别处理了不同尺度的对象。同时也说明,一定尺度的特征图其实已经包含了丰富的不同尺度的上下文信息。
在了解了FPN网络成功的主要因素后,作者又分析到,虽然分治能够提高模型的检测性能,但是其在一定程度上带来了额外的计算开销,减慢了模型的检测速度。因此,作者还是使用SiSo结构的检测头。为了能够弥补SiSo结构和MiMo结构之间的性能差异,作者分析了SiSo结构性能差的原因。其主要是两方面的原因:
-
当尺度的特征图通常只有有限的感受野,感受野只能覆盖部分大小的目标,因此其检测性能较差。此外,使用标准卷积和空洞卷积来扩大网络的感受野也不能从根本上解决问题。因为该方法是在原来的基础上乘一个大于1的倍数,会使得网络的感受野整体扩大。具体可参考下图:
上图中绿色的实心点表示的是检测目标所需的感受野的大小,从左到右一次增大。(a)展示了原始网络的感受野。(b)展示了使用标准卷积和空洞卷积后的感受野,从图中可以看出,虽然感受野有一定程度的扩大,但是整体右移了,对于一些小目标仍然难以处理。(c)为作者在本文中提出的基于残差的空洞卷积特征提取网络。
-
Positive anchor不平衡的问题。从multi-out到single-out, 网络中的anchor的数量大幅下降,这就带来了anchor稀疏的问题,anchor稀疏带来了另一个问题就是就是anchor和GT匹配的问题。由于传统的GT和anchor通常是根据Max-IoU的策略来进行绑定的。这就导致大的GT通常比小的GT能够绑定更多的anchor,这使得网络倾向于关注大的GT,而忽略了小的GT。
从上图中可以看出,Max-Iou表示的根据IoU来将anchor和GT绑定后的效果。large的GT绑定了非常多的anchor。ATSS是另一种分配策略。Top1则是只选择IoU最大的anchor。
解决方法
单一特征图感受野有限的问题
作者通过空洞卷积来解决感受野有限的问题。但是单纯的使用空洞卷积并不能从根本上解决问题,具体原因在上一节的1中已经分析了。因此作者引入了ResNet的残差结构。具体结构如下图所示:
这里为什么作者使用相加来融合不同尺度的特征而不是使用拼接的方法?分析其原因作者的目的是在同一个位置能够获得不同感受野的特征。如果使用拼接的方法的话,相同的位置仍然只有一个感受野的特征,这不能满足作者在本工作中的需求。(在尝试的特征融合的时候,可以根据具体情况分析使用concat方法还是使用add的方法来进行融合)
positive anchor不平衡的问题
positive anchor的划分在目标检测中是一个非常重要的优化问题。在anchor-based的方法中,我们通常根据anchor和GT的IoU来确定anchor是否是positive的。当anchor与GT的IoU超过一个阈值时,我们就将该anchor确定为positive。这就导致大的GT通常回和大量的anchor具有超过阈值的IoU。这使得总的positice anchor中,对应的大的GT的anchor占大多数,这就使得网络倾向于优化大的GT。为了解决这个问题,作者提出了一种新的匹配策略,作者将其称为Uniform-Matching。
为了能够保证不同大小的GT都能匹配相同数目的anchor,作者并没有根据IoU来确定anchor是positive还是negative,而是选择距离GT最近的K个anchor作为posirtive的anchor。同时忽略IoU大于0.7的negative的anchor,忽略IoU小于0.15的positive的anchor。
此外,作者还发现在本工作中限制中心点在一定范围内偏移也是非常有效。作者限制所有anchor中心点的偏移应该小于32 pixels.