基于轻量化网络和近红外人脸活体检测算法

2021-08-06 05:24赵一洲王浩
现代计算机 2021年16期
关键词:活体人脸卷积

赵一洲,王浩

(四川大学电子信息学院,成都 610065)

0 引言

随着人类数字时代的到来,人脸生物识别领域技术被广泛应用在各大场合,如门禁系统、高铁机场入口核查系统以及移动终端的解锁系统等身份认证[1]。由于人脸识别系统最容易以照片、视频和面具攻击作为攻击手段[2-3],高效快捷辨别真伪,抵御欺骗攻击确保系统安全一直是人脸识别领域需要克服的挑战。针对欺骗攻击和消除安全隐患,设计一个基于检测精度高、耗时短、泛化能力强的人脸活体检测至关重要。

近年来,为了识破这些假冒的攻击方式,国内外研究学者已经提出多种不同的活体检测方法,主要围绕传统图像特征表达、主动式检测以及深度学习三方面进行展开研究[4]。传统图像特征表达是最早的人脸活体检测方法[5],主要是基于真实人脸和欺骗人脸纹理和光谱信息差异识别真伪,例如:LBP、DOG、HOG、SIFT等特征,和SVM分类配合实现[6],基于手工特征表达虽然可以取得不错的精度,但特征层次较低导致其泛化能力较弱。主动式人脸活体检测方法[7],需要用户配合完成一些指定动作,该方法耗时时间较长,也需要外界配合,不能满足实时应用的需求。

真实人脸 面具攻击

随着深度学习在计算机视觉领域的广泛应用,图像所提取的深度特征相比传统的手工特征,具有更丰富的语义信息,可进一步提高算法的鲁棒性和泛化能力。人脸活体检测首次采用卷积神经网络(Convolution Neural Network,CNN)[8],以及Lucena等人采用迁移方法设计了FASNet(Face Anti Spoofing Network)[9]。上述基于特征提取的方法中,未考虑光照条件对活体检测的精度影响。

针对上述问题,提出基于近红外图像的活体检测方法,近红外图像基本不受外界光照影响,原理是真实的人脸和纸片、屏幕、立体面具等攻击媒介的反射特性是不同的,所以成像不同,而这种差异在红外波反射方面会更加明显,对于照片和视频攻击有很好的抵御效果。张自友采用红外图像基于LBP和GLCM的方法区分[10]等传统方法,以及2019年在人脸抗欺骗攻击检测挑战提出FeatherNets轻量型网络和模态融合的方法进行活体检测识别[11]。为了解决计算和存储成本的问题和满足检测精度和实时性的需求。鉴于深度学习算法近红外图像在活体检测方面表现出来的优势,本文提出一种基于近红外图像的人脸活体检测算法,在FeatherNets轻量型网络基础上改进其激活函数和注意力机制模块,并扩充一些训练和测试样本提高算法的泛化能力,实验结果表明此算法的有效性。

1 基于红外图的人脸检测算法

FeatherNets是一种轻量级的卷积神经网络,并提出了一种新的流媒体模块结构,该结构人脸识别任务中相比全局平均池化体现了更大的优势,深度卷积模块(DWConv)可以更好地识别不同区域特征的重要性,例如人脸图像的中心单元比边缘单元更重要。

如图1在流媒体模块中,采用步长大于1的深度卷积层进行降采样,将其输出直接平展成一维特征向量计算过程由式(1)表示。

图1 流模块

FVn(y,x,m)=∑i,jKi,j,m·FINy(i),INx(j),m

(1)

式(1)的左边,FV为平展特征向量,表示FV的第n个元素,对应深度卷积层s输出特征映射的第m个通道中的(y,x)单元。式(1)的右边,K为深度卷积核,F为大小为HWC的特征图(H、W和分别表示特征图高度、宽度和通道)。m为通道指数,i和j表示核K的空间位置,INy(i)和INx(j)表示F中相应的位置。最后,将特征图展开后,为了减少参数和预防过度拟合,并没有添加全连接层。

FeatherNets包含了两个不同的网络FeatherNetA和FeatherNetB,主要区别就是网络下采样结构不同。如图所示网络模块结构BlockA、BlockB和BlockC。BlockC和BlockB分别是我们的网络FeatherNetA和FeatherNetB的下采样模块。本文选用FeatherNetB网络架构为基础网络,主要介绍前两个网络模块。BlockA用作网络架构的主要构建块,是利用逆残差结构的思维,先扩张后压缩的方式,用深层次卷积提取特征信息。BlockB中次要分支上引入了平均池化层,因为平均池化层能够嵌入多尺度信息并在不同的接受域聚合特性,并且对计算成本影响较小情况下带来性能收益。

