当前位置:首页 » 操作系统 » 图解算法pdf

图解算法pdf

发布时间: 2025-05-08 09:24:36

1. 目标检测算法图解:一文看懂RCNN系列算法

姓名:王咫毅

学号:19021211150

【嵌牛导读】CNN如此风靡,其衍生算法也是层出不穷,各种衍生算法也可以应用于各种应用场景,各类场合。本文则是了解每个衍生算法的各个使用场景、原理及方法。

【嵌牛鼻子】RCNN 目标检测

【嵌牛提问】RCNN系列算法有何区别和联系?

【嵌牛正文】

在生活中,经常会遇到这样的一种情况,上班要出门的时候,突然找不到一件东西了,比如钥匙、手机或者手表等。这个时候一般在房间翻一遍各个角落来寻找不见的物品,最后突然一拍大脑,想到在某一个地方,在整个过程中有时候是很着急的,并且越着急越找不到,真是令人沮丧。但是,如果一个简单的计算机算法可以在几毫秒内就找到你要找的物品,你的感受如何?是不是很惊奇!这就是对象检测算法(object detection)的力量。虽然上述举的生活例子只是一个很简单的例子,但对象检测的应用范围很广,跨越多个不同的行业,从全天候监控到智能城市的实时车辆检qian测等。简而言之,物体检测是强大的深度学习算法中的一个分支。

在本文中,我们将深入探讨可以用于对象检测的各种算法。首先从属于RCNN系列算法开始,即RCNN、 Fast RCNN和 Faster RCNN。在之后的文章中,将介绍更多高级算法,如YOLO、SSD等。

1.解决对象检测任务的简单方法(使用深度学习)

下图说明了对象检测算法是如何工作。图像中的每个对象,从人到风筝都以一定的精度进行了定位和识别。

下面从最简单的深度学习方法开始,一种广泛用于检测图像中的方法——卷积神经网络(CNN)。如果读者对CNN算法有点生疏,建议 阅读此文 。

这里仅简要总结一下CNN的内部运作方式:

首先将图像作为输入传递到网络,然后通过各种卷积和池化层处理,最后以对象类别的形式获得输出。

对于每个输入图像,会得到一个相应的类别作为输出。因此可以使用这种技术来检测图像中的各种对象。

1.首先,将图像作为输入;

2.然后,将图像分成不同的区域;

3.然后,将每个区域视为单独的图像;

4.将所有这些区域传递给CNN并将它们分类为各种类别;

5.一旦将每个区域划分为相应的类后,就可以组合所有这些区域来获取具有检测到的对象的原始图像:

使用这种方法会面临的问题在于,图像中的对象可以具有不同的宽高比和空间位置。例如,在某些情况下,对象可能覆盖了大部分图像,而在其他情况下,对象可能只覆盖图像的一小部分,并且对象的形状也可能不同。

基于此,需要划分大量的区域,这会花费大量的计算时间。因此,为了解决这个问题并减少区域数量,可以使用基于区域的CNN,它使用提议方法选择区域。

2.基于区域的卷积神经网络

2.1 RCNN的思想

RCNN算法不是在大量区域上工作,而是在图像中提出了一堆方框,并检查这些方框中是否包含任何对象。RCNN 使用选择性搜索从图像中提取这些框。

下面介绍选择性搜索以及它如何识别不同的区域。基本上四个区域形成一个对象:不同的比例、颜色、纹理和形状。选择性搜索在图像中识别这些模式,并基于此提出各种区域。以下是选择性搜索如何工作的简要概述:

首先, 将图像作为输入:

然后,它生成初始子分段,以便获得多个区域:

之后,该技术组合相似区域以形成更大的区域(基于颜色相似性、纹理相似性、尺寸相似性和形状兼容性):

最后,这些区域产生最终的对象位置(感兴趣的区域);

下面是RCNN检测对象所遵循的步骤的简要总结:

1.首先采用预先训练的卷积神经网络;

2.重新训练该模型模型——根据需要检测的类别数量来训练网络的最后一层(迁移学习);

