APP下载

一种基于室外光照估计的数字图片伪造检测算法

2020-03-05杨雪薇邢冠宇

现代计算机 2020年3期
关键词:人脸光照方向

杨雪薇,邢冠宇

(1.四川大学计算机学院,成都610065;2.四川大学视觉合成图形图像技术国防重点学科实验室,成都610065)

0 引言

在信息化社会中,图片往往比文字更有说服力。在图像防伪领域,和人物、人脸相关的图像防伪显得格外重要。本文研究的是针对室外人脸拼接图片的真伪检测,主要是通过估计人脸对应的室外光照情况,分析各个光照的一致性来判断出现在一张图片上的各个人脸是否为拼接,继而得出图片真伪的结论。

目前,在计算机视觉领域,已经出现了一些从人脸图像恢复光照的算法,但是这些算法大多都是建立在一系列的假设之上的:①光源无限远;②人脸表面具有恒定反射率;③物体反射面为凸朗伯反射面,并且对于室外光照下的人脸图像并不能很好地还原光照情况。而本文松弛了一些假设条件,并且针对于室外光照下的人脸光照还原做出了改进,能够较为准确还原室外光照环境。

1 相关工作

由于伪造图像的方法的多样性以及图片质量等问题等,并不存在一个统一且有效的防伪方法。

经研究,目前大致有以下几种方法:一是通过人眼细节还原信息:在文献[3]中,提出了从人眼边缘圆的射影畸变中估计相机的固有参数,根据这些参数的差异来判断该图像是否是拼接伪造图像。在许多情况下,场景中的光源会在眼睛上产生镜面高光,文献[4]提出了一种算法,通过检测人眼的镜面高光,估计光源的方向,以通过图像照明的不一致性来判断图像真伪。显然,以上两种方法都对图像分辨率有很高的要求,否则无法获取眼睛的细节。

二是通过光照的颜色来判别图像真伪:在文献[5]中,作者从人脸中提取和光照颜色相关的特征(GLCM特征),为了比较两个人脸,对这两个人脸分别合并相同的描述符,当两个人脸为拼接的,来自两个人脸的特征连接是不同的,这里使用SVM分类器将图像分类为原始图像和伪造图像。

三是通过恢复出的光照的方向,根据光照是否一致判别图像真伪:在文献[6]中,作者根据物体轮廓上的阴影和法线估计出2D光源方向,然后通过检查光源方向的一致性判断图像的真伪。但是简单地估计出光照的二维方向,在三维空间上的判断有不确定性。在文献[8]中,作者在恒定反射率和凸朗伯体等多个假设前提下,提出了首先从二维人脸图像重建三维人脸模型,并且使用3D法线信息代替二维轮廓法线,从而估计出三维球面谐波系数。文献[9]扩展了文献[8]从任意对象估计三维照明环境,具有更加广泛的适用性。文献[1],松弛了其中两个重要的假设条件:凸朗伯体和恒定反射率,还原出人脸的三维模型,并利用三维法线求出9个球面谐波系数,利用文献[7]中提出的距离公式计算两种光照距离,设定阈值对图片真伪进行判断。

上述算法对于室内光照环境下的人脸光照还原具有较好效果,但是对于室外光照情况下的人脸光照还原效果并不好。并且以上算法大多建立在很多假设条件之上,对于实际应用并不友好。

2 算法实现

如图1所示本文的算法流程主要分为三个部分。

图1算法流程图

第一部分图像预处理,包括人脸三维建模,利用八叉树算法计算人脸的几何信息。

第二部分构建能量方程,包括确立光照模型和着色模型,并构建能量方程。

第三部分优化光照参数,利用一种标准的拟牛顿方法(L-BFGS)优化光照模型中的各个参数,用于后期的重建光照环境和真伪判断。

第四部分还原天空图,判断光照是否一致从而得出真伪结论。

2.1 图像预处理

采用三维形变统计模型(3DMM)从二维人脸中恢复人脸三维模型,为了后期计算的快速方便,这里采用了一个轻量级的三维人脸形变模型拟合库[13],输入二维图像以及人脸上68个特征点的信息即可拟合出对应的三维人脸模型。

图2上面一行为标记的特征点,下面一行为生成的三维人脸

另外,本文采用八叉树加速算法估计人脸的几何信息,主要是为了解决人脸的自遮挡问题。如图3所示,除该图中示例的方向范围,其他方向的光照对该点没有任何影响。

图3因非凸特性而展现的自遮挡情况

我们可以用如下公式来计算其几何信息[1]:

其中,X→是人脸上一点,V→表示视线方向,G是二值项,表示在该视线方向上此点可见与否,Rc是余弦项,文献[2]证明该公式可以更进一步离散化为:

其中,p为人脸上选取的像素点,ω为光照方向,np是p点的法线,ω为入射光线的方向,在本实验中,我们按照天顶角(均分9份)和方位角(均分36份)把上半球面的入射光线分为了324个方向。

