您的当前位置:首页正文

基于深度学习的行人检测系统的设计与实现

2020-06-16 来源:星星旅游
华中科技大学硕士学位论文摘要

行人检测技术是众多领域的基础技术之一。例如无人驾驶汽车、智能视频监控和人体行为分析等领域。在智能视频监控领域中,行人检测对系统的实时性和准确性都有较高的要求,然而两者往往不能兼得,在计算能力一定的硬件环境下,高实时性意味着准确性会有所降低,高准确性往往需要降低实时性来获取。如何同时保证系统的实时性和准确性成为智能视频监控系统的一个难题。近年来,随着深度学习技术的不断突破,该问题得到了一定程度的解决。

深度学习技术作为人工智能的一个子领域,在计算机视觉中取得了很好的效果,基于深度学习的行人检测系统就是智能视频监控系统的一种。它是针对油井环境下的行人检测而设计和实现的系统。该系统将DarkNet框架作为训练时所使用的框架,将Yolov2作为训练时所使用的网络模型。对客户提供的真实场景下的视频或图像数据进行标注和训练,将训练好的模型嵌入到四路智能分析设备TX1中,通过网络摄像头获取现场实时监控画面的视频数据,或者直接读取本地的视频数据,经过模型的处理得到视频画面中行人的位置信息,之后将视频信息以及检测结果传输到Web服务器,在网页端进行监控画面以及检测结果的显示。服务器以及深度学习框架都是在Linux系统下运行的,用户只需打开一个浏览器输入系统IP地址,登录系统即可进行相应的操作。

基于深度学习的行人检测系统能够对获取到的实时监控数据和本地视频数据进行检测,并且能够达到一定的实时性和准确性。用户操作方便,只需通过浏览器就可以整个系统进行操作。该系统可以在网页端实时显示视频和检测结果,可以控制系统是否进行检测,可以设置检测结果所发送的目的IP地址等。

关键词:深度学习Yolov2网络结构DarkNet框架行人检测

I华中科技大学硕士学位论文Abstract

Pedestriandetectiontechnologyisoneofthebasictechnologiesinmanyfields.Suchasunmannedvehicles,intelligentvideosurveillanceandhumanbehavioranalysis.Inthefieldofintelligentvideosurveillance,pedestriandetectioninreal-timeandaccuracyofthesystemhavehigherrequirements,buttheyoftenhavenot,inthecalculationoftheabilityofhardwareenvironment,highreal-timemeanaccuracywillbereduced,thehighaccuracyoftenneedtoreducetherealtimetoget.Howtoensurethereal-timeandaccuracyofthesystematthesametimehasbecomeadifficultproblemintheintelligentvideosurveillancesystem.Inrecentyears,withthecontinuousbreakthroughofdeeplearningtechnology,thisproblemhasbeensolvedtoacertainextent.

Asasubfieldofartificialintelligence,deeplearningtechnologyhasachievedgoodresultsincomputervision.Pedestriandetectionsystembasedondeeplearningisoneoftheintelligentvideosurveillancesystems.Itisasystemdesignedandimplementedforpedestriandetectionundertheoilwellenvironment.ThesystemusestheDarkNetframeworkastheframeworkusedintrainingandusestheYoloV2asanetworkmodelusedintraining.Therealscenetoprovidethevideoorimagedataweretaggedandtraining,embeddingmodelstrainedtofourintelligentanalysisdeviceinTX1,accesstothevideodatamonitoringpicturethroughthenetworkcamera,ordirectlyreadthevideodatalocally,throughmodelprocessingbythepositioninformationofvideoimagesofpedestriansthen,thevideoinformationandthedetectionresultistransmittedtotheWebserver,displaymonitoringscreenandtestresultsintheendofthepage.TheserveranddeeplearningframeworkarerunningundertheLinuxsystem.UsersjustneedtoopenabrowsertoinputtheIPaddressofthesystem,andloginthesystemtodothecorrespondingoperation.

Thepedestriandetectionsystembasedondeeplearningcandetectthereal-timemonitoringdataandlocalvideodata,andachievereal-timeandaccuracy.Theuseriseasytooperate,andthewholesystemcanbeoperatedonlythroughthebrowser.Thesystem

II华中科技大学硕士学位论文candisplayvideoandtestresultsinrealtimeatthewebpageend,controlwhetherthesystemdetectsandsetthedestinationIPaddresssentbythetestresult.Keywords:Deeplearning

Yolov2networkstructure

DarkNetframe

Pedestriandetection

III华中科技大学硕士学位论文目录

摘要..............................................................................................................IIIAbstract............................................................................................................II1绪论

1.1研究背景................................................................................................(1)1.2研究的目的和意义................................................................................(2)1.3国内外研究概况....................................................................................(3)1.4主要工作................................................................................................(4)2关键技术介绍

2.1深度学习框架........................................................................................(6)2.2深度学习网络Yolov2..........................................................................(7)2.3Gstreamer多媒体框架........................................................................(10)2.4本章小结..............................................................................................(11)3行人检测系统需求分析

3.1系统需求分析总体概述.....................................................................(12)3.2系统的功能性需求..............................................................................(14)3.3系统的非功能性需求.........................................................................(16)3.4本章小结..............................................................................................(17)4行人检测系统的设计

4.1系统总体结构设计..............................................................................(18)4.2系统概要设计......................................................................................(20)4.3系统详细设计......................................................................................(25)4.4本章小结..............................................................................................(30)

IV华中科技大学硕士学位论文5行人检测系统的实现与测试

5.1系统开发运行环境..............................................................................(31)5.2系统功能实现......................................................................................(32)5.3系统测试..............................................................................................(41)5.4本章小结..............................................................................................(44)6总结与展望

6.1全文总结..............................................................................................(45)6.2展望......................................................................................................(46)致谢...........................................................................................................(47)参考文献.......................................................................................................(48)

V华中科技大学硕士学位论文1

1.1研究背景

在工业界和人们的生活中计算机视觉技术的应用越来越广泛。关于计算机视觉,简单点说,就是使用一些设备,例如摄像机、摄像头等,来获取一些视频图像信息,再使用计算机将其转换成数字信号进行进一步的处理。处理后的结果可以直观的显示在人们的面前,使得人们可以更加方便的去理解和利用这些信息。很多领域都会或多或少的用到计算机视觉相关技术,其中一个最重要的应用领域就是行人检测技术。

计算机视觉有着很多最前沿的应用,行人检测技术就是其中的一个[1-3]。行人检测技术作为一个较为基础的研究方法,是很多领域研究的前提。行人检测技术不仅仅是在学术研究中有着广泛的应用,在人们的生活中同样也有。

安防监控

安防监控在人们的生活中无处在,上班的路上会有政府的道路监控,到了公司会有公司的安防监控,回到家里会有小区物业的安全监控,到银行会有银行的视频监控等等。常见的视频监控工作通常都是由人在屏幕前进行监视完成的,这不但耗费巨大的人力资源,而且还容易出错。采用行人检测技术后,就无需有人去对着屏幕进行监视,计算机就可以自己完成对行人的识别,并且可以进行进一步的轨迹跟踪、身份识别等,出现异常现状可以及时发出警报。这样不但可以极大的减少人力成本,还能提高安防的安全指数。

无人驾驶汽车

无人驾驶汽车的研究也在最近几年变得十分火热。据世界卫生组织调查表明,每年全球死于汽车交通事故的人数超过100万人,汽车安全问题也成为无人驾驶汽车的重中之重。无人驾驶汽车的实现,其中最重要的一个功能就是要能够识别障碍物或行人,要在事故发生前及时制止。行人检测技术就能够帮助无人驾驶汽车实现这项功能[4-5]。尽管近年来的行人检测技术已经有了很大的提高,但在多样性的现实场

绪论

1华中科技大学硕士学位论文景中还存在一些问题,行人检测技术还需要在特定场景下的速度和精度上进一步的提升。

智能机器人

人工智能的发展使得工业界和学术界对机器人的研究变的越来越火热。许多科幻电影中的人们想象的画面在现实生活中也逐渐的出现。为了让机器人能够更好的服务人类,让机器人能够“看见”是变成了一个不可或缺的功能。识别服务对象主体是首先要解决的事情。通过行人检测技术可以让机器人“看见”并“认识”出周围的人,并定位哪个是它要服务的对象,进而对人所发出的指令进行进一步的执行。

以上三个方面并非行人检测技术的所有应用场景,随着人们对高品质生活的不断追求,科学技术也在的不断进步,未来只要有人出现的地方,都有可能用到行人检测这项技术。

1.2研究的目的和意义

目前市场上所应用的视频监控系统大多以传统的监控系统为主,它们是由前端的摄像设备、视频传输设备和视频监控平台组成,只具备现场画面实时观看、录入、回放、调出和存储等单一的功能,并不具备智能识别的功能。还有一些最新的监控系统增加的自动识别、存储和报警的功能。但其所使用的识别技术大多是传统方法,在智能分析设备上并不能保证准确度和实时性。

