Android人脸识别系统的设计与实现毕业论文
2020-03-09 10:22:31
摘 要
随着网络信息技术的发展,信息安全问题尤为重要,对身份认证技术的要求也越来越高,人们开始利用生物识别技术进行身份认证和识别,而人脸识别,作为一种安全、准确、高效的身份认证技术已成为了当下研究的热点。人工智能的发展让人脸识别技术有了很大的提升,并逐渐应用到更多的领域,比如金融、公安机关等。本课题通过对人脸识别技术原理的分析,利用Android平台及调用face 人脸识别API开发人脸识别系统,系统功能包括人脸库注册、人脸搜索和人脸比对。主要工作如下:
(1)通过查阅相关文献分析人脸识别的技术原理。
(2)对face 人脸识别API进行深入分析。
(4)利用Spring Boot框架对后台进行开发;
(4)利用Android Studio进行人脸识别系统开发。
关键词:Android;face ;人脸识别;人脸检测;人脸认证;
Abstract
With the development of network information technology, the issue of information security is particularly important. The requirements for identity authentication technology are also getting higher and higher. People begin to use biometric identification technologies for identity authentication and recognition, and face recognition is a safe and accurate method. Efficient identity authentication technology has become the focus of current research. The development of artificial intelligence has greatly improved the face recognition technology and gradually applied it to more fields, such as finance and public security agencies. This topic through the analysis of the principle of face recognition technology, the use of Android platform and face face recognition API to develop face recognition system, system functions for the registration of face database, face search and face comparison. The main research content is as follows:
(1) Analyze the technical principle of face recognition, and in-depth study of face recognition algorithms by consulting related literature;
(2) Research Android system to understand the methods and processes of Android development and application;
(3) In-depth analysis of face face recognition API, to understand the realization principle of face face recognition interface, and briefly introduce the principle of face face recognition algorithm;
(4) Using the Spring Boot framework to develop the background;
(4) Development of face recognition system using Android Studio environment;
Key words: Android; Face ; Face recognition; Face detection; Face authentication;
目 录
第1章 绪论 1
1.1 研究的背景及意义 1
1.1.1 研究背景 1
1.1.2 研究目的及意义 1
1.2 国内外研究现状 2
1.3 课题研究内容 2
1.4 论文内容安排 3
第2章 人脸识别技术原理分析 4
2.1 人脸识别算法介绍 4
2.2 人脸识别的技术流程 5
2.3 本章小结 6
第3章 Android系统与Face 人脸识别介绍 7
3.1 Android系统介绍 7
3.1.1 Android系统架构简介 7
3.1.2 Android应用开发 7
3.1.3 Android开发环境搭建 8
3.2 Face 介绍 8
3.2.1 Face 人脸识别简介 8
3.2.2 face 人脸识别API介绍 9
3.3 本章小结 13
第4章 基于face 的人脸识别实现 14
4.1 系统架构设计 14
4.2 页面设计 14
4.3 后台搭建 15
4.3.1 相关平台介绍 15
4.3.2 后台设计实现 16
4.4 功能模块 18
4.4.1 人脸注册 18
4.4.2 人脸图集展示 21
4.4.3 人脸搜索 22
4.4.4 人脸比对 23
4.5 本章小结 24
第5章 系统测试 25
第6章 结论 28
参考文献 29
致 谢 30
第1章 绪论
1.1 研究的背景及意义
1.1.1 研究背景
人脸识别技术通过对采集的人脸图片进行人脸检测,检测出人脸的位置、大小,然后提取检测出的人脸的特征,这些特征包括眼、鼻,嘴角等各面部器官的轮廓大型、位置信息,根据这些人脸特征信息与数据库中已知的人脸进行比较,从而对检测的人脸进行身份验证。随着计算机网络的不断发展,人们的网络信息安全越来越重要,通过口令、密码形式的身份认证方法已经比较滞后,而且不安全,因此,人们逐渐开始利用生物认证技术的方法进行身份认证,比较常见的就是指纹识别、视网膜识别及人脸识别,人脸识别不需要人的主动参与,相比其他身份认证方法更加友好、精确。随着大数据人工智能时代的来临,对技术的要求更高,不仅要求数据准确性,还要求数据的安全性,这也推动了人脸识别的发展。人脸识别已经广泛应用到很多领域,商业、金融、公安部门、各种大型公共场合都用到了人脸识别,未来人脸识别具有广阔的市场前前景,人脸识别的研究也会更具考验,未来人脸识别的研究方向将围绕着人脸结构的相似性、人脸的各种姿态、年龄变化对人脸的影响等多因素展开。
1.1.2 研究目的及意义
人脸识别在各领域中已经发挥越来越重要的作用,不仅推动着学术的发展,在推动社会发展方面也有很大的现实意义[1]。目前,人脸识别被广泛应用与于公安机关侦查破案,公共场所的视频监控,通过识别证件照片的身份认证等领域。随着人工智能的发展,人脸识别技术在未来生活中会更加普遍,比如:“刷脸”进站,国内多地火车站、机场已广泛应用,不需要人工进行火车票的检查;“刷脸”入住,“酒店智慧前台系统”通过“刷脸”就能快速完成入住手续的自助办理;“刷脸”上班;“刷脸”取款,在许多银行的ATM终端已经可以通过刷脸取款,不需要携带银行卡。随着人脸识别技术的日趋成熟,发现这个社会很快会成为刷脸的时代,刷脸考勤,刷脸购物,刷脸吃饭,刷脸取款,所以,人脸识别的研究可能会改变未来人们的生活习惯,对人类社会的发展会有颠覆性的意义[2]。
1.2 国内外研究现状
人脸识别在国外发展的相对较早,最先应用该技术的是美国,在美国,人脸识别已经深入到各个领域,比如在机场设置面部识别系统,刷脸“刷脸”登机,FBI研究的人脸识别系统存储了一半美国成年人的面部数据,而且识别准确率很高。近年来,美国3D人脸识别技术也发展比较快,美国知名的人脸识别系统如Google的FaceNet系统及Facebook的DeepFace系统都很受欢迎。人脸识别在英国、日本等发达国家也发展比较迅速。
国内对于人脸识别的研究较之国外稍晚一些,许多高校学府教授也开发出了人脸识别系统,如中科院计算所高文研究组开发的GodEye系统[3]。2008年,在北京奥运会及残奥会开闭幕式,使用了由CBSR研制的人脸识别技术进行实名制门票查验。国内人脸识别技术在各大企业也有较快的发展。如中国互联网金融巨头蚂蚁金服可以通过刷脸支付;中国互联网巨头百度在北京和美国硅谷分别成立人工智能研发中心,人脸识别技术就是重点攻克的项目之一。在最强大脑节目中,百度研发的小度机器人,在人脸识别环节中战胜人类,说明人脸识别技术已经达到了人类的视觉极限;许多中小型企业如云从科技、汉王、Face 、深圳泰首、天城盛业等在人脸识别技术方面都有很大的发展。人脸识别技术也应用在了手机市场领域,比如小米、vivo手机。
1.3 课题研究内容
本课题主要内容是利用Android平台和face 提供的人脸识别API开发一个人脸识别系统,主要功能包括:建立人脸库、人脸图像识别(人脸搜索)、人脸身份验证(人脸比对)。
(1)建立人脸库
通过手机摄像头拍照获取人脸照片或者从手机本地相册上传人脸照片,取添加人脸对应的身份信息,如该人脸的名字等,然后将人脸信息发送到后台,从而建立人脸库。
(2)人脸搜索
通过将检测的人脸图像与人脸数据库中的所有人脸图像进行比对,计算他们的相似度。根据计算的结果,找出最相似的一张或多张人脸,给出目标人脸身份信息。
(3)人脸比对
将需要检测的人脸照片与已知的人脸照片进行比对,确认两张照片是否是同一个人,系统对此做出判断。
1.4 论文内容安排
本论文大致分为六个章节,各章节内容大概如下:
第一章 介绍人脸识别研究的背景及意义、国内外的研究现状,人脸识别的一些应用场景与展望,并介绍了本课题研究的主要内容。
第二章 对人脸识别技术的原理进行简要的分析,包括人脸识别的一些算法,人脸识别的技术流程等,为后面系统的设计与开发奠定理论基础。
第三章 介绍本系统开发所用的平台face 人脸识别API,本系统是基于Android平台,利用face 提供的人脸识别API进行系统开发的。
第四章 对系统进行设计开发,包括系统的后台搭建、app界面设计以及系统功能的实现,此章节是本论文的核心部分。
第五章 对系统功能进行测试与分析
第六章 对论文进行总结
第2章 人脸识别技术原理分析
2.1 人脸识别算法介绍
人脸识别算法[4]大致可分为两类:一类是基于特征的人脸识别算法,另一类是基于外观的人脸识别算法[5]。基于特征的人脸识别算法主要是基于特征模板和人脸器官几何关系约束来实现的,首先对输入的人脸图像进行处理,提取出眼睛、鼻子和嘴等面部特征,然后计算这些面部特征之间的几何关系,如距离、角度等[6],即把输入的人脸图像转换为几何特征向量,再将人脸的几何特征与人脸库中所有人脸的机会特征进行比较从而进行人脸识别,由于此类算法对人脸图像的识别比较粗略,因此在实际应用中并不采用。基于外观的人脸识别算法则使用人脸图像的全局信息来辨识人脸,用二维数组来存放图像的灰度值,然后直接把检测的人脸图像和数据库中的所有人脸图像进行比较[7]。常用的人脸识别算法有局部特征分析方法、神经网络方法、特征脸法等。下面介绍一下特征脸法的算法原理。
特征脸法又称为基于主成分分析法(PCA)[8],基本思想寻找人脸图像样本的特征向量,用这些特征向量表示特征脸。大体思路如下:
(1)创建一个集合T,该集合里包含了M张人脸照片,首先将每张照片转化成一个N维的向量,然后把这M个向量加入到集合T。可得到:
(2.1)
(2)求M个N维向量的平均值Ψ 。将T集合里面的M个向量累加,然后取平均值,平均值可看成平均脸的特征向量。
(2.2)
(3)计算T集合中每个向量和平均值的差值Φ。
(2.3)
(4)求解M个正交单位向量表示M张照片的特征向量。因为每一张照片是一个N维的向量,所以可以设一个N x N的L矩阵,则有:
第m行n列的元素:
(2.4)
(2.5)
表示L矩阵的特征向量,即为表征人脸的向量。
(5)上传一张新的人脸进行人脸识别,用特征脸表示新脸
(2.6)
M个,可以得到一个向量
(2.7)
再求新脸特征向量与集合类所有表征人脸向量的欧式距离
(2.8)
如果距离小于阈值,说明新的人脸和集合里面第k个人脸可能是同一个人。
2.2 人脸识别的技术流程
人脸识别系统流程主要分为:人脸检测、人脸特征提取、人脸识别三个过程。流程图如下:
图 2.1 人脸识别技术流程图 |
人脸检测:检测图像中是否含有人脸,并在图像中标出人脸的位置和大小。一般采用haar特征和Adaboost算法训练级联分类器[9],然后对图像中的每一块输入到级联分类器,如果某一矩形区域通过了级联分类器,则被判别为人脸图像[10] [11]。
人脸特征提取:人脸特征值指的是多个数值组成的向量,向量的维度即其中的数值个数。在提取人脸特征前要进行人脸特征的模型训练,即通过大量的人脸图像采用深度学习的方式训练出人脸的特征模型,根据人脸特征模型去提取人脸特征[12]。
人脸识别:将检测出的人脸提取的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断[13]。人脸识别又分为两类:一类是人脸比对,即人脸图像与数据库中已存的该人图像进行比对[14]。另一类人脸搜索,即人脸图像与人脸库中所有人脸进行匹配[15]。
2.3 本章小结
本章内容属于人脸识别的理论基础,通过查阅文献、博客等资料,对人脸识别的技术原理有了大致的了解,也深入的学习了人脸识别的算法,为系统开发准备理论基础。
第3章 Android系统与Face 人脸识别介绍
3.1 Android系统介绍
3.1.1 Android系统架构简介
Android是一个基于Linux平台的开源手机操作系统,它提供了一个内容丰富的应用框架,支持开发者在 Java 语言环境中为移动设备开发各种应用。Android系统架构可分为四层:Linux内核层、系统运行库层、应用框架层和应用层。简言之,Linux内核层主要提供手机硬件设备的各种底层驱动,如Android电源管理驱动、日志驱动、WiFi驱动等;系统运行库层包含许多系统类库,比如Media Framework库,SQLite库,;应用框架层提供各种API,比如活动管理器(Activity Mananger),内容提供器(Content Provider),开发者在开发应用的时候可以调用这些API;应用层是指在手机上的各种应用,比如QQ、微信、联系人、短信等[16]。
3.1.2 Android应用开发
Android在进行应用开发的时候主要利用Android系统提供的四大应用组件、系统控件多媒体等工具来开发应用。四大组件分别为activity(活动)、service(服务)、content provider(内容提供器)、broadcast receiver(广播接收器)。
Activity展示的是可视化的用户界面,一个应用程序界面一般由多个activity构成,每个activity之间通过intent进行通信。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: