《一种基于扫码认证和人脸识别的签到系统设计与实现.docx》由会员分享,可在线阅读,更多相关《一种基于扫码认证和人脸识别的签到系统设计与实现.docx(12页珍藏版)》请在第壹文秘上搜索。
1、O0引a为保障会议、活动的正常开展,签到系统已经成为高校、企事业单位日常管理不可缺少的组成部分,然而,传统的人工签到方式早已经被淘汰,人们转而研究管理方便、时效性高、准确性高的智能化签到方式。近年来,应用比较广泛的是打卡签至!1、指纹签到、人脸识别签到等E.这些签到方式在一定程度上解决了人工签到的繁杂性、准确率低等问题,但仍然存在很多不足,如打卡签到并不能避免代签到的情况发生;指纹签到和人脸识别签到又因设备昂贵而使用受限,并且在会场人数多的情况下,设备携带不便、设备数量不足、签到反应时间长的问题更加凸显。针对这些问题,为保证签到的时效性、准确性,本文设计了一种基于移动终喘Android系统,并
2、融合扫码认证和人脸识别的签到系统,运用当前使用最广泛的移动手机终端作为签到终端,有效地解决了设备不足、携带不便的问题。运用二维码扫码的方式确定签到者身份,签到者注册关联个人信息,产生个人二维码供管理者扫描,管理系统扫描二维码自动验证签到者身份,验证通过者跳转到人脸识别界面,保证了身份的真实性;人脸识别阶段则包括活体检测和人脸识别,避免采用照片、视频等方式的误识别情况发生,确保签到的有效性.O1.总体设计端,整个扫码人脸识别分为身份认证阶段和活体人脸识别阶段,总体流程图如图1所示.图1忌体冰粽服务端可根据活动、会议要求的不同,通过导入或用户注册的方式形成参会人员数据库。签到者通过手机APP进行信
3、息注册或关联,产生个人身份二维码,供身份认证时使用当用户参加会议、活动时,出示身份二维码,管理者采用手机APP扫码识别端进行扫码认证,系统进行二维码解码,自动匹配数据库中该签到者信息,若匹配成功则进入活体人脸识别阶段,否则提示认证失败。人脸识别阶段主要包括人脸识别和活体检测,本文采用AdaBoost算法进行人脸识别,配合基于交互式随机动作的活体检测方法,确保签到者的真实性。端、管理移动端、管理PC端、应用服务器、数据库服务器等.图2网络架构移动终端Android手机作为签到移动端设备,签到APP根据签到者、管理者身份的不同,分别具有签到功能和扫码验证功能,而管理PC端具有导入用户信息、管理用户
4、信息、统计签到情况等功能,应用服务器则负责处理二维码身份认证和活体人脸识别等业务逻辑,系统所有数据存储于数据库服务器。02功能模块设计整个扫码人脸识别签到系统主要由APP客户端、管理PC端和服务端组成,APP客户端面向签到者和管理者,根据身份的不同,针对签到者权限的主要功能有:个人信息注册/关联、个人信息维护、扫码人脸识别功能,针对管理者权限的功能有扫码认证功能、签到统计功能;管理PC端主要面向管理者,具有用户信息管理、用户数据导入导出、用户信息审核、签到统计等功能等;服务端则提供扫描认证服务、活体人脸识别服务和数据存储服务,见图3。I二Ii二I图3功前模块圈O3系统设计与实现3.1 核心功能
5、本系统的核心功能包括扫码身份认证、人脸识别和活体检测,本文重点介绍其设计和实现方法。3.1.1 扫码身份认证扫码身份认证主要用于确保签到人到会议/活动现场,由现场工作人员(管理者)使用Android手机中的此APP进入扫码身份认证界面,同时签到者使用Android手机中的此APP,进入签到流程,第一步出示个人二维码,供管理者扫码认证,若管理者扫码认证成功,则签到者签到流程进入下一步:人脸识别,若失败则提示身份认证失败,井返回第一步。二维码生成流程如图4所示.图4二堆码生成湍程扫码身份认证的核心技术是二维码的编码与解码.本系统采用QR码对签到者信息进行封装并编码,并在签到过程中由服务器进行解码、
6、验证工作.二维码编码首先对封装好的数据进行分析,确定编码字符类型、版本信息和纠错等级,接着采用既定规则将字符转换为位流,再将位流转换为码字,完成数据编码,再将生产的组错码字加在数据编码后,生成纠错编码.通过加剩余位的方法,按既定规则将数据和纠错码字构造成最终信息,并按规则排列寻像图像、分隔符、矫正图形与码字形成二维码矩阵.最后,对编码区域位图掩模处理,采用8种掩模图形处理并评价结果,选择最优结果,生成版本和格式信息,构成符号,即生成最终的二维码图像。二维码扫码认证主要由服务器完成二维码图像的解码和验证,其时序图如图5所示.S1.5二维码扫码认证时序S3当应用服务器接收到二维码图像后,会对二维码
7、进行解码、识别,其解码流程如图6所示.6二缰码解码流程图二维码解码流程:首先,采用图像处理方法对二维码进行处理,包括识别深/浅模块、格式信息译码、确定版本、清除掩模,接着计算伴随多项式值、求错误位置多项式和错误位者多项式的根,再求出错误值并对码字进行错误纠正,从而得出二维码解码输出.3.1.2 人脸识别算法手机app使用的人脸识别技术主要细分为几个步骤,(I)人腌区域范围的查找:使用摄像头拍摄的图像为输入,判断当前图像中是否有人脸信息,如果人脸在指定的区域范围中,则标记出来。(2)人脸特征的提取:将标记出来的人脸进行特征分析和定位,并最终生成一个脸部的模型。(3)人脸检测的确认:基于该模型,检
8、测是否为真实的人体而非图片或者视频,并与服务器的模里做比对完成确认工作。人脸区域范围的查找是人脸分类鉴别必不可少的前提环节.要对人脸图像进行分类鉴别,首先需要找到图像中的腌部区域部分。而实际中拍摄人脸图像的过程中通常会由于背景环境或焦距等因素,混杂一些非人腌、多个人脸的特征,此时需要对所拍摄图像的进行人脸区域检测来提取人脸区域,最后分类鉴别只会针对人脸部分来进行。该环节实际上就是区分出人脸部位的特征与其他非人脸物体的特征并将指定范围的人腌区域部分提取出来。人脸检测环节直接影晌着人脸分类识别环节,该环节检测准确,后期人脸分类识别环节的效率和精度也会得到提高。目前最常见的人脸定位技术是使用Adab
9、oost算法识别叫把所指定的区域分为若干个矩形区域,再对每个矩形区域进行Haar特征分析。Haar特征分析也就是矩形特征分析,作为Adaboost篮:法的输入,AdabOOSt算法计克并判断出人脆的区域,将整张图像的人脸部位进行提取,将非人脸部位的部分给丢弃。人脸有着一些显著的边缘特征,矩形特征就对这些边缘轮廓比较敏感,例如当分析眼晴的时候,双眼在水平方向上和垂直方向上,眼珠的颜色会深于眼珠周围的颜色:嘴巴的颜色也是类似的,会比嘴巴周困颜色更深。矩形特征就可以更容易的锁定这些眼睛、嘴巴等人脸主要区域.矩形特征中A-1,1.B-1,1,-1算子代表的二邻接、三邻接矩形,如图7所示,通过原始矩形特
10、征,定位人脸的主要区域.()二(b)=接3图7JK妁矩形特征(b)在进行人腌校测时,既需要考虑鸵法的运行速度,也需要考虑算法的准确度“本系统使用二维码验证后,可以获取登录用户注册在服务器上的目标样本,再通过矩形区域的方式作为登录用户特征来进行检测。Haar特征获取完成之后,需要对Haar特征值进行计照为提而检测的速度,使用积分图计算特征的值是种常用的方法。定义其积分图2请)为:MM=Z2(,)y即和vJ)位宜上,对应的积分图中的像素为该位置的左上角所有的像素的之和。每行都递归计算2(八力,每一行首先都是计算Z,计算完毕之后在每*歹小都计算讥入叽这样扫描下去就可以计算积分图如公式2、3所示,其中
11、令Z(X-I)=O,/(-tv)=0,.v(,v.-1.)=O.”(-1丁)=。为初始值35)为点年)处的“原始图”,是此点的颜色值:对于灰度图像,其值为0-255。对于彩色图像,可以先按照人脸彩色空间将其转化为灰度取值。就WK(X-IM+2(XJ)(2)Z(W)=Z(XJ-1)+XJ)(3)其中,NXm为点(XJ)及其y方向向上所有原始图像之和,称为“列积分Z(XM=Zi(XJ)和”,可以定义为:3,并定义s(v)=(J)=00AdabooSI算法计算和判断出人脸的区域,并提取人脸部位后,将每次提取到的人脸部位样本训练出一个弱分类器,每次迭代中的样本比iR需要由上一次来确定,第/.次的样本比
12、全由第次的样本来确定。每次把分类错误的样本的权歪值提高,这样可以突出分类错误的样本同时得到新的样本分布并训练得到新的弱分类器。AdaboOSt采用的迭代算法,荷单地讲就是对训练样本进行权重重新评估后的再进行循环训练,最初的样本权重设理是一致的最终经过提升的强分类牌.Adaboost算法还采用了一种级联判断的方式,通过将多个强分类器串联起来组成一个级联分类器后,连续对输入进行判断,对下需要提取人脸的图像,如果判断出是人脸的矩形区域就让其通过当前的强分类落进入卜一个强分类器,否则直接将其丢弃掠.由石串起来的各个分类器的精度要求是逐渐增加的,通过这些强分类器的层层过滤,大大的加快了分类检测的速度,而
13、且每一级的强分类器对上一级通过的矩形区域特征再一次进行分类判断,大大减少r伪正样本的通过率,即提高了检测的正确率。3. 1.3活体检测检测出正确的人脸后,采用基于交互式随机动作的活体检测方法来防止签到者以照片、视频等方式冒充签到,被识别者需要通过系统给出的指示完成一些指定的动作,如眨眼、张口、摇头等.这种基于交互式随机动作的活体检测的方法就是对人脸的检测、定位、跟踪和特征提取后,再判断是否按照系统要求做出了正确的动作.需要保证可以检测到人脸的实时动作,完成对被识别者人脸的检测、跟踪和对齐;同时在指定时间内,对用户发出动作指令,被识别者的认证动作顺序不同,从而最大限度地避免活体检测被攻破的可能。
14、如果被识别者人脸动作合法则检测通过,人脸跟踪失败或者动作验证失败均需要重新进行签到,保证被识别者无法使用照片或模型进行冒充气每种动作需要在指定的时间内完成,保证动作无法事先录制好.从逻辑设计上最大限度地保证了使用的简便性和系统可靠性,本文结合活体检测手段完成对人脸检测的确认.算法实现:首先获取到人脸位置坐标,使用AdaBoost人脸检测器检测出人脸在图像中的位重坐标信息.然后在此区域用人脸对齐算法,获取人脸五官关键点的特征点坐标:提取给定特征点化W。的SIFT特征或HOG特征:回俨+P)=IH(3p+P)-()(4)其中,声为算法自动提取到的人脸五官关键点的特征点初始坐标,尸*为人工标定的实际
15、人脸五官关键点的特征点坐标,迁为吩与尸*的偏移量,H为S1.FT特征提取函数。特征点根据确定下来以后就可以通过这些特征点来估计人脸姿态.比如眼睛,使用内眼角为起点1,分别编号特征点位置1内眼角,特征点位告2眼睛上方,特征点位爸3外眼角,特征点位首4外眼角,计算当前眼睛的宽度和高度来判断眼睛的状态:二他(5)JI1.g(加巴(y)I1.其中,R(X)表示特征点/的横坐标值,06)表示特征点/的纵坐标值,J(P)为眼瞄的高宽比例。根据小乃可以画认当前眼睛的睁开、闭合状态。采用人工标注方式标示人脸范围的特征点的位置.然后使用人脸检测落定位范困内的人脸框,根据已标注的人脸框坐标信息确定所有特征点的坐标平均值,如此就得到了一个平均人脸特征点的位置,将这个平均位置点记录为人腌特征点位置的初始值.根据指定的动作,取得的人脸特征点位置应该在某个阈值之内,这样眼睛和舞巴的睁开或闭合状态都可以通过这个原理估计得出。从而谶定识别者,通过险证。3.2系统实现基于Android的扫码人脸识别签到系统采用Java语言实现,其中人脸检测模块与活体检测模块采用了NDK技术,结合OPeneV库HI完成了核心视觉算法的实现,签到主要实现图如图8所示.图8*或实图图8(八)是接到者出示个人身份二维码,当管理者扫码后,系统自动检测签到者身份信息,若身份认证成功,则返回人腌信息并提示进入卜.一步人脸检测,