基于暗通道先验的镜面高光图像增强算法
2022-11-17张喆
张喆
(山东华宇工学院,山东 德州 253034)
0 引 言
图像中的高光往往会遮挡物体表面的纹理,损坏物体边缘的轮廓,改变物体表面的颜色,甚至会导致物体表面局部区域某些信息的丢失。图像中的高光噪声会影响图像的质量,还会给后续的应用研究带来极大的困扰,因此如何有效增强高光区域的信息,就变得尤为重要。
近些年,Nayar 等人[1]提出一种基于偏振的方法,将偏振与图像的颜色信息结合起来估计图像的高光。Lin[2]通过将高光像素视为异常值,并匹配其他视图中剩余的漫反射部分来去除高光。Klinker 等[3]通过对RGB 颜色空间中的所有像素执行聚类来确定漫反射颜色。Tan 和Katsushi[4,5]进一步提出了基于噪声、色度分析和线性基函数的方法。Mallick 等人[6,7]提出基于SUV 色彩空间的PDE 算法,通过单个图像或视频序列迭代地侵蚀镜面反射。使用相邻图案综合填充缺失区域的修复技术也被用来恢复漫射颜色[8,9]。Chen 等[10]利用专业领域知识指导去除面部图像中的高光。Shen 和Cai[11]采用无镜面图像近似漫反射的色度,通过在漫反射和高光区域之间进行平滑的颜色转换的方式来调整高光分量。文献[12,13]则提出利用滤波的方法去除高光分量。Akashi 等[14]提出基于稀疏非负矩阵分解(NMF)的反射分量分离方法,但是在镜面反射或噪声较强的情况下,此方法可能会失效。
基于镜面高光图像报道文献中存在的不足,我们提出了基于暗通道先验的镜面高光图像增强算法。
1 算法设计及步骤
基于暗通道先验的镜面高光图像增强算法首先以暗通道先验算法为基础,重新更新了图像的全局光照分量以及边界约束;然后采用改进的引导滤波算法优化透射率;最后,在LAB 空间内,采用CLAHE 算法对图像的亮度分量L进行处理,A和B分量自适应。
1.1 图像成像模型
大气散射模型可由以下公式来表示:
其中,I(x)为观察到的强度,A为全局光照,t(x)为场景透射率,J(x)为场景辐射强度,且M≤J(x)≤N,M和N为与给定图像相关的两个常数向量[15]。
假设大气分布均匀,则透射率t(x)的表达式为:
其中,ι表示由于大气中气体的散射而产生的衰减系数,d(x)为场景深度。
从几何角度来看,式(1)说明在RGB 颜色空间中,向量I(x)、J(x)、A共面且终点是共线的,可得:
其中,τ∈{r,g,b}表示R、G、B三个颜色通道。
大气模型的关键是从I(x)中恢复出J(x),因此需要估计传输率t(x)和全局的大气光成分A,可由式(1)求得实际的场景图像J(x)为:
1.2 暗通道先验算法
暗通道先验理论是由He 等人[15]最先提出的,根据这一理论,对于任意图像J,其暗通道可表示为:
其中,Jdark为原图像J的暗通道图像,τ为RGB 三通道构成的彩色空间,Γ为以(x,y)为中心的局部区域。
由暗通道可以得到透射率的粗略估计:
其中,α∈(0,1]为图像保真的调节因子。
最后可得到图像:
其中,t0表示为了避免最终处理结果中包含噪声而设定的透射率的下限值,通常为0.1。
1.3 估计全局大气光
暗通道先验算法中通常选取亮度最高的灰度值作为大气光值,如果图像中存在面积较大的高亮度区域,则容易造成对大气光A的错误估计,使得图像出现色彩失真的现象;并且当局部区域Γ(x)处于景深变化较为剧烈的位置时,暗通道值也会出现错误,导致图像出现光晕效应。因此我们假设图像中的一部分包含无限远的像素,并将与无限远像素相对应的图像点视为大气亮度代表性颜色矢量的集合;然后应用平均运算来估计大气亮度的颜色矢量;最后选取输入图像中最模糊的像素,采用移动窗口最小滤波器对其每个颜色通道进行滤波,将具有最大值的颜色通道视为A的估计值。
1.4 加权范数L1 正则化
局部图像中所有像素的深度值都是恒定不变的。我们借助边界约束推导出逐块传输,但是当图像深度突然变化时,图像会出现光晕伪影现象[16]。因此我们在边界约束上通过计算局部像素的色差来构造加权函数s(p,q):
其中,s(p,q)为图像中相邻像素p、q之间的约束,其大小完全取决于图像的深度。
通常,图像的深度会随p、q之间强度值的变化而变化,而且具有相同强度、颜色的像素存在相似的深度。因此根据这一特点构建如下加权函数:
其中,γ为规定好的参数。
然后将加权的上下文约束引入图像中,可得t(x)的正则化:
其中,Φ为图像域。对上式进行离散化处理,可得到:
在式(11)中引入一组微分算子,可得:
其中,Lj为一阶微分算子,Sj(j∈s)为加权矩阵。
1.5 优化透射率
引导滤波器的关键是引导图像I和滤波后图像q之间的局部线性模型,假设q是以像素k为中心的窗口ωk,则所存在的线性关系为:
其中,(ak,bk)为线性系数,ωk表示以r为半径的方形窗口。为了使p、q之间的差值最小化,我们定义窗口ωk中的代价函数为:
其中,ε为防止ak取值过大的调整参数,λ是为所有像素局部方差的平均值,用以准确地保持图像的边缘,其表达式为:
由线性回归分析可以得到(ak,bk)的最优解:
最后在整幅图像内进行窗口操作,取均值可得:
1.6 亮度增强
采用暗通道先验算法处理镜面高光图像时,图像中存在大面积的高亮度区域,使得处理后的图像出现亮度不均衡、对比度偏低的现象,因此,我们引入对比度受限的自适应直方图均衡算法(CLAHE)来优化图像。首先将图像转至LAB 颜色空间中,并提取图像的亮度分量L;然后采用CLAHE 算法处理亮度分量L,A、B分量自适应;最后更新图像的亮度分量L。该方法有效增强了图像的亮度、对比度和局部细节。
2 仿真实验
为了验证本文所提算法的有效性,本节将对增强后的镜面高光图像进行评估,主要包括两个部分:主观质量评价和客观质量评价。仿真硬件环境参数:Intel corei 7-10510U CPU @1.80 GHz 8.00 GB 内存,64 位操作系统的Windows 10;仿真软件:Matlab 2018a。
2.1 主观评价
如图1至图4所示,对4 幅经过增强处理的镜面高光图像进行主观评价,选取Shen[11]、Yang[12]、Yamamoto[13]、Akashi[14]与本研究提出的算法进行对比。
如图1(b)~(e)至图4(b)~(e)所示,采用文献[11][12][13]和[14]的方法并没有去除图像中的高光分量,并且高光区域的信息损失十分严重。如图1(f)~图4(f)所示,经本文算法处理后的图像较原图像保留了更多的细节特征,图像中高光区域的信息清晰可见,并且与其他算法相比,处理后的图像效果更加明显。
图1 算法结果对比一
图2 算法结果对比二
图3 算法结果对比三
图4 算法结果对比四
2.2 客观评价
本文的实验对象均为现实场景下的镜面高光图像,所以我们采用非参考方法对处理后的结果进行分析,选取了e、、H和θ作为评价指标对算法进行量化比较,其中H为图像的信息熵。
e表示处理后图像的边缘恢复能力:
其中,nr为处理后图像中的可见边缘数,n0为原图像中的可见边缘数。
表1、表2、表3总结了文献[11][12][13][14]和本文提出算法对不同现实场景中随机拍摄的镜面高光图像处理后的结果。在表4中,我们选取100 张不同场景下的镜面高光图像,并比较了上述算法处理后的结果。通过分析上述数据,我们发现采用e、、H作为度量方法,本文算法的各项指标大多优于其他算法。
表1 镜面高光图1~4 中基于e 度量的增强评估结果(度量值越大越好)
表2 镜面高光图1~4 中基于度量的增强评估结果(度量值越大越好)
表2 镜面高光图1~4 中基于度量的增强评估结果(度量值越大越好)
?
表3 镜面高光图1~4 中基于H 度量的增强评估结果(度量值越大越好)
表4 100 张不同场景下的镜面高光图像处理结果
3 结 论
针对现实生活中受高光噪声影响而导致图像信息丢失这一问题,我们提出一种基于暗通道先验的镜面高光图像增强算法。该算法首先以暗通道先验算法为基础,并重新更新了图像的全局光照分量以及边界约束;然后采用改进的引导滤波算法优化透射率;最后采用CLAHE 算法增强图像的局部细节。实验结果表明,本文所提算法明显优于其他算法。