前言

我们知道,R-CNN存在着以下几个问题:

  1. 分步骤进行,过程繁琐。Selective Search生成候选区域region proposal->fine tune预训练网络->针对每个类别都训练一个SVM分类器->用regressors对bounding-box进行回归。
  2. 时间和内存消耗比较大。在训练SVM和回归的时候需要用CNN网络训练的特征作为输入,特征保存在磁盘上再读入的时间消耗比较大。
  3. 重叠区域特征重复计算。测试时每个region proposal都要做卷积。

馨意:深度学习目标检测R-CNN论文解读​zhuanlan.zhihu.com

SPP-net算法解决了R-CNN中重复卷积的问题,但是R-CNN的其他缺点在SPP-net上依旧存在。

馨意:深度学习目标检测SPP-net论文解读​zhuanlan.zhihu.com

Fast R-CNN是R-CNN作者对RCNN的改进版。Fast R-CNN只进行一次特征提取,并将RCNN的SVMs使用softmax所替代,并将分类目标函数和框预测目标函数合并为多任务目标函数,速度和精度都大大提高。

论文名称:

Fast R-CNN

论文下载:

https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf​www.cv-foundation.org

论文解读:

Fast R-CNN架构,该架构属于端到端的多任务训练。

上图即为Fast R-CNN架构,具体流程为:

  1. Fast R-CNN网络将整个图像和所有RoI(也就是R-CNN中所说的proposal)作为输入
  2. 网络首先使用几个卷积层和最大池化层处理整个图像,以生成特征图feature map。
  3. 然后在最后一个卷积层上对每个ROI求取映射关系,并用一个RoI pooling layer(也就是一个单层的SPP layer)来统一到相同的大小
  4. 之后经过两个全连接层FCs生成一个固定尺寸的特征向量RoI feature vector
  5. 特征向量RoI feature vector连接两个新的全连接层FC,得到两个输出向量:第一个是分类,使用softmax,第二个是每一类的bounding box回归

RoI pooling layer

RoI pooling layer是在SPP-net中使用的空间金字塔池化层SPP的特例,SPP有三层,而在RoI pooling layer中金字塔层只有一个。

Pre-trained networks

用了3个预训练的ImageNet网络(CaffeNet/VGG_CNN_M_1024/VGG16)。

预训练的网络初始化Fast R-CNN要经过三次变形:

  1. 最后一个max pooling层替换为RoI pooling层。
  2. 最后一个全连接层和softmax(原本是1000个类)替换为softmax的对K+1个类别的分类层,和bounding box 回归层。
  3. 输入修改为两种数据: 图像列表和这些图像中的RoI列表。

Fine-tuning

我们知道,SPPnet只能微调SPP层后面的全连接层,所以SPPnet就可以采用随机梯度下降(SGD)来训练。

SPPnet采用的RoI-centric sampling:从所有图片的所有RoI中均匀取样,这样每个SGD的mini-batch中包含了不同图像中的样本。

反向传播需要计算每一个RoI感受野的卷积层,通常会覆盖整个图像,如果一个一个用RoI-centric sampling的话就又慢又耗内存。

Fast R-CNN采用的image-centric sampling:mini-batch采用层次取样,先对图像取样,再对RoI取样,同一图像的RoI共享计算和内存。 另外,Fast R-CNN在一次微调中联合优化softmax分类器和bbox回归。

看似一步,实际包含了:多任务损失(multi-task loss)、小批量取样(mini-batch sampling)、RoI pooling层的反向传播(backpropagation through RoI pooling layers)、SGD超参数(SGD hyperparameters)。

Multi-task loss

两个输出层,一个对每个RoI输出离散概率分布:

一个输出bounding box回归的位移:

k表示类别的索引,前两个参数是指相对于object proposal尺度不变的平移,后两个参数是指对数空间中相对于object proposal的高与宽。把这两个输出的损失写到一起:

k*是真实类别,式中第一项是分类损失,第二项是定位损失,L由R个输出取均值而来。

Mini-batch sampling

在微调时,每个SGD的mini-batch是随机找两个图片,R为128,因此每个图上取样64个RoI。从object proposal中选25%的RoI,就是和ground-truth交叠至少为0.5的。剩下的作为背景。

在调优训练时,每一个mini-batch中首先加入N张完整图片,而后加入从N张图片中选取的R个候选框。这R个候选框可以复用N张图片前5个阶段的网络特征。

实际选择N=2, R=128-> 每一个mini-batch中首先加入2张完整图片,而后加入从2张图片中选取的128个候选框。这128个候选框可以复用2张图片前5个阶段的网络特征。

总结

  • 最后一层的softmax换成两个:一个是对区域的分类,另一个是对Bounding box的微调。
  • 训练时所有特征不在存到硬盘中,提升了速度。
  • 添加ROI pooling层,实现了不同大小区域特征图的pooling。

参考

https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf​www.cv-foundation.org人工智能_目标检测_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

Fast RCNN算法详解_网络_AI之路-CSDN博客​blog.csdn.net