基于深度学习的行人检测系统,属于智能视频监控中的一种,主要针对于固定场景下的视频监控以及行人检测和识别。深度学习在图像检测领域的应用使得图像检测的效果有了很大的提升,典型的应用在图像检测方面的深度学习网络有Faster-RCNN[6]、SSD[7]和Yolo[8]等等,其中Faster-RCNN是检测效果最好的,Yolo是检测速度最快的。本文所设计实现的行人检测系统是运行在智能分析设备上的,要在计算能力有限的情况下保证检测的速度,选择Yolo网络结构能够很好的改善传统检测方法检测速度慢的问题。相对于传统的监控系统,基于深度学习的行人检测系统可以自动检测和识别画面中的行人,且在智能分析设备上运行具有较高的准确度与实时性。

2华中科技大学硕士学位论文1.3国内外研究概况

作为计算机视觉领域较早研究的众多领域之一的行人检测技术,已经经历了几十年的研究与发展,目前的行人检测技术总体上可以分基于手工设计的模型和基于深度学习的模型[9-10],其中基于手工设计的模型为较早的方法,属于传统方法的范畴。

基于手工设计的模型

早期人们提出了很多种行人检测方法,最早的行人检测方法是由Viola和Jones提出的,利用多尺度Haar小波做完备基和Adaboost进行结合来做[11],并且采用了积分图的方法来进行特征的快速计算。Dalal等人[12]提出的行人检测方法中,对于行人特征的描述使用的是HOG[13]方法,并且在分类时采用的是支持向量机作为分类器。Dalal等人通过实验证明了采用HOG方法提取的特征要比使用基于灰度的方法提取的特征要更加的丰富。由于Dalal等人提出的这种方法在效果和速度上能够有很好的平衡,所以在后来一段时间里的很多行人检测方法都会基于这种方法进行改进。HOG和支持向量机进行结合的结构也成为了行人检测方法中的里程碑试的结构。在2007年DPM模型[14]被PedroFelzenszwalb和Girshick等人提出,DPM模型先对图像进行特征的提取,之后进行分类,特征提取采用的是计算梯度直方图的方法,分类使用的是支持向量机。其算法思路和HOG类似。DPM方法的特点在于增加了一个子模型,用来检测目标物体的子部分,该方法很好的解决了物体在运动和形变情况下的检测问题。通过快速构建特征金字塔的方法来进行行人检测的方法是Dollar等人在2014年又提出的[15],当待检测的图像大小在640×480像素时该方法能够达到实时性。

基于深度学习的模型

越来越多的领域都或多或少的用到了深度学习[16-17]。行人检测也不例外。RCNN[16]网络结构是较早的用于目标检测的深度学习网络结构,由RossGirshick提出,RCNN是通过SelectiveSearch方法[18]对一张图片提取大约两千个候选框,之后将每一个候选框输入到CNN网络[19]中,通过卷积[20]和池化[21]操作进行特征的提取,最后通过分类器和回归器对候选框进行检测。在RCNN的基础上RossGirshick又提出了FastRCNN[22],FastRCNN将RCNN中的svm分类器[23]替换成了softmax分类[24],并且将回归器和分类器的损失函数合成到一个多任务损失函数,取消了分类器和回归器的训

3华中科技大学硕士学位论文练。FastRCNN无论是在速度上还是在检测效果上都要优于RCNN,但FastRCNN的候选框提取部分仍然使用SelectiveSearch方法,在CPU上进行运算。在FastRCNN的基础上,RossGirshick又提出了FasterRCNN,它使用了RPN网络进行候选框的提取,进一步提升了检测的速度和精度,但仍然无法达到实时检测的效果。Yolo是在2015年被JosephRedmon和AliFarhadi等人提出来的。相对于RCNN系列的方法,Yolo并未采用分类器加回归器的思想,而是直接采用回归的方法完成了RCNN系列方法中的分类器和回归器的两个任务。Yolo在目标检测上的速度比RCNN系列的网络快很多,但由于Yolo是用了7x7的网格去回归目标的位置,导致Yolo在目标检测上的精度并不高。Yolov2[25]是2016年JosephRedmon和AliFarhadi等人在Yolo版本上进一步提升的版本。

在行人检测技术的研究方面,国内的起步较晚与国外,且大多是针对固定场景下得目标检测的研究。中国科学院孙庆杰等人提出了基于矩形拟合的人体检测算法

[26],西北工业大学提出了静止摄像机下基于单目视觉的运动行人检测方法[27-28],西

安交通大学的郑南宁等人提出了采用基于支持向量机的行人识别的方法[29],上海交通大学的田广等人提出了一种叫做coarse-to-fine的行人检测方法[30]。

1.4主要工作

本文所设计和实现的行人检测系统是基于深度学习的,它是智能视频监控的一种,主要针对油井环境下的行人检测。系统采用DarkNet作为深度学习训练的框架,使用Yolov2网络模型进行训练,通过Gstreamer多媒体框架将检测后的结果在网页端进行显示。

本论文的主要工作如下:

(1)介绍了基于深度学习的行人检测系统的背景、目的和意义,描述了国内与国外在该技术上的相关研究和进展。

(2)对行人检测系统所需要的深度学习框架、深度学习网络Yolov2和视频编解码所使用Gstreamer多媒体框架做了详细的介绍。

(3)从系统的功能性需求和非功能性需求两个方面来考虑系统的需求分析。功

4华中科技大学硕士学位论文能性需求方面对每个功能模块的具体需求进行了说明,非功能需求方面从设计原则、性能要求和界面设计三个方面对系统提出了要求。

(4)根据系统的需求分析,从概要设计和详细设计两个方面对行人检测系统进行详细设计。

(5)将系统进行实现,并对系统的各个功能和性能进行测试。

(6)总结目前行人检测系统已经实现的功能,提出目前系统存在的缺陷和需要改进之处。

5华中科技大学硕士学位论文2

关键技术介绍

在本章的内容中详细的介绍了设计与实现基于深度学习行人检测系统所需要的关键技术。DarkNet[31]作为该系统的深度学习框架,不论是模型训练,还是进行检测,都是基于DarkNet框架实现。Yolov2是本文所采用的深度学习网络结构,总体的网络结构仍是采用了Yolo的结构。Gstreamer框架是在获取视频数据和推送视频数据时所使用的视频编解码技术,是整个系统的关键技术之一。以下是相关技术的详细介绍。

2.1深度学习框架

深度学习技术是人工智能大方向下得一个研究分支,深度学习相关网络结构的实现通常是建立在深度学习框架之上的,深度学习的框架内部编写了每个网络模块的具体实现过程,开发者只需要在框架之上调用框架内的模块进行新的网络组合即可,很大程度上促进了开发者的开发效率。常见的深度学习框架有caffe[32]、TensorFlow[33]、MXNet[34]等等,DarkNet框架是本系统在开发过程中所使用的深度学习框架。

深度学习框架当中已经将很多网络模型的基本模块进行了实现,这些模块就是迷行或者算法的一部分,可以自己去设计如何使这些基本模块去构成符合自己想要的数据集模型,不需要每次都重头编写各个模块的功能。深度学习的框架的出现令很多想学习深度学习的人都有学习的机会,你们不需要在编写深度复杂的模块代码,深度学习框架中很多模型都已经实现,你可以在已有模型的基础上进行修改,添加自己的神经网络层次,或者进行其他修改。深度学习框架也并不是完美的,如果有特殊的功能需求,还需要对框架进行修改。

Caffe是从2013年底开始由加州大学伯克利博士贾扬清所编写的,caffe的整体结构较为清晰,且代码可读性较高,caffe的计算速度在众多深度学习框架中也是较快的。它在计算机视觉领域应用较为广泛。Caffe的编写使用的是C++语言,并且支持Python语言的接口。

6华中科技大学硕士学位论文TensorFlow是由谷歌公司研发的一款非常流行的深度学习框架,在众多深度学习框架中,对他对递归神经网络有着很好的实现,TensorFlow拥有较为清晰的结构。它同时支持C++和Python两种接口。

MXNet是一款支持多机多卡的开源深度学习框架,具有较灵活、可移植和轻量Scala、Matlab级等优点,它对于很多编程语言都提供了接口,例如Python、C++、R、和Javascript等等。MXNet可以加速任何数值计算。

Darknet是一个开源的神经网络框架,是通过C语言和CUDA进行编写。它的特点是速度快,安装简单,并支持CPU和GPU计算。相对于caffe、TensorFlow和MXNet等框架,DarkNet并不常见,但DarkNet对Yolo网络有着很好的支持。

2.2深度学习网络Yolov2

在深度学习中用于图像检测的网络结构有很多,例如R-CNN,SPPNet[35],FastR-CNN,FasterR-CNN,Yolo,SSD等等。Yolov2是Yolo的一个改进的版本,比Yolo更准、更快。

