自然背景下行人检测与识别方法研究毕业论文
2020-02-19 07:56:16
摘 要
随着科学技术的迅速发展,人工智能技术也在飞速进步,人类的生活也越来越离不开计算机的帮助,而行人检测和识别一直都是计算机视觉领域研究的热点,现在越来越多的公共领域都依赖计算机视觉来工作,例如在计算机辅助驾驶、智能交通、智能机器人等一系列领域,所以行人检测技术也变得越来越重要。
而如何快速高效的检测出目标图像中行人成了现在研究的重点,由于行人的背景的复杂性,传统的行人检测在检测速度和准确率上已经不能满足现在研究的要求,所以目前行人检测大多数都是基于卷积神经网络的算法。
论文从深度学习开始,分析了深度学习中神经网络的基本结构和相关理论,再到传统的行人检测技术,最后论文使用了基于卷积神经网络的行人检测算法,目前在卷积神经网络处于领先地位技术的是SSD(Single Shot MultiBox Detector)算法,该算法利用多尺度预测来提高检测效率,也是本文使用的行人检测方案。
关键词:行人检测;深度学习;卷积神经网络
Abstract
With the rapid development of science and technology, artificial intelligence technology is also progressing rapidly, and human life is increasingly inseparable from the help of computers. Pedestrian detection and recognition has always been a hot topic in the field of computer vision. Now more and more public areas need to rely on computer vision to work, such as computer-aided driving technology, intelligent transportation technology, robots. Technology and other fields, so pedestrian detection technology is becoming more and more important.
How to detect pedestrians quickly and efficiently in the target image has become the focus of current research. Because of the complexity of pedestrian background, the traditional pedestrian detection can not meet the requirements of current research in speed and accuracy, so most of the current pedestrian detection algorithms are based on convolutional neural network.
Starting with in-depth learning, this paper analyses the basic structure and related theory of neural network, then goes to traditional pedestrian detection technology. Finally, the pedestrian detection algorithm based on convolutional neural network is used. At present, SSD (Single Shot MultiBox Detector) algorithm is the leading technology of convolutional neural network. This algorithm uses multi-scale prediction to improve detection efficiency, as well as The pedestrian detection scheme used in this paper.
Key Words: Pedestrian detection; Deep learning; Convolutional Neural Network
目 录
第1章 绪论 1
1.1 行人检测研究背景及意义 1
1.2 行人检测国内外发展现状 2
1.3 本文主要研究内容及其组织结构 3
第2章 卷积神经网络 4
2.1 引言 4
2.2 深度学习基础 4
2.3 卷积神经网络 5
2.3.1 输入层 5
2.3.2 卷积层 5
2.3.3 池化层 6
2.3.4 非线性激活层 6
2.3.5 反向传播算法 8
2.4 常见的卷积神经网络 9
2.4.1 LeNet 9
2.4.2 VGGNet 9
2.4.3 AlexNet 10
2.5 深度学习框架简介 10
2.5.1 caffe框架 10
2.5.2 TensorFlow框架 10
2.5.3 PyTorch框架 11
2.5.4 Darknet框架 11
2.6 本章小结 11
第3章 行人检测算法 12
3.1 传统行人检测 12
3.1.1 候选区域生成 12
3.1.2 特征提取 12
3.1.3 分类器的选择 14
3.2 基于深度学习的行人检测 15
3.2.1 基于分类的卷积神经网络行人检测 15
3.2.2 基于回归的卷积神经网络目标检测 16
3.3 行人检测数据集 16
3.3.1 MIT数据集 16
3.3.2 INRIA数据集 17
3.3.3 Caltech数据集 17
3.2.4 ETH数据集 17
3.4本章小结 17
第4章 基于SSD的行人检测方案实现 18
4.1 SSD 目标检测方法 18
4.2 数据集处理 18
4.3 行人检测的实现 19
4.4 行人检测测试结果和分析 20
4.4.1 损失函数 20
4.4.2 学习率 21
4.4.3 准确率 22
4.4.4 实验结果 23
4.5本章小结 24
第5章 总结与展望 25
参考文献 26
致 谢 27
第1章 绪论
1.1 行人检测研究背景及意义
在科技飞速发展的当今世界,人们的生活也越来越离不开计算机,使得计算机科学成为了一门越来越重要的学科,而计算机视觉更是计算机科学中研究的重点。计算机视觉涉及了图像处理,模式识别,机器学习等多个学科,近年来以图像为载体的计算机视觉技术正在不断的发展,并且广泛应用于医学、交通、工业、自动化等一系列领域。
行人检测作为计算机视觉的一个重要分支,拥有较高的的实际应用价值,其主要任务是由给定的图像和视频判断是否有行人和给出行人在图像中的具体位置,现实中行人检测的应用十分广泛,主要有:
- 智能监控
近年来随着人们生活质量的提高,人们也越来越注意自己的安全和隐私,一些生活住宅区,公司,商场都安装了电子监控设备来保障自身安全,防止陌生人员进入。但是监控主要是靠人工监控完成,不仅耗时而且耗费大量的人力,最重要的是人可能会有疲倦时候而且遗漏重要信息,这是我们不希望看到的,所以我们利用行人检测技术可以实现计算机自动检测出监控摄像头下每个行人,并且可以对可疑目标进行跟踪和分析,将实时情况及时反映给用户,能够及时发出预警,这样可以节省大量的人力财力,更能提前防范一些犯罪的发生,更好的实现我们监控的初衷。
- 智能驾驶
随着科技的发展,汽车也越来越普及,但是车辆的增多伴随着而来的是越来越多的交通事故,造成交通事故的原因很多,如果我们能让车辆能智能识别行人,并且在司机不能及时反应时候紧急停车就能有效的避免交通事故。行人检测可以作为辅助驾驶技术中不可或缺的一部分,可以智能检测出车辆前方是否有行人并且做出反应,这样可以极大的减少交通事故的发生,保障了行人和司机的安全。
- 智能机器人
机器人一直是人工智能方面的热门技术,机器人视觉技术更是机器人技术的关键,通过机器人视觉,机器人可以智能检测自己的监控区域,而行人检测技术可以和机器人视觉很好的结合起来,比较典型的就是机器人的智能跟随,机器人可以检测目标区域是否有行人,可以自动的跟随目标,可以主动跟随被拍摄的行人,或者可以对目标进行智能跟踪,使目标一直在视觉范围以内,可以有效的获取目标的位置。
行人检测的应用还有很多,上面列举的只是比较典型的几种例子,近年来随着图像数据的丰富,像素的提高,计算机速度不断的上升,基于卷积神经网络[1]的行人检测技术也在不断的发展,人们对行人检测技术的需求也会越来越多。
1.2 行人检测国内外发展现状
行人检测简单来说就是行人目标及其位置从图像提取出来。行人检测系统的研究最早起始于二十世纪九十年代中期,从最早到2001年 ,研究者们对图像的行人检测只是一些特性的选择和简单分类算法,2001年,Viola等人设计了Haar特征,通过对特征的提取、选择和分类,在人脸检测上取得了较好的性能,但是此框架在行人检测领域效果并不理想。直到2005年Dalal等人[2]提出了梯度方向直方图特征才较好的解决了问题。HOG是一种比较好的特征,配合滑动窗口法和线性支持向量分类器取得了很好的效果,在MIT行人数据集上取得了100%的准确率,极大的提高了行人检测的研究者的研究热情。他们在同时提出了比MIT数据集更多的数据集Inria,并且用HOG SVM在此数据集验证,也得到了很高的准确率。在此之后HOG SVM成为了一款了经典的行人检测方案。以后的学者的很多研究都是基于HOG上进行改进。中国学者顾志航等人就提出了一种HOG LSS的行人检测方案。周科嘉等人也根据行人的环境和姿态的变化提出了一种结合HOG特征和模板的行人检测算法。
传统的行人检测技术在简单环境下有比较好的识别率,但是在复杂环境下例如人行道,十字路口人流量较大的环境下时候,检测效果将极大的降低,无法达到所需的要求,因此诞生了基于卷积神经网络的行人检测。
在2006年,机器学习领域的专家加拿大多伦多教授Geoffrey Hinton在科学上发表了一篇关于深度学习[3]的文章开启了机器学习的浪潮。Lécun Y[4]等人最先提出了神经网络的设想,在设想中,有一个局部感知的卷积层和提升抽象程度的池化层,用以改善抽象层次感知理论。通过简单的级联方法形成五个lenet层的网络,但是因为网络层数的不够,当时并没有引起研究人员的兴趣。直到2012年,Hinton[5]的学生Krizhebsky在国际视觉识别大赛中利用卷积神经网络对图像分类获得了第一名,这个神经网络相比以往的传统行人检测识别错误率下降了10%-16%,才开始有学者将卷积神经网络使用于行人检测上面。2014年,Girshick R等人R-CNN的提出,开创了新的行人检测模式,和传统的不同,R-CNN是“卷积特征提取 候选窗口生成 候选窗口分类”的三段式区域卷积神经网络的目标检测方法,在行人检测方面取得了极大的成功,此方法在准确率方面有较大的保证,但是在速度方面不如传统的行人检测,因此后续的快速区域卷积神经网络(Fast R-CNN)和更快速区域候选卷积神经网络[6](Faster R-CNN)方法都是在此方法上改进而成的。
综上所述,行人检测发展至今,卷积神经网络在行人检测方面越来越重要,也是目前最好的行人检测方案,现在较好的行人检测算法都是基于卷积神经网络提出的方法,卷积神经网络也会成为行人检测的主流方案。
1.3 本文主要研究内容及其组织结构
行人检测效果的好坏基本基于两个指标,检测速度和检测准确率。而这两个指标直接依赖于特征的提取和分类器的选择。如果有一个好的特征,就能取得较好的检测效果,而卷积神经网络在特征提取方面有巨大的优势,传统的行人检测中,特征都是人为设定的,对目标的表达能力不足。所以传统的行人检测只能运用在特定的环境中,而且识别率也较低。
而现在基于神经卷积网络的行人检测可以有效的克服复杂环境背景的问题,可以在大多数环境下进行检测,相比传统的行人检测更有优势,所以本次设计是基于SSD[7]神经网络下的行人检测,通过对训练集的训练得到网络模型参数,再对数据集行人进行检测。
论文的章节安排如下:
第1章介绍行人检测的研究背景和意义,以及国内外的研究现状,重点介绍了行人检测的发展历史和生活中具体应用,
第2章阐述了卷积神经网络的相关理论知识和基本组成结构设,包括一些常用的学习框架和模型。
第3章对行人检测方案的介绍,从行人检测的窗口选择、特征提取、分类器的设计入手,具体介绍了行人检测的方法步骤框架,介绍行人检测的相关基础知识,分析了传统行人检测和基于卷积神经网络的行人检测的区别,最后介绍了行人检测相关的数据集。
第4章重点介绍了基于SSD行人检测方法和行人检测的具体实现方案,并且做了测试和对训练集进行了训练和对测试集进行了检测,对得到的数据进行了一系列的处理和分析。
第5章通过前面的实验数据对论文做出总结,阐述了论文做的工作和不足之处,并且分析了论文没有完成的部分在之后的研究中如何改进。
第2章 卷积神经网络
2.1 引言
深度学习是今年来热门的一个研究方向,通过对样本的训练和构建多层的模型,来学习样本的特征,从而得到需要的样本结果,深度学习网络本身就是一种人工神经网络模型,不过和传统的人工神经网络有些不同,而卷积神经网络是深度学习领域的一种常用模型,也是当前行人检测的热门检测方案。
卷积神经网络和常规神经网络的构想基本一致,不同的是需要训练卷积层,因为卷积层更能保留输入空间的结构。卷积神经网络是多层网络结构的学习算法,通过空间关系减少了需要学习参数的数量级,神经卷积网络每层包括多个平面,每个平面包含了多个独立的神经元。
本章从深度学习介绍入手最后到卷积神经网络结构。
2.2 深度学习基础
深度学习是指在多层神经网络上运用各种机器学习算法解决图像,文本信息等问题的综合算法。深度学习通过多层网络分层的获得各种特征值,从而解决一些需要人工设计特征的重要问题,深度学习是一个包含多个算法的框架。深度学习主要从人脑认知原理的研究。深度学习一般是一种自下而上的学习方式。图2.1是人的视觉原理,人的眼瞳接收信号像素 pixels,接着初步处理,得到物体的边缘信息edges,然后对物体进行抽象,判断物体的形状,接着进一步的抽象,判断物体具体的信息。深度学习算法就是在此原理上得到的,先提取物体的边缘信息,然后不断抽象,得到物体的特征,和已知的特征对比得到图像的具体内容。
图2.1 人眼视觉原理
2.3 卷积神经网络
卷积神经网络(Convolutional Neural Networks,CNN)是深度学习中常用的模型之一,也是目标图像处理中常用的模型,是一种包含卷积计算的深度前馈神经网络,卷积神经网络本质上是由不同的层级联而成的。不同的层级代表了人类的不同的感知器官,不同层级的数量连接方式不同会构成不同的卷积神经网络。随着网络层数的增加,网络越来越复杂,网络的学习能力也越来越强,卷积神经网络主要由输入层、卷积层、池化层、非线性激活层等作为基本的处理单元层,逐步增加到一些更复杂的网络结构,完成需要的特征提取。
2.3.1 输入层
输入层主要是对原始的图像数据进行预处理,主要包括了去均值、归一化等一系列操作,具体数据在输入卷积神经网络前需要归一到同样的范围,目的是为了减少数据取值范围的差异带来的干扰,一般将输入的像素的[0,255]归一到[0,1]区间以内。
2.3.2 卷积层
卷积层(Convolution Layer)是卷积神经网络的最重要的一层,也是卷积神经网络的名字的来源。卷积层的卷积运算可以把图像中的不同特征提取出来,随着卷积的次数增多,提取的特征也越来越明显。卷积层最重要的三部分为:局部感受野、权值共享和卷积运算。
人脑对外界的感知首先通过局部的特征获得一些局部信息,然后将所有局部信息综合起来得到全局信息。图像的信息也是如此,相近的地方的图像像素信息较为相似,较远地方的图像则是联系弱了一些。所以我们提取图像信息可以从局部进行,然后得到全部的图像信息。局部感受野正是这样的,先处理局部的信息,再将不同区域的图像信息处理得到全局信息。这样极大的减少了计算量,提高了效率。
图2.2 卷积局部感受野
图2.2所示就是局部感受野的直观表示,将原始图像的信息映射在更小的区域内。
2.3.3 池化层
池化层(Poolong Layer)是为了减少参数的量,减少图像的过拟合,用来提高图像的抽象程度,减少计算机的计算量,提高了图像处理时间,每隔几个卷积层就会有一个池化层夹在中间,还有一些非线性层,用来减少卷积计算的计算量。池化一般是计算图像某个区域的特征的最大值或者平均值来代替这个区域的特征值,常用的池化方法有最大值池化(Max pooling)和均值池化(Average pooling),前者是从区域中取最大值,后者是从区域中取平均值。如图2.3所示,是一个最大值池化的例子。
图2.3 池化计算
2.3.4 非线性激活层
非线性激活层是卷积神经网络中实现非线性拟合的关键环节。卷积神经网络中常见的激活函数有:
- Sigmoid函数:
(2.1)
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: