人脸识别与活体检测在嵌入式上的优化

2022-03-12 11:32金千航秦会斌张建楠
制造业自动化 2022年2期
关键词:活体人脸嵌入式

金千航,秦会斌,张建楠

(杭州电子科技大学 电子信息学院CAE研究所,杭州 310018)

0 引言

作为生物识别技术的一种,人脸识别技术有着先天性、唯一性、不易被复制性等优点。相较于其他传统的生物识别技术,如指纹识别[1],虹膜识别[2]等,人脸识别技术存在着成本低、友好、可靠、非接触等优势,目前已经成为应用最普遍的生物识别技术。特别是新冠肺炎期间,人脸识别系统发挥至关重要的作用。

传统的人脸识别系统常搭载于PC机上并且需要建立服务器,这样成本较高,而且使用的时候会受网络的限制,并且PC机为载体存在着体积大,便携性差,在特定的场合下不适合使用等缺点。嵌入式设备具有成本低、功耗低、体积小、便携性好等优点。随着嵌入式技术的不断发展与国家的大力扶持,嵌入式应用已经不断出现在我们生活当中。因此要将人脸识别系统运用到嵌入式设备上[3,4]。

人脸识别算法运算量大,占用内存高[5,6],嵌入式设备的计算能力不足,内存受限,这样会使得系统的时效性、可靠性、准确性大大降低,而且传统的嵌入式人脸识别系统缺少了人脸活体检测部分,这会使得假脸也能通过,存在严重的安全隐患[7]。因此本文针对这些缺陷给出了算法优化:

1)在人脸识别环节中,设计了一种人脸图像增强方法来提升人脸识别算法对非正脸的识别率。

2)在人脸活体检测环节中,提出了一种新型卷积核来对卷积神经网络进行加速。

3)提升了人脸识别和人脸活体检测在嵌入式设备上的效率,准确性和速度。

4)提出一种方案,使得嵌入式设备上能实现完全离线的综合人脸识别与人脸检测的系统。

1 系统总体设计

嵌入式人脸识别系统的主要框架如图1所示,主体主要由主控部分、显示器部分、摄像头部分这三部分组成。系统初始化之后,摄像头对捕获的视频流截取一帧图像进行人脸检测,在检测到人脸之后进行人脸识别,如果人脸识别通过,系统会继续进行人脸活体检测,判断是否是真脸。

图1 系统总体框图

硬件系统主要包括了主控模块、摄像头模块、显示器模块和电源模块。主控模块负责调用摄像头模块来获取图像数据信息,并对图像进行人脸检测、对检测到的人脸进行人脸识别和对识别成功的人脸进行活体检测。主控模块这里选用的是树莓派型号3piB,摄像头选用的是分辨率为1280×70,采集速率为30fps的罗技C270i摄像头。显示器模块是系统的数据输出端,负责展示系统信息和识别结果。软件模块主要包括主程序的设计、人脸检测程序设计、人脸是识别程序设计和人脸活体检测数据设计。

2 基于PCA人脸识别算法优化

基于PCA的人脸识别算法是通过人脸数据集矩阵找到一个映射空间,再将人脸图像投影到该空间中,得到一组降维的向量。识别时,待识别人脸通过特征脸空间得到一个降维的向量,再通过度向量方法得到待识别人脸与数据库中每个人脸的举例,然后根据阈值进行判断。PCA人脸识别算法由计算特征脸空间阶段和人脸识别阶段两阶段组成。

基于PCA的人脸识别算法需要将M×N的图像按列展开待MN×1的列向量,这样会损失图片的空间结构,使得在非正脸的情况(如仰头、低头、转头等)下识别率明显下降。通常为提升算法的识别率会要求录入者拍摄多角度的人脸照片,但是这样对人脸录入的体验十分不好,另外在某些情况下只能获取单一人脸 (如基于身份证人脸)。因此本系统利用透视变化来增强人脸图像,有效得提升非正人脸的识别率。

2.1 透视变化

透视变化是指利用透视中心、像点、目标点三点共线的条件,按照定律旋转定律使透视面绕透视轴旋转某一角度,破坏原有的投影光线束,仍能保持透视面上投影几何图形不变的变换[8]。

图2 透视变换示意图

透视变化就是讲畸变图像中的每个像素点投射到无畸变图像中的每一个像素点的过程,通用的透视变化公式为:

式中,(u,v)是原始图像中像素点坐标,经过透视变化后的得到的像素点坐标是(x,y),其中x=x`/w。为透视矩阵,可拆分为四个部分,其中表示线性变换;[a31,s32]用于平移;[a13,s23]T用于产生透视变换。整理得到公式:

由式(2)可以推导,只要得到四对畸变图像与正视图像相对应的坐标对就可以解出透视变换参数,从而求得透视变换矩阵,再将原始图像中的每个像素点代入式(2)中,则可以得到透视变换后的图像。

2.2 基于透视变化的人脸增强法

本文利用透视变换模拟人向左抬头、向右抬头、仰头和低头的图像,它们与原图像的四个角(依次为左上、右上、右下、左下)的对应坐标分别为:

其中,h和w为原图像的高和宽,s表示畸变程度且s∈N。当图像大小为112×92时,取s为8,原始人脸和经过透视变换的人脸如图3所示。

图3 原始人脸与透视变换后的人脸

由图3可以看出,透视变换后的图像与原始图像相比有一些变化,类似于头部旋转、头部向上和头部向下图像。因此,可以通过视图转换来变换一个图像以创建四个丰富面部图像样本的面部图像。

3 人脸活体检测算法优化

卷积神经网络有很强的图像理解和判断能力,在人脸活体检测上有较好的成效,能有效鉴别真假脸。但是卷积神经网络的计算量十分大,在资源受限的嵌入式设备上应用困难。这里提出一种新型卷积神经网络-共享且密集的深度可分离通道卷积SDChannelNets。

3.1 共享且密集的深度可分离通道卷积

标准卷积层中,输入为Df×Df×m的特征图,输出为为Dg×Dg×n的特征图。其中Df为输入特征图的宽度和高度,Dg为输出特征图的宽度和高度,m和n分别为输入和输出的通道数。一个卷积层的参数量取决于卷积核的参数量,而卷积核的参数量又与m×n的大小密切相关。

共享且密集的通道卷积层的输入输出特征图与标准卷积层的输入输出特征图相同,但是卷积核只有一个长卷积核。输入特征图每次只与长卷积核的一部分进行卷积操作,这部分是参数共享的,用这操作来代替标准卷积层的相互独立的卷积核的卷积操作。

深度可分离卷积将标准卷积分解为用来过滤每一通道的特征的深度卷积和将这些特征融合的1×1卷积。在MobileNets中,1×1卷积的参数量占模型总的参数量的75%,于是这里将1×1卷积替换成1×1共享且密集的通道卷积。

1×1卷积存在的参数量:

1×1卷积存在的参数量(S为通道方向的步长):

用这种方法压缩了m×n项,大大减少了参数量。

图4 共享且密集的通道卷积示意图

3.2 SDChannelNets

本文用共享且密集的深度分离通道卷积构建SDChannelNets。这里遵循MobileNetV2的基础架构。本文去掉了MobileNetV2的瓶颈块中的第一个1×1卷积,将深度卷积的深度系数设置为6或1,最后将瓶颈块中的第二个1×1卷积替换为1×1共享且密集的通道卷积。SDChannelNet中的SDC瓶颈块由上述修改构成。并且去掉了MobileNetV2中输出通道数为1280的卷积层,MobileNetV2密集连接层的参数量占总参数量的24.3%。最后还去掉了第一个卷积层的激活函数,因为在少量基础的特征通过非线性激活函数激活时产生损失大量基础特征导致可用特性少量。SDChannelNets网络结构表所示。

表1 人脸活体检测的SDChannelNets模型结构

(续)

本文使用keras深度学习框架对SDChannels步长为192的模型进行搭建,采用随机梯下降训练,权重衰减10-4,Nesterov动量为0.9,同时训练使用64批量和100次的迭代次数。设置0.1的初始学习率。在迭代60%和80%将学习率除以10。在除了第一层的每个卷积层后加入BN层和Dropout层一直过拟合。最后在ROSE-Youtu人脸活体检测数据集上与其他算法[9,10]进行测试,实验结果如表2所示。

表2 ROSE-Youtu人脸活体检测数据集上的测试结果

4 实际系统测试与分析

4.1 基于人脸增强的PCA人脸识别算法测试

实际测试时,让实验室的是十位同学担任人脸测试来源,每位同学录入三张照片在合法人脸文件夹里,根据之前的结果,将人脸增强的畸变s设置为8。每位同学在摄像头前测试10次,共100次。实验结果如表3所示。在数量级下的情况下识别有11%的明显提高。

表3 人脸识别算法测试结果

4.2 基于SDChannelNets-192活体检测算法测试

活体检测部分每个同学在摄像头前测试10次,作为真实人脸样本,总共100个正样本。然后每个同学的照片A4打印测试10次,共100个负样本。这里与MobileNetsV2算法进行比较。对比实验结果,本文提出的SDChannelNet-S192算法平均耗时减少了3326ms,错误接受率降低了百分之一,错误拒绝率提升了百分之零点八。

表4 人脸活体检测算法测试结果

图5 活体检测真脸测试图

图6 活体检测假脸侧视图

5 结语

经过本文上述算法优化,使得嵌入式设备在人脸识别系统存在的人脸较小样本下识别率低、活体检测困难这二个缺陷得到了显著改善。本文提出了一种新型的基于透视变换的人脸识别算法,并且提出一种新型卷积神经网络-共享且密集的深度可分离通道卷积SDChannelNets,做出了人脸识别和人脸活体检测在嵌入式设备上的优化,并经过测试,具有速度好,识别率高,安全可靠,有良好的应用前景。

猜你喜欢
活体人脸嵌入式
有特点的人脸
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
一起学画人脸
让活体肝移植研究走上世界前沿
活体器官移植,你怎么看?
基于安全加密的人脸活体检测技术
TS系列红外传感器在嵌入式控制系统中的应用
三国漫——人脸解锁
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