图2-1Yolo网络结构Yolo的网络结构如图2-1所示。Yolo网络借鉴了GoogLeNet网络的结构[36],但Yolo使用的是1x1卷积层和3x3卷积层,并没有完全使用inceptionmodule机制。Yolo模型在图像检测方法相对于其他方法有多个优点。检测速度快,可以学到物体的泛化特征。它也有一些缺点,Yolo的物体检测精度低于其他图像检测网络结构,容易产生物体的定位错误,对小物体的检测效果不好。

7华中科技大学硕士学位论文2.2.1

精度上的改进

Yolov2在新增了BatchNormalization[37]方法,添加到没个卷积层之后,使得每层输入的分布差距变化很小。通过该种方法,我们可以移除dropout[38],并且移除后不会产生过拟合的现象。

Yolov2在输入的图片尺寸方面进行了扩展,将输入尺寸调整到448×448分辨率。训练方法是先在ImageNet数据集上预训练[39]出一个输入图像大小为448×448分辨率的模型,之后对Yolov2网络的后半部分进行微调。

受faster-rcnn中的anchor思想[40]的启发,Yolov2将网络在最后使用的全连接进行了舍弃,同时也舍弃了最后一个池化层。该方法虽然使得模型的准确率有所降低,当时在模型的召回率方面却有着很大的提升。

Yolov2在设置box维度上做了修改,采用了k-means聚类[41]的方法替代了手动设置先验值。传统的k-means在衡量样本见距离时采用的是欧氏距离[42],Yolov2将欧氏距离改成了IOU得分。

Yolov2在位置预测方面直接采用了预测相对gridcell的坐标位置的方法,舍弃了直接预测位置的方法。Yolov2利用逻辑回归[43]将groundtruth限制在了0到1之间。该方法使得模型变得更加稳定,模型参数也比之前容易学习。

在改进小目标预测方面,Yolov2则借鉴了残差神经网络[44]中的IdentityMapping方法,在网络结构中增加一个passthroughlayer,将上一层卷积所提取的特征,也就是产生的特征图,与本层卷积层所提取的特征进行融合。通过这种方法,Yolov2在小目标检测方法效果得到了一定的改进。

Yolov2采用了多次度训练的方法,每迭代几次就会随机选取新的图片的尺寸大小,选取好图片的尺寸后,再按照图片的尺寸进行网络的调整和训练。通过多次度的训练,使得Yolov2在小尺度的图片的预测速度更快。2.2.2

速度上的改进

Yolo最初的设计就是为了获得速度与精度的一个兼得,能够进行实时的检测。Yolov2设计了一个新的网络结构Darknet-19,如表2-1所示为Darknet-19的网络结构,它包含19个卷积层,5个池化层。通过这个新的分类网络来进行特征的提取,Yolov2在检测的速度和精度都有所提升。

8华中科技大学硕士学位论文表2-1TypeConvolutionalMaxpoolConvolutionalMaxpoolConvolutionalConvolutionalConvolutionalMaxpoolConvolutionalConvolutionalConvolutionalMaxpoolConvolutionalConvolutionalConvolutionalConvolutionalConvolutionalMaxpoolConvolutionalConvolutionalConvolutionalConvolutionalConvolutionalConvolutionalAvgpoolSoftmax10245121024512102410005122565122565122561282561286412864darknet-19网络结构Size/Stride3x32x2/23x32x2/23x31x13x32x2/23x31x13x32x2/23x31x13x31x13x32x2/23x31x13x31x13x31x1GlobalOutput224x224112x112112x11256x5656x5656x5656x5628x2828x2828x2828x2814x1414x1414x1414x1414x1414x147x77x77x77x77x77x77x71000Filter32VGG-16[45]在图像识别方面有着非常好的的效果,大多数使用深度学习来做图像检测的网络结构中都会使用VGG-16来作为特征提取的部分。但是由于VGG-16的参数特别的多,模型计算非常复杂。假设输入的是一张224*224尺寸的图片,使用VGG-16进行计算,仅一次前向传播就需要306.9亿次的浮点运算。而使用Darknet-19

9华中科技大学硕士学位论文计算相同大小的图片时,一次前向传播只需要55.9亿次的浮点计算。使用Darknet-19来进行特征提取的计算量比基于VGG-16和GoogleNet的网络都要低,速度都要快。

2.3Gstreamer多媒体框架

Gstreamer是一个多媒体应用框架,它是开源的,且基于管道和插件实现的[46],它的主要作用是帮助实现类似多媒体服务器和转码工具的多媒体应用程序[47]。在Gstreamer下创建多媒体功能插件会变的非常方便。Gstreamer对数据的处理思想是采用了数据管道的方式,不同的多媒体应用的构成是通过对应的管道实现的,而管道的组成是由具体功能插件的数据流串联起来实现的。

组件(Elements)。组件是Gstreamer中的一个重要的概念,是Gstreamer插件实例化的表现。从开发人员的角度看,组件就像是一个黑盒子,数据从组件的输入端流入,经过组件的处理后,再经过组件的输出端进行输出。根据组件功能的不同,可以分为过滤组件、源组件和接收组件三种。组件的状态有四种,PLAYING、READY、PAUSED和NULL。当应用程序需要在管道的众多状态之间进行转换时,直接调用函数就可以实现。

箱柜(Bins)。箱柜比较特殊,它是由多个组件构成。如图2-2所示,一个箱柜可以包含一个源组件、一个接收组件和一个过滤组件。

图2-2箱柜衬垫(pad)。衬垫起到一个接口的作用,连接各个组件。数据向导和时效性两个特性决定了衬垫的类型。数据流向定义分为源衬垫和接收衬垫两种,时效性分为永久型、随机型和请求型。数据流向从一个组件的源衬垫流向另外一个组件的接收衬垫。

10华中科技大学硕士学位论文总线(Bus)在Gstreamer框架中,总线相当于以个简单的系统,管道消息的是通过总线发送到应用程序当中的,总线采用的线程机制,应用程序不需要再次创建总线,因为管道内已经存在了一条总线,应用程序只需要在这条总线上增加一个处理器就可以了。

2.4本章小结

本章主要介绍了行人检测系统中用的到几个关键技术,本章首先对深度学习框架进行了介绍,之后对常见的深度学习框架进行了讲述。在第二小节中介绍了Yolo模型的网络结构以及相对于其他图像检测网络模型的优缺点,从速度和精度两个方面重点介绍了Yolov2模型相对于Yolo的改进之处。在第三小节中主要是从Gstreamer多媒体框架的几个主要的组成元素对Gstreamer框架进行介绍。

11华中科技大学硕士学位论文3

行人检测系统需求分析

系统的需求分析是项目较早的阶段。系统需求分析主要是为了了解用户对该系统的需求,将用户的需求制作成文档记录下来,方便后续研发。系统的需求分析其实就是一个不断收集和发现用户需求的阶段。

3.1系统需求分析总体概述

目前市场上存在的视频监控系统大多数都只是拥有单一的监控功能,只是简单的通过视频监控设备获取监控场地的实时画面进行显示,并未对获取的视频进一步的处理。这种功能单一的监控系统并不具有太多的实用性。

本文设计的行人检测系统是一款用于企业视频监控的软件,对监控的出现的异常情况发出警报。该系统不仅可以实时显示需要监控的场地的实时画面,还能对获取的视频画面进行检测处理,并将结果与视频一起进行输出。用户无需时时刻刻盯着监控画面观看,只需在收到警报后进行相应的处理即可。

本文设计的行人检测系统的需求方案是根据客户在现有的海康相机的部署下,添加深度分析智能设备,包括TK1的单路智能设备、TX2的四路智能设备、GTX服务器的16路智能设备等等。行人检测技术是采用深度学习技术中的yolov2网络,对视频画面中出现的行人进行实时的检测。系统的服务器端是在智能设备中进行部署,客户可以通过PC进行登录。3.1.1

系统用户特征分析

表3-1描述了该行人检测系统所包含用户的需求,系统的用户主要包括企业管理人员、企业技术人员、企业安保人员和公司运维人员。

12华中科技大学硕士学位论文表3-1用户名称用户需求和特征表用户需求和特征企业管理人员负责对企业的状况进行管理,系统的账户企业管理人员和密码应该由企业管理人员所管理,这就需要系统提供用户管理功能。企业技术人员企业技术人员主要负责企业内部相关设备的软硬件维护,保障企业内部的设备以及网络能够正常的运行。一般企业用户员工使用监控系统的多为安保人员。安保企业安保人员人员几乎对技术方面的完全不懂,这就需要系统要提供良好的交互界面和简易的操作流程,以给用户更好的使用体验。公司运维人员公司运维人员主要负责系统的安装与维护。这需要系统提供简单的安装方法以及高可维护性。3.1.2系统用例分析

如图3-1所示为行人检测系统的系统用例图,用户在行人检测系统登录环节登录

成功后,用户可以直接对在线检测功能、本地检测功能、网络设置功能、账户密码修改功能以及接收设置功能进行操作。

