目标检测算法R-CNN

算法流程

1.使用Selective Search提取大约2000个候选区域(proposal);

2.对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像,并将该图像输入到CNN中提取特征;

3.使用线性的SVM对提取的特征进行分类。

---------------------------------------------------------------------------------------------------------------------------

选择性搜索(Selective Search)

step0:生成区域集R 
step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…} (颜色、纹理、尺寸和空间) 
step2:找出相似度最高的两个区域,将其合并为新集,添加进R  
step3:从S中移除所有与step2中有关的子集  
step4:计算新集与所有子集的相似度  
step5:跳至step2,直至S为空
--------------------------------------------------------------------------------------------------------------------------------

优点

1.将大型卷积神经网络(CNNs)应用于自下而上的候选区域以定位和分割物体。

2.当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升。

缺点

虽然R-CNN算法相较于传统目标检测算法取得了50%的性能提升,但其也有缺陷存在:R-CNN虽然设计巧妙,但仍存在很多缺点: 
1.重复计算 R-CNN虽然不再是穷举,但通过Proposal(Selective Search)的方案依然有两千个左右的候选框,这些候选框都需要单独经过backbone网络提取特征,计算量依然很大,候选框之间会有重叠,因此有不少其实是重复计算。 
2.训练测试不简洁。候选区域提取、特征提取、分类、回归都是分开操作,中间数据还需要单独保存。 
3.速度慢。前面的缺点最终导致R-CNN出奇的慢,GPU上处理一张图片需要十几秒,CPU上则需要更长时间。 
4.输入的图片Patch必须强制缩放成固定大小(原文采用227×227),会造成物体形变,导致检测性能下降。
 

猜你喜欢

转载自blog.csdn.net/weixin_40722688/article/details/88792235