一种面向人脸活体检测的对抗样本生成算法∗

2019-03-05 03:45马玉琨毋立芳刘方昊
软件学报 2019年2期
关键词:人眼活体像素点

马玉琨,毋立芳,简 萌,刘方昊,杨 洲

1(北京工业大学 信息学部,北京 100124)

2(河南科技学院 信息工程学院,河南 新乡 453000)

3(Courant Institute of Mathematics,New York University,New York,NY 10012,USA)

近年来,随着深度学习技术的发展,卷积神经网络(convolutional neural network,简称CNN)在视觉领域的应用越来越广泛,如人脸识别、图像分类、分割等[1-3].然而2014年,Szegedy等人提出了深度神经网络(deep neural network,简称 DNN)易受对抗样本攻击的特性,即通过对输入进行不可察觉的细微的扰动,可使深度神经网络以较高的信任度输出任意想要的分类,这样的输入称为对抗样本[4].进而,Goodfellow等人解释了对抗样本的生成原因以及治理方法[5],在熊猫的图片中加入一个微小的噪声,在人眼不易察觉的情况下,使神经网络以高置信度分类为长臂猿.这对基于深度学习的应用领域安全性构成了一定威胁,如对于人脸识别系统,攻击者通过对人脸图像做精心设计的改动,使系统误认为是攻击者想要的用户身份;或者对于无人驾驶系统,稍微改动“STOP”标志使得深度神经网络识别为别的标志而不及时停车,造成交通事故[6].研究对抗样本的生成过程、分析基于深度学习的系统存在的安全漏洞,有助于建立针对此类攻击的更好的防范机制.

对于人脸识别系统,攻击者往往利用合法用户的照片或视频试图入侵系统,而活体检测任务是检测出请求者为真人还是假体(照片或视频)[7].深度学习技术普及以来,活体检测任务的性能也得到了较大的提升[8-10],然而基于深度学习的活体检测系统同样存在对抗样本攻击问题.图1给出了对于人脸活体检测任务的对抗样本实例,其中,图1(a)所示为活体,图1(b)所示为照片攻击,图1(c)所示为针对图1(b)设计的对抗扰动(为了方便观察,对幅值做了缩放),图1(d)所示为图1(b)加上扰动噪声图1(c)产生的对抗样本.可以看出,通过对假体图片做微小的扰动,使得系统以高置信度分类为活体,从而顺利入侵系统.

Fig.1 Generating the adversarial example for face-spoofing detection图1 人脸活体检测任务的对抗样本生成示例

对于对抗样本而言,活体检测任务具有其特殊性.活体检测任务最后输出为两类,分别为活体和假体.其中,真、假体反映在图像上的区别微乎其微,例如对于照片攻击,随着成像设备和打印设备的改进,类间距离越来越小,活体检测网络需要具有区分细小差别的能力.另外,假体入侵所使用的照片或视频存在于两次成像之间,受成像设备特性的影响,扰动难度大.以往的对抗样本生成算法将扰动加在输入的每个维度上,而人眼具有视觉连带集中的特性,集中的扰动容易被人眼感知.为了使生成的结果不易被人眼感知,更能迷惑网络分类器,本文提出了基于最小扰动维度的活体检测对抗样本生成方法,所生成的对抗样本具有最小的扰动维度.并且考虑到人眼的视觉连带集中特性,即人眼一旦发现缺陷,视觉立即集中在这片小区域,密集缺陷比较容易被发现[11],通过在生成算法中加入扰动间距约束,生成结果更不易被人类察觉.

本文的主要贡献点在于:

(1)提出具有最小扰动维度的对抗样本生成算法,只需对输入的极少数维度做扰动,即可生成对抗样本;

(2)根据人眼的视觉连带集中特性,在对抗样本生成过程中加入了扰动间距约束,生成结果更不易被人眼感知;

(3)分析了扰动幅度和扰动维度数对人眼感知效果的影响,通过主观评价的方法选取最佳扰动幅度,使算法具有较高的对抗成功率以及生成人眼不易感知的结果.

本文第1节介绍相关工作.第2节分析简单化的神经网络中对抗样本的特性.第3节阐述本文提出的算法.第4节为实验设置与结果分析.最后为本文结论.

1 相关工作

近年来有多篇文章致力于对抗样本生成算法的研究[4-6],其目的有两个方面:一是能够使分类器在错误分类的前提下降低扰动,二是如何使对抗样本不易被人眼察觉.假设深度神经网络拟合了一个多维函数F:X→Y,其中,X为网络输入,Y为输出向量.对于分类任务,Y为和X对应的分类结果.扰动向量表示为δX,则对抗样本为原始输入加上扰动向量的结果,表示为X*=X+δX.对抗样本的产生可以表示为以下优化问题:

Y*为对抗样本的目标分类结果.语言描述对抗样本问题,即改动输入使得深度神经网络输出想要的分类的前提下,扰动向量的范数最小.对于二分类问题,可以简化为F(X+δX)≠Y.2014年,Goodfellow等人提出了快速梯度符号法(fast gradient sign method,简称FGS)以生成对抗样本[5],其基本思想是:设θ是网络参数,x为输入,y为与x相关的目标输出,J(θ,x,y)为用于训练网络的代价函数,则生成对抗样本所需扰动可用下式求得:

其中,ε为一个较小的常数.该方法计算简单,速度快.所生成的扰动和x每一维度上的导数符号一致,所有维度的扰动幅度相等.

Goodfellow等人同时指出,对抗样本在不同的网络结构之间具有泛化性,即用一个网络生成的对抗样本对另一个相同任务的网络具有欺骗性,而无需得知后者的具体结构.分析其原因:不同网络虽然结构不同,但利用相同任务进行训练时,能够学习到相同或相近的输入输出映射关系.对抗样本在网络间的泛化特性意味着,若对分类器网络进行恶意攻击,则攻击者不必已知所攻击的网络结构和参数,可以通过训练自己的网络来产生对抗样本,揭示了深度神经网络分类器防范对抗样本攻击的必要性.

Moosavi-Dezfooli等人改进了对抗样本的生成方法(称为DeepFool)[12].该方法将xi维度上的扰动设为

并通过迭代的方法生成对抗样本.他们同时提出了使用对抗样本平均扰动幅度定量表示网络对于对抗样本鲁棒性的方法,如式(4)所示.

然而,以上几种方法在扰动幅值最小化的目标函数约束下,将扰动遍布在输入向量的每一维度.如果网络输入为图像,则图像中的每一个像素值会被改动,容易引起人眼视觉集中性的问题,即容易被人眼感知,降低了对抗的可操作性.第3节通过对简单神经网络的分析提出改进算法.

2 简单化网络分析

深度神经网络通过多个非线性层的叠加,可以学习到比传统方法更具抽象意义的特征[13].神经元通过不同的权值(weight)和偏置(biase)连接,而权值和偏置通过最小化代价函数的训练学习到,网络训练一般基于后向传播的随机梯度下降法进行[14].

深度神经网络没有显式的数学表达式,简化神经网络有助于对网络的分析.此处假设分类器网络的输入为只有两个像素点a1,a2的灰度图像,X=(x1,x2)为输入的二维向量,其中,xi为ai的灰度值.假设已知一个简单的神经网络实现了如下非线性函数:F:[-20,20]2→[0,1],F(X)=sigmoid(x1+0.3×x2),其中,sigmoid(x)=1/(1+e-x)为神经网络常用的激活函数,xi∈[-20,20].网络最后根据输出的F(X)值进行分类,对应F(X)的取值更接近于0或1,如图2所示,横坐标对应输入的两个维度x1和x2,纵坐标对应网络的输出值.当输出值大于0.5时判断为类别1,否则判断为类别0.图中蓝色表示分类为0,黄色表示分类为1.

Fig.2 Output of the simplified neural networks图2 简单化神经网络的输出

对于一个特定的样本X,网络将其分类为Y.而攻击者考虑对X做最小的更改,以改变最后分类结果.以样本X=(-2,5)为例,F(X)=0.3775,网络将其分类为0,对抗样本的目的是改变X,使得F(X)>0.5,使网络分类为1.而此时F(X)在点(-2,5)处的梯度为gradF|X=(-2,5)=(0.2350,0.0705),梯度在x1或者x2方向上的分量表示函数值随着x1或者x2变化的变化率,因此可知,在输入X的两个维度中,x1比x2更容易引起输出Y的改变,即为了生成对抗样本,改变x1比改变x2更有效.而利用随机梯度下降法训练的一般神经网络分类器,考虑了输出值对于每一输入分量的梯度,因此该分析方法同样适用.

通过对该简化网络的分析可知,由于输入的各个维度连接的权值不同,改变输入向量的不同维度值,对输出值的影响大小不同.对于图像分类的神经网络来说,输出值对于图像中的每一像素的梯度值不同,即每一像素对输出的影响大小不同,将输入向量的各个维度对输出的影响,即梯度值称为显著性映射[15].

图3给出了对于某一神经网络分类器F,输入图像每一像素的R分量对输出值的显著性映射S().图中横坐标为输入图像的宽和高m×n,本例中为 28×28;纵坐标为网络输出值针对某个输入图像的梯度向量,称为显著性映射图.

