APP下载

基于人脸识别的考勤签到APP设计*

2018-09-03邓永志

通信技术 2018年8期
关键词:矩形人脸分类器

谭 敏,邓永志,兰 红

(江西理工大学 信息工程学院,江西 赣州 341000)

0 引 言

上课签到是学校在进行教学管理和学生成绩审核中必不可少的手段之一。常见的签到方式主要包括纸质签到表、指纹打卡机和IC卡刷卡机[1]等。随着科技的不断发展,部分高校推出了新型的签到方式。例如,英国郡伊利市的一所社区学院使用红外线扫描技术进行学生签到[2]。相比后面的几种签到方式,出于成本考虑,目前大多数高校使用的还是纸质签到表[3]。纸质签到虽然简单、成本较低,但是针对学生较多的情况不仅耗费课堂时间,而且学生极易作弊。此外,每年打印签到表的纸张消耗也为此方法带来了环保方面的问题。因此,设计一种成本低、防作弊且环境友好型签到模式具有重要的现实意义。

人脸识别技术是指利用生物信息,比较人脸的视觉特征,从而进行身份鉴别的技术。它是一项研究较为热门的计算机领域技术[4]。近几年,在国内更是掀起了一股人脸识别技术热潮,从火车站刷脸安检闸机到门禁刷脸,从各类手机美颜软件到支付宝刷脸支付,人脸识别无不证明着它的强大。深度学习、图像处理、计算机视觉等技术的日渐火热,也推动着人脸识别技术的快速发展,未来必将是人工智能的时代。因此,人脸识别技术的学习与研究显得尤为重要。

Android[5]是基于Linux的开源操作系统,主要应用于移动设备,目前已是市场占有率最大的手机操作系统,拥有数量庞大的用户群。由于其开源的优势,在各大手机厂商及开发者的合力下,Android现已更新到最新的8.0版本,具备更加精美的界面,更适应用户的需求。

本文着重研究基于Android平台的人脸识别技术,以Android Studio为开发平台,利用人脸识别中的相关技术,设计实现一款以人脸识别为主的学生签到APP,且APP同时包含生活、学习等其他辅助功能。

1 人脸签到功能的总体设计

人脸签到作为APP的核心功能,使用了当下最流行的人脸识别算法进行实现。它主要包括两个方面,一是学生注册账户时的人脸信息采集,包括检测定位与特征提取;二是学生上课签到时的人脸信息匹配。

结合人脸识别技术的考勤签到APP的总体设计与实现流程,如图1所示。

图1 人脸识别技术实现流程

(1)人脸采集:学生利用手机摄像头拍照,向服务器上传一张真实的人脸照片作为注册的输入数据;对上传的图像进行预处理,消除部分因光照不均匀等因素引起的噪声;从预处理后的图像中提取人脸特征值,将特征值组合成特征向量保存在后台服务器。

(2)数据匹配与处理:考勤签到时登录账户,选择APP中对应课程的签到功能,打开相机再次拍照,实时计算捕捉到的人脸信息的相关特征数据集,依据用户的唯一标识符获取后台中该用户注册时的人脸特征数据集,将这两个特征数据集进行匹配,得到满足预设阈值范围的相似度,从而确定是否为同一用户。

2 人脸识别关键技术

APP使用的人脸识别技术主要细分为三步。①人脸检测与定位:以手机拍摄的图像为输入,判断当前图像中是否有人脸信息,如果存在人脸,则将人脸以最小外接矩形标记。②人脸特征提取:将定位到的人脸图像作为输入,采用纹理识别算法提取图像中的纹理特征,将纹理特征进行压缩编码形成以“.dat”的二进制数据文件保存于数据库中。③人脸匹配:利用手机摄像头捕捉的实时图像经过①、②的处理获得的特征数据,与数据库中对应的人脸特征文件对比、计算相似度,若相似度在置信区间内,则认为人脸匹配成功。

采用的人脸识别技术的功能调用时序图,如图2所示。

2.1 人脸信息检测定位

人脸信息检测定位主要是借助一个滑动窗口对图像进行扫描。在此过程中,通过提取窗口内图像特征信息,并将所提取的特征信息作为输入,利用合适的分类器判别该窗口是否为人脸区域。

人脸检测与定位的关键是对分类器的选择,本文采用的是人脸检测经典算法Viola_Jones[6]。

算法主要过程如下。

图2 人脸签到技术功能调用时序图

(1)利用Haar特征描述人脸的共有属性。Haar特征通过像素分模块求差值,反映了图像的灰度变化,用来体现图像的局部灰度特性。将其运用到矩形区域时,通过算子构成描述人脸共用属性的Haar-like特征。

其中A、B、C三类算子分别代表了二邻接、三邻接和四邻接矩形,如图3所示。

图3 三类算子对应矩形

