成都大学信息科学与技术学院学生春蕾计划项目立项申请表项目名称__基于Android的人脸身份认证与隐私保护软件____申请单位______班级团队____________________指导教师__________胡德昆______________________申请学生__梁爱苹,徐欢,腾洋_______________联系电话______18010670974__________________电子信箱_____821782334@qq.com_______________申请日期_______二0一四年5月7日__________成都大学信息科学与技术学院印制填表说明1.“项目实施方案”必须写明在近期及远期的规划和预见成果;2.“项目的经费预算”应包括项目中软、硬件建设及各种人员经费;3.项目负责人需合理安排好人员的分工,保障人员的可用性,确保该项目能够有组织的顺利进行,以防项目作废;4.本表请用钢笔填写或直接打印,不够填写可另行附页;填好后将电子版发至xxxxx,纸质版交至xxxx;5.本表内容由学工办负责解释。一、项目介绍表项目简况项目名称:基于Android的人脸身份认证与隐私保护软件项目指导教师:胡德昆项目团队项目负责人姓名梁爱苹专业软件工程联系电话18010670974项目负责人及成员主要项目经验时间项目名称项目完成情况2013.11宿舍管理系统进行中2014.3“快易点”点餐软件进行中项目组成员姓名性别出生年月所在学院及专业项目分工梁爱苹女1993.8.14信息科学与技术学院软件工程人脸识别算法、软件总体设计徐欢男1993.12.06信息科学与技术学院软件工程数据库、人脸特征提取模块设计腾洋男信息科学与技术学院软件工程人脸检测模块设计、系统检测及分析二、立项依据(项目意义、现状分析及项目实用性分析)2.1立项意义与目的身份识别和身份认证在现在社会具有非常重要的应用价值,人们对身份识别的需求可以说是无处不在,并且与日剧增,几乎时时刻刻都要证明自己的身份,例如判定一个人是否有权限进入某一特定的区域,是否有权利进行某项操作,是否有权利进行某种交易,以及寻找目标人物等等。由于生物特征是人类的内在属性,具有很强的个体差异性和自身稳定性,是非常理想的身份识别和身份认证的依据,其中人脸特征是人体本身所固有的一种典型生物特征。利用人脸图像进行身份识别和确认,与其他传统方法相比更加安全、可靠、有效、易于被客户接受、友好方便等特点,因而越来越受到人们的重视,成为国内外各研究机构和高校的研究热点之一。随着社会的发展以及科技的进步,尤其是近年来计算机软硬件性能的提升和计算机视觉、模式识别和人工智能等相关技术的发展,以及社会对快速的身份识别技术需求的与日俱增,人脸识别技术已经成为研究人员关注的一个重要研究方向。人脸识别技术涉及多个领域,包括模式识别、计算机视觉、数字图像等,目前此项技术领域的发展非常活跃,有很多公司致力于研究这方面的产品并将产品推向市场人脸识别系统在Android平台下有着相当广泛的应用价值和应用前景,正是因为人脸识别技术在Android平台下的应用价值才使得这个课题的研究更有意义。通过在前面所述的理论基础上,本课题对经典的人脸识别算法进行学习和分析研究,理论联系实际,在Android平台下对系统进行设计和分析探索,实现一个完整的人脸识别系统,对包含人脸信息的图像进行分类的应用。2.2现状分析随着十九世纪末人脸识别问题的提出,到二十世纪六十年代,机器自动人脸识别技术真正的开始发展起来,以美日等为首的西方发达国家在这一领域进行了大量的研究,提出了许多人脸识别算法,并长期占据领先地位。目前大部分在人脸识别领域的研究人员主要工作是对先前提出的合理算法进行改进,提高识别速度和识别准确率和对识别质量的影响因素进行研究,如面部表情、光线强度、姿态等。麻省理工学院、卡耐基梅隆大学、耶鲁大学、密歇根州立大学、加州大学洛杉矶分校(UCLA)、曼彻斯特大学、南加州大学、萨里大学和MITIA实验室等为首的国外著名高校和科研机构长期从事人脸识别这一领域的研究,并设立了专门的人脸识别小组,并取得了一定的成果。国内对人脸识别技术的研究起步较晚,直到上个世纪九十年代中后期才开始对人脸识别就行深入研究。虽然相对于西方发达国家,国内对人脸识别的研究起步较晚,但在经过长期的研究,已获得一定进步,在算法和应用方面也获取一定的成果。但总体来说,与国外先进技术相比还存在着一定的差距,但令人兴奋的是,在国家自然科学基金、863计划等资助下国内很多高校和研究机构都成立了专门的人脸识别课题研究组,其中包括清华大学、吉林大学、哈尔滨工业大学、浙江大学和中科院等著名高校和研究机构。此外,国内还有很多高校和研究机构的人员从事人脸识别技术的研究工作,经过多年的研究,这些研究人员在人脸识别领域中积累了丰富而宝贵的经验,并在国内外著名的期刊杂志上发表了大量的关于人脸识别领域的文献,并取得了一定的成果。2.3项目简介随着信息化的飞速发展,移动Android设备已进入了人们生活必需品的行列,也因它的方便、快捷,让人们的生活变得更完善。人像模式检测识别技术,是利用计算机图像分析、模型理论、人工智能及模式识别技术的非接触性高端模式识别技术,可完成从复杂的图像场景中检测出特征人脸信息,并进行匹配识别的智能分析过程。本项目主要是实现移动Android端的人脸识别,软件的功能模块可分为以下几个:人脸特征提取模块,人脸特征存储模块,人脸检测识别模块,隐私加密模块。软件具体功能有:(1)用人脸特征作为用户的隐私验证方式;(2)对某人进行人脸特征提取,可以进行对应的信息编辑并存入SD卡中;(3)对某人进行人脸检测识别,可以返回相应的基本信息;(4)可利用人脸特征对用户的隐私文件进行加密。三、项目已有的工作基础与条件(前期已有的准备工作)(1)人脸识别技术在这四十年的发展下已较为成熟,基于人脸识别的应用和产品已慢慢走进人们的生活,目前Android4.0以上的手机系统自带人脸识别功能,在Android系统下基于OpenCV的人脸检测实现需通过AndroidNDK工具集将利用JNI编写的本地代码组件嵌入到Android应用程序中、通过KPCA算法进行人脸识别来解除手机锁。系统分图像预处理、摄像头进行人脸检测、人脸识别三步,是较完善的人脸识别系统。(2)小组人员均配备有电脑,属软件专业学生,已学习C语言、Java基础以及数据结构,有较好的专业基础,拥有强烈的学习之心,并且有一定的项目开发经验。四、项目实施方案及实施计划(含预计完成时间)1、具体的研究内容、研究目标和拟解决的关键问题(难点问题分析)4.1.1软件身份认证功能模块又可分为样本采集模块、人脸识别模块、功能模块,示意图如图4.1.1所示。样本采集模块其主要功能是获取样本图像以及图像中人物的相关信息,对样本图像进行特征提取,并将提取得到的特征以及相关信息存入数据库中,样本图像可通过读取SD卡中的图像样本或通过摄像头获取图像样本。人脸识别模块主要是判断识别图像中的人脸属于人脸库中哪一人的人脸图像,将结果传给功能模块。功能模块是指图像分类模块,主要功能是通过人脸识别模块传递过来的信息,在数据库中查找,获得详细信息,进而实现图像的分类存储。图4.1.软件身份认证功能示意图4.1.2拟解决的关键问题(1)实现低内存消耗的人脸识别算法(2)基于人脸特征的隐私保护(3)实时的人脸检测2、实施方案及具体采取的方法、具体实施计划及可行性分析在Android系统下基于OpenCV的人脸检测实现需通过AndroidNDK工具集将利用JNI编写的本地代码组件嵌入到Android应用程序中、通过KPCA算法进行人脸识别来解除手机锁,所以整个实现过程分为两个步骤:首先,利用Android应用程序框架编写Java端代码I最后通过JNI与OpenCV接口编写本地C/C++代码,并利用AndroidNDK对其进行编译生成Java代码可调用的共享库,最后通过SDK生产Android应用程序。程序运用时分为以下步骤:图像采集设备、人脸图像定位程序(获取图像后对人脸从五官到轮廓的位置建模,确定采集对象的位置与要比对的图像位置相匹配)、图像预处理模块、提取图像特征、检索数据库(把提取的数据和数据库中需要认证的数据进行比对)、显示处理结果。4.2.1人脸识别的过程如图4.2.1所示。首先对输入样本进行采集的图像采集阶段;随后对采集的图像做预处理,主要是对图像样本进行归一化处理,称为图像预处理;接下来是判断图像是否包含人脸的人脸检测阶段;若图像中含有人脸则对图像中的人脸进行特征定位和提取,称为特征提取阶段;随后是通过提取到的不同人脸之间的不同特征进行分类的人脸分类阶段;最后的阶段是通过图像中的人脸特征与其他人脸进行对比,确认和识别身份信息的人脸识别阶段。其中人脸检测、人脸特征定位与提取和人脸识别这三个阶段是人脸识别最主要的组成部分。采用算法如下:(1)采用AdaBoost人脸检测算法,AdaBoost人脸检测算法是一种基于积分图、级联分类器和AdaBoost的方法。在这种方法中使用Harr特征来作为检测人脸的关键特征,首先使用AdaBoost算法对样本进行训练优选出少量分类能力最强的Harr特征作为弱分类器,并将弱分类器组合成强分类器。在检测时,使用分层策略设计了一种基于级联结构的强分类器进行人脸检测。在整个检测算法中,AdaBoost是其核心内容。使用AdaBoost算法进行特征选择并建立强分类器的过程描述如下:1)输入:训练样本集{(x1,y1),…,(xn,yn)},其中xi为样本集中第i个样本,yi={1,0},分别对应于正负样本,样本总数n,需要选择的特征个数为s。2)初始化样本权重:w1,j=1/n。3)对t=1,…,s,进行如下循环:①根据下式对样本权重归一化:wt,i←pt,i=wt,i∑Nj=1wt,i②对特征集合中每个特征fj设计弱分类器hj(x):hj(x)=1pjfj(x)<pjθj0{其它(2)加权分类误差定义为:εt=∑Ni=1wt,iht(xi)-yi(3)调整方向参数pj与阈值θj,使得分类误差εt最小。③在所有弱分类器中,选择加权分类误差最小的弱分类器hm,其对应的特征fm就是本轮选择出的特征。④使用下式更新样本权重:wt+1,i=wt,iβ1-ht(i)-yit(4)其中,βt=εt/(1-εt)。4)输出强分类器:H(x)=1∑Tt=1αtht(x)≥12∑Tt=1αt{0otherwise(5)其中,αt=log(1/βt)。(2)采用KPCA的人脸识别的算法,算法基本过程如下:1)图像预处理:将人脸图像的维数统一为256×256。2)图像曲波变换:把人脸数据库中的每幅图像进行Wrapping的曲波变换,提取出曲波的第一层系数C{1},并把它排列成列向量,组成曲波特征T,其中采用尺度(scale=3)和方向(angle=8)。3)核主主元分析(KPCA):对曲波特征T采用多项式核主元dijijk(x,x)=(x⋅x+1)分析的方法,提取出主成分(train_features),作为最后的人脸识别特征。4)识别:对于测试图像采用相同的处理方法求出特征(test_features),采用最近邻法进行分类。图4.2.1人脸识别过程示意图4.2.2软件实现过程示意图如4.2.2所示。在Android系统下基于OpenCV的人脸检测实现需通过AndroidNDK工具集将利用JNI编写的本地代码组件嵌入到Android应用程序中、通过KPCA算法进行人脸识别来解除手机锁,所以整个实现过程分为两个步骤:首先,利用Android应用程序框架编写Java端代码,最后通过JNI与OpenCV接口编写本地C/C++代码,并利用AndroidNDK对其进行编译生成Java代码可调用的共享库,最后通过SDK生产Android应用程序。图4.2.2软件实现过程示意图3、项目预期的成果和成效(包括成果形式、数量、实施范围等)(1)Android手机人脸身份认证与