【目标检测】RCNN

RCNN是2014年引入的目标检测算法,首次将CNN应用于该领域。它采用选择搜索生成候选框,通过预训练的CNN提取特征,使用SVM进行分类并进行边界框回归。尽管存在候选框选取耗时、信息丢失等问题,RCNN开启了深度学习在目标检测领域的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


 

RCNN


Rich feature hierarchies for accurate object detection and semantic segmentation (2014 CVPR)

作者:Ross Girshick (RBG)

流程图:

 

 

特点


1、RCNN是利用深度学习进行目标检测的开山之作,首次将CNN运用到目标检测问题上。

2、用选择搜索(Selective Search)替代暴力滑框。选择搜索选出2000个候选框,用CNN等识别技术进行分类。

3、使用识别库进行预训练,而后用检测库调优参数。

4、使用SVM代替了CNN网络中最后的Softmax,同时用CNN输出的4096维向量进行Bounding Box回归。

5、流程前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用;同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。

 

算法流程


本文数据集采用pascal VOC,这个数据集的object一共有20个类别。首先用select search方法在每张图像上选取约2000个region proposal,region proposal就是object有可能出现的位置。然后根据这些region proposal构造训练和测试样本,注意这些region proposal的大小不一,另外样本的类别是21个(包括了背景)。然后是预训练,即在ImageNet数据集下,用AlexNet进行训练。然后再在我们的数据集上fine-tuning,网络结构不变(除了最后一层输出由1000改为21),输入是前面的region proposal进行尺寸变换到一个统一尺寸227*227,保留f7的输出特征2000*4096维。针对每个类别(一共20类)训练一个SVM分类器,以f7层的输出作为输入,训练SVM的权重4096*20维,所以测试时候会得到2000*20的得分输出,且测试的时候会对这个得分输出做NMS(non-maximun suppression),简单讲就是去掉重复框的过程。同时针对每个类别(一共20类)训练一个回归器,输入是pool5的特征和每个样本对的坐标即长宽。

 

缺点


1、候选框选取耗时,会漏掉一些框

2、传入CNN前的归一化227*227产生的形变会导致信息丢失

3、候选框重叠较多,每个候选框都会输入进一个CNN进行特征提取,会造成重复计算

4、训练分成多个阶段,不利于全局最优

5、训练耗时,用GPU,VGG16处理一张图片要花47s

6、卷积出来的特征数据要单独保存,占空间大(5000张图片生成的特征文件有几百G)

 

损失函数

 


SVM,bounding-box回归损失,softmax损失,三个损失函数

 

代码实现


待更...

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值