(2)建立积分图像特征,获取矩形特征。为了降低遍历图像所有像素点的开销,引入积分图像。原理是对图像中的任何一点,该点的积分图像值等于位于该点左上角的所有像素之和,即:

且积分图像应满足关系:

其中I表示积分图像,f表示原灰度图像,x、y、x'、y'表示像素位置。

如图4所示,利用积分图像求取矩形ABCD像素和的表达式:

其中I(D)代表矩形acDd的像素和,I(C)代表矩形abCd的像素和,I(B)表示矩形acBe的像素和,I(A)表示矩形abAe的像素和。

图4 积分图像求矩形像素和

(3)利用Adaboost算法进行训练。AdaBoost将一系列弱分类器通过线性组合构成一个强分类器,可以同时进行特征选择和分类器训练。

h(x)即合成的强分类器,hi(x)为弱分类器,本质是一个阈值函数:

其中θi表示阈值,Si∈{-1,1},αi在训练中确定。

(4)建立层级分类器。层级分类器每层包含一个强分类器,所有矩形特征划分为若干组。将每组的矩形特征用在每层上,判断输入是否为人脸。不是,则舍弃;是,则进入下一层更复杂的分类器中进行判别。流程如图5所示。

图5 层级分类器实现原理

OpenCV已经将Viola-Jones算法写入函数库,可以直接通过函数调用实现该算法。

2.2 人脸特征提取

人脸特征提取是针对定位到的人脸区域提取该区域的纹理特征构成特征数据集。本文采用的是基于结构法的纹理特征描述算子LBP。它是借助局部领域定义的纹理测度,具有尺度不变性、旋转不变性和计算复杂度低等优点。

LBP局部二值描述算子的表示形式为:

式中的(xc,yc)代表n×n领域的中心元素,它的像素值为ic,ip代表领域内其他像素值,s(x)代表一维阶跃函数。

用户通过使用在Android端的注册功能,输入一张用户的头像,再调用人脸识别算法获取去人脸特征数据。在Android端对特征数据进行Base64编码,将其转化为二进制的数据流,最后上传到服务器。

实现伪代码如下:

function getFaceFeature(userImage)

input userImage image of user’s face

return dataStream data of facial feature

if userImage is not empty then

faceFeature←FEATURE(userImage)

dataStream←BASE64(faceFeature)

end

return dataStream;

2.3 人脸信息匹配

人脸信息匹配策略是以欧式距离为依据,比较两个人脸特征数据集的相似程度。

相似度度量函数为:

其中d(x,y)表示两个数据集的欧式距离,sim(x,y)表示两数据集的相似度。

用户通过点击当前课程的签到功能进行签到,调用摄像头获取实时用户图像。此时,Android端会在本地对实时图像进行人脸定位和特征提取操作。同时,Android端会向服务器发送请求,获取该用户注册时的人脸特征数据,然后求这两种特征数据的相似度。若该相似度在置信区间内,则认为是同一人,给出签到成功的提示;否则,签到失败。

实现伪代码如下:

function getFaceMatch(userImage)

input userImage image captured by camera

return Boolean matching result[true/false]

if userImage is not empty then

face←getFaceFeature(userImage)

end

original←getFaceFromServer(userId)

similarity←FACE-MATCH(face,original)

if similarity>0.9 then

return true

else return false

3 系统实现与测试

依据上述总体设计和技术实现理念分析,本软件在Android系统平台下采用Java开发语言实现[7-8]。采用C++与OpenCV相结合实现人脸识别技术的核心算法,借助Android NDK[5]以供客户端进行调用。在虚拟机和真机系统中的测试表明,该软件实现了系统需求的基本功能。

学生通过手机APP进行用户的登录注册,如图6所示。在新用户注册时被要求必须调用摄像头拍摄一张个人照片;成功注册并登录的学生用户,将可以进行相应课程的签到,如图6(c)所示。在签到过程中,APP会调用手机摄像头对镜头捕捉到的画面进行实时分析与检测。当捕捉到的人脸与学生用户注册时的人脸特征的匹配度达到阈值时,则该学生签到成功;否则,失败。

图6 实现效果

4 结 语

人脸识别尽管在近几年飞速发展,但是将此技术与课堂签到相结合的应用产品目前市场上较少。本文通过对目前较流行的人脸识别算法进行学习研究,设计实现了一款界面简洁、易于操作、识别精度高的课堂签到APP,借助人脸识别技术解决了长久以来因为传统课堂签到方式带来的问题。经过测试,本款APP操作便捷、签到精确,节省了高校办公中纸制品的消耗,对环境保护起到了积极作用。

猜你喜欢

矩形人脸分类器
有特点的人脸
一起学画人脸
基于朴素Bayes组合的简易集成分类器①
矩形面积的特殊求法
基于特征选择的SVM选择性集成学习方法
化归矩形证直角
三国漫——人脸解锁
基于差异性测度的遥感自适应分类器选择
从矩形内一点说起
基于层次化分类器的遥感图像飞机目标检测