1、为什么要用全卷积网络?
Faster RCNN在RoI Pooling后采用了全连接网络来得到分类与回归的预测,这部分全连接网络占据了整个网络结构的大部分参数,而目前越来越多的全卷积网络证明了不使用全连接网络效果会更好,以适应各种输入尺度的图片。
一个很自然的想法就是去掉RoI Pooling后的全连接,直接连接到分类与回归的网络中,但通过实验发现这种方法检测的效果很差,其中一个原因就是基础的卷积网络是针对分类设计的,具有平移不变性,对位置不敏感,而物体检测则对位置敏感。微软亚洲研究院的代季峰团队提出了RFCN(Region-based Fully Convolutional Networks)算法,利用一个精心设计的位置敏感得分图(position-sensitive score maps)实现了对位置的敏感,并且采用了全卷积网络,大大减少了网络的参数量。

2、R-FCN的网络结构图
全卷积网络R-FCN
R-FCN采用了ResNet-101网络作为Backbone,并在原始的100个卷积层后增加了一个1×1卷积,将通道数降低为1024。此外,为了增大后续特征图的尺寸,R-FCN将ResNet-101的下采样率从32降到了16。具体做法是,在第5个卷积组里将卷积的步长从2变为1,同时在这个阶段的卷积使用空洞数为2的空洞卷积以扩大感受野。降低步长增加空洞卷积是一种常用的方法,可以在保持特征图尺寸的同时,增大感受野。
在特征图上进行1×1卷积,可以得到位置敏感得分图,其通道数为(k^2) (c+1)。这里的c代表物体类别,一般需要再加上背景这一类别。k的含义是将RoI划分为k^2个区域,如图4.17分别展示了k为1、3、5的情况。例如当k=3时,可以将RoI分为左上、中上、右上等9个区域,每个区域对特征区域的信息敏感。因此,位置敏感得分图的通道包含了所有9个区域内所有类别的信息。
全卷积网络R-FCN
对于一个位置敏感得分图上的点,假设其坐标为m×n,通道在右上区域,类别为人,则该点表示当前位置属于人并且在人这个“物体”的右上区域的特征,因此这样就包含了位置信息。
在RPN提供了一个感兴趣区域后,对应到位置敏感得分图上,首先将RoI划分为k×k个网格,如图4.18所示,左侧为将9个不同区域展开后的RoI特征,9个区域分别对应着不同的位置,在Pooling时首先选取其所在区域的对应位置的特征,例如左上区域只选取其左上角的特征,右下区域只选取右下角的特征,选取后对区域内求均值,最终可形成右侧的一个c+1维的k×k特征图。

位置敏感得分图上的RoI

接下来再对这个c+1维的k×k特征进行逐通道求和,即可得到c+1维的向量,最后进行Softmax即可完成这个RoI的分类预测。
至于RoI的位置回归,则与分类很相似,只不过位置敏感得分图的通道数为(k的2次方)(c+1), 而回归的敏感回归图的通道数为(k^2)×4,按照相同的方法进行Pooling,可形成通道数为4的k×k特征,求和可得到1×4的向量,即为回归的预测。
由于R-FCN去掉了全连接层,并且整个网络都是共享计算的,因此速度很快。此外,由于位置敏感得分图的存在,引入了位置信息,因此R-FCN的检测效果也更好。

分类:

技术点:

相关文章: