搜索详情-毕业论文网

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回

行人检测系统的设计毕业论文

 2020-04-06 13:08:23  

摘 要

此次设计旨在设计一款能够将检测出视频序列中的行人并将其表示出来。众所周知,行人检测是一门非常热门且具有挑战性的课题,在许多方面都有广泛的应用,像行人分析、智能驾驶等。目前比较流行的方法有Haar小波特征,采用积分出来,可以很好的检测出行人目标,另外就是HOG特征 SVM算法,此次设计采用的就是HOG SVM算法来实现对行人目标的检测和标识。行人检测通过提取视频序列中行人目标的体态特征、HOG特征,对视频中的目标行人进行自动检测。同时,采用HOG SVM的方法,在确保检测精度的同时,使检测的成功率也得到保障。而且检测系统是对所采集得来的视频进行实时的加载和检测,这样就保证了系统的实时性。此次行人检测系统的设计采用了C 语言,在OpenCV上进行设计及运行,实现视频中行人的自动检测并把目标在图像中标识出来。经过实验,此次设计出来的行人检测系统具有很好的效果,能够将所加载的视频序列中的行人检测出,然后将其标记出来。

关键字:行人检测系统,OpenCV,,HOG特征,SVM分类器

Abstrct

The design was designed to design a device that would detect pedestrians in video sequences and present them. As we all know, pedestrian detection is a very hot and challenging topic, and it has extensive applications in many aspects, such as pedestrian analysis and smart driving. At present, the more popular method is Haar wavelet feature, which can be used to detect pedestrian targets. The other is the HOG feature SVM algorithm. This design uses the HOG SVM algorithm to achieve the detection and identification of pedestrian targets. . Pedestrian detection automatically detects the target pedestrian in the video by extracting the body features and HOG features of the pedestrian target in the video sequence. At the same time, using the HOG SVM method ensures the detection accuracy while ensuring the success rate of detection. Moreover, the detection system performs real-time loading and detection of the captured video, thus ensuring the real-time performance of the system. The pedestrian detection system was designed using a C language and was designed and executed on OpenCV to allow pedestrians in the video to automatically detect and identify the target in the image. After experiments, the pedestrian detection system designed this time has a very good effect. It can detect pedestrians in the loaded video sequence and mark them out.

Keywords: Pedestrian Detection System; OpenCV,;HOG Features,;SVM Classifier

目录

第一章 绪论 1

第二章OpenCV的介绍 3

2.1 OpenCV的定义 3

2.2 OpenCV的优势 3

2.3 OpenCV的主要结构及其功能 3

小结 4

第三章 行人检测方法的设计和比较 5

第四章 行人检测系统的设计 7

4.1 行人检测系统的组成 7

4.2 行人检测系统的原理 8

4.2.1 视频的采集 8

4.2.2 前景的提取 8

4.3 前景的初步筛选 11

4.4 行人目标的精确识别 12

4.5 检测结果的处理 13

小结 14

第五章 行人检测系统的软件实现 15

第六章 实验结果 18

总结 20

参考文献 21

附录 22

源程序 22

致谢 26

第一章 绪论

近年来,随着社会的发展和科学技术的不断进步,城市化进程不断加快,城市人口和车辆的数量不断增加,城市的规模和结构都发生了重大变化。车辆和其他交通工具在提高人们生活水平的同时也带来许多负面的影响;像交通堵塞、交通事故等等,无不影响着人们的身心健康和生活质量。一个城市交通的发展在很大程度上决定城市的经济发展的速度,也能加快城市现代化的步伐;城市交通是否顺畅对城市自身的运转很大的影响。所以解决城市的交通问题就显得格外重要,因此一套功能相对完善的行人检测系统对改善城市的交通问题是非常有必要的。

研究人员对于行人检测的研究始于90年代中期,从最早的2002年,研究人员借鉴并引用了图像处理和模式识别领域较为成熟的方法,着重的研究了行人目标的体态特征,以及一些简单的有关于分类的算法;然后到2005年,行人检测系统的训练库越来越大,实时进行检测,检测的精度在一些领域也越来越实用。在计算机视觉应用这一领域,行人检测这一课题越来越受到研究者的青睐。简而言之,行人检测是指对摄像头获取采集的实时视频图像序列进行自动分析,以确定是否存在行人,若存在,则将其标记出来,给人们以提醒,这样人们就有反应时间,来进行下一步操作。行人检测系统具有非常广泛的应用,比如常见的汽车安全辅助系统,可以利用行人检测系统检测出马路上的行人,根据系统的分析结果,判断是否进行报警行为,这样车主就会根据指示做出正确的行动。

在现如今的城市交通里,行人交通是我国城市居民出行的主要方式,而对发展愈加完善的行人交通的视频检测技术,对城市的智能交通的发展有着很大的帮助。通过对运动中的行人进行检测,根据检测结果分析,然后对行人的运动轨迹进行预测,提取行人的交通数据,为城市交通规划与管理提供科学的依据。

但如今行人检测技术还是存在着一些难点。因为在视频里,行人与背景是融合在一起的,行人目标可能处于站立状态、行走状态,或者正在进行一些肢体动作。能否将目标行人从图像中与背景完好的分离出来,成为行人检测技术的一大难题。另外,行人所处的环境可能会随时改变,如天气、光照、阴影以及其他干扰,这些或多或少的都会给行人检测带来影响。

目前行人检测在国内的发展:首先是利用人体模型,以及对人体各部位特征对应的概率模型,提出了基于矩形拟合的检测方法;再者就是通过对人体运动时肢体动作进行分析,对行人的行为进行理解和描述;这些方法都需要建立在极大的数据库上才能有很好的检测效果,但是检测的成功率都是十分高的。相对于国内来说,国外的学者也进行了许多次的实验和研究,提出了许多十分有效的方法;其中最为著名的就是通过建立梯度直方图(HOG),通过HOG特征来表示人体特征,从而实现对图像中的行人进行检测。根据国内外专家和研究人员的各种研究方法来看,目前行人检测主要有三种方法,首先是基于全局特征的方法,其次基于人体部位的方法,最后就是基于立体视觉的方法。

通过调查来看,现如今用于行人检测的方法大体上可以分为两种:手工设计模型和深度学习模型。手工设计模型使用人工设计的特征,如HOG等,分类器通常采用SVM等;深度学习模型是指通过一系列操作从原始图像中获取卷积特征,然后使用全连接层作为行人分类器。相较于深度学习模型的复杂性和困难性,手工设计模型则相对与简单,尽管手工设计模型不像深度学习模型那样能够直接从原始图片中提取特征,然后通过逐层传递从图像中提取的特征,进而获得图片的高维信息;但是手工设计模型中利用HOG SVM算法在OpenCV中进行设计,也能够非常快速且有效的完成行人检测的任务,而且这种方法是目前来说综合性能最好的方法。因此HOG SVM作为一个里程碑式的算法,被写入OpenCV中。

本次设计将采用HOG SVM算法对行人检测系统进行设计,并在OpenCV上进行实现,所设计的系统应实现的功能有:能够比较精确的识别运动目标并将其在图像中标识出来。

小结

本课题旨在使用OpenCV设计一个功能比较完善的行人检测系统,基于c 语言进行设计,c 语言可以给使用者更多的选择,不需要复杂的程序设计环境,而且避免了平台限定和普遍用途的特性,c 语言较为简洁且运行比较高效,是非常实用的一种语言,所以比较适合此次设计。

第二章OpenCV的介绍

2.1 OpenCV的定义

OpenCV是一个开源的跨平台计算机视觉库,可在Windows、Linux等操作系统上运行。它轻量级且高效,由一系列c函数和c 构成,同时OpenCV也提供了MATLAB、Ruby等语言的接口,是实现图像处理和计算机视觉方面的通用算法。

2.2 OpenCV的优势

近年来,计算机视觉市场非常庞大,而且呈持续增长的趋势,而且在这一方面没有标准的API,当前大部分计算机视觉软件或多或少的存在着一些问题,比如在学习代码的时候,会有比较慢、不稳定、独立或与其他库不兼容等问题;作为商业化的工具,一部分计算机视觉软件的耗费是比较高的;而像视频监控、医疗设备、制造控制系统等都比较依赖一些比较特殊的解决方案。而OpenCV致力于现实世界的实时实用,通过对c代码的编写进行优化处理,可以给它的执行速度带来比较明显的提升。另外,还可以通过一些其他的方法使其得到更快的处理速度。OpenCV中为用户提供的视觉处理算法选择非常多,再加上它的开源特性,在处理得当时,即使不添加新的外部支持,也可以比较完整的编译链接,进而生成执行程序。Opencv作为一个开源计算机视觉库,其代码都经过优化,可以用来对图像进行实时处理;OpenCV具有比较良好的可移植性,且同时具有低级和高级的应用程序接口。OpenCV提供面向Intel IPP的高效多媒体函数库的接口,可以针对用户使用的Intel CPU来优化代码,进而提高程序的性能。

2.3 OpenCV的主要结构及其功能

OpenCV的结构主要有core、highgui、imgroc、video、objdetect这几个模块,下面详细介绍下这几个模块的作用:

Core:OpenCV的基础模块,包括了基础的数据结构和一些简单的图像处理函数。与此同时,这个模块也会被其他模块调用。

Highgui:这个模块包含了一些简单的用户界面的函数,图像、视频的获取,以及还有就是这个模块可以处理像操纵图像窗口,处理拉杆等问题。

Imgroc:该模块包像最为基本的图像处理算法,像图像滤波、图形变换以及色彩空间转换等。

Video:这个是视频分析模块,通常使用帧间差法以及背景减除法等对视频进行分析。。

Objdetect:这个模块是对待定物体进行检测以及识别的算法。

OpenCV使用“IplImage”结构来创造和处理图像。因此IplImage也是数据库函数中比较重要的结构体。IplImage结构来源于IPL函数库,这种格式比传统的常用格式有个明显的优势,也正是这种格式代表了更多的图像性质,可以更加方便的访问图像中的像素值。

小结

OpenCV作为一个开源的跨平台计算机视觉库,用来完成行人检测系统的设计,不仅可以对图像、视频进行实时采集和处理,而且其使用的是c 程序,其中包含了许多函数用来处理计算机视觉领域的问题,像运动目标的分析等。OpenCV的开源、免费、无论商业与否的特点,并没有让其在功能方面有所欠缺,恰恰相反的是,OpenCV通过对代码的优化,使其运行时更加高效、快速,使用起来也更加方便。所以在此次的行人检测系统的设计中,OpenCV是非常理想的辅助工具。

第三章 行人检测方法的设计和比较

现在正使用的行人检测的方法比较多,但是大体上可以分为三类,第一类:基于全局特征的方法,第二类:基于人体部位的方法,以及第三类:基于立体视觉的方法。目前,基于全局特征的方法应用最为广泛,与基于人体部位和立体视觉的方法不同,基于全局特征的方法主要是通过物体的形状特征、变换特征以及边缘特征等进行统计,然后根据统计结果来描述物体。这里主要对基于全局特征的方法进行分析和比较,从而选择出最适合本次设计的方法进行设计。

对于全局特征的方法,有代表性的有Haar小波特征、Edgelet特征、Shapelet特征、轮廓模板特征和HOG特征等。

(1)基于Haar小波特征的方法

基于Haar小波特征的方法是由麻省理工学院的专家提出的,Haar小波模板可用来表达简单的物体,后来,通过引入积分图,该方法加快了Haar的提取速度,然后根据人体的形态特征和运动特征,构建行人检测系统,该方法的检测效果是比较好的。这种方法重在高效以及快速检测,它可以覆盖整个区域,而且在通过选取合适的滤波器,可以极大的减去或者去除所提取的不同特征之间的相关性。现如今Haar小波模板已被广泛的应用到图像的物体检测中,因此,基于Haar小波特征的行人检测方法成为了行人检测领域的经典算法。

  1. 基于Edgelet特征的方法

基于Edgelet特征的方法:通过利用一些短线或曲线片段,然后将其应用到复杂场景中的单幅图像中,可以检测图像中的行人目标。该方法利用的是人身体某些部位的特征,所以当在出现目标行人在部分身体被遮挡的情况下,也能通过人体其他部位的特征来识别,仍然会有比较好的表现。单这种算法需要对身体的各个部位建立模型,将身体划分成几个部分来进行训练,这样就导致了特征的计算会比较复杂。而且此方法的识别率也不高。

