Fast R-CNN

文章目录

  • Fast R-CNN
  • 简介
  • 一、创新点
    • 总结
  • 二、论文链接
    • 原文链接
    • 代码链接
    • 论文投稿期刊
    • 相关论文
  • 三、论文评价
  • 四、模型
    • 基本流程
    • truncated SVD
    • 训练
      • Initialize Fast RCNN from pre-trained networks
      • hierarchical sampling
      • Multi-task loss
  • 五、实验
    • 数据集
    • 具体实验
      • 实验1,2,3(不同数据集上mAP比较)
      • 实验4(Training and testing 速度比较)
      • 实验5(Which layers to fine-tune?)
      • 实验6(Does multi-task training help?)
      • 实验7(Scale invariance:to brute force or finesse?)
      • 实验8(Do SVMs outperform softmax?)
      • 实验9(Are more proposals always better?)

简介

  • 针对当时主流目标检测算法训练都是multi-stage training pipeline,这过程麻烦,且需要额外的存储空间,
  • 论文提出one-stage 训练方案,a multi-task loss,也可以更新所有网络的参数。
  • 模型使用VGG16,比RCNN训练快9倍,测试快213倍,比SPPnet,训练快3倍,测试快10倍。

一、创新点

  • 改进了RCNN和SPPNet的缺点(两者的缺点⻅背景/问题)

    • 除了region proposal使用selective search,其它参数的训练的训练过程是single-stage
    • 训练方案可以更新网络中所有层的参数(而SPPNet无法对卷积层进行finetune)
    • 不需要将feature存储在磁盘中
  • 使⽤softmax进行分类,而非SVM
  • 对全连接层使用truncated SVD进行压缩和加速
  • 速度和准确度(mAP)比RCNN和SPPNet⾼
    • 速度(VGG16):

      • 训练:比RCNN快9倍,比SPPNet快3倍
      • 测试:比RCNN快213倍,比SPPNet快10倍;每张图片0.3秒(不包括region proposal的耗时)
    • 准确度:SOTA,比RCNN和SPPNet都准确,VOC2012上mAP为66%(RCNN为62%)

总结

  • 论文在实验中精度上达到了最优( VOC07, 2010, and 2012)
  • 进行了9组实验

二、论文链接

原文链接

arxiv.org

代码链接

作者code

论文投稿期刊

相关论文

SPPNet:Spatial pyramid pooling in deep convolutional networks for visual recognition

三、论文评价

  • 创新:

    • 首次引入multi-task loss,多阶段训练转为单阶段
    • 主要对训练过程和推理速度作为切入点,进行改进和优化。
      • 文中还对模型的各部分推理时间进行统计分析
  • 行文:
    • 指出当时主流模型(RCNN、SPPNet)的缺点,对比地提出论文的贡献
    • 进行Design evaluation, 有
      • 有Does multi-task training help?
      • Scale invariance: to brute force or finesse?
      • Do SVMs outperform softmax?
      • Do we need more training data?
      • Are more proposals always better?
        等可能影响精度的因素都进行了控制变量的分析,

四、模型

基本流程


  1. 输⼊:整张图⽚ + ⼀组对应图像的region proposal
  2. backbone输出feature map
  3. RoI pooling(a special case of one-level SPP):为feature map上每个region proposal⽣成fixed-length feature vector
  4. 每个feature vector输⼊到⼀系列FC层中
  5. 2个并行分支
    • 1个FC层 + softmax:对于每个feature vector,⽤softmax(K个category + 1个“background”)进⾏分类,输出形状如1×(K+1)。N个feature vector的话,输出形状则如N×(K+1)◦
    • 1个FC层 + category-specific BBox regressor:对于每个feature vector,为K个category中的每一个都输出4个实数值(offset),输出形状如K*4。N个feature vector的话,输出形状则如N×K*4
  6. NMS:和RCNN⼀样,判断出class之后,独⽴对每个class的所有prediction进⾏筛选

truncated SVD

推理时RoI的数量很多,因此FC层计算的耗时将近是整个forwar pass耗时的⼀半,因此使⽤truncated SVD对较⼤的FC层进⾏压缩以实现加速。

训练

Initialize Fast RCNN from pre-trained networks

使⽤pre-trained network初始化Fast RCNN的3个步骤:

  • 将pre-trained network的最后1个max pooling换成RoI pooling,RoI pooling输出feature map的size(H×W)
  • 将pre-trained network最后1个FC层和softmax替换为Fast RCNN最后的2个并行分支(1个FC层 +softmax,1个FC层 + category-specific BBox regressor)
  • 对pre-trained network进⾏修改,以将1组图片和1组RoI作为输入

hierarchical sampling

  • 由于当每个训练样本(即RoI)来⾃不同image时,SPP层back propagation的效率⾮常低。
  • Fast RCNN中SGD的mini-batch是分层采样的。⾸先采样N张image,每张Image中采样R/N个RoI,
    • 来自相同image的RoI在forward pass和backward pass中共享计算和内存

Multi-task loss


每个RoI的multi-task loss如上式所⽰, λ 是平衡因⼦,[u ≥ 1] 表示计算 K 个类的回归loss,背景0不计算回归loss,因为没有真实标签(gtb)

  • 分类分支

    • 输出 p p p概率值(k+1)个,其中0表示背景
    • 标签 u u u
  • 回归分支
    • 对每个RoI,为每个class k k k,输出一组BBox offset : t k = ( t x k , t y k , t w k , t h k ) t^k=(t^k_{x} ,t^k_{y} ,t^k_{w} ,t^k_{h}) tk=(txk​,tyk​,twk​,thk​)
    • 标签:GT BBox offset v = ( v x , v y , v w , v h ) v = (v_{x}, v_{y}, v_{w}, v_{h}) v=(vx​,vy​,vw​,vh​)
    • 使用smooth L1 loss
      • 使用smoothL1,可以避免异常值带来的梯度爆炸

五、实验

数据集

  • VOC 2007、2010 and 2012
  • MS COCO

具体实验

3个pre-trained ImageNet network

  • RCNN中的AlexNet,缩写为S(small)
  • VGG_CNNM_1024,缩写为M(medium)
  • VGG16,缩写为L(large)

图⽚scale:均使⽤single-scale(s=600)

实验1,2,3(不同数据集上mAP比较)


实验4(Training and testing 速度比较)

实验5(Which layers to fine-tune?)

  • 微调backbone的卷积参数对mAP是有很大帮助的,但并不是所有的网络微调都有用,

    • 像conv1是通用的与任务无关,
    • 从conv2_1开始微调,开始有作用,但仅比conv3_1开始精度就高了一点,但训练速度会慢1.3 倍
      -论文的模型是从conv3_1开始微调的,

实验6(Does multi-task training help?)

  • 多任务训练有积极影响,不同任务相互影响

实验7(Scale invariance:to brute force or finesse?)

  • 深度卷积网络本身就擅长学习尺度不变性,更深的模型可能效果会跟好

实验8(Do SVMs outperform softmax?)

实验9(Are more proposals always better?)

  • 不需要太多region proposal

Fast R-CNN(2015)论文笔记相关推荐

  1. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  2. IEEE TGRS2019|【论文笔记】R2-CNN: Fast Tiny Object Detection in Large-Scale Remote Sensing Images

    R²-CNN: Fast Tiny Object Detection in Large-Scale Remote Sensing Images 快速轻量的大尺度遥感图像目标检测框架 论文地址:http ...

  3. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  4. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  5. 【论文笔记】李盟, et al. 一种恶意代码特征选取和建模方法. 计算机应用与软件 08(2015):272-277.

    前言 论文笔记. 论文笔记 出处及年份 <计算机应用与软件 Computer Applications and SoftwareVol.>第32卷第8期2015年8月 论文标题 一种恶意代 ...

  6. 论文笔记 SiamMask : Fast Online Object Tracking and Segmentation: A Unifying Approach

    论文连接:[1812.05050] Fast Online Object Tracking and Segmentation: A Unifying Approach 论文连接:[1812.05050 ...

  7. 行为识别论文笔记|I3D S3D R(2+1)D P3D CSN

    行为识别论文笔记-I3D T3D S3D R(2+1)D P3D CSN I3D Carreira, Joao, and Andrew Zisserman. "Quo vadis, acti ...

  8. 【论文笔记 2】CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET

    [论文笔记 2]CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET 1. 综述 对现代的CNN网络结构进行了简要说明,一般的网络都是由卷 ...

  9. 《Improved Crowd Counting Method Based onScale-Adaptive Convolutional Neural Network》论文笔记

    <Improved Crowd Counting Method Based onScale-Adaptive Convolutional Neural Network>论文笔记 论文地址 ...

  10. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】

    论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...

最新文章

  1. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...
  2. vacode允许c_Visual Studio Code 配置C/C++环境
  3. 转:Silverlight样式写法
  4. 解答网友shell问题一例20140702
  5. C++ | 从键盘输入任意多个英语单词,统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出(C语言/C++/Java)
  6. 本地更新github项目_GitHub开源项目2019-03-29更新精选
  7. 如何判断字符串已经被url编码_如何判断回文数?不要再将整数转为字符串来解决这个问题了...
  8. 雷军超燃演讲:人生最后一次创业,押上全部战绩和信誉造车,小米亏得起!...
  9. spark学习-Spark算子Transformations和Action使用大全(Action章)
  10. 南京计算机审计行业工资,南京最新各行业平均工资曝光!看完分分钟想跳槽!...
  11. matlab曲线拟合后怎么看公式,matlab拟合曲线并输出公式
  12. 网站常用色彩表(网络搜集整理)
  13. VMware虚拟机安装使用及系统安装教程
  14. oracle+rac+ogg部署,RAC环境下配置OGG同步
  15. PupilNet: Convolutional Neural Networks for Robust Pupil Detection
  16. OpenGL课程设计 光线追踪
  17. VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  18. Elasticsearch:从写入原理谈写入优化
  19. 手把手教你做蓝牙聊天应用(三)-获取要连接的设备
  20. 华为云弹性公网IP服务,为企业敲开互联网大门

热门文章

  1. Java面试总结(待更新1.07)
  2. 第一次入住CSDN的自我介绍与个人心得(专升本版本)
  3. 让我们来探讨原本的REST
  4. cube-ui 地址选择器
  5. GlimmerHMM指南
  6. nodejs项目实例餐馆在线外卖点餐订餐平台
  7. 算法之路(四)----汉诺塔(又称河内之塔)
  8. CQNKP4044[APIO2016]赛艇
  9. 基于最小均方误差短时谱估计的语音增强
  10. 今日头条2018秋招笔试题(二)合并重叠病句