关于目标检测之Faster-RCNN的理解

Faster-RCNN(2015年)

该目标检测算法是基于Fast-RCNN的基础上,进行了改进,主要是对RCNN和Fast-RCNN中的用Selective Research方法生成的候选框进行改进。提出了一种RPN生成候选框的方法。

FasterRCNN由两个模型组成,第一个就是RPN(深层全卷积网络)生成候选区域,第二个就是使用FastRCNN对候选区域进行检测。

相比FASTER-RCNN,主要两处不同:
(1)使用RPN(Region Proposal Network)代替原来的Selective Search方法产生建议窗口;
(2)产生建议窗口的CNN和目标检测的CNN共享。
关于目标检测之Faster-RCNN的理解

RPN

RPN(Region Proposal Network)是一个深度全卷积网络,其作用就是代替选择性搜索SelectSearch,输入一张图片,输出是一个包含softmax二分类和bbox的多任务模型(包括是否包含目标的概率,以及每个区域的中心位置坐标和长宽)。

在经过卷积层提取到的feature map上用一个3x3的slide window,去遍历整个feature map,在遍历过程中每个window中心按ratios=[0.5, 1, 2],scales=[8, 16, 32] scale(1:2,1:1,2:1)生成9个anchors,然后再利用全连接对每个anchors做二分类(是前景还是背景)和初步bbox regression,最后输出比较精确的300个ROIs。

训练细节

(1)conv:卷积层提取特征图conv+relu+pool,并在后续的RPN和全连接*享;
(2)RPN: (Region Proposal Networks)生成候选框;
(3)Roi Pooling:该层利用RPN生成的proposals和VGG16最后一层得到的feature map,得到固定大小的proposal feature map,进入到后面可利用全连接操作来进行目标识别和定位;
(4)Classifier:会将Roi Pooling层形成固定大小的feature map进行全连接操作,利用Softmax进行具体类别的分类,同时,利用L1 Loss完成bounding box regression回归操作获得物体的精确位置

测试细节

(1)输入测试图像;
(2)将整张图片输入CNN,进行特征提取;
(3)用RPN先生成一堆Anchor box,对其进行裁剪过滤后通过softmax判断anchors属于前景(foreground)或者后景(background),即是物体or不是物体,所以这是一个二分类;同时,另一分支bounding box regression修正anchor box,形成较精确的proposal(注:这里的较精确是相对于后面全连接层的再一次box regression而言)
(4)把建议窗口映射到CNN的最后一层卷积feature map上;
(5)通过RoI pooling层使每个RoI生成固定尺寸的feature map;
(6)利用Softmax Loss(探测分类概率) 和Smooth L1 Loss(探测边框回归)对分类概率和边框回归(Bounding box regression)联合训练。