基于Android平台的人脸识别软件的实现

 2022-01-17 11:01

论文总字数:17749字

目 录

1.绪论 1

1.1 课题的研究背景 1

1.2 国内外研究现状 1

1.3 本文研究工作概述 2

1.3.1课题研究目标 2

1.3.2主要研究内容 3

2. 相关技术 3

2.1 Android系统 3

2.1.1 Android平台介绍 3

2.1.2 Android层次架构介绍 4

2.1.3 JNI技术 5

2.2 OpenCV库 5

3.实现原理 6

3.1 OpenCV中的人脸检测 7

3.1.1 加载Haar检测器 7

3.1.2 访问摄像机 8

3.2 人脸预处理 8

3.3 人脸检测 8

3.4 基于PCA的人脸识别 9

3.4.1 PCA算法简介 9

3.4.2特征脸的计算原理 9

3.4.3特征脸在OpenCV中的实现 10

4.软件设计 11

4.1 开发环境介绍 11

4.2 软件设计 12

4.2.1 使用流程 12

4.2.2 数据来源 12

4.2.3 图样分析 13

4.2.4数据库存储 16

5.实际运用中的问题 17

6.总结 18

参考文献 18

致谢 20

基于Android平台的人脸识别软件的实现

张理皞

,China

Abstract: Because of the development of the modern science and the arrival of big data,people care more about the safety, reliability of information and identity identification.Bio-identification technology came into being and developed rapidly. Face recognition refers to the acquisition of effective facial information through intelligent devices, and extract the face characteristics to verify the identity of a user according to the extracted features. Face recognition can be divided into three modules: face detection, image processing and face recognition. In this system, PCA technology is used to extract facial features, and the principle, method and implementation of eigenface are introduced in detail. Under the development environment of Eclipse, NDK and SDK are used as development tools to write software algorithms and interface. The face recognition software on Android phones is achieved ultimately.

Key words:Face Recognition; PCA;OpenCV;Eclipse;Android

1.绪论

1.1 课题的研究背景

由于现代科技术的发展,公众对信息的安全性、可靠性、身份的鉴定也更加的重视。由于大数据在生活中的应用,公民的身份越来越趋于数字化。公众对信息的可靠性、安全性、正规性以及身份鉴定给予更多重视。而我们平常所用的身份鉴定方式,比如身份证或者密码,具有较低的安全性,已经无法满足公众和社会的要求。因此生物鉴定技术应运而生并在过去的几十年中得到较快发展。

生物鉴定这门科学自提出以来得到了社会各界的广泛关注和科研机构的重要研究。其中比较关键的一点是生物属性是与生俱来的,各人特征各不相同,并且会在相当长的一段时间中保持稳定特征。当前主要的生物识别技术主要包括:指纹识别、签字字迹及力度识别、视网膜识别、步态识别、静脉识别、人脸识别、基因识别等[1-2]。相较于其它方式,人脸识别具有的优点如下:

(1)人脸识别使用方便,隐蔽性强。人脸识别使用摄像头进行图像采集,避免了直接接触的信息收集方式,不容易引起对象的注意和反感。

(2)具有很强的直观性。人脸识别所采集的信息是人脸所具有的特征,我们区别人和人最简洁明了的方式就是看他的脸是不是符合我们给他的“标签”。

(3)识别速度较快。人脸识别的结果可以很快计算出来且精度较高,误认和拒认的概率相对较低。

(4)设备价格容易接受。人脸识别的实现只需要一台具有图像采集功能的计算机,或是一部智能手机(如本文研究的软件),对于大多数用户来说,只需在原有基础上进行功能扩展,节省了资源。

(5)容易获取基础资料。所需要的识别信息来源只是一段视频或者一幅有效图像,这无疑是最容易获得的。

(6)成本较低。人脸识别的效果比较好,并且价格低。

总而言之,人脸识别所具有的优点决定其有较好的发展和广阔的应用空间。

1.2 国内外研究现状

基于图像技术的人脸检测从上世纪开始,至今已经经过了二十多年。越来越多的研究人员将研究重点放在了人脸识别技术上。按照该技术更迭的时间划分,人脸识别的方法可以大致分为基于知识的识别方法,还有基于机器学习的识别方法,并在研究的开始阶段,人们的解决方法是通过人脸的一些简单的外部特征进行人脸检测[3]:如Sakai[4]等利用人脸固有器官之间的距离和人脸的轮廓检测出图片中的人脸位置。此后,Craw[5]等在Sakai等人工作的基础上增加了部分器官自身固有的特征作为模板作为搜索限制的条件进行人脸位置检测。这项工作是具有里程碑意义的,在此之前的人脸检测工作的完成依靠的是人脸固有器官之间的距离关系,而在此之后是以器官本身具有的特征作为检测的依据。再后,相关研究人员提出了基于学习的方法,这个方法使用机器学习的方式,对由大量的人脸图像组成的训练集进行训练,从而得到一个具备区分人脸与否的分类器(该分类器可以较好地实现对图像中人脸位置的精确定位)[3]。这种方法和基于知识的识别方法相比而言在应对不同情况时体现出更好的适应性。它在复杂环境下能够过滤干扰因素,依然具有良好的检测效果。所以此后大多数研究人员都采用这种检测算法。然而在该算法的发展阶段初期,实时性较低的问题一直难以克服。为了解决这个问题。Viola[6-8]等研究人员提出了Haar分类器的概念。Haar 分类器是在AdaBoost 算法的基础上建立的,先通过Haar-like小波特征和积分图方法对训练集进行训练,从而得到强分类器,最后将它们级联而成。Haar分类器实时性好,并且具有很高的精确性。其他较为著名的学习的方法还包括人工神经元网络(ANN)[9]、支持向量机(SVM)[10]以及贝叶斯准则[11]等。本世纪以来,计算机硬件的发展水平已经达到全新的高度,人脸识别也从一开始的算法研究慢慢地拓展到了使用方面,适用于不同需求的算法相继出现。比如美国Duke教授所提出的“特征脸”算法,自诞生至今都有着重要地位和意义[12]

国内对于人脸识别的研究起步较晚,但最近几年我国的研究机构在人脸识别方面的研究状况蒸蒸日上并取得了很多重要的研究成果。在核心算法的研究方面,我国科研机构和外国没有较大差距。值得注意的是,许多高校都积极参与到人脸识别的研究中来,并在该领域取得了不小的成绩。例如,清华大学的苏光教授提出了基于人脸类别和特征描述方法的NMP-PVA 方法[12]。我国学者迈向世界,在重要的期刊和文献上发表论文,为我国的人脸识别领域的发展做出了自己的贡献。目前,大多数的人脸检测算法都是静态的,实时人脸检测算法由于特定条件下众多因素的干扰没有取得较为精确地人脸检测结果,这个方向还有广阔的研究前景。

1.3 本文研究工作概述

1.3.1课题研究目标

本文主要研究目标是设计一款Android软件。这个软件所实现的最基本功能是能检测出画面中的人脸位置,并且能够分析出对象的性别,大致年龄和一些面部特征(如有无戴眼镜,肤色),将记录存储下来。软件的界面要简洁明了但不简陋,能够让使用者对使用方法一目了然,但又有较为顺眼的用户界面。识别算法不宜复杂,在用户可以接受的分析时长中得出结果。既能保证一定的识别率,又要节省设备内存。

1.3.2主要研究内容

为了对该软件的实现原理和方法进行详细阐述,本文将从以下几个部分介绍已做工作。

本文第一部分,先介绍人脸识别的发展背景,国内外研究现状和论文研究目标,并对论文框架进行初步规划和说明。

本文第二部分,会对Android的相关信息进行说明。主要包括了Android的发展历程和现状,Android应用的几大层次。由于软件需要调用OpenCV,相应的也会对OpenCV进行简单介绍。

本文第三部分,阐述的是软件工作原理。对人脸位置的探测、图像处理、人脸识别的理论基础会进行叙述。此外会对每个功能模块在OpenCV下的使用分别说明。随后介绍PCA方法和特征脸的原理、计算方法和在OpenCV下的实现。

在本文第四章中将列出软件实现方案。首先介绍的是开发环境,然后对软件的界面设计,软件功能设计进行说明。在以上内容中会插入相关功能的展示图。

本文第五章,说明的是这个系统在不同情况下的使用状况,并对效果不好的情况进行分析讨论。

2. 相关技术

2.1 Android系统

2.1.1 Android平台介绍

Android系统是Google公司开发的一款基于Linux内核的移动操作系统。如今几乎人手一机,它被广泛应用于平板电脑和智能手机的研制。

Android的开源性注定了给许多研究开发人员提供无偿学习和项目开发的机会。这也识得开发者队伍越来越壮大,开发者们对Android的不懈研究,会让Android平台功能变得更为具体,系统越来越稳定和成熟。。

剩余内容已隐藏,请支付后下载全文,论文总字数:17749字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;