基于稀疏表示的人脸图像高光检测和消除

2019-08-12 03:43李明悦
现代计算机 2019年19期
关键词:色度高光人脸

李明悦

(四川大学视觉合成图形图像技术国防重点学科实验室,成都610065)

0 引言

许多计算机视觉问题在处理的时候都会假设图像不存在镜面反射高光,然而在真实场景中,非均匀介质不是理想的漫反射体,物体的表面总会存在高光。图像中的镜面反射会遮盖高光区域内的真实材质属性,影响图像的质量,对于如图像分割、目标检测和跟踪等问题产生很大的干扰。

传统的高光消除研究大多采用Shafer 提出的在非均匀介质上的双色反射模型(Dichromatic Reflection Model)。该模型指出,当场景中光源发出的光线照射到物体材质表面时,反射光同时包含漫反射和镜面反射:漫反射是入射光线在物体表面经过多次的反射和吸收后返回物体表面的光;镜面反射是入射光在物体表面上直接反射出的光,它与物体表面的位置、粗糙程度等因素有关。数学模型为:

其中,ms和md分别是镜面反射和漫反射的权重因子,Γ 是光照颜色的色度,Λ 是漫反射的色度。

本文工作的目的是针对单幅人脸图像的镜面反射高光分量,建立一个有效的检测和消除方法。在高光检测任务中,我们利用人脸图像上高光分布的稀疏性特点,结合非负矩阵分解方法检测高光。进而,在高光消除过程中,在尽可能不改变图像特点的前提下,借鉴图像修复的思想实现高光消除。

1 相关工作

单幅图像的高光消除算法,因为输入图像数量的限制,是一个病态问题,有大量的相关研究。早期高光消除方法通过分析彩色图像的直方图分布恢复高光和漫反射分量。Schluns 和Koschan[1]利用双色反射模型公式,将镜面反射图像( x,y )和漫反射图像( x,y )看作是颜色空间的两个基向量,图像应当近似地分布在这两个向量支撑的平面上。但是,该方法适用于材质一致的物体表面的高光检测和消除,因为当物体包含不止一种材质时,不同材质的漫反射分量不相同,镜面反射分量也会发生变化,所以无法统一地近似到一个平面上。Tan[2]提出通过颜色一致性的方法估计光照色度,将图像的光照色度规范为均匀分布,从而可以在已知光照色度时,高光系数ms只与物体的漫反射色度的最大值Λmax相关,即可以通过估计Λmax去估计ms,进而估计出高光分量Is。Tan 证明,在没有明确颜色分割的情况下,迭代地将色度值移向邻域中具有最大色度的相邻像素的色度值,可以有效地去除具有复杂多色场景的纹理对象的高光。此外,Yang 等人[3]利用双边滤波的方法近似最大漫反射色度,Kim 等人[4]用暗通道先验近似伪漫射图像。但是,因为这些方法对输入图像的限制,曝光量较大的自然图像必须通过直方图均衡化或图像增强等方法进行预处理,这样操作的同时,会改变图像的光照信息。

2 基于稀疏约束的高光检测

人脸皮肤呈现的颜色主要受黑色素和血红蛋白影响[5],肤色的变化是由这两种色素的密度和分布变化引起的。因此,本文假设皮肤材质函数Sd( )x,λ 由色素的密度和分布决定:

其中x 表示空间坐标, β( x )表示色素的分布。

此外,在皮肤中的高光区域中,镜面反射光的光谱可以等同于环境光源的光谱。因为有假设,Ss=1 当且仅当位于高光区域,否则Ss=0。同时假设场景光照是一致的,光强的变化是由皮肤表面曲率的变化引起的。基于上述假设,Blinn Phong 光照模型可以表示为:

式(3)的意义在于:将镜面反射和漫反射分解为仅受几何参数影响的色度无关项和受光照因素控制的色度项的乘积。

我们考虑有N 个像素的彩色图像在RGB 空间每个颜色通道的分量,有:

其中,等号右端的第一个矩阵是3*2 的矩阵,表示漫反射和镜面反射的RGB 通道幅度,仅与光照有关;第二矩阵是2*N 矩阵,表示N 个像素的每个点的漫反射和镜面反射的空间关联系数。