点击进入在线检测功能后,用户能够选择在线视频的来源,选择开始检测或者暂停检测。点击进入本地检测功能后,用户可以选择一个本地指定地址的视频或者图片进行检测,并将检测结果显示在网页上。点击进入网络设置功能后,用户可以在该界面上看到当前智能终端设备的IP地址、子网掩码以及默认网关,用户在该功能上可以远程更改终端的IP地址、子网掩码以及默认网关。点击进入账户密码管理功能后,用户只需要提供正确的用户名以及新的密码就可以修改该账户的密码,方便用户对账号的记忆。如果用户希望检测后的结果能够发送一份到指定IP地址的话,点击进入接收设置功能后,输入希望发送的IP地址和对应的端口号,就能够将检测后的结果发送到用户指定的IP地址。版本信息是为了让用户更加的了解本系统。点击进入版本信息功能后,用户能够查看到当前行人检测系统的系统内核、文件系统、硬件版本、MAC地址以及设备编号等信息。

13华中科技大学硕士学位论文图3-1行人检测系统用例图3.2系统的功能性需求

开发一个行人检测系统,首先需要确定的是系统要实现的功能是什么,也就是用户想要通过行人检测系统做什么工作。用户使用行人检测时,首先需要输入用户的用户名和密码进行确认,当用户输入的用户名和密码验证通过时,登录成功,系统跳转到主界面,用户可以查看某个功能模块,点击进入该功能模块后,可以看到该功能模块下可以进行的相关操作。行人检测系统的主要功能如下:

(1)在线检测

用户自登录成功后能够看到在线检测模块。点击进入在线检测模块,用户能够

14华中科技大学硕士学位论文看到播放功能、是否开始检测功能、是否停止检测功能以及输入视频来源的地方。用户可以指定视频或者图片的来源,选择是否进行检测,开始检测后可以选择是否暂停播放。

(2)本地检测

用户在成功登录行人检测系统后,能后看到和在线检测功能并列的本地检测功能。本地检测功能和在线检测类似,只是视频或者图片的来源不同,在线检测的视频来源于视频拍摄设备,画面是真实场景的实时画面,本地检测是对保存在本地的视频文件进行检测。

(3)网络设置

网络设置模块的功能是对智能终端设备的IP地址进行修改。行人检测系统是搭载在智能终端设备上的,例如单路智能分析设备TK1、四路智能分析设备TX1和16路智能分析设备等,方便用户的安装和使用。每个智能终端设备在安装时都会有一个IP地址,用户在浏览器中访问该IP地址时便可以进入行人检测系统。但如果IP地址冲突,用户需要到现场进行IP地址的更改。

加入终端IP地址修改功能后,用户可以直接登录该终端设备的行人检测系统,对其IP地址进行修改,无需派人去现场进行维护,可以大大的节省用户的人力、物力和财力成本。

(4)接收设置

接收设置模块的功能是设置将检测结果发送到的目的IP地址。加入目的IP地址修改功能是为了能够修改检测结果发送的地址。视频中的行人检测结果不仅可以在网页中实时的现实出来,还能够按照用户的设置,将检测结果同时发送一份到用户输入的IP地址,供其他工作人员进行使用。

(5)账户管理

账户管理是一个系统的基本功能之一,在账户管理模块中,用户可以对已有的账户进行密码的修改,方便用户对行人检测系统账号的记忆。很大程度上给用户提供了方便。

(6)版本信息

15华中科技大学硕士学位论文在版本信息模块中,行人检测系统能够提供给用户一些软硬件版本信息的查询,用户可查询到系统内核版本、文件系统版本、硬件版本、MAC地址以及设备编号等信息。

3.3系统的非功能性需求

系统的功能性需求是为了满足用户对系统的要求,提供给用户想要的功能。系统的非功能性需求是为了能够让系统更好的运行。本文行人检测系统的非功能性需求需要满足以下原则:

(1)设计原则

高可靠性。系统中使用的元器件均为工业级标准元器件,确保其在恶劣的条件下也可以正常使用。系统采用硬件看门狗,可以在系统出现问题的时候重新启动,保证系统的高可靠性。

高可扩展性。行人检测系统不仅仅能够在PC端高配置的服务器上运行,还能够在单路智能分析设备、四路智能分析设备和16路智能分析设备等终端设备上运行。能够满足不同应用场景的需求。

高可用性。用户无需在电脑上安装客户端,系统在智能分析设备上配置好之后,用户可以电脑上通过浏览器,在网址栏输入智能终端设备的IP地址,即可访问行人检测系统,对终端设备进行操作。

(2)性能要求

高性能。行人检测系统系统的实时性提出了很高的要求,在视频拍摄设备拍摄的同时,系统需要对拍摄的画面进行实时的检测,并将拍摄的画面以及检测后的结果实时的显示在网页上。在计算性能远低于PC设备的终端智能设备上,行人检测系统同样需要达到视频显示流畅,不出现卡顿和严重的延时现象。

(3)界面设计

操作方便。登录行人检测系统后可以直接看到全部功能选项。支持鼠标和键盘同时操作。用户除必须输入的内容外,如IP地址、端口号等等,其余操作只需点击鼠标即可完成,如目标视频或图片文件的选择等等。

16华中科技大学硕士学位论文3.4本章小结

本章描述了行人检测系统的系统需求部分,给出了系统分析的总体概况,分析了用户的特征,之后从系统的功能性需求和非功能性需求两个方面对行人检测系统的需求进行了详细的分析。

17华中科技大学硕士学位论文4

行人检测系统的设计

系统设计是在系统分析阶段之后进行的,本章将先对行人检测系统的总体结构设计进行概述,之后从行人检测系统的概要设计和详细设计两个方面对系统的设计进行详细的描述,最后在本章的结尾处对本章的内容进行总结。

4.1系统总体结构设计

基于深度学习的行人检测系统本质上来说是一种视频监控系统。系统由两部分组成,一个部分是线下的针对特定场景的模型训练,另外一部分是线上的实时监控与检测。

线下的模型训练是线上实时检测的前提,通过获取的目标场景下的视频数据,在服务器上训练出针对该场景的检测模型。将训练好的模型嵌入到终端智能设备中,对获取的实时画面进行实时的检测。

通过终端智能设备将视频监控设备获取的实时画面,以及对其进行的实时检测的结果传输到网页端进行实时的显示。

线上部分由浏览器和WebServer服务器组成,用户通过浏览器可以进入WebServer服务器。

WebServer服务器提供给用户登录功能、在线检测功能、本地检测功能、网络设置功能、接收设置功能以及用户管理功能。线下部分主要是由深度学习框架DarkNet组成,将训练好的Yolov2检测模型搭载到DarkNet框架上,当线上部分的WebServer服务器发出检测请求时,线下部分的DarkNet会根据传递过来的视频地址获取视频图像数据,之后通过已经训练好的Yolov2模型进行检测,并将检测后的结果重新传给线上部分。

总体的系统结构如图4-1所示。

系统的数据源是通过网络视频监控设备来获取目标场景下的实时画面以及目标场景下的视频录制,网络视频监控设备可以是网络摄像头或者其他常见的视频监控设备。

18华中科技大学硕士学位论文图4-1总体系统结构设计图系统的操作流程如图4-2所示,用户首先打开浏览器,输入智能终端设备的IP地址,访问WebServer服务器,进行登录。若登录失败,系统自动回到登录界面。用户登录成功后可对WebServer服务器发送请求检测。WebServer服务器会对DarkNet框架发送指令,获取在线视频数据或者本地视频数据,通过Yolov2算法进行检测,并将检测后的结果发送回浏览器进行显示。

19华中科技大学硕士学位论文图4-2系统流程图4.2系统概要设计

系统的概要设计主要是将系统的每个模块以及模块的层次结构划分清楚。根据3.2节中的需求分析,行人检测系统的功能模块主要包括在线检测模块模块、本地检测模块、网络设置模块、接收设置模块、用户管理模块和版本信息模块这六个模块。每个模块又各自拥有自己的子模块。

系统总体功能结构图如图4-3所示。

20华中科技大学硕士学位论文图4-3系统总体功能结构图(1)在线检测模块

在本文设计的行人检测系统中在线检测模块是对获取到的固定场景下的实时画面进行检测和返回检测结果的地方,用户可以设置视频的URL,指定实时视频数据的来源,同时可以控制终端是否开始对视频进行实时的检测。如图4-4在线检测模块结构图所示,在线检测模块包含设置URL、开始检测、暂停检测和开始监控四个子模块。

图4-4在线检测模块结构图21华中科技大学硕士学位论文设置URL:这里一般设置的是网络摄像头的地址,指定实时视频数据的来源。URL的组成一般是由网络协议、IP地址、用户名和密码以及视频编码格式组合而成的。

开始检测功能:用户设置好了URL以后,点击开始检测功能够开始对获取的视频数据进行检测。

暂停检测功能:在点击开始检测之后,系统便会开始进行检测,如果用户希望检测暂时停止,那么只需要使用暂停检测功能即可,系统会发送暂停指定,不在对获取的视频数据进行检测。

