【论文学习笔记001】R-CNN

1.论文信息

题目 Rich feature hierarchies for accurate oject detection and semantic segmentation针对高准确度的目标检测与语义分割的多特征层级
作者 Ross Girshick,Jeff Donahue, Trevor Darrell, Jitendra Malik
年份 2014
期刊 Computer Vision and Pattern Recognition
论文地址 https://arxiv.org/pdf/1311.2524.pdf
项目地址 https://github.com/rbgirshick/rcnn

2. 论文创新点

2.1 利用候选区域与 CNN 结合做目标定位

在这里插入图片描述

  • 给定一张输入图片,从图片中提取 2000 个类别独立的候选区域
  • 对于每个区域利用 CNN 抽取一个固定长度的特征向量
  • 再对每个区域利用 SVM 进行目标分类
2.2 利用预训练与微调解决标注数据缺乏的问题
  • 采用在 ImageNet 上已经训练好的模型,然后在 PASCAL VOC 数据集上进行 fine-tune。现在我们称之为迁移学习。

3.论文要点

3.1 候选区域(Region Proposal)
  • R-CNN 采用的是 Selective Search 算法(选择性搜索)。
    传统算法使用穷举法或者滑动窗口选出所有物体可能出现的区域框,就是在原始图片上进行不同尺度不同大小的滑窗,获取每个可能的位置。而这样做的缺点就是复杂度太高,产生了很多的冗余候选区域,而且由于不可能每个尺度都兼顾到,因此得到的目标位置也不可能那么准,在现实当中不可行。而选择性搜索有效地去除冗余候选区域,使得计算量大大的减小。
    在这里插入图片描述
3.2 特征抽取(Feature Extraction)
  • R-CNN 抽取了一个 4096-D 的特征向量,采用的是 Alexnet,基于 Caffe 进行代码开发
  • 为了与 Alexnet 兼容,R-CNN无视候选区域的大小和形状,统一变换到 227*227 的尺寸。但在对 Region 进行变换的时候,首先对这些区域进行膨胀处理,在其 box 周围附加了 p 个像素,也就是人为添加了边框,在这里 p=16,再进行各向异性缩放。
    在这里插入图片描述
3.3 运行时长分析(Run-time analysis)

两个因素可以让目标识别变得高效。

  • CNN 的参数是所有类别共享的
  • R-CNN 生成的特征向量维度较少
    也就是运行过程中,参数变少了,所以比传统的高效。体现在提取特征的时间,如果用 GPU ,13s/张,CPU 53s/张。
3.4 训练
  • 采取迁移学习,提取在 ILSVRC 2012 的模型和权重,然后在 VOC 上进行 fine-tune。
  • ImageNet 的训练当中需要预测 1000 个类别,而 R-CNN 在 VOC 上进行迁移学习时,神经网络只需要识别 21 个类别( VOC 规定的 20 个类别加上背景这个类别)
  • R-CNN 将候选区域与 GroundTruth中的 box 标签相比较,采取非极大性抑制(NMS),如果 IoU > 0.5,说明两个对象重叠的位置比较多,于是就可以认为这个候选区域是 Positive,否则就是 Negative
  • 训练策略是:采用 SGD 训练,初始学习率为 0.001,mini-batch 大小为 128
3.5 可视化
  • 在CNN中,第一层可以直接用来显示,通常他们是为了捕捉物体边缘,及突出的颜色信息,但越往后的卷积层越抽象,这个时候进行可视化就是一个挑战了。
  • R-CNN 将 pool5 作为可视化对象,它的 feature map 是 6x6x255 的规格,可以理解为有 256 个小方块,每个方块对应一个特征。
  • 思路是挑选一个特征出来,把它直接当成一个物体分类器,然后计算它们处理不同的候选区域时,activation 的值,这个值代表了特征对这块区域的响应情况,然后将 activation 作为分数排名,取前几位,然后显示这些候选区域,自然也可以清楚明白,这个 feature 大概是什么。
    在这里插入图片描述
3.6 框架精简(Ablation studies)
  • fc6 与 pool5 构成全连接,为了计算 feature 它会乘以一个 4096x9216 的权重矩阵,然后在与一组 bias 相加,所以它有 3700 多万的参数。fc7 是最后一层,它的权重矩阵是 4096x409,它的参数有 1678 万多的参数。
  • 但在 PASCAL 上不做 fine-tune 处理,直接测试,可以发现 fc7 的意义没有 fc6 大,甚至移除它之后,对 mAP 没有影响。移除 fc7 就表示可以减少将近 1800 万个参数。同时移除 fc6 和 fc7 并没有多大的损失,甚至结果还要好一点点。
  • 神经网络最神奇的力量来自卷积层,而不是全连接层
  • fine-tune 后 fc6 与 fc7 提升的效果明显。pool5 从 ImageNet 训练集中学习了物体的泛化能力,而能力的提升则是通过特定领域的 fine-tune。
3.7 bbox 回归(Bounding-box regression)
  • bbox 的值其实就是物体方框的位置,预测它就是回归问题,而不是分类问题。
  • 作者训练了一个线性的回归模型,这个模型能够针对候选区域的 pool5 数据预测一个新的 box 位置。
  • 先求平移量
    在这里插入图片描述
  • 再求尺度放缩量
    在这里插入图片描述
  • 我们要学习的是dxP,dyP,dwP,dhP这四个变换,就可以得到估计框了
    在这里插入图片描述
    其中Φ5P是Alexnet pool5输出的特征,所以要求出w*T
  • 该回归器的损失函数为
    在这里插入图片描述
  • 上式中t*i可用如下公式求出:
    在这里插入图片描述
  • 所以通过输入的特征值训练,从而求出w*T,就可以得到回归器。
3.8 语义分割(Semantic segmentation)
  • 利用 CPMC 生成候选区域,然后将这些区域调整大小为 227x227,送到神经网络当中,这是 full 阶段,区域中有背景也有前景。
  • 只处理候选区域的前景,将背景用输入的平均值代替,然后背景就变成了 0 ,这个阶段称为 fg
  • full + fg 阶段,将背景和前景简单拼接

4.总结与展望

4.1 总结
  • RCNN步骤:微调分类模型AlexNet——选择性搜索2000个候选框——缩放图像块至固定大小——输入到CNN内提取特征——训练SVM分类器判别特征类别——训练线性回归器调整候选框位置
  • 取得这个性能主要通过两个方面:第一是应用了自底向上的候选框训练的高容量的CNN进行定位和分割物体;第二是“有监督的预训练+特定领域的调优”使用在标签数据匮乏的情况下训练大规模神经网络。
4.2 展望
  • 由于每一个候选框都要独自经过CNN,这使得花费的时间非常多,这在Fast RCNN中将得到改善
发布了15 篇原创文章 · 获赞 14 · 访问量 1260

猜你喜欢

转载自blog.csdn.net/chiyukunpeng/article/details/100798238
今日推荐