3.第三步是获取每个图像的感兴趣区域。然后,对这些区域调整尺寸,以便其可以匹配CNN输入大小;

4.获取区域后,使用SVM算法对对象和背景进行分类。对于每个类,都训练一个二分类SVM;

最后,训练线性回归模型,为图像中每个识别出的对象生成更严格的边界框;

[对上述步骤进行图解分析]( http://www.robots.ox.ac.uk/~tvg/publications/talks/Fast-rcnn-slides.pdf ):

首先,将图像作为输入:

然后,使用一些提议方法获得感兴趣区域(ROI)(例如,选择性搜索):

之后,对所有这些区域调整尺寸,并将每个区域传递给卷积神经网络:

然后,CNN为每个区域提取特征,SVM用于将这些区域划分为不同的类别:

最后,边界框回归(Bbox reg)用于预测每个已识别区域的边界框:

以上就是RCNN检测物体的全部流程。

2.2 RCNN的问题

从上节内容可以了解到RCNN是如何进行对象检测的,但这种技术有其自身的局限性。以下原因使得训练RCNN模型既昂贵又缓慢:

基于选择性搜索算法为每个图像提取2,000个候选区域;

使用CNN为每个图像区域提取特征;

RCNN整个物体检测过程用到三种模型:

CNN模型用于特征提取;

线性svm分类器用于识别对象的的类别;

回归模型用于收紧边界框;

这些过程相结合使得RCNN非常慢,对每个新图像进行预测需要大约40-50秒,这实际上使得模型在面对巨大的数据集时变得复杂且几乎不可能应用。

好消息是存在另一种物体检测技术,它解决了RCNN中大部分问题。

3.了解Fast RCNN

3.1Fast RCNN的思想

RCNN的提出者Ross Girshick提出了这样的想法,即每个图像只运行一次CNN,然后找到一种在2,000个区域内共享该计算的方法。在Fast RCNN中,将输入图像馈送到CNN,CNN生成卷积特征映射。使用这些特征图提取候选区域。然后,使用RoI池化层将所有建议的区域重新整形为固定大小,以便将其馈送到全连接网络中。

下面将其分解为简化概念的步骤:

1.首先将图像作为输入;

2.将图像传递给卷积神经网络,生成感兴趣的区域;

3.在所有的感兴趣的区域上应用RoI池化层,并调整区域的尺寸。然后,每个区域被传递到全连接层的网络中;

4.softmax层用于全连接网以输出类别。与softmax层一起,也并行使用线性回归层,以输出预测类的边界框坐标。

因此,Fast RCNN算法中没有使用三个不同的模型,而使用单个模型从区域中提取特征,将它们分成不同的类,并同时返回所标识类的边界框。

对上述过程进行可视化讲解:

将图像作为输入:

将图像传递给卷积神经网络t,后者相应地返回感兴趣的区域:

然后,在提取的感兴趣区域上应用RoI池层,以确保所有区域具有相同的大小:

最后,这些区域被传递到一个全连接网络,对其进行分类,并同时使用softmax和线性回归层返回边界框:

上述过程说明了Fast RCNN是如何解决RCNN的两个主要问题,即将每个图像中的1个而不是2,000个区域传递给卷积神经网络,并使用一个模型来实现提取特征、分类和生成边界框。

3.2Fast RCNN的问题

Fast RCNN也存在一定的问题,它仍然使用选择性搜索作为查找感兴趣区域的提议方法,这是一个缓慢且耗时的过程,每个图像检测对象大约需要2秒钟。

因此,又开发了另一种物体检测算法——Faster RCNN。

4.了解Faster RCNN

4.1. Faster RCNN的思想

Faster RCNN是Fast RCNN的修改版本,二者之间的主要区别在于,Fast RCNN使用选择性搜索来生成感兴趣区域,而Faster RCNN使用“区域提议网络”,即RPN。RPN将图像特征映射作为输入,并生成一组提议对象,每个对象提议都以对象分数作为输出。

以下步骤通常采用Faster RCNN方法:

1.将图像作为输入并将其传递给卷积神经网络,后者返回该图像的特征图;

2.在这些特征图上应用RPN,返回提议对象及其分数;

3.在这些提议对象上应用RoI池层,以将所有提案降低到相同的大小;

4.最后,将提议传递到全连接层,该层在其顶部具有softmax层和线性回归层,以对对象的边界框进行分类和输出;

这里简要解释一下RPN是如何运作的:

首先,Faster RCNN从CNN获取特征图并将它们传递到区域提议网络。RPN在这些特征图上使用滑动窗口,每个窗口生成不同形状和大小的k个方框( Anchor boxe):

方框是固定尺寸的边界箱,具有不同的形状和尺寸。对于每个方框,RPN预测两件事:

预测锚是对象的概率;

用于边界框回归器调整锚点以更好地适合物体的形状;

在有了不同形状和大小的边界框后,将其传递到RoI池层。对每个提案并对其进行裁剪,以便每个提案都包含一个对象。这就是RoI池层所做的事情,它为每个方框提取固定大小的特征图:

然后将这些特征图传递到全连接层,该层具有softmax和线性回归层,最终对对象进行分类并预测已识别对象的边界框。

4.2Faster RCNN的问题

上述讨论过的所有对象检测算法都使用区域来识别对象,且网络不会一次查看完整图像,而是按顺序关注图像的某些部分,这样会带来两个复杂性的问题:

该算法需要多次通过单个图像来提取到所有对象;

由于不是端到端的算法,不同的系统一个接一个地工作,整体系统的性能进一步取决于先前系统的表现效果。

链接: https://www.jianshu.com/p/51fc039ae7a4

2. pdf通俗讲是什么意思

意思是可携带文档格式。
PDF是PortableDocumentFormat的简称,意为“可携带文档格式”,是由AdobeSystems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。
可移植文档格式是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的MacOS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。
PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与储存。它还是页独立的,一个PDF文件包含一个或多个“页”,可以单独处理各页,特别适合多处理器系统的工作。此外,一个PDF文件还包含文件中所使用的PDF格式版本,以及文件中一些重要结构的定位信息。正是由于PDF文件的种种优点,它逐渐成为出版业中的新宠。

3. 算法图解 PDF 高清版

像小说集一样趣味的算法新手入门书。
算法是解决困难的一步步步骤,都是电子信息科学行业的关键主题。现如今程序员*常见的算法早已历经了古人的探索、检测及证实。假如你要搞明白这种算法,又不愿困在在繁杂的证实中,这书更是你的不二选择。这部图例丰富多彩、扣人心弦的好用手册将给你轻轻松松懂得怎样在自身的程序流程中高效率应用关键的算法。
这书范例丰富多饥旦首彩,图片配文字,以令人非常容易了解的方法诠释了算法,致力于协助程序员在平时新项目中充分发挥算法的动能。书中的前三章将协助你奠定基础,陪你学迟数习培训二分查找、大O表示法、二种基础的数据结构及其递归等。剩下的篇数将关键详细介绍运用普遍的算法,主要内容包含:应对实际难题时的处理方法,例如,什么时候选用贪欲算法或动态规划;散列表的运用;图算法;Kzui近邻算法。

目录
前言
致谢
关于本书
第1章 算法简介1
1.1引言1
1.1.1性能方面1
1.1.2问题解决技巧2
1.2二分查找2
1.2.1更佳的查找方式4
1.2.2运行时间8
1.3大O 表示法8
1.3.1算法的运行时间以不同的速度增加9
1.3.2理解不同的大O运行时间10
1.3.3大O 表示法指出了最糟情况下的运行时间12
1.3.4一些常见的大O运行时间12
1.3.5旅行商13
1.4小结15
第2章 选择排序16
2.1内存的工作原理16
2.2数组和链表18
2.2.1链表19
2.2.2数组20
2.2.3术语21
2.2.4在中间插入22
2.2.5删除23
2.3选择排序25
2.4小结28
第3章 递归29
3.1递归29
3.2基线条件和递归条件32
3.3栈33
3.3.1调用栈34
3.3.2递归调用栈36
3.4小结40
第4章 快速排序41
4.1分而治之41
4.2快速排序47
4.3再谈大O表示法52
4.3.1比较合并排序和快速排序53
4.3.2平均情况和最糟情况54
4.4小结57
第5章 散列表58
5.1散列函数60
5.2应用案例63
5.2.1将散列表用于查找烂数63
5.2.2防止重复64
5.2.3将散列表用作缓存66
5.2.4小结68
5.3冲突69
5.4性能71
5.4.1填装因子72
5.4.2良好的散列函数74
5.5小结75
第6章 广度优先搜索76
6.1图简介77
6.2图是什么79
6.3广度优先搜索79
6.3.1查找最短路径82
6.3.2队列83
6.4实现图84
6.5实现算法86
6.6小结93
第7章 狄克斯特拉算法94
7.1使用狄克斯特拉算法95
7.2术语98
7.3换钢琴100
7.4负权边105
7.5实现108
7.6小结116
第8章 贪婪算法117
8.1教室调度问题117
8.2背包问题119
8.3集合覆盖问题121
8.4NP 完全问题127
8.4.1旅行商问题详解127
8.4.2如何识别NP 完全问题131
8.5小结133
第9章 动态规划134
9.1背包问题134
9.1.1简单算法135
9.1.2动态规划136
9.2背包问题FAQ143
9.2.1再增加一件商品将如何呢143
9.2.2行的排列顺序发生变化时结果将如何145
9.2.3可以逐列而不是逐行填充网格吗146
9.2.4增加一件更小的商品将如何呢146
9.2.5可以偷商品的一部分吗146
9.2.6旅游行程最优化147
9.2.7处理相互依赖的情况148
9.2.8计算最终的解时会涉及两个以上的子背包吗148
9.2.9最优解可能导致背包没装满吗149
9.3最长公共子串149
9.3.1绘制网格150
9.3.2填充网格151
9.3.3揭晓答案152
9.3.4最长公共子序列153
9.3.5最长公共子序列之解决方案154
9.4小结155
第10章 K 最近邻算法156
10.1橙子还是柚子156
10.2创建推荐系统158
10.2.1特征抽取159
10.2.2回归162
10.2.3挑选合适的特征164
10.3机器学习简介165
10.3.1OCR165
10.3.2创建垃圾邮件过滤器166
10.3.3预测股票市场167
10.4小结167
第11章 接下来如何做168
11.1树168
11.2反向索引171
11.3傅里叶变换171
11.4并行算法172
11.5MapRece173
11.5.1分布式算法为何很有用173
11.5.2映射函数173
11.5.3归并函数174
11.6布隆过滤器和HyperLogLog174
11.6.1布隆过滤器175
11.6.2HyperLogLog176
11.7SHA 算法176
11.7.1比较文件177
11.7.2检查密码178
11.8局部敏感的散列算法178
11.9Diffie-Hellman 密钥交换179
11.10线性规划180
11.11结语180
练习答案181

自取: https://url80.ctfile.com/f/32319880-518802548-9892a0
访问密码:3284)

热点内容
数据库程序设计题 发布:2025-05-08 18:37:41 浏览:363
奶块什么服务器装备价格便宜 发布:2025-05-08 18:36:20 浏览:215
我的世界网易版建筑比赛服务器在哪 发布:2025-05-08 18:36:08 浏览:864
sqlserver时间戳 发布:2025-05-08 18:32:33 浏览:206
泰国创意广告脚本 发布:2025-05-08 18:31:13 浏览:292
php抓取搜索 发布:2025-05-08 18:27:10 浏览:199
java反编译注释 发布:2025-05-08 18:07:39 浏览:957
vcado数据库操作 发布:2025-05-08 17:59:57 浏览:133
linux攻击 发布:2025-05-08 17:53:33 浏览:783
安卓手机的库存怎么转到苹果手机 发布:2025-05-08 17:53:32 浏览:426