基于Android系统智能终端在人脸识别上的应用开发探讨
2017-07-12傅纬球
傅纬球
广东天波信息技术股份有限公司
基于Android系统智能终端在人脸识别上的应用开发探讨
傅纬球
广东天波信息技术股份有限公司
随着对信息安全的重视,人脸识别技术被广泛的应用于各种领域。基于Android系统智能终端在人脸识别上的应用开发具有非常广阔的发展远景,同时将面临着巨大的挑战,本文结合Android系统智能终端的特点,从基于Android系统智能终端在人脸识别上的应用开发的难点入手,并对应用开发的关键技术进行阐述,最后介绍了实现Android系统智能终端人脸识别应用的功能模块。
Android系统;智能终端;人脸识别;应用开发
随着现代社会发展Android系统智能终端得到了极大范围的普及,各种信息铺天盖地充斥于网络中,这就要求对信息安全加以保护,如何使身份验证和识别技术更加便捷和安全成为新时期信息安全研究的重点,这样生物特征识别技术和人工智能技术孕育而生,这其中人脸识别技术因具有并发性、非接触性、非强制性、操作简单等特点,独树一帜被广泛的应用于各种领域。Android系统是当前智能终端设备的主流操作系统之一,它伴随着智能终端设备的普及也逐渐在智能网络中占据主导地位,基于Android系统智能终端在人脸识别上的应用开发具有非常广阔的发展远景,同时将面临着巨大的挑战,本文将结合基于Android系统智能终端的特点,在现有技术基础上,实现对人脸识别的速度化、准确化、便携化等处理的智能终端设备。
1 基于Android系统智能终端在人脸识别上的应用开发的难点
由于基于Android系统智能终端在人脸识别上的应用是对人脸特征数据的处理,而这种识别技术又受制于目前研究水平,如基于LBP特征的人脸检测技术和基于Fisher特征的人脸识别技术,同时在人脸检测的处理上又存在着多种算法的困扰,如有特征抽取算法、人脸小波检测、基于模板匹配、神经网络、支持向量机方法、Adaboost算法等,所以在基于Android系统智能终端在人脸识别上的应用开发中一定要注意开发的应用各种算法的选取。
2 基于Android系统智能终端在人脸识别上的应用开发的关键技术
智能终端在人脸识别上的应用开是基于Android系统的,但是由于Android系统是基于移动设备上的,它在软件开发上与传统的PC设备开发不同,同时介于智能终端在数据处理上其运算速度和内部存储也无法与PC设备比拟,另一方面数据在传输方式上也存在着多种选择,因此在开发基于Android系统智能终端在人脸识别上的应用时,需要注意如下几个关键点。
2.1 Android系统智能终端人脸识别应用程序的特点
基于Android系统智能终端在人脸识别上的应用,在软件使用中要每个应用都建立一个独立的进程,而且每个进程都运行于一个Dalvik虚拟机中,并通过其内部设置的权限来控制对应用的使用权限。
2.2 Android系统智能终端人脸识别应用开发框架技术
Android系统智能终端人脸识别应用在开发过程中,如果选择一种合适的开发框架将会对开发起到事半功倍的效果。目前,国内外相关的Android系统智能终端应用软件的开发框架有很多,这其中包括Afinal、xUtils、ThinkAndroid、LoonAndroid、KJFrameFo⁃rAndroid。
2.3 Android系统智能终端人脸识别应用开发中语言的选择
在目前的人脸识别算法多数是基于C语言完成的,而且在这种算法中往往会调用Opencv库,这样在算法上有较高的执行效率但这与Android系统的开发语言不同,为实现两者之间的相互调用,必须使用JNI接口。Android系统应用层采用的Java语言,An⁃droid系统中提供的JNI接口使得在Android程序中能方便的调用C语言或其他语言。
2.4 Android系统智能终端人脸识别应用数据存储技术
由于人脸识别应用中识别过程离不开对原始人脸特征数据库的调用和存储,基于Android系统智能终端的数据存储方式有两种,它们分别是:本地数据库、网络数据库。而网络端的云存储越来越成为主流。
2.5 Android系统智能终端人脸识别应用数据计算方式
在人脸识别应用中识别过程在实现采集人脸特征数据与人脸特征数据库的计算比对都离不开数据计算,Android系统智能终端的数据计算有两种,它们分别是:智能终端设备本地中央处理器的计算、基于网络的云计算。由于智能终端人脸识别应用本地计算是嵌入于Android系统平台的,其计算能力相对有限,而基于网络的云计算可以利用网络中的大型计算机的超级运算速度或是采用全网络接近于无限分布计算的并行计算能力,其两者运算能力有着天壤之别,目前网络的云计算有逐步取代智能终端设备本地计算的趋势。
2.6 Android系统智能终端人脸识别应用数据的传输
Android系统智能终端人脸识别应用中的数据传输应该采用实时传输方式,在Android系统中基于无线网络的传输方式可以极大的提高智能终端人脸识别应用的使用范围,在无线传输方式中也正经历着由4G逐渐向5G的转变过程,目前虽然5G技术标准尚未确立,但其应用空间将非常广阔,因此在开发此类应用中必须为这种方向预留一定的发展余地。
3 基于Android系统智能终端人脸识别应用的功能模块
基于Android系统智能终端人脸识别应用,其主要由图像采集模块、人脸图像预处理模块、人脸检测模块和人脸识别模块等共四个模块组成。
3.1 图像采集模块
图像采集模块主要是利用Android系统智能终端摄像头进行图像采集,通过Android系统中JNI接口调用Opencv库,实现调用摄像头、对拍摄的物体进行自动对焦、连续拍照等功能,快速获取图像帧的信息。
3.2 人脸图像预处理模块
人脸图像预处理模块是对采集到的图像帧进行处理,处理后把图像的外界影响因素尽量降低,如光照,角度等,主要涉及的操作有几何变换、剪裁;直方图均衡;使用双边滤波器减少噪声;去掉一些剩余头发和人脸图像背景。
3.3 人脸检测模块
人脸检测模块就是经预处理的图像选定正负样本,提取其LBP特征,并用直方图表示,并利用Adaboost人脸检测方法循环多次进行人脸分类判断,人脸检测检测器通过大量的人脸和非人脸图片进行训练,存在XML文件中。在得到每个像素的LBP编码描述后,采用统计直方图方法可得到图像的LBP直方图描述。
3.4 人脸识别模块
人脸识别模块是根据测试者人脸图像计算人脸LBP特征,得到识别结果。如果测试者的人脸特征在我们设置的阈值的内,则输出识别人脸的姓名,否则提示人脸库中无此人,请摆正人脸配合识别。
本文中基于Android系统智能终端人脸识别应用应该是了结合当前流行的技术标准,也就是应该建立在基于Android系统平台的4G实时云计算的系统中,针对Android系统智能终端的硬件能力有限的特点,开发中利用Android平台的4G传输方式实时将人脸图像预处理模块得到的数据上传,利用网络资源建立强大的云计算功能完成Adaboost人脸检测算法和基于LDP特征脸的人脸识别算法,并将OpenCV视觉开源库存储云大数据中心,在Android系统智能终端直接显示运行结果。同时,Android系统平台所具有的开放性与便捷性特点,在充分结合人脸识别系统之后,提升了信息的安全等级,具有广阔的发展前景。
[1]王娜.基于手机平台的人脸检测系统的研究[J].电视技术,2014,36(11)114-117
[2]吴迪.智能环境下基于视听信息多层级融合的身份识别[D].兰州:兰州理工大学,2014.
[3]蔡芷铃,林柏钢,姜青山.基于人脸识别技术的Android平台隐私保护系统设计[J].信息网络安全,2014(9):50-53.
[4]杨文璐,郭明.基于Kinect的实时人脸识别系统[J].计算机应用与软件,2014,31(5):64-67,214.
[5]周勇,张嘉林,王桂珍,等.Android平台下人脸识别系统的研究与实现[J].南京工程学院学报(自然科学版),2013(1):53-57.