开始监控功能:在用户不需要进行显示检测结果的时候,可以直接使用开始监控功能,系统会将获取的视频数据直接显示在网页上。

(2)本地检测模块

本地检测模块是对已经录制好的视频或者存储的图片进行检测的模块,用户可以选择指定的视频文件或者图片文件,将数据导入到系统中后,系统会对导入的数据进行检测,检测完成后,系统能够将视频或者图像数据以及检测后的结果在网页上进行显示。如图4-5本地检测模块结构图所示,本地检测模块包含本地图片检测和本地视频检测两个子模块,每个子模块下又分别包含数据的读取模块、检测模块和结果返回模块。

图4-5本地检测模块结构图22华中科技大学硕士学位论文本地检测模块分为本地图像检测和本地视频检测。本地图片检测是对用户指定的本地图片数据进行检测,并将检测后的结果进行输出。当用户希望能够对已经录制的视频数据进行检测时,本地视频检测功能能够满足用户的此类需求,对用户指定的本地视频数据进行检测,并将检测后的结果以及视频进行输出。

(3)网络设置模块

网络设置模块是为了方便用户对企业网络IP地址进行管理而设计的。在行人检测系统的网络设置模块中,用户可以对终端的IP地址进行修改。远程设置终端的IP地址,方便用户对局域网内部IP地址的管理,防止IP地址出现相同的情况。不需要用户到现场去修改终端的IP地址。图4-6为网络设置模块结构图,网络设置模块由IP地址、子网掩码和默认网关三个子模块构成。

图4-6网络设置模块结构图当用户想要对终端智能分析设备的网络地址进行修改时,只需要登录行人检测系统,找到网络设置功能,输入新的IP地址、子网掩码以及默认网关便可对终端智能分析设备上的IP地址进行修改。

(4)接收设置模块

在本文设计的行人检测系统中接受设置模块是一个类似接口的一个模块,该模块实现的是将检测结果发送到指定IP地址的功能,是根据用户的需求而设计的。具体的功能模块如图4-7所示。

23华中科技大学硕士学位论文图4-7接受设置模块结构图当用户需要将检测后的结果转发到指定的IP地址时,使用接收设置可以指定用户需要发送的IP地址以及端口号。系统会将检测后的结果发送一份到用户指定IP地址。

(5)用户管理模块

本文所设计的行人检测系统中,用户可以通过管理模块对用户自己的账号进行密码的修改,方便对账号的记忆。如图4-8用户管理模块结构所示,用户管理模块包含三个子模块,分别是用户名、输入密码和确认密码。

图4-8用户管理模块结构图当用户需要对自己的账号密码进行修改时,只需要输入自己正确的用户名和新的符合规范的密码,并且需要对新的密码再次输入进行确认,当两次输入的密码完全相同时,系统会将旧的密码替换成新的密码。

(6)版本信息模块

版本信息模块的主要功能应该是能够提供关于该系统的一些信息给用户查询。例如,内核系统、文件版本、硬件版本、mac地址等等。具体的功能模块如图4-9所示。

24华中科技大学硕士学位论文图4-9版本信息模块结构图4.3系统详细设计

图4-10在线检测流程图25华中科技大学硕士学位论文本节针对系统概要设计中划分的模块进行详细设计,每个模块给出流程图以方便对模块控制流程的理解。本节分别从行人检测系统的在线检测模块、本地检测模块、网络设置模块、接收设置模块以及用户管理模块五个方面的详细设计进行描述。

图4-11本地检测流程图在线检测模块。在线检测模块流程图如图4-10所示,用户在成功登陆行人检测系统后,可以看到在线检测模块,在进入该模块后可以看到相应的功能。用户设置完成视频来源的URL或者MRL后,点击开始检测按钮,系统自动将URL或者MRL传递给web服务器Boa,如果传递失败,则重新回到设置界面,重新设置URL或者MRL。传递成功后,Boa服务器会将URL或者MRL传递给DarkNet框架并发出开DarkNet框架从接收到的URL或者MRL地址中获取固定场景下的实始检测的指令,

时画面的视频数据,获取数据失败,则回到最初的位置,重新开始,成功获取到视

26华中科技大学硕士学位论文频数据后,使用已经训练好的Yolov2行人检测模型对视频进行检测,并将检测结果返回。

本地检测模块。用户在进入行人检测系统后,可以看到本地检测模块,在进入该模块后可以看到相应的功能。用户点击文本框,选择本地视频数据或者图像数据所在的位置,点击开始检测,网页点会将命令传递给Boa服务器,获取路径失败,需要重新设置数据所在的路径,获取成功后,Boa服务器会将数据的路径发送给DarkNet框架,并对其发出开始检测的指令,DarkNet会从指定的地址获取视频或者图片数据,获取数据失败,则重新输入数据的路径,获取数据成功后,开始检测,检测完成后将检测后的结果进行返回。本地检测模块流程图如图4-11所示。

图4-12网络设置模块流程图27华中科技大学硕士学位论文网络设置模块。网络设置模块的流程图如图4-12所示,用户成功登陆行人检测系统后,在系统中找到网络设置模块,点击进入该模块。在对应的文本框中填写相应的数据,点击确定后,系统会将文本框内的内容发送给Boa服务器,发送失败,则需要重新开始,发送成功后,服务器会对智能分析设备的网络配置文件中的IP地址进行修改,并输入指令重启智能分析设备。修改失败时,需要重新回到设置界面,重新录入相关数据,再次进行网络的更改。更改完成,则智能分析设备重启,该模块结果。

接收设置模块。接收设置模块的流程如图4-13所示。

图4-13接收设置模块流程图28华中科技大学硕士学位论文用户成功登陆行人检测系统后,找到接收设置模块并进入,在接收设置模块中,输入用户指定的IP地址以及相对应端口号。点击确定按钮,系统会将输入的相关数据发送到Web服务器,如果传递失败,则需要重新输入,如果传递成功,则Boa服务器会将IP地址以及端口发送给DarkNet并发出命令,修改检测结果发送的路径。

用户管理模块。如图4-14用户管理模块流程图所示,用户在成功登陆行人检测系统后,可以对登陆的账号密码进行修改。输入用户名,以及新的密码,确认新的密码。点击确定后,如果数据传递失败,则回到用户管理界面,重新修改。如果传递成功,则系统会将新的密码和用户名传统给Boa服务器,并记录下来。

图4-14用户管理模块流程图29华中科技大学硕士学位论文4.4本章小结

本章主要是对基于深度学习的行人检测系统的设计进行了详细的描述。首先对行人检测系统总体结构设计进行了讲解,将系统分线上和线下两个部分,并给出了系统结构设计图。之后对系统的概要设计和详细设计进行了详细的描述,并给出了各个功能的结构设计图和流程图。

30华中科技大学硕士学位论文5

行人检测系统的实现与测试

系统实现是从一个系统设计转变成一个可运行的系统的一个过程,在系统实现以后需要对系统进行测试,以保证系统的质量。本章将详细的介绍行人检测系统是如何实现的,以及对行人检测系统的测试与结果。

5.1系统开发运行环境

本系统的线下部分采用的是C语言和Python实现,线上部分采用的是HTML、css以及JavaScript实现,web服务器采用的是一个小巧高效的Boa服务器。模型训练部分是在公司的服务器上进行训练,服务器由四张NVIDIAGeForceGTXTITANX组成。运行行人检测模型是在四路智能分析设备TX1上。

具体的系统开发运行环境如下:

表5-1序号用途系统开发运行环境表硬件环境CPU:ARMv8Processorrev1(v8l)x4内存:4.00GB显卡:NVIDIATegraX1(nvgpu)/integrated软件环境操作系统:Ubuntu16.04LTS专业版应用软件:Boa服务器、gcc编译器操作系统:MicrosoftWindows7专业版应用软件:Spyder、vs2013浏览器:GoogleChrome53.0.2785.116操作系统:Ubuntu16.04LTS专业版1web服务器CPU:英特尔酷睿i5-4200M@2.80GHz2客户机内存:8.00GB网卡:RealtekRTL8168C(P)/8111C(P)PCI-EGCPU:英特尔酷睿i5-4200M@2.80GHzx23训练服务器内存:8.00GB显卡:NVIDIAGeForceGTXTITANX深度学习框架:DarkNetx4应用软件:IPython、gcc31华中科技大学硕士学位论文5.2系统功能实现

系统的实现是软件开发中的一个十分重要的环节,是由设计理念变成现实的过程。本节会针对行人检测系统的几个主要功能的实现过程进行详细的介绍,并对系统的主要界面进行展示。5.2.1

行人检测模型训练

本文所设计和实现的基于深度学习的行人检测系统的核心在于使用深度学习网络结构Yolov2训练出一个适用于油井环境下的行人检测模型。系统的主要功能就是基于这模型进行实现的。所以模型的前期训练是实现行人检测系统的重要前提条件。模型的训练效果就是行人检测系统所呈现出来的效果,整个系统的准确点主要是靠提升模型的准确度来提升的。

