细节保持的非均匀光照图像亮度均衡算法
- 摘要:针对目前图像增强算法应对非均匀光照环境的局限性,提出了一种同时保持低照度区域和正常照度区域细节信息的图像亮度均衡算法。算法利用像素相邻频率和位置关系生成光照滤波器,有效分离图像光照信息和反射细节信息。通过光照阈值划分光照亮暗区域进行低照度亮度补偿,从而均衡图像亮度。实验结果显示,相对于经典 NPEA 算法,图像平均峰值信噪比提升 15.4%、平均增强度提升 245.0%、平均亮度阶差下降 25.4%。因此,本文算法能够在保持不同照度区域的细节信息的同时均衡亮度,获得较好的视觉效果。
引言
-
数字成像广泛应用于医疗、监控、机器视觉等领域。由于图像采集过程中光源有限,采集到的图像可能出现光照不均匀的现象。具体表现为图像局部灰度值偏低,黑暗区域信息量少,且图像视觉效果差,影响后续对图像特征的判断。为了抑制非均匀光照的影响,研究人员提出许多图像增强算法。
-
其中,被广泛使用的算法有直方图均衡化及其改进算法、分区色调映射算法、基于 Retinex 理论的图像增强算法等。直方图均衡化算法以及其改进算法侧重于针对对比度增强而非照明均衡,对于照明条件的增强不足。分区色调映射算法将图像进行分区,根据区域亮度属性进行对数色调映射以压缩图像动态范围。此类算法对于局部亮度的均衡能够取得较好的结果,但经常需要后续处理来恢复图像细节。
-
基于 Retinex 理论的算法将图像分解为反射和光照,将对于亮度的调整作用于不包含图像细节的光照中,因此对于保持图像细节信息占有优势。Lin 等提出了用于低照度图像增强的多尺度Retinex 改进方法(multi-scale Retinex improvement for nighttime image enhancement, MSRNIE),用 Sigmoid 函数代替了经典多尺度 Retinex 算法中的对数函数以压缩像素,从而避免直接剪切环境信息,在实现动态范围压缩和保持颜色恒定方面皆能取得较好成果,但其对图像亮度顺序的改变造成了图像自然度的下降。
-
You 等提出了基于对数映射的自适应直方图均衡化方 法 (logarithmic mapping histogram equalization, LMHE),保持原始直方图形状特征的同时有效增强了对比度。但其侧重于针对对比度增强,对于光照条件的增强不足。Wang 等提出能够保持自然度的非均匀照明图像增强方法(naturalness preserved enhancement algorithm, NPEA)。该算法基于相邻像素对中心像素的影响与两像素值在整个图像上是相邻的频率正相关的思想提取图像光照,并将反射率控制在正常范围。但对于明暗区域面积差异大的光照不均匀图像,易在明暗交界区域造成图像失真。
-
本文提出一种针对非均匀光照图像的亮度均衡算法。为了均衡光照的同时保持图像细节,算法将图像分解成不同的特征空间进行处理。利用像素相邻频率和位置关系生成光照滤波器,有效分离图像光照信息和反射细节信息。为了抑制不均匀光照,通过光照阈值将光照信息分解成亮、暗区域进行低照度区域的亮度补偿,从而均衡图像亮度。实验结果表明,算法能够在光照不均匀的图像上取得较好的增强效果。
设计思路
-
根据
R
e
t
i
n
e
x
理论,图像中任一点的灰度值可由环境光照和反射率的乘积决定
\textcolor{red}{根据 Retinex 理论,图像中任一点的灰度值可由环境光照和反射率的乘积决定}
根据Retinex理论,图像中任一点的灰度值可由环境光照和反射率的乘积决定。光照在空间上变化较缓慢,以低频成分为主;反射率取决于物体的本身,反映物体表面颜色和细节边缘等特性,包含较多高频成分。本文利用像素相邻频率和位置关系设计光照滤波器,对图像光照进行估计,分解光照与反射信息。其次利用设计的光照补偿器对以低频成分为主的光照信息进行处理。光照补偿器通过划分亮暗区域实现对低照度区域进行亮度补偿、调整整体照度的功能。最后合成反射与补偿后的光照,得到细节保持的增强图像。算法流程如下图 所示。下面分别介绍光照滤波器的设计、光照估计、光照补偿器的设计等算法细节。
光照滤波器的设计
-
多数中心环绕的 Retinex 算法使用高斯滤波器或双边滤波器来估计光照,常常出现反射计算值比光照估计值大的不合理情况。这意味着物体表面反射的光多于接收的光,反射率大于 1。Wang 等提出只考虑比中心像素更亮的相邻像素的思想以控制反射率,同时利用与像素相邻的频率相关的滤波器进行光照估计。但由于像素相邻的频率由图像灰度值的相邻关系统计得到,受图像本身影响较大,对于明暗区域面积差异大的图像,易在明暗交界区域造成图像失真。因此,本文将像素相邻频率的思想与传统高斯滤波器相融合,设计了适于非均匀光照条件的光照滤波器。光照滤波器的基本思想为:图像中任意邻域像素(值为 b)对中心像素(值为 a)的影响,不仅与其距离中心像素的距离相关,同时与值为 a 的像素和值为 b 的像素在图像上为相邻关系的频率相关。
-
对于图像的亮度值 L,给出 * N a N_a Na用于判断中心像素, N b N_b Nb*用于判断邻域像素,如式(1)、式(2):
-
N a ( x , y ) = { 1 , L ( x , y ) = a 0 , L ( x , y ) ≠ a N b ( x , y ) = { 1 , L ( x , y ) = b 0 , L ( x , y ) ≠ b N_a(x,y)=\begin{cases} 1,L(x,y)=a\\ 0,L(x,y)\neq a \end{cases}\\ N_b(x,y)=\begin{cases} 1,L(x,y)=b\\ 0,L(x,y)\neq b \end{cases} Na(x,y)={1,L(x,y)=a0,L(x,y)=aNb(x,y)={1,L(x,y)=b0,L(x,y)=b
-
给出 * N a b N_{ab} Nab*表示值为 a 的点(x, y)的邻域中值为 b 点的个数,如式(3):
-
N a b = N a ( x , y ) [ ∑ ( i , j ) ∈ Ω N b ( i , j ) ] N_{ab}=N_a(x,y)[\sum_{(i,j)\in \Omega}N_b(i,j)] Nab=Na(x,y)[(i,j)∈Ω∑Nb(i,j)]
-
其中:Ω 为点(x, y)的八邻域。
-
-
给出 N(a, b)表示图像中值为 a 的点邻域中值为 b的点的个数之和,并以此作为值为 a 与值为 b 的像素位置关系为相邻关系的频率,如式(4):
-
N ( a , b ) = ∑ x = 1 m ∑ y = 1 n N a b ( x , y ) N(a,b)=\sum^m_{x=1}\sum^n_{y=1}N_{ab}(x,y) N(a,b)=x=1∑my=1∑nNab(x,y)
-
其中:m 和 n 为图像的高度和宽度。
-
-
由于 N 具有离散性,为抑制噪声干扰,利用其局部均值代替原值,如式(5):
-
N ′ ( a , b ) = 1 2 ⋅ w i n + 1 ∑ b − w i n b + w i n N ( a , i ) N'(a,b)=\frac1{2·w_{in}+1}\sum^{b+w_{in}}_{b-w_{in}}N(a,i) N′(a,b)=2⋅win+11b−win∑b+winN(a,i)
-
其中: win 为局部均值窗口大小。为估计图像窗口大小对光照图像噪声的影响,统计多个测试图像在不同窗口下的噪声点个数,图 2 中折线为三组测试图像得到的数据结果,实验结果表明,将win 设置为 3 能够达到良好的噪声抑制效果。
-
-
-
在高斯滤波器式(6)的基础上加入频率 N′ 作为权重的一部分,同时加入判断函数 U 用于筛选亮度高于中心像素的点,光照滤波器 FL如式(7)。
-
-
-
其中:W(x, y)用于归一化,保证像素权重之和为 1。Φ为以 L(x, y)为中心的模板覆盖区域。函数 U 用于筛选亮度高于中心像素的点,使光照估计值大于图像亮度,以达到将反射率控制在[0,1]范围的目的。高斯函数 H为靠近中心的像素赋予高权重,远离中心的像素赋予低权重,对图像起到平滑作用,即尽量将边缘细节信息保留在不进行后续处理的反射分量中。由于像素之间梯度与相邻频率负相关,频率 N′对于弱化光照图像高频部分对中心像素的影响具有一定的贡献作用。同时使用 N′+1 代替 N′,避免因频率为 0 引入图像空洞。
-
光照估计
-
根据物体的反射率小于 1 的特点可知,图像光照应不小于各颜色通道中最大亮度。利用图像 RGB 三个颜色通道中的最大值进行光照的粗略评估。如式(10), I c ( x , y ) I^c (x, y) Ic(x,y)为 c 颜色通道亮度。
-
L ( x , y ) = m a x c ∈ { r , g , b } I c ( x , y ) L(x,y) = max_{c\in \{r,g,b\}}I^c(x,y) L(x,y)=maxc∈{r,g,b}Ic(x,y)
-
其次,利用设计的光照滤波器进行光照估计值的细化。
-
L r ( x , y ) = F L ′ ( L ( x , y ) ) L_r(x,y)=F'_L(L(x,y)) Lr(x,y)=FL′(L(x,y))
-
由式(11)可知,U 具有二值性,存在 L(x, y)为Φ区域亮度最大值的情况,使Φ区域内任意 U 为零,进而产生错误估计。为此,对光照滤波器进行修正,对于亮度为模板覆盖区域最大值的像素,以其粗略亮度估计代替光照估计值:
-
-
-
根据 Retinex 理论,反射信息可由原始图像与光照估计值得出:
-
R c ( x , y ) = I c ( x , y ) L r ( x , y ) R^c(x,y)=\frac{I^c(x,y)}{L_r(x,y)} Rc(x,y)=Lr(x,y)Ic(x,y)
-
其中: I c ( x , y ) I^c (x, y) Ic(x,y)为原始图像颜色通道 c 的亮度, R c ( x , y ) R^c (x, y) Rc(x,y) 为该通道对应的反射分量。
-
光照补偿器的设计
-
为了有效解决图像亮度不均对图像的影响,本文设计了亮度补偿器对弱光照进行补偿。由于亮度补偿的主要目标是使非均匀光照的暗区变亮,因此首先提取光照图像的暗区。本文利用图像的平均光照作为阈值进行亮暗区域划分。而对于光照的估计并非全然的低频信息,存在亮度剧烈变化的地方,简单通过像素亮度区分亮暗两个区域可能导致补偿结果不自然。因此,以光照估计值的八邻域均值 Lr 作为判定值,以平均光照 Lmean 为阈值进行划分,生成暗区判定图像 Ld和亮区判定图像 Lb。
-
L ˉ r ( x , y ) = 1 9 ∑ ( i , j ) ∈ Ω L r ( i , j ) \bar L_r(x,y)=\frac19\sum_{(i,j)\in \Omega}L_r(i,j) Lˉr(x,y)=91(i,j)∈Ω∑Lr(i,j)
-
其中 Ω 为以点(x, y)为中心的八邻域。
-
-
对于暗区判定图像 Ld筛选出的暗区像素,对其进行亮度增强,其增强函数式:
-
-
式(18)对于暗区域低照度像素具有更高的增强效果,实现图像弱光照的补偿。考虑到存在光照整体偏暗的情况,即由平均光照 Lmean判定的亮区像素仍处于弱光照环境。引入函数 h(x)对光照进行整体调整,如式(19):
-
-
其中:L-1 是图像中的最大灰度级。α 为[1,2]范围内的常数,α 取值对于图像亮度均衡效果影响较小。式(20)中,给出函数 h(x)随图像亮度值增加而减小,且减小速度随亮度值增加而减小。函数 h(x)用于实现对弱光照环境下整体亮度的提升,同时对可能出现的高光环境进行亮度抑制。对式(19)进行修正,使光照补偿器 Le 同时实现对光照的暗区补偿和弱光照环境的整体调整:
-
-
-
根据 Retinex 理论,合成反射分量和均衡后的光照,以获得最终的增强图像。
-
E I c ( x , y ) = R c ( x , y ) ∗ L e ( x , y ) EI^{c}(x,y)=R^c(x,y)*L_e(x,y) EIc(x,y)=Rc(x,y)∗Le(x,y)
-
其中: E I c ( x , y ) EI^c (x, y) EIc(x,y) 是颜色通道 c 的增强结果,Le(x, y)为均衡后的光照。由于图像高频细节信息存在于反射信息 Rc (x, y)中,而对于非均匀光照的处理被施加于被分离出的光照信息上。因此,算法能够有效保持细节信息。且由于增强前后三种颜色通道亮度的比值无变化,图像色调不会产生变化,利于图像自然度的保持。为更清晰的描述算法流程,将其伪码显示如图 。
-
-
实验结果
-
为了验证本文算法的有效性,利用 Matlab 对算法编程实现,并将本文算法的处理结果与其他相关算法进行比较。实验过程中使用的计算机硬件配置为Intel® Core i3-2100 CPU,4 GB 内存。本文一共选择了八张亮度不均匀的图像进行实验,这八张图像均来自华盛顿大学图像处理图库,图像中存在细节难以识别的低照度区域。将本文算法与几种近几年光照不均图像增强方法进行比较,如 Kong等提出的基于增强子的非均匀图像增强算法(EBCE)、王殿伟等提出的基于改进二维伽马函数自适应亮度校正算法(ACA)、Wang 等提出的自然度保持的非均匀照明图像增强方法(NPEA),其结果显示于图 4~图 11 中。
-
对于图 4~图 11 所示的八张图像,与其他算法相比,本文算法能够在实现光照均衡的同时获取光照较暗区域轮廓与正常光照区域细节。如(图 4(e))中,光照较暗区域拱门内白色电线轨迹基本能够辨认,正常光照区域壁灯附近砖缝细节信息保持较好。EBCE 算法对于图像整体亮度的提升占有优势,但对于图像非弱光照区域的细节信息保持处于劣势。
-
如图 4(b)、图 5(b)中正常光照区域中的墙壁,图 8(b)中的叶片产生了纹理信息丢失的现象。ACA 算法对于低照度区域的亮度提升效果明显且能够取得较高的对比度,但对于图像正常光照区域处理效果不够理想。如图 4©、图 5©、图 10©中,正常光照区域中墙壁的纹理细节和亮度信息的保持效果不理想。
-
NPEA 算法对于保持图像自然度和细节占有优势,但其对光照的双对数变换处理使其对于弱光照区域的细节增强处于劣势,如图 4(d)中拱门内白色电线轨迹较不明显,图 9(d)、图11(d)中墙体产生伪边缘。且对于整体亮度较低的图像,弱光照区域和亮暗边界位置易产生图像失真,如图 5(d)窗体附近区域颜色偏绿、图 7(d)光斑附近叶片模糊。相比之下,本文算法利用设计的光照滤波器估计光照,并对光照低照度区域进行补偿,能够获取更多的细节信息,实现光照均衡的同时较好地保持图像自然度。
数据分析
-
选择熵(Entropy,E)、峰值信噪比(peak signal to noise ratio, PSNR)、增强度(measure of enhancement, EME)、亮度阶差(lightness order error, LOE)四种图像评价因子进行图像信息量、增强效果、信噪比、自然度的客观评价。图像熵的大小可在一定程度上反映增强结果的信息量,图像的熵越大,则图像包含的信息量越大,细节内容越丰富。但熵的增加可能会导致噪声的增加,因此通过峰值信噪比(PSNR)对增强图像相较于输入图像的劣化水平进行评估。峰值信噪比越高,增强图像的图像质量越好。增强度(EME)将图像划分为多个子图像块,通过各个子图像块中最大与最小强度的平均比值对图像增强的效果进行评估。增强度越高,则增强效果越明显。
-
为了确保增强度的增加并未引起图像亮度顺序过大的变化,进而造成图像的失真,还需对亮度顺序进行统计。基于原始图像与其增强版本之间的亮度阶差(LOE)用于图像亮度顺序的测定。LOE 值越小,增强图像与原图像亮度顺序越相似,即自然度保持得越好。
-
本文选取图 4~图 11 所示的八张图像,采用四种图像评价因子对处理结果进行评价,评价结果如表 1~表 4 所示,将表中最优结果以及次优结果显示为粗体。
-
分析表中数据,EBCE 算法保持图像峰值信噪比的能力较强,但在信息量、增强度和亮度阶差方面不占优势。ACA 算法对于增强度的输出结果优良,但图像信息熵结果处于劣势,且其亮度阶差和图像峰值信噪比结果皆略弱于本文算法。本文算法处理结果的信息熵与 NPEA 算法大致相同,但峰值信噪比、增强度和亮度阶差结果皆优于 NPEA 算法。
- 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
-
相比之下,本文算法的增强结果能够在图像信息量、信噪比、对比度和自然度四个方面取得较好结果,更适于亮度不均图像的增强处理。
-
结论
- 本文针对图像亮度不均,局部灰度值偏低的问题,提出了一种同时保持低照度区域和正常照度区域细节信息的图像亮度均衡算法。算法利用设计的光照滤波器对图像光照进行估计,有效分解光照信息和反射高频信息。为了抑制不均匀光照,采用亮度补偿器对图像进行分区、低照度区域补偿、整体亮度调整。考虑到在图像增强过程中,图像亮度不均抑制效果与图像信息量、图像质量、增强程度和自然度保持效果密切相关,本文采用信息熵(Entropy,E)、峰值信噪比(peak signal-to-noise ratio,PSNR)、增强度(measure of enhancement,EME)、亮度阶差(lightness order error,LOE)四种图像评价因子进行图像信息量、增强效果、信噪比、自然度的客观评价。实验结果表明,相对于经典NPEA 算法,本文算法处理结果的平均峰值信噪比提升 15.4%、平均增强度提升 245.0%、平均亮度阶差下降 25.4%。因此,本算法能够在保持细节信息的同时实现光照均衡,对于亮度不均图像具有较好的适用性。