R-CNN , Fast R-CNN , Faster R-CNN原理及区别

github博客传送门
csdn博客传送门

==RCNN==

1、生成候选区域

使用Selective Search(选择性搜索)方法对一张图像生成约2000-3000个候选区域,基本思路如下:
(1)使用一种过分割手段,将图像分割成小区域
(2)查看现有小区域,合并可能性最高的两个区域,重复直到整张图像合并成一个区域位置。优先合并以下区域:

  • 颜色(颜色直方图)相近的
  • 纹理(梯度直方图)相近的
  • 合并后总面积小的
  • 合并后,总面积在其BBOX中所占比例大的
    在合并时须保证合并操作的尺度较为均匀,避免一个大区域陆续“吃掉”其它小区域,保证合并后形状规则。
    (3)输出所有曾经存在过的区域,即所谓候选区域
2、特征提取

使用深度网络提取特征之前,首先把候选区域归一化成同一尺寸227×227。
使用CNN模型进行训练,例如AlexNet,一般会略作简化。

3、类别判断

对每一类目标,使用一个线性SVM二类分类器进行判别。
输入为深度网络(如上图的AlexNet)输出的4096维特征,输出是否属于此类。

4、位置精修

目标检测的衡量标准是重叠面积:许多看似准确的检测结果,往往因为候选框不够准确,
重叠面积很小,故需要一个位置精修步骤,对于每一个类,训练一个线性回归模型去判定这个框是否框得完美。

==Fast R-CNN==

Fast R-CNN主要解决R-CNN的以下问题:

1、训练、测试时速度慢

R-CNN的一张图像内候选框之间存在大量重叠,提取特征操作冗余。
而Fast R-CNN将整张图像归一化后直接送入深度网络,紧接着送入从这幅图像上提取出的候选区域。
这些候选区域的前几层特征不需要再重复计算。

2、训练所需空间大

R-CNN中独立的分类器和回归器需要大量特征作为训练样本。Fast R-CNN把类别判断和位置精调统一用深度网络实现,不再需要额外存储。

下面进行详细介绍
  1. 在特征提取阶段,通过CNN(如AlexNet)中的conv、pooling、relu等操作都不需要固定大小尺寸的输入,
    因此,在原始图片上执行这些操作后,输入图片尺寸不同将会导致得到的feature map(特征图)尺寸也不同,这样就不能直接接到一个全连接层进行分类。
    在Fast R-CNN中,作者提出了一个叫做ROI Pooling的网络层,这个网络层可以把不同大小的输入映射到一个固定尺度的特征向量。
    ROI Pooling层将每个候选区域均匀分成M×N块,对每块进行max pooling。将特征图上大小不一的候选区域转变为大小统一的数据,送入下一层。
    这样虽然输入的图片尺寸不同,得到的feature map(特征图)尺寸也不同,
    但是可以加入这个神奇的ROI Pooling层,对每个region都提取一个固定维度的特征表示,就可再通过正常的softmax进行类型识别。
  2. 在分类回归阶段,在R-CNN中,先生成候选框,然后再通过CNN提取特征,之后再用SVM分类,最后再做回归得到具体位置(bbox regression)。
    而在Fast R-CNN中,作者巧妙的把最后的bbox regression也放进了神经网络内部,与区域分类合并成为了一个multi-task模型
    实验表明,这两个任务能够共享卷积特征,并且相互促进。
    Fast R-CNN很重要的一个贡献是成功地让人们看到了Region Proposal+CNN(候选区域+卷积神经网络)这一框架实时检测的希望,原来多类检测真的可以在保证准确率的同时提升处理速度。

==Faster R-CNN==

在Faster R-CNN中加入一个提取边缘的神经网络,也就说找候选框的工作也交给神经网络来做了。
这样,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)终于被统一到一个深度网络框架之内。

Faster R-CNN可以简单地看成是“区域生成网络+Fast R-CNN”的模型,用区域生成网络(Region Proposal Network,简称RPN)来代替Fast R-CNN中的Selective Search(选择性搜索)方法。

RPN的工作步骤如下:

  • 在feature map(特征图)上滑动窗口
  • 建一个神经网络用于物体分类+框位置的回归
  • 滑动窗口的位置提供了物体的大体位置信息
  • 框的回归提供了框更精确的位置

==总结==

R-CNN、Fast R-CNN、Faster R-CNN一路走来,基于深度学习目标检测的流程变得越来越精简、精度越来越高、速度也越来越快。
基于region proposal(候选区域)的R-CNN系列目标检测方法是目标检测技术领域中的最主要分支之一。

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)

转载于:https://www.cnblogs.com/Mrzhang3389/p/10228451.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue和iview-admin搭建的项目进行兼容

写在前面&#xff1a; 用iview-admin创建的基于Vue的项目&#xff0c;开发完成后&#xff0c;用户是使用的360浏览器&#xff0c;其中有两个模式&#xff0c;一个是极速模式&#xff08;谷歌内核&#xff09;&#xff0c;一个是兼容模式&#xff08;IE内核&#xff09;&#x…

App过大

最近开发中遇到一个报错信息 如下 Error:Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: 72477 > 65536 大致意思是Android App中的方法数超过65535时&#xff0c;如果往下兼容到低版本设备时&#xff0c;就会报编译错误 主…

第三课《让简历有点色彩》

一、学习了css 的概念、工作方式、语法 CSS (Cascading Style Sheets) &#xff1a;是一种用于向用户指定文档如何呈现的语言 — 它们如何被指定样式、布局等工作方式&#xff1a; 浏览器将 HTML 和 CSS 转化成 DOM &#xff08;文档对象模型&#xff09;。DOM在计算机内存中表…

