您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于边缘计算的人脸识别系统

基于边缘计算的人脸识别系统

来源:华佗小知识
第23卷第12期2020年12月文章编号: 2096-1472(2020)-12-40-03软件工程 SOFTWARE ENGINEERINGVol.23 No.12Dec. 2020DOI:10.194/j.cnki.issn2096-1472.2020.12.012基于边缘计算的人脸识别系统刘思,马靖瑜,袁倩,吴粉侠(咸阳师范学院计算机学院,陕西咸阳712000)&*****************; *****************; *****************; ****************摘 要:随着科技的发展,智能设备产生的大量数据给云计算处理方式带来了巨大的压力,进行快速、有效地

人脸识别的技术要求日益迫切。本文基于边缘计算,采用Qt+OpenCV技术设计了人脸识别系统,实现了人脸识别模 块在ARM开发板上运行,完成了边缘端及服务器端的开发,优先在移动设备所处的边缘端对图像进行处理,并结合了

AdaBoost算法进行识别。该系统可以减少图像目标识别的计算成本、减少网络数据泄露的风险、增强服务响应能力。关键词:人脸识别;AdaEoost算法;OpenCV中图分类号: TP391.4 文献标识码: AFace Recognition System based on Edge ComputingLIU Si, MA Jingyu, YUAN Qian, WU Fenxia(School ofComputer Science, Xianyang Normal University, Xianyang 712000, China)******************; *****************; *****************; ****************Abstract: With the development of science and technology, large amount of data generated by intelligent devices has brought great pressure to cloud computing processes. There is an urgent demand for fast and effective face recognition

technology. This paper, based on edge computing, proposes a new face recognition system by using Qt+OpenC technology.

The new system enables face recognition module to run on the ARM development board and the both edge end and server end are completed. Images are firstly processed on the edge end of mobile devices, then recognized through AdaBoost

algorithm. The system can reduce the computing cost of image target recognition, lower the risk of network data leakage, and improve service response.Keywords: face recognition; AdaBoost algorithm; OpenCV1 引言(Introduction)人脸识别是机器视觉研究的核心,随着计算机硬件的不 断发展,人脸识别的应用范围更加广泛。人脸识别最初应用

存储节点能耗。为了更好地规避云计算数据处理压力过大这一问题,边

缘计算应运而生。边缘计算属于一种分布式计算,在网络边 缘侧的智能网关上,就近处理采集到的数据,而不需要将大

于门,主要用于刑侦破案和通过照片识别罪犯,近几 年逐步应用于国家、社会及企事业等领域[1]。传统的人脸识别大多是基于云计算的,云计算是数据行

量数据上传到远端的核心管理平台[3]。和云计算相比,基于边 缘计算的人脸识别,可以利用云服务器上已有的数据和计算

业的大势所趋[2]。对于云计算来说,所有的数据都要汇总到后 端的数据中心完成。在“云、管、端”三者的角色中,云计

能力,得到结果的速度更快,图像识别时,得到识别结果的

响应时间大大缩短,而且当识别结果返回的同时,将会把图 像的特征信息发送给云服务器作为新的训练集。本文设计了基于边缘计算的人脸识别系统,在该系统 中,摄像头采集人脸图像上传至边缘端,边缘端根据实际情

算更侧重于“云”,是实现最终数据分析与应用的场所。而 基于云计算模型的人脸识别技术存在一些问题亟待解决:① 各种终端上传的图像、视频等数据由于信息量大,对网络带 宽要求较高,全部上传至云端,云端压力较大,很难保证数

况,若需要进行训练,可选择将人脸图像上传至服务器端进

据处理的实时性。②存储和管理大量冗余图像数据,增加了基金项目:2019年度咸阳师范学院大学生创新创业训练计划省级项目(S201910722046).行训练,得到训练模型并把训练模型传回边缘端或边缘端进

第23卷第12期刘思等:基于边缘计算的人脸识别系统41行比对识别;若需要进行识别,则可以直接利用服务器端训

练好的模型进行识别,并将识别结果保存至服务器端。这一 特性使该系统具有更高的可实现性叫2 系统设计(System design)2.1体系结构设计基于边缘计算的人脸识别系统开发主要包含两部分:边

缘端的开发以及服务器端的开发。该系统通过边缘端的摄像 头采集人脸图像,使用智能边缘管理运行包进行识别,把识

别结果保存并上传至服务器端。在服务器端通过智能边缘管 理平台进行人脸图像的训练,将训练模型保存至服务器端, 边缘端根据需要从服务器端获取训练模型进行识别。本文主

要开发技术包括OpenCV机器视觉的技术、Linux系统下的编 译和移植技术,以及最终移植到开发板的相关技术。边缘端系统使用粤嵌GEC3399人工智能嵌入式开发板, 搭建Ubuntu16操作系统,同时配置ARM版OpenCV机器视觉

库,其中ARM版的OpenC V库通过交叉编译环境调整为合适 的版本。边缘端通过摄像头对人脸图像进行采集,使用服务

器端训练好的训练模型进行识别。OpenCV机器视觉库与开发 板自带的3D图形加速引擎配合,能够有效增强图像的处理能

