R-FCN论文理解

R-FCN:Region-based Fully Convolutional Networks 记录

提出R-FCN的理由:faster rcnn的速度太慢,其原因在于region-wise的计算量太大。作者想要采用全卷积的结构,实现所有计算在分类和定位网络上的共享。作者尝试简单的将分类和定位子网的隐藏层去掉,结果并不好,原因就在于分类的平移不变性和定位的平移可变性。

平移不变性vs平移可变性:对于分类任务而言,结果是平移不变的,即图像中物体的位移不应该对分类的结果产生影响。而对于定位任务而言,结果是平移可变的,即图像中物体的位移应该反映在定位的结果上。两者之间的矛盾导致了分类任务与定位任务直接共享网络的结果并不好,因此需要引入位置信息的region-wise的操作,但这降低了模型的效率。在ResNet论文中,当作者将其用于检测任务时,Roi-Pooling的位置在第四阶段卷积之后,作者通过之中方式为网络引入位置信息,从而产生平移可变性,但是这样牺牲了算法速度。而直接将Roi-Pooling层放置在第五阶段卷积之后,效果大大下降。

Position Sensitive Score Map:作者通过这一结构为模型引入位置信息。

R-FCN论文理解_第1张图片

如图所示,不同颜色的score map学习不同位置的信息,每个颜色得分图维度为(C+1),每一个维度学习某一类物体左上角的信息。比如你要检测目标有人脸和飞机这两类类,可以理解为黄色中一张得分图在学习眼睛的信息,一张在学习机翼信息,而绿色中有一张在学习鼻子,另一张在学习机身。这样得分图中自然就含有了位置信息。将RPN的输出结果作用在得分图上,按不同的位置进行Roi-pooling,最后经过vote(平均池化),输出分类信息与定位信息(图上没有画出,但代码中有)。由于pooling操作的计算代价很小,那么region-wise的操作几乎不耗费时间,从而速度提升到了Faster RCNN的2.5倍。

你可能感兴趣的:(目标检测)