基于Android终端服务响应式人脸识别系统研究
2023-06-21冯宗越许鹏徐媛媛黄永生
冯宗越 许鹏 徐媛媛 黄永生
摘 要:现有人脸识别技术基本基于远程服务调用实现,需要依靠多种网络传输技术。文中设计并实现了基于Wi-Fi直连的移动图像识别系统,远端服务器全部依赖于Android客户端实现服务调用和响应。同时将Wi-Fi直连技术与图像识别技术相结合,在一台Android设备上完成图像采集和Wi-Fi直连传送,在另一台Android设备上完成图像的Wi-Fi接收和识别,从而在整体上完成移动图像识别系统设计。
关键词:移动终端;人脸识别;Android;Wi-Fi直连
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)09-0107-04
Abstract: The existing face recognition technology is basically based on remote service invocation, relying on a variety of network transmission technologies. This paper designs and implements a mobile image recognition system based on Wi-Fi direct connection. Remote servers rely entirely on Android clients for service calls and responses. Simultaneously combining Wi-Fi direct connection technology with image recognition technology, image acquisition and Wi-Fi direct connection transmission are completed on one Android device, and Wi-Fi reception and recognition of images are completed on another Android device, thus completing the overall design of the mobile image recognition system.
Keywords: mobile terminal; face recognition; Android; Wi-Fi direct connection
0 引 言
科学技术以及社会经济的迅速发展使得人们的生活越来越多样化、信息化[1]。例如当今比较成熟的指纹识别技术,在智能设备上已经得到非常广泛的应用。在门禁系统、国家安全部门人员验证领域应用的人脸识别技术,具有较高的可信度。国内外的一些厂商和科研机构都在进一步深入研究相关的人脸识别技术以及应用场景,已经出现了各种高规格的应用场所,这一切都意味着人脸识别系统将日益普及[2]。
本文研究基于Android系统的Wi-Fi直连技术,并结合人脸识别相关算法,实现了基于Wi-Fi直连的移动图像识别系统,该系统具有高度的灵活性、移动性、高效性等特点。
1 系统分析
基于Wi-Fi直连的移动图像识别系统研究主要包括基于Android平台的Wi-Fi直连实现部分,以及人脸图像相关算法的实现部分。系统基于Android平台进行设计与研发,Android平台具有高度灵活性、极易移植性等特点,方便系统进行Wi-Fi直连的相关设计实现,同时结合人脸图像识别算法的相关研究,可达到综合各个学科技术,研究发掘新的应用模式的目的。该模式将告别C/S(客户端/服务器)模式,而是建立在对等的基础之上,即两端都是平等相同的,都可以选择是作为人脸识别服务器端还是人脸图像采集端。
1.1 人脸识别服务器端的系统分析
该系统服务器端一方面为另一端的人脸图像采集端的操作提供接口服务,另一方面为程序的运行及系统资源管理提供各项服务。相对于人脸图像采集端,该服务器端是一个基于Wi-Fi直連的为采集端提供各项服务后台的服务端。人脸识别服务器端主要包含Wi-Fi AP直连热点建立、算法测试、训练图像采集、判断识别等功能。服务器端的主要功能分析如表1所示。
1.2 人脸采集端的系统分析
人脸采集端中的功能模块相对比较少。其中为了防止其他用户随意使用该采集端进行非法操作,所以设置了用户名和密钥来核对用户的合法性。当验证通过才会进入服务页面,人脸采集端需求分析如表2所示。
2 系统设计
Android系统采用了Java的运行虚拟机技术,使得Android系统在跨平台上有着极大的优越性。本章节就是利用了Android平台设计了一个基于Wi-Fi直连的人脸识别系统,该系统集成到一个独立的APP应用上,只要安装上就可以实现对远程范围内的人脸进行识别和验证。其原理是:一台设备用来采集和发送图像,另一台Android设备用来接收图像数据及进行训练识别等操作。结合本节研究的Wi-Fi直连的AP直连方式,实现两台Android设备之间的直接通信,而不需要额外的无线介质。当然图像数据采集端也可以是小型的单片机或者Linux系统的嵌入式设备等。
本部分利用Android平台所具有的优势来完成图像数据采集。提出一种人脸识别系统的新思路,可以根据该对等模式来进行实际的应用研究,例如小型智能化移动人脸识别系统、临时的安全人脸检测系统等。系统结构如图1所示。
2.1 人脸图像采集端设计
本文所设计的采集端是基于Android平台开发的,该系统除了基础模块外,还包括图像采集模块、裁剪模块、网络模块、登录验证模块等[3]。该采集端是基于Wi-Fi AP接入点与人脸识别服务器端进行直连通信。其运行流程如下:
1)系统启动首先会进入开始页面,随后跳转到登录界面,登录界面会要求输入用户名和密码,点击登录会执行checkLogin()函数验证手机号和密钥是否正确,正确后函数返回boolean值True并依次执行下一服务。
2)通过上述的验证服务后,进入主服务界面。在验证之前要首先调用摄像头采集人脸图像,当成功返回完摄像头采集的图像后,还需要对该图像进行裁剪。裁剪成81×81大小的圖像,裁剪完成后,该图像会显示在该页面的ImageView控件上,让用户去选择是否使用该图片,还是选择重新采集人脸图像。
3)确定好要识别的人脸图像后,点击验证按钮,图像数据会通过Wi-Fi直接传送到人脸识别服务器端,等待服务器端返回的识别结果。如果返回结果为1,表示图像发送成功,且已得到服务器端识别响应;其余情况则表示未正确得到服务器端的响应。
4)以上为一张人脸图像识别的完整过程,如果需要再次识别,则只需从第2步骤执行即可。
以下为人脸系统采集端的具体设计与实现:
1)启动该系统,首先进入启动页面,随后进入到登录页面,需要校验手机号和密钥,校验通过之后,跳转到采集端的主要服务页面。分别如图2所示。
2)人脸图像的采集主要依靠该系统的图像采集模块。点击采集图像按钮会调用Android系统的摄像头进行图像采集,图像采集结束后,返回的图像数据,并不是所需要的最终图像数据。
3)采集的图像数据,根据Android系统的不一致以及硬件的不同,所以图像数据也不同,还需要进一步的标准化裁剪等工作。系统调用图像裁剪模块,裁剪出标准的81×81大小的图像。当裁剪成功后,会将人脸图像显示到该页面的ImageView控件上。
4)经过图像的采集、标准化工作后,使得这些图像达到正常识别的图像标准。点击验证按钮后,系统首先会把图像数据发送到移动服务器端,等待返回数据,根据返回不同的数据来判断验证的结果。移动Android系统采集端的流程图如图3所示。
2.2 移动人脸识别服务器端设计
服务器端充分利用Android平台来开发,所有的Android设备都可以集成该功能。服务器端主要包含有Wi-Fi模块(保证网络通信)、测试模块(测试是否可以正常识别)、采集人脸图像模块、数据处理模块(执行图像的裁剪等功能)、网络模块(保证图像数据的接收以及结果的返回)等。该服务器端开启某个端口,实时接收采集端发送过来需要识别的人脸图像数据,一旦接收到需要识别的图像数据之后,显示在服务器的ImageView图片控件上,同时进行识别,当服务器完成这一过程之后返回值1,其他情况返回非1值。系统的各个模块做如下介绍。
2.2.1 Wi-Fi AP直连模块
系统启动后首先会进入这个页面,需要设置Wi-Fi AP直连的SSID和密钥。点击开启后就可以正常的启用Wi-Fi AP,成功开启后人脸图像采集端就可与该服务器直接进行连接,实现通信。只有当AP直连成功开启后才能进入下一功能页面。Wi-Fi AP直连的设置页面如图4所示。
2.2.2 功能选择与测试模块
在上一步成功开启Wi-Fi AP热点后,进入下一服务。该服务页面主要包括五个选项,分别是开启服务、测试服务、设备信息、帮助、退出系统。进入系统后可以首先测试该系统的训练和识别算法是否可以正常运行。图5为测试服务页面。
测试功能首先对SD卡特定路径下的图片进行训练,得到各个图像的特征。然后可以选择SD卡下特定的测试路径的某张图片来进行识别。例如选择测试库的第1张图像来测试,如图5将识别的人脸图片和测试图片显示出来。
2.2.3 训练模块等相关页面
该模块一方面启动训练操作,另一方面开启网络端口的监听等功能。其部分拥有Wi-Fi网络的通信功能、图像训练及识别部分、增加人脸识别训练库部分功能。为了让某个人脸能够通过识别,就需要使用增加该人脸图像到库的功能。当增加人脸到训练人脸库后,首先需要对该库进行训练,训练结束后才能开启识别服务。如图6(a)为主要服务界面,图6(b)为正在对训练库进行训练。
3 系统测试
在系统进入实际使用之前,系统测试是必不可少的工作。通过系统测试可以发现系统中存在的功能缺陷、系统漏洞、系统性能不足等问题。系统测试主要从功能测试和性能测试上进行[4],下面首先对人脸采集端的功能进行测试。
人脸采集端通过一系列步骤或用户的输入,与输出结果和预测结果进行对比,以测试所设计应用程序是否达到要求。测试用例及结果如表3所示。
通过以上测试来检验该应用的性能及各项指标,通过表3可得程序测试通过。以下将对人脸识别服务器端进行测试,测试用例及结果如表4所示。
经过上面的步骤及测试工作已经做好了充足的准备。以下将对主要实现及成果进行展示。为了能从移动采集端接收到识别图片,需要开启网络服务器来不停监听某一个端口,当有采集端发送图片流时,服务器端读取到该流后生成图像,然后调用识别函数,等待识别结果,得出结果后,把该图像得到的正确地识别反馈到人脸图像采集端。
首先,在人脸识别服务器端采集多张人脸,作为人脸训练集。每个人可以采集多张图像,这样在进行图像识别时有更多特征脸来进行比对,使识别结果更加准确。
然后,服务器端对采集的图像进行训练,为下一步的识别做好准备。训练结束后,系统首先会提示训练的时长。最后,开启网络服务接收测试人脸图像样本。
图7为采集的一张人脸图像,以及服务器端接收到图像后进行显示,并且对是否得到正常识别的结果进行返回。
图8显示,采集端得到了从服务器端返回的图片且可以正常被服务器端接收,并且得到了正确识别的结果。
同时针对四种机型(不同的数据处理能力,不同的运行内存)进行数据处理的实验,该实验分别在500张人脸图像和1 000张图像下的人脸库上进行训练,并且分别对所耗时间进行记录。通过分析,基本配置的设备都可以满足图像训练的需要。
通过以上测试,已经初步达到了本章所设计与研发要求。同时可以对该系统进行另外的扩展工作,例如会场人员检测、门禁控制系统等场景的应用[5,6]。
4 结 论
设计与实现了基于Wi-Fi直连的移动图像识别系统,在两台Android手机设备上实现直连通信,并且结合人脸识别的相关理论基础,提出了NIB2DPCA过完整特征提取方法,并将此方法与Wi-Fi直连技术相结合,最终在移动Android平台上实现了该系统的应用研究。
参考文献:
[1] 李博.计算机图像处理与识别技术应用分析 [J].网络安全技术与应用,2020(9):142-143.
[2] 王贺霏,蒋云云,傅博.基于CiteSpace的人脸识别研究文献可视化图谱分析 [J].吉林大学学报:信息科学版,2022,40(5):710-719.
[3] 田浩兵.具有摔倒报警与跟踪定位功能的腕表式智能系统研究 [D].无锡:江南大学,2015.
[4] 冯振华.基于DBSCAN聚类算法的研究与应用 [D].无锡:江南大学,2016.
[5] 费宏昱.自然场景下幼儿的身份识别与行为分析研究 [D].杭州:浙江大学,2021.
[6] 冯宗越,徐媛媛.物联网的Wi-Fi直连技术概述与分析 [J].单片机与嵌入式系统应用,2017,17(6):47-50.
作者简介:冯宗越(1990—),男,汉族,山东临清人,高级工程师,硕士研究生,研究方向:计算机技术。