文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》


本文为《基于差分量化局部二值模式的人脸反欺诈算法研究》文献阅读笔记
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
内容大多参考网上资料,仅作为本人学习笔记使用,因为大部分概念我都是第一次接触,只是凭着大概理解写下本文,错误不可避免。欢迎指出交流讨论。借鉴的博客在文中都有提到,感谢各位大佬!

背景

人脸识别技术在生活中应用十分广范,但当有人伪造客户人脸并试图通过人脸识别系统的验证时就会出现欺诈攻击。
人脸欺诈攻击一般可分为3种方式:打印攻击、重放攻击和3D模型攻击。
打印攻击
打印攻击也称为照片攻击,是指将合法用户的照片打印出来或呈现在电子设备屏幕上,然后显示在人脸识别系统的镜头前,或是攻击者将用户人脸照片的眼部区域剪裁后放在自己的面部模拟用户眨眼来响应系统指令。
重放攻击
重放攻击也指视频攻击,是指在人脸识别系统的镜头前重复播放录制好的用户脸部视频以试图通过系统验证。
3D模型攻击
3D模型攻击是指利用特殊材料构造3D模型来模拟用户头部,当欺诈检测系统提示用户做出相应动作时,攻击者用手左右转动模型来模拟用户的头部运动。
打印攻击和重放攻击相对于3D模型攻击所用的欺诈材料易获取,欺诈样本的制作也更为简单,因此前两者欺诈方式在人脸识别系统中存在的风险系数较高,针对打印攻击和视频攻击提出的反欺诈方法也比较广泛。

目前,大部分基于脸部识别的反欺诈操作都需要人机交互。例如,用户需要眨眼完成支付宝的身份信息验证等。而交互过程极大降低了客户体验的满意程度。

文献提出用差分量化局部二值模式算法和空间金字塔算法结合的方法实现对人脸反欺诈算法性能的提升。

算法流程

文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》

1.预处理—脸部提取

首先在视频中获取一帧人脸图像,因为适当的背景信息能够帮助欺诈检测系统有效地鉴别真脸和假脸,所以检测到的人脸区域扩充到原来的1.5倍后再进行剪裁。为了避免图片标准化后使得纹理信息丢失,文献中未对剪裁后的人脸图片进行任何处理,并用空间金字塔算法解决图片多尺度问题。

2. 颜色空间转换

HSV颜色空间

来自此博客
色调 H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度 S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度 V
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

RGB---->灰度图

把RGB3个通道的分量按照一定的比例计算到灰度图像中。Gray = R0.299 + G0.587 + B*0.114

人脸在重造过程中会产生许多纹理差异,这种差异在彩色通道上的表现更为明显。
图3(a)行1和行2分别是低分辨率下真脸和假脸在RGB、灰度图和HSV空间中的表示.图3(b)是高分辨率图片示例,从上到下分别表示真脸、卷曲照片、剪切照片和重放攻击图片,cosθ表示对应假脸图片和真脸图片的余弦相似度:
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
其中,x1k,x2k(k=1,2,3,…n)分别表示第1 幅图片和第2幅图片的第k 个特征点.

文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
如图3所示,自然状态下的图片是以RGB形式呈现在人眼中.低分辨率真脸和假脸图片在RGB和S通道中的差异比灰度表示下的差异更为明显。但对于高分辨率的图片,在彩色空间或通道内也很难直观地辨别真脸和假脸。通过比较S通道和灰度图的值可知,真脸和假脸在彩色空间中的差异更大。

3.DQ_LBP特征提取

LBP特征提取

参考自此博客
LBP概念
LBP用于纹理特征提取。原始的LBP算子定义为在3×3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3×3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。如下图所示:
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》

其中,rc和rn(n=1,2,…,P)分别表示中心点(x,y)的像素值和位于半径为R(R>0)的圆上的 P 个邻域的像素值。

上述提取的LBP算子在每个像素点都可以得到一个LBP“编码”,那么,对一幅图像(记录的是每个像素点的灰度值)提取其原始的LBP算子之后,得到的原始LBP特征依然是“一幅图片”(记录的是每个像素点的LBP值)。
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》