Fig.3 Saliency map ofRcomponent in input image for the output of the neuralnetworks图3 输入图像的R分量对神经网络输出的显著性映射图

3 融合最小扰动维度和扰动间距约束的对抗样本生成算法描述

算法阐述了本文提出的融合最小扰动维度和扰动间距约束的对抗样本生成的具体步骤.该算法首先计算输入的当前值对输出的梯度矩阵,即显著性映射,选择梯度幅值最大的维度进行扰动,并重复迭代剩余未被扰动的维度,直到能够成功地欺骗网络输出想要的分类结果为止.该算法的一个关键问题是扰动幅度的大小选取.原则上,在梯度分量符号不改变的情况下,在该方向上做相应的扰动会对目标分类输出起促进作用.而当梯度分量的符号改变(由正变负或由负变正)时,若继续做扰动,反而会对目标分类输出起抑制作用.因此,为了选择最优的扰动值,需要分析输入向量的某一维度值在改变时对输出的影响.由于研究对象输入为图像,因此将输入范围设为[0,255],即xi,j,k∈[0,255].具体做法是在输入的图中随机选择一个维度xi,j,k(一个维度对应某一像素点的 RGB三分量之一),保持其他维度值不变,在[0,255]范围内改变其中一个维度值时输出值的变化情况,得到的输入输出曲线如图4所示.横坐标为区间[0,255],为图像像素点的取值范围;纵坐标为输出值Y,即目标类别的置信度.本文中对抗样本的目的是使分类模型判断假样本为真人、目标类别为真,因此纵坐标为真类别的置信度.每一条曲线代表一个维度值xi,j,k和输出值Y的关系,其中,曲线1~曲线4表示梯度为负的几个维度,为单调递增;曲线5~曲线7表示梯度为正的几个维度,为单调递减.

Fig.4 Input-output curves when one dimension of input changes图4 输入某一维度值改变时的输入-输出曲线

从图中可以看出,虽然输入-输出曲线为非线性关系,但均为单调递增或单调递减,且每条曲线在[0,255]范围内梯度符号不变.因此,设扰动幅度最大值为μ,并考虑图像取值范围为[0,255],则设置具体扰动幅值r遵循以下公式:

研究对抗样本生成算法的另一个目的是不易被人眼感知.而人眼具有视觉连带集中性,即针对此特性,为了避免扰动发生在集中的大片区域内,为本文方法加上扰动间距约束,且一个像素内RGB三分量只允许最多1个分量扰动,以避免颜色跳跃过于明显.具体做法为:将已经被扰动的像素坐标加入到点集P中,即P={(x1,y1),(x2,y2),…,(xk,yk)}表示有k个像素点已经被扰动.设扰动间距阈值为dthreshold,则当扰动下一个像素点时,首先计算该像素与P中每个点的曼哈顿街区距离,当k个距离均不小于dthreshold时才可对其进行扰动,否则不对其进行操作,进而尝试别的像素点,具体过程如算法 1所描述.后面的实验结果表明,加入扰动间距约束后,对抗样本更不易被人眼感知.

算法1.融合最小扰动维度和扰动间距约束的对抗样本生成算法.

算法解释:

1.X为原始输入样本,是m×n×3的图像.Y*为目标输出类别(真或假).F为分类器网络的映射函数.r为扰动幅度.

2.δX为总的扰动向量,是初始值为m×n×3的全0矩阵.X*为被扰动后的输入,X*=X+δX.

3.将X赋值给X*.

4.P为被扰动的像素点的集合,初始值为空集.Q为m×n×3的矩阵,用来记录某个像素点是否被遍历过,是初始值为m×n×3的全零矩阵.

5.当X*对应的输出F(X*)不等于目标输出Y*时,循环执行第6步~第12步.

6.计算显著性映射S=∇F(X*).

7.在δX==0的条件下,寻找S中的最大幅值对应的像素点(i,j)max.约束δX==0是为了避免重复扰动同一像素点.

8.当P包含l个点时,D为包含l个元素的集合.

9.当(i,j)max与已扰动的所有点的距离不低于dthreshold时,执行第10步、第11步.

11.将点(i,j)加入集合P,表示点(i,j)处已被扰动.

12.Q(i,j)=1,表示(i,j)像素点被遍历过,下次循环不再考虑,避免算法陷入死循环.此处只记录平面坐标,不记录RGB分量,同一像素点的RGB三分量不允许被同时扰动.

13.当第5步条件满足时,结束while循环.