显然,对图像而言,所有矩阵都是非负的。同时,因为镜面反射区域存在但且是局部稀疏分布的,根据提出的假设,图像的所有非高光区域中镜面反射系数ks( x )=0,因此,系数矩阵的ks( x )分量是稀疏的。我们选择带有稀疏约束的非负矩阵分解(Non-negative Matrix Factorization,NMF)求解(4)。

2.1 算法描述

Hoyer[6]提出稀疏度(Sparseness)的概念,用于衡量向量的稀疏程度,数学定义是:

本文的高光检测问题中,输入矩阵是图像像素点的数据矩阵,若图像的像素点个数为N,那么输入矩阵大小是3*N 。公式(4)表明矩阵分解内部的维度为2,分别对应漫反射特征和镜面反射特征。根据前文有关镜面反射的假设,本文针对镜面反射系数向量设置稀疏度约束。具体算法步骤如下:

输入:原始图像I=3×n

镜面反射系数的稀疏约束sp( ki)=Si

输出:稀疏分解系数矩阵K。

Step 1. 用矩阵的奇异值分解算法(SVD)分解I=W∙K ;

Step 2.迭代最小化能量函数E(W,K)=‖I-W∙K‖2直至收敛;

b.将K 的每行行向量进行“投影”,保证投影后的行向量满足非负,L2范数为一,L1范数为根据稀疏度约束Si和( 3.4 )式计算的值;

其中,⊗和⊘分别表示按元素的乘法和除法。μK是小值步长系数,相当于传统的梯度下降法,μK的值取足够小的时候我们能保证逐步减小能量函数E(W ,K ),我们根据自动计算μK。

2.2 算法优化

在计算中,我们知道对给定的向量x,它的实际稀疏度sp( x )在绝大多数情况下并不一定符合预期的稀疏情况。我们通过近似的方法找到和x 接近的非负向量y,令y 满足我们预期的稀疏度,同时向量y 与向量x的距离最小。我们称之为L1范数不变的稀疏化近似。具体过程如下:

Step 1. 计 算 x 的 L1范 数,记,其中s 是预期的稀疏度;

Step 2.令yi=xi+(l1-∑xi)/n,Z={},;

Step 4. 若 y 非负,则结束运算;否则令Z={i,yi<0},yi=0,i ∈Z,计算c=(∑yi-l1)/(n- ||Z),最后令yi=yi-c,i ∉Z,返回Step 3。

3 基于稀疏表示的高光消除

在检测出高光区域之后,本文旨在尽可能保留图像上非高光部分属性的前提下,消除高光对图像的影响。借鉴图像修复的思路,我们将检测到的高光区域视为异常值,在假设非高光区域只包含漫反射分量的前提下,将高光区域部分匹配到非高光区域的近似中,消除高光分量的影响。在样本匹配阶段,我们利用稀疏表示来完成高光消除。

记Ω={p|εp≠0}为高光区域坐标集合,它的边界为∂Ω。记I∅Ω为图像I 中不包含Ω 区域的像素集合,即为图像的非高光区域,D∅Ω是将Ω 区域坐标列删除后对应的字典。那么在I∅Ω上有稀疏表示:

从而,我们可以通过Â修复图像:

为了保证结构信息能得到正确有效地恢复而不是错误计算或者遗漏信息,我们在对边界∂Ω 进行填充的时候需要确定填充顺序。我们在每次迭代中,都计算边界∂Ω 上每个像素点p 的优先度P(p)。因为高光区域的不规则性,所以我们记P(p)为p 的k*k 窗口内的非高光像素的比例,即。记其中最大优先度的点为pm,以pm为中心的一个k*k 大小的窗口补丁就作为当前迭代的处理对象Ψpm。因为pm位于待修复区域边界∂Ω 上,所以以pm为中心的图像块Ψpm既包含Ω 区域像素,也包含I∅Ω区域内像素,同时我们可以明确地区分这两个区域,对应上文讨论的稀疏分解图像进行修复,就有:

具体的算法过程如下:

Step 1.将检测出的高光区域记为Ω,使用不含高光区域的I∅Ω构建字典D;

Step 2.While Ω 非空,Do:

b. 在窗口Ψpm内利用字典D 进行稀疏分解得到系数矩阵;

