目标检测经典论文精读-R-CNN

论文链接: https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf
论文技术报告链接: https://arxiv.org/pdf/1311.2524.pdf
出处: CVPR 2014
参考视频: https://www.bilibili.com/video/BV1d64y1W74E/?spm_id_from=333.999.0.0&vd_source=e321967bf2cdc2338238788250d12de8

R-CNN基本原理

在这里插入图片描述
在这里插入图片描述
总结起来就是:输入原图,然后用selective search算法生成2000个候选框,再将每个候选框缩放为 227 × 227 227\times227 227×227的固定大小,再逐一喂到同一个卷积神经网络提取4096维的特征,用该4096维的特征同时进行分类(线性SVM)和回归,最终得到目标检测结果。

可以看到R-CNN严重依赖上下游的多个步骤协作完成目标检测任务:①提取候选框;②缩放;③用CNN提取特征;④分类和回归。只要有一个步骤出现问题,整个检测系统就会出现问题。每个步骤都需要单独去优化,因此并不是一个端到端的系统

在这里插入图片描述
R-CNN是一个非常耗时、非常低效、非常臃肿、一点不端到端的算法:
在这里插入图片描述因此,可以对R-CNN进行改进:
在这里插入图片描述

产生候选框-Selective Search

论文链接: https://www.koen.me/research/selectivesearch/

在这里插入图片描述

将候选框缩放至 227 × 227 227\times227 227×227固定大小

在这里插入图片描述
最终,作者采用连带邻近像素的非等比例缩放方法,连带像素 p = 16 p=16 p=16
在这里插入图片描述这种将像素向外扩一圈,并将扩展之后的结果作为候选框的方法叫做Dilate proposal

可视化能够使得某个feature map的某个值最大化的原始候选框

在这里插入图片描述在这里插入图片描述
从AlexNet最后一个池化层得到的feature map的形状是 6 × 6 × 256 6\times6\times256 6×6×256,我们可视化其中的某一个channel的某一个值,找到使得这个值最大化的原始的候选框。
作者从 6 × 6 × 256 6\times6\times256 6×6×256的feature map中选了60多个channel来可视化能够使得某个channel的某个值最大化的24个原始候选框:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对比实验

在这里插入图片描述
说明了fine-tuning的重要性。
在这里插入图片描述
R-CNN用于语义分割:
在这里插入图片描述
在这里插入图片描述

为什么不直接用softmax分类而要用线性SVM分类?

原因①:
fine-tuning时与训练各类别SVM时的正负样本选择策略是不一样的,所以,如果直接用softmax的话,就必须都按照fine-tuning的正负样本的选择策略来,但是如果用SVM来分类的话,会更好,因为训练SVM时加入了hard negtive mining,而且选择正负样本时也和fine-tuning时不一样。因此,不能直接用softmax而是要用SVM的。
在这里插入图片描述原因②:
为什么不使用SVM的正负样本选择策略去训练softmax?作者是使用Matlab实现的,Matlab是一个封装的很死的一个库,不允许有太多的自由的修改,不像python一样可以自由的修改底层代码。RBG大神当时写R-CNN时用的是Matlab,可能matlab只有SVM可以进行hard negtive mining。所以没有直接用softmax而是用的SVM。

Bounding Box Regression

所谓回归就是对候选框进行精调,使回归模型输出一系列偏移量,再对候选框施加偏移量从而得到最终的预测框。

在这里插入图片描述具体来讲:
在这里插入图片描述
让黄色去拟合蓝色,即找一套线性权重,使得损失函数最小。

R-CNN的Slides讲解

在这里插入图片描述没有什么实质性的进展。
在这里插入图片描述 R-CNN取得了实质性的突破。

R-CNN论文精度

在这里插入图片描述

Selective Search产生Region proposals

在这里插入图片描述强行缩放:
在这里插入图片描述

候选框特征提取

在这里插入图片描述使用Caffe实现的AlexNet作为特征提取的骨干网络,包括5个卷积层和2个全连接层。
在这里插入图片描述把所有一千万个候选框输入,找到能使某个feature map中的某个值产生最大激活的候选框,也就是使某单次卷积、单个神经元产生最大激活
不对这个feature map求平均,只关注某个feature map中的某个值。
在这里插入图片描述使6个通道中的某6个神经元产生最大激活的top regions。
在这里插入图片描述没有fine turning时,预训练模型中CNN的特征表示性能大部分来自卷积层而非全连接层,去掉全连接层影响不大。进行fine turning时,CNN提取通用特征,FC完成特定领域任务
在这里插入图片描述加了边界框回归能有效降低定位误差。
在这里插入图片描述输入CNN之前,强行将候选框缩放至统一尺寸、统一长宽比,所以在不同尺寸和长宽比上FT性能提升意味着全连接层学习到更有用的特征

正负样本的问题:为什么在fine turning训练卷积神经网络和在训练各类别的线性SVM时的正负样本的选取不一样?
在这里插入图片描述在这里插入图片描述
fine turning时,正样本与GT有偏离,精准定位性能差;
用softmax并不能解决这一问题(掉点);
用SVM时,GT框为该类正样本,精准定位性能好,且加入了难例挖掘,能够较好的解决问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值