【《基于YOLO的行人检测算法设计及实验探究》11000字】_第1页
【《基于YOLO的行人检测算法设计及实验探究》11000字】_第2页
【《基于YOLO的行人检测算法设计及实验探究》11000字】_第3页
【《基于YOLO的行人检测算法设计及实验探究》11000字】_第4页
【《基于YOLO的行人检测算法设计及实验探究》11000字】_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

摘要人工智能近年来快速发展,计算机视觉是其展最为迅速的一部分,它可以应用到很多地方,比如深度学习、图像识别等,计算机视觉工作原理就是要模仿人的视觉功能来进行目标辨认任务。在计算机视觉的研究方向中,行人检测是目前比较热门的一个方向,行人检测的任务是对图片或者视频进行分析,从而检测出来其中的特定目标。行人检测技术可以广泛的应用于安防、驾驶、监控视频等方面,可是在现实场景,由于行人目标的背景繁杂、形态多变、外物遮蔽等众多干扰成分,行人检测技术的检测速度以及准确率不能达到我们预期目标。本文主要研究YOLOv5算法,使用基于深度学习的目标检测算法展现了好的检测效果,YOLOv5在检测速度以及精确度上有较大的提高,在实现检测的同时也有着让人满意的效果。关键词:计算机视觉;行人检测;YOLO算法目录TOC\o"1-3"\h\u14121摘要 I15604Abstract II255031绪论 198921.1研究背景及意义 1232841.1.1计算机视觉 178351.1.2目标检测技术 1265841.1国内外研究现状 2280911.2.1行人检测技术国内研究现状 273451.2.2行人检测技术国外研究现状 2239671.2行人检测技术的难点 3169821.3论文的研究内容和组织结构 4109712相关知识简介 5178512.1传统目标检测算法 5282892.2深度学习目标检测算法 6255822.2.1Two-Stage目标检测算法 6247342.2.2One-Stage目标检测算法 738612.3YOLO算法 891613基于YOLOv5的行人检测方法 972493.1引言 925553.2YOLOv5模型介绍 924753.3实验环境 1013453.4实验数据集 11257213.4.1数据集的选择 11192233.4.2数据集的标注 14235153.5实验结果 16100823.5.1实验结果展示 16103113.5.2评价指标 1893103.6推理测试 20307723.6.1图像推理测试 2059003.6.2图片集推理测试 22213543.6.3视频推理测试 22235074总结与展望 25126704.1总结 25116424.2不足与展望 259602参考文献 261绪论1.1研究背景及意义1.1.1计算机视觉安全很重要,不管是人们的生活,还是工作,安全必须是第一位的。各种安全问题由于人群密度变得集中等因素日益突出,在科技快速发展的现在时代,智能用品、安全防护等产品的市场需求逐渐增大。很多公共场所,甚至于家中都已经装上了摄像头来保护公民的安全,我们的国家也研发了“天眼”系统,用它来用于查找犯罪嫌疑人轨迹。而如此多监控产生的数据带来存放和检查的困难,计算机视觉有很大的作用,计算机视觉是集深度学习、模式识别等多个领域的综合应用,它赋予了机器一种智能化的本领,进而解决了许多的现实问题,而行人检测就属于计算机视觉的应用。计算机视觉的任务包含目标识别、目标检测、目标分割、模式识别等,其中目标检测是最基本的,通过使用计算机来预测给定的视频或者图片里的物体种类、方位是目标检测的任务。目标分割的任务是把目标对应的部分分割出来。目标识别是一个Recognition(识别)问题,即是在所有的信息中,辨别哪一些是目标,哪一些不是。模式识别技术是依据从影像中抽取一些信息,从而把影像分为不同的种类。它的应用包括指纹识别或文字识别。1.1.2目标检测技术目标检测的主要工作是影像分析,获得相应物体的位置坐标。传统的目标检测算法是基于手工特征的。如果检测目标是人脸,则可以设计眼睛、耳朵、嘴巴等特征及其相关位置。如果检测目标变成汽车、飞机等物体,那么之前设计的人脸特征就不能再使用,需要根据检测目标重新设计相关特征。另外,当检测目标变形或受到干扰时,人工特征也会面临很大的挑战。因此,泛化性差是经典的目标检测算法所具有的难题。自2012年以来,由于计算机计算性能的极大提高,基于深度神经网络的深度学习在许多传统算法占据的图像竞赛中涌现,并取得了领先地位。与经典算法不同的是,深度学习算法能够从大量的数据集中自主了解检测目标的特点。除此之外这种算法提取出来的数据可以普遍的适用于同类对象,摘要的做法还会消除传统算法的繁杂工作。行人检测作为计算机视觉方面热门的算法,通常会与行人跟踪技术结合,来识别区域内的行人。由于行人的外在会因姿态、视角、外物遮蔽等成分干扰,给这种技术带来了难题。国内外研究现状1.2.1行人检测技术国内研究现状行人检测是隶属于目标检测的。行人检测的目的是对图像或视频进行分析,检测特定目标,确定目标对象的一个位置信息。经典的算法是通过手工制定目标特征,用这种方法来表示出影像目标的特点。然而这种经典算法在背景繁杂的情况下就得不到我们需要的目标。后来,随着深度学习的兴起,它给很多领域带来了新的思想,让卷积神经网络的应用逐渐增多,目标检测的效果也越来越好。2013年候跃恩等发表了一种目标跟踪算法,该算法不仅结合了稀疏表示,还强调背景信息REF_Ref14642\r\h[1]。该算法过滤掉了很多的粒子,通过使用基于粒子滤波的框架,减少目标跟踪算法的计算量,把背景信息融入到稀疏表示模板字典中,将样本进行分块,该算法提升了目标追踪算法在繁杂前提下的实时性,解决了以往这种算法耗费时间多的问题。2015年杨晓玲等研究时,在粒子滤波后得到的粒子中选择了残差最小的粒子,把该粒子作为追踪成果REF_Ref14763\r\h[2],他们研究出了新的视觉追踪方式,是一种由稀疏表示的动态去实时更新粒子滤波模板。这种方法对于目标跟踪容易受到一些干扰因素的问题做出了改善。形成贝叶斯概率模型,对物体的位置去估计,算法速度快,鲁棒性强。2016年张姗姗等对于立体匹配算法REF_Ref15017\r\h[3]进行了改进,该算法较之前的WTA算法去改善,并根据三角投影原理计算出深度图,根据深度分布将人头地方标出来并判断是否为人头。结果显示精准度较高。该算法在一定程度上解决了检测人头时光线变化和阴影干扰的问题。2016年顾广华等发表了对于影像场景下语义归类的研究REF_Ref15344\r\h[4],提出探究中存在的问题,该研究是为了解决在室内场景的情况下,有时候由于场景与场景有一定重合,造成语义分类困难。针对结果精度问题,2018年刘辉[5]等发表一种行人算法,该算法是多维度感知算法,是通过改进的全卷积网络进行的研究,使用该算法得到的结果精度较准,但是存在实时性的缺点。针对目前行人检测在实时性和准确性方面不能满足要求的问题,2018年张葆等提出一种行人检测的办法,该方法是通过支持向量机实现的,采用了优化核函数[6],该方法的提出是为了改善实时性和准确性方面的问题,这种方法使用了HOG(HistogramofOrientedGradient,方向梯度直方图)和SVM,实验结果取得了较好的效果,达到了预期的目标。1.2.2行人检测技术国外研究现状行人检测技术的发展,最开始有基于运动检测的算法,随着计算机科学的发展,出现了基于机器学习的算法,主要是通过HOG[7]、ICF(IntegralChannelFeatures,积分通道特征)[8]等技术原理提取的目标特征。近年来,由于越来越多的专家学者注意到了深度学习,深度学习技术迎来了春天,迅速发展,随之而来的是基于深度学习的目标检测算法的诞生。R-CNN(RegionswithCNNfeatures,基于候选区域的卷积神经网络)[9]使用是的卷积神经网络同时还联合使用了区域生成。R-CNN给目标检测算法带来了一种全新的思想,很多专家学者研究使用过R-CNN后,在此基础上创新出了很多性能更好的算法。HeK等发明了SPP-net(SpatialPyramidPoolingNetworks,空间金字塔池化网络)方法[10],该方法是在前者的原理基础上使用了金字塔池化层,用它进行变更图片大小。GirshickR发表了基于R-CNN基础上改进的FastR-CNN(FastRegionswithCNNfeatures,快速的基于地区的卷积网络)[11],它是一种近乎端到端的方式,训练效果显著提升。RenS等发表了FasterR-CNN(FasterRegionswithCNNfeatures,更快速的基于区域的卷积网络方法)[12],它的地区方案本质是一个FastR-CNN,这个FastR-CNN地区方案的是固定的。何恺明等发表了MaskR-CNN(FastRegionswithCNNfeatures,FasterR-CNN的扩展)[13],是FasterR-CNN的伸展,不但得寻找影像中的物体,还要对物体按照比例分开。2015年11月RedmonJ等发表了YOLO(YouOnlyLookOnce,只需瞄一眼)[14]算法,该算法作为一种实时检测算法,比较其同类算法,该算法可以达到很高的检测速率,同时精度也不会降低。SSD[15](SingleShotMultiBoxDetector,一种检测方式)是一种端到端的方式,其和YOLO不同的是,它不仅拥有Fater-RCNN的性能,而且这次基础上有进一步的提升。2016年FarhadiA等发表了YOLO9000[16]算法,该算法是YOLO算法的衍生,它包含YOLO算法,但是其进行了改进,提高了检测的速度和精度,一度成为目标检测领域性能最好的算法。YOLOv3[17]于2018年发表,它是YOLO的一个改进版本,在YOLO的基础上修改了损失函数,还引入多尺度预测。在320×320分辨率下,较之前表现最好的SSD算法,YOLOv3的mAP(meanaverageprecision,平均精度均值)很高高,同时它的处理速度也比SSD要快,可以达到SSD的三倍。CascadeR-CNN[18]是一种multiple-stage的目标检测算法,该算法一定程度上规避了过拟合的问题,通过优化交并比(Intersection-over-Union,IOU)阈值的设定,从而是检测器的性能变得很高。针对弱对比度和运动模糊的小尺度物体检测困难的问题,SongT等[19]通过预测人体中轴线,用这种方法来取代预测人体标注框,该方法主要是为了解决尺度较小的目标不好检测的问题,研究结果表明效果很好。针对通用行人检测框架缺少对行人边缘信息考虑的问题,LimJ等研究出一种用行人局部轮廓去表示行人的特征的方法[20],在研究过程中,通过从上向下的检测行人轮廓,不断的提高检测精度。行人检测技术的难点行人检测技术在如今的时代已经有了巨大的提升。在一些背景简易且固定的场面里,行人检测技术有很好的效果,但是在一些麻烦的情况下,行人周边的环境在不断的发生变化,比如在一些大型的公共场所中,像大商场、人民广场、飞机场等环境,或者行人被不同程度地遮蔽,都会使行人检测技术结果不同,引起各种新的难点。这些难点包括以下几点:复杂场景的问题。若行人所处的环境由于光照,或者在复杂的背景下,或者在人员密集的公共场所造成行人与行人之间相互的遮挡,特别是今年疫情时人们都带着口罩,造成脸部遮挡;或者出现人与背景融为一体,或者被与人轮廓相近的东西干扰,这些种种因素都给行人检测的正确度造成了很大的干扰,变得非常困难。目标发生形变问题。目标形变指的是行人姿态多种多样,有时站着,有时坐着,有时行走,有时跑步,有时静止。现阶段所有的目标检测算法对于上述问题,并没有一个很好的解决办法,所以设计出一种对于上述问题合适的方法是一个挑战。实时性处理问题。目前的行人检测大多使用的都是深层卷积神经网络,这就要求检测系统要有可以处理庞大数据的能力,而且还要使用复杂的算法来提升行人检测的准确度,这些因素都是行人检测实时处理的负面因素。论文的研究内容和组织结构YOLO是一种实时的目标检测算法,其在很多领域都取得了广泛的应用,本文通过YOLOv5进行行人检测算法的设计与实现,本文的研究内容如下:第一章:绪论。在本章中说明了行人检测技术的研究背景与意义,之后说明了行人检测技术的国内外研究近况以及目前存在的难点。第二章:相关知识介绍。在本章中介绍了基于运动的目标检测算法、基于机器学习的目标检测算法、基于深度学习的目标检测算法以及YOLO算法。第三章:基于YOLOv5的行人检测方法。在本章中介绍了YOLOv5网络模型结构,实验环境,实验数据集的选取和处理以及推理测试。第四章:总结与展望。在本章中总结了这篇论文的内容以及有待改进之处。

