基于机器学习的人脸自动识别系统毕业论文
2020-02-17 23:22:27
摘 要
人脸识别是计算机视觉与模式识别中一个经久不衰的热门话题。伴随着人工智能技术的快速发展,作为其基本研究工具的机器学习也引起了人们的广泛关注。基于机器学习的人脸识别技术也理所当然成为了目前主流人脸识别的方法之一。
本文首先探讨了研究人脸识别的意义和国内外的研究现状,并结合自身专业背景设计了一套切实可行的人脸识别系统,第二章详细探讨了局部二值模式(Local Binary Pattern)进行人脸检测方法原理,第三章介绍机器学习的相关理论和基于机器学习的人脸识别的方法,第四章在开源计算机视觉库OpenCV 3.0上开发了基于机器学习的人脸识别系统并进行验证。一个完整的基于机器学习方法的人脸自动识别系统分为以下几个部分:采集图像、人脸检测、预处理、训练人脸识别的机器学习算法、人脸识别。在本设计中,采用的是计算机自带的摄像头进行采集人脸图像,在OpenCV 3.0中预处理、人脸检测,通过建立的数据库,训练人脸识别系统得到分类器,最终完成人脸识别。
验证发现系统能识别出数据库中已有的人脸照片,设计顺利完成,但仍存在许多可以优化的地方,后续也可以根据此系统进行更多有针对性的优化以达成更好的效果。
关键词:机器学习;人脸识别;计算机视觉
Abstract
Face recognition is an enduring hot topic in computer vision and pattern recognition. With the rapid development of artificial intelligence, machine learning as a basic tool has attracted much attention. Therefore, Face recognition technology that based on machine learning has also become the mainstream face recognition methods.
Firstly, this paper discusses the significance and current research situation of face recognition at home and abroad, then designs a practical face recognition system based on myself own professional background. Chapter 2 discusses the principle of face detection using local binary pattern in detail. Chapter 3 introduces the theory of machine learning and the method of face recognition based on machine learning. Chapter 4 develops and validates a face recognition system based on machine learning on OpenCV 3.0, which is an open source computer vision library. A complete automatic face recognition system based on machine learning method is divided into the following parts: image acquisition, face detection, preprocessing, machine learning algorithm for training face recognition, face recognition. In this design, the camera with computer is used to collect face image, preprocess and detect face in OpenCV 3.0, and train the face recognition system to get classifier through the established database, and finally complete face recognition.
Verification shows that the system can identify the existing face photos in the database, and the design is completed smoothly. However, there are still many areas that can be optimized. Further optimization can be carried out according to the system to achieve better results.
Key Words:Machine Learning;Face Recognition;Computer Vision
目录
摘 要 I
Abstract II
1 绪论 1
1.1 研究背景及意义 1
1.2 国内外研究现状 1
1.3 研究概述和文章结构 2
2 人脸检测概述 4
2.1 计算机视觉简介 4
2.1.1 RGB三原色 4
2.1.2 灰度图像 5
2.2 图像预处理 5
2.2.1 剪裁 5
2.2.2 灰度转化 5
2.3 人脸特征检测的LBP方法 6
2.4 本章小结 10
3 基于机器学习的人脸识别 11
3.1 机器学习 11
3.1.1 机器学习概述 11
3.1.2 机器学习现状 11
3.2 人脸识别 13
4 人脸识别系统的实现与验证 15
4.1 人脸图像数据库的建立 15
4.2 人脸检测的实现 18
4.3 人脸识别系统的训练 20
4.3 人脸识别系统的测试 24
4.4 本章小结 25
5 工作总结和展望 26
5.1 工作总结 26
5.2 展望 27
参考文献 28
致谢 29
绪论
1.1 研究背景及意义
英特尔创始人之一的戈登-摩尔提出的摩尔定律揭示了信息技术进步的速度,在集成电路芯片IC(Integrated Circuit)的高速发展和如今数据流量时代爆炸增长的大数据的推动之下,人工智能[1][1](Artificial Intelligence)领域异常火爆,各大科技巨头之间的博弈也是非常激烈,他们的AI技术应用更是层出不穷,如谷歌DeepMind的AlphaGo及其升级版——AlphaZero;IBM旗下的医疗AI——Watson;英特尔与百度达成合作的自动驾驶AI项目——Apollo等等,人工智能AI正在逐渐走进人类的生活,得到了各阶级人们广泛的关注。
人工智能AI领域之一机器学习(Machine Learning)的应用也走进了人们的视野,我国南京大学的周志华老师编写的《机器学习》[2][2]也深受入门者喜欢,机器学习在计算机视觉及图像处理[3][3]中有广泛应用,其中人脸识别[4][4]就是一个应用例子,基于机器学习方法[5][5]的人脸识别则是当前计算机视觉和模式识别的主要研究内容。自从“9·11”美国遭受恐怖袭击之后,身份认证已经成为了各国政府重视的一个问题,传统的通过密码或证件的身份识别和认证方法非常容易被不法分子伪造,从而造成个人、甚至是国家财产的损失,对不明身份的人无法及时确定其身份信息也很容易给公共社会治安造成不稳定因素,于是基于生物特征的识别方法在这种时候脱颖而出,成为各国政府的首选方法,生物特征识别包括指纹、虹膜、人脸等的生物特征识别,相比于传统方法具有更好的安全性和可靠性。而人脸识别相对于指纹、虹膜识别,人脸识别显然具有友好性、隐蔽性、方便性等优势,它不用强制性收集被识别者的信息,也不用被识别者的主动配合,同时人脸的采集也更多元化,因而开发出能随时随地进行精准人脸识别的系统自然而然具有十分重要的安全意义和研究价值。
1.2 国内外研究现状
在早期,上世纪60年代的人脸识别局限于收集人脸面部特征,如眼睛、嘴巴、鼻子的位置、双眼距离等等,这个时期的人脸识别是基于几何特征的方法,识别繁琐且作用十分有限,到了90年代,有学者提出基于主成分分析[6][6]PCA(Principal Component Analysis)方法的特征脸(Eigenfaces)进行人脸识别,还有基于线性判别分析LDA(Linear Discrimination Analysis)的Fisher脸(Fisherfaces)进行识别,此时PCA和LDA是最主要的理论成果,人脸识别这时已经初具效果了,但在90年代摩尔定律还处于高速发展时期,CPU、GPU的计算能力尚未完全挖掘,机器学习也因此发展迟缓,直到今天,高度集成的芯片赋予CPU超高速的计算能力,大数据时代的海量数据也可以轻而易举的获取,这使得机器学习得以快速发展,人脸识别也有了更好的方法,包括遗传算法GA(Genetic Algorithm)、支持向量机SVM(Support Vector Machine)、卷积神经网络CNN(Convolutional Neural Network)、贝叶斯分类器(Bayes Classifier)等等,此时深度学习在计算机视觉及模式识别中大放异彩,占据了主要地位,直至今日,各种综合基于深度学习的人脸识别技术不断被提出来,新的技术赋予了人脸识别更可靠的精确度,甚至是情绪分析,人脸识别也因此在公安系统、海关、银行、人机交互等各个需要身份识别认证的地方有了充分应用。
1.3 研究概述和文章结构
本文的最终目的是在Windows 10操作系统下利用开源计算机视觉库OpenCV 3.0平台搭建出一个基于机器学习的人脸自动识别系统。首先通过收集人脸头像数据构造出训练集,随后选择合适的机器学习算法,接下来使用构造好的训练集训练该算法以得到人脸识别分类器,最终调用计算机的摄像头采集照片,并利用训练好的分类器进行人脸识别与比对,完成人脸识别功能。完整的人脸识别系统结构设计如图1-1所示。
图1-1 基于机器学习的人脸识别系统设计图
基于此基础之上,本系统的设计最终分为如下几个部分:
- 图像采集。从网上下载人脸数据库,并加入自己的照片建立训练集。
- 人脸检测。对一张图片进行检测,若存在人脸,则定位出人脸的位置。
- 算法训练。选择合适的算法,通过机器学习训练出完整的分类器。
- 人脸识别。调用摄像头,识别人脸。
本文的结构如下:
第一章 绪论。本章阐述了选题的研究目的和意义,通过对国内外研究现状的总结,结合自身专业背景初步设计出一套切实可行的人脸识别系统方案,最后概括工作内容和文章结构。
第二章 人脸检测概述。本章阐明对图像进行预处理的技术,并提出了利用局部二值模式(LBP)进行人脸检测的方法,详细阐述了局部二值模式(LBP)的原理。
第三章 基于机器学习的人脸识别。本章初步概述机器学习相关理论,对机器学习的人脸识别方法进行阐述。
第四章 人脸识别系统的实现与验证。本章对系统的各模块进行介绍和验证,阐述了各模块的具体实现细节,并进行详细分析与验证实验,最后在Visual Studio 2017和OpenCV 3.0里实现了完整的设计。
第五章 工作结论和展望。本章对本次工作进行分析,总结本文的创新点,同时指出了其缺点和当前人脸识别系统存在的主要问题,最后介绍了当下的前沿研究技术与方法,对计算机视觉和模式识别的发展,包括未来的人脸识别技术和人工智能技术做出了展望。
2 人脸检测概述
2.1 计算机视觉简介
人工智能(Artificial Intelligence)领域的广泛吸睛,使得各种计算机应用技术得到了长足的发展,人工智能作为一门新兴技术,致力于用具有超大规模计算能力的芯片对人类的智能思维、决策模式进行研究和模拟,计算机视觉(Computer Vision)和模式识别(Pattern Recognition)便是人工智能的主流研究方向。长期以来,在视觉领域中,人类早已从各种具有视觉能力的生物的研究中提炼建立出了感知信息所用的物理模型,而计算机视觉则是靠软件和硬件教会计算机实现“看”的科学。通过调用摄像头代替人眼进行目标检测、识别和追踪,并相应做出更深层次的处理和检测,能获得比人眼更准确的判断,得到更为精确的结果,这正是人工智能发展的成果。
2.1.1 RGB三原色
计算机的中央处理器(Central Process Unit)由全加器等构成,只能识别高、低电平的信号(即0、1),而现实世界却是色彩斑斓的,经过人们的研究后,三原色原理是出于生理原因的选择,即可以将三种原色光以不同比例混合后,用来形成对人的眼睛等效的各种各样的可见光色觉。三种原色色光分别是红(Red)、绿(Green)、蓝(Blue),且这三种原色不会被其他单色光合成。因此在目前计算机显示中,一个颜色的描述可以被三个数值(即R、G、B)所控制,从而在屏幕上显示出各种各样的色彩。常见颜色的RGB值如表2-1。
表2-1 常见颜色RGB值
颜色名称 | 红色值 Red | 绿色值 Green | 蓝色值 Blue |
黑色 | 0 | 0 | 0 |
蓝色 | 0 | 0 | 255 |
绿色 | 0 | 255 | 0 |
青色 | 0 | 255 | 255 |
红色 | 255 | 0 | 0 |
黄色 | 255 | 255 | 0 |
白色 | 255 | 255 | 255 |
2.1.2 灰度图像
RGB颜色空间作为一种常用的彩色图像表示模型,在计算机显示系统中采用每一象素用24比特(bit)来表示,即每种原色的色光分到8bit,按照色彩强度分为28共256个值,用这种方法来表示颜色,但是计算机是处理0、1的机器,因此使用灰度图像来处理图片更符合计算机的高速运算要求。灰度图像是指在计算机的一副图片中,每个象素都只有一个采样颜色,与黑白图像不同,灰度图像把黑色与白色之间按照对数关系分为256个等级的灰度,取值范围为[0,255],只包含颜色的亮度信息,这样在理论上可以包含每个象素的亮度值,灰度级数越多,表示的颜色层次越丰富,而在物体的边缘通常呈现灰度不连续性,因此在图像识别领域灰度图有很好的应用。在将RGB彩色图像转换成灰度图像时,需要计算每个象素的亮度值,计算公式如下:
(2-1)
2.2 图像预处理
人脸头像的检测容易受到各种因素的影响,例如光照条件、面部姿态等,收集到图像后利用预处理技术来适当合理的消除一些影响是非常重要的,图像预处理是为了确保检测的人脸图像有相同的大小,与此同时也要确保人脸特征在合适的位置,这样可以有助于提高整个检测系统的准确度。在收集到人脸照片后,需要对照片进行预处理才可以拿去训练。
2.2.1 剪裁
在收集到人脸头像照片后,需要对得到的照片进行剪裁,因为图片的尺寸大小,象素点数目不一样,在CPU、GPU训练的时候这些会影响算法的性能,进行裁剪目的是为了改变照片的大小使之与数据集里的图片尺寸大小一致,这样才能进行训练。
2.2.2 灰度转化
将拍摄的图片的大小调整相同后,还需要将彩色图片转化为灰度图像,以便训练时计算机的后续处理,在OpenCV 3.0中可以直接调用计算机摄像头拍摄照片进行预处理。
2.3 人脸特征检测的LBP方法
人脸检测是判断一副采集到的图片里面是否存在着人脸,并后续通过定位框对人脸精准定位选出来人脸的过程,人脸检测是人脸识别系统中关键的一部分,只有判断了图片中人脸是否存在并准确地标记出来,才可以为后续的识别比对做好铺垫。
随着人机交互技术的发展,人脸检测目前已经逐渐应用在了很多领域,同时大量的人脸检测算法和各种优化方法也已经被提出来了,但主要的方法有三种,它们分别是基于特征、基于模板匹配和基于统计理论的方法。
1)基于面部明显特征的人脸检测方法是最早应用于人脸检测的方法,它主要是寻找眼睛、鼻子、嘴巴等稳定的特征,然后根据特征的组合分析进行是否为人脸的判断。
2)基于模板匹配的人脸检测方法是通过比较图像与模板之间的相似性程度大小来判断是否为人脸,应用模板匹配算法首先要找到一定标准的人脸模式用来描述人脸的特征。
3)基于统计理论的人脸检测方法是利用统计理论,从大量的人脸样本图像中构造出人脸的模式空间并根据相似度完成人脸检测,主要有基于Haar的分类器和基于LBP特征的人脸检测器,本文采用基于LBP特征的方法。
局部二进值模式,也称LBP(Local Binary Pattern),这种运算符是专门用来描述图像的局部纹理特征的,LBP运算符具有旋转不变性和灰度不变性两个明显的优点。而这两点刚好在计算机视觉与模式识别中非常重要,旋转不变性是指一副图片在经过360°旋转的过程中,该图片的某些特征值不会产生变化,旋转不变性有很重要的作用,如图2-1,这是1892年首次出现在德国杂志上的一张图,这张图引起了持续的争议,直到现在还在争论不休,原因是有些人看到的是一只兔子,有些人看到的是一只鸭子,而有些人两只动物都能看得出来,将这张图喂给了谷歌AI,谷歌AI认为68%的概率是一只鸭子,可是当它旋转起来后,谷歌AI却开始犹豫不决了,保持图片的旋转不变性,这是模式识别的难点之一。灰度不变性是指该图片的灰度值在各种情况下的取值都是一样的,这也保证了图片的特征一样,可以用来识别是否是某一类东西。局部二值模式LBP方法是在1994年被提出来的,主要用于图像局部纹理特征的提取。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: