R-CNN

Papaer : Rich feature hierarchies for accurate object detection and semantic segmentation
Code :

摘要

R-CNN 是 R-CNN系列(R-CNN,Fast R-CNN,Faster R-CNN等等)系列的第一篇,起到了承上启下的作用。它开创性的将CNN提取图片特征的方式引入到了Object Detection任务当中,但是使用的框架还是传统的检测框架,包括Selective Search 生成候选框,CNN提取特征和SVM进行分类。本文的贡献除了使用CNN进行目标检测外,更加重要的贡献是面对小样本任务,在大数据集上进行预训练的模型该如何迁移学习。

算法

算法的整体框架如下所示

在这里插入图片描述
在测试阶段,首先,使用Selective Search 算法生成2k个左右的候选框,然后使用训练好的CNN模型进行特征提取,之后将提取出长度固定的特征向量在每个类对应的SVM上进行二分类,再利用IoU进行NMS得到具体的框,防止泛滥候选框泛滥。为了精确bbox,还根据pool5 feature做了个bbox regression来降低定位损失。部分实现细节如下所示

  • 目标检测任务训练样本的生成:使用Selective Search生成2k个左右的候选框,然后将候选框IoU满足阈值(0.5)的标记为对应类的正例,其他的为该类的负例,传递给CNN,SVM进行训练
  • 候选框到CNN的输入:作者探讨了各向异性缩放和各向同性缩放,最后选择了padding = 16的各向异性缩放,也就是将候选框向四周扩大16个pixel,然后不管图片的长宽比例,全部缩放到CNN输入的大小227*227
  • CNN的训练:相比于分类任务具有ILSVRC2013的数据集,目标检测的数据集相对较小,不足以用来训练CNN。因此,作者使用在Image Net数据集上pretrained model,进行finetune,finetune的方法为替换掉CNN的最后的全连接层为目标检测数据集对应的类别
  • SVM分类器:作者并没有将CNN模型的softmax层的输出作为分类器的输出,而是将特征提取出来后使用SVM分类,这是因为我们使用了宽松的标注数据,为了finetune CNN模型需要足够大的数据集。如果只将完整包含了物体的候选框作为训练集,训练集的数量不够。因此需要将部分包含物体的候选框也放到训练集中,但是任务目标是只有当bounding box把整个物体都包含进去了,我们才把它标注为物体类别。CNN的softmax层与任务目标之间存在gap,因此使用SVM这种适用于小样本学习的分类器进行二分类任务。对于SVM,标记正负样例的方法更加严格,我们只将ground truth对应的区域标记为正例,而将IoU<0.3的样例标记为负例。

作者还通过迁移学习的过程探讨了CNN不同层之间的作用,通用证明了一个理论,如果不对预训练的模型进行finetune,直接像HOG、SIFT一样做特征提取,不针对特定的任务。然后把提取的特征用于分类,结果发现使用pool 5的特征产生的结果和fc6 fc7相似,如果进行finetune,那么使用fc6 fc7的提取到的特征训练的svm分类器的精度就会上升。这说明不针对特定任务进行finetune,而是把CNN当做特征提取器,卷积层所学到的特征其实就是基础的共享特征提取层,CNN的表示能力主要来自于卷积层而不是全连接层,而fc6 fc7所学习到的特征是用于针对特定任务的特征。

总结

个人认为,R-CNN对于小样本学习的技巧和迁移学习的探讨相比CNN的引入更加让人印象深刻,R-CNN几乎在传统目标检测算法框架下达到了最好,下一步的改进方向应该是减少框架的瓶颈或是提升运算速度,1比2000的CNN运算代价还是很高的,尽量进行端到端的学习任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R-CNN(Region-based Convolutional Neural Networks)是一种目标检测算法,它通过两个阶段来检测图像中的目标物体。首先,R-CNN使用选择性搜索(Selective Search)算法生成一系列候选区域,然后对每个候选区域进行卷积神经网络(CNN)特征提取和分类。R-CNN的主要缺点是速度较慢,因为每个候选区域都需要独立地进行CNN特征提取和分类。 Fast R-CNN是对R-CNN的改进,它通过引入RoI池化层(Region of Interest pooling)来解决R-CNN中重复计算的问题。RoI池化层可以将不同大小的候选区域映射为固定大小的特征图,从而使得所有候选区域可以共享相同的特征提取过程。这样一来,Fast R-CNN相比于R-CNN具有更快的速度。 Faster R-CNN是对Fast R-CNN的进一步改进,它引入了一个称为Region Proposal Network(RPN)的子网络来生成候选区域。RPN通过滑动窗口在特征图上提取候选区域,并为每个候选区域分配一个得分,然后根据得分进行筛选和排序。这种端到端的训练方式使得Faster R-CNN在目标检测任务上具有更高的准确性和更快的速度。 Mask R-CNN是在Faster R-CNN的基础上进一步发展的,它不仅可以进行目标检测,还可以进行实例分割。Mask R-CNN在Faster R-CNN的基础上增加了一个分支网络,用于预测每个候选区域中目标物体的像素级掩码。这使得Mask R-CNN能够同时获得目标的位置信息和像素级别的语义信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值