R-CNN

  • Region Proposal
    • 候选区域(Region Proposal)
    • 候选区域选择
    • CNN 特征提取
    • 分类与边界回归
    • 步骤

Region Proposal


可以解决滑动窗口的问题

候选区域(Region Proposal)

是预先找出图中目标可能出现的位置。它利用了图像中的纹理、边缘、颜色等信息,可以保证在选取较少窗口(几千甚至几百)的情况下保持较高的召回率(Recall)。
RCNN(Regions with CNN features) 是将 CNN 方法应用到目标检测问题上的一个里程碑, 借助 CNN 良好的特征提取和分类性能, 通过 Region Proposal 方法实现目标检测问题的转化。

候选区域选择

Region Proposal 是一类传统的区域提取方法,可以看作不同宽高的滑动窗口, 通过窗口滑动获得潜在的目标图像, 关于Proposal 大家可以看下SelectiveSearch,一般Candidate 选项为 2k 个即可, 这里不再详述; 根据 Proposal 提取的目标图像进行归一化,作为 CNN 的标准输入。

CNN 特征提取

标准 CNN 过程,根据输入进行卷积/池化等操作,得到固定维度的输出

分类与边界回归

实际包含两个子步骤,一是对上一步的输出向量进行分类(需要根据特征训练分类器);二是通过边界回归(bounding-box regression) 得到精确的目标区域,由于实际目标会产生多个子区域,旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。

提取特征相关步骤如下图

分为四个步骤:

  1. 输入测试图像
  2. 利用 selective search 算法在图像中从下到上提取 2000 个左右的 Region Proposal
  3. 将每个 Region Proposal 缩放(warp)成 227x227 的大小并输入到 CNN, 将 CNN 的 fc7层的输出作为特征
  4. 将每个 Region Proposal 提取到的 CNN 特征输入到 SVM 进行分类

RCNN 存在三个明显的问题:
(1) 训练分为多个阶段,步骤繁琐: 微调网络+训练 SVM+训练边框回归器
(2) 多个候选区域对应的图像需要预先提取, 训练耗时,占用磁盘空间大: 5000 张图像产生几百 G 的特征文件
(3)针对传统 CNN 需要固定尺寸的输入图像, crop/warp(归一化)产生物体截断或拉伸,会导致输入 CNN 的信息丢失;
(4)测试速度慢:每个候选区域需要运行整个前向 CNN 计算。 每一个 ProposalRegion 都需要进入 CNN 网络计算,上千个 Region 存在大量的范围重叠,重复的特征提取带来巨大的计算浪费。 使用 GPU, VGG16 模型处理一张图像需要 47s。
(5) SVM 和回归是事后操作:在 SVM 和回归过程中 CNN 特征没有被学习更新

步骤

  1. 对输⼊图像使⽤选择性搜索(selective search)来选取多个⾼质量的提议区域。这些提议区域通常是在多个尺度下选取的,并具有不同的形状和⼤小。每个提议区域将被标注类别和真实边界框。
  2. 选取⼀个预训练的卷积神经⽹络,并将其在输出层之前截断。将每个提议区域变形为⽹络需要的输⼊尺⼨,并通过前向计算输出抽取的提议区域特征。
  3. 将每个提议区域的特征连同其标注的类别作为⼀个样本,训练多个⽀持向量机对⽬标分类。其中每个⽀持向量机⽤来判断样本是否属于某⼀个类别。
  4. 将每个提议区域的特征连同其标注的边界框作为⼀个样本,训练线性回归模型来预测真实边界框。