c. 根据系数矩阵恢复Ψpm⋂Ω 的像素,更新Ω=Ω-Ψpm⋂Ω。

4 实验结果

本文将高光检测实验分为两步:首先通过上述的L1范数不变的稀疏化近似方法初始化输入矩阵,即图像I;然后使用单一稀疏度约束的非负矩阵分解算法计算检测高光区域,根据分解出的系数矩阵K 的第二行的数值判定高光区域。此外,为了保证计算的自动化,我们根据暗通道图像计算非负矩阵分解中的稀疏约束。

高光检测实验对比图中可以看出,尽管图(1)和(2)一个肤色偏白,一个肤色偏黑,但是第二列本文方法的结果(1a)和(2a)检测出的高光区域具有较强的鲁棒性。与第三列暗通道阈值检测结果(1b)和(2b)相比,由于单一阈值导致检测出的区域很不稳定,表现为:图(2)皮肤偏黑,高光检测结果不完全;图(1)皮肤偏白,高光检测过多。本文方法受白色牙齿的干扰十分小,同时基本检测了嘴唇和下巴的高光区域。

图1 高光检测实验

(1)(2)是大小为600×600 像素的人脸图像;(1a)(2a)是对应图像的本文高光检测算法的结果;(1b)(2b)是基于暗通道图像阈值检测高光的结果,根据文献[7]的统计数据将阈值设置在0.7。

图2 不同高光消除方法的对比

(1)(2)是输入的原始图像;(a)-(e)分别为文献[7],[8],[9],[10]以及本文的高光消除实验的结果。

图2 所示的高光消除实验对比结果中,第二列(1a)(2a)是文献[7]采用了暗通道图像特性对高光区域检测并消除,但是针对非人脸区域的非高光白色材质、人脸的牙齿部分会错误检测为高光,高光消除过程会错误地修改这些区域的结果。第三列(1b)(2b)根据文献[8]中采用的技术在针对单张人脸图像上结果是失败的,一方面因为是文献[8]选取的图像都是较暗光照下的图像,高光区域有较为明显的特征,但是这类方法对一般的人脸图像并不适用。第四列(1c)(2c)是文献[9]根据双色反射模型利用图像分割方法实现的高光消除的效果。尽管人脸区域的材质是稀疏的,但并不是单一材质,图像分割受到高光的影响就会导致错误的结果。第五列(1d)(2d)是文献[10]的高光消除,同样地因为检测高光过程需要手动标定阈值,所以在对于不同光照环境下的图像设定一个固定阈值时,会导致有些图像的非高光区域被错误检测(1d)。第六列是本文采用的高光消除的实验结果。从方框区域的对比中可以看出,本文方法不论是在不同光照条件下高光区域检测的准确性,还是检测出高光区域后高光消除的可信度上,都比前面几种方法有着更好的结果。

5 结语

本文利用人脸图像上镜面反射高光的成因和特征,采用双色反射模型构建图像的高光分量和漫反射分量。通过假设材质函数可以由色素的密度和分布决定,且高光系数为空间上的二值函数,仅在高光区域高光系数为1,从而利用有稀疏约束的非负矩阵分解算法检测镜面反射高光区域。同时,本文从高光检测区域、高光消除结果两个方面同其它高光检测消除方法进行实验对比。对比结果证实本章提出的方法对影响人脸图像的高光检测和高光消除的肤色、光照等因素具有较好的鲁棒性。

但是由于在镜面反射分量上做了大量的假设,并且抛弃了实际人脸图像上其他材质特征,如胡子、斑点的稀疏性讨论,因此这些稀疏的材质特征可能会对高光检测造成影响,这也是我们下一步要研究解决的问题。

猜你喜欢
色度高光人脸
唐古特大黄有效成分与色度相关性分析
华裔面孔在东京奥运会上的高光时刻
有特点的人脸
保质期内莲藕色度值统计分析
玻璃窗上的人脸
季后赛高光时刻多诺万·米切尔不服气
季后赛高光时刻安东尼·戴维斯值得尊重
季后赛高光时刻乔尔·恩比德没有遗憾
谈“理想声音的概念”在演唱中的应用
“领家系”可爱脸VS“高冷系”美人脸