将 RCN 中下面 3 个独立模块整合在一起,减少计算量:
CNN:提取图像特征
SVM:目标分类识别
Regression 模型:定位
不对每个候选区域独立通过 CN 提取特征,将整个图像通过 CNN 提取特征,然后从 CNN 的特征图中根据 Selection Search 的候选区域通过 Rol Pooling 层提取区域特征
Faster R-CNN训练步骤:
-
预训练一个用于分类的CNN
-
使用CNN的特征图作为输出,端到端的fine-tune RPN(region proposal network)+CNN. 当ioU>0.7为正样本,ioU《0.3为负样本
- 在特征图上面使用滑动窗口
- 对每一个滑动窗口,产生多个Anchor(相当于Selective Search选中的候选区域).一个Anchor由滑动窗口的中心位置,窗口尺寸,窗口宽高比决定.论文中使用3个尺寸和3个宽高比,所以一个滑动窗口位置对应9(3*3)个Anchor
-
固定RPN的权值,使用氮气啊的RPN训练一个Fast R-CNN
-
固定CNN,Fast R-CNN的权值,训练RPN
-
固定CNN, RPN,训练Fast R-CNN的权值
重复步骤4和5知道满意为止
Faster R-CNN可以简单地看做“区域生成网络RPNs + Fast R-CNN”的系统,用区域生成网络代替FastR-CNN中的Selective Search方法。Faster R-CNN这篇论文着重解决了这个系统中的三个问题:
- 如何设计区域生成网络;
- 如何训练区域生成网络;
- 如何让区域生成网络和Fast RCNN网络共享特征提取网络。
在整个Faster R-CNN算法中,有三种尺度:
-
原图尺度:原始输入的大小。不受任何限制,不影响性能。
-
归一化尺度:输入特征提取网络的大小,在测试时设置,源码中opts.test_scale=600。anchor在这个尺度上设定。这个参数和anchor的相对大小决定了想要检测的目标范围。
-
网络输入尺度:输入特征检测网络的大小,在训练时设置,源码中为224*224。
参考
https://blog.csdn.net/sinat_26745777/article/details/104956858