【转】R-FCN

来源:互联网 发布:算法工程师的笔试 编辑:程序博客网 时间:2024/05/17 22:15

转自:http://blog.csdn.net/duinodu/article/details/69790844

RFCN是基于Faster RCNN的工作,base net得到feature maps, 用RPN得到proposals。由于classification需要固定长度的feature vector,就需要ROI pooling layer + fully connected layer来获得,但是这个过程会去除目标的位置信息,而这个信息对于检测问题,至关重要。所以,RFCN提出position-sensitive score maps来解决这个问题。

position-sensitive ROI pooling layer的输入是ROI features, 输出是C+1维的特征向量。
以k=7, C=20为例,具体的数据形式如下:

其实在第二个卷积的时候,它产生的7*7*21个输出,是不知道具体所谓的位置信息的,而是后面的position-sensitive roi pooling这一步的特定选取规则,使得对于每一类,这49个maps产生了差异,在训练的时候,为了使最后的损失函数最小,这49输出对应的kernel就慢慢地显现出差异。

rfcn的核心是延续fastRCNN的思想:对于每一个proposal,所有的卷积操作(费时的操作)都只做一次。fastRCNN提出baseNet,让proposal从feature map上寻找roi,但是不同的proposal还是得重复进行后面的全连接层;rfcn提出psROIpooling, 让proposal从bbox map和score map上寻找roi,从而取消全连接层,这样不同的proposal做的重复的事情,就只有后面的average pooling。其实,per roi map还是二维的,最后二维变成一维是通过average pooling来实现的。