素材来源主要参考链接:https://blog.csdn.net/qq_37541097?spm=1001.2014.3001.5509
1.R-CNN综述
R-CNN 是两阶段的,相比一阶段而言,优点:精确,缺点:速度慢。本文主要针对作者的视频做个总结。
出自2010年作者Ross Girshick之手,
主要算法流程分为四个步骤
1.一张图像生成1K~2K个候选区域(使用Selective Search方法)
2.对每个候选的区域,使用深度网络提取特征
3.特征送入每一类的SVM分类器,判别是否属于该类
4.使用回归器修正候选框位置
2.步骤详解
2.1 候选框的选取
- 利用ss算法通过图像分割得到一些原始的区域
- 使用一些合并的策略将这些区域合并,得到一个层次化的区域结构‘
- 这些结构可能会包含着可能需要的物体
2.2 单一候选区域,喂入CNN提取特征
- 将原图像缩放到指定的尺寸(227*227pix),作为CNN的输入
- 得到的矩阵展平变成一维的向量
- 又因为是2000个候选的区域所以是2000x4096维矩阵
- 作为下一个SVM分类器的输入
2.3 特征送入每一类的SVM分类器,判定类别
- 将2000x4096的特征矩阵与20个SVM组成的权值矩阵4096x20相乘得到概率矩阵2000x20
- 这个2000x20的概率矩阵的每一行代表建议框归于每一个目标的概率
- 再针对2000x20的概率矩阵的每一列(代表的是每一类)进行非极大值抑制*剔除重叠的候选框,得到(该列)该类中得分最高的一些建议框
2.4 使用回归器修正候选框的位置
- 得到的建议框,我们接着分别使用20个回归器对上述20个类别中剩余的建议框进行回归操作
- 黄色框为建议框
- 绿色表示实际框
- 绿色表示回归后的预测框(最小二乘法解决回归问题)
3.缺点个问题
测试速度慢
训练速度慢
训练所需空间大