Faster-RCNN理解

1、Faster-RCNN基本结构html

image

该网络结构大体分为三个部分:卷积层获得高位图像特征feature maps、Region Proposal Network获得候选边框、classifier识别出物体及获得准确bounding box。网络

2、feature maps函数

最后一层卷积层输出。.net

3、RPN3d

一、RPN(Region Proposal Networks)htm

image

feature maps再以3x3的卷积核进行卷积获得256xHxW的高维特征图,每一个高维像素点对应原图9个anchor boxes(长宽比3种状况,boxes大小也有3种状况),共有WH*9 个anchors。接着将256xHxW的高维特征图一方面用18通道输出的1x1的卷积核将对应的anchor boxs进行前景背景分类,另外一方面用36通道输出的1x1卷积核对断定为前景的anchor进坐标修正。blog

训练前景背景分类的时候,须要获取每一个anchor的标签,当anchor box与ground truth的IOU在0.3如下,断定为背景,当anchor box与ground truth的IOU在0.7以上,断定为前景,其余状况不用于训练。在训练anchor属于前景与背景的时候,是在一张图中,随机抽取了128个前景anchor与128个背景anchor。采用SoftmaxWithLoss进行训练。get

训练方框回归的时候,博客

804917-20170316173931166-2076981304

也须要获取每一个anchor的标签,即每一个anchor到ground truth的Gx,Gy,Gw,Gh。训练时只要训练断定为前景的anchor就行了,采用SmoothL1loss进行训练,具体能够描述为:it

20180120110847681

总的损失函数为:

image

在这里λ被设置为10,Ncls为256(前景背景分类的正负样本分别为128),Nreg为2400(通常feature map的宽高为60x40)。这样设置的话,RPN的两部分loss值能保持平衡。

二、NMS

获得断定为前景的anchor后,会进行一次非极大值抑制(Non-Maximum Suppression,NMS)去除重叠的proposal。NMS原理参考:https://www.cnblogs.com/makefile/p/nms.html

4、classifier

一、ROI pooling

对于每一个RoI而言,须要从共享卷积层上摘取对应的特征,而且送入全链接层进行分类。所以,RoI Pooling主要作了两件事,第一件是为每一个RoI选取对应的特征,第二件事是为了知足全链接层的输入需求,将每一个RoI对应的特征的维度转化成某个定值。例如将feature maps按水平和竖直方向六等分,再用最大池化转换,获得宽高为6x6。

二、分类与边框修正

将每一个ROI输入进行分类及边框修正。分类这时要识别具体物体了,共分为C+1类(算上背景)。训练边框修正,一样使用SmoothL1loss损失函数,整体损失函数以下,其中r取1:

20180120205040998

5、参考:

实例分割模型Mask R-CNN详解:从R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN - jiongnima的博客 - CSDN博客  http://www.javashuo.com/article/p-wfvgjziv-eh.html

相关文章
相关标签/搜索