论文名称:R-FCN: Object Detection via Region-based Fully Convolutional Networks
论文地址:传送门
Introduction
传统的影像分类模型需要依赖特征的平移不变性(translation-invariance),而对于检测网络,影像的平移显然会影像到目标的定位与识别,因此其需要依赖位置敏感性(translation-variance)。通过 RoI pooling 的插入,打破了原卷积网络的平移不变性,但这种做法牺牲了训练和测试效率。而R-FCN在提升精度的同时利用“位置敏感得分图(position-sensitive score maps)”提升了检测速度。本文的核心即替换Faster R-CNN中单纯的ROI Pooling,引入psROIpooling(Position Sensitive ROI Pooling),从而引入了位置信息,提升了检测速度。
基于ResNet-101的R-FCN在PASCAL VOC 2007的测试集上的mAP=83.6%,速度为170ms per image。
Network Design
R-FCN如上图所示为R-FCN的示意图,其大部分结构借鉴于Faster R-CNN,如RPN,ROI Pooling,但不同的是将其中的ROI Pooling替换为了psROIPooling,从而解决了位置敏感性的问题。其流程如下:
- 影像送入Backbone网络,输出特征图
- 使用RPN网络提取Region
- 加入一个具有特定数量卷积核的卷积层,得到一定量的特征图
- 对于每一个ROI,使用psROIpooling得到新的特征图
- Vote确定特征图所属ROI的类别
接下来会详细介绍其实现细节。
Position-sensitive score maps & Position-sensitive RoI pooling
R-FCN采用Resnet作为backbone,将其average pooling和fully connected层的最后一个卷积层作为输出,其是一个2048维的向量(),接着再加入一个随机初始化的1000维的卷积层(),最后加入一个包含个卷积核的卷积层,从而得到个特征图。
为了将位置信息编码进网络,本文首先将每个ROI分割成的网格,如对于大小为的ROI,则其每一个网格的大小约为。
接着,我们让第个score map负责位置的预测,如对于黄色的score map,我们仅取其左上角的一个网格(即第个网格)作为新的score map的一部分,那么例如蓝色的score map则负责位置的预测,即仅取其位置的网格作为新score map的一部分。
经过这样的映射,新组成的score map就如上图右侧经过ROI pooling之后所示,此时向量的大小为,即新的score map是由个特征图经过映射得到的,包含了位置信息,而不是直接的进行ROIpooling。
接着对于大小为的score map,对维上每一层都进行average pooling,得到大小为的一维向量,接着使用softmax公式计算其最终的类别。其公式如下:
其中表示对于第类经过pool之后的第个网格,表示个score map中的一个,表示ROI的左上角
Bounding Box Regression
为了准确预测bounding box,本文在的卷积层后添加了一个个卷积核的卷积层,产生了一个维的向量,然后使用average pooling转成4维的向量,让这个4维向量编码。
网友评论