2相关知识简介2.1传统目标检测算法行人检测的一些问题是一个一直存在的问题,对于计算机视觉它也是常见的问题。行人检测的技术难度主要原因是由于被检测目标的形态多种这样,可动可静,被其他物体遮挡着等等因素。最开始的传统目标算法使用一些简单的办法,再结合某些图像信号的处理方法,这类方法往往很复杂,而且检测的精度也并不好。在大数据的时代,产生了很多的数据,使得样本的规模不断的增加,样本的数量不断的扩大,如出现了很多数据库,算法的精度也越来越高,同时算法的精度和速率也越来越好。根据这些算法的训练原理,可以将早期的算法分为以下三类:(1)基于运动检测的算法在国内大规模的机器学习流行之前,通过运动去检测目标是使用目标检测的主要方法。该方法要求目标物体结构简单,背景不会发生变化且不能处在复杂的场合当中。在整个过程中假设设备是不动的,那么摄像机行动的前景和目的就可以用相应的背景建模算法表达出来。最后用分类器来对捕捉到的信息和内容进行辨别分类,判断事物的label是否是我们的目标label。(2)基于机器学习的方法随着HOG、ICF等算法的不断发展,使用机器学习的相关算法来解决当前目标检测问题成为该问题研究的大趋势。本文主要是对分类器人工检测的特征和行人分类器的解决方法进行了简要的介绍。首先根据人体自身的一些特征和形态利用分类器进行分析辨别,然后根据分析的结果进行模型的训练,最后利用模型来判断目标的背景。在利用机器学习的方法中,常用的特征向量有边缘,纹理,颜色等等。决策树,逻辑回归,以及集成学习中的随机森林都是常用的优质算法。(3)基于深度学习的方法虽然基于机器学习的模型可以较好的实现目标检测这一功能。但是却有很大的局限,一方面其只能在简单场景下进行,另一方面在实际的需求中效果不尽人意。因此基于深度学习的方法也就孕育而生。其中卷积神经网络更是图像特征识别的好手,它不仅可以较好地解决图像中的识别问题,还可以对大量的数据进行特征的提取训练。基于深度学习的方法主要有以下几种,分别是SSD、YOLO、R-FCN(RegionbasedFullyConvolutionalNetwork,基于区域的完全卷积网络)等,这些方法对行人检测问题大有益处。2.2深度学习目标检测算法2.2.1Two-Stage目标检测算法Two-Stage算法的原理是进行目标检测时,通过一个完整的卷积神经网络,使用其来提取候选区域的目标的信息,这其中CNN特征时最常被用到的。R-CNN以及FasterR-CNN都是上述算法原理。该算法也被认为是一种端到端的算法,前提是删去Two-stage方法在过程中用到RPN(RegionProposalNetwork,地区候选网络)网络这一特点,当然它与纯粹的端到端过程并不一样。将Two-Stage算法做一个简单的梳理,其可分为两个过程。Two-Stage算法过程图如下图2-1:图2-1Two-Stage目标检测算法流程图一个图像,先将它进行输入,第一步的操作是对其获取深度特征,主要是进行卷积和池化的处理,接着是要通过一个RPN网络,之后得到图像的全连接层,最后输出图像。Two-stage的核心过程主要是以下两点:引入RPN网络:传统算法是通过滑动窗口来提取目标的特征的,使用RPN网络可以代替这一方法,其通过当图像经过主干网络之后,去选择局部区域以及进行候选框的选择。使用传统方法的缺点是检测速率低,而使用RPN网络是由于该网络的anchor机制的存在,该机制会将候选框分为九种尺寸不同的窗口,之后进行ROlpooling操作。ROIpooling作用是会使图像变成统一的大小。训练主干网络:采用该方法省去了一些过程,以及另外的训练分类器。用一个完整的CNN就可以实现所有过程。该方法是Two-Stage算法的核心部分,当图像通过RPN网络后,进入全连接层,之后执行分类、回归步骤。R-CNN系列的FastR-CNN,FasterR-CNN等以及SPPNET,这些都属于Two-Stage算法。2.2.2One-Stage目标检测算法One-Stage算法不同于Two-stage算法,它是一种全新的目标检测办法。One-Stage算法对于物体检测时对于候选区域的选取进行了优化,转而使用卷积特征同时进行特征提取与回归实现。One-Stage算法与Two-stage算法相同的是它在获取卷积特征时也使用CNN,不同的是:进行候选框的选取时,并不用RPN。One-Stage的算法步骤如下图2-2所示:图SEQ图\*ARABIC2-2One-Stage目标检测算法流程图该算法处理输入图像时,只进行卷积和池化的操作,之后直接进行分类和回归,整个过程都是使用CNN,这样的方式很大程度上提高了检测速率。One-Stage算法的提出者在设计之初对于CNN更有效的问题和训练回归模型的问题进行了深刻思考,与Two-stage不同的是,该算法不使用主干网络,对于训练过程中的参数选择问题,会根据具体的情形进行设定。SSD系列算法,YOLO系列算法都是属于One-Stage类型的算法。2.3YOLO算法YOLO算法是属于one-stage算法的。而之前的R-CNN系列的算法,是运用two-stage,这类算法第一步要做的是提取区域,之后做的是归类、回归,使用two-stage得到检测精度虽然好,但是它们的测验速率相对来说就慢。YOLO是用one-stage的方法来把测验的速率提高,然后直接使用神经网络得到所属类别和边框回归。YOLO算法在进行检测时可以检测到这个图片的全部信息,对于整张图片有一个预估,这样可以避免由于把背景检测成目标这样的问题。YOLO算法具有较强的扩展能力,还可以用到其他地方。YOLO在目标测验时是通过端口到端口,其想要实现经典的目标检测是通过利用一个卷积神经网络来得到其过程的,之后采用卷积神经网络获得目标的相对方位坐标。算法的做法如下图2-3所示:图2-3YOLO算法过程图