Vue 打包后打开为空白页面 并且控制台报错‘Failed to load resource: net::ERR_FILE_NOT_FOUND’

问题描述 当我们开发完成后进行 npm run build打包后形成dist文件 我们通过访问dist文件中的index&#xff0c;会出现空白页面什么都不显示的问题&#xff0c;控制台中还会报‘Failed to load resource: net::ERR_FILE_NOT_FOUND’错误&#xff0c;其实是因为打包后的dist目录…

引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错

错误如下 解决方法 使用VS2017或更高版本在改项目右键&#xff0c;选择“编辑xxx.csproj”&#xff0c;并添加如下一句话&#xff0c;就可以成功引用改Nuget包 <PackageReference Include"Microsoft.EntityFrameworkCore.Tools.DotNet" Version"2.0.3"/…

echarts 折线图 多条折线数据相同时展示的图形并没有重合

简单粗暴的使用echarts官网展示用例 我讲series中的几个对象中的值都改成了相同的 看到数值相同 图表中却没有重合 后面发现解决办法如下 只需要将对象中的stack属性删除就可以了&#xff0c;不仅仅针对这个问题 有时候我们发现图表展示的数据跟y周的值有差距时可以试试这个…

Django,ajax实现表格增删查改,Django内置分页功能。

1.工程目录 2.urls.py """Django_ajax URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.1/topics/http/urls/ Examples: Function views1. Add an import: from my_app im…

前端登录逻辑

话不多说直接上图片&#xff0c;纯手工打造

使用CEfSharp之旅(8)CEFSharp 使用代理 更换位置IP

直接上代码&#xff1a; var settings new CefSettings(); settings.CachePath "cache"; settings.CefCommandLineArgs.Add("proxy-server", ProxyAddress); Cef.Initialize(settings);出处&#xff1a;https://blog.csdn.net/u010919083/article/detail…

新入驻博客园立一个flag

2019年博客12 * 2篇转载于:https://www.cnblogs.com/chenzy87/p/10233209.html

echarts 多次通过setOption改变图形数据时 数据有时不进行变化

需求&#xff1a;通过切换xyz三个选项&#xff0c;进行切换统计图中的折线条数 当前数据为正确&#xff0c;页面加载默认选中x轴&#xff0c;当选中xy后也没有问题 当我取消y轴时 发现图表并没有进行变化 但是option中的数据确实已经刷新了&#xff0c;猜测是在setOption时候…

2019春总结作业

2019春总结作业 一丶我学到的内容 &#xff08;整理本课程所学&#xff0c;用思维导图的方式,思维导图的工具可以使用&#xff1a;XMind&#xff09; 二丶我的收获&#xff08;包括我完成的所有作业的链接收获&#xff09; 在这个星期里&#xff0c;我们专业的学生在专业老师的…

【数据结构入门精讲 | 第十七篇】一文讲清图及各类图算法

在上一篇中我们进行了的并查集相关练习&#xff0c;在这一篇中我们将学习图的知识点。 目录 概念深度优先DFS伪代码 广度优先BFS伪代码 最短路径算法&#xff08;Dijkstra&#xff09;伪代码 Floyd算法拓扑排序逆拓扑排序 概念 下面介绍几种在对图操作时常用的算法。 深度优先D…

腾讯地图调用获取经度纬度代码

腾讯地图调用获取经度纬度代码 //腾讯地图拼接好的数据返回经度和纬度 function getPositionInfo($address) { header("Content-type:text/html;charsetutf-8");//你腾讯地图的k值$ak KDSDS-47CDS-G3NU5-DB3TB-21212-5UBD7;$url "http://apis.map.qq.c…

安装一个插件、回馈给你一款属于猿的绚丽浏览器

不知道大家有没有了解&#xff0c;由CSDN推出的一款CSDN浏览器助手&#xff0c;其实哈就我个人而言对一些助手、插件还是很有兴趣的&#xff0c;毕竟他能够让我们快速高效的去完成我们的操作。但是一直没有找到一款称心如意的&#xff0c;知道遇见了这款CSDN浏览器助手让我爱不…

Python-DDT框架

Install pip install ddt 实例 import unittest from ddt import ddt, data, unpackddt class MyTestCase(unittest.TestCase):data((2, 4), (6, 8))# unpack 说明测试用例有多个参数unpackdef test1(self,value1,value2):self.assertEqual(value2,value12)if __name__ __main…

IT知识库

http://www.it1352.com http://www.itdaan.com/ 转载于:https://www.cnblogs.com/gcgc/p/10233732.html

《看完它面试必solo | 寻找C站宝藏》

今天给大家搂点干货&#xff0c;2020 年 9 月 18 日晚 11 点半发布了 Vue 3.0 版本。到目前已经很多公司开始鼓励大家去学习Vue3了&#xff0c;在这里小编就把自己所了解到的‘皮毛’贡献给大家 Vue3.0 的突出亮点 Performance&#xff1a;性能比Vue2快1.2~2倍Tree shaking s…

KVC/KVO 本质

KVO 的实现原理 KVO是关于runtime机制实现的当某个类的对象属性第一次被观察时&#xff0c;系统就会在运行期动态地创建该类的一个派生类&#xff0c;在这个派生类中重写基类中任何被观察属性的setter方法。派生类在被重写的setter方法内实现真正的通知机制如果原类为Person&am…

mysql 各个版本驱动jar包

http://central.maven.org/maven2/mysql/mysql-connector-java/转载于:https://www.cnblogs.com/mzdljgz/p/11063354.html