(3)基于Shapelet特征的方法

基于Shapelet特征的方法:针对于基于Edgelet特征存在的缺点,直接利用机器学习,从而自动切快速的得到特征。该方法首先从训练样本中提取图像不同方向的梯度信息,然后对它们进行训练,以获得Shapelet特征。

(4)基于轮廓模板特征的方法

该方法是指利用图像中目标对象的边缘轮廓、纹理和灰度信息建立模型,然后使用模型匹配的方法来检测目标。此方法是基于传统机器学习的方法,和现在的深度学习的效果和速度都不能相提并论,但是在深度学习之下,与其他传统的行人检测方法相比检测速度都要快不少,而且是单线程,在没有GPU的情况下,比HOG特征还要快,在检测速度和效果方面都有比较好的表现。

  1. 基于HOG特征的方法

基于HOG特征的方法:通过使用梯度方向直方图(HOG)来表示人体特征。在一幅图像中,采用梯度密度用于表示局部物体的形态特征。与其他特征描述方法相比较,HOG特征的优势更加明显;第一:由于HOG是在图像的局部方格单元上进行操作,因此即使是在图像发生几何形变以及光学变化的情况下,任然可以保持图像很好的稳定性;第二,在粗略或精细的空域抽样,或者在强烈的局部光学归一化的情况下,只要目标行人在大体上能够保持站立或者行走状态,即使其有一些其细微的肢体动作,都不会影响检测结果,因为细微的肢体动作会被忽略,所以对结果的影响并不大。在学者达拉尔的实验中,利用HOG特征进行行人检测,在MIT行人数据库中,几乎获得了100%的检测成功率;即使是在INRIA行人数据库中,在出现光照变化以及背景变化,甚至是出现视角问题的情况下,也能取得大概90%的检测成功率。

综合上述的几种用于行人检测的方法优缺点以及可实施性,可以很直观的了解到基于HOG特征的方法相较于其他方法来说更容易实现,而且具有极高的检测成功率,所以在此次设计中,将采用基于HOG特征的方法来完成此次行人检测系统的设计。

行人检测的其他方法,如基于人体部位的方法,是将人体分成几个部分,然后对图像中的每一个部分进行检测,然后将检测结果进行整合,当然整合是得按照约束条件的,根据整合后的结果,判断图像中是否有目标行人。而基于立体视觉的方法,则是通过两个或两个以上摄像机捕获图像,然后分析图像中目标的三维信息以确定图像中是否存在行人目标。但是基于人体部位的方法和基于立体视觉的方法都有明显的缺点和局限性,并不适合用来进行此次行人检测系统的设计,所以不予考虑。

小结

HOG特征作为用于计算机视觉和图像处理中检测对象的特征描述子,应用于行人检测时,能够在检测率极高的前提下,把错检率控制的极低。另外,在发生视角、光照和背景变化时,检测成功率仍然极高;甚至可以忽略细微的肢体动作,容错率十分可观。可见HOG非常适合此次行人检测系统的设计。为了使此次设计更好的完成,最后决定采用HOG SVM的方法来完成设计。

第四章 行人检测系统的设计

4.1 行人检测系统的组成

一个比较完整的行人检测系统应该包含有;视频的采集与播放;然后通过相邻图像帧之间的差得到所加载视频中的前景目标,这样就完成对前景的提取;然后利用行人比较明显的形态特征(比如宽高比、面积等)对目标行人进行初步筛选;再接着利用SVM分类器(输入为HOG特征,输出为类别判别信息)进一步准确的识别目标行人;然后,输出行人检测系统的检测结果,并标识出来;最后可以在输出结果的后面增加结果处理这一板块。行人检测系统的系统结构如下:

图4.1 行人检测系统的框图

4.2 行人检测系统的原理

4.2.1 视频的采集

视频采集属于数据采集方式的一种较为特殊的方式,主要是将各类图像及视频设备输出的视频信号进行采样、量化等操作,从而转化成数字数据。其本质是利用电子技术通过传感设备和其他一些待测设备对数据进行自动采集的过程。其工作过程主要有三个过程:

第一阶段:数据收集阶段;该阶段是通过数据收集设备(如镜头、摄像等)将视频数据进行收集工作。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。