前言
如果说FPN是scale aware,即通过不同尺度的特征图实现对不同尺度目标的检测,那么本文提出的MatrixNets(xNets)就是scale and aspect ratio aware,与FPN的不同尺度相比,xNets多了一个长宽比,可以处理不同尺度和不同长宽比的目标。如下图所示,(a)是FPN,(b)是xNets,5个FPN层可以看作是xNets矩阵结构中对角线上的层,矩阵结构中的其它层是由对角线上的层经过下采样得到的。
FPN有什么缺点呢? 虽然FPN可以处理不同尺度的目标,但它并没有对不同长宽比的目标提出任何应对方法。比如说一座塔,或者一把小刀,它们明显是“瘦长”型的,那么是根据它们的长还是宽来把它们映射到不同层中呢?如果根据目标的长边来把它分配给某个层,那么这种暴力的下采样会导致短边信息的丢失。这个问题在MS-COCO数据集中是很普遍的,如下图所示,纵轴是目标的数量,横轴是目标的长边与短边的比值。作者发现,50%的目标的长短边的比值大于1.75,14%的目标的长短边的比值大于3,因此,对这些长宽比不同的矩形进行合理的建模对于提高检测性能是非常重要的。
本文提出了MatrixNets(xNets),一种新的同时考虑尺度和长宽比的CNN结构,它将不同尺度和不同长宽比的目标分配到不同的层,使得每层的目标大小接近统一,这种分配使得所有长宽比和尺度的目标的信息可以被一视同仁。和FPN类似,xNets可以被应用到任何一个backbone中。
作者还考虑了xNets的两个应用,一个是在anchor-based one-stage目标检测器中使用xNets,另一个是在corner-based目标检测器中使用xNets,其实就是如何用xNets提高CornerNet结构。
MatrixNets
如上图所示,MatricNets使用矩阵结构的层为不同尺度和不同长宽比的目标建模,设 l i , j l_{i,j} li,j表示位于矩阵 i , j i,j i,j位置上的层,每个 l i , j l_{i,j} li,j对输入图像的宽度进行 2 i − 1 2^{i-1} 2i−1倍的下采样,对高度进行 2 j − 1 2^{j-1} 2j<