14.循环l次以后,若δX中有l维不为0,则表示有l维度被扰动过.

15.返回X*,δX.

4 实 验

4.1 实验设置

本文所用分类器为卷积神经网络,网络结构见表1.网络包含4个卷积层和1个softmax层,前两个卷积层后接pooling层,前3个卷积层后加Batch Normalization层.网络最后输出两类:真/假.

Table 1 Architecture of the CNN based face-spoofing detection classifier表1 基于卷积神经网络的活体检测分类器结构

训练网络所用活体检测数据库为2011年公开的Print Attack[16].该数据库采集50个志愿者的两种视频片段,分别为真人、打印照片攻击,每一类有200个视频,每个视频长度为10s左右.数据库给出了视频中每一帧的人脸位置信息.作为数据预处理,读取视频中的每一帧,并裁剪出人脸区域,保存为图片,用于训练和测试网络,最终得到72 806个训练图片、48 451个测试图片.训练结束后的网络活体检测半错误率(half total error rate,简称HTER)为1.72%.

4.2 扰动幅度μ的影响

设置不同的扰动幅值μ会对生成结果有较大影响,为了寻找最佳的μ值,分别设置μ=30,60,90,120,150,180,210,240,255,利用本文算法生成对抗样本,生成的对抗样本结果以及所对应扰动如图5所示.实验中设dthreshold=2,即任意两个扰动点的曼哈顿街区距离不小于 2,避免了两个扰动点相连.由于输入图像为 28×28的大小,如果扰动间距阈值设定过高,可扰动的像素数急剧下降,会导致对抗成功率下降.图中第1列为假体攻击的原图,后面 9列为μ取不同值时的对抗样本.由图5可以看出,当μ值较小时,扰动点数较多,视觉效果也更模糊;当μ值逐渐增大时,扰动点数逐渐减少,随之而来的是扰动点的颜色跳跃越来越明显.扰动图的黑色部分表示未被更改,带颜色部分表示该位置对应的某分量被更改,红、绿、蓝颜色分别对应RGB分量.

图6展示了不同的扰动幅度所生成的对抗样本结果分析,其中,

· 图6(a)曲线为生成成功率,由于加入了扰动间距约束,可扰动的像素数有限,当扰动幅度设置较小时,容易出现遍历完所有像素仍无法生成对抗样本的情况,即对抗失败.由实验结果可知,当μ=30时,生成对抗样本的成功率较低;当μ=90时,生成成功率可达97%以上.

· 图6(b)曲线为扰动像素数,扰动幅度越大,所需扰动像素数越少.

· 图6(c)曲线为人眼感知率.

Fig.5 Generated adversarial examples with different perturbation range图5 不同的扰动幅度生成的对抗样本

Fig.6 Results analysis with different perturbation range图6 不同扰动幅度的结果分析

仔细观察图5可以发现,扰动的幅值和点数共同影响了人眼感知效果.采用主观评价的方法定量表达此效果.对于每个志愿者,每次给出1组图片,包括原图以及9个扰动幅值、FGS方法以及DeepFool方法生成的对抗样本,并回答问题:“该组图片哪些被人工修改过?”.共有20个志愿者参与评价,每个志愿者评价300组图片,一组图片为一个原图以及生成的11个对抗样本图,共3 600张图片.并且评价是在不同的显示设备上完成的,放大尺寸由志愿者自行调整,每张图片的观察时间控制在3s左右.图6(c)表示人眼感知率和扰动幅值之间的关系,由图可知,当μ=90时,人眼感知率最低,为30%;μ值增大或者缩小,都会导致人眼感知率增加.分析其原因,人眼可感知性受扰动维度数和扰动幅值两个因素共同影响,而μ=90的设置使得两者进行了折中,较不易被感知.为了验证该评价方法的合理性和有效性,在测试图片中加入了原图,其人眼感知率低于 5%,即原图很少被误认为人工修改过,证明该主观评价方法是合理而有效的.综合对抗成功率、扰动像素数以及人眼感知率等数据,选择μ=90为最佳扰动幅度,并作为后续实验及结果比较的参数.

4.3 和相关工作的结果比较