LBP的应用中,如纹理分类、人脸分析等,一般都不将LBP图谱作为特征向量用于分类识别,而是采用LBP特征谱的统计直方图作为特征向量用于分类识别。
因为,从上面的分析我们可以看出,这个“特征”跟位置信息是紧密相关的。直接对两幅图片提取这种“特征”,并进行判别分析的话,会因为“位置没有对准”而产生很大的误差。后来,研究人员发现,可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述;整个图片就由若干个统计直方图组成;
例如:一幅100×100像素大小的图片,划分为10×10=100个子区域(可以通过多种方式来划分区域),每个子区域的大小为10×10像素;在每个子区域内的每个像素点,提取其LBP特征,然后,建立统计直方图;这样,这幅图片就有10×10个子区域,也就有了10×10个统计直方图,利用这10×10个统计直方图,就可以描述这幅图片了。之后,我们利用各种相似性度量函数,就可以判断两幅图像之间的相似性了;
对LBP特征向量进行提取的步骤
(1)首先将检测窗口划分为16×16的小区域(cell);
(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;
(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。
(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量;
(5)然后便可利用SVM或者其他机器学习算法进行分类了。

DQ_LBP

传统 LBP忽略了局部中心点与相邻点像素之间的差异信息,如下图① 和② 这2个3×3 窗口的中心像素点和周边像素点的差值虽然不同,但经过计算之后其LBP序列完全相同。文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
1.将像素差值归一化
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
max表示该 DQ_LBP所能表示的最大值,其大小取决于周围点选取的个数,与max关系可用max=2^P-1表示,如果P=8,则max=255,在上式中LBP值随n呈指数关系递增。DP_LBP计算公式:
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
上式中,DQ_LBP的值会随着n 的增加以2^(1+A)的倍数递增,当n=P 时A 值对DQ_LBP的影响最 大,当n=1 时 DQ_LBP 值 将 不 受 A的限制.所以,为了使 DQ_LBP算 法 不 会 因 为n 较 小而过多改变当 前 位 LBP信 息,也 不 会 因 为n 太 大使DQ_LBP值远 远 超 出 max范 围,需要控制A的值。文献中创建了一个二次函数使其极极值为(P+1)/2,也就是大概在n值为0—P中间的位置使A最大,而n在0—P两端的时候不太大。因为在二进制转换为十进制过程中n小的位置对整个数值影响本来就是微小的,控制了A值之后也能很好的控制二进制位中高位的(n-1)*(1+AC)次方不那么大不至于超出max值。
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
以下是我计算的上一个图中心点的LBP值,以及用第一个公式计算的DQ_LBP和用第二个公式计算的DQ_LBP值文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
当图像分辨率越高时,图片局部像素间的差异越小。下图表示高分辨率样本的灰度图,任取其局部纹理可知中心点与周围点像素值的差不超过5.事实上,通过统计 CASIA FASD 和 Replay-Attack 数据库中每张图片的差值得知,像素之间的差值多数分布在0~25之间,差值的最大值不超过50。由上表结果知,当周围点与邻近点差值越小,DQ_LBP值就越小.因此,对于像素值变化较为平缓的中、高分辨率人脸图像,其 DQ_LBP值一般不会超过最大值max,如 果DQ_LBP>max,则 设置 DQ_LBP=max。
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
图6(a)给出了当中心点像素值不变时LBP和 DQ_LBP随差值变化的曲线.从中可以出,DQ_LBP会 随 着 差 值 增 大 而 增 大,而LBP始终保持不变。
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》

4.空间金字塔

空间金字塔池化的奥义(多尺度特征提取出固定大小的特征向量)是一种特征提取方法。
参考自此博客
开头部分提到,图片标准化过程会需要经过裁剪,或者缩放等一系列操作,这样往往会降低识别检测的精度,造成图片纹理信息丢失。所以对视频中提取的带有人脸的帧图像不作任何处理。
但是在之后进行图像比较时需要用到相同大小维度的图像特征向量,空间金字塔就能实现这一过程。输入不同尺度的特征图输出固定大小的特征向量。
输入层:一张任意大小的图片,假设其大小为(w,h)。
输出层:21个神经元。
也就是我们输入一张任意大小的特征图的时候,我们希望提取出21个特征。空间金字塔特征提取的过程如下:文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》
如上图所示,当我们输入一张图片的时候,我们利用不同大小的刻度,对一张图片进行了划分。上面示意图中,利用了三种不同大小的刻度,对一张输入的图片进行了划分,最后总共可以得到16+4+1=21个块,我们即将从这21个块中,每个块提取出一个特征,这样刚好就是我们要提取的21维特征向量。
第一张图片,我们把一张完整的图片,分成了16个块,也就是每个块的大小就是(w/4,h/4);
第二张图片,划分了4个块,每个块的大小就是(w/2,h/2);
第三张图片,把一整张图片作为了一个块,也就是块的大小为(w,h)
空间金字塔最大池化的过程,其实就是从这21个图片块中,分别计算每个块的最大值,从而得到一个输出神经元。最后把一张任意大小的图片转换成了一个固定大小的21维特征。

文献中将DQ_LBP纹理与经典的空间金字塔算法结合,过程如图所示:
统计每个方块中的特征直方图并将其按照顺序级联;最后将每一层的直方图级联一起形成表示样本图片的一维向量.空间金字塔算法实际上是对图片进行粒度划分,当层数越高就意味对图片的划分越精细,因此更能详细地反映图片的空间结构和局部纹理信息。
文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》

5.利用支持向量机(SVM)算法进行真假人脸的检测与分类

支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器。寻找一个超平面将数据分为两类。
取大量真实人脸和对应的非真实人脸提取DQ_LBP特征进行训练,得到一个能够分辨真实人脸和非真实人脸的SVM二分类模型(一个超平面)。
然后在人脸识别过程中将摄像头录入的人脸特征与原本录入的真实人脸进特征进行对比,就能实现人脸反欺诈。

实验结果与分析

为了验证DQ_LBP特征提取方法及其结合空间金字塔算法在人脸欺诈检测中的有效性,表2给 出8种特征提取方法在各个颜色通道的表现结果。
以ERR和HTER为评价指标.其中HTER为FAR与FRR的均值,FAR为错误接受率(错误接受率为不该接受的样本里你接受的比例),FRR为错误拒绝率(错误拒绝率为不该拒绝的样本里你拒绝的比例).ERR为FAR,FRR的2条曲线的相交点对应的值。表2可以看出,虽 然相比已有的特征提取方法,DQ_LBP并不是在所有的颜色空间内具有最好的检测性能,但是因为量 化了原 始LBP的差值信息使得其性能有了很大的提高。文献阅读报告《基于差分量化局部二值模式的人脸反欺诈算法研究》