力。人脸图像进行识别前需先使用OpenCV库对图形进行灰度 化处理将图形转化为更易处理的灰度图像,然后将其传输至

服务器端[5]。服务器端的主要环境配置包含Ubuntu16、Qt Creator

5.7.1、OpenCV3.3.4 和交叉编译工具链 arm-linux- gcc-4.8.3。边缘端和服务器端的交互通过挂载的形式来实

现。边缘端采集人脸图像上传至服务器端,服务器端对其进 行训练,获得训练模型,将训练结果进行保存并返回给边缘

端进行识别。基于边缘计算的人脸识别系统框架如图1所示。图1基于边缘计算的人脸识别系统框架图Fig.1 Frame diagram of face recognition system based on edge computing2.2嵌入式系统的平台搭建搭建嵌入式Linux平台就是搭建服务器端环境、边缘端环

境以及建立它们的连接。嵌入式系统一般没有自举程序,必

须通过启动程序引导硬件系统进入操作系统。首先将U-Boot

植入嵌入式控制系统,U-Boot可以引导操作系统进行装载和 运行,同时对系统的频率、定时器进行设置,初始化一个调 试串口,通过该串口或以太网都可进行数据下载。然后在服

务器端安装Linux的发行版Ubuntu16,边缘端配置好底层的

环境,同时在服务器端安装交叉工具链(ARM版),用交叉工 具链编译程序部署到边缘端[6]。搭建系统首先需安装软件环境,核心步骤如下:(1) PC机安装虚拟机,虚拟机安装linux操作系统。(2) 在宿主机的Linux操作系统上安装交叉编译工具。(3) 宿主机上搭载nfs,是宿主机的文件夹可以挂载到开发

板上。(4) 在宿主机上安装串口虚拟终端(secure CRT),操作开

发板。本文以支持跨平台运行、易移植的Qt Creator5.7.1作为 开发平台,该应用开发嵌入式产品更加方便高效。具体步骤

如下:Qtcreator(1)交叉编译,安装图形化界面的Qt。下载并

配置源码包 qt-everywhere-opensource-src-5.7.1,通过

arm-linux-gcc-4.8.3交叉编译,设置环境变量。⑵OpenCV3.3.4机器视觉库交叉编译,安装cmake及相

关依赖库,并编译OpenCV,配置环境变量。(3) 在交叉编译好的Qt5.7.1中导入交叉编译后的

OpenCV3.3.4,在Qt的.pro文件中加入动态链接库。(4) 挂载开发板下可执行的程序,在Qt中把人脸识别程序

进行交叉编译,挂载到开发板上执行。3 人脸识别(Face recognition)3.1人脸图像的预处理人脸图像采集时存在光照、角度等因素的影响图像质量

低,不利于机器识别,可以通过对采集到的图像进行光照补 偿、去噪等方法提高图像质量、加强有用信息,在人脸特征 提取之前有选择地进行适当的预处理操作。3.1.1图像识别预处理摄像头采集人脸图像时,采集环境和采集设备均存在 一定的差异性,光照明暗程度、设备性能的优劣等都会影响

到人脸图像的质量,往往会造成噪声、对比度低等缺点。同

时,距离问题和焦距大小等会导致人脸在整幅图像中的尺 寸和定位不准确。为了解决以上问题,必须对图像进行预 处理。人脸图像识别前预处理主要包括人脸图像的增强。针 对低质量的图像一般要进行图像增强,图像增强是为了改善

人脸图像的质量,不仅在视觉上更加清晰图像,而且使图像

更利于计算机的处理与识别。一般可采用暗光增强、超分辨

率、去噪、去除运动模糊等方式看到更多的细节,尤其是对 人脸来说,增强后可以提升人脸的识别率。3.1.2图像训练预处理人脸图像训练预处理的过程主要包括人脸扶正和归一化 两部分。为了得到人脸位置正确的人脸图像,需要通过人脸

关键点实现,并根据这些关键点对人脸进行对准和校准。人脸图像归一化的目的是使不同环境及设备条件下拍摄

的同一个人的照片具有一致性。人脸归一化包括两个方面的 内容:一是几何归一化,二是灰度归一化,即取得图像大小 一致、灰度取值范围相同的标准化人脸图像。42软件工程2020年12月3.2人脸图像的检测、采集在进行人脸图像采集前,输入用户姓名及编号,方便

图像数据的有序存储。填写完成后打开摄像头,在图像中准 确标出人脸的位置和尺寸。人脸图像中包含着十分丰富的模 式特征,挑选其中有用的信息,并利用这些信息实现人脸检

测。点击采集头像按钮,采集10张112x92(像素)人脸图片。 摄像头采集过程中,为了提高识别的准确性,尽可能进行多 角度采集图片,例如变换不同的位置、不同的表情等[7]。3.3对采集的图像进行训练OpenC V下有自带的供人脸检测的分类器,主要是一些 xml文件,利用这些分类器进行检测和捕捉人脸后,才能实 现识别。首先将OpenCV官方训练好的人脸识别分类器文件 拷贝到自己的工程目录下,包括:haarcascade_eye.xml、 haarcascade_frontalface_default .xml等。再点击图像化界面

