一、R-CNN算法简介
R-CNN算法流程
1、将一张图像生成1k-2k个候选区域(使用ss算法)
2、对于每个候选区域,使用深度网络来提取特征
3、将特征送入每一类的SVM分类器,判别是否属于该类。(有多少类别就有多少个SVM分类器)
4、使用回归器精细修正候选框位置
R-CNN算法缺陷
1、测试速度慢
2、训练速度慢,过程繁琐
3、训练所需的空间很大
FAST-R-CNN算法流程
与R-CNN相比,训练时间快九倍,测试推理时间快213倍,准确率提升至66%
1、将一张图像生成1k-2k个候选区域(使用ss算法)
2、将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
3、将每个特征矩阵通过ROI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列的全连接层得到预测结果
4、使用softmax输出预测概率,其具有N+1个概率分布;使用回归器调整候选框位置 。 loU:图像的交并比。
FASTER-R-CNN算法流程
推理速度在GPU上达到了5fps(包括候选区域的生成)
1、将图像输入网络得到对应的特征图
2、使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得特征矩阵
3、将每个特征矩阵通过ROI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列的全连接层得到预测结果
RPN+FAST-R-CNN
使用了RPN代替ss算法,或的速度上的提升。
Region Proposal Network
在特征图上使用滑动窗口生成一维向量,该向量分别连接两个全连接层,来输出目标概率以及边界框回归参数。通过特征图的中心点,生成anchor box, 然后
预测每个anchor box是前景还是背景的该率,anchorbox的尺寸根据经验得到
将输入图像首先生成k个anchorbox,对于RPN生成的候选框部分存在大量重叠,因此基于候选框的cls得分,采用非极大值抑制,loU设为0.7,这样每张图片只
剩下少部分候选框
训练数据的采样分为正负样本,规定anchor与实际标注的物体框之间的loU大于0.7即为正样本,低于0.3规定为负样本。位于两区间的anchor全部丢弃。
Faster-R-CNN训练