3基于YOLOv5的行人检测方法3.1引言本章使用YOLOv5来进行行人的检测,使用coco128数据集,以及自定义数据集进行模型的训练。3.2YOLOv5模型介绍YOLOv5是YOLO算法系列中最新被提出的,它相比于YOLO算法之前的版本,在各方面都有很大的提升,该模型是YOLOv4模型大小的百分之九十,只有27MB,所以它的结构很精巧,同时,该模型的检测速度和精度都很高,可以满足不同的推理要求,最重要的是该模型对于视频的推理,实时性能很好。YOLOv5的网络模型图如REF_Ref70949726\h图4所示。图3-1YOLO网络模型结构图该图呈现的是YOLOv5目标检测算法的框架图。对于一个目标检测算法而言,我们通常可以将其划分为4个通用的模块,具体包括:输入端、基准网络、Neck网络与Head输出端,对应于上图中的4个红色模块。输入端:输入端表示输入的图片。该网络的输入图像大小为608*608,该阶段通常包含一个图像预处理阶段,即将输入图像缩放到网络的输入大小,并进行归一化等操作。在网络训练阶段,YOLOv5使用Mosaic数据增强操作提升模型的训练速度和网络的精度,并提出了一种自适应锚框计算与自适应图片缩放方法。基准网络:基准网络通常是一些性能优异的分类器中的网络,该模块用来提取一些通用的特征表示。YOLOv5中不仅使用了CSPDarknet53结构,而且使用了Focus结构作为基准网络。Neck网络:Neck网络通常位于基准网络和头网络的中间位置,利用它可以进一步提升特征的多样性及鲁棒性。虽然YOLOv5同样用到了SPP模块、FPN+PAN模块,但是实现的细节有些不同。Head输出端:Head用来完成目标检测结果的输出。针对不同的检测算法,输出端的分支个数不尽相同,通常包含一个分类分支和一个回归分支。YOLOv5算法具有4个版本,具体包括:YOLOv5s,YOLOv5m、YOLOv5l、YOLOv5x四种。其中YOLOv5s网络是特征图的宽度最小,深度最小的网络,其余三种网络都是基于YOLOv5s网络深度加深,特征图的宽度加宽的网络。3.3实验环境一个好的实验环境对于算法的实现是必不可少的,对于YOLO算法更是这样。实验平台是华硕笔记本,所搭建的实验平台的开发环境如下表3-1:运行环境类别运行环境配置操作系统Ubuntu18.04Python3.8CUDA10.2.89CUDNN7.5.6Torch1.5.0Torchvision0.6.0表3-1实验平台开发环境CUDA(ComputeUnifiedDeviceArchitecture,通用并行计算架构),是由显卡的厂商NVIDIA发行的运算平台。通过该构架,GPU可以操办很麻烦的计算问题。NVIDIACUDNN是一个GPU库,其使用在DNN(DeepNeuralNetworks,深度神经网络)。它注重低内存的开销、易使用性以及性能要求。PyTorch的相比Torch运用时更方便,支持用动态图。PyTorch是DNN,具有很强的自动求导功能。Torchvision包含用于计算机视觉的流行数据集,模型架构和常见图像转换,包含一些常用的数据集、模型、转换函数等等。3.4实验数据集实验数据集对于一个模型算法来说,是至关重要的,对于计算机视觉,其在完成训练的过程中,特别是训练与深度学习有关时,对于数据的要求更高。一个优秀的行人检测的数据集在进行训练、输出结果时,其结果往往起到了一个代表性的作用。有关深度学习的数据集始终是世界上的专家和学者热衷讨论的东西,他们采取了很多手段去为全世界的学子提供有关信息。目前多见的行人数据集有下面几类:MIT数据库、INRIAPersonDataset、USC行人数据库等。3.4.1数据集的选择本章实验选择coco128数据集以及自定义数据集。cocodataset是用于物体检测的数据集,cocodataset通常截取于繁杂的日常画面,图像含有91类物体,超过32万张图片以及250万个label。coco数据集具有以下特点:对象分割在上下文中可识别超像素分割330K图像150万个对象实例80个对象类别91个类别每张图片5个字幕有关键点的250000人coco128数据集是cocotrain2017数据集的前128张图片。在coco128数据集中包括80种类别,分别为{person(人)、bicycle(自行车)、car(汽车)、motorbike(摩托车)、aeroplane(飞机)、bus(公共汽车)、train(火车)、truck(卡车)、boat(船)、trafficlight(信号灯)、firehydrant(消防栓)、stopsign(停车标志)、parkingmeter(停车计费器)、bench(长凳)、bird(鸟)、cat(猫)、dog(狗)、horse(马)、sheep(羊)、cow(牛)、elephant(大象)、bear(熊)、zebra(斑马)、giraffe(长颈鹿)、backpack(背包)、umbrella(雨伞)、handbag(手提包)、tie(领带)、suitcase(手提箱)、frisbee(飞盘)、skis(滑雪板双脚)、snowboard(滑雪板)、sportsball(运动球)、kite(风筝)、baseballbat(棒球棒)、baseballglove(棒球手套)、skateboard(滑板)、surfboard(冲浪板)、tennisracket(网球拍)、bottle(瓶子)、wineglass(高脚杯)、cup(茶杯)、fork(叉子)、knife(刀)、spoon(勺子)、bowl(碗)、banana(香蕉)、apple(苹果)、sandwich(三明治)、orange(橘子)、broccoli(西兰花)、carrot(胡萝卜)、hotdog(热狗)、pizza(披萨)、donut(甜甜圈)、cake(蛋糕)、chair(椅子)、sofa(沙发)、pottedplant(盆栽植物)、bed(床)、diningtable(餐桌)、toilet(厕所)、tvmonitor(电视机)、laptop(笔记本)、mouse(鼠标)、remote(遥控器)、keyboard(键盘)、cellphone(电话)、microwave(微波炉)、oven(烤箱)、toaster(烤面包器)、sink(水槽)、refrigerator(冰箱)、book(书)、clock(闹钟)、vase(花瓶)、scissors(剪刀)、teddybear(泰迪熊)、hairdrier(吹风机)、toothbrush(牙刷)}。下图3-2是coco128数据集的部分数据,数据都是jpg标注格式的。图3-2coco128数据集图自定义的dataset是从网络上整合到的,在训练时必须有dataset的Dataset.yaml文件,只用改变coco128.yaml中部分参数,把原文件中的train改成自定义数据集的训练集地址,将原文件中的val修改成自定义数据集的val地址,将原文件中的nc修改成自定义的类别的数量,把原文件的类别名修改成自定义的类别的名字。下图3-3是自定义数据集的部分数据。图3-3自定义数据集图3.4.2数据集的标注本章实验使用了部分自定义数据集,使用自定义数据集要先把数据去标注,该实验使用LabelImg数据集打标工具,采用LabelImg标注工具可以输出yolo和voc两种标签形式,本文选择采用voc标注形式。图3-4是LabelImg的界面,图3-5是采用LabelImg对自定义dataset的第一张影像打标签,在这张图片中,标注了三个数据,分别为:口罩、衣服、头发。图3-6是保存在JPEGImage目录中的图片信息。图3-7是保存在Annnotation目录中,对应的图像标注文件。图3-4labelImg工具图标注影像先打开自定义dataset的目录,进行行人信息的标注。在标注影像数据时需得在意以下几方面:(1)右侧显示的类别标注有几种,在图像中可以提示的框就有几类。(2)在进行打标时,操作过程中选择的框最好与目标的边际相吻合。(3)由于有的物体之间的差异度很小,在选择目标时要注意这种相似度。(4)影像标注之后会生成XML文件,文件的名称要与每张影像的名称一样。图3-5使用labelImg对图像进行打标签图图3-6图像文件信息图图3-7标注结果对应图3.5实验结果3.5.1实验结果展示在实验时,yolov5在coco128数据集上训练命令的参数如下表3-2:训练参数参数意义epochs训练的epoch,默认值300Batch-size批次大小,默认值16cfg模型的配置文件data数据集的配置文件img-size训练和测试输入大小rectRectanguartraining布尔值resume是否从最新的last.pt中恢复训练nosave仅仅保存最后的checkpointnotest仅仅在最后的epoch上测试evolve进化超参数buckstgsutilbucketcache-images缓存图片可以更快地开始训练weights初始化参数路径name将results.txt重命名为results_name.txtdevicecuda设备adam使用adm优化器multi-scale改变图片尺寸single-cls训练单个类别的数据集表3-SEQ表\*ARABIC2训练命令参数表利用tensorboard可视化各方面指标,实验开始会在yolov5下形成一个runs文件夹,利用tensorboard打开即可查看实验日记。TensorBoard是一个用于可视化的工具,可以清楚展现运行过程中的各项数据的信息。图3-8使用tensorboard可视化结果图图3-8是训练后,使用tensorboard可视化的结果。通过tensorboard可以呈现出metrics、train、val三个方面的指标。metrics是监控指标,它包括平均精度均值、准确率、回归率指标。train是训练集的指标,它包括cls_loss、obj_loss、box_loss。在yolov5中,loss在训练中发挥了决定性的效力,yolov5的loss与传统的方法不同,它是基于网格的,在网格上生成相应的anchor框和其对应的cls以及conf。cls_loss是计算与GT(groundtruthbox)框相对应的anchor的分类正确与否;obj_loss是计算网格的置信度(confidence)是否正确;box_loss是计算anchor与GT框的ciou(Complete-IntersectionoverUnion,完整的交并比)。val与train一样,也是包括cls_loss、obj_loss、box_loss。3.5.2评价指标模型的评判标准,通常使用在目标测验中通常用的的AP(averageprecision,平均精度)和mAP(meanaverageprecision,平均精度均值)。在进行检测的过程中,常见的是通过Recallrate与Precisionrate代表目标检测的精确程度。以TP(truepositive)来表示实际为positive且预测为positive的样本,以FP(faslepositive)来表示实际为negative但预测为positive的样本,以FN(faslenegative)来表示实际为negative且预测为negative的样本,以TN来表示实际为Positive但预测为Negative的样本召回率,也叫查全率,表示准确预测为正的目标占全部真正是正的目标的比重,召回率的公式如公式(1):(1)准确率,也叫查准率,表示准确测出为正的目标占全部测出为正的目标的比例,准确率的公式如公式(2):(2)在判定真正例和假正例时会设置一个IOU阈值,得到的IOU超过这个阈值的目标被认定为TP,小于阈值的物体被认定为FP。PR曲线是关于Recallrate与Precisionrate的图像,横向标为Recallrate,纵轴为Precisionrate。图3-9是PR曲线图:图3-9PR曲线图AP是检测器在各个Recall情况下的均值,对应是PR下的面积,其公式如公式(3):(3)其中表示的是PR曲线上recall所对应的P值,=1。AP是针对单个类别的识别器,而mAP是从类别的维度对AP进行平均,因此可以评价多个分类器的性能,其公式如公式(4):(4)其中num_classes指的是类别的数量。3.6推理测试模型训练结束后,使用预训练的模型进行推理测试,模型在没有标注的数据集上进行推理,YOLOv5支持多种数据源推理测试。本文选择了四种数据源进行推理测试。3.6.1图像推理测试在进行图像推理测试时,是使用一张图像去测试。图3-10图像推理测试原图像图3-10是进行测试的原图。图3-11图像推理测试测试后图像图3-11是测试后的影像,测试结果表明,当行人被遮挡、目标太小时,他的测试精度明显下降。3.6.2图片集推理测试在进行目录推理测试时,同时测试一个目录中的所有影像。图3-12目录推理测试原图像(部分)图3-12是目录推理测试部分原图像。图3-13目录推理测试测试后图像(部分)图3-13是目录推理测试测试后的部分图像,测试结果表明,除了目标物被遮挡、目标过小等问题,当目标与目标的外形太过相像时以及光照问题,都会干扰检测精确度。3.6.3视频推理测试在进行视频推理测试时,一种是测试一段监控视频,一种是测试电脑自带的网络摄像头。监控视频推理测试yolov5在进行视频测试时,将测试视频分为一帧一帧,逐步对每一帧进行测试。本文实验时,选取了一段两分钟的视频,测试时将视频分为了3000帧,每一帧检测时,都会显示出这一帧影像中有多少不同的目标。图3-14视频推理测试原视频截图图3-14是视频推理测试的原视频截图。图3-15视频推理测试测试后视频截图图3-15是视频推理测试测试后视频截图,实验结果表明,虽然该模型存在上述问题,但是基本可以达到预期效果。网络摄像头推理测试yolov5可以进行笔记本自带摄像头的推理测试,在进行测试时,只需要在参数source后面输入0即可进入自带摄像头的推理测试。测试结果如下图3-16,结果表明,在进行测试时,只要检测到行人的相关特征,就可以判定是目标行人。图3-16网络摄像头推理测试图

