Faster R-CNN 的理解

1. 目标检测简介

目标检测是一项非常重要的视觉任务,她可以带动实例分割、动作识别等应用的发展。目标检测技术日趋成熟,逐渐发展成两种主流的检测方法。单阶段的目标检测 以及 双阶段的目标检测。
双阶段的目标检测:先是判断anchor是foreground还是background,再判断foreground中的目标类别;R-CNN家族
单阶段的目标检测:直接利用滑窗的方法等判断anchor中的目标是什么类别。YOLO家族, SSD

目标检测包含了目标定位、目标识别,她们之间的区别可表示如下:
(1)分类:是什么?
(2)定位:在哪里?是什么?(单个目标)
(3)检测:在哪里?分别是什么?(多个目标)

2.Faster R-CNN框架

Faster R-CNN 主要包含四个部分。特征提取、区域提名、ROI pooling 、分类回归

(1)特征提取(CNN)
这一部分她采用CNN提取特征(feature map),用于区域提名中的RPN网络以及往后的ROI pooling、FC层
(2)区域提名(RPN)
遍历feature map ,为每个像素点分配9个anchor(相当于检测中的多尺度);然后通过softmax二分类对目标与背景进行分类
同时对anchor的偏移进行回归,获得相对精准的anchor。这一步主要是产生目标的相对精确区域提名(region proposal)
(3)ROI pooling
接受来自RPN网络产生大小不一的区域提名,加上CNN提取的feature map产生region feature map,而后进行统一的pooling操作
(把region feature map分成相同的网格,进行池化)从而产生相同维度的特征表达。她的后面接的是FC层,这一步很必要。
(4)分类回归(FC 、softmax)
经过ROI pooling 产生相同维度的特征表达,进一步接FC层,分两路,一路用softmax进行目标识别;另一路直接回归anchor的偏移量,
从而或者精准的anchor。

3. 几个重要的问题

(1)Faster R-CNN的优势在哪里?
首先,Faster R-CNN 把特征提取、区域提名、目标分类和bounding box 回归整合在一个网络当中,她是完全可微的,可以端到端训练,
综合性能得到显著提升,她的检测速度也是达到很好的效果。
其次,区域提名不是使用以往的滑窗、选择性搜索等方法,她直接使用RPN网络生成。速度显著提升
(2)特征提取VGG16的设计特点
卷积核大小3x3,padding = 1, stride = 1;如此卷积前后的图像大小没有发生改变
池化层大小2x2,padding = 0, stride = 2;如此每池化一次图像大小的宽高变为原来的一半。经过四次pooling之后,feature map宽高为原始图像的1/16
这样Conv layers生成的featuure map中都可以和原图对应起来。
(3)RPN网络的结构是什么样的?
RPN的目的是产生目标的region proposal。她主要是分两路:一路用于判断anchor是否属于foreground;一路用于回归anchor的偏移量
先是通过3x3卷积融合附近的信息,然后分两路经过1x1卷积改变通道数。分类的变为2x9(9个anchor,foreground、background的分数);回归的变为4x9(一个anchor有中心坐标,宽高四个变量)
到这里,相当于完成了目标定位的功能。
(4)ROI pooling的必要性
我们把图像送进CNN之前需要处理图像成固定大小的尺寸。一般的处理方式有:从图像中crop一部分传入网络;将图像warp成需要的大小后传入网络
不过这两种处理方式并不是很好。crop后破坏了图像的完整结构,而warp破坏了图像原始形状信息。如此,ROI pooling非常必要
她的工作原理:
首先使用spatial_scale参数将其映射回 (M/16)x(N/16) 大小的feature map尺度,这是由于proposal是对应 MxN 尺度的;
再将每个proposal对应的feature map区域水平分为 {pooled_w} x {pooled_h} 的网格;
对网格的每一份都进行max pooling处理。
(5)Faster R-CNN的训练过程(循环迭代2次)
[1]在已经训练好的model上,训练RPN网络,对应stage1_rpn_train.pt
[2]利用步骤1中训练好的RPN网络,收集proposals,对应rpn_test.pt
[3]第一次训练Fast RCNN网络,对应stage1_fast_rcnn_train.pt
[4]第二训练RPN网络,对应stage2_rpn_train.pt
[5]再次利用步骤4中训练好的RPN网络,收集proposals,对应rpn_test.pt
[6]第二次训练Fast RCNN网络,对应stage2_fast_rcnn_train.pt
示意图如下:

4. 参考

https://zhuanlan.zhihu.com/p/31426458
https://www.cnblogs.com/gujianhan/p/6035514.html
https://zhuanlan.zhihu.com/p/24916624

猜你喜欢

转载自www.cnblogs.com/laokanblog/p/11013354.html