事实上,在系统运行的过程中,行人检测的模型也需要不断的改进,不断的学习各种特殊状态下的情况,以保证系统的在同一场景下不同状态都能够很好的检测到行人。深度学习模型的训练大致分为以下几个步骤。

第一步:数据的生成与标注

首先必须要有目标场景下的图片数据,并且数据量越多越好。深度学习对于少量数据的效果并不理想,但对于大量数据效果却比传统方法要好很多。本文所设计和实现的行人检测系统是针对油井环境下的行人检测,图像数据来源于油井环境下的视频监控画面,通过对视频帧的截取,共获取2600张图像数据,经过数据增强后得到26000张图片。

光有大量的图片数据还不够,还要对图片进行加标签,给机器一个标准,使得机器能够对图片中的事物进行学习。图片的标注很重要,因为这直接影响到训练后检测的效果,如果图片的标签都不那么的标准,那么训练出来的模型也就不可能效果非常好了。

数据标注的工作是非常耗时且繁琐的,需要通过数据标注软件对每张图片进行逐个目标的标注。在对每张图片进行标注后,会生成一个.xml文件,里面包含图片的大小、目标框坐标以及目标个数等信息。

32华中科技大学硕士学位论文文本5-1xml文件内容如文本5-1xml文件内容所示,对图片标注后生成的xml文件中,包含图片的名称0000000037200000000640.jpg,图片的大小704*576*3,图片路径C:\\Users\\Alex\\Desktop\\2\\0000000037200000000640.jpg,person表示该目标检测框内物体的类别,在图5-1中xml文件所对应的图片包含两个目标,它们相对于原始图片的位置信息分别为441、303、471、418和359、206、392、278,该坐标信息表示第一个目标的目标框的左上角坐标是x轴441、y轴303,右下角坐标是x轴471、y轴418。第二个目标的目

33华中科技大学硕士学位论文标框的左上角坐标是x轴359、y轴206,右下角坐标是x轴392、y轴278。

第二步:生成TXT文件

文本5-2TXT标签内容00.6463068181820.6241319444440.04261363636360.19965277777800.5319602272730.4184027777780.046875

0.125

在训练模型时,xml文件是不能直接使用的,需要经过转换,将xml文件转换成TXT文件,TXT文件里面有特定的数据存储格式。每一行表示一个目标框的信息,每行包含五个数据,第一个数据为类别的标签,用数字代替,第二和第三个数据表示目标框相对于整张图片的相对中心坐标,其中第二个是中心的x轴坐标信息,第三个是y轴坐标信息。

文本5-3xml文件转TXT文件代码34华中科技大学硕士学位论文接下来的第四和第五个数据分别表示目标框相对于原始图片的长宽,其中第四个数据表示的是目标框的相对长度,第五个数据表示目标框的相对宽度。具体内容文本5-2TXT标签内容所示。

将xml文件转换成TXT文件的程序如文本5-3xml文件转TXT文件所示,xml文件的内容的解析通过convert_annotation函数实现,提取出原始图片的大小,找到每个目标框的坐标信息和类别信息,对每个目标框的坐标信息通过convert函数进行转换,得到相对于原始图片大小的坐标中心,以及目标框的相对长宽。每个数据都被压缩到0到1之间。将每个目标框的信息存储到TXT文件的一行。

在进行将xml文件转换成TXT文件的同时,生成训练集合train.txt文件和测试集合test.txt文件。每隔是个训练数据产生一个测试数据。训练集合文件和测试集合文件中所保存的是用来训练的图片的路径与文件名和用来测试的图片的路径与文件名。生成训练集合文件和测试集合文件的代码如文本5-4生成训练集合和测试集合代码所示。

文本5-4生成训练集合和测试集合代码第三步:创建一个.names文件

names文件里面存放的是类别名称信息,每一行存放一个类别,每行的下标对应TXT文件中的类别。names文件中存放的名称用在检测后显示检测目标的类别。例如在行人检测中,names文件的第一行存放的是person,第一行对应的是TXT文件中的0这个类,在对视频数据或者图片数据进行检测时如果检测到目标是第0个类

35华中科技大学硕士学位论文别,那么在显示的时候,指定names文件,目标框上会有person字样,方便用户识别。

names文件的具体存放信息如文本5-5所示,图片中的类别为三类,person、car和bicycle,每一类各起一行,这些类别名称会在检测结果中显示,表示检测目标的类别。本文所设计和实现的基于深度学习的行人检测系统中只有一个类别,在实际的names文件中,只有Person一个类别。

文本5-5names文件内容第四步:修改.data文件

data文件是用来存放训练时所需要的一些信息。如代码5-6所示,参数classes对应的是训练的模型中总的类别个数。train表示train.txt文本所在的路径,train.txt文本里存储的是用来训练的图片的路径和图片的名称,每行表示一个训练文件。valid表示的是test.txt文件所存放的路径,test.txt文件里存放的是用来测试的图片的路径加上文件名,每行表示一个测试文件。names表示的是第三步中生成的.names文件的

文本5-6data文件内容classes=2train=/home/zy/darknet/data/oil/train.listvalid=/home/zy/darknet/data/test.listnames=/home/zy/darknet/data/oil/my.namesbackup=/home/zy/darknet/data/oil/backup路径,用来读取每个类别的名称。参数backup对应的是一个路径,该路径是用来存放训练过程中保存的权重,在训练过程中,每隔一定的迭代次数,系统会自动将训练的当前权重保存一次,该模型的存放路径就是在backup中设置,同样,最终训练

36华中科技大学硕士学位论文的模型也是存放在此处。

第五步:修改.cfg文件

cfg文件所存放的是深度学习的网络结构,在本文所设计和实现的基于深度学习的行人检测系统中,cfg文件里存放的是Yolov2的网络结构。在DarkNet框架中包含了标准的Yolov2的cfg文件,针对具体的应用场景,需要对标准的Yolov2网络结构进行相应的调整。模型的参数以及网络最后的输出都需要进行修改。例如由于本文所设计的基于深度学习的行人检测系统只有一个类别,加上背景类,一共两个类别,所以在最后一层的卷积层中将filters的参数设置为30,,classes设置为2。训练时的一些超参数同样需要修改,本文的行人检测系统模型学习率设置的是0.0001,学习率更新为steps方式,momentum为0.9。

第六步:训练

在经过前五步的准备后,便可以对深度学习模型Yolov2进行训练。打开Linux下得终端界面,进入DarkNet文件夹下,输入一下命令:

./darknet为编译DarkNet框架时所生成的可执行文件,detector和train为命令的参数,cfg/voc.data表示第四步生成data文件路径,cfg/yolo-voc.cfg表示第五步生成的cfg文件。训练时也可以使用迁移学习的方法,在命令的后面加上已经预训练好的模型权重进行微调。

在输入开始训练的命令后,系统首先会加载Yolov2的网络模型,会在终端上显示网络模型的具体结构、每层输入的大小、输出的大小、输入featuremap的个数、输出featuremap的个数、卷积核的大小以及经过多少次卷积操作后进行池化操作。如果是进行迁移学习,还会将预训练好的模型权重加载进来,对相应位置的参数进行初始化。本文所训练的行人检测模型是用迁移学习的方式训练时,效果并没有得到改进,相反,直接对数据进行训练得到模型效果较优。

在加载完yolov2网络模型后,便开始训练。训练过程中会每隔固定次迭代保存一次当前训练的模型权重,每隔十个batch系统会自动对输入的图片大小进行调整。

第七步:测试

37华中科技大学硕士学位论文在DarkNet框架下训练的行人检测模型有很多种测试的形式,有测试单张图片的,有测试已有视频的,有测试摄像头实时检测场景的,预测测试集,还有就是统计测试集合测试效果。本文所训练的模型在使用视频进行测试时能够达到18FPS,使用测试集进行测试时,测试结果的平均IOU值为74.52%,召回率为92.47%。5.2.2

在线检测模块的实现

图5-1为系统在线检测功能主界面。在线检测的主要功能就是对在线获取的视屏数据进行检测,并将检测的结果进行返回。用户可以在文本框内输入URL或者MRL地址,点击开始监控进行实时画面的显示,点击开始检测开始对获取的视频数据进行检测,点击暂停检测,系统会停止对获取的视频数据进行检测。

图5-1在线检测界面在线检测功能的实现。当用户点击开始检测时,系统会调用online_detect函数,该函数会获取输入到文本框中的URL内容,并执行online_run.sh文件进入检测,使用cvCaptureFromCAM函数开始获取URL中指定的视频数据,通过pthread_create函数创建的进程对获取的在线视频的每一帧进行检测,使用load_network加载Yolov2网络结构以及训练好的权重模型,之后将获取的每帧图像数据经过网络的计算得到目标行人的位置信息,最后将图像数据以及检测结果一起发送到网页端进行显示。

38华中科技大学硕士学位论文5.2.3

本地检测模块的实现

