RCNN系列之Fast RCNN详解

RCNN系列:RCNN,SPPNet,Fast RCNN,Faster RCNN,R-FCN。这一系列是个递进关系,也是目标检测使用two-stage方法的一个发展过程。想要更好的理解Faster RCNN和R-FCN,只能把这些算法都梳理清楚了,才能明白算法的整个优化过程。
本篇讲解的是Fast RCNN。2015年,在SPPNet之后发表在IEEE。
理解了SPPNet之后,我们知道了RCNN已经进化到了SPPNet阶段,那么,Fast RCNN又更进一步。

再看SPPNet过程:
  1.  使用selective search算法为每一张待检测的图片提取出2000左右的候选框,这一点和RCNN相同;
  2. 特征提取阶段,整个图片输入到SPPNet中,提取出整张图片的feature map,然后将原图上的候选框映射到feature map上。然后对各个候选框对应的feature map上的块做金字塔空间池化,提取出固定长度的特征向量;
  3. 使用SVM算法对得到的特征向量分类识别;
  4. 使用NMS做极大值抑制。

Fast RCNN的过程:
  1. 使用selective search算法为每一张待检测的图片提取出2000左右的候选框,这一点和RCNN相同;
  2. 特征提取阶段,同样是提取出整张图片的feature map,然后将原图上的候选框映射到feature map上。然后对各个候选框对应的feature map上的块做ROI pooling,提取出固定长度的特征向量;
  3. 对于上一步的每一个ROI,网络输出每个类的概率和每个bounding box;
  4. 最后,使用NMS算法。
Fast RCNN的整个算法流程如下图所示:
Fast RCNN的最大贡献就是将SVM给去掉了,换句话说就是将分类器整合到了网络中,那么在训练过程中,由RCNN的三个阶段(selective search,CNN,SVM)到了Fast RCNN的两个阶段(selective search ,Fast RCNN)。用机器学习的角度来看,就是一个过程的全局最优要优于多个过程的全局最优。
这样就可以把Fast RCNN看作是一个分类器和回归器的整合。这个思想作者是借鉴了deepmultibox。
具体做法即是,使用Multi-task loss。

其中:

具体参数的设置可以参考论文。

那么有了loss后,最重要的就是迭代过程的设置,具体看最后一层的网络结构:


cls_score层用于分类,输出K+1维数组,表示属于K类和背景的概率;
bbox_predict层用于bounding box,输出4*K维数组,表示各个物体和Ground truth的偏移量。

基础网络作者使用的是VGG。
连接详细讲解了VGG的网络结构。

Fast RCNN中一个关键点:ROI pooling
其实ROI pooling是SPP的一个特殊形式。ROI pooling只使用了一种尺度,统一将feature map映射到7*7的大小。
将SPP过程弄明白,ROI pooling就会很清楚了。
如果对SPP不熟悉,可以移步: http://blog.csdn.net/u010725283/article/details/79017070

总结:Fast RCNN比SPPNet又更近一步,将SVM整合到网络中,将三个阶段的训练过程整合为两个阶段。这样速度会提高,训练难度同样也会降低。

参考:
Fast R-CNN




  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值