本发明涉及人脸识别技术,尤其涉及一种人脸图像光照补偿方法。
背景技术:
相比于其它生物特征识别技术,人脸识别由于其非接触性而得到广泛应用。随着其应用范围的扩大,人脸识别的应用环境越来越复杂,尤其是光照不均的人脸图像。现有的人脸识别算法对正常光照下的人脸识别具有较高的成功率,然而,对于光照变化环境下的人脸识别就不能较好地满足应用的需要。并且,随着数码技术的发展,采集的人脸图像的信息越来越丰富,对于光照变化环境下既有高光又有局部信息无法辨认的暗区的人脸图像,很多有利于人脸识别的信息不能有效提取,同时带来一些干扰信息(比如光照变化引起的人脸伪边缘),使得人脸识别在非均光照下识别率较低而误判率较高,因此研究一种有效的非均匀光照环境下人脸图像的光照处理方法是一个值得研究和探索的课题。
目前,国内外学者在针对低照度非均匀光照环境下人脸图像的光照处理中已取得不少成果。主要分为两大类:采用图像增强方法和重新构造光源模型,重新构造光源模型需要大量处于不同光照环境下的图像,数据量大,计算复杂,使用范围受到一定程度的限制。对于图像增强的方法,从初期的空域变换方法到频域、梯度域方法,再到不同颜色空间的彩色图像光照处理方法。如经典的直方图均衡化方法;基于入射分量和反射分量的算法也得到广泛应用,在此基础上的同态滤波算法和retinex算法得到广泛关注并取得很好的处理效果;随着研究的深入,小波理论成了图像光照处理的热点;基于变分和偏微分方程的方法也日益深入;近来,模拟人眼视觉系统对图像的感知能力的脉冲耦合神经网络模型也成了图像光照处理的主流之一。上述方法能够提升图像的整体亮度,恢复阴影区域的细节信息,但仍然存在一定的不足:1)涉及的参数很多,不易选取,如果参数选取不当,效果会不理想;2)对比度不强,丢失了一些纹理细节信息,阴影边缘不能完全消除。
retinex算法早期用于去雾,能改善清晰度,丰富图像的细节信息,达到更舒适的视觉效果。但对于同时含有低亮度、高亮度和阴影区域的图像,这种方法存在雾化现象,并且处理后的图像仍可看到阴影的存在。由葛微、李桂菊、程宇奇等出版的《利用改进的retinex进行人脸图像光照处理》的文献提出自适应平滑retinex算法,这种方法在平滑光照边缘的同时使一些局部细节信息被平滑了;weickert结构张量能够对图像的线性结构和均匀结构进行判断;saint-marc等提出了一个具有各向异性扩散特性的指数函数。
传统retinex方法的原理如下:基于光的反射原理,land等人于20世纪70年代提出了retinex理论,将人眼视觉中的颜色恒常性和稳定的亮度感知能力用理论模型表达出来。retinex算法早期用于去雾,取得很好的效果。基于入射分量和反射分量的多尺度retinex图像光照处理算法能改善清晰度,丰富图像的细节信息,达到更舒适的视觉效果。
根据retinex理论,图像由入射分量和反射分量构成,数学表达式为:
s(x,y)=l(x,y)×r(x,y)式(1)
式(1)中,s(x,y)代表原图像,l(x,y)表示入射分量,r(x,y)表示反射分量。入射函数l(x,y)用来描述周围环境的亮度,反映了图像中的低频信息。而反射函数r(x,y)体现了物体的反射能力,与光照无关,反映图像中的高频信息。
对式(1)两边取对数,得:log(s(x,y))=log(l(x,y))+log(r(x,y))式(2)
这样处理后将两者的乘积关系转换成简单的相加关系。
运用retinex理论对图像进行处理的方法,都是围绕怎样准确地估计出光照分量l(x,y),从而得到反射分量r(x,y),来达到光照补偿的目的。即:
log(r(x,y))=log(s(x,y))-log(l(x,y))式(3)
jobson等定义了单尺度retinex(ssr)算法,该算法的表述如下:
式(4)中,r(x,y)是输出图像,s(x,y)是原图像,log为自然对数,f(x,y,c)称为环境函数,
由于ssr不能同时实现图像动态范围压缩和色调再现,为了克服这种不足,研究者们给不同尺度下的ssr分配合适的权值,通过对ssr的加权求和得到多尺度retinex算法(简称msr),该方法表述如下:
式(5)中,
对于同时含有低亮度、高亮度和阴影区域的图像,多尺度retinex算法不能有效地去除阴影边缘。葛微等提出的基于retinex算法,将梯度域的传导函数引入retinex算法中,提出了改进的自适应平滑retinex算法,将人脸的主要特征突显出来;但他们在设计传导函数时只考虑了单向的扩散,在平滑光照引起的伪边缘的同时将一些有用的边缘信息也平滑了,并且图像中有大量的椒盐噪声;唐磊等提出的针对路面图像阴影提出了基于中心环绕的各向异性retinex算法,这种算法对于灰度比较均匀,只有阴影和非阴影两大块的图像,取得令人赞许的效果;但对于人脸这种灰度级多、纹理信息丰富、非刚性对象,这种方法就不适用了。为了淡化大角度倾斜光照下人脸图像中的阴影,对光照引起的人脸伪边缘的判断就是基础而关键的一步了。
技术实现要素:
本发明的目的:提供一种人脸图像光照补偿方法,针对大角度斜光照、较暗环境下的图像,在判断出人脸真实边缘和伪边缘的基础上,引入weickert结构张量确定图像的线性结构和平滑区域并重新赋值,将所得的结果代入saint-marc的各向异性扩散函数来改进retinex算法,在增强人脸边缘信息的同时平滑了光照引起的伪边缘,使图像中阴影区域的细节信息得到很好展现。
为了实现上述目的,本发明的技术方案是:
一种人脸图像光照补偿方法,该方法至少包括如下步骤:
步骤1:对原始图像进行经典retinex光照补偿。
步骤2:对步骤1得到的图像进行prewitt边缘检测,根据式(13)判断伪边缘,利用式(17)并标记出伪边缘对应的低照度区域c(x,y)。
{c(x,y)|(s≥3且(xi,yi)=(width-xi,yi))
∪|δt(i)|<0.5∪xim>xi>x0∪xim<xi<x0
∪yim>yi>y0∪yim<yi<y0}式(13)
其中,c(x,y)为伪边缘所在的图像区域。
步骤3:根据式(14)、(16)求weickert结构张量及其对应的特征值μ1、μ2。
其中,kρ为标准差为ρ的高斯函数,*表示kρ与
步骤4:重新给μ1、μ2赋值,将步骤2及步骤3得到的值带入式(20)。
步骤5:改进retinex算法的环境函数,将式(5)中的环境函数用式(20)代替,对原始图像进行光照处理,利用式(5)得出光照补偿后的图像。
上述的人脸图像光照补偿方法,其中,在所述的步骤2中,还包括如下分步骤:
步骤2.1:提取长度为前三且布局对称性的边缘,计算图像离散曲率。
一条数字曲线p由一系列离散像素点pi构成,可以用两条一维的离散曲线来表示,即:
p={pi=(xi,yi)|i=0,1,2,…,n-1}式(6)
式(6)中,n为曲线p的像素点个数。
以像素点pi为中心,半径为r=2的区域内计算曲率:
设pi前后两个区域中心像素pi-r,pi+r构成的向量的方向角为θi-r、θi+r,则
中心像素pi处的曲率角和曲率为:
θi=θi+r-θi-r式(9)
ki=[θi+r-θi-r]/2式(10)。
对曲线p取5个点的曲率,用
其中,
步骤2.2:计算图像离散斜率,提取斜率基本不变的边缘;边缘的离散斜率的变化以点pi为中心,在直径为2r的区域上计算:
若|δt(i)|<t,判断为是一条直线,即该边缘为光照引起的伪边缘。
步骤2.3:提取曲率较小且曲率方向和光源方向相反的边缘,判断的人脸伪边缘所处的邻域记为:
{c(x,y)|(s≥3且(xi,yi)=(width-xi,yi))
∪|δt(i)|<0.5∪xim>xi>x0∪xim<xi<x0
∪yim>yi>y0∪yim<yi<y0}式(13)
将边缘的长度(像素个数)从大到小排列,在所有的边缘中排名前三,即{ps|s≥3},s表示曲线长度按从大到小排列所处的位置,且不具有水平中心对称性。
|δt(i)|<t,取t=0.5,曲线斜率基本不变,即近似于一条直线。
曲线的曲率较小,曲率方向和光源源方向相反;设光源的位置为po(xo,yo),边缘上任一点坐标pi(xi,yi),边缘上以r为半径的两点pi-r(xi-r,yi-r)、pi+r(xi+r,yi+r)相连所得线段的中点坐标为pim(xim,yim),当xim>xi>x0或者xim<xi<x0或者yim>yi>y0或者yim<yi<y0时,曲率方向和光源源方向相反。
步骤2.4:联合得到阴影边缘,并标记阴影边缘所处的区域c(x,y)。
上述的人脸图像光照补偿方法,其中,在所述的步骤3中,还包括如下分步骤:
步骤3.1:对图像i(x,y)作高斯卷积,同时为了考虑像素点(x,y)的邻域信息,weickert定义了如式所示的局部张量。
其中,kρ为标准差为ρ的高斯函数,*表示kρ与
步骤3.2:局部张量jρ存在规范正交的两个特征向量γ1,γ2:
对应的特征值为:
步骤3.3:对于处于线性结构区域的μ1、μ2要先判断其所处的位置是否在伪边缘上,如果在,重新给μ1、μ2赋值;如果不在伪边缘上μ1、μ2的取值不变;改进模型为:
其中,c(x,y)为伪边缘所在的图像区域。
上述的人脸图像光照补偿方法,其中,在所述的步骤4中,还包括如下分步骤:
步骤4.1:将μ1、μ2的取值引入具有各向异性扩散特性的函数,该函数为指数形式,其表达式为:
其中,
步骤4.2:k是用来控制平滑或是加强灰度边缘的参数,取
步骤4.3:将retinex算法中的环境函数fn(x,y,cn)修正为:
本发明能够克服传统retinex和pcnn在光照补尝中不能消除阴影和引起雾化现象等不足,从一定程度上效淡化图像中的阴影、消除阴影边缘,并使细节信息得到展现,使人脸识别率有所提高,降低了人脸误判率。
附图说明
图1是本发明一种人脸图像光照补偿方法的流程图。
图2是本发明一种人脸图像光照补偿方法的光照边缘曲率示意图。
图3是本发明一种人脸图像光照补偿方法中检测伪边缘的对比图。
图4是人脸在光照角度为0°时使用retinex、pcnn和本发明进行关照补偿时的对比图。
图5是人脸在光照角度为+15°时使用retinex、pcnn和本发明进行关照补偿时的对比图。
图6是人脸在光照角度为-20°时使用retinex、pcnn和本发明进行关照补偿时的对比图。
图7是人脸在光照角度为+65°时使用retinex、pcnn和本发明进行关照补偿时的对比图。
图8是人脸在光照角度为+90°时使用retinex、pcnn和本发明进行关照补偿时的对比图。
图9是mcu-pie人脸数据库中illum子集中不同光照角度非自然光下的人脸图像及使用retinex、pcnn和本发明进行关照补偿时的对比图。
具体实施方式
以下结合附图进一步说明本发明的实施例。
请参见附图1所示,一种人脸图像光照补偿方法,该方法至少包括如下步骤:
步骤1:对原始图像(大角度斜光照射、较暗)进行经典retinex光照补偿。
步骤2:对步骤1得到的图像进行prewitt边缘检测,根据式(13)判断伪边缘,利用式(17)并标记出伪边缘对应的低照度区域c(x,y)。
{c(x,y)|(s≥3且(xi,yi)=(width-xi,yi))
∪|δt(i)|<0.5∪xim>xi>x0∪xim<xi<x0
∪yim>yi>y0∪yim<yi<y0}式(13)
其中,c(x,y)为伪边缘所在的图像区域。
步骤3:根据式(14)、(16)求weickert结构张量及其对应的特征值μ1、μ2。
其中,kρ为标准差为ρ的高斯函数,*表示kρ与
步骤4:重新给μ1、μ2赋值,将步骤2及步骤3得到的值带入式(20)。
步骤5:改进retinex算法的环境函数,将式(5)中的环境函数用式(20)代替,对原始图像进行光照处理,利用式(5)得出光照补偿后的图像。
在所述的步骤2中,还包括如下分步骤:
请参见附图2所示,步骤2.1:提取长度为前三且布局对称性的边缘,计算图像离散曲率。
在数字图像中,曲率常指离散目标中沿离散点序列的方向变化。根据曲率理论,对数字图像中的离散曲率作类似的定义,一条数字曲线p由一系列离散像素点pi构成,可以用两条一维的离散曲线来表示,即:
p={pi=(xi,yi)|i=0,1,2,…,n-1}式(6)
式(6)中,n为曲线p的像素点个数。
为了减少曲率受边界方向局部变化的影响,以像素点pi为中心,半径为r(本发明取r=2)的区域内计算曲率。
设pi前后两个区域中心像素pi-r,pi+r构成的向量的方向角为θi-r、θi+r,则
中心像素pi处的曲率角和曲率为:
θi=θi+r-θi-r式(9)
ki=[θi+r-θi-r]/2式(10)
由于数字图像在边缘检测中会出现一些角点,为了减小曲率误差的影响,对曲线p取5个点的曲率,用
其中,
步骤2.2:计算图像离散斜率,提取斜率基本不变的边缘。
对于离散图像,曲率的存在是有一定条件的,有的光照引起的近似直线边缘的曲率不存在,因此需要通过斜率的变化大小来判断,边缘的离散斜率的变化以点pi为中心,在直径为2r的区域上计算,如式(12):
对于一条曲线,如果|δt(i)|<t,就可以判断为是一条直线,从而可判断该边缘为光照引起的伪边缘。
请参见附图3所示,步骤2.3:提取曲率较小且曲率方向和光源方向相反的边缘。
由于光照引起的伪边缘清晰,且具有分布不均的特点。除了曲率、斜率、光照方向阴影伪边缘的条件,还根据人脸边缘的特征对边缘的长度和对称性进行判断。同时对于正面人脸,人脸的边缘一般具有相似对称性,因此需要满足基本对称的另一条边缘,否则就是光照引起的伪边缘。
归纳上述几个特性,满足以下条件之一的都是光照引起的伪边缘,判断的人脸伪边缘所处的邻域记为:
{c(x,y)|(s≥3且(xi,yi)=(width-xi,yi))
∪|δt(i)|<0.5∪xim>xi>x0∪xim<xi<x0
∪yim>yi>y0∪yim<yi<y0}式(13)
①伪边缘主要是由于鼻子、脸颊、额头、下颚等凸出部位的遮挡光照造成的阴影的两边,根据经验会出现2-3个比较长的边缘;因此,本发明将边缘的长度(像素个数)从大到小排列,在所有的边缘中排名前三,即{ps|s≥3},s表示曲线长度按从大到小排列所处的位置,且不具有水平中心对称性(对于曲线p上任意一点,存在点(xi,yi)=(width-xi,yi),本发明取曲线上的点有70%满足要求即为水平对称)。
②|δt(i)|<t,本发明取t=0.5,曲线斜率基本不变,即近似于一条直线。
③曲线的曲率较小,曲率方向和光源源方向相反。设光源的位置为po(xo,yo),边缘上任一点坐标pi(xi,yi),边缘上以r为半径的两点pi-r(xi-r,yi-r)、pi+r(xi+r,yi+r)相连所得线段的中点坐标为pim(xim,yim),当xim>xi>x0或者xim<xi<x0或者yim>yi>y0或者yim<yi<y0时,曲率方向和光源源方向相反。
步骤2.4:联合得到阴影边缘,并标记阴影边缘所处的区域c(x,y)。
基于微分的prewitt算子从一定程度上反映了图像边缘像素的分布,和其它几种典型的微分算子(如roberts算子、用sobel算子、canny算子等)相比,prewitt算子能提取最主要的边缘特征。对于不均匀光照或角度偏差大环境下的人脸图像,光照引起的伪边缘一般比较明显,并且边缘表较长,这些边缘正符合prewitt算子提取的边缘的特点,因此,本发明选用prewitt算子提取人脸图像的边缘。为了便于对边缘的斜率、曲率等的计算,将检测到的人脸边缘转换到平面直角坐标系中,如图3中的(c)图;图3中,(a)图是经过retinex光照补偿得到的图像,(b)图是prewitt边缘检测的结果,(d)图是区分出的人脸伪边缘。
在人脸特征提取中,伪边缘由于特征突出,很容易被当作人脸特征用于后期的人脸识别;因此,在对人脸进行光照补偿时,要对伪边缘进行平滑以消除伪边缘,对真实的人脸边缘特征进行增强。
基于非线性扩散perona-malik模型(简称pm模型)只考虑了图像边缘梯度的模,没有考虑梯度的方向。weickert重新定义了一个既与图像梯度的大小,又与梯度方向有关的结构张量。
在所述的步骤3中,还包括如下分步骤:
步骤3.1:对于图像i(x,y),定义了一个半正定矩阵
其中,kp为标准差为ρ的高斯函数,*表示kp与
步骤3.2:局部张量jρ存在规范正交的两个特征向量γ1,γ2。
对应的特征值为:
特征值μ1,μ2描述了图像邻域o(ρ)内沿特征方向的平均对比度变化情况:μ1≈μ2表示图像的均匀区域;μ1>>μ2≈0表示图像的线性结构;μ1≥μ2>>0对应图像的角点。特征向量γ1是灰度变化最快的方向,γ2是灰度变化最小的方向,即边缘的切线方向。所以,对于γ1方向的像素需边缘增强,使对比度增大;对于γ1方向的像素需平滑变亮。
对于光照不均、存在阴影的图像,完全通过μ1、μ2来判断是需要平滑还是增强就不正确了。
步骤3.3:对于处于线性结构区域的μ1、μ2要先判断其所处的位置是否在伪边缘上,如果在,重新给μ1、μ2赋值;如果不在伪边缘上μ1、μ2的取值不变。因此改进模型为:
其中,c(x,y)为伪边缘所在的图像区域。
在所述的步骤4中,还包括如下分步骤:
步骤4.1:在对weickert结构张量的特征值进行了重新赋值的基础上,通过μ1、μ2取值来重新判断平滑、增强区域。接下来将μ1、μ2的取值引入saint-marc等提出的具有各向异性扩散特性的函数,该函数为指数形式,其表达式为:
其中,
步骤4.2:k是用来控制平滑或是加强灰度边缘的参数,取
步骤4.3:将retinex算法中的环境函数fn(x,y,cn)修正为:
实施例:
选取yaleb数据库中编号分别为yaleb31_p00a+050e+00、yaleb31_p00a+110e+15、yaleb31_p00a+110e-20、yaleb31_p00a+035e+65、yaleb31_p00a+000e+90的不同光照角度下,包括较暗、极暗情况下的5幅图像。分别采用retinex、pcnn和本发明的方法进行光照补偿。
请参见附图4至附图8所示,三种方法都能使图像的亮度得到整体提高,细节信息得到展现,前两种方法补偿后的图像中仍然存在明显的阴影区域。和retinex、pcnn方法相比,本发明在不影响图像清晰度的情况下,能够淡化阴影,使图像阴影部分的细节得到很好展现,阴影产生的人脸伪边缘在一定程度上得到消除。
请参见附图9所示,除了自然光照下的图像,还选取了mcu-pie人脸数据库中illum子集中三幅处于不同光照角度非自然光下的人脸图像。
从图中可以看出,前两种方法都存在一定程度的雾化现象,通过本发明处理后的图像,在保持清晰度和对比度的同时,消除了雾化现象,对光照阴影有明显地淡化作用。
对于不同角度、非均匀光照下的图像,其评价指标需要既能衡量图像整体亮度、对比度的增强效果,又能代表光照不均匀区域的亮度和阴影区域中细节信息得到展现的效果。图像的均值(m)能够反映图像整体亮度;标准差(rmsd)能反映了图像的整体对比度的大小;标准差是对整幅图像而言,有时候需要衡量局部特征,而局部标准差(lsd)能反映图像局部区域内的对比度大小和细节边缘的清晰程度,对于需要对图像局部细节特征进行分析而言,局部标准差对图像的评价更有意义;基于对比敏感度的无参考图像清晰度评价(csfnrs)比较全面地反映了图像的各种结构信息,注重图像细节内容的完整性,对不同模糊类型图像的评价接近于人眼的视觉特性。用上述四个参数对图5到图9中的图分别进行评价,评价结果如表1所示。
表1实验图像的评价结果
tab.1evaluationvalueoftestimage
根据图像光照补偿的评价参数可以看出,多尺度retinex方法、pcnn方法和本发明都能使图像整体亮度得到提高,但前两种方法中可以明显看到阴影的存在并有明显的分界线。从整体亮度、局部标准差和清晰度看,本发明都具有比较明显的优势。
为了进一步验证光照补偿的效果,选择yaleb人脸数据库中的图像质量较差的部分图像根据光照环境的优劣分成4种不同的子集:子集1代表整体较暗的图片,子集2是有50%左右的暗区,子集3有80%左右的暗区,子集4有95%左右的暗区。在yaleb人脸数据库中选择10个人,每人5幅光照环境较理想的图像作为人脸样本;每个人在每种子集下选5张共200幅图片,通过上述方法进行光照补偿,把处理后的图像作为人脸识别测试图片,采用结合局部子块的lbp人脸识别方法进行人脸识别,人脸识别测试如表2。从中可以看出采用本发明后对于光照不均匀的人脸图像,人脸识别率有所提高,人脸误判率低于其它两种方法。
表2不同子集在不同方法下的人脸识别测试
tab.2facerecognitiontestindifferentsubsetswithdifferentmethods
本发明可针对不同角度、非均匀光照环境下的图像,利用水平、垂直方向像素值判断光照方向,引入曲率、斜率等几何数据,分析并区分出人脸阴影伪边缘,将weickert的结构张量和saint-marc的具有各向异性扩散特性的指数函数结合,用于retinex光照补偿算法中。
综上所述,本发明能够克服传统retinex和pcnn在光照补尝中不能消除阴影和引起雾化现象等不足,从一定程度上效淡化图像中的阴影、消除阴影边缘,并使细节信息得到展现,使人脸识别率有所提高,降低了人脸误判率。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构变换,或直接或间接运用附属在其他相关产品的技术领域,均同理包括在本发明的专利保护范围内。