本地检测的流程和在线检测的流程类似,区别在于数据的来源不同。图5-2为本地检测界面图,用户点击选择文件,系统会弹出窗口供用户选择所需要检测的视频数据或者图片数据。选择完成后点击提交按钮,界面上会显示检测后的视频或图片以及检测后的结果。

图5-2本地检测界面对本地视频或者图像检测时,系统会调用local_detect函数,该函数会获取视频数据的地址,并执行local_run.sh文件进入检测,使用cvCaptureFromFile函数开始获取指定路径下的的视频数据或者图像数据,使用pthread_create函数创建一个进程,用来对获取的本地视频的每一帧进行检测或者直接对本地图像数据进行检测,使用load_network加载Yolov2网络结构以及训练好的权重模型,之后将获取的本地视频的每帧图像数据或者本地图像数据经过网络的计算得到目标行人的位置信息,最后将获取到的本地视频数据及其检测结果或者本地图像数据及其检测结果一起发送到网页端进行显示。5.2.4

网络设置模块的实现

图5-3为网络设置界面图。用户在该界面可以设置指定的IP地址对远处终端智能分析设备的IP地址进行修改。在该界面上对应的文本框输入相应的数据,点击确定即可修改。

39华中科技大学硕士学位论文图5-3网络设置界面当点击确定按钮时,系统会调用ipaddr_process函数,对输入的IP地址、子网掩码以及默认网关进行解析后,调用set_net.sh文件,使用修改IP地址的命令,将终端智能设备的IP地址、子网掩码以及网关修改为通过解析获得的IP地址、子网掩码以及网关,重启终端智能分析设备后,IP地址修改完成。5.2.5

接收设置模块的实现

图5-4为系统接收设置界面。当用户需要将检测后的结果发送到指定的IP地址时,该功能会被用户用到。用户只需要按照界面上的提示,输入相关的数据,之后确认提交,系统便会将检测后的结果同样也发送到用户输入IP地址。

系统接收设置主要功能是将检测结果同样也发送一份到用户输入的IP地址。在用户在根据页面需要输入的数据完成输入后,点击确定按钮时,系统会调用serverip_process函数,通过该函数将输入的IP地址以及端口号传递给DarkNet框架,在检测完成后,系统会自动将检测后的结果发送一份到指定的IP地址。

图5-4接收设置界面40华中科技大学硕士学位论文5.2.6

用户管理模块的实现

图5-5为用户管理界面。当用户需要对自己的账户设置一个比较方便记忆或者安全性较高的密码时,用户可以在用户管理模块对用户的密码进行更改。

图5-5用户管理界面用户在完成相关数据的输入后,点击确定按钮,系统会调用validate_pwd_Param函数,通过getElementById函数获取用户输入的用户名、输入密码以及确认密码的信息,判断输入的数据是否不存在或者输入的两个密码不相同,如果信息为空或者输入的两个密码不相同,则清空输入的相关数据,让使用者重新输入,如何输入的数据符合规范,则对保存用户名和密码的user.xml文件进行修改。

5.3系统测试

系统测试是系统开发过程中的最后阶段,也是不可或缺的阶段。通过系统测试来保证系统的质量,一旦发现问题及时修改,避免在系统交付之后出现太多的系统漏洞。5.3.1

测试目的和范围(1)测试的目的

软件测试是系统开发过程中的一个非常重要的阶段,标准化的测试工作能够给软件质量带来保证,它的目的在于能够令测试工作更加规范,能够有个准则进行对比,进而能够让整个软件开发进入更加专业化的道路。本文是对基于深度学习的行人检测系统的项目测试,根据行人检测系统的需求做出相应的测试计划,为系统的稳定运行提供保障。

41华中科技大学硕士学位论文(2)测试的范围

对本文所设计和实现的行人检测系统进行测试,需要针对本系统相应的功能设计测试用例并给出相应的测试结果,对测试过程所需的资源需求、过程条件、进度计划、测试目标等做出规划。5.3.2

系统功能测试及结果

表5-2为系统功能测试以及测试结果。在表中,对每个功能进行了编号,给出了每个功能的测试步骤以及预期的结果,在表的最后给出了系统每个功能的功能测试结果。

表5-2编号功能测试内容系统功能测试及结果预期结果当用户输入错误的URL时,点击开始检测,会提示找不到视频来源;当输入正确的URL时,会正常播放视频的实时画面;当点击开始检测时,会实时显示视频及其检测结果;当点击暂定检测时,系统会停止显示结果结果,只显示实时的视频画面。当用户选择错误的文件时,点击确定后,系统会无法对选择的文件进行检测;当用户选择的文件正确时,点击提交按钮后,系统会自动显示检测的视频以及检测后的结果。当用户选择错误的文件时,点击确定后,系统会无法选择的文件进行检测;当用户选择的文件正确时,点击提交按钮后,系统会自动显示检测的视频以及检测后的结果测试结果测试步骤001在线检测视频检测功能1.登录系统2.进入在线检测界面3.输入URL4.点击开始监控5.点击开始检测6.点击暂定检测通过验证002本地检测视频检测功能1.登录系统2.进入本地检测界面3.点击选择文件选择本地视频数据4.点击提交通过验证003本地检测图片检测功能1.登录系统2.进入本地检测界面3.点击选择文件选择本地图片数据4.点击提交通过验证42华中科技大学硕士学位论文续表5-2编号功能测试内容系统功能测试及结果预期结果测试结果测试步骤1.登录系统2.进入网络设置界面3.输入IP地址、子网掩码和默认网关信息4.点击确定按钮1.登录系统2.进入接收设置界面3.输入服务器IP地址和端口号4.点击确定按钮004网络设置功能当用户输入的数据格式不正确时,进行提交,提交会无法完成;通过当用户录入的数据正确时,终端验证会重新启动,再次进入系统时使用的是修改后的IP地址。005接收设置功能当用户输入的数据格式不正确时,进行提交,提交会无法完成;通过当用户输入的数据正确时,接收验证端会收到系统发出的检测结果。006用户密码修改功能1.登录系统2.进入用户管理界面3.输入账号以及新的密码4.点击确定按钮当用户录入的用户名不正确或者用户录入的两次密码不同时,进行提交,提交会无法完成;当用户录入的用户名正确且者用户录入的两次密码相同时,点击确定按钮,系统会对之前的账号进行修改,再次登录系统时需要输入新的密码进行登录。通过验证007版本信息显示功能1.登录系统2.进入版本信息界面系统能够正常显示内核系统、文件版本、硬件版本、mac地址等信息。对于未获取到的信息使用unknown进行显示。通过验证008可拓展性1.将系统一移植到单路智能分析设备2.将系统一移植到四路智能分析设备在单路智能分析设备和四路智能分析设备上系统都可以正常运行通过验证43华中科技大学硕士学位论文续表5-2编号功能测试内容系统功能测试及结果预期结果测试结果测试步骤1.打开浏览器2.输入搭载系统的009可用性终端智能分析设备IP地址输入正确的IP地址后,网页能够进入系统的登录界面。通过验证010实时性1.登录系统2.进入在线检测界面3.输入URL4.点击开始监控网页上的检测结果显示时不出现卡顿,系统后台检测速度能够达到每秒25帧。未通过011界面友好性1.登录系统2.进入在线检测界面3.进入本地检测界面用户在登录系统后能够快速找到对应的系统功能界面通过验证5.4本章小结

本章对行人检测系统的实现与测试进行了详细的描述,给出了系统开发所需要的软硬件环境。在系统设计部分,详细描述了行人检测系统的各个主要功能是如何实现的,展示了系统的各个功能的界面图。在系统测试部分,说明了系统测试的目的、范围以及测试计划,给出了系统功能测试的测试用例以及测试结果。

44华中科技大学硕士学位论文6

总结与展望

本章主要是对论文全部的工作进行了总结,对系统未来的改进进行了展望,阐述了行人检测系统目前已经实现的功能,以及系统设计上存在的缺陷和仍需改进的地方,为行人检测系统后续的开发指明了工作的方向。

6.1全文总结

本文所设计和实现的行人检测系统用到的关键技术主要是深度学习中的相关技术,本文先是对深度学习的框架DarkNet进行了讲解,DarkNet是本系统的一个重要的组成部分,系统模型的训练以及检测都是基于DarkNet实现的[48]。之后在关键技术部分对yolov2的优势从精度和速度两个方面进行了详细的讲解。

行人检测系统的开发经历了模型选择对比,数据的收集和标注,模型的训练,将模型嵌入到四路智能设备TX1中,重新训练模型,提高模型的检测速度,对比模型的检测效果以及模型的检测速度,搭建BoaWebServer服务器,修改深度学习框架DarkNet使其能够与Boa服务器通信,制作网页显示检测结果,再到最后的一系列的测试和bug的调试等,经过了三个多月的时间,实现了行人检测的初步版本,目前系统仍在不断地改进中。

本文的行人检测系统实现了如下方面:

(1)系统实现了通过网络摄像头获取的网络视频的在线播放、暂停等功能。(2)系统实现了通过网页端控制后台检测的开始和关闭。(3)系统实现了通过网页端修改智能设备终端TX1的IP地址。(4)系统实现了通过网页端修改测试结果发送目的IP地址的功能。(5)系统实现了在网页端显示系统版本信息的功能。

(6)系统实现了对本地视频和图片的检测,并将结果显示在网页上行人检测系统的总体功能基本得到实现,但系统仍然存在许多不足。

45华中科技大学硕士学位论文6.2展望

基于Yolov2的行人检测系统在精度上远高于传统的行人检测方法的精度,但相对于FasterR-CNN等网络结构在图像检测上的效果,Yolov2的精度较低。在以后的系统改进过程中,可以在保证检测速度不下降的情况下,提升模型的精度。

由于是首次将深度学习技术Yolov2应用到行人检测系统中,系统的部署不用是非常的方便,需要先在四路智能设备TX1上搭建深度学习所需的一些依赖环境,例如CUDA、OPENCV等等,之后要部署Web服务器Boa到四路智能设备TX1中。过程操作复杂,稍有差错,系统将不能运行。在后续的开发中,环境部署的简化可以作为其中的一个研发方向。

46华中科技大学硕士学位论文致谢

不知不觉中学位论文的撰写已接近尾声,研究生的生活也走到了结尾,回首研究生期间的经历,许多温馨的画面浮现在脑海。

感谢我的导师管乐老师,是管老师将我带入了一个我从未接触过的领域,并让我深深的感受到这个领域带来的乐趣。在我迷茫的时候,是管老师的教诲让我重新找到了方向。研二期间外出实习,也是管乐老师的建议使我对我的心中所想更加坚信。感谢管老师对我论文以及研究方向上的耐心指导,使得我能够顺利的完成了课题的研究和毕业论文的撰写。

感谢软件学的领导和老师们,研究生期间,老师们教会我很多知识,让我受益匪浅,正是因为学院领导和老师们默默的奉献,才有了软件学院这么好的学习平台,我才有这么好的学习机会。

感谢实习期间遇到的老师,师傅,师兄和同事们。是他们的指导,让我成长了许多,工程实践能力得到了提升。也是他们的陪伴,让我度过了一段愉快的实习期。

感谢我的父母,为了能够让我读好书,生活能够过的更好,他们每天都在辛劳的工作,没有我的父母,也就不会有我的今天。

感谢我的室友和同学们,是他们让我的研究生生活变的无比的开心,也是他们让我拥有了一份纯贞的友情。

47华中科技大学硕士学位论文参考文献

[1]

XuYan-wu,CaoXian-bin,andQiaoHong.Surveyonthelatestdevelopmentofpedestriandetectionsystemanditskeytechnologiesexpectation.ActaElectronicaSinica,2008,36(5):368-376

[2][3]

张旭东.行人检测技术研究:[硕士学位论文].成都:电子科技大学图书馆,2011

陆堃.基于图像的行人检测方法研究:[硕士学位论文].上海:上海交通大学图书馆,2009

[4][5][6]

陈雄.基于机器视觉的车辆检测方法研究:[硕士学位论文].成都:电子科技大学图书馆,2016

CaoSY,LiuYH,LiXZ.VehicledetectionmethodbasedonfastR-CNN.JournalofImageandGraphics,2017,22(5):671-677

RenS,HeK,GirshickR,etal.FasterR-CNN:TowardsReal-TimeObjectDetectionwithRegionProposalNetworks.IEEETransactionsonPatternAnalysis&MachineIntelligence,2015:1-5

[7]

LiuW,AnguelovD,ErhanD,etal.SSD:SingleshotmultiboxdetectorProcofEuropeanConferenceonComputerVision:SpringerInternationalPublishing,2016:21-37

[8][9]

J.Redmon,S.Divvala,R.Girshick,andA.Farhadi.Youonlylookonce:Unified,real-timeobjectdetection.arXivpreprintarXiv:1506.02640,2015

许言午,曹先彬,乔红.行人检测系统研究新进展及关键技术展望.电子学报,2008,36(5):368-376

[10][11][12]

苏松志.行人检测若干关键技术研究:[博士学位论文].厦门:厦门大学图书馆,2011

P.Viola,M.J.Jones,andD.Snow.Detectingpedestriansusingpatternsofmotionandappearance.IJCV,2005,63:153–161

N.Dalal,andB.Triggs.Histogramsoforientedgradientsforhumandetection.in

48华中科技大学硕士学位论文CVPR,2005:886-893

[13][14]

DalalN,TriggsB.Histogramsoforientedgradientsforhumandetection.ComputerVisionandPatternRecognition,2005:886-893

P.F.Felzenszwalb,R.B.Girshick,D.McAllester,andD.Ramanan.Objectdetectionwithdiscriminativelytrainedpart-basedmodels.PAMI,2010,32:1627–1645

[15][16][17][18]

P.Dollar,R.Appel,S.Belongie,andP.Perona,“Fastfeaturepyramidsforobjectdetection,”PAMI,2014:1532–1545,2014

余凯,贾磊,陈雨强,徐伟.深度学习的昨天,今天和明天.计算机研究与展,2013,50(9):1799-1804

陈雄.基于机器视觉的车辆检测方法研究:[硕士学位论文].成都:电子科技大学图书馆,2016

J.R.Uijlings,K.E.vandeSande,T.Gevers,andA.W.Smeulders,“Selectivesearchforobjectrecognition,”InternationalJournalofComputerVision(IJCV),2013

[19][20][21][22][23][24]

LeCunY,BengioY,HintonG.DeepLearning.Nature,2015,521(7553):436-444M.Lin,Q.Chen,andS.Yan.Networkinnetwork.arXivpreprintarXiv:1312.4400,2013

K.SimonyanandA.Zisserman.Verydeepconvolutionalnetworksforlarge-scaleimagerecognition.arXivpreprintarXiv:1409.1556,2014

GirshickR.FastR-CNN.IEEEInternationalConferenceonComputerVision.IEEE,2015:1440-1448

李航.统计学习方法.北京:清华大学出版社,2012:243-251

WangG,HoiemD,ForsythD.Learningimagesimilarityfromflickgroupsusingfastkernelmachines.IEEETransactionsonPatternAnalysisandMachineIntelligence,2012,34(11):2177-2188

[25][26]

RedmonJ,FarhadiA.YOLO9000:Better,Faster,Stronger.arXivpreprintarXiv:1612.08242v1,2016

孙庆杰.静态图像中人体检测技术研究:[博士学位论文].合肥:中国科学院图书馆,2004

49华中科技大学硕士学位论文[27]

常好丽,史忠科.基于单目视觉的运动行人检测与跟踪方法.交通运输工程学报,2006,6(2):55-59

[28][29]

李斌.基于视频图像的智能车辆辅助导航方法研究:[硕士学位论文].西安:西北工业大学图书馆,2005

HongCheng,NanningZheng,JunjieQin.PedestrianDetectionUsingSparseGaborFilterandSupportVectorMachine.Procs.IEEEIntelligentVehiclesSymposium,Las.Vegas,USA,June2005:583-587

[30][31][32][33][34][35]

田广,戚飞虎,朱文佳.单目移动拍摄下基于人体部位的行人检测.系统仿真学报,2006,18(10):2906-2910

JiaYQ,ShelhamerE,DonahueJ,etal.Caffe:convolutionalarchitectureforfastfeatureembedding.EprintArxiv,2014:67-75

RedmonJ.Darknet:Opensourceneuralnetworksinc.http://pjreddie.com/darknet,2013

AbadiM,AgarwalA,BarhamP,etal.Tensorflow:large-scalemachinelearningonheterogeneousdistributedsystems,2016:16-17

AtheyS,ImbensG.MXNet:aflexibleandefficientmachinelearninglibraryforheterogeneousdistributedsystems.Statistics,2015(1):11-14

HeK,ZhangX,RenS,etal.Spatialpyramidpoolingindeepconvolutionalnetworksforvisualrecognition.IEEETransonPatternAnalysisandMachineIntelligence,2015,37(9):1904-1916

[36]

C.Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.Erhan,V.Vanhoucke,andA.Rabinovich.Goingdeeperwithconvolutions.CoRR,abs/1409.4842,2014

[37][38][39]

S.IoffeandC.Szegedy.Batchnormalization:Acceleratingdeepnetworktrainingbyreducinginternalcovariateshift.arXivpreprintarXiv:1502.03167,2015LeCunY,BengioY,HintonG.DeepLearning.Nature,2015,521(7553):625-631Russakovsky,J.Deng,H.Su,J.Krause,S.Satheesh,S.Ma,Z.Huang,A.Karpathy,A.Khosla,M.Bernstein,A.C.Berg,andL.Fei-Fei.ImageNetLargeScaleVisualRecognitionChallenge.InternationalJournalofComputerVision(IJCV),2015

50

因篇幅问题不能全部显示,请点此查看更多更全内容