RCNN学习笔记(4):fast rcnn​blog.csdn.net

cnn 句向量_深度学习目标检测Fast R-CNN论文解读相关推荐

  1. 52 个深度学习目标检测模型汇总,论文、源码一应俱全!(附链接)

    来源:AI有道 本文约2000字,建议阅读5分钟 本文给你总结52个深度学习检测模型. 标签:计算机视觉 目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力 ...

  2. 52 个深度学习目标检测模型汇总,论文、源码一应俱全

    本文约2000字,建议阅读5分钟 本文给你总结52个深度学习检测模型. 标签:计算机视觉 目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力的大幅度提升,一 ...

  3. 目前最全:52 个深度学习目标检测模型汇总,论文、源码一应俱全!

    文章来源:https://zhuanlan.zhihu.com/p/115035951 作者:红色石头 目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力的 ...

  4. faster rcnn论文_52 个深度学习目标检测模型汇总,论文、源码一应俱全!(附链接)...

    来源:AI有道 本文约2000字,建议阅读5分钟 本文给你总结52个深度学习检测模型. 标签:计算机视觉目标检测作为计算机视觉中的一个重要分支,近些年来随着神经网络理论研究的深入和硬件 GPU 算力的 ...

  5. 处理之后的图像句柄传到显示框_深度学习目标检测与预处理模块

    一般的深度学习的部署流程 对计算机而言,能够"看到"的是图像被编码之后的数字,但它很难解高层语义概念,比如图像或者视频帧中出现目标的是人还是物体,更无法定位目标出现在图像中哪个区域 ...

  6. python实现目标检测源代码包_深度学习目标检测系列:faster RCNN实现|附python源码...

    摘要: 本文在讲述RCNN系列算法基本原理基础上,使用keras实现faster RCNN算法,在细胞检测任务上表现优异,可动手操作一下. 目标检测一直是计算机视觉中比较热门的研究领域,有一些常用且成 ...

  7. python目标识别算法_深度学习目标检测系列:一文弄懂YOLO算法|附Python源码

    摘要: 本文是目标检测系列文章--YOLO算法,介绍其基本原理及实现细节,并用python实现,方便读者上手体验目标检测的乐趣. 在之前的文章中,介绍了计算机视觉领域中目标检测的相关方法--RCNN系 ...

  8. 姿态检测 树莓派_怎样在树莓派上轻松实现深度学习目标检测?

    原标题:怎样在树莓派上轻松实现深度学习目标检测? 雷锋网按:本文为 AI 研习社编译的技术博客,原标题 How to easily Detect Objects with Deep Learning ...

  9. keras faster物体检测_全网 | 深度学习目标检测算法(精选12篇)

    太多的公众号每天的文章是否让你眼花缭乱?刷了好多文章,发现大都是转来转去?今天我在全网公众号里为大家精选主题为深度学习目标检测算法的文章12篇,其中包括综述,R-CNN,SPP-Net,Fast R- ...

最新文章

  1. 的引用_懵!啥是Java软引用、弱引用、虚引用?
  2. ko文件卸载 linux_调试lcd时候给linux单板移植tslib
  3. 聚宽macd底背离_很多散户可能永远都不会知道:MACD月线金叉,每一次MACD月金叉都会带来一波牛市...
  4. android room_Android Room –待办事项清单应用程序
  5. 移除Kubeadm部署的kubernetes环境
  6. vfp spt连接mysql_VFP与SQL远程异构数据库
  7. 尚硅谷JDBC笔记(带源码)——了解数据库,看这一篇就够了
  8. 模糊控制(FL)算法
  9. 关于利用DEM生成水系图
  10. 蜂鸣器驱动电路 专为机动车使用
  11. 图片批量上传至服务器/华为云obs 前台采用webuploader.js div+css布局 图片.zip华为云obs浏览器下载
  12. GIS数据网站分享(长期更新)
  13. 利用Docker 基于Uptime Kuma搭建服务器监控
  14. python基础-古诗词填词游戏
  15. 微信文章排版技巧和相关排版工具
  16. 大数据创业的未来到底在哪里?
  17. 如何将Windows8系统的磁盘格式(GPT格式)转换成Windows 7系统的磁盘格式(MBR格式)
  18. 程序员去外包公司待遇怎么样?外包薪资高吗?
  19. SIPWeb视频对讲,群呼,广播会议一体方案分析
  20. 6.HDFS文件上传和下载API

热门文章

  1. c语言指针中冒号的用法,在c中使用冒号后面的类名
  2. spring-boot使用spring-security进行身份认证(1)
  3. Netflix混沌工程手册Part 2:混沌工程原则
  4. RedisManager使用手册(二) -- 配置文件详解
  5. HDU 2647 拓扑排序
  6. WebService的相关概念1
  7. 自动装箱与拆箱引发的享元设计模式
  8. Git管理工具对比(GitBash、EGit、SourceTree)(转载)
  9. 沃信科技ERP系统容灾方案概述
  10. 答疑:有关一例EXT3文件系统故障