FasterRCNN算法
RCNN网络
RCNN网络与传统的区别,通过一个卷积神经网代替原先的颜色、纹理特征提取。存在检测速度低下,检测精度较低。
步骤1:利用AlexNet训练分类网络,即得到一个预训练模型。
步骤2:对模型做fine-tuning,
模型去掉FC层,
类别1000改为20
步骤3:特征提取
采用选择性搜索而不是滑动窗口的策略提取候选框
选择性搜索:
step0:生成区域集R。
step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…}
step2:找出相似度最高的两个区域,将其合并为新集,添加进R
step3:从S中移除所有与step2中有关的子集
step4:计算新集与所有子集的相似度
step5:跳至step2,直至S为空
对于每一个区域:修正区域为CNN的输入,利用网络对候选框
步骤4:训练SVM分类器:每个类别对应一个SVM
步骤5:回归期精修候选框位置(x,y,w,h):利用线性回归模型判断框的准确度。
RCNN缺点:
候选框选择算法耗时严重
重叠区域特征重复计算
分步骤进行,过程繁琐。
SPPNet
金字塔池化:
CNN采用不同尺度输入
仅对原图提供一次卷积特征
Fast RCNN
结合SPPNet改进RCNN:
ROI Pooling:单层SPPNet,为了将proposal抠出来的过程,然后resize到统一的大小。
操作如下:
1.根据输入的image,将ROI映射到feature map对应的位置
2.将映射后的区域划分为相同大小的sections(sections数量和输出的维度相同)
3.对每个section进行max pooling操作。
Fast RCNN速度快。
多任务网络同时解决分类和位置回归
同样采用共享卷积特征
Fasr RCNN网络缺点:
存在瓶颈:选择性搜索。找出所有的候选框非常耗时。
Faster RCNN
主要改进就是RPN网络来替代选择性搜索。
RPN完成的是背景和前景的区分,进行粗定位(对框的位置进行一次回归)和粗分类。