2.2 构建能量方程

本文采用的光照模型为加权后的普利兹天空模型[10]和改进后的太阳光照模型[2]。

其中,L表示选取的光照方向的数量,ωsun表示太阳的天顶角和方位角组成的向量,t表示天空的浑浊度,wsky表示天空的平均亮度,wsun表示太阳的平均亮度,此处用两个平均亮度作为权值比重。x=[ωsun,t,wsky,wsun,K]∈R10,K是一个系数,取值范围在[8,8192],对于天空光和太阳光由以下说明:

其中,A,B,C,D,E五个参数在文献[10]中有详细说明,θ表示光线l和天顶的夹角,γ表示光线l和太阳的夹角。

在本文中,我们采用朗伯漫反射模型来计算人脸光照,考虑到计算的方便,我们将朗伯漫反射模型进行了离散化处理,

其中,λ表示R,G,B其中一个颜色通道,ρλ表示p点的反照率,Iλ表示上面提到的光照模型。

在本文中,我们假设人脸反照率处处相等。

由此我们可以得出这个问题的优化模型[2]:

其中,为了提高对漫反射模型的鲁棒性,我们采用Carbonnier损失函数,,ε=10-6。s*表示p点的真实像素值。根据公式(6),整个问题转化为优化x和ρ使得整个能量方程的能量最小化。

2.3 优化光照参数

由2.2小节得出需要优化的能量方程,显然,这个非线性方程的规模十分庞大,尽管我们使用的是较为粗糙的三维人脸模型,也有大约3500个点需要计算。另外,细分光照方向时,我们将天空上半球划分为了300多个方向。所以这个多项式,至少有百万级别个项,且由着色模型可知,每一项也比较复杂,对于每个参数没有设置明显的约束,因此需要的计算量非常大,普通的非线性优化方法很难找到全局最优解。

本文中,我们采用了L-BFGS方法进行参数优化。传统的牛顿法虽然收敛速度块,但是计算过程中需要计算目标函数的二阶偏导数,计算复杂度较大,而且有时目标函数的海森矩阵无法保持正定,对于本文的情况并不适用。而拟牛顿法较好地解决了这个问题,不用计算海森矩阵,而是构造一个近似海森矩阵的正定对称阵,来代替海森矩阵做优化。但是这种方法当问题规模很大的时候,会很占用内存,因为每次需要存储矩阵,L-BFGS能较好地解决这个问题,不必存储完整的矩阵,每次存储最新的若干个向量序列即可,能够很好地应用于大规模无约束非线性优化问题中。本文中,我们主要采用TensorFlow来实现自动微分,从而实现L-BFGS。

L-BFGS方法对初值比较敏感,因此我们对初值的设定要求比较严格。在本文中,我们利用文献[11]中的数据集训练了一个关于人脸反照率ρ的多元高斯混合模型(GMM),将人脸反照率的初始值设定为GMM模型的质心,且假设人脸各处反照率相等。然后我们通过计算低维球面谐波系数[12]还原得到的环境贴图来初始化ωsun,在天空图数据集中随机取样天空颜色的平均值和太阳颜色的平均值来初始化wsky和wsun。在初始化基础上再进行优化,优化结果能比较接近全局最优解,达到能量最小值。

2.4 还原天空图

经过优化计算,我们能够求得参数x,并根据参数较好地还原出人脸图片对应的室外天空环境图。如图4所示,最左为输入人脸图片,中间为天空光的真实图片,最右为还原出的天空图。

图4实验结果图

3 实验结果

本文采用文献[5]中提到的DSO-l真实人脸数据集,并选取了其中的拼接图片做了实验,结果如图5所示,从左到右依次为:实验输入图片,各个人脸图片,人脸对应的还原天空图,用结果天空图渲染的单位球效果图。显然,最右边两个人脸所对应的光照情况类似,而最左边人脸对应的光照情况与其余二人相差较大,因此可以判断,左边人脸为拼接图,这张图片为伪造图。

图5一个伪造检测的例子

4 结语

在数字图片防伪中,本文提出的算法针对室外场景做出了改进,在考虑了人脸几何的前提下,能够较好地还原出拍摄人脸当时的室外光照环境,并根据室外光照环境的相似度来判别图像的真伪,提供了一种新的人脸伪造检测的思路。但是该算法计算得到的光照环境具有相对性,对人脸姿态有要求,要求人脸均为正面,才具有可比性。另外,当人脸上有遮挡时,效果也不理想。这将是下一步研究要解决的重点问题。

猜你喜欢

人脸光照方向
肉种鸡的光照不应性对养殖生产的不良影响分析
2022年组稿方向
有特点的人脸
玻璃窗上的人脸
2021年组稿方向
2021年组稿方向
隐蔽的力量
“领家系”可爱脸VS“高冷系”美人脸
水禽舍的光照及其控制
位置与方向