标题 发布状态 评论数 阅读数 操作 操作 CNN目标检测系列算法发展脉络简析——学习笔记(三):Fast R-CNN
最近两周忙着上网课、投简历,博客没什么时间写,姑且把之前做的笔记放上来把。。。
下面是我之前看论文时记的笔记,直接copy上来了,内容是Fast R-CNN的,以后如果抽不出时间写博客,就放笔记上来(实则偷懒。。。。)
1、改进
- 端到端的学习
- 将图片用选择搜索算法(select search)得到2000个候选区域(RegionProposal)的坐标信息
- 将图片归一化为指定格式,输入 CNN(AlextNet/VGG/ResNet)对图片进行进行特征提取,生成一张特征图
- 将开始得到的坐标信息通过一定的映射关系转换为对应特征图的坐标,截取对应的 RegionProposal
- 对提取出的 RegionProposal 进行 ROIPooling(SPPNet 简化版),将不同尺寸的图像映射为相同尺寸的特征图
- 将上述特征图输入全连接层进行分类
- 定义多任务损失函数,将分类和边框回归融合到一个模块当中
- 使用 Sfotmax 取代 SVM 作为分类器(为了实现端到端的训练)
- 增加了一个与 Softmax 层平行的 LinearRegression 层,用于回归优化边框

2、解决了 R-CNN/SPP-Net 的缺陷
- 训练 & 测试速度慢
- R-CNN 中用 CNN 对每一个候选区域反复提取特征,而一张图片的2000个候选区域之间有大量重叠部分,这一设定造成特征提取操作浪费大量计算
- Fast R-CNN 将整个图像归一化后直接送入 CNN 网络,卷积层不进行候选区的特征提取,而是在最后一个池化层加入候选区域坐标信息,进行特征提取的计算。
- 训练所需空间大
- R-CNN 中目标分类与候选框的回归是独立的两个操作,并且需要大量特征作为训练样本。
- Fast R-CNN 将目标分类与候选框回归统一到 CNN 网络中来,不需要额外存储特征。
- 无法对空间金字塔池之前的卷积层进行更新
- FastR-CNN 可以对所有网络层参数进行更新
3、预训练注意事项
- 预训练时
- 分类器是一个单独的全连接层+Softmax,没有边框回归
- 没有ROI层,取而代之的是一个池化层
- 预训练结束后,进行调优训练时
- 需将分类器替换为并行的【新全连接层1+原softmax层1000个分类输出修改为21个分类输出(20种类+背景)】+【新全连接层2+候选区域窗口回归层】
- 将VGG-16网络最后一层池化层替换为 ROI 层
4、缺点
- 在 CNN 提取后的特征图像上使用 select search 生成 RegionProposal,效率太低,计算量太大
5、ROIPoolling
- 名词解释
- ROI 指的是所提取出的关注区域(Feature map/RegionProposal)
- 原始图片经过多层卷积与池化后(CNN 前向提取特征图),得到整图的 feature map
- 由 selective search 产生的大量 proposal,经过映射所得到其在 feature map 上的映射区域,即 ROI
- ROI 指的是所提取出的关注区域(Feature map/RegionProposal)
- 上述提取出的 ROI 即作为 ROI Pooling 层的输入
- ROIPolling 流程(如下图 )
- 将输入的(h,w)的 ROI 分割成 H*W 个子窗口
- 每个子窗口的大小约为(h/H,w/W),其中 H、W 为超参数,如设定为7 x 7
- 对每个子窗口进行 max-pooling 操作,得到固定输出大小的 feature map
- 之后进行后续的全连接层操作

标题 发布状态 评论数 阅读数 操作 操作 CNN目标检测系列算法发展脉络简析——学习笔记(三):Fast R-CNN的更多相关文章
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- openresty 学习笔记三:连接redis和进行相关操作
openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...
- Javascript学习笔记三——操作DOM(二)
Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...
- ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )
//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...
- python学习笔记三 文件操作(基础篇)
文件操作 打开文件 open(name[,mode[,buffering]]) open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉] w ...
- 数据库学习笔记 (三) python操作数据库
python 操作MYSQL数据库主要有两种方式: 使用原生模块:pymysql ORM框架:SQLAchemy 一.pymysql 1.1下载安装模块 第一种:cmd下:执行命令下载安装:pip3 ...
- C# LINQ学习笔记三:LINQ to OBJECT之操作字符串
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5814204.html,记录一下学习过程以备后续查用. 一.统计单词在字符串中出现的次数 请注意,若要执行计数, ...
- MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据
看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是 ...
- Tornado学习笔记(三) 请求方式/状态码
本章我们来学习 Tornado 支持的请求方式 请求方式 Tornado支持任何合法的HTTP请求(GET.POST.PUT.DELETE.HEAD.OPTIONS).你可以非常容易地定义上述任一种方 ...
随机推荐
- .net core && python
最近.net core的发展,确实值得激动,强力推荐传教文章<.NET:持续进化的统一开发平台>http://www.cnblogs.com/wer-ltm/p/8776846.html ...
- 配置gitlab(备忘)
已经配置好github的基础上,clone gitlab 地址git status 显示改变了的文件但是webstorm文件颜色不改变问题的解决:VCS->git-->remotes--& ...
- 【转载】解决StackOverFlow不能登录的问题
解决StackOverFlow不能登录的问题 原创 2017年04月08日 13:32:21 标签: stack overflow / firefox / 浏览器 今天想着使用谷歌浏览器登录sta ...
- [VUE]关于路由哪些事儿
什么是路由 之前有个小伙伴面试被问到:面试官:不用vue能不能写单页面应用?答:用angular啊(咳咳,开个玩笑),答案确实是可以的,原生js中有个事件叫做onhashchange,可以在windo ...
- Linux命令alias - 设置命令的别名
用途说明设置命令的别名.在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名.虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了.而指定 ...
- Circles of Waiting
题目传送门 很容易列出期望的方程,高斯消元搞一波但是常规消元复杂度是$O(r^6)$的考虑从左到右从上到下编号然后按编号从小到大消元假设黄点是已经消元的点,那么消下一个点的时候,只有绿点的方程中该项系 ...
- C++走向远洋——52(十三周阅读程序)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- python爬虫-提取网页数据的三种武器
常用的提取网页数据的工具有三种xpath.css选择器.正则表达式 1.xpath 1.1在python中使用xpath必须要下载lxml模块: lxml官方文档 :https://lxml.de/i ...
- Swift --闭包表达式与闭包(汇编分析)
在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数! 一.闭包表达式 概念 闭包表达式与定义函数的语法相对比,有区别如下: 去除了func 去除函数名 返回值类型添加了关键 ...
- 【Amaple教程】5. 插件
Amaple 拥有非常强大插件功能,这也是它的突出功能之一,Amaple插件一般表现为功能块(函数)或功能块(包含一系列函数和属性的Object对象),它除了支持Amaple规范定义的插件外,还支持所 ...