基于嵌入式平台的人脸检测系统设计与实现毕业论文
2020-04-08 14:26:01
摘 要
随着计算机科学、人工智能、图像处理等学科的飞速发展,人脸检测研究得到了各方面的重视,已经取得了一定的成果。但是就目前来看,人脸检测系统大多仍然基于PC架构。由于其体积较大,缺乏便携性、机动性,无法自如的应用于一些特殊场合。在实际要求的背景下,人们对人脸检测系统提出了新的更高的要求。所以,基于嵌入式平台的人脸检测研究具有广阔的发展前景和很强的现实意义。在这一系列原因之下,本文设计且实现了一个基于嵌入式平台,通过应用OpenCV函数库的人脸检测系统。该系统采用搭载S3C6410处理器的OK6410-A开发板,基于Linux操作系统,采用基于Haar矩形特征的AdaBoost级联人脸检测算法进行人脸检测。本文首先对人脸检测的研究现状做了充分的分析,然后对基于Haar矩形特征的AdaBoost算法做了详细讲解。以此为基础,本文对人脸检测系统进行了设计,在PC端和嵌入式平台分别如何搭建环境、实现人脸检测都给出了详细的介绍。经测试,基于嵌入式平台的人脸检测系统能够克服传统人脸检测系统在其便携性和机动性的缺陷,能够正确高效的检测出人脸。
关键词:AdaBoost 人脸检测 嵌入式 OpenCV
Abstract
With the rapid development of computer science, artificial intelligence, image processing and other disciplines, the research on face detection has received attention from various fields and has achieved certain results. However, for now, most face detection systems are still based on the PC architecture. Due to its large size, lack of portability and mobility, it cannot be easily applied to some special occasions. In the context of actual requirements, people have put forward new and higher requirements for face detection systems. Therefore, the face detection research based on embedded platform has broad prospects for development and has a strong practical significance. In this series of reasons, this paper designs and implements a face detection system based on embedded platform and OpenCV function library. The system adopts OK6410-A development board equipped with S3C6410 processor. Based on Linux operating system, AdaBoost cascade face detection algorithm based on Haar rectangle feature is used for face detection. This paper first analyzes the research status of face detection, and then explains the AdaBoost algorithm based on the Haar rectangle feature. Based on this, this paper designs the face detection system, and gives a detailed introduction on how to build environment and realize face detection on PC and embedded platforms respectively. After testing, the face detection system based on the embedded platform can overcome the defects of the traditional face detection system in its portability and mobility, and can detect the face correctly and efficiently.
Keywords: AdaBoost Face detection Embedded OpenCV
第1章 绪论 1
1.1研究背景及意义 1
1.2国内外研究现状 2
1.3本文研究内容 3
1.4 本文章节安排 4
第2章 人脸检测算法研究及选取 5
2.1人脸检测算法的研究 5
2.1.1 经典人脸检测算法 5
2.1.2 人脸检测评价指标 6
2.2 基于Haar特征的特征提取方法 7
2.2.1 Haar特征 7
2.2.2 积分图与特征值计算 8
2.3 AdaBoost算法级联分类器设计 9
2.3.1 弱分类器和强分类器的设计 9
2.3.2 级联分类器的设计 11
2.4 级联AdaBoost算法人脸检测流程 12
2.4.1 人脸检测流程 12
2.4.2 多尺度检测方法 13
2.5本章小结 14
第3章 PC端AdaBoost人脸检测算法的实现 15
3.1 PC端Linux系统下OpenCV编译 15
3.1.1 安装Ubuntu 15
3.1.2 安装编译OpenCV 16
3.2 PC端Linux系统下Qt安装与环境配置 17
3.2.1 安装Qtcreator 17
3.2.2 在Qt配置OpenCV库 17
3.3 PC端Linux系统下AdaBoost算法实现与结果分析 18
3.3.1 代码分析 19
3.3.2 人脸检测实验结果分析 21
3.4 本章小结 21
第4章 基于ARM嵌入式平台的人脸检测系统实现 22
4.1 硬件平台选型与Linux系统搭建 22
4.1.1硬件选型 22
4.1.2 在开发板上搭建Linux系统 23
4.2 PC端OpenCV交叉编译与移植 25
4.2.1 交叉编译链的安装 25
4.2.2 OpenCV库的交叉编译与移植 26
4.3 人脸检测算法的交叉编译与移植 29
4.3.1 人脸检测算法的交叉编译 29
4.3.2 人脸检测算法在开发板上的运行及分析 30
4.4 本章小结 30
第5章 总结与展望 31
5.1 全文工作总结 31
5.2 对未来的展望 31
参考文献 32
附录 33
致谢 36
第1章 绪论
1.1研究背景及意义
随着社会的不断发展与科学技术的飞速进步,人脸识别技术已经晋升为当前研究热门方向,对视频监控、安防系统、人机交互等领域的发展起到了非常重要的促进作用。实现人脸识别等过程当然离不开人脸检测这一关键的基础环节,由于人脸检测的性能直接影响着最终的识别是否精确,所以人脸检测占据了大量的系统资源。也正因如此,设计性能优越的人脸检测算法是研究过程中必须解决的问题。
人脸检测的含义是,首先给系统任意输入一幅图像,系统通过采用一定的算法或者策略对此图像进行遍历,来判断图像中是否含有人脸[1]。当图像中含有人脸的时候,系统返回其中人脸的位置、大小。自上个世纪60至70年代开始,一些学者逐渐投入于利用计算机研究人脸检测、人脸识别技术,经过几十年孜孜不倦的不断研究,人脸检测与识别技术已经逐渐走向成熟,成为了计算机视觉领域中的研究热点之一[2]。
研究人脸检测问题最早是出于对人脸识别,最开始研究的人脸识别问题主要都是基于人脸位置已经获得或者很容易获得的前提下,主要研究的人脸图像也是无背景或者背景非常简单的情况。由此可知,最早的人脸识别主要都是基于一种较为理想的情况下进行的研究,而人脸检测问题也没有得到深入的研究。然而在实际的应用之中,人脸图像的背景往往都是非常复杂的。为了能够使人脸识别系统得到广泛的应用,首先必须从实际的复杂背景中定位检测出人脸。也正因如此,广大研究工作者开始加重对人脸检测的研究,并且人脸检测也逐步发展为一个独立的研究课题。
由于目前应用较为广泛的人脸检测方法,主要是针对于较为理想的情况,而在实际应用中由于众多复杂因素的干扰,使得人脸检测检测的精度难以达到需求,其大致有如下几点[3]。
人脸形状、姿态存在可变性的影响。人脸归属于非刚性物体,所以当一个人改变其面部的姿态表情时,其面部器官也会发生一定范围的形变。而且人脸还可以产生不同方向和角度的旋转,造成面部特征发生不同程度的丢失,这样采集到的视频图像中的人脸和训练样本中的图像出现一定的差别。除此之外,由于获取人脸图像设备的位置原因,往往处于相对较隐蔽或较高的区域,因此不容易完全的获取到正面人脸图像。再加上人脸自然条件下就可能出现不同的姿态、表情、角度。所以首先在人脸图像的获取上就存在着一定的问题。
人脸面部特征以及复杂的背景环境造成的影响。监控设备采集到的人脸图像通常会包含许多干扰因素,如光线因素、背景因素等。而且人脸图像中还可能出现与人脸轮廓类似、与人脸肤色相近的物体,对检测过程造成极大的干扰。此外,人脸面部不仅仅包括着五官特征,还有一些其他不同饰物,如眼睛、胡须等。这些因素也会对人脸面部的关键部位造成不同程度的影响,进而干扰人脸检测结果的准确性。
图像采集设备、图像采集质量的影响。不同的视频监控设备会造成获得的视频图像在分辨率、大小、色彩等方面都存在差异。因此,只有监控设备处于相对较为适应的外界环境的时候,才能得到质量较好、较为理想的人脸图像。但往往理想是丰满的,现实是骨感的,由于存在的种种因素,图像采集设备很难在实际工作中获得理想的图像。介于上述的种种困难,人脸检测在实际工作视频中存在一定的挑战。而现有的各种算法和改进模型仅对于上述的一种或几种进行了处理,并取得了一定的检测效果。但是现有的人脸检测算法又很难应对实际应用之中遇到的众多困难与挑战。因此,如何能针对于上述的几种情况提出较好的视频人脸检测算法仍是当前研究的重点,也是当前急需解决的技术难题。
此外,人脸检测和一般的物体检测存在着互通性与区别性,如果能够恰当的解决人脸检测问题,那么一般物体检测问题也迎刃而解了。因此,对于人脸检测的研究能够黑大量同类检测问题带来不同凡响的启发与推动作用。
嵌入式系统也属于一种计算机系统,需要结合机械结构或者电气系统硬件,再加上编程等技术,控制其去实现特定的功能[4]。嵌入式系统是一种能够灵活的将软硬件结合到一起,发挥特定的功效的专用计算机系统,在电脑、手机、家电、安全监控、智能交通等方面具有广泛的应用,满足其定制化需求。通过传统的PC端图像处理技术,结合嵌入式系统技术,继而产生的基于嵌入式平台的图像分析、处理技术具有广阔的发展空间与优越的应用前景。
1.2国内外研究现状
如果要完成人脸信息处理,就必然离不开他的基础项目人脸检测。人脸检测也是人脸识别、表情识别、人脸跟踪等研究项目进行的必备前提条件。研究工作者们最早于二十世纪60至70年代就着手于人脸检测工作了,早期的人脸检测的对象大多是无背景或者背景较为单一的图像[5]。因此该类型的人脸检测相对来说较为容易实现,所以人脸检测技术没有引起研究工作者足够的重视。经过研究者数十年的努力,理想状况下的人脸检测方法已经趋于成熟。
此外,由于数字通信技术、人机交互技术和人工智能技术等方向的飞速发展,国家安全、个人信息安全、金融产业、安保产业受到了越来越多的重视,人脸识别系统也不仅仅只存在于研究工作中,反而更加频繁的出现在我们的日常生活之中,例如公司考勤系统、银行识别系统、个人信息安全等。所以,研究工作者已经远远不能满足于此前的基于理想环境下的人脸检测技术了。于是研究工作者开始逐渐致力于复杂环境下的人脸检测研究。发生转折的是到了20世纪90年代,由于机器学习领域的不断突破和迅速发展,使得一些之前仅仅存在于理论上的算法得到了突破性的发展,这也极大的推动了人脸检测和人脸识别研究领域的前进。此外,由于计算机硬件也发展的很快,计算机的远算能力得到了大幅度提高,为人脸检测与人脸识别提供了硬件基础。人脸检测和人脸识别技术逐渐受到越来越多的人的重视,跨入了当下的研究热门课题行列。
由于人脸检测和人脸识别受到了各方关注和重视,因此越来越多的研究机构也开始投入于人脸检测研究。在国外如:麻省理工大学的AI实验室、卡内基梅隆大学的机器人研究所,以及美国国防部成立的FERET项目等都是比较著名的人脸检测研究机构。而往往这种大型研究项目都有军方、警方或者大公司的重视和资助,由此也促进了人脸检测领域的快速发展。国内也有许多类似的顶尖研究机构,如:清华大学计算机科学与技术系智能技术与系统国家重点实验室、中国科学院计算机技术研究所和中国科学院计算技术研究所和自动化研究所等[6]。
在众多研究工作者呕心沥血和研究机构不断努力之下,人脸检测领域的研究得到了质的飞跃,在这个领域不断涌现出了更好的检测方法,而且能够应用于实际的人脸检测问题。同时,国际上相关主题会议每年的不断召开,关于最新人脸检测算法的论文也不断发表,如IEEE的FG、ICPR、ICIP、CVPR等重要国际会议上每年都会发表大量关于人脸检测的论文。由于涌现出了许许多多新的人脸检测算法,为了能够对这些算法进行有效的评估,所以国际上的一些知名研究机构提供了专门用于研究视频人脸检测算法的数据库例如:LFW人脸库、FERET人脸库以及中科院CAS-PEAL人脸库等[7]。人脸库的出现对于各式各样的人脸检测算法都能进行有规有矩的评估,使得不同算法之间的优势差异也都具体的表现了出来。
1.3本文研究内容
经过多年的探索和研究,人脸检测技术取得了一定的成果,但是,基于PC架构的人脸检测系统占据的比例仍然较高,一定方面的约束了人脸检测系统机动性、便携性,使得我们不能在部分特殊应用场合随心所欲地采用此类系统。因此,研究嵌入式系统人脸检测,不仅具有极为明显的现实意义,而且还具有广阔的应用前景。当前,数量众多的考勤系统与门禁系统(基于嵌入式人脸检测和人脸识别)已被国内企业推出,不过,计算机硬件技术的不断发展促进了嵌入式系统的逐步普及,同样也逐步提高了嵌入式系统和嵌入式微处理器的性能,从而奠定了嵌入式人脸检测系统的基础。本文采用当下较为成熟的基于Haar矩形特征的AdaBoost算法,对此也做了较为详细的讲解。而后对PC端人脸检测向嵌入式平台的移植也给出了具体的方法,循序渐进直到出现结果。
1.4 本文章节安排
本文对基于 嵌入式平台的人脸检测系统设计与实现方法进行了深入的研究。 具体结构如下:
第1章 绪论,主要介绍了人脸检测的实际应用意义和人脸检测在实际应用中所遇到一些实际问题,分析了国内外研究现状,论述了本文的主要研究内容和论文的架构。
第2章 相关关键技术,介绍了本文采用人脸检测技术的相关算法。
第3章 PC端人脸检测的实现,介绍了PC端实现人脸检测所安装的软件和配置的信息。
第4章 OpenCV与人脸检测算法移植,对人脸检测算法及相关运行库如何向嵌入式平台移植进行了详细说明。
第5章 对全文进行总结指出本文工作的不足,并对本课题今后的发展方向做出指导和展望。
第2章 人脸检测算法研究及选取
人脸检测已经经过了数十年的不断研究和发展,其发展迅速、应用广阔的特点,使之成为当下研究的热门。所以人脸检测算法也不是一家独大,本章就人脸检测的经典算法进行介绍,并对本文选取的基于Haar矩形特征的AdaBoost算法进行详解讲解。
2.1人脸检测算法的研究
本节首先对人脸检测研究中几种较为经典的算法进行介绍,然后根据人脸检测的评价指标,选出性能较为强大的的基于AdaBoost人脸检测算法作为本文研究工作的主要算法。
2.1.1 经典人脸检测算法
人脸检测算法零零总总有许多种,下面就其中较为经典的几种算法进行介绍,即基于肤色分割的人脸检测、基于线性子空间的人脸检测、基于贝叶斯估计的人脸检测、基于人工神经网络的人脸检测以及近年来较为流行的基于AdaBoost算法的人脸检测进行简单介绍。
- 基于肤色分割的人脸检测的方法[8]。肤色是人脸的一个显著的特征,他不依赖人脸面部的细节特征,具有一定的稳定性。当改变面部表情和姿态时,对肤色基本不造成影响,而且大多情况下肤色与背景存在着一定的差异,所以可以通过肤色分割来对图像进行人脸检测。
- 基于线性子空间的人脸检测的方法[9]。该方法建立在一个用来表示人脸图像合集的线性子空间上的。首先将输入的人脸图像投影变换到一个线性子空间,然后根据输入图像在这个子空间中的分布特性来判断输入图像是否属于人脸。
- 基于贝叶斯估计的人脸检测的方法[10]。该方法是一种建立在概率模型的算法,采用贝叶斯分类器进行人脸检测,通过计算输入图像子窗口属于人脸图像的后验概率,来判别输入图像子窗口是否属于人脸图像。该方法能够在不同的分辨率下对人脸的局部特征和位置的联合概率密度进行较好的估计。
- 基于人工神经网络的人脸检测的方法[11]。人工神经网络的目的是将复杂的、难以显示描述的人脸图像的统计特性包含在人工神经网络的结构和参数之中,在人脸检测领域具有一定的契合性。Rowey等人给出了一种基于人工神经网络的人脸检测算法,该方法中包含一个三层前向的人工神经网络,其输入为20*20尺寸的图像窗口,等于输入层包含400个单元;隐层包含26个节点单元,分别与输入层的单元相连,这些节点单元被划分成对应于不同人脸图像的若干组;输出层输出值的范围为[-1,1],根据这个值来判断其输入子窗口是否为人脸。
- 基于AdaBoost算法的人脸检测的方法[12]。基于AdaBoost算法的人脸检测一般应用Haar矩形特征来描述人脸面部的灰度分布特征,Haar矩形特征具有结构简单、提取速度快、计算方便等的优点。下图2.1描述了使用AdaBoost算法进行人脸检测时的整个流程。
图 2.1 AdaBoost算法人脸检测流程
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。