R-CNN(2014)论文笔记

R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation

Tech report (v5)

文章目录

  • R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation
  • 简介
  • 一、创新点
    • 总结
  • 二、论文链接
    • 原文链接
    • 代码链接
    • 论文投稿期刊
    • 相关论文
  • 三、论文评价
  • 四、模型
    • 基本流程
    • region proposal
    • 模型训练
    • 问题
  • 五、 实验
    • 数据集
    • 具体实验
      • 实验1(Detection AP on VOC 2010 test)
      • 实验2(Detection mAP&AP on ILSVRC2013 test)
      • 实验3(Visualizing learned features)
      • 实验4(Ablation study (Performance layer-by-layer))
      • 实验5(Detection error analysis)
      • 实验6(Sensitivity to objectcharacteristics)
      • 实验7(ILSVRC2013 ablation study)
      • 实验8、9、10(Segmentation mean accuracy)

简介

当时目标检测性能停滞不前,主要是融合底层特征和高层特征的复杂集成系统,

  • 论文提出了RCNN,即在region proposal 的基础上,使用CNN来进行定位
  • 在数据集数量少的情况下,使supervised pre-training & domain-specific finetuning。

其他细节

  • 可视化特征提取网络各个层学习到的特征,并对CNN中各个layer进⾏消融实验
  • 分析得出RCNN的主要问题是poor localization,并通过BB regression去解决
  • 实验给出了在detection和segmentation任务上的性能

一、创新点

  • 第一次使用CNN,所有proprosal 共享CNN 参数
  • 提出通过supervised pre-training & domain-specific finetuning处理labeded data较少的情况

总结

  • 论文在实验精度达到了最优(在摘要和introducton后部分)(效果主要是精度和速度,解决实际需求)
    • ⽬标检测:在VOC 2012上的mAP达53.3%,比之前SOTA⾼出30%以上
    • 语义分割:在VOC 2011上的accuracy达47.9%
  • 速度较快:比UVA快2个数量级
    • 所有类共享CNN参数
    • CNN输出的feature vector维数相对较少,UVA是360k维而CNN是4096维
    • region proposal + CNN feature extraction的总耗时为13s/image on a GPU、53s/image on a CPU
    • class-specific运算只有feature vector(2000×4096)和SVM weights(4096×N)的乘法和greedy NMS,RCNN适⽤于上千个类别的情况(在当时的多核CPU上也只需要10秒)
    • 进行了10组实验
    • 将CNN方法引入目标检测的开山之作,(overfeat效果没有这个好)

二、论文链接

原文链接

arxiv.org

代码链接

作者code

论文投稿期刊

相关论文

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

三、论文评价

  • 创新:最主要的是如何利用CNN,文中将它进行了特定任务的微调,以适应少量的有label的数据集
  • 行文:
    • 提出问题,CNN在分类上的效果多大程度上迁移到目标检测上,论文回答了该问题,为实现结果聚焦了两个问题,然后分别针对两个问题,进行现有方法的分析,展现自己的方法,凸显自己方法在精度和效率上的提升。
    • 论文大幅都在讲目标检测区域提议的分类问题,对于框精准定位的问题(这个在文中,选择性搜索和用严格数据标签训练,似乎没那么严重),小篇幅地,论文谦虚的说关注模型的不足,才能提升效果,针对模型不足,作者采纳的框回归的方法,提升了精度。(在附录里讲了具体方法)
    • 论文讲述了模型的设计,运行时间,训练方案,以及在不同数据集上的结果后,对CNN层进行可视化和消融分析,用实验证明CNN不同层的作用(得到结论大致是卷积层是学的通用的,而非线性分类器是适应于特定任务的),充分发挥各层作用,来提升精度
    • 还有其他CNN网络选择的影响因素
    • 论文还对训练采用的方案:如为何微调和训练SVM数据集选取不一致,为何不使用softmax而采用SVM,与overfeat的关系等等,在附录中做了详细的讲解

四、模型

基本流程

R-CNN(2014)论文笔记_第1张图片
R-CNN(2014)论文笔记_第2张图片

  1. 首先用selective search算法生产大概2000个region proposal(category-independent BBox 2000×4)接着通过affine image warping (无视proposal box的size和aspect ratio)将这些region proposal统一大小(227×227);
  2. 然后将每个region proposal输入到经过预训练和特定任务的微调的AlexNet(AlexNet对每个region proposal分别运算),获得每个region proposal对应的feature vector(2000×4096维);
  3. 然后把每个feature vector分别输⼊到多个线性SVM(每个class对应1个线性SVM,判断是否属于该class)中进行分类,用1个linear regression model中进行BB regression(预测offset;损失函数为L2 loss,也就是均方损失 / MSE loss)
  4. 最后对所有scored region进行greedy NMS(对每个类)

region proposal

• 思路:为每个image生成成2000个左右category-independent region proposal
• 方法:论文使用selective search(fast mode)
selective search的大概思路:先将图片分割成很多个小区域,然后按照⼀定规则进行区域合并

模型训练

  • Supervised pre-training:在ImageNet(图像分类dataset,只有image-level annotations,没有bounding box labels)上进行pretraining
  • Domain-specific fine-tuning:
    • 优化器:SGD
    • 数据集:VOC数据集,每类的正样本为与gtb的IOU大于0.5,其余为该类的负样本
    • 修改:21-way classification layer(VOC有20个class,加上background)替换 CNN中用于ImageNet的1000-way classification layer。
    • batch-size:128,每次SGD迭代中采样32个positive windows和96个background windows
  • Object category classifiers:每个class对应⼀个线性SVM
    • IoU阈值:通过在⼀个验证集上进网格格搜索(0, 0.1, . . . , 0.5),选择IoU阈值为0.3,低于IoU阈值的region被视为该类的负样本,每个class的GT BBox视为正样本 。

问题

详见
R-CNN(2014)论文笔记_第3张图片

五、 实验

数据集

  • VOC 2010-12
  • ILSVRC2012-13 detection dataset

具体实验

实验1(Detection AP on VOC 2010 test)

R-CNN(2014)论文笔记_第4张图片

实验2(Detection mAP&AP on ILSVRC2013 test)

R-CNN(2014)论文笔记_第5张图片

实验3(Visualizing learned features)

R-CNN(2014)论文笔记_第6张图片

  • 对AlexNet的pool5中的unit学习到的内容可视化,6行代表6个unit,16列代表该unit的top-16 activation。
  • 每个unit识别某个pattern,fc6对这些pattern进行组合
    可参考 RCNN 可视化

实验4(Ablation study (Performance layer-by-layer))

R-CNN(2014)论文笔记_第7张图片

  • 1-3行:CNN没有进行特定数据集上微调,可以看出未进行微调的情况下全连接层可能会降低mAP,
  • 4-6行:fine-tuning使mAP提升8%,这表明从ImageNet学习到的pool5 feature是通用的,fc6和fc7的fine-tuning提升比pool5的fine-tuning提升大得多,这说明mAP提升大部分是因为domain-specific non-linear classifier
  • 8-10行:所有RCNN变种都优于3个DPM baseline

实验5(Detection error analysis)

R-CNN(2014)论文笔记_第8张图片

  • 与 DPM 相比,RCNN的错误更多是由poor localization造成的,不是background或其他class混淆,这表明CNN特征比 HOG 更具辨别力
  • loose localization可能是由于bottom-up region proposals和positional invariance
  • 第3列显示了BB regression如何修复了localization errors

实验6(Sensitivity to objectcharacteristics)

R-CNN(2014)论文笔记_第9张图片

  • fine-tuning不会降低sensitivity(最大值和最小值之间的差异)
  • 反而提高了所有characteristic(包括aspect ratio、bounding box、occlusion、truncation、viewpoint和part visibility)的鲁棒性

实验7(ILSVRC2013 ablation study)

R-CNN(2014)论文笔记_第10张图片

实验8、9、10(Segmentation mean accuracy)

R-CNN(2014)论文笔记_第11张图片
R-CNN(2014)论文笔记_第12张图片
R-CNN(2014)论文笔记_第13张图片

你可能感兴趣的:(cnn,深度学习)