毕业论文-基于深度学习的行人检测算法研究.docx_第1页
毕业论文-基于深度学习的行人检测算法研究.docx_第2页
毕业论文-基于深度学习的行人检测算法研究.docx_第3页
毕业论文-基于深度学习的行人检测算法研究.docx_第4页
毕业论文-基于深度学习的行人检测算法研究.docx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

本 科 毕 业 论 文院 系 计算机科学与技术系 专 业 计算机科学与技术 题 目基于深度学习的行人检测算法研究 年 级 2012 学 号 学生姓名 指导老师 职 称 讲师 指导老师 职 称 教授 论文提交日期 2016.5.22 南京大学本科生毕业论文(设计、作品)中文摘要题目: 基于深度学习的行人检测算法研究 计算机科学与技术系 院系 计算机科学与技术 专业 2012 级本科生姓名: 指导教师(姓名、职称): 摘要: 行人检测由于其在自动驾驶,视频监控和智能机器人等领域的巨大应用价值,一直以来都受到广为关注。近些年来,深度学习尤其是卷积神经网络在解决图像分类和目标检测等典型计算机视觉方面的任务时展现出了巨大的潜力,与之前基于手工提取特征的传统方法相比有了飞跃式地进步。本文首先研究了传统的利用梯度方向直方图和支持向量机的行人检测方法并分析了其系统性能,然后基于深度学习的思想使用了一种通用的卷积神经网络构建出了完整的行人检测系统。通过仔细分析,优化了行人检测基本框架的几个阶段,使得改进后的的检测系统性能大大优于传统方法,并且在耗时较少的前提下接近于世界领先的算法。关键词:行人检测,梯度方向直方图,深度学习,卷积神经网络,优化 南京大学本科生毕业论文(设计、作品)英文摘要THESIS: Pedestrian Detection from Traditional Method to Deep Learning DEPARTMENT: Department of Computer Science and TechnologySPECIALIZATION: Computer Science and TechnologyUNDERGRADUATE: Zhuomin ZhangMENTOR: Dr. Yinghuan Shi & Prof. Yang Gao ABSTRACT: Pedestrian detection is a popular research topic due to its paramount importance for a number of applications, especially in the fields of automotive, surveillance and robotics. In the last few years, deep learning and in particular convolutional neural networks emerged as the state of the art in terms of accuracy for a number of computer vision tasks such as image classification, object detection and segmentation, often outperforming the previous gold standards by a large margin. In this paper, we firstly test the performance of a representative traditional pedestrian detection method, which uses Histogram of Oriented Gradient as features and Support vector Machine as classifier. Then we propose a pedestrian detection system based on deep learning, adapting a general-purpose convolutional network to the task at hand. By thoroughly analyzing and optimizing each step of the detection pipeline we propose an architecture that outperforms traditional methods, achieving a task accuracy close to that of state-of-the-art approaches, while requiring a low computational time. KEY WORDS: Pedestrian Detection, Histogram of Oriented Gradient, Deep Learning, Convolutional Neural Networks, Optimization目录第一章 绪论1 1.1 研究背景及意义11.2 研究现状2 1.3 深度学习及其进展31.4 本文主要工作41.5 论文结构安排4第二章 行人检测综述52.1 行人检测基本框架52.2 从传统方法到深度学习6第三章 基于传统方法的行人检测83.1 滑动窗口83.2 梯度方向直方图93.3 支持向量机113.4 基于HOG和SVM的行人检测算法总结12第四章 基于深度学习的行人检测134.1 神经网络134.1 深度神经网络154.2 卷积神经网络174.3 优化18第五章 实验过程与结果235.1 传统方法235.2 改进的深度卷积神经网络24第六章 总结与期望306.1 本文总结306.2 期望30致谢31参考文献32第一章 绪论1.1研究背景及意义我们正处在一个科技高度发达的时代,让机器代替人力已经成为未来发展的必然趋势。赋予计算机自动解释场景中的视觉内容并对其作出反应的能力正是人工智能和计算机视觉领域所关注的核心问题, 其中,行人检测也是最具挑战性的问题之一。行人检测简单来说就是从给定的图像或者视频序列中找出出现的行人,有时还需要统计行人的个数并给出行人的具体位置。其在以下几个领域有着巨大的发展前景。1. 视频监控监控探头已经遍布于大街小巷,其在保护人民生命财产安全,掌握犯罪证据,还原事实真相方面做出了巨大的贡献。但是,目前最普遍的监控形式还是相关安保人员通过计算机上呈现出的从监控探头反馈回的实时监控画面,来判断有无可疑情况发生。这种监控形式往往需要依赖于相关人员24小时不停歇地观察数十个监控画面,考虑到人的有限精力,往往会导致某些重要信息的遗漏。如果计算机可以自动地检测到画面的的行人,甚至可以识别出行人的动作,行为,或者可以进行实时的人群密度监控,这将在减少人力负担的情况下大大提升监控系统的效率。2. 自动驾驶为了提升驾驶安全指数,一种解决方案就是让汽车具备根据前方路况作出驾驶判断的能力。自动检测行人也是实现自动驾驶的必要条件。通过先进的智能识别系统,它将判断前面的物体是正常行驶的汽车还是横穿马路的行人,相当于汽车本身可以为驾驶员保驾护航,从而可以在一定程度上保证各式道路使用指的安全。3. 智能机器人 在一些人力所不能及的场景中,例如地震后坍塌的建筑物中的被困人员搜救,坠落于海底的飞机打捞,智能机器人却可以大显身手。赋予机器人与人类一样的视觉能力,它们不仅可以参与到各种灾后的各种搜救工作中,在日常生活和军事侦察方面都可以帮助减轻人力负担,帮助完成各项复杂任务。同时,行人跟踪,人群密度分析,步态分析等都是建立在行人检测基础上的衍生研究领域,所以在行人检测领域的研究不仅在视频监控,辅助驾驶,智能机器人等应用领域有重要的意义,同时也对其他领域的研究有着巨大的推动作用25。1.2 研究现状在过去的数十年中,随着计算机硬件系统的不断强大和对视觉处理机制理解的不断加深,行人检测系统在效率和精度方面的到了显著的提升。行人检测的算法研究主要可以分为两类,基于背景建模和基于统计特征的方法。背景建模方法的基本思路就是将图像中的背景照出来,然后将原图与背景图做对比来找到前景中的行人,典型的算法就是帧差法。而基于统计特征的方法往往依赖于大量的训练数据,从中提取出统计特征然后利用这些特征训练分类器,这里接下来主要对这种方法做一详细介绍。2003年, Viola和Jones1将盒式滤波器应用于行人检测系统,该系统利用积分图可以有效地进行行人检测,将利用盒型滤波窗口卷积后提取到的特征送入分类器2。2005年,Dalal和Triggs3细化了这一过程,提出了将方向梯度直方图(Histogram of Gradient)作为局部图像特征输入到线性支持向量机(Linear Support Vector Machine)中来识别包含行人的区域,方向梯度直方图特征成为后续其他更复杂算法的基础。Felzenswalb等人4之后又将可变部件模型和方向梯度直方图结合起来,提高了行人识别的准确率。具体来说,该方法将人体视为其各个部件例如头,躯干等的可变形组合。因为身体的各个部分从外观上来看具有独特的特征,因此可以通过提取HOG特征来有效识别出各个部分从而进一步识别出人体。在人体形状和姿态多样化及部分遮挡的情况下,这一模型展现出了良好的性能因而大大提高了系统的鲁棒性。Dollr等人5于2009年又提出了一种可以从多个不同的通道来提取特征的算法。每个通道被定义为一个输入图像的线性或非线性变换,因而可以捕捉到图像的不同局部特性,如角,边缘,强度和颜色等。除了大幅度改善了从图像中提取到的视觉特征的质量,相关研究在减少计算复杂度方面也取得了显著的成果。通过快速的尺度空间近似算法,HOG特征的计算速度被大幅度提高,从而可以在不同的尺度上有效地估算局部梯度,由此引出了聚合通道特征(Aggregated Channel Features)6。ACF通过结合HOG特征和多通道特征来更丰富地表示视觉信息,从而提升了行人检测系统的整体性能。2014年,Nam等人7观察得到ACF利用了进行正交分割的Boosting分类器,例如基于一个单一的元素特征进行分割,与之相反,他们随后提出了线性组合不同的特征通道,以便删除数据的相关性从而可以让分类器执行斜拆分。这种方法引出了局部无关通道特征(Locally Decorrelated Channel Features)并且大大改善了分类器的性能。1.3 深度学习及其发展深度神经网络的出现在人工智能和机器学习领域掀起了一场革命,也由此在不同的子领域例如图像理解,音频分析和自然语言处理等引发出了新的评价基准25。自1990以来,随着并行计算设备和各种高效的训练算法的出现,关于深度神经网络的研究成果遍地花开。特别的,在图像分类,人脸识别,目标检测等领域,卷积神经网络(Convolutional Neural Networks)的研究取得了一系列世界顶尖的实验结果。在过去的几年中,研究人员纷纷尝试将卷积神经网络应用到行人检测这个领域中来。大部分的行人检测模型采用了一个相同的算法框架。首先利用滑动窗口或者其他更复杂的区域选择算法来选定图像中的目标区域,随后设计相关算发提取这一区域中的特征,之后通过已经训练好的分类器可以高效地完成行人识别这一任务。1995年,LeCun等人8率先将卷积神经网络用于检测行人并且提出一种无监督的深度学习方法。随后,Ouyang等人9又将可变部件模型与一系列随机的神经网络和限制波尔兹曼机进行结合,由此产生了在提升系统区分能力的同时还能保留形变部分模型优势的深度堆栈神经网络。这一模型在在后续的研究中被证明可以在高效地提取特征的同时还能处理部分形变和遮挡的复杂情况。2015年, Hosang等人10又提出了一种有监督的深度学习方法,通过改进一个专门为图片分类所设计的神经网络,来进行行人检测。这种方法大幅度改进了基于手工提取特征例如LDCF的方法的识别准确率。1.4本文主要工作通过对上述相关工作的调研,本文的工作建立在Dalal和Hosang等人的研究成果上,仔细分析了所设计出的行人检测的框架及算法,并且进行了一系列的算法优化,随后通过实验进行验证,具体包括:1. 利用Visual Studio2003和OpenCV2.4.9编写代码实现了滑动窗口算法,方向梯度直方图与支持向量机结合的行人检测算法,并且分析了这种算法的优缺点。2. 介绍了行人检测通用框架中的几个步骤目标区域提取,特征提取,分类器设计,并对每一个步骤提出了可能的改进方案。3. 采用以LDCF算法进行区域选择与利用AlexNet卷积神经网络来提取特征相结合的模型,并对对行人检测通用框架中的几个步骤进行优化后,提出了一种改进的基于深度卷积神经网络的行人检测系统,最后进行实验验证了此系统的高效性。1.5本文组织结构论文共分为六个章节第一章为绪论,通过分析行人检测的研究意义和现状,勾勒出对于行人检测领域的大体印象,并扼要展示了本文所做的相关工作。第二章为相关工作,展示了行人检测的普适性的基本框架,详细介绍了每一步骤的具体操作,并且系统分析了传统统计学习和机器学习方法与深度学习之间的异同。第三章从算法设计角度介绍了一种典型的传统行人检测算法,并给出了实现的具体流程。第四章介绍了本文的重点,也就是基于深度学习的卷积神经网络,从三个方面提出了卷积神经网络优化算法。第五章分别展示了利用HOG与SVM和利用改进后的卷积神经网络来进行图片中的行人检测的实验过程和结果,并且与现有的行人检测算法进行了比较。第六章为总结与期望。第二章 相关工作本章重点介绍了行人检测通用框架中的三个基本步骤,随后展示了从传统机器学习方法到浅层学习再到深度学习的行人检测算法的发展,并且从人脑视觉机制出发介绍了深度学习的根本优势所在。2.1 行人检测基本框架在过去的数十年研究中,许多应用在商业和军事领域的行人检测方法大量涌现。虽然从原始数据中提取视觉特征和识别行人的方法不尽相同,但是这些行人检测方法有着基本相同的运行框架。虽然输出包含着对应于检测出的行人的不同大小的矩形框,但是输入的原始数据都是图像的像素表示。这个通用的框架主要包含三个阶段,目标区域的选取,特征的提取和分类器的训练及设计,如图2-1所示。提取视觉特征目标区域分类选取目标区域 滑动窗口 HOG AdaBoost 选择性搜索 深度神经网络 SVM . . . 图2-1 行人检测基本框架对于第一个阶段,是从整幅图像或者视频序列的某一帧中选取目标区域,即图像中可能包含人形的部分。这一阶段的输出是一系列选取出的区域,这些区域的维度和比例可能不尽相同。滑动窗口是一种常用简单的目标区域选择算法,它可以选取出不同尺度和长宽比例的目标区域。还有一些更复杂的方法通过分析图像内容来筛掉不包含行人的区域或者非显著区域,从而来减少向第二阶段输入的目标区域的个数。似物性采样11,选择性搜索12,类别独立的目标提取13均属于这种算法。这些算法的应用也不局限于行人检测,但是还是有很多为行人检测量身打造的高效的算法,旨在保留尽可能多的正例(包含行人的区域)的同时,丢掉尽可能多的负例(不包含行人的区域)。在这一阶段,这些区域选择算法的作用类似于过滤器,减少向下一阶段输入的区域个数从而减轻系统的整体计算负担。在特征提取阶段,有许多在第一章提到的方法可供选择。这些方法处理数据的过程不尽相同并且利用了不同的视觉特征,利如局部强度对比,混合梯度和对输入数据的多种非线性变换。这一阶段的输入是在上一阶段被提取出的目标区域,也就是图像上可能包含行人的区域;而输出就是提取到的特征向量,可能是一系列实数值或者二进制序列。这些特征向量是对目标区域视觉特征的压缩表示。最后的分类阶段的主要任务是训练好一个分类器可以识别出包含行人的目标区域,也就是判断该区域是否属于行人类。分类器的输入是目标区域的特征向量,输出一般是一个可取正负值的标签用来指明该区域是否为正例,即是否包含行人。比较常用的分类方法是支持向量机和AdaBoost分类器。在一些基于卷积神经网络的方法中常使用基于合页和交叉熵损失函数的分类器。2.2 从传统方法到深度学习近年来,随着ImageNet等大规模图像识别数据库的出现以及图形处理器和并行处理设备的高速发展,有关深度学系的研究工作进行得如火如荼,并且产生了相当多具有实际应用价值的工业产品。1980年代末期,研究表明通过反向传播算法算法的训练可以让人工神经网络从样本数据中主动地学习出统计规律,实验结果表明无论是其提取出的特征的鲁棒性还是最终识别的准确率都远远优于基于人工规则的传统方法。但是由于硬件条件的计算能力和存储能力不强,当时的神经网络只是一个仅包含有一个隐层的浅层模型。之后随着研究的进一步深入,出现的支持向量机和提升方法(boosting)对整个机器学习领域产生了深远影响。2006年,Hinton和Salakhutdinov14发表论文称包含多个隐层的神经网络可以更准确地提取特征,同时提出了逐层初始化的训练方法,由此拉开了深度学习的帷幕。深度学习能够收到广泛关注的原因在于其提取特征的鲁棒性。本文从人脑视觉机制出发来分析深度学习的优势所在:人类之所以可以看见并理解周围事物最主要应该归功于人类的大脑中用于视觉处理的部件,而不是眼睛本身。所以视觉从表面看虽然发生在进行信息采集的眼睛处,但大脑才是它真正呈现意义的地方。因此如果我们希望能教会机器像我们一样看见并理解事物:识别物品、辨别不同的人、推断人体的姿势、理解语言和视频图像中的语义内容,不妨建立起一个模型使其类似于大脑神经的视觉处理机制。从算法角度:CNN的核心思想就是自动学习一个利用一系列简单的操作,例如滤波,局部对比规范化,非线性激活,局部池化等,从输入的像素表示中提取视觉特征的复杂模型。而传统的学习方法使用的是人工手动提取的特征,也就是说,这些特征的提取是基于人类的直觉和对原始数据的理解。例如,Viola和Jones的研究中所提取的特征来自对行人人形的观察,一般情况下,在人体轮廓处像素的密度会发生突变。相反,CNN并不利用人类直觉而是依赖于大量的训练数据集以及基于反向传播和优化算法的训练过程。训练过程旨在学习神经网络和分类器的参数,以便可以从原始的图像信息中提取视觉特征并能进行恰当的分类。神经网络的第一层一般可以提取出低层信息,例如边缘信息一些简单的纹理特征,第二层可以识别出更细化的纹理。后续的层可以结合低层特征来识别出更复杂的视觉信息。除了学习专门的特征,在神经网络的最后一层还要定义一个分类器。在行人检测领域,最后一层一般情况下只包含一个神经元,作用相当于一个二分类器来判断输入的目标区域是否包含行人。从数据角度:人类的眼睛可以被看作是生物照相机,通过不断为周围的事物拍摄照片而进行学习,这种训练照片的数量是非常大的。所以,与其孤立地关注于算法的优化、再优化,将关注点放在给算法提供像婴儿们那样从经验中获得的质量和数量都极其惊人的训练照片也是深度学习成功的原因之一。尽管神经网络非常强大高效,在模型的解释方面所做的工作仍然很不足。其次,神经网络的出色表现是建立在庞大的有标签训练数据集基础上的,但是构建一个类似于ImageNet的数据库也是一项非常艰巨且耗时巨大的工作。第三章 基于传统方法(HOG+SVM)的行人检测本章重点介绍一个典型行人检测方法,采用滑动窗口算法来进行目标区域的选取,利用方向梯度直方图来提取目标区域的特征向量,并以支持向量机作为分类器根据抽取的特征完成最后的行人检测任务。至此就完成了一个应用于二维静态图像中的简单行人检测系统。3.1滑动窗口窗口选择算法多种多样,其中滑动窗口选择算法是比较简单直接的一种,其本质就是一种暴力的穷举法。一般有两种思路,一种是固定待检测图像的大小,然后调整滑动窗口的尺度遍历图像,另一种是滑动窗口的大小不变,然后对图像进行缩放后遍历。第一种思路的过程如图3-1所示。这里以Caltech行人数据库中的一帧图像为例说明滑动窗口算法的具体过程:1. 图像的大小为640*480,设置初始滑动窗口的大小为40*20,步长为22. 按照上述参数,遍历完整张图像需要(640-40)/2+1*(480-20)/2+1=69531次滑动3. 之后按1:1.2放大滑动窗口,即按48*24的窗口大小遍历图像,滑动次数的计算方法如二所示。4. 在窗口大小达到某一设定的阈值时停止放大,例如当超过300*150时不再放大。5. 上述只考虑了窗口长宽比固定为2:1的情况,可以调整长宽比后重复上述步骤。6. 将提取出的所有窗口送入第二三阶段提取特征并分类。虽然这种算法不会漏选任何一个可能的窗口,但是会提取到大量冗余窗口,导致目标提取过程耗时较长。同时会大大提升分类时的误检率,影响实验结果准确率。但是综合来看,滑动窗口选择算法操作简便,原理简单易实现,因此成为了目标检测领域最通用流行的算法之一。 图3-1 滑动窗口选择算法示意图3.2 梯度方向直方图梯度直方图是通过统计在密度网中图像局部梯度大小和方向来提取特征的。使用HOG特征的理论基础是:即使没有关于物体梯度和边缘位置的精确值,但是其外表和形状能由局部梯度和边缘方向的分布来判断。具体来说,首先将输入图像划分为若干个小的空间区域(细胞),对于细胞内的每一个像素点统计其梯度方向或边缘方向的直方图。将这些直方图串联结合起来最终的HOG特征表示。为了降低光照强度对特征提取过程的影响,可以在进行特征提取前先进行归一化处理,可以通过合并为更大的空间块来实现,图3-2展示了提取HOG特征的具体流程。得到整幅图像的HOG特征得到整幅图像的HOG特征统计细胞内的方向梯度直方图得到图像的HOG特征计算细胞内方向梯度直方图得到整个窗口的HOG特征计算块内方向梯度直方图计算细胞内梯度方向直方图Gamma校正输入图像图3-2 HOG特征提取过程其具体计算公式如下所示:1. 灰度化转换为灰度图常用的有以下三种公式,本文采用第二种公式。2. Gamma矫正3.计算每个像素的梯度H代表该处的像素值, ,代表x,y 方向上的梯度,即得:则(x,y)处的梯度为:4. 构建细胞方向直方图分类器需要的是输入是数据而非图像,因此需要对目标区域进行编码,首先将图像划分为适当数量的细胞。然后按照划分成块的梯度方向(一般20度为一块)进行对应的投影加权该得到此细胞的9维向量。5. 合并为块把相邻的细胞单元按照需要组合成适当大小的块。该块的方向梯度直方图是由其包含的细胞的特征向量串联得到的,而这一图像的方向梯度直方图即为这些块的HOG特征集合。3.3 支持向量机支持向量机15不仅拥有强大的理论基础,并且在很多应用领域取得了显著的成果,比如手写数字识别,目标检测和文本分类等。把SVM看作是一个二分类器,对于某一维度空间中给定的训练集合和相应标签,SVM的目的就是找到一个可以使间隔最大的超平面来进行分类。位于超平面两侧的向量的标签分别为1和1。两侧离超平面最近的向量被称为支持向量。支持向量机可以通过Mercer核函数将空间中的原始训练数据映射到更高维的空间中。以线性二分类为例: 图3-3 二分类支持向量机示例如图3-3,实线两边代表两类不同的待区分的目标。即为所求的超平面。需要按照以下步骤求得:1. 首先定义函数间隔其中为x是样本向量,y为其实际类别,w为带求解超平面参数。2. 得到超平面(w,b)利用几何间隔的概念来进行求解。X0为投影点,w为法向量,有将带入得:定义几何间隔的定义为(r=1)由此,目标函数为:通过求解这个最优化问题,可以求得w,b的值,由此就可以得到产生最大间隔的超平面。3.4 基于HOG和SVM的行人检测算法总结因此,行人检测的具体流程如图3-4所示:提取HOG特征分类器模型训练SVM提取正负例窗口训练集输入判别结果SVM分类提取HOG特征滑动窗口提取窗口测试集输入 图3-4基于HOG与SVM的行人检测流程图具体流程如下:1. 从原始图像上提取出恰当数量的正例和负例。2. 自己编写代码或者直接利用OpenCV中提供的接口提取方向梯度直方图特征。3. 采用有监督学习的方法训练分类器。4. 选择恰当的目标区域提取算法得到测试图像上的候选区域。5. 统计这些区域的方向梯度直方图。6. 利用训练好的分类器识别行人。第四章 基于深度学习的行人检测行人检测在方向梯度直方图特征提出之后围绕其进行的相关研究一直饱受关注。但是当光照不足、人体形态变化大、背景复杂等情况出现时,利用HOG特征的检测效果都不尽如人意。相比之下,使用深度学习网络提取特征在图像识别中取得的效果已经远优于传统方法。本章基于深度学习的理论基础,设计改进了基于卷积神经网络模型的行人检测方法。4.1 神经网络1.神经网络基本结构图4-1所示为最简单的神经网络结构,即仅包含一个节点的神经网络: 图4-1 单个神经元示意图这个节点的输入为及截距+1,其经过激活运算后的输出为,激活函数为,常用为如下两种:d:将多个节点按层与层之间相互连接即可形成一个神经网络,将低层的输出作为高层的输入。例如,图4-2就是一个简单的神经网络:架构 图4-2 神经网络框架这个神经网络的计算步骤如下:其中是各层各单元之间的参数,是每个节点对应的截距, 是节点对应的激活值。2. 神经网络训练方法使用迭代的算法来训练整个神经网络,按照随机算法初始化各个参数,得到当前网络输出,然后利用网络输出和实际值之间的差值来反馈训练各层的参数,直到收敛,这个方法被称为反向传播。具体步骤如下:1)对输出层(第层),计算:其中 表示此节点的输入加权和(包括偏置单元),(x,y)为一组训练数据,y为x对应的标签。3)对于的各层,计算:4)计算需要的偏导数值,也就是梯度:5) 计算: 。6)更新权重参数直至收敛:4.2深度神经网络1. 深度神经网络基本框架深度神经网络是一种含有多隐层的网络结构,可大致描述为以下几个过程:将输入的原始数据经过各层网络的自主学习得到对应于各层的特征,高层特征其实就是低层特征的抽象表示,然后利用训练好的网络结构和顶层的分类器来进行最终的分类识别任务。如图4-3所示,深度即意味含多个隐层。 图4-3 深度神经网络结构 2. 深度神经网络的训练过程和浅层模型例如支持向量机相比,在深度学习框架下训练深层网络来学习分层特征更为困难。仅仅使用反向传播训练含有多隐层的网络难以取得理想的效果,原因有二,其一是增加了深度意味着增加了找不到非凸损失的局部最小值的概率,其二是由于梯度扩散现象使得较低层比较高层更难训练。为了解决这一问题,Hinton提出了一种分层训练深度神经网络的方法。前一阶段是自底层至高层的非监督学习,后一阶段是由高层至底层的监督学习。无监督学习只是学习数据本质的特征信息,由于每次只训练一层会产生误差,且逐层传递,为了修正这些误差加入有监督训练,图4-4所示即为训练示意图。 图4-4深度学习训练过程该训练方法分为两步:首先逐层构建神经元,训练单层网络,利用上一层网络参数处理信息传递给下一层,训练下一层网络参数;之后当所有层训练完成后,进行调优。设置层间权值为双向使神将网络变为图模型,向上的权值代表值学习认知过程,向下的权值用来生成识别,使上下过程保持一致,就可以使最终学习到的顶层特征和原始输入数据的相关性尽可能高。如图4-5所示为多层图模型。 图4-5 Hinton提出的深度神经网络训练过程4.2卷积神经网络卷积神经网络的结构中包含有若干个卷积层和抽样层。卷积神经网络有三个比较重要的特性,分别是隐层节点的部分连接,参数共享以及池化和抽样。1.局部连接每一个隐层的节点只和输入图像的部分子区域相联,这种隐层节点的局部连接有两项优势:首先因为每个节点不用与整幅输入图像相连,从而减少了计算隐层节点激活函数的复杂性;其次,因为减少了需要存储的层与层间的权重,机器的存储负担明显降低。2. 参数共享参数共享意味着CNN中的隐层节点被组织为特征图并且每一个特征图共享同一组参数。图展示了属于同一个特征图中的节点覆盖了图像的不同部分。这些特征图是通过离散的卷积运算得到的。在一个卷积层,大小为NxN的输入图像经过mxm大小的卷积核卷积后即可得到一副特征图,该图的大小为(Nm1)x(Nm1)。这一特性也能帮助大幅度地减少参数个数。并且,每一幅特征图会抽取出输入图像每一部分的相同特征,因为每一幅特征图使用相同的卷积核。3.池化和抽样在池化层,经过池化操作后可以减小图像矩阵的大小。需要注意的是,池化操作进行在非重叠的临域内。有两种典型的池化操作,分别计算一幅特征图上临域内的最大值和平均值。进行池化操作有两个优点,首先,他减少了后续层中的隐层节点数量,其次,它可以产生局部变换的不变性, 这意味着池化操作前后,局部临域的性质保持不变。本文在接下来的优化和实验中使用AlexNet网络,如图4-6所示: 图4-6 AlexNet卷积神经网络结构图该卷积神经网络包含五个部分连接的卷积层和两个全连接层。该网络采用双GPU的训练模式来加快训练速度。AlexNet网络要求输入的图像大小为224x224。第一次使用96个55大小的卷积核卷积,然后利用2x2的核进行最大池化。第二次使用259个大小为33卷积核进行卷积,同样使用2x2的核进行最大池化。第三层与第二层是全连接,使用394个3*3的卷积核。第四层上使用33的卷积核384个,并且与上一层连接没有经过池化。第五层使用256个33的卷积核,同样在2x2的邻域内进行最大池化,随后将这一层的输出作为之后全连接层的输入,输入为4096维。之后的全连接层依旧为4096维。顶层的Softmax分类器会产生1000维的输出,每一维代表一个类别,其值为属于该类别的概率。4.3 优化行人检测通用算法在深度学习领域,一些看似无关紧要的细枝末节其实在很大程度上影响着实验结果的准确性。通过仔细分析和优化行人检测的几个阶段,本文试图通过每一步上微小的改变来提高系统的整体性能。1. 区域选择这一个过程的算法选择对计算的效率和任务的准确性至关重要。一方面,如果能有效地删除掉尽可能多的负例,那么向下一阶段输送的窗口数量将最多减少三个数量级,这将有效地减轻一个计算密集型的神经网络在特征提取时的工作负荷。另一方面,这一区域选择算法应该保留尽可能多的正例,这将影响着整个系统的学习质量和检测准确率。滑动窗口:是选取目标窗口最常用的算法。依据给定步长滑动窗口在整幅图像的水平和垂直方向上进行滑动扫描。为了保证图像中行人的尺度无关性,不同尺度的目标区域均可以被提取出。一方面这种算法不会删除掉任何一个正例,但另一方面会产生大量冗余的区域,极大地增加了特征提取和分类阶段的计算负担。选择性搜索16:该算法较滑动窗口算法相比应用更广泛,因为它不局限于仅包含单一种类目标的区域提取,他可以同时提取出可能包含任何种类目标的区域。已经实现了该算法与卷积神经网络的融和以用来进行目标识别。该算法相当于一个粗糙的过滤器删掉尽可能多的负例从而在很大程度上减轻系统的计算负担。局部无关通道特征:这是一个专门应用于行人检测的算法,虽然这个算法在应用于行人检测时已经取得了很好的效果,本文将LDCF作为目标区域选取算法与神经网络相结合,进一步提升了基于LDCF的行人检测系统的性能。特别的是,LDCF算法的输出结果是一系列带有置信度的区域。一个区域的置信度越高,该区域越有可能包含行人。设定一个恰当的置信度阈值可以很好地平衡系统的计算负担和准确率。2.微调学习深度卷积神经网络需要庞大的标注过的训练数据集才能学习好这个神经网络中包含着的数百万个参数。这些年来,在目标检测领域,这些训练过程往往依赖于ImageNet数据集。这个数据集包含了大约120万张图片,图片上的每个目标都用相应的矩形框进行了标注,标签对应着大约1000个不同的目标类。在行人检测领域,ImageNet上标注的训练集却达不到这么大的容量,但尽管如此,许多在ImageNet数据集上训练得到的复杂模型都被证明在除了目标分类的其他应用中有很好的表现。实际上,从这些网络的第一层抽取出的特征包含了虽然简单但是重要的视觉信息,这些信息具有良好的通用性,所以适用于各种各样的任务中17。在这种情况下往往要进行一个微调的过程来调整参数来使卷积神经网络适用于新任务。首先进行实验观察了imagenet上训练出的CNN目标检测的效果,随后利用了一个包含有正例负例的标注好的训练数据集(Caltech行人数据库)通过上文介绍过的分层反馈传播算法来微调这些CNN和分类器的参数,最终使其在行人检测任务上也取得了非常好的实验结果。3. 数据预处理在训练过程中,进行数据预处理可以有效地提高系统的鲁棒性和实验结果的准确性,可以在第一阶段目标区域选取时进行如下的预处理操作:扩充: 在训练数据集中,矩形框都可以准确地给人体划定界限,但是在测试过程中,目标区域提取阶段所限定的矩形框往往是不精确的,也就是不能正确地划定人体所在的区域,如图4-7所示。为了解决这一问题,本文决定人为扩充提取的目标区域。本文采用如下的过程来确定每个区域应该进行扩充的大小:1)执行目标区域提取算法得到候选的矩形框。2)对于属于训练集并且有正确的标签的矩形框,找到其对应于训练集中的矩形框,按其大小进行扩充。3)为扩充的区域建立直方图。因为直方图符合近似高斯分布,其平均值可以被用来作为后续扩充量的标准参考。4)为了进一步增加模型的鲁棒性,还要从扩充的区域中进行几次任意的切割,将切割后的区域也送到CNN中进行训练,以模拟目标区域选择的不确定性。 图4-7 左图为精确的矩形框,右图为不精确的矩形框负样本去相关:上文中已经提到,CNN的训练过程需要同时利用标注过的正例和负例。对于正例,它们来自于训练数据集包含行人的标注过的矩形框,但是训练数据集一般并不直接提供负例。所以需要根据不同的标准从已知的视觉信息中将它们抽样取出。本文基于颜色直方图18提出了一种贪心算法来尽可能多样性地选择负的训练样本。让来表示对应样本区域的图像块,其中M,N和P分别代表着图像的行数,列数和图像的深度(例如,P=3代表三色图像,P=1代表灰度图像)。对所有通道中的像素密度值进行标准量化,量化的步长等于。可以采用如下公式进行标准量化:这一操作结束后能得到每一个像素点(m,n)对应的量化颜色向量。对于三色图像,是一个三维向量,对应着RGB这三个通道。然后计算出这些量化颜色向量的直方图,这个直方图指出了量化图像中各个可能的量化颜色向量出现的次数。图4-8是一个RGB颜色直方图的视觉表示,这个直方图随后被规范化于L2范式,所以这个规范化的直方图可以大致描绘改区域中的量化颜色向量的概率分布。 图4-9 左图为原始图像,右图为该图的RGB颜色直方图, 图中球体的半径指明该颜色出现的次数随后,定义K为需要被提取出的负例个数,负例选择算法的具体步骤如下:1)从训练数据集中,任意选取N个不包含行人的区域,也就是说,这些区域和表示的矩形框不能重叠。2)计算这些负样本的颜色直方图,并讲颜色直方图规范化以获得颜色概率分布。3)计算每一对负例的累积颜色概率分布间的欧式距离。4)挑选出和其他负例间欧氏距离的平均值最大的负例并将其选出。5)重复步骤四,选出K个区域后结束。3. 区域打分上文中已经提到了,一个区域选择算法应该为后续的特征提取和分类操作提供一系列目标区域。特别的是,有一种区域选择算法例如LDCF会得到一系列带有置信度的目标区域,指明了这一区域包含有行人的概率。这些置信度可以被看作评价的分数来选择输送到神经网络的区域。在这种情况下,当区域的分数高于某一阈值的时候可以被输送给后续阶段。同时除了承担区域选择的功能外,这些分数还可以作为在分类器判断是否有行人时附加的特征。在某种意义上来说,区域选择算法得到的这些分数和经过神经网络提取到的特征可以并行地被使用在分类阶段,从而提高系统的准确率。第五章 实验过程及结果 本章首先进行实验验证了传统的HOG与SVM结合的行人检测方法在INRIA数据库上的表现,之后将改进后的AlexNet 网络经过Caltech行人数据集微调后与LDCF区域选择算法结合构成专门应用于行人检测的改进系统,并在Caltech行人数据集上进行实验观察了这一系统表现,最后比较了改进后的AlexNet-Pedestrian网络与其他流行算法之间的准确率。5.1 传统方法本文使用INRIA数据库对HOG与SVM结合的行人检测算法进行了验证,该数据库包含以下数据:614张图像大小约为2592x1944的包含行人的数据集,1218张图像大小各异的不包含行人的数据集和2416张大小为96x160的正例集合。并且,在该数据库中,包含姿势各异的行人,并且光照条件和背景各异。具体实验条件和参数如下:1. 在实验中,全部2416个正样本被裁减为64x128大小的正例,负例是从每张不包含行人的原始图像中任意选取出10张大小为64 x128的图像,总共12180张。这些正负例将作为输入训练模型。2. 训练阶段:按照第三章中介绍的HOG特征提取方法提取测试样例中的HOG特征,随后利用集成在OpenCv中CvSVM接口和取得的特征训练SVM分类器(也可以选用LibSVM效果更好),训练好的SVM分类器会将参数保存为XML文件用于测试阶段的分类。3. 测试阶段:调用滑动窗口区域选择算法选出目标区域,利用训练阶段得到了HOG描述子和svm相关参数进行多尺度行人检测4. 值得注意的是,如果想要减少误检率,可以将首次训练后误检为行人的矩形框加入到训练样本中。通过简单的实验,易看出在环境简单,行人姿势不复杂时,该方法可以较准确地检测出行人(如图5-1a)。相反,当环境复杂时如(图5-1b)就很难将整幅图像中所有的行人都准确地检测出。图5-1a,行人检测效果(简单) 图5-1b,行人检测效果(复杂)5.2 改进的深度卷积神经网络本文进行了相关的实验来评价行人检测系统的表现,并且着重介绍了上一章中提出的改进算法对系统整体性能的影响。1. 数据集本文在加州理工学院提供的行人数据集(Caltech Pedestrian Dataset)上进行了相关的实验。这是一个被广泛接受,大规模的数据集,也是被用来进行行人检测算法结果评价的标准数据集19。此数据集包含了长达大约10小时的视频序列,这些视频序列是在正常天气条件下,在正常的城市交通状况下,由机动车上的车载摄像头所拍摄得到的。该视频序列平均每秒包含30帧(30FPS),每一帧图像的分辨率为640x480。其中,大约25万帧,也就是大约137分钟的视频序列被人为手动地标注了大约35万个矩形框,对应着2300个不同的行人。这些注解包括同一行人在不同帧间的短暂对应和一些遮挡信息,例如可见区域和行人人体的全部范围。大约50%的帧不包含任何一个行人,大约30%的帧包含两个及以上的行人。平均下来,每5秒钟会出现一个行人。同时,该数据集上提供了一个通用的评价机制可以用来直接比较和分析不同算法的表现。该数据集分为11个部分,前六个部分用作训练集,后五个部分被用作测试集。为了避免使用相连的帧,从每30帧中随机抽样选出一幅图像来组合成为测试集,从没3帧中抽样选出1帧来用作训练集。这种评价机制由Hosang提出。表5-1展示了部分训练集和测试集的数据信息。 表1 Caltech Pedestrian数据集的统计信息数据集标号图片张数正例个数训练集01234585593619741079767328789072322903588302312351394测试集6789101155746657738728903129735255

温馨提示

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

评论

0/150

提交评论