FCN系列二 R-FCN

论文:http://papers.nips.cc/paper/6465-r-fcn-object-detection-via-region-based-fully-convolutional-networks.pdf

参考了@AI之路一篇博文:https://blog.csdn.net/u014380165/article/details/72848254


R-FCN介绍:

注意,虽然名字是R-FCN,但其实更像是Faster R-CNN的改进版,和上一篇FCN相似点只是全连接换成了卷积而已。所以该网络做的事情和Faster RCNN做的是一件事:进行目标检测(分类加标框)。相比Faster RCNN, 速度快了3倍以上,mAP也有一点提升,像YOLO, SSD等目标检测算法都不是基于Region。


改进:

1. 更多的shared layer 和更少的sub network layer。

图片取自:https://blog.csdn.net/WZZ18191171661/article/details/79481135

以主网络为ResNet101为例,在Faster RCNN中,ROI Pooling层的输入是在conv4_x,在做完ROI Pooling后会继续接conv5_x,conv5_x包含9个卷积层,另外在conv5_x后还有几个全连接层,这些层的计算都直接作用在每个roi上,因此存在许多重复计算。而在R-FCN中,所有能共享的层都在ROI Pooling之前做好了,因此在ROI Pooling后基本不会有太多的重复计算。为了要在ROI Pooling之前实现层共享,一方面将conv5_x的计算移到Pooling层之前,但这样依然还存在一些全连接层的重复计算,因此再引入position-sensitive score map和position-sensitive ROI Pooling,使得经过Pooling后简单地执行一些操作就能得到回归和分类结果,而不再像Faster RCNN一样用几个全连接层去得到结果。

2. 采用FCN的方式

不采用FC层,采用FCN,参数大大减少,因而训练推理都会更加迅速。

3. 需要解决分类和框回归之间的冲突,分类要求网络对目标的位置不这么敏感,而框回归又想要使得网络对位置要有敏感(即有区分度),R-FCN就是要找到适中的一个较优位置敏感度。


如上图,首先从得到的特征提取网络的输出feature map,它的channel和选用的网络有关,之后卷积成(k*k(C+1))channel 的feature map进行后续RPN操作,得到ROI,再进行位置敏感得分映射的操作,然后进行voting操作,具体操作如下:

位置敏感得分映射:

顾名思义,位置敏感,主要是为框回归的准确性做考虑,如上图所示,feature map被分成了K*K组(K=3),在ROI内,将ROI分成K*K个小块,然后拼接,总共会生成channel为(C+1)的新feature map。其大小与这个图像的G.T.的大小有关。原作者是想表达,比如一个人的手啊,头啊,脚啊都在不同的小map里面,然后组成新的map,不过我还不太理解,这和直接使用多个feature map在卷积成(C+1)个featuremap 进行RPN,再进行RPN+VOTING有什么质的区别。或许实验更好吧。

这里我的想法和@技术挖掘者 不谋而合,它的这篇文章:https://blog.csdn.net/WZZ18191171661/article/details/79481135

就是说,上面的组合方式是作者的假设,作者以此种方式训练网络,那么网络自然会趋向于表达这样的分块组合形式,这种逻辑关系并非来自于事物本身的属性和规律,而是人为设定的。这也是我所不解,觉得原作有些牵强的地方。

voting操作:


如上图所示,首先对生成的K*K的feature做一个位置敏感RoI-pool得到一组分数,再以此作为分类标准,Figure 3的K*K个值(平均池化得到)都较高,所以识别为是人,Figure 4则较低,识别为非人。这里的判断是基于上一块的到的(C+1)的RoI好的feature map的channel中代表person类别来做的。

另外一个任务是进行框回归

本文的做法是设置一个与位置敏感得分映射并列的得分映射,这个映射是之前的feature map 经过卷积成4*K*K的,那么同样的,一个RoI得到一个这样的估计值,然后再经过一个pooling 就能带到一个,


LOSS函数:

如下:C表示是否属于这一类,第一项是交叉熵loss,第二项同Faster RCNN


注意点:

1. ROI的选取要进行排序取最前的N个结果,依据是与G.T.重合度(IOU),保持正负样本之间的比例是1:3用来训练会较好,网络不容易失衡,因为RPN本身会产生大量的负样本,远远多于正样本,这非常不平衡。

2. 空洞卷积:

参考博文:https://www.zhihu.com/question/54149221

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值