基于Android人脸识别系统设计与实现

基于Android人脸识别系统设计与实现

摘要:人脸识别是公共安全领域的研究重点。随着移动互联网的快速发展,移动式终端人脸识别应用日益广泛。探讨人脸识别在Android系统中的实现以及用户个人信息保护,包括人脸检测、特征提取和特征识别。首先,通过分析比较,采用基于Adaboost的算法检测人脸,基于PCA的特征脸算法实现特征提取和特征识别。然后,分析相关研究现状以及技术可行性,选择OpenCV计算机视觉库来实现人脸检测和人脸识别。最后,通过JNI调用本地OpenCV代码实现个人信息保护。该系统具备手机人脸解锁、程序锁、偷窥者记录查询和远程查看偷窥者信息等功能。

关键词关键词:人脸检测;人脸识别;移动警务;OpenCV;Android

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2016)004-0087-03

0引言

移动互联网的发展对人们生活产生了巨大影响。Android系统是目前移动设备的主流操作系统之一,相关数据表明,Android市场份额占据了主导地位[1]。人脸识别因具有并发性、非接触性、非强制性、操作简单等特点,目前,已被广泛应用于安全认证、预警防控、刑事侦查等方面。在国内,人脸识别的应用大都还停留在PC机上,基于移动设备的研究很少。而且,随着移动信息安全意识的提高,在移动平台上进行人脸识别具有广阔的发展前景,同时也面临诸多挑战[2]。本文结合移动终端的特点,研究并设计了基于Android的人脸识别系统,更好地满足移动警务的需求。

1人脸识别相关算法

人脸识别的处理过程包括人脸处理、人脸检测、人脸特征提取和人脸识别技术。人脸检测的算法有很多种,典型的有特征抽取算法、人脸小波检测、基于模板匹配、神经网络、支持向量机方法、Adaboost算法等[3-5]。本文选择Adaboost算法实现人脸检测。

人脸识别技术包括特征提取和特征识别,实现方法可概括为3类:基于几何特征方法(欧式距离判别法)、基于模板方法(特征脸方法、神经网络方法等)和基于模型方法(隐马尔科夫方法)[6-8]。本文选择基于PCA的特征脸算法实现人脸特征提取与特征识别。由于篇幅所限,不详细展开上述选择的两种算法具体实现步骤。

2AndroidNDK

AndroidNDK[9]集成了交叉编译工具,使采用C、C++和Java在Android平台上混合编程、相互调用成为可能。AndroidNDK实现应用程序的过程如图1所示。

3基于Android的人脸识别系统设计

(1)系统总体架构。系统共分为五大模块,如图2所示。

(2)系统设计。本系统目标是在人脸识别算法基础上实现手机安全。手机安全包括系统锁屏、个人私密应用加密、偷窥者查看以及远程查看偷窥者信息。系统锁屏就是将系统原有的解锁方式换成人脸解锁。个人私密应用加密目的是保护用户的私密应用,比如联系人、QQ、微信等。偷窥者查看主要为用户可以查看偷用了手机人的人脸图像信息。远程查看偷窥者信息主要为手机防盗,当有人恶意攻击手机人脸解锁时,系统会将操作人员图像信息发送到用户指定的安全邮箱,用户可以登录邮箱查看图像信息。系统需求分析用例图及数据流图分别如图3、图4所示。4系统实现

(1)人脸检测。Adaboost人脸检测算法首先要训练人脸得到人脸分类器,由于OpenCV中已经提供现有的分类器,选择haarcascade_frontalface_default.xml作为本系统的分类器。主要用到的函数如下:cvHaarDetectObjects(img,cascade,storage,1.1,4,0,cvSize(30,30))。其中,cvSize(30,30)表示检测窗口的最小尺寸,1.1表示相邻两次扫描窗口按照10%比例放大。

(2)人脸特征提取。用OpenCV实现基于PCA的Eigenface人脸识别方法。首先将训练人脸图像转换为特征向量表示,并投影到PCA子空间,然后保存训练信息到指定的xml文件中。本系统使用照相机拍摄用户3张人脸作为训练样本。关键代码如下:

cvCalcEigenObjects(nTrainFaces,faceImgArr,eigenVectArr,

CV_EIGOBJ_NO_CALLBACK,0,0,&calcLimit,pAvgTrainImg,eigenValMat->data.fl);

(3)人脸特征识别。将测试人脸投影到PCA特征子空间中,计算图像向量并与特征提取阶段保存的xml文件中的数据对比,可以得出是否是同一张人脸。关键代码如下:

cvEigenDecomposite(faceImgArr[i],nEigens,eigenVectArr,0,

基于android系统的人脸检测系统设计 论文,基于Android人脸识别系统设计与实现.doc...相关推荐

  1. 人工智能Java SDK:人脸检测,应用于包括人脸门禁系统、刷脸支付等各行各业

    人脸检测SDK 人脸识别 广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集.人脸定位.人脸识别预处理.身份确认以及身份查找等: 而狭义的人脸识别特指通过人脸进行身份确认或者身份 ...

  2. 基于机器视觉的图像处理缺陷检测方法论文学习

    基于机器视觉的图像处理缺陷检测方法论文学习 Machine Vision based Defect Detection Approach using Image Processing Abstract ...

  3. 人脸检测概述(不是人脸识别)

    目录 1  引言... 3 2  人脸检测技术的发展与现状... 4 3  人脸检测算法相关工作... 4 3.1  评价指标... 5 3.2  人脸检测常用数据库... 6 3.2.1  FDDB ...

  4. MTCNN人脸检测与对齐和FaceNet人脸识别

    一 MTCNN算法结构 MTCNN算法是一种基于深度学习的人脸检测和人脸对齐方法,它可以同时完成人脸检测和人脸对齐的任务,相比于传统的算法,它的性能更好,检测速度更快. MTCNN算法包含三个子网络: ...

  5. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  6. OpenCvSharp人脸检测(一) HaarCascade与LbpCascade人脸检测

    本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCvSharp人脸检测(一) HaarCascade与LbpCascade人脸检测效果对比! 前言: 实例来源(OpenC ...

  7. 基于haar+adaboost的人脸检测、深度学习的人脸识别技术应用综述

    版权声明:本文为博主原创文章,未经博主允许不得转载.欢迎交流,QQ:896922782,微信:15058133936 目录 第一节 核心技术 3 一.人脸检测 3 二.特征点检测 5 三.人脸归一化 ...

  8. java公交查询系统开题报告_毕业设计论文-基于JAVA的公交查询系统的设计与实现.doc...

    毕业设计论文-基于JAVA的公交查询系统的设计与实现.doc 还剩 42页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内 ...

  9. 人脸检测(十九)--人脸检测综述(2018.2)

    本文转自:https://zhuanlan.zhihu.com/p/32702868,若侵即删.这篇文章,偏工程实用,不是学术界意义上的检测综述,所以,有些阐述,过于绝对化.挑着看吧. 人脸检测系列博 ...

最新文章

  1. apache mediawiki 安装_MediaWiki系统的安装、配置和修改方法(转载)
  2. 从程序员到项目经理(20):让员工为目标而干活
  3. 图片的宽铺满全屏 微信小程序_2020冬至快乐图片!,图片祝福贺卡,朋友圈冬至早安问候语动态图片微信小程序...
  4. ADC和DAC中多通道的含义
  5. 【Servlet】Servlet与MVC分层开发
  6. 单机最大tcp连接数
  7. 20165329 学习基础和c语言调查
  8. RubikFX:用JavaFX 3D解决魔方难题
  9. tomcat 洞合集
  10. log4cxx OutputDebugString DebugView dbgview
  11. 2020android加固,360加固2020最新脱壳全套图文教程-一一网络
  12. 算法之二叉树各种遍历
  13. 【R语言】结巴分词与词性提取(以“提取知乎问题标题的频繁词前100个形容词”实战为例)(3月25日学习笔记)
  14. 随心测试_Python Se_007下拉列表操作2
  15. 介绍一些ddos产品的厂家
  16. 【PHP】解决数据库查询出来的中文内容显示为问号“??”
  17. 梦回山海推广码jn0010 梦回山海推广码
  18. python-华为路由器交换机批量处理ip与mac绑定
  19. kafka(1) 初识
  20. JavaScript数据结构之字典和散列表

热门文章

  1. Selenium浏览器指纹模拟
  2. 第一课:Figma 软件安装与汉化
  3. 西安电子科技大学马克思主义683/883高分学长经验分享
  4. 小程序源码:图片拼图微信小程序源码下载
  5. 响应后端返回的数据,如何将数据展示出来
  6. java序列化方案对比
  7. 微软推送补丁的服务器叫什么,微软推送Windows Server 2019更新KB4489899补丁
  8. JAVA线程的创建和使用
  9. C语言程序:判断素数
  10. 《Python编程:从入门到实践(第2版)》