R-CNN,SSP-Net,fast-RCNN,faster-RCNN论文读后笔记

本文深入解析了R-CNN家族的目标检测技术,包括R-CNN的预训练与微调策略,SPP-Net如何解决训练与图像失真问题,Fast R-CNN的ROI Pooling层应用,以及Faster R-CNN的区域建议网络(RPN)训练方法。这些方法在提升检测速度和精度方面具有显著贡献。

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

一:R-CNNRich feature hierarchies for accurate object detection andsemantic segmentation v5.pdf

R指的是region,也就是在数据进入深度网络(CNNs)之前进行预处理,在预训练图像中生成若干个regionproposals,再将这些regionproposals进行resize,因为CNN网络要求输入数据维度相同。


训练过程:

supervised pre-training,使用传统的CNN来训练大规模数据集ImageNet,获得初始化权重。

所谓的有监督预训练,我们也可以把它称之为迁移学习。比如你已经有一大堆标注好的人脸年龄分类的图片数据,训练了一个CNN,用于人脸的年龄识别。然后当你遇到新的项目任务是:人脸性别识别,那么这个时候你可以利用已经训练好的年龄识别CNN模型,去掉最后一层,然后其它的网络层参数就直接复制过来,继续进行训练。这就是所谓的迁移学习,说的简单一点就是把一个任务训练好的参数,拿到另外一个任务,作为神经网络的初始参数值,这样相比于你直接采用随机初始化的方法,精度可以有很大的提高。

图片分类标注好的训练数据非常多,但是物体检测的标注数据却很少,如何用少量的标注数据,训练高质量的模型,这就是文献最大的特点,这篇paper采用了迁移学习的思想。文献就先用了ILSVRC2012这个训练数据库(这是一个图片分类训练数据库),先进行网络的图片分类训练。这个数据库有大量的标注数据,共包含了1000种类别物体,因此预训练阶段cnn模型的输出是1000个神经元,或者我们也直接可以采用Alexnet训练好的模型参数。

这点在微调过程能够看得出来:原文:Aside from replacing the CNN’s ImageNetspecific 1000-wayclassification layer with a randomly initialized (N+ 1)-way classification layer (whereNis the
number of object classes, plus 1 for background),将最后的分类器部分替换掉。

为什么要进行预训练呢?

物体检测的一个难点在于,物体标签训练数据少,如果要直接采用随机初始化CNN参数的方法,那么目前的训练数据量是远远不够的。这种情况下,最好的是采用某些方法,把参数初始化了,然后在进行有监督的参数微调,这边文献采用的是有监督的预训练。所以paper在设计网络结构的时候,是直接用Alexnet的网络,然后连参数也是直接采用它的参数,作为初始的参数值,然后再fine-tuning训练。

Domain-specific fine-tuning. 使用与检测任务相关的较小的数据集对CNN进行微调。

为什么要进行微调呢?

首先,反正CNN都是用于提取特征,那么我直接用Alexnet做特征提取,省去fine-tuning阶段可以吗?这个是可以的,你可以不需重新训练CNN,直接采用Alexnet模型,提取出p5、或者f6f7的特征,作为特征向量,然后进行训练svm,只不过这样精度会比较低。那么问题又来了,没有fine-tuning的时候,要选择哪一层的特征作为cnn提取到的特征呢?我们有可以选择p5f6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值