基于Android编程平台的面部识别技术研究学士学位论文.docx
《基于Android编程平台的面部识别技术研究学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于Android编程平台的面部识别技术研究学士学位论文.docx(45页珍藏版)》请在冰豆网上搜索。
![基于Android编程平台的面部识别技术研究学士学位论文.docx](https://file1.bdocx.com/fileroot1/2023-1/1/fa0436f8-9728-4fa2-b8a6-84dfee246855/fa0436f8-9728-4fa2-b8a6-84dfee2468551.gif)
基于Android编程平台的面部识别技术研究学士学位论文
分类号:
TP391.4UDC:
D10621-408-(2012)0714-0
密级:
公开编号:
2008023028
成都信息工程学院
学位论文
基于Android编程平台的面部识别技术研究
论文作者姓名:
申请学位专业:
生物医学工程
申请学位类别:
工学学士
指导教师姓名(职称):
论文提交日期:
独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。
据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
签名:
日期:
2012年6月09日
关于论文使用授权的说明
本学位论文作者完全了解成都信息工程学院有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。
本人授权成都信息工程学院可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。
(保密的学位论文在解密后应遵守此规定)
签名:
日期:
2012年6月09日
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
基于Android编程平台的面部识别技术研究
摘要
随着Google与33家手机制造商、手机供货商、软硬件供货商、电信业者联合组成的开放手机联盟(OpenHandsetAlliance,OHA),在2011年11月5日发布名为“android”的开放手机平台,Android就以原始码操作系统平台、免费应用程序开发环境,在手持设备,尤其在手机上的应用得到了飞速的发展。
本文的主题就是基于android编程平台,利用手持设备对面部识别技术的研究。
研究内容:
使用智能手机采集人脸图像,并对人脸图像进行预处理,让其达到相关识别算法的要求,适合与人脸库里面的图像进行对比,得出识别结果。
研究方法:
首先由Android手机获取人脸图像,对人脸图像进行预处理(彩图灰度化、直方图均衡化、图像的平滑滤波等);再通过JavaNativeInterface(JNI)规则将OpenCV平台与android平台实现类库共享,利用PrincipalComponentAnalysis(PCA)算法对人脸图像进行特征提取,获得特征向量(特征脸)完成训练阶段;最后,将待识别的人脸图像投影到特征向量,通过最邻近法得到与特征向量最近的人脸图像完成识别阶段,从而识别此人的身份。
研究结果:
本文利用PCA算法对人脸进行识别,通过降维的方法减少了计算量,降低了程序对硬件的要求,同时识别率较高,具有一定的使用价值。
但是,存在一个问题:
拍照时手机离人脸的距离存在差异,提取到的人脸图像也有所不同,这样就影响了识别率。
关键词:
Android;JNI;OpenCV;图像预处理;面部识别;PCA
Studyofthefacerecognitiontechnologybasedontheandroidplatformprogramming
Abstract
Withthepublicationoftheopenmobilephoneplatformcalled“Android”inNovember5th,2011,“Android”wastakingshaperapidlyinthefieldofhandhelddevicesandespeciallyinthefieldoftheapplicationofthemobilephonewiththetappingenvironmentofthesourceoperatingsystemplatformandthefreeapplicationprogram.TheopenmobilephoneplatformwaspublishedbyGoogleandtheOpenHandsetAlliancewhichisconsistedof33mobilephonemanufacturersandsuppliers,thesoftwareandhardwaresuppliersandtheTelecommunicationcompanies.Thetopicofmypaperistostudythefacialrecognitiontechnology,makinguseofthehandleddevices,whichisbasedontheprogramplatformofandroid.
Themaincontentsofthispaperareasfollowing:
First,itusesintelligentmobilephonetogettheimageofhumanface.Then,itadjuststhefaceimagetomeettheneedoftherelativerecognitionalgorithm.Andlastitcomparesthefaceimagewiththeonesinthestoreroomofthefaceimagetogettheresultoftherecognition.
Themajormethodsofthispaperisasfollowing:
firstly,gettingthefaceimagesfromtheAndrewsphone,andmakingapretreatmenttothefaceimages,suchaswallpapersgraying,histogramequalization,smoothingfilteroftheimagesandsoon;secondly,achievingtheclasslibrarysharingoftheOpenCVplatformandtheAndroidplatformthroughtherulesoftheJavaNativeInterface.AndthenusingPrincipalComponentAnalysismethodtopickupthefeaturesofthefaceimagestoobtaintheeigenvectorswhichistheeigenvectors-faceinordertofinishthetrainingstage;thirdly,makingthefaceimageswhicharetobeidentifiedprojectontotheeigenvectorsandgettingthefaceimagewhichisthenearesttotheeigenvectorswiththemethodoftheclosesttofinishtherecognitionphrase.Thustheperson'sidentityisidentified.
Theresultsofthispaperareasfollowings.Firstly,thecalculationwillbereducedandtherequirementsoftheprogramonthehardwarewillbeloweredwiththemethodsofthePrincipalComponentAnalysisandthedimensionalityreductionintherecognitionofpeople’sface.Meantime,therecognitionratewillbeimproved.PCAmethodhassomepracticalvalues.However,whentakingaphotograph,itwillcauseoneproblemthattheextractedfaceimageswillbedifferentduetothedifferenceofthedistancebetweenthephoneandtheface.Thustherecognitionratewillbeinfluenced.
Keywords:
Android;JNI;OpenCV;Imagepreprocessing;Facerecognition;PCA
目录
1引言1
1.1背景和意义1
1.2人脸识别技术研究现状1
1.3本课题研究意义2
1.4本文主要内容及结构3
2研究方案及技术路线4
2.1研究内容4
2.1.1研究对象4
2.1.2制约识别率的关键问题4
2.2研究方案4
2.2.1相关人脸识别算法比较4
2.2.2运用程序功能分析5
2.2.3研究方案的确定6
2.3技术路线6
3人脸图像获取7
3.1Android编程平台7
3.1.1Android开发平台搭建7
3.1.2Android开发简介8
3.2人脸图像获取9
3.2.1Android应用程序组件(Activity简介)9
3.2.2相关文件夹建立11
3.2.3控制照相机照相11
4图像预处理12
4.1彩图灰度化12
4.2直方图均衡化13
4.3图像平滑滤波14
4.4边沿检测15
4.5人脸部位提取17
5PCA算法及实现18
5.1AndroidNDK简介18
5.2PCA算法原理分析18
5.2.1训练阶段19
5.2.2识别阶段20
5.3OpenCV实现PCA算法20
5.3.1OpenCV简介20
5.3.2PCA算法实现21
5.4.SO库文件编译21
5.4.1JNI规则21
5.4.2库文件编译23
6研究结果及分析24
7总结25
7.1全文总结25
7.2前景展望25
参考文献27
致谢28
附录29
附录一:
图像预处理效果图:
29
附录二:
程序界面截图29
1引言
1.1背景和意义
21世纪是移动互联网发展的时代,未来也是移动互联网的时代。
移动互联网的发展对人类的生活产生了巨大的影响。
而移动手持设备正是在3G移动互联网时代得到了飞速的发展,手机已成为人们普遍使用的小型移动设备。
2007年11月5日,android智能手机操作系统正是发布,由于其开放性,可定制性得到了众多手机制造商的重视。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
AndroidOS是Google发布基于Java并运行在Linux内核上的手机操作系统。
Android操作系统采用分层架构,从高层到底层一共四层,分别是应用程序层、应用程序框架层,系统层和Linux核心层。
而Android底层方面使用C/C++语言作为开发语言。
随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序。
从而受到众多开发者的喜爱,成为真正意义上的开放式操作系统[2]。
随着移动互联网的发展,手机已经超越了它最初的设计本能。
它不仅仅应用于通讯这单一功能,还是移动的支付平台、管理着用户的众多信息。
所以手机的信息安全也成为急于解决的技术问题。
本文就是运用Android编程平台,在手机上进行人脸识别技术的研究。
从而对手机使用者的身份进行确认,保障手机所有者的信息、财产等安全。
1.2人脸识别技术研究现状
人脸识别的研究历史比较悠久,Galton在1888年和1910年就分别在Nature两篇关于利用人脸进行身份识别的文章。
自动人脸识别的研究最早的论文出现于1965年Chan和Bledsoe在PanoramicResearchInc.发表的技术报告。
近年来,人脸识别更是得到了长足的发展,每年都有大量的学术论文发表。
人脸识别研究的历史现状大体划分为以下三个阶段[1]:
第一阶段(1964-1990)。
这一时期人脸识别通常作为一个一般性的模式识别问题被研究,所采用的技术方案是基于人脸几何结构特征的方法。
这集中体现在人们对于剪影的研究上,人们对面部剪影曲线的结构特征提取与分析进行了大量研究。
人工神经网络也一度被研究员用于人脸识别问题中。
第二阶段(1991-1997)。
在这短暂的时间里人脸识别技术进入高潮期,硕果累累。
不但诞生了若干代表性的人脸识别算法,而且出现了商业化运作的人脸识别系统。
最为著名的Identix的FaceIt。
在这一阶段所提出的算法在理想图像采集条件、对象配合、中小规模正面人脸数据库上达到了非常好的性能。
从技术方案上来看,2D人脸图像线性子空间判别分析、统计表观模型、统计模式识别是这一阶段的主流技术。
第三阶段(1998-现在)。
由于主流的人脸识别技术对光照、姿态等非理想条件或是用户不配合造成的变化条件下鲁棒性比较差。
因此成为时下研究的热点。
如此同时商业系统进一步发展。
而非线性建模方法、统计学理论、基于Boosting的学习技术、基于3D模型建模与人脸识别方法等逐渐成为备受重视的技术发展趋势。
人脸识别技术是从最初的单一的正面灰度图像的识别,经过对多姿态人脸识别研究,发展到能够实现动态识别,目前正在向三维人脸识别的方向发展。
与其他的学科不同的是:
人脸识别技术融合了数字图像处理、计算机图像学、模式识别、计算机视觉、人工神经网络和生物特征等多个学科的理论和方法。
另外人脸自身所处环境的复杂性,如表情、姿态、图像的环境光照强度等条件的变化以及人脸上的遮挡物等,都会使人脸识别方法受到很大的影响。
因此,人脸识别技术仍然是21世纪具有挑战性的课题。
1.3本课题研究意义
人脸识别,是一种基于人的脸部特征信息进行身份认证的生物特征识别技术。
相比指纹识别技术,人脸识别具有非接触、识别速度快、准确率高等优点,因而深受欢迎并且应用广泛,特别是比起IC卡更具发展优势。
除了重要行业和领域的应用外,人脸识别技术在智能门禁、门锁、考勤、手机、数码相机、智能玩具等民用市场也有着广泛的应用。
人脸识别主要有一下几种应用:
身份鉴定:
在鉴定模式下,可以快速的计算出实时采集到的面纹数据与人脸数据库中的已知人员的面纹数据之间的相似度,给出一个按相似度递减排列的可能的人员列表,或是简单的返回鉴定结果和相对应的可信度。
身份鉴定可用于电脑、网络安全、银行业务、智能访问控制、边境控制等领域。
身份确认:
在确认模式下,面纹数据可以存储在智能卡中或是数码记录中,只需要简单地将实时面纹数据与存储的数据相比对,如果可信度超过一个指定的值,则比对成功身份得以确认。
视频监控应面像捕捉,人脸识别技术可以再监控范围中跟踪一个人和确定的位置[1]。
面像数据压缩能将面纹数据压缩到小于84字节以内便可以应用于智能卡、条形码或是其他存储空间有限的设备中。
近年来,随着欧美发达国家人脸识别技术开始进入实用阶段后,人脸识别迅速成为市场热点。
据调查报告显示:
2007年全球生物识别市场收入超过30亿美元,并且今后5年内将以每年8亿美元的幅度递增[9]。
新技术的应用带来了全新的数字化生活方式。
可以想象,在人脸识别时代,走入地铁需要刷卡、去银行取钱需要输入密码、上班考勤需要按指纹等方式都将改变。
1.4本文主要内容及结构
本论文所完成的任务是基于Android编程平台,在Android手机上实现人脸识别功能。
对手机使用者的身份进行确认,保证手机所有者的信息、财产安全等。
本论文在总体结构上共分为5章。
第1章引言,本章介绍了Android和人脸识别的背景、意义。
第2章研究方案及技术路线,本章主要介绍人脸识别的各种算法、方案和实现的技术路线。
第3章图像的获取,本章介绍了Android编程平台的基础知识,并通过控制手机摄像头进行人脸的捕捉,人脸数据库的建立,图像的存取。
第4章图像预处理,本章介绍了相关图像处理的算法以及实现,其中包括彩色图像的灰度化、灰度图像的直方图均衡化、图像的平滑滤波、边缘检测等。
第5章PCA算法及实现,本章介绍了JNI规则,以及OpenCV编程平台与Android编程实现类库的共享。
利用OpenCV实现PCA算法。
第6章研究结果及分析,本章对研究结果叙述,以及分析。
第7章结论,对全文进行总结,并对该课题的前景进行展望。
2研究方案及技术路线
2.1研究内容
2.1.1研究对象
本文涉及的研究对象是从智能手机的摄像头获取的人脸图像,并对人脸图像进行一定的处理,让其达到相关识别算法的要求,适合与人脸库里面的图像进行对比,得出结果。
2.1.2制约识别率的关键问题
目前随着人脸识别技术的发展,在识别率方面有了较大的提高,但是在相关技术方面仍然面临着诸多问题。
主要表现在以下几个方面:
(1)采集设备:
采集设备的性能和采集时的设置使得获取的人脸图像数据的变化较大,如何解决这个问题也值得关注。
(2)光照、背景的影响:
光照是影响人脸识别性能的最关键因素,背景的不同也影响着识别的准确率。
对该问题的解决直接关系着人脸识别应用程序的可靠性、识别的准确率。
(3)人脸姿态:
人脸姿态也是目前人脸识别实用化的一个巨大的障碍。
如何将各种姿态统一到标准人脸,也是提高识别准确率的关键之所在。
(4)表情问题:
人脸表情的不同也会影响数据的采集和提取,这也将影响到后期的算法处理。
2.2研究方案
2.2.1相关人脸识别算法比较
人脸识别的方法大致可以分为基于几何特征的方法、基于模板匹配的方法、隐马尔可夫模型的方法、基于神经网络的方法、特征脸方法。
(1)基于几何特征:
几何特征的识别方法首先将人脸用一个几何特征矢量表示,用模式识别中的层次聚类思想来对人脸进行识别。
几何特征矢量是以人脸器官的形状和几何关系为基础的特征矢量,其分量通常包括人脸自定两点间的欧氏距离、曲率、角度。
人脸器官的关键点分别对应于不同的积分投影方式产生的波峰波谷。
(2)基于模板匹配:
模板匹配的方法大多是用归一化互相关,直接计算两幅图像之间的匹配程度。
由于这种方法要求两幅图像上的目标要有相同的尺度、取向和光照条件,所以预处理要做尺度归一化和灰度归一化的工作。
识别时,未分类的图像跟数据库中的所有图像数据进行比较,采用相关作为典型的匹配函数。
(3)隐马尔可夫模型:
隐马尔可夫模型(hiddenMarkovmodel,HMM)是用于描述信号系统特征的一种常见的统计模型,被广泛应用于语音判定中。
人脸面部特征的分布都依照一种自然的顺序,即从上到小、从左到右,即使人脸在平面和垂直方向上发生旋转,这种顺序也不会变化,但是实现起来的难度较大。
(4)基于神经网络识别:
神经网络的方法是近年来比较活跃的一个研究方向。
人工神经网络(ANN)是一种以大的量处理单元(神经元)为节点,处理单元之间实现加权值互联的拓扑结构,处理单元是人类大脑神经单元的简化。
Cottrell等人使用级联BP神经网络进行人脸识别,对部分受损的人像、光照有所变化的人像,个人识别能力较好,但是神经元数目通常很多,训练时间很长,具有固有缺陷:
收敛速度慢、容易陷入局部极小、先验参数多且参数的确定凭经验而定[8]。
(5)特征脸识别:
特征脸法是人脸识别中常用的一种方法。
该方法主要是从人脸图像的全局出发,运用K-L变换理论,在原始人脸空间中求得一组正交向量,并以此构成新的人脸空间,使所有人脸的均方差最小,达到将为的目的。
降维的思想,降低了运算量,有利于此算法运用于硬件配置相对中低端的手持设备中。
但是此算法也存在缺陷:
特征脸方法容易受角度、光照、表情等干扰导致识别率下降。
通过以上算法的介绍,结合算法的特征还有应用的平台,我们选择PCA算法。
它可以为我们减少大量的计算,从而提高程序运行的效率,因为实在手机上运行我们更应该考虑到运算量的大小,综合考虑本文的主要算法实现我们采用PCA算法。
2.2.2运用程序功能分析
本文应用程序最主要的功能就是要能识别出人脸,首先该系统需要对通过摄像头拍照而获取到的原始的人脸图片进行一系列处理才可进行下一步的工作,该处理过程也称图像预处理。
预处理这个模块在整个人脸识别系统的开发过程中占有很重要的地位,只有预处理模块做的好,才可能很好的完成后面的特征提取这一关键模块。
因此本设计中所要完成的主要功能如下所述:
图像的获取功能:
主要是通过手机摄像功能获取人脸图像。
图像的存取功能:
在手机SD卡中建立相关文件夹,用于存取人脸图像,其中包括训练图像、待识别图像以及相关的数据。
图像的预处理功能:
主要是对获取的图像进行灰度化、直方图均衡化、平滑滤波、边缘检测等处理