表1中FeatherNetB结构中t是扩展因子,c为通道数,SE是加入网络结构的注意力机制模块,NL代表使用的激活函数。网络起初采用快速下采样模式和较少的参数将特征图大小迅速变小,从而解决了由于计算有限而导致特征嵌入弱和处理时间长的问题。

表1 FeatherNetB结构

2 实验设计

2.1 数据集及预处理

实验数据主要使用了CASIA-SURF数据集,是一个大型的多模态开源数据集,由3种模态数据(RGB、depth和IR)组成,包含了1000个不同年龄段人。攻击方式包含去除眼睛、鼻子和嘴巴部位的A4纸以平铺和弯曲两种方式放置在志愿者脸上共六种,如图3经过移除了背景区域的红外人脸图像。。由于红外摄像头在光线不足的情况下,对图像成像影响很小,本文算法仅采用IR数据集进行训练。

由于CASIA-SURF数据集输入模型训练的图像都是移除背景后的人脸信息,模型学习到的信息较为单一,并且网上未有其他对应的近红外公开数据集。为了提高模型的鲁棒性和学习到更多的图像特征,本文使用Intel RealSense 435i设备采集了一些人脸信息,包括20个活体人脸和30个照片人脸。志愿者在正常光照、光线不足两种环境下各个角度的图像和志愿者照片攻击的图像各20张,以及除志愿者外网上收集不同种族的照片打印,二者共2000张图像,示例如图4所示。

图4 自采集数据集

考虑现实的复杂性,我们采集到的数据很难完全满足正态分布,所以需要增加数据扰动,进一步提高模型的精确度以及泛化能力。对采集图像进行随机旋转、平移和缩放等操作,最终在原有基础上扩充5倍数据,并统一处理为分辨率224×224的图像作为网络输入大小,以9:1的比例分别添加到公开数据集中训练和测试中,本文将新添加的数据集命名为CASIA-SURF IR+,训练和测试数据集分布如表2所示。

表2 数据集

2.2 激活函数

激活函数是网络结构的核心单元,由图2中看出FeatherNets的每一个结构块都应用了ReLU6激活函数,ReLU6函数是分段线性函数,计算简单,避免了梯度消失的问题,定义公式(2)如下:

图2 FeatherNets网络结构

f(x)=min(max(0,x),6)

(2)

但同时也存在一个问题,ReLU6激活函数非线性很弱,并且在训练过程中也会存在某些神经元永远不会被激活的状态。为解决此问题提出了Swish激活函数[12]。Swish激活函数具备无上界有下界、平滑、非单调的特性,由于ReLU6函数在为零的情况下突然发生改变,而Swish函数不会发生突然改变的情况,使得网络训练时候更加容易收敛,计算公式(3)如下:

swish(x)=x·sigmod(βx)

(3)

由于Swish的计算成本很高,为了满足本文的轻量级网络的需求,使得模型在训练中变得更加轻便,在此基础上对Swish简单变形操作。使用h-sigmoid来构造Swish函数将得到h-swish(hard version of swish)函数[13],计算公式(4)如下:

(4)

图5 函数对比图

本实验是将FeatherNetB结构中BlockB的激活函数变为h-swish函数,应用在不同的网络层级中,效果不一样,实验如图6所示。

图6 函数在不同网络层实验对比柱状图

经由实验验证,h-swish激活函数相对于ReLU6函数,无论应用在哪一层,准确率都有提升,在BlockB最后三层使用h-swish激活函数,效果最佳。

2.3 注意力机制模块

注意力机制模块作用相当于人脑在捕捉视觉图像时,处理整个场景会选择性聚焦于突出的部分。WOO S[14]提出CBAM(Convolutional Block Attention Module)解决在卷积池化过程中特征图的不同通道和空间所占的重要性不同带来的损失问题,并且在不显著增加计算量和参数量的前提下能提升网络模型的特征提取能力。注意力机制模块主要分为通道注意力和空间注意力模块两个方面。

Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))

(5)

(6)

