YOLO算法思路研究_第1页
YOLO算法思路研究_第2页
YOLO算法思路研究_第3页
YOLO算法思路研究_第4页
YOLO算法思路研究_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1绪论研究背景与意义当今,随着我国经济的不断发展,人们的生活水平不断改善,越来越多的汽车进入了普通家庭,车辆俨然走进千家万户并发展成为日常生活中的主要代步工具。当汽车在给人类的出行方式带来方便和快捷时,也造成了道路交通拥堵等问题。近年来,由于交通拥堵造成的环境污染问题已成为人们越来越重视的问题。基于城市道路所占面积有限、轨道交通建设所需时间长且花费较大等原因,通过传统的道路扩建和采用轨道交通疏解拥堵的方式来解决城市交通拥堵的问题比较困难。因此,想更好的解决上述问题,提出了智能交通的概念,智能交通已成为计算机视觉研究中应用最广泛的领域之一。交通智能化主要分为两种思路:一种是交通管理设施智能化,另一种思路是车辆智能化。上述两种思路方案中所用到的关键技术均为车辆检测技术。从目前的研究现状来看,车辆检测仍然存在需要进一步完善的地方,比如检测速度慢,检测精度不高等问题,尤其是在现实生活中所采集的图片会受到诸多外界因素的影响,例如天气情况、车型不同和复杂交通场景下部分车辆重叠的情况等等,为了提高准确率,减少误差,这些因素都需要考虑。国内外研究现状目前,随着对智能化交通监控系统的需求不断增加,车辆目标检测已成为热门话题,受到越来越多的研究者们关注。近年来,基于机器视觉的车辆检测可以提供比传统方法更多的信息,计算机视觉的车辆检测识别系统在城市智能交通监控管理中发挥着越来越重要的作用。传统的车辆检测方法主要有声波检测、超声波检测、激光检测和线圈检测,其运用的主要技术是传感技术,存在采集信息单一,可靠性低,资金消耗大等缺陷。随着计算机技术的不断发展,基于视频的车辆技术越来越受研究者的重视,由于其设备具有易安装、易升级和成本低等优点,已成为智能交通系统的关键技术。在目标检测领域,CNN区域算法将目标检测的精度大大提高了,在此基础上,新的方法不断被提出,如R-CNN、FasterR-CNN等。虽然这些方法在精度上得到了提升,但都存在检测速度慢的问题。Redmon等提出了一种基于回归理论的目标检测算法YOLO[1],将检测速度提升到45帧,并且在保证精度的前提下,这大大提高了目标检测的速度。近年来,车辆检测技术一直是热门的研究领域,基于深度卷积网的车辆检测技术研究[2],从人工提取特征和深度卷积网自动提取特征两个方面对车辆检测进行了研究。基于YOLO算法的车辆实时检测[5],取得了较高的检测准确率和检测速度。本文主要内容文中主要研究了基于YOLO的车辆检测技术。首先,对YOLO算法做个简单介绍,主要是其原理与实现方法,其中也与相关目标检测技术如FasterR-CCN等做了对比。然后,通过拍摄图片和公开的资料库建立自己的图像库,选取人工特征提取的方法与机器学习算法相结合,利用文中建立的图像库训练出来不同的模型,完成车辆检测试验。2简介YOLO算法思路2.1YOLO的原理2.1.1目标检测目标检测一直受到研究者们的关注,目标检测技术也一直在不断地更新,有效地提高了目标检测性能。目标检测关键在于要快速检测出目标的类别及位置,在复杂情况下,对检测算法提出了更高的的要求。计算机视觉是目标检测中的关键之处,其不仅要对图像进行分类处理,还有完成目标定位、目标分割的任务,这对于计算机视觉来说难度颇高,极具挑战性。在给定的图片中,计算机视觉要能够识别出目标类别并标出其位置,这需要经过多重技术处理,最终达到实验预期的效果。随着目标检测技术的进步,越来越多的人体验到了算法带来的好处,在众多算法中,YOLO算法凭借其快速且已操作的优势被应用于多重领域。2.1.2YOLO与滑动窗口对比YOLO算法领先于滑动窗口技术。滑动窗口技术是将图片进行分割,达到分类的效果,其原理是通过不同大小和比例的窗口在整张图片上进行一定的步长滑动,再对这些窗口所包含的区域进行处理识别,紧接着对图像分类,最后完成对整张图片的检测。但这个方法存在一个缺点,就是无法确定所要检测的目标大小,在此情况下,需要设置不同大小和比例的窗口去滑动,并选择适当的步长。此方法会产生很多子区域,大大增加了计算量,并且还需要通过分类器去做预测。在保证速度的前提下,我们需要简化分类器。为了解决这个问题,一种思路是减少需要分类的子区域,它使用了选择性搜索方法来查找最有可能包含目标的子区域,事实上,其可以被视为一种过滤掉许多子区域的启发式方法,这将提升效率;另一种思路是采用全卷积的方法,R-CNN用的就是此方法,后来提出了FasterR-CNN算法。此方法是让卷积层代替全连接层,有效减少处理步骤,再经过一系列卷积操作,最终提取出特征图。虽然此过程中卷积的大小会减少,但是其位置关系依然可以相互对应,这是由卷积操作特性决定的,即保持图片空间位置的信息不变。尽管通过上述方法可以减少滑动窗口的计算量,但是对于大小和步长不固定的窗口,检测效果不是很好,还达不到对目标实时检测的要求。YOLO算法很好的解决了这个问题,它不再是滑动窗口,而是直接将图片分割成互不重合的网格,接着用各个元素去预测可能存在网格中的目标,其中,分割网格并不等同于滑动窗口中的分割,YOLO算法是逻辑上的分割,这便是YOLO算法的思想。2.1.3设计理念总的来说,YOLO算法是基于端到端的目标检测技术,如图2-1所示,YOLO检测系统图。首先将图片进行一定大小的调整,接着将其发送给CNN网络,经过卷积层等一系列处理,最后得到检测的目标结果。与R-CNN算法相比,YOLO是把整个图片看做整体框架,这样有效地提升了检测速度。具体来说,YOLO的CNN网络将输入图片划分为网格,每个单元格负责检测中心点图2-1YOLO检测系统为了更进一步理解YOLO的设计理念,以下图2-2为例,简单介绍下。我们的目的是预测图中的小狗及其所在的位置,从图中可以看出,包含狗的网格有很多,这时就需要我们预测目标的中心点大致落在哪个单元格中,落在哪个单元格,哪个单元格就负责预测目标。每个单元格需要预测各个边界框的置信度。这里有个概念需要理解下,即置信度。一般置信度有两个方面构成,一个是边界框包含目标的概率,用P(object)表示,很容易得到当边界框不包括目标时P(object)=0,相反,当边界框包含目标时,P(object)=1;另一个是这个边界框的准确度。通过预测框和实际框的交并比来表示,记为。通过对上面的分析,我们不难看出置信度可以用边界框包含目标的概率和边界框的准确度乘积表示,在一定程度上,此定义很好的反映了目标检测的准确度。为了便于更具体地分析目标检测的效果,可以用4个值来表示边界框的大小和位置,即采取坐标系的研究方法,这四个值其中两个坐标值表示边界框的中心坐标,另外两个表示宽与高。宽和高的预测值是对于整个图片宽与高的比例,这样设计的好处是让每个元素的预测值都在0到1之间,最大限度地完成对目标的检测。再者,每个单元格的偏移值对应于中心坐标的预测值,并且单位是相对于单元格大小的,这样,每个边界框的预测值实际上包含五个元素,其中前四个表征边界框的大小与位置,而最后一个值是置信度。图2-2网格划分2.1.4网络结构设计YOLO的网络结构采用的是GooLNet模型,整体有24个卷积层和2个全连接层组成,大大降低了分类器的复杂程度,下图2-4是其网络结构。YOLO是属于深度学习的目标检测模型,即采用卷积网络来提取特征,预测值是通过将提取到的数据经过全连接层得到的。YOLO算法中,不同的层采取不同的函数,有效地提高检测结果。其中,卷积层和全连接层,采用的是激活函数,最后一层使用的是线性激活函数。图2-4YOLO网络结构每个单元格所表示的特征值也不同,前20个元素是类别概率值,接着2个元素表示边界框的置信度,两者相乘可以得到类别置信度,最后8个元素是边界框的四个预测值。从图中可以看到网络的最后输出为大小的张量。考虑到计算量的问题,边界框会把置信度和边界预测框的四个预测值分开排列,从而有效降低计算量,需要指出的是,这30个元素可以任意排列并且同属于一个单元格。然而,分离排布使得提取每个部分变得更加容易。2.2YOLO的优点和缺点2.2.1YOLO的优点第一,YOLO检测目标速度快。由于检测流程并不复杂,YOLO将目标检测视为回归问题,测试时,只需在新图片上运行神经网络即可预测测试结果。YOLO在TitanXGPU没有批量处理的情况下,其检测速度能达到45FPS,而FasterYOLO检测速度可以达到155FPS。处理流式视频大大降低了延迟时间,另外YOLO达到了高于其他实时系统两倍以上的平均精度。YOLO可以非常快地完成目标检测任务。第二,YOLO是在整个图像上进行推断的,可以有效地避免背景错误。与采用滑动窗口或区域选择技术不同,YOLO在训练期间和测试时都会考虑到整个图像,所以每一个网格对应的预测结果都相当于使用了整个图像的上下文信息,可以很好的避免在背景上预测出错误的物体信息,而采用滑动窗口技术,分类器智能得到图像的局部信息。FasterR-CNN也是一种很好的检测方法,但由于它看不到整个图片信息,往往背景块会被误检测为目标。与FasterR-CNN相比,YOLO降低了背景检测错误率。第三,YOLO能学到更泛化的特征。把训练模型用于艺术图像中测试,YOLO比DPM和R-CNN效果更加明显。正是由于YOLO的高度泛化能力,在新领域中采用YOLO算法也能很好地避免出现故障。2.2.1YOLO的缺点虽然YOLO的检测速度很快,但在精度方面,YOLO仍然落后于目前最先进的目标检测技术系统。定位某些小目标精度不够高。尽管YOLO可以快速识别图像中的目标,但对于小目标时,其定位精度并不高。对邻近物体检测效果差。由于YOLO每个单元格只预测两个边界框和一个分类,对于多个物体的中心位置落入同一个网格中,YOLO技术还达不到要求。对不常见的长宽比物体泛化能力偏弱。3基于YOLO的车辆目标检测YOLO是一个基于卷积神经网络的快速目标跟踪算法。文中设计的车辆检测架构如图3-1所示。定义满足车辆实时检测的网络结构,并过滤掉包含汽车的数据集作为训练样本,将处理获得的样本输入到训练网络模型,经过网络训练得出训练集,再将训练集发送到测试网络结构中进行性能测试。图3-1YOLO车辆实时检测架构3.1车辆检测网络结构YOLO进过不断的优化改善,已出现YOLO_v2、YOLO_v3技术,而这些技术都是在YOLO_v1的基础上研究而来的。YOLO的网络结构由卷积层、池化层和全连接层组成。为了降低参数规模和提升泛化能力,YOLO_v2用全卷积代替全连接层,在目标检测空间上获得了更多的信息。如图3-2所示,是基于YOLO的车辆实时检测网络结构。先将待测图像输入到检测模型中,经过一系列的处理,其最终结果是输出13像素、13像素和30通道的特征图。此过程需要经过22个卷积层、5个池化层,并按一定的规律进行重整和融合,概率小的目标边框会被阈值消除,再用非极大值抑制过滤掉冗余窗口。图3-2基于YOLO的车辆实时检测网络结构在上述车辆检测过程中,需要用到车辆类别的置信度和边界框预测的准确度两个重要参量。其计算表达式分别为式中,表示车辆是否落在检测的单元格中,当车辆在其检测范围内,则取1,否则,取0。通过上述方法可以看出,YOLO_v2算法不像R-CNN等通过候选区域寻找目标,而是基于YOLO的回归思想,把图片看成一个整体,正是基于此思想,才大大提高了检测速度,在规定范围内,完成车辆实时检测的任务。3.2实验及结果分析3.2.1实验平台此次试验在PC端完成的,硬件配置为(1)处理器:Intel(R)Core(TM)i5-6200UCPU@2.30GHz2.40GHz;(2)内存:4GYOLO算法的程序设计语言为Python语言,采用Darknet框架。3.2.2方法分析及评价为了使实验结果更具说服性,定义了四个参量来衡量实验结果。四个参量分别为TrueCar、TrueN-car、FalseCar、FalseN-car,其中TrueCar表示目标是汽车,并被系统检测出来;TrueN-car表示目标不是汽车,系统会识别出其不是汽车;FalseCar表示目标不是汽车,但却被系统检测为汽车;FalseN-car表示目标是汽车,但不会被系统检测为汽车。目标检测就是判断检测到的目标是否是预先指定的目标,验证集中一般会存在许多目标,这需要精确地检测出所有目标类别。为了较为准确地评价文中模型的效果,评价过程中涉及精确度和召回率两个参量,通过对这两个参量的定义,可以作为评价算法性能的指标。其中,精确度指的是被正确检测出的汽车占检测出的汽车的比例,其计算表达式为召回率指的是被正确检测出的汽车占验证集中所有汽车的比例,其计算表达式为3.2.3实验结果及分析把多组信号从训练集中依次导入模型,通过在告诉GPU下运行,得到了相关的参数权重。通过与C-NN、FasterR-CNN对比,得出YOLO算法的识别帧数值明显大于它们,满足视频检测的基本要求。通过对多组验证集中的信息进行验证,并与DPM和FasterR-CNN的结果做对比,如下表所示。试验结果对比表此试验还有一个重要参考量,就是召回率,从表中可以看出,YOLO算法的召回率明显优于另外两种;对此次试验的要求来看,YOLO算法模型达到了良好的检测效果,看以看出,此每秒检测帧数为40F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论