为了进一步与相关工作比较,分别利用DeepFool方法和本文的算法生成测试集图像的对抗样本,如图7所示.其中,图7(a)所示为原始的假体图片,且网络能够成功地检测为假,实验对其做扰动,生成对抗样本以欺骗分类器网络判断为活体;图7(b)所示为DeepFool方法生成的对抗样本;图7(c)所示为本文算法未加扰动间距约束时生成的对抗样本;图7(d)所示为加入扰动间距约束的算法生成的对抗样本.从图7中可以看出,加入扰动间距约束的算法生成结果在视觉上更接近原始图像,更不易被人眼感知.图7第5排为第4排中各对抗样本对应的扰动,本文算法生成的扰动避免了同一像素中 RGB分量被同时扰动,且被扰动的像素较分散,互相不连续,有较好的视觉效果.利用主观评价方法得到DeepFool和FGS算法生成结果的人眼感知率分别为50%和51%,本文方法的人眼感知率比Deepfool和FGS方法降低了20%和21%(注:图7所列例子均为测试集中随机选取的结果,并非精心挑选).

Fig.7 Comparisons of adversarial examples from different algorithms图7 不同算法生成的对抗样本比较

表2分析了不同算法所需的扰动维度和平均扰动幅度等.平均扰动幅度的计算方法如公式(4)所示,即扰动向量的L2范数与原始数据L2范数的比值.由表2可知,本文算法未加扰动间距约束时,平均扰动30.3个像素点,占原始输入维度的 1.29%,即只需改动原始输入向量的 1.29%,即可成功地欺骗网络;加入间距约束后,算法平均扰动像素点为31.9,占原始输入维度的1.36%,略微有增加,但视觉效果明显提升.

Table 2 Comparison with other related methods表2 与其他相关方法的比较

为了验证本文算法生成结果的泛化性,用相同的数据库训练另一个网络 LeNet-5[17],即卷积神经网络中具有代表性的一个结构.LeNet-5网络的活体检测正确率为 98.52%.利用表1所示网络生成的对抗样本集针对LeNet-5网络的欺骗成功率为85.75%,即表1所示网络生成的对抗样本中有85.75%能够欺骗LeNet-5,证明本文算法生成的对抗样本在不同网络之间具有较好的泛化性,与DeepFool方法87.63%的泛化性相当.

文章《DeepFool:A simple and accurate method to fool deep neural networks》指出:网络层数越高,分类性能就越好,对于对抗样本的鲁棒性也就越好.加入一些技巧,如Batch normalization和dropout之后,可以在一定程度上提高模型鲁棒性,但对抗样本问题仍然存在.本文在表1所示网络中全连接层上加入dropout,活体检测的等错误率HTER为2.12%,与未加dropout时相当;利用本文方法重新生成对抗样本集,其平均扰动幅度为0.122,即与未加dropout时相比,鲁棒性没有明显的提高.Dropout的主要作用在训练阶段加速收敛和防止过拟合,但对于对抗样本不鲁棒.

图8(a)示出了对48 451个测试图片利用算法2生成对抗样本所需扰动的维度数直方图,扰动维度集中在[0,50]左右.有少量样本的扰动维度较大.通过限制最大扰动维度数,分析对抗样本生成的成功率如图8(b)所示,即若扰动维度数大于某一阈值,则停止迭代,测试该时刻生成样本是否能够成功地欺骗.由分析结果可知,当最大维度设置为100(输入维度的4.25%)时,生成对抗样本的成功率为97%.

Fig.8 Analysis of average perturbation dimensions in adversarial examples图8 对抗样本平均扰动维度分析

5 结 论

深度学习技术易受对抗样本的攻击,而人脸活体检测任务的对抗样本具有其特殊性:活体检测任务真假体图像相近,类间距离较小,且假体存在于两次成像之间,对其做扰动有一定的局限性.针对以上特点以及人眼对图片的视觉特性,提出了一种基于人眼视觉特性的最小扰动维度对抗样本生成方法.该方法将对输入图像的扰动集中在少数几个维度上,并充分考虑人眼的视觉连带集中特性,加入扰动点的间距约束,以使最后生成的对抗样本更不易被人类察觉.利用人脸活体检测数据库Print Attack对典型CNN分类模型进行对抗,该方法通过平均扰动输入总维度的 1.36%,即可成功地生成对抗样本.并且通过加入扰动间距约束,使对抗样本更加不易被人眼感知,通过志愿者对于对抗样本的主观评价,其人眼感知率比经典FGS方法及DeepFool方法降低了20%,证明该方法有更好的欺骗效果.

本文研究了人脸活体检测任务中对抗样本的生成机理,揭示了活体检测任务分类器的安全隐患,为下一步建立合理的防范机制奠定了基础.

猜你喜欢
人眼活体像素点
田志强
图像二值化处理硬件加速引擎的设计
活体盲盒
基于局部相似性的特征匹配筛选算法
让活体肝移植研究走上世界前沿
基于安全加密的人脸活体检测技术
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
始祖鸟是鸟类的祖先吗
闪瞎人眼的,还有唇