中“生成训练文件”的按钮,把采集的图像生成训练文件, 并选择生成的训练文件开始训练。3.4人脸检测、识别大脑能准确识别人脸,是因为大脑里存有人们熟悉的面 部轮廓。人脸识别的原理也如此。人脸图像中包含的模式特

征十分丰富,人脸识别的过程就是利用从摄像头采集到的静 态图像,提取面部特征信息,通过这些有用的信息来进行身 份识别。在识别之前先进行人脸检测,从复杂的背景图像中 检测并分割出人脸,再从人脸区域的特征提取和特征选择,

最后再对人脸特征进行识别,得到一个关于人脸匹配的相似 度结果。4 人脸识别算法(Face recognition algorithm)人脸识别算法的主要思想是通过摄像头采集一张或者

一系列含有未确定身份的人脸图像,比对人脸数据集中的若 干已知身份的人脸图像及对应的标签,输出分为识别成功,

表明待识别的人脸信息比对成功;不正常输出,显示比对失

败。人脸识别的关键在于特征提取的有效性,常用人脸识别 算法包括特征脸法、局部二值法等,这些算法更适合于PC机

端的人脸识别。对于设备端的人脸识别,我们采用跨平台机器视觉库

OpenCV自带的分类器,即AdaBoost分类器[6I0AdaBoost分类器算法流程图如图2所示。** 冃■«»图2 AdaBoost分类算法流程图Fig.2 AdaBoost classification algorithm flow chart

分类器在这里指的是对人脸和非人脸进行分类的算法。AdaBoost分类器算法思想是通过迭代训练弱分类器得到一

个强分类器,这里的弱分类器和强分类器即为弱学习算法和

强学习算法。弱学习指的是一个学习算法对一组概念的识别 效果比随机识别的识别效果稍微明显一些,强学习即表明一

个学习算法对某一组概念的识别率能够达到一个比较高的结果。若将两者做比较,弱学习算法比较容易获得,而强学习 算法是不容易获得的。所以AdaBoost算法[8]的思想是首先从训

练集用初始权重训练出一个弱学习器1。根据弱学习的学习误 差率表现来更新训练样本的权重,使得之前弱学习器1学习误 差率高的训练样本点的权重变高,使得这些误差率高的点在

后面的弱学习器2中得到更多的重视。然后基于调整权重后的

训练集来训练弱学习器2。如此重复进行,直到弱学习器数达 到事先指定的数目T,最终将这T个弱学习器通过集合策略进 行整合,得到最终的强学习器。目前该算法已经广泛用于人

工智能等领域叫5 结论(Conclusion)人脸识别在如今的社会已经拓展到智能家居、公共安

全、智慧城市等领域,但是随着移动终端设备和图片数据的

爆炸性增长,传统的基于中心云模式的分析系统已经难以满 足实时分析对低时延和高带宽的苛刻要求,因此如何对海量 数据进行实时和高效的处理已经成为亟待解决的问题。基于边缘计算的人脸识别系统将图像的识别处理从云

端下移到更接近数据的边缘端,从而降低对数据处理服务器 端的依赖、减轻了网络通讯的压力,提高人脸图像处理的速

度,保证人脸识别图像的实时性,保障用户数据的安全和隐 私。但由于受硬件的,需进一步优化算法,提高人脸识 别的正确率。参考文献(References)[1] 车志宏,焦子路,刘荣.人脸识别技术研究与应用[J].电脑编程

技巧与维护,2017(16):78-81.[2] 薛健,祖央,岑丹.基于云计算的智能人脸识别借阅系统研究

[J].吉林大学学报(信息科学版),2019,37(04):450-456.[3] 傅耀威,孟宪佳.边缘计算技术发展现状与对策[J].科技中

国,2019(10):4-7.[4] Hu Y C, Patel M, Sabella D, et al. Mobile edge computing—

A key technology towards 5GJ]. ETSI White Paper,

2015,11(11):1-16.[5] 马忠梅,马广云.ARM嵌入式处理结构与应用基础[M].北京:

北京航空航天大学出版社,2002.[6] Shaohua Zhou, Volker Krueger, Roma Chellappa. Probabilistic

recognition of human faces from video[J]. Computer Vision and Image Understanding, 2003(51):310-314.[7] 邹思轶.嵌入式Linux设计与应用[M].北京:清华大学出版

社,2002.[8] 李盛文,鲍苏苏.基于PCA+AdaBoost算法的人脸识别技术[J].

计算机工程与应用,2010,46(04):170-173.[9] 梁武.Adaboost算法在人脸识别系统中的应用[J].内蒙古师范

大学学报(自然科学汉文版),2017,46(04):576-580.作者简介:刘思(1998-),女,本科生.研究领域:嵌入式开发.

马靖瑜(1999-),女,本科生.研究领域:大数据开发.

袁倩(1999-),女,本科生.研究领域:大数据开发. 吴粉侠(1976-),女,硕士,副教授.研究领域:图像处理.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务