目标检测算法图解:一文看懂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


目标检测算法图解:一文看懂RCNN系列算法
Fast RCNN也存在一定的问题,它仍然使用选择性搜索作为查找感兴趣区域的提议方法,这是一个缓慢且耗时的过程,每个图像检测对象大约需要2秒钟。 因此,又开发了另一种物体检测算法——Faster RCNN。 4.了解Faster RCNN 4.1. Faster RCNN的思想 Faster RCNN是Fast RCNN的修改版本,二者之间的主要区别在于,Fast RCNN...

全图片带你了解 ROI【一文图解AI之CV系列】
举例来说,4个RoI在实际应用中可能成千上万,但展示全部会过于密集。重要的是要区分RoI并非精确的物体边界框,它们是预处理后用于检测的候选区域。一个绿色框展示了一个不在实际物体上的RoI示例,它同样会被算法纳入检测范围。如何将RoI映射到特征图,实现从特征图到RoI的转换呢?每个RoI都有其原始坐标...

聚类算法
K-means聚类算法也称k均值聚类算法,是集简单和经典于一身的基于距离的聚类算法。它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为最终目标。2. 算法核心思想 K-means聚类算法是一种迭代求解的聚类...

DOAS算法
下图为长光程DOAS微分光学大气分析仪的原理图。氙弧灯首先被校准为平行光束,通过大气后照射到石英晶体角反射器上阵列上,反射回的光进入望远镜系统,再被双牛顿望远镜的中心部分接收,然后聚焦到多模石英光纤上,光纤的另一端作为光栅分光计的入口 光谱被光电二极管阵列PDA记录后存储在计算机里。望远系统、氙...

图解江苏国泰新点之新点清标工具使用
新点清标工具是江苏国泰新点推出的一款用于辅助清标的工具,通过图形化界面和智能化算法,帮助用户快速完成清标操作。使用该工具,用户可以轻松完成数据导入、清标、导出等一系列操作,大大提高了工作效率。首先,用户需要将招标文件导入新点清标工具中。在导入过程中,工具会自动识别文件格式,并提取其中的关键...

求图像边缘检测的流程图
智能锐化滤镜 使用新的算法来锐化图像,以获得更好的边缘检测并减少锐化晕圈。 控制高光和阴影中的锐化量。 (请参阅使用智能锐化滤镜。)污点修复工具 快速修复污点和瑕疵,而不选择源内容。 (请参阅使用污点修复画笔工具。)只需点按一次即可校正红眼 点按一次来修复红眼。 设置选项以调整瞳孔大小和变...

右手握拳生男孩女孩图解,走路能看出怀男孩女孩
1、隔骨算男女。 这种算生男生女电方法,在一些地方还是比较流行的,具体的算法步骤就是:利用夫妻双方的性别,男方在上,单岁画一整画,双岁的话就画两半画;女方在下,单岁画一整画,双岁画两半画;受胎之月在中间,单月画一整画,双月画两半画。这样就会形成一个卦相。按照对照表一看便知男女。(乾坎艮震男,巽...

电脑内存怎么检测 电脑内存检测教程【图解】
1、根据“ 电脑怎么进bios更改启动顺序 ”开机u盘启动,然后进入菜单列表,选择“【08】运行硬盘内存检测扫描工具菜单”按回车,2、接着在子菜单中选择“【03】运行windiag内存检测工具”并按回车确认,3、进入工具后,开始进行内存检测,测试过程中会显示通过的进度、测试...

求《公路水运工程试验检测人员业务考试大纲(2010年版)》! 120083436@qq...
2010年公路水运试验检测工程技术人员业务考试大纲主题:2010年公路水运试验检测工程技术人员业务考试大纲第一部分 总说明公路工程试验检测人员考试,目的是科学、公开、公平、公正地考核公路工程试验检测人员的试验检测技术水平,提高士严检测队伍整体的基本素质和专业技术水平,确保公路工程试验检测工作质量。本考试大纲对试验检测...

光纤收发器指示灯代表什么 光纤收发器指示灯故障判定方法
【光纤收发器指示灯】光纤收发器指示灯图解 光纤收发器指示灯故障判定方法 光纤收发器指示灯的作用 光纤收发器指示灯的故障判定方法 一、光纤收发器的指示灯的作用和故障判定方法 1、首先看 光纤收发器 或光模块的指示灯和双绞线端口指示灯是否已亮? A、如收发器的光口(FX)指示灯不亮,请确定光纤链路是否交叉链接?

大渡口区15175825681: 如何评价rcnn,fast - rcnn和faster - rcnn这一系列方法 -
寸图德济: RCNN:RCNN可以看作是RegionProposal+CNN这一框架的开山之作,在imgenet/voc/mscoco上基本上所有top的方法都是这个框架,可见其影响之大.RCNN的主要缺点是重复计算,后来MSRA的kaiming组的SPPNET做了相应的加速. Fast-...

大渡口区15175825681: 基于深度学习的目标识别实践faster rcnn 还可以更快吗 -
寸图德济: Faster Rcnn是RCNN三部曲中的最后一个版本,当然也是越来越快,但还达不到实时的效果.不过近两年针对实时性和效果都有所突破,可以去了解一下SSD/DSSD、YOLO/YOLOv2算法,这些算法的速度都是Faster RCNN的10+倍,效果也不差.

大渡口区15175825681: 目标检测SSD相对于YOLO与faster - RCNN做了哪些改进?效果如何 -
寸图德济: 但是由于运行selective—search实在是太慢,希望用更快的方法.“直接上YOLO呗可以参考博文:物体检测-从RCNN到YOLO参考列表中”YouOnlyLo好Once“一项,包括YOLO的论文、视频、源码、使用方式.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网