基于嵌入式处理器的人脸识别算法研究毕业论文
2021-05-06 12:21:52
摘 要
随着信息技术的飞速发展及人们安全意识的不断提高,传统的身份识别方法容易被窃取和泄露,已经不足以满足社会的需求。生物特征识别已经逐渐成为当今炙手可热的研究领域。生物特征识别技术主要是运用计算机视觉、图形图像处理、模式识别等技术来提取和描述人类的生理特征或行为特征,从而对个人的身份进行验证。在多种多样的生物识别技术中,人脸识别方式更自然,更直观,而且具有非接触性、非强制性、并发性和简便性等特点,因此吸引了众多研究者对其进行研究,是当今社会研究和应用的热点方向。人脸识别技术从60年代末期起步,通过学者们的研究形成了比较成熟的技术,并在国家安全、证件核实、信息安全、人事考勤等许多领域都得到了广泛应用。
OpenCV是一个开源跨平台的计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。它可以直接应用于很多领域,其中包括物体识别,图像分区,人脸识别,运动跟踪,运动分析等等,还可以作为一个二次开发的理想工具,来实现人脸识别的主要算法。
目前人脸识别的算法主要有三种:第一种是基于PCA的特征脸方法,它的基本思想是通过K-L变换对图像进行投影降维,找到图像的主要成分来对人脸进行描述及比对;第二种是基于LDA的Fisher Face方法,它的主要思想是将高维的样本投影到最佳判别向量空间,从而能够有效的提取分类信息、压缩特征空间的维数,在新的子空间形成投影后,类间距离达到了最大和类内距离达到了最小,从而达到最佳的可分离性;第三种是基于局部特征提取的LBP方法,它的主要思想是对图像中的像素点和该点周围像素点进行对比,然后根据对比结果进行求和。
本文对三种人脸识别算法进行了研究,运用OpenCV实现了三种算法中计算效率较高的LBP算法进行人脸识别。然后在基于ARM9的S3C2410X嵌入式平台上搭建基于OpenCV的人脸识别系统,实现了人脸模型训练功能、读入待识别图像功能、提取待识别图像功能、识别人脸功能四种功能。本文还运用ORL人脸数据库对系统进行了训练和测试,识别效率高、结果准确。同时,本文对系统的各个模块和整体流程也进行了测试,测试结果良好,实现了完整的基于OpenCV的人脸识别系统。
关键词: 人脸识别;Open CV;LBP;嵌入式系统
Abstract
With the continuous improvement of information technology and the rapid development of safety awareness, the traditional identification methods which can easily be stolen and leaked have been insufficient to meet the needs of society. Biometric authentication has gradually become a hot area of research. Biometric authentication technology is mainly using computer vision, image processing and pattern recognition techniques to identify a person’s identity by physical characteristics or behavioral characteristics of human beings. In a variety of biometric technology, face recognition is more natural and more intuitive. It has many characteristics, such as non-contact, non-mandatory, concurrency and simplicity and so on. So it has attracted many researchers to study it. Nowadays, it has been the hotspot of research and applications in the society. Face Recognition technology, which starting in the late 1960s has formed a relatively mature technology with the joint efforts of scholars from various countries after the development of tree phases. It has been widely used in many fields, such as national security, document verification, information security, personnel attendance and so on.
OpenCV is an open source cross-platform computer vision library that implements many common algorithms for image processing and computer vision. It can be directly applied in many fields, including object recognition, image partition, face recognition, motion tracking, motion analysis, etc., and it can also be used as a secondary development of the ideal tool to achieve the main algorithm of face recognition. MFC is a library provided by Microsoft, which encapsulates the Windows API in the form of a C class. It includes a framework for the application, thereby reducing the workload of the developers at the time of programming. It can be invoked through an object-oriented approach to Windows API, and also can achieve a convenient application development. So this paper uses the MFC framework to implement face recognition system.
Currently there are three face recognition algorithms: The first one is Eigenface method based on PCA, which basic idea is to project and reduce the dimensions of the image by K-L transform, and then find the main component of the image to descript and compare the human faces. The second method is FisherFace which based on LDA, its main idea is to project the high-dimensional sample to the best determine vector space, which can effectively extract classified information, compression dimension feature space. In the new projection subspace, the distance between classes has been reached the maximum and the distance in classes has been reached the minimum, so as to achieve the best reparability. The third method is LBP which based on local feature extraction method, which basic idea is to compare the image pixels and the points around the pixel, and then summing the results based on comparison.
This paper has studied on the three face recognition algorithm, and then used OpenCV to implement LBP which is the most efficient of the three algorithms of face recognition to recognize faces. Then we design a face recognition prototype system using S3C240X chip based on ARM. This paper has realize the functions of training model of face, reading the image that need to be recognized, extracting image and recognizing face. This paper also uses ORL face database system to train and test the system, which has achieved highly effective and accurate recognition. The paper has tested every module of the system and the process of the system. This paper implements a whole face recognition system based on OpenCV.
Keywords: Face Recognition, OpenCV, LBP;Embedded system
目录
摘 要 1
Abstract 3
第1章 绪论 6
1.1目的及意义 6
1.2国内外的研究现状 6
1.3 嵌入式人脸识别系统的介绍 7
1.4设计的基本内容、目标 8
第2章 系统相关技术介绍 10
2.1 OpenCV简介 10
2.2 MFC简介 11
第3章 人脸识别算法 13
3.1特征脸及PCA方法 13
3.2 Fisherface 14
3.2.1 二类问题的线性判别分析 14
3.2.2 多类问题的线性偏判别分析 16
3.3 LBP 18
3.3.1 LBP算法的描述 18
3.3.2基于LBP的人脸识别 20
第4章 系统设计 21
4.1功能设计 21
4.2 模块设计 22
第5章 系统测试 23
5.1 算法测试 23
5.2实验细节 24
5.3功能测试 24
5.4整体测试 26
5.5 实验结果 27
第6章 总结与展望 28
6.1总结 28
6.2展望 28
参考文献 30
致 谢 31
第1章 绪论
1.1目的及意义
视觉是人类获取信息的主要来源,图像和视频等视觉信息在互联网、通信、信息安全等方面有着非常广泛的应用。因为视觉信息的领域和许多领域的专业知识相关联,并且视觉具有复杂的对象和多样的任务,导致了视觉领域的研究变得较为困难。而在这之中,人脸识别方面作为所有人脸信息处理中最关键的一步受到了重视并且计算机视觉领域的人们对它进行了普遍的研究。
人脸识别是指对于任意一幅给定的图像,采用特定的方法对其进行判定是否含有人脸,若含有人脸则确定人脸的位置、大小和姿态。随着计算机和互联网的发展,人脸识别成为最有发展空间的生物身份验证方法,而且人脸检测也开始作为人脸识别系统的一个关键步骤受到了广泛关注。
1.2国内外的研究现状
人脸识别可以说是一个既古老又年轻的课题,言其古老是因为早在上个世纪,法国的Galton就已经开始了关于人脸识别的研究,而在70年代中期以前,典型的模式识别的分类技术还是用人脸正面或者侧面特点的距离来度量,而且重点使用的是从侧面人脸图像上提取的几何特征。这一阶段中对于图像的约束条件比较多,而且提取出的特征数目也比较少,自动提取特征的准确度也十分的低。八十年代,对FRT的研究仍处于冷凝状态,没有什么进展。进入九十年代,该课题受到了前所未有的重视,原因有很多方面:首先是安全系统即商贸系统中有应用需要;其次是受其他技术发展的影响。在九十年代前期,研究的重心集中在分割和特征提取以及设计系统或神经网络的分类器方面,采用一些传统的统计算法。较多的研究小组和公司也把工作重心转移到基于多样本的统计方法或神经网络方法的研究上去。