1. Faster RCNN
Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.
Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE international conference on computer vision. 2015.
Ren, Shaoqing, et al. “Faster r-cnn: Towards real-time object detection with region proposal networks.” Advances in neural information processing systems 28 (2015).
Faster RCNN是一种快速的目标检测模型,在RCNN基础上提出了RPN(Region Proposal Network)来取代SS(Selective Search)算法来生成候选锚框,从而大大加快了目标检测的速度。而在学习Faster RCNN之前必须要搞明白RCNN和Fast RCNN的相关概念和网络框架。
1.1 RCNN

如图所示,RCNN的实现步骤分为四步:
- 输入原始图片
- 在原始图片上使用SS算法选取2000个左右的锚框
- 将生成的锚框输入到CNN中进行特征提取
- 经过SVM分类器来区分每个锚框的类别
1.2 Fast RCNN
从RCNN的框架中,我们可以很容易地发现在步骤2,3中需要对2000个锚框进行特征提取,这是非常低效的,因此,Fast RCNN直接对原始图像进行特征提取,然后在生成的特征图上进行锚框生成,这样避免了大量的CNN的计算,大大提高了效率。
如图所示,可以分为5个步骤:
- 输入原始图像
- 通过CNN提取原始图像的特征图
- 在特征图上生成锚框
- 通过ROI Pooling层统一锚框的尺寸
- 用两个并行的全连接层分别进行分类任务和锚框定位任务

在这里我们还需要知道Fast RCNN是一个多任务的模型,即分类任务和边界框回归任务。假设真实的类别为uuu,真实的边界框回归参数为vvv,那么损失函数可以写为:L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]Lloc(tu,v)L(p,u,t^u,v)=L_{cls}(p, u) + \lambda[u \ge 1]L_{loc}(t^u,v)L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]Lloc(tu,v), 其中Lcls(p,u)=−log(pu)L_{cls}(p, u)=-log(p_u)Lcls(p,u)=−log(pu)是多分类交叉熵损失。
而边界框回归参数v=(vx,vy,vw,vh)v=(v_x, v_y,v_w,v_h)v=(vx,vy,vw,vh), 预测的边界框回归参数为tu=(txu,tyu,twu,thu)t^u=(t_x^u, t_y^u, t_w^u, t_h^u)tu=(txu,tyu,twu,thu)。[u≥1][u \ge 1][u≥1] 代表的是如果锚框中框选中的是物体那么这一项就为1,否则就为0,因为锚框框选到的不一定是物体,而可能是背景,背景的类别设置为0。
在这里我们还需要弄明白边界框回归参数到底是个什么,模型最终输出的参数并不是预测锚框的位置,而是一组预测的偏移量,通过偏移量我们可以调整预测锚框的位置。
假设此时预测锚框的坐标为(Px,Py,Pw,Ph)(P_x, P_y, P_w, P_h)(Px,Py,Pw,Ph), 通过预测偏移量(txu,tyu,twu,thu)(t_x^u, t_y^u, t_w^u, t_h^u)(txu,tyu,twu,thu)可以对其位置进行调整:
{ Gx=Pw∗txu+PxGy=Ph∗tyu+PyGw=Pw∗etwuGh=Ph∗ethu\left\{ \begin{aligned} G_x &= P_w * t_x^u + P_x\\ G_y &= P_h * t_y^u + P_y \\ G_w &= P_w * e^{t_w^u}\\ G_h &= P_h * e^{t_h^u}\\ \end{aligned} \right. ⎩⎪

本文详细解读了Faster R-CNN模型,介绍了其如何通过RPN网络加速目标检测,从原始图片特征提取的优化,到RPN的锚框生成与ROI池化,以及关键的多任务损失函数。通过Pascal VOC数据集实例展示了代码实现过程。
最低0.47元/天 解锁文章
1513

被折叠的 条评论
为什么被折叠?