4总结与展望4.1总结随着科技进步,行人检测已经变成图像处理方面很火热的方向。论文的研究内容时是使用深度学习的有关算法去实现行人目标检测。本文深入了解了YOLOv5算法框架,使用了coco128数据集和自定义数据集,并对自定义数据集完成了影像标注,之后使用YOLOv5的预训练模型进行训练,一系列的推理测试,取得了预期的效果。4.2不足与展望使用深度学习的有关算法进行目标检测是如今很热门的方向,它可以应用到很多方面,如景区安防、机器人的研发、自动驾驶等。本文所做的研究是通过YOLO算法对一张图片,一段监控视频去训练后检测,还存在很多的不足。在以后的学习研究中,可以进行以下改进:使用更丰富的数据集在本篇论文中,我使用了coco128数据集和自定义的数据集,所使用的数据集数量少,在之后的学习研究中,可以使用更多的数据集,让模型得到更好的训练,提高检测精度。使用更优秀的网络模型随着计算机科学的发展,深度学习的快速发展,性能更好的算法会出现,使用这些优秀的网络结构,一定程度上可以改进现有的问题。(3)数据集标注本篇论文对于自定义数据集的处理,是通过使用LabelImg数据集标注工具,该工具操作时需要逐个标注,耗费的时间很长,当使用较大的数据集以及数据集中的目标过多时,逐个标注带来的误差会很大,从而影响实验结果。

