R-CNN

Rich feature hierarchies for accurate object detection and semantic segmentation

R-CNN:Regions with CNN features.
这是在机器视觉领域Region+CNN进行目标识别的开山之作
整体使用Region+CNN+SVM的架构
1.训练:
1).CNN pre-training: 预训练CNN网络(使用ILSVRC 2012)
2).CNN fine-tuning:
输入一幅训练图像,首先利用selective search产生2000个区域建议,与标定框(ground-truth box)的IoU大于0.5的区域建议标记为正样本(目标类别),否则标记为负样本(背景)。假设要检测的物体类别有N类,那么我们就需要把1)中预训练的CNN网络的最后一层(softmax)替换掉,替换成一个N+1(加1,表示还有一个背景类)个输出的softmax层,并微调1)中的CNN网络。
具体做法:使用随机梯度下降法(SGD),初始学习率设为预训练步骤中的初始学习率的0.01倍。在每次迭代中,抽取两张训练图像,每幅图像都从2000个区域建议中抽取64个,形成一个128的mini-batch。在这个过程中,因为目标少,背景多,需要按权重采样,从而使得平均每个mini-batch有1/4的是正样本(即包含目标)

作者在实验部分提到:若不进行fintune,直接利用网络提取到的特征进行SVM分类器训练,结果发现pool5用于分类的精度竟然和fc6,fc7差不多,而且fc6提取到的特征比fc7的精度还高。若进行了fintune,则fc6,fc7提取到的特征最后使训练的SVM分类器的精度暴涨。这表明CNN的表达能力主要来自卷积层,而不是全连接层,卷积层学习到的特征已经足够,而全连接层主要是把这些特征更优的组合起来。

3).目标类别分类器:
在微调好CNN网络后,我们就可以利用这个网络提取特征,然后利用这些特征训练N+1(N表示目标的种类,1表示背景)个SVM。鉴于训练数据量太多,作者采用了standard hard negative mining method。
考虑一个car,如果利用selective search提取到的区域建议完全包括这个car,那么它就是一个正样本,若完全不包括这个car,我们就可以将它视为负样本(背景),但若是这个区域建议部分包含car呢?
作者对IoU的阈值{0,0.1,…,0.5}进行了测试,发现阈值设为0.3结果最好,低于这个阈值标记为负样本(背景),高于这个阈值为正样本。这样就得到了目标的标签,从而训练SVM.
整体流程:输入图像->selective search提取候选区域->standard hard negative mining method->利用预训练并微调过的CNN网络提取这些区域的特征->训练N+1个SVM线性分类器。
因此,整体上即是一个 region proposal + CNN(提取区域特征) + SVM分类 的架构

这里写图片描述

2.测试:
输入一幅测试图像,首先利用selective search提取候选区域(object proposals),将这些区域变化到指定形状后,输入CNN网络,经过CNN网络提取出候选区域的特征,从而得到N+1个SVM分类器的分类结果。
这样,就得到了一幅测试图像中所有区域建议(proposals)的打分,然后作者利用greedy non-maximum suppression(非极大值抑制)去除与高得分区域IoU大于0.3的框.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值