大冶市建设局网站,北京网站建设最便宜的公司哪家好,百度推广关键词和创意,一级a做爰片免费网站迅雷下载在生活中#xff0c;经常会遇到这样的一种情况#xff0c;上班要出门的时候#xff0c;突然找不到一件东西了#xff0c;比如钥匙、手机或者手表等。这个时候一般在房间翻一遍各个角落来寻找不见的物品#xff0c;最后突然一拍大脑#xff0c;想到在某一个地方#xff0…在生活中经常会遇到这样的一种情况上班要出门的时候突然找不到一件东西了比如钥匙、手机或者手表等。这个时候一般在房间翻一遍各个角落来寻找不见的物品最后突然一拍大脑想到在某一个地方在整个过程中有时候是很着急的并且越着急越找不到真是令人沮丧。但是如果一个简单的计算机算法可以在几毫秒内就找到你要找的物品你的感受如何是不是很惊奇这就是对象检测算法object detection的力量。虽然上述举的生活例子只是一个很简单的例子但对象检测的应用范围很广跨越多个不同的行业从全天候监控到智能城市的实时车辆检测等。简而言之物体检测是强大的深度学习算法中的一个分支。
在本文中我们将深入探讨可以用于对象检测的各种算法。首先从属于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中将输入图像馈送到CNNCNN生成卷积特征映射。使用这些特征图提取候选区域。然后使用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的问题
上述讨论过的所有对象检测算法都使用区域来识别对象且网络不会一次查看完整图像而是按顺序关注图像的某些部分这样会带来两个复杂性的问题
该算法需要多次通过单个图像来提取到所有对象由于不是端到端的算法不同的系统一个接一个地工作整体系统的性能进一步取决于先前系统的表现效果。
5.总结
下表是总结了本文中介绍的所有算法
算法特征预测时间限制CNN将图像分成多个区域将每个区域分类为不同的类别-需要很多区域来准确预测因此计算时间长RCNN使用选择性搜索生成区域,从每个图像中提取大约2000个区域40-50秒每个区域分别传递给CNN的计算时间也很长且使用三种不同的模型进行预测Fast RCNN每个图像只传递一次到CNN并提取特征图。在这些地图上使用选择性搜索来生成预测。将RCNN中使用的所有三种模型组合在一起2秒选择性搜索很慢因此计算时间仍然很长Faster RCNN用区域提议网络替换选择性搜索方法使算法更快0.2秒对象提议需要时间并且由于不同的系统一个接一个地工作系统的性能取决于先前系统的表现效果
原文链接 本文为云栖社区原创内容未经允许不得转载。