神经网络的认识(七)R-CNN
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) 得到精确的目标区域,由于实际目标会产生多个子区域,旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。
提取特征相关步骤如下图
分为四个步骤:
- 输入测试图像
- 利用 selective search 算法在图像中从下到上提取 2000 个左右的 Region Proposal
- 将每个 Region Proposal 缩放(warp)成 227x227 的大小并输入到 CNN, 将 CNN 的 fc7层的输出作为特征
- 将每个 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 特征没有被学习更新
步骤
- 对输⼊图像使⽤选择性搜索(selective search)来选取多个⾼质量的提议区域。这些提议区域通常是在多个尺度下选取的,并具有不同的形状和⼤小。每个提议区域将被标注类别和真实边界框。
- 选取⼀个预训练的卷积神经⽹络,并将其在输出层之前截断。将每个提议区域变形为⽹络需要的输⼊尺⼨,并通过前向计算输出抽取的提议区域特征。
- 将每个提议区域的特征连同其标注的类别作为⼀个样本,训练多个⽀持向量机对⽬标分类。其中每个⽀持向量机⽤来判断样本是否属于某⼀个类别。
- 将每个提议区域的特征连同其标注的边界框作为⼀个样本,训练线性回归模型来预测真实边界框。
神经网络的认识(七)R-CNN相关推荐
- tf2.0先试试图片(七)——CNN卷积神经网络
之前已经介绍了TenforFlow的基本操作和神经网络,主要是全联接网络的一些概念: tf2.0先试试图片(七)--CNN卷积神经网络 7.0 简介 7.1 全连接网络的问题 7.1.1 局部相关性 ...
- 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础
卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...
- Faster R CNN
Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...
- 深度卷积对抗神经网络 基础 第七部分 StyleGAN
深度卷积对抗神经网络 基础 第七部分 StyleGAN 深度卷积神经网络模型已经应用在非常多的领域,但是其总包含了很多潜在的问题,比如说训练速度过慢,生成器与判别器的进化程度不平衡等等.那么,随着各种 ...
- 关于卷积神经网络的思考:将CNN视作泛函拟合
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小 图像本身可以被理解成一种二维平面上的分布 ...
- BP神经网络和支持向量机在R语言中的实现
转载自:http://www.biostatistic.net/thread-95061-1-1.html BP(Back Propagation)神经网络 是1986年由Rumelhart和McCe ...
- 卷积神经网络新方向:Three-column CNN实现无参考立体图像评估
Three-column CNN模型通过同时处理立体图像中包含的平面图像信息,以及差分图像所包含的深度信息,构造了一类新的无参考立体图像质量评估方法,突破了传统的处理思想,有效地将平面信息与深度信息统 ...
- PyTorch图神经网络实践(七)社区检测
文章目录 前言 组合优化 社区检测 端到端的学习与优化 作者介绍 核心思想 技术手段 方法创新 代码复现 导入包 数据转换 ClusterNet模型 创建网络 参数设置和数据导入 训练网络 前言 最近 ...
- 卷积神经网络五之典型的CNN网络
一.典型的CNN网络 1.开山之作:LeNet-5 1998 LeNet-5 是一个非常成功的神经网络模型. 基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面 ...
- 《人工智能-处女篇(AI2026)》(Unity+SteamVR+5G+AI+VR云游戏+AlphaGo+神经网络+深度学习+机器学习+图像识别+CNN+自动驾驶+智能机器人+立钻哥哥+==)
<人工智能-处女篇(AI2026)> <人工智能-处女篇(AI2026)> 版本 作者 参与者 完成日期 备注 YanlzAI_VIP_V01_1.0 严立钻 2019.08. ...
最新文章
- ValueError: You are trying to load a weight file containing 12 layers into a model with 2 layers.
- java编写正则表达式_如何用Java编写最快的表达式评估器之一
- mysql客户端保存数据乱码_mysql客户端数据乱码问题
- java栈编程题_Java实现栈和队列面试题
- Linux无线网卡的工作模式
- CSU1020: 真三国无双
- Unity3d场景漫游---iTween实现
- 【基音频率】基音matlab基音频率计算【含Matlab源码 1384期】
- 微信公众号排版 | 汇总和实战
- 《思科路由器常用配置命令》学习笔记(更新中)
- 三维空间中向量的旋转
- Mybatis中取循环获取 Oracle自增序列 重复值问题
- dll加壳c语言,使用VC自己动手编写加壳程序
- css之让尾部永远固定在页面最下方
- java在线答题系统,上岸蚂蚁金服!
- 如何提取iOS App素材
- eclipse安装html编辑器插件
- SSM框架实现插入图片显示图片到JSP界面
- Tuscany是什么?
- Matlab常用函数(control)