目标检测--R-CNN

论文文献:Rich feature hierarchies for accurate object detection and semantic segmentation
算法流程图

在这里插入图片描述

1、产生目标区域候选

滑窗:

为了检测目标物体的可能位置,我们采用不同尺度的矩形方块,在图像上水平、垂直移动,以便能够检测到可能目标位置。而这个矩形方块就是滑窗。
这种方法的缺陷:我们不知道目标物体的大小,而使用这种方法进行穷举,计算量太大。

selective search:

R-CNN目标检测所采用的方法。
selective search的策略,既然是不知道尺度是怎样的,那我们就尽可能遍历所有的尺度好了,但是不同于暴力穷举,我们可以先得到小尺度的区域,然后一次次合并得到大的尺寸就好了,这样也符合人类的视觉认知。既然特征很多,那就把我们知道的特征都用上,但是同时也要照顾下计算复杂度,不然和穷举法也没啥区别了。最后还要做的是能够对每个区域进行排序,这样你想要多少个候选我就产生多少个,不然总是产生那么多你也用不完不是吗?

2、CNN目标特征提取

选择2K个置信度最高的区域候选之后,首先是用AlexNet模型,进行无监督的预训练初始化CNN的参数。之后进行迁移学习,RCNN使用ImageNet的有标签数据进行有监督的预训练,然后再在本数据集上微调最后一层全连接层。训练CNN的样本量还是不能少的,因此RCNN将正样本定义的很宽松,为了尽可能获取最多的正样本,RCNN将IOU>0.5(IoU 指重叠程度,计算公式为:A∩B/A∪B)的样本都称为正样本。并且CNN对于输入的图片大小都要求尺寸一致,所以对于每一个候选区域缩放到227*227。
CNN特征层选取
现在CNN已经能够提取到目标的特征了,但是CNN的层数很多,选择哪一层作为特征提取层呢?RCNN进行了宽泛的实验,最终选择的fc层。

3、目标种类分类器

通过R-CNN提取了特征之后,使用SVM进行分类,由于SVM要进行精确的分类,所以将IOU>0.3的样本作为负样本,这样也是SVM困难样本挖掘的方法。

4、贪婪非极大值抑制

由于最后得到的目标区域肯定不会是一个,所以RCNN使用贪婪非极大值抑制的方法,假设ABCDEF五个区域候选,首先根据概率从大到小排列。假设为FABCDE。然后从最大的F开始,计算F与ABCDE是否IoU是否超过某个阈值,如果ABC超过则将ABC舍弃。然后再从D开始,直到遍历结束。而这个阈值是筛选得到的,通过这种处理之后一般只会剩下几个区域候选了。

5、BoundingBox回归

为了能够提高准确度,让方框准确的框住所要检测的目标,RCNN在贪婪非极大值抑制后进行BoundingBox回归,进一步微调BoundingBox的位置。

R-CNN缺点

RCNN虽然效果很好,但是存在一些问题,比如时间代价太高了,网络训练是分阶段的,太麻烦了等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值