目标检测模型R-CNN系列(Fast R-CNN、Faster R-CNN)梳理

R-CNN

R-CNN architecture

训练阶段:
1:使用Selective Search算法,生成2000个候选区域;
将候选区域变换到网络需要的尺寸(227×227),也就是手工的添加个边框;
将预训练好的AlexNet最后的全连接层去掉,并将类别设置为21(20个类别,1个background),fine tuning;
最终得到一个4096×21的特征。
2:利用上面提取到的候选区域的特征,对每个类别训练一个SVM分类器,是候选框里物体的类别给positive,不是就negative。(使用IOU阈值法解决目标部分框选的问题)
3:对于SVM识别为Positive的候选区域,判断bounding box位置是否完美,训练一个线性回归模型校正位置(dx,dy,dw,dh)。

测试阶段:
从一张图片中提取2000个候选区域,将每个区域按照训练时候的方式进行处理;
输入到SVM中进行正负样本的识别,并使用边框回归器,计算出每个候选区域的分数;
候选区域较多, 针对每个类使用NMS删掉重叠的区域。

Fast R-CNN

R-CNN存在的问题:
1:测试训练速度慢(主要是提取候选区域的特征慢),由于候选区域有大量的重叠,将2000个候选区域分别输入到预训练好的CNN中提取特征,就会重复的计算重叠区域的特征。
2:训练需要额外的空间保存提取到的特征,用于训练SVM分类器和边框回归器。

Fast R-CNN architecture

训练阶段:(Fast R-CNN是使用Multi-task Loss端到端训练的
将整个图像和一组候选框(Selective Search得到)作为输入,通过Deep ConNet对图像进行特征提取,得到输入图像的特征图;
候选区域进行RoI projection:即通过坐标投影的方法,在特征图上得到输入图像中的感兴趣区域对应的特征区域;
特征区域进行RoI pooling,统一特征大小;
经过两个output都为4096维的全连接层,得到RoI feature Vector
再分别与output各为21和84维的全连接层相连(并列的,前者是分类输出,后者是回归输出,每个类别对应一个regressor);
最后接上两个损失层(定义了多任务损失函数,分类是SoftMaxLoss,回归是SmoothL1Loss)。

测试阶段:
与训练基本相同,forward训练好的网络,得到当前兴趣区域的类别分数及边框坐标,然后对每个类别采用NMS。

细节与技巧:
SGD训练:为了提高训练速度,采取了小批量梯度下降的方式,每次使用2张图片的128张建议框更新参数。
RoI pooling的反向传播:参考链接https://blog.csdn.net/WoPawn/article/details/52463853
SVD加速:链接同上

Faster R-CNN

Fast R-CNN存在的问题:
使用Selective Search,找出所有的候选框,非常耗时。

提出RPN网络:
加入Region Proposal Network,也就说提取候选框的工作也交给CNN来做了,其本质是一种基于滑窗的无类别目标检测网络。

RPN architecture

RPN训练:
输入公共特征图,在每个sliding window,预测k个anchor boxes;
(reg层有4k输出,编码k个框的坐标,cls层输出2k分数,估计每个建议区域是目标或非目标的概率)
定义代价函数,通过BP和SGD进行端到端的训练。
Faster R-CNN architecture

训练阶段:
1:单独训练RPN网络,使用ImageNet预先训练的模型进行初始化,并对区域建议任务进行端到端的微调;
2:单独训练Fast-RCNN网络,使用RPN生成的候选框通过Fast R-CNN训练一个独立的检测网络,
具体而言:RPN输出一个候选框,通过候选框截取原图像,并将截取后的图像通过几次conv-pool,然后再通过roi-pooling和fc再输出两条支路,一条是目标分类softmax,另一条是bbox回归,
截止到现在,两个网络不共享卷积层,只是分开训练了;
3:使用检测器网络来初始化RPN训练,但是固定了共享卷积层,只对RPN特有的层进行微调,现在这两个网络共享卷积层;
4:保持共享卷积层不变,对Fast R-CNN的唯一层进行微调。

细节与技巧:
在训练阶段,忽略所有的跨界锚,所以它们不会造成损失。在测试阶段,仍然对整个图像应用全卷积的RPN,这可能会生成跨边界的建议框,然后将其剪裁到图像边界。
为了减少冗余,根据建议区域的cls得分对其采用NMS,将NMS的IoU阈值定为0.7,这样每幅图像大约减少到2000个建议区域。

你可能感兴趣的:(目标检测模型R-CNN系列(Fast R-CNN、Faster R-CNN)梳理)