Faster RCNN=Fast RCNN+RPN
Faster RCNN可以分为四个部分:
1)Conv Layer:特征提取网络,通过一组conv+relu+pooling来提取图像的feature map,用于后续的RPN来提取proposal
2)RPN(Region Proposal Network):代替了Fast RCNN中的Selective Search,用于生成候选框。RPN任务包含两个:(1)分类,判断所有预设Anchors是属于正类还是负类(anchors内部是否有目标)(2)回归:bbox的回归,修正anchors得到较为准确的proposals
3)ROI pooling
4)Classfication and Regression
RPN
实现步骤:
1)将Conv Layer最后一层的特征图作为输出
2)通过滑动窗口通过不同长宽比(1:1,1:2,2:1)的窗口生成三种不同的长宽(128,256,512)来生成方框,有三种不同长宽比和三种不同的方框,所以特征图中每个像素点有9种方案
RPN生成的proposal的数量:W*H*K (600*900*9=486000)
3)对所提取到的proposal做分类(二分类,区分前景和背景,粗筛proposal,交叉熵)和回归(初步修正proposal位置,smooth_L1)
RPN网络结构
上图展示了RPN网络的具体结构,上面通路通过softmax获得positive和negtive分类,下面一条通路用于计算anchors的bbox regression的偏移量,以修正proposal。最后的proposal层负责综合positive anchors和对应bbox regression偏移量获取proposals,同时剔除太小和超出边界的proposal。从第一个3×3的卷积层开始,RPN就完成了proposal的生成,再经过一层3×3的卷积处理的好处在于融合9个anchors的特征,进一步提取特征,使得RPN更具鲁棒性。