神经网络的认识(七)R-CNN相关推荐

  1. tf2.0先试试图片(七)——CNN卷积神经网络

    之前已经介绍了TenforFlow的基本操作和神经网络,主要是全联接网络的一些概念: tf2.0先试试图片(七)--CNN卷积神经网络 7.0 简介 7.1 全连接网络的问题 7.1.1 局部相关性 ...

  2. 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础

    卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...

  3. Faster R CNN

    Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...

  4. 深度卷积对抗神经网络 基础 第七部分 StyleGAN

    深度卷积对抗神经网络 基础 第七部分 StyleGAN 深度卷积神经网络模型已经应用在非常多的领域,但是其总包含了很多潜在的问题,比如说训练速度过慢,生成器与判别器的进化程度不平衡等等.那么,随着各种 ...

  5. 关于卷积神经网络的思考:将CNN视作泛函拟合

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小 图像本身可以被理解成一种二维平面上的分布 ...

  6. BP神经网络和支持向量机在R语言中的实现

    转载自:http://www.biostatistic.net/thread-95061-1-1.html BP(Back Propagation)神经网络 是1986年由Rumelhart和McCe ...

  7. 卷积神经网络新方向:Three-column CNN实现无参考立体图像评估

    Three-column CNN模型通过同时处理立体图像中包含的平面图像信息,以及差分图像所包含的深度信息,构造了一类新的无参考立体图像质量评估方法,突破了传统的处理思想,有效地将平面信息与深度信息统 ...

  8. PyTorch图神经网络实践(七)社区检测

    文章目录 前言 组合优化 社区检测 端到端的学习与优化 作者介绍 核心思想 技术手段 方法创新 代码复现 导入包 数据转换 ClusterNet模型 创建网络 参数设置和数据导入 训练网络 前言 最近 ...

  9. 卷积神经网络五之典型的CNN网络

    一.典型的CNN网络 1.开山之作:LeNet-5 1998 LeNet-5 是一个非常成功的神经网络模型. 基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面 ...

  10. 《人工智能-处女篇(AI2026)》(Unity+SteamVR+5G+AI+VR云游戏+AlphaGo+神经网络+深度学习+机器学习+图像识别+CNN+自动驾驶+智能机器人+立钻哥哥+==)

    <人工智能-处女篇(AI2026)> <人工智能-处女篇(AI2026)> 版本 作者 参与者 完成日期 备注 YanlzAI_VIP_V01_1.0 严立钻 2019.08. ...

最新文章

  1. ValueError: You are trying to load a weight file containing 12 layers into a model with 2 layers.
  2. java编写正则表达式_如何用Java编写最快的表达式评估器之一
  3. mysql客户端保存数据乱码_mysql客户端数据乱码问题
  4. java栈编程题_Java实现栈和队列面试题
  5. Linux无线网卡的工作模式
  6. CSU1020: 真三国无双
  7. Unity3d场景漫游---iTween实现
  8. 【基音频率】基音matlab基音频率计算【含Matlab源码 1384期】
  9. 微信公众号排版 | 汇总和实战
  10. 《思科路由器常用配置命令》学习笔记(更新中)
  11. 三维空间中向量的旋转
  12. Mybatis中取循环获取 Oracle自增序列 重复值问题
  13. dll加壳c语言,使用VC自己动手编写加壳程序
  14. css之让尾部永远固定在页面最下方
  15. java在线答题系统,上岸蚂蚁金服!
  16. 如何提取iOS App素材
  17. eclipse安装html编辑器插件
  18. SSM框架实现插入图片显示图片到JSP界面
  19. Tuscany是什么?
  20. Matlab常用函数(control)

热门文章

  1. 【学习笔记】SSM整合篇
  2. 从零编写日志分析系统之需求分析
  3. 微信支付完成或取消后在ios系统回跳到Safari默认浏览器的解决方案
  4. Git GUI汉化,设置成中文
  5. 蒙特卡洛树搜索-黑白棋(一):黑白棋介绍及棋盘类
  6. NAT-PT 协议转换网关的设计与实现
  7. golang redirect时设置cookie
  8. Hitran数据库的使用
  9. 万人协同规模下的代码管理架构演进
  10. 解决Dreamweaver CS5序列号的问题