参考文献侯跃恩,李伟光,容爱琼,叶国强.融合背景信息的分块稀疏表示跟踪算法[J].华南理工大学学报(自然科学版),2013,41(08):21-27.杨晓玲.基于粒子滤波和稀疏表示的视频目标跟踪[J].信息技术,2015(6):103-108.张姗姗,景文博,刘学,等.一种基于深度信息的人头检测方法[J].长春理工大学学报(自然科学版),2016,39(2):107-111,115.顾广华,韩晰瑛,陈春霞,赵耀.图像场景语义分类研究进展综述[J].系统工程与电子技术,2016,38(04):936-948.刘辉,彭力,闻继伟.基于改进全卷积网络的多尺度感知行人检测算法[J].激光与光电子学进展,2018,55(9):091504.杨萌,张葆,宋玉龙.基于优化核函数支持向量机在行人检测中的应用[J].激光与光电子学进展,2018,55(4):101-108.DalalN,TriggsB.HistogramsofOrientedGradientsforHumanDetection[C]//ProceedingsofIEEEConferenceonComputerVisionandPatternRecognition.WashingtonD.C.,USA:IEEEPress,2005:886-893.DollarP,TuZ,PeronaP,etal.IntegralChannelFeatures[C]//ProceedingsofBritishMachineVisionConference.WashingtonD.C.,USA:IEEEPress,2009:1-11.HeK,ZhangX,RenS,etal.SpatialPyramidPoolinginDeepConvolutionalNetworksforVisualRecognition[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,2015,37(9):1904-1916.GirshickR.FastR-CNN[C].ProceedingsoftheIEEEInternationalConferenceonComputerVision.2015:1440-1448.RenS,HeK,GirshickR,etal.FasterR-CNN:TowardsReal-TimeObjectDetectionwithRegionProposalNetworks

温馨提示

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

评论

0/150

提交评论