空间注意力模块中,首先,还是使用平均池化和最大池化对输入特征图进行通道压缩操作,对输入特征分别在通道维度上做了mean和max操作,最后得到了两个二维的特征,将其按通道维度拼接在一起得到一个通道数为2的特征图,之后使用一个包含单个卷积核的隐藏层对其进行卷积操作,要保证最后得到的特征在空间维度上与输入的特征图一致。该部分公式(7)和(8)表示如下:

Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))

(7)

(8)

由于SE模块只关注通道信息,CBAM模块除此之外,还关注了空间信息,所以在FeatherNetB网络架构中将SE模块替换为CBAM模块,能获取到更重要的人脸信息。下表3是改进之后的FeatherNetB结构:

表3 改进后FeatherNetB结构

3 实验结果与分析

3.1 实验平台及参数

本文的实验环境是在一台操作系统为Ubuntu 16.04的工作站上运行。配备一个Intel Xeon E5-1650 v4六核处理器,主频为3.6GHz,内存32GB,GPU为NVIDIA GeForce GTX 1080Ti,显存11GB。

在实验过程中,训练改进的FeatherNetB网络,参数设置如下:基础学习率为0.01,batch size为32,每隔15个epoch衰减一次,衰减率为0.0001。优化方法采用的动量(momentum),设置其系数为0.9。

3.2 评价标准

针对人脸活体检测分类,使用来自于生物识别防假体攻击方面的标准文件ISO/IEC 30107-3的一套评价指标。评价其性能的指标有三个:APCER(Attack Presentation Classification Error Rate)、BPCER(Bona Fide PresentationClassification Error Rate)、ACER(Average Classification Error Rate)。计算公式如下:

(9)

(10)

(11)

(12)

其中APCER_PAI表示第PAI类欺骗攻击的错误识别率,S表示欺骗攻击的类别数,N_PAI表示第PAI类欺骗攻击的攻击次数,若第i次检测判断为假体人脸,则Resi为1;若判断为活体人脸,则Resi为0。APCER表示物种攻击被错误的归类为真实的比例。BPCER是真实样例被错误的归类为攻击的比例,NBF表示活体人脸检测的次数,ACER是平均错误率。

3.3 实验结果

为了验证采集数据集对检测效果的影响,使用原有的FeatherNetB网络,在保证其他参数不变的情况下,分别选取了训练集和测试集不包含采集数据集和包含采集数据集的模型进行检验。结果如表4所示。

表4 验证自采集数据集的有效性

经过实验对比发现,用同一数据集测试,训练数据集样本库的扩充有效降低了模型的错误率。原始的测试数据集比扩充后测试数据集的错误率低,证明扩充测试数据集多样性,能更好地验证模型的好坏,结果表明,采用扩充后的数据集,泛化能力更强。

表5中训练和测试包含自采集数据集作为本文训练和测试数据。同时验证激活函数及CBAM模块对模型产生的影响,分别对比优化前后模型的分类性能如表5。

表5 验证改进的激活函数以及CBAM模块对模型的影响

由实验结果表明,改进注意力机制和激活函数对模型检测精度影响相差不多,可注意力机制模块的改进明显学习到了更多真实样例的特征,所以真实样例被归为错误的准确率有较高的提升。二者结合进一步提高了模型的检测效果。

在验证过程中,本文比较了不同网络和本文方法在准确度和系统资源的占用情况。如图表6所示,相对于MobileNetV2,本文模型无论在模型参数量还是浮点数上都具有优势。在与基础网络对比,参数量和浮点数分别增加了0.171%和0.494%,但错误率降低了1.7192%。

表6 不同模型的参数对比

4 结语

本文针对红外图像的特性以及轻量型网络的优点,提出一种基于改进FeatherNetB网络和近红外的人脸活体检测的方法。同时为了增强模型的鲁棒性,在CASIA-SURF数据集的基础上增加了不同光照和不同角度的真假人脸照片,通过实验测试验证了增加数据集的有效性。在保证模型参数量以及浮点数尽可能少的占用系统资源额情况下,在卷积网络上改进其激活函数和注意力机制模块,经过理论推导和实验证明该方法提升了模型的精度和泛化能力。

猜你喜欢
活体人脸卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
活体盲盒
玻璃窗上的人脸
让活体肝移植研究走上世界前沿
基于深度卷积网络与空洞卷积融合的人群计数
智力考场:有趣的图片测试
始祖鸟是鸟类的祖先吗
“领家系”可爱脸VS“高冷系”美人脸