基于RETINEX的图像增强方法探讨
2020-10-22郑美林
郑美林 王 杉
(1九江学院科研处 江西九江 332005;2)
当用设备捕捉图像时,任何类型的干扰都可能导致图像质量的下降。在处理这些图像时,有一些技术可以帮助提高这些图像的质量,这些技术称为图像增强技术。对劣质图像进行处理并提高其质量的过程称为图像增强[1]。图像增强的目的是提高图像质量给人以视觉上的良好体验。近年来,有各种图像增强技术可用于有效增强低质量的图像,Retinex是其中一种非常有效和高效的技术。在人类的视觉系统中,当看到一个实物,借助人眼(Retina)和思维处理(Cortex)。它的图像就在脑海中形成。人类视觉系统如何感知场景是Retinex的基础。视网膜(Retina)和大脑皮层(Cortex)这两个词的混合导致了“Retinex”这个术语的形成。当在借助机器获取图像时,由于各种原因,可能导致图像出现较低的动态范围或较差的色彩稳定性。(对于图像来说,最高像素值与最低像素值之比称为该图像的动态范围。在人类的视觉系统中,认为物体的颜色在不同的光照条件下是恒定的,称之为色彩稳定性)。Land对Retinex进行了分类[2,3],中心/环绕算法用于实现单尺度Retinex。
1 相关研究
在开始了解基于Retinex的图像增强方法之前,首先了解什么是Retinex 以及它如何计算图像。
Land[4]在物理图像捕捉模型的基础上提出了Retinex理论。Retinex 理论认为物体的图像(S)是由物体表面对入射光(L)反射得到的,而反射率R则由物体本身决定,不受入射光L的影响而变化。图像的照度取决于照射在该物体上的1光源,反射率取决于物体本身。根据Retinex理论,从数学的角度看,可以将图像除以反射率来计算出照度。但众所周知,获取有关图像的照度或反射率的信息是不切实际的。在不知反射率的前提下,不可能从图像上估算出照度。所以,随后提出了关于照度和反射率或两者的不同的假设和重新布置以解决这个问题。一个典型的假设是,场景和反射率的边缘相同,并且假设场景中的光照在空间上逐渐变化。因此,在基于Retinex的方法中,大部分都是将反射率作为图像与平滑图像的比例来计算,并将其作为对光照的估算。在基于Retinex的图像增强方法中,主要弥补照度对图像的影响。基于Retinex方法的图像形成模型如下:
I(m,n)=R(m,n)·L(m,n)
(1)
其中I(m, n)表示图像,I的取值范围在0到255之间,R(m, n)是物体的反射率,反射率的范围在0和1之间,L(m, n)是照度,照度取值范围也在0到255之间。对等式1进行对数转换,得到:
logI=logR+logL
(2)
根据式(2),可以说图像的对数是反射率对数和照明对数的总和。至此,想求出反射率,可以将式(2)转换为:
logR=logI-logL
(3)
在式(3)中,得到反射率的对数,通过对等式3取指数,可以得到反射率。
R=exp(logI-logL)
(4)
根据式(4)可得,反射率是图像对数和照度对数的指数差。根据式(4)可以看到,要估计反射率,必须对照度以及图像进行估算。因此,可以使用各种估算照度的滤波器。通过滤波器,可以使图像平滑,并且在大多数基于Retinex的图像增强方法中,平滑的图像可以充当照度。
Retinex算法的分类是基于路径、递归和中心/环绕的算法。中心/环绕算法在单尺度Retinex中首次实现。在单环绕Retinex之后,在中心/环绕算法上提出了许多算法。多尺度Retinex(MSR)[5]和MSRCR[6,7]也基于与SSR相同的中心/环绕算法。
2 方法
Retinex用于减少场景的直接视图与该场景的捕获图像之间的差距。Jobson等提出了单尺度Retinex。但是SSR在图像上一次只能执行有限的任务,即它可以提供全部再现,也可以用于压缩图像的动态范围。后来,他们提出了另一种方法,即SSR的加权总和,称为多尺度Retinex(MSR)。MSR可以同时为图像提供总再现和动态范围的压缩。MSR是一种更适合灰度图像的方法。因此,为了克服MSR的这种局限性,需要一个步骤来将原始图像的颜色恢复为增强图像。于是提出了带有色彩还原方法的多尺度Retinex(MSRCR),并提出了图像色彩还原的概念。MSRCR成为增强低照度图像的更有效方法。同时,准确找到背景照度也非常重要,这样Retinex可以有效地执行其任务,因此唐玲等人提出了另一种方法。 被称为IRIE[8]。在IRIE中,它获取图像的多个紧密相关的帧,然后对它们执行照度提取操作。林昊宁和史振伟提出了一种对MSR进行夜间图像增强的改进方法(MSRINTE)[9]。在MSRINTE方法中,用Sigmoid函数代替MSR的对数函数,以减少信息丢失。
2.1 单尺度RETINEX
SSR是Jobson等人在1997年提出的基于中心/环绕的Retinex方法。在SSR中,它以对数变换获取图像,并假设照明层是对图像进行高斯变换的结果。在具有图像和照明层之后,它减去两者的对数变换以获得结果。在SSR中,将图像作为输入,因为其质量较低,所以必须提高质量。所以需要一个适当的过滤器对图像进行卷积。然后,按照Retinex的方法找出反射率,将从输入图像的对数减去找到的照度的对数。然后,将结果作为输出的增强图像。它被称为单尺度Retinex,因为它只使用一个环绕函数,通过对图像进行卷积计算找出照度。数学上可以写成:
R(m,n)=logIi(m,n)-log[F(m,n)*Ii(m,n)]
(5)
其中Ii代表第i个彩色光谱带上的图像分布,卷积运算符用*表示,F(m, n)表示环绕函数,R(m, n)表示各自Retinex的输出。对数变换是在通过环绕函数对图像进行卷积运算之后完成的。环绕函数的数学表示为:
(6)
式(6)中,C为标量值,可称为环绕空间常数或高斯空间常数。K的选择基于:
r=(m2+n2)1/2
(7)
(8)
环绕空间常数负责动态范围压缩和总再现之间的调整。利用较小幅度的缩放比例可以导致动态范围的更多压缩,并且可以通过利用较大幅度的内核来实现更高的颜色恒定性。
SSR一次可以提供总再现或动态范围压缩。但SSR无法同时提供动态范围压缩和总再现。由于它仅使用单尺度来找出照度,而仅通过保留压缩动态范围或总再现中的一种属性提供的图像结果令人难以满意。因此,为了克服这一问题,提出了另一种方法,称为多尺度Retinex(MSR)。
2.2 多尺度RETINEX
如果场景的动态范围比图像设备能够捕获的动态范围大得多,那么在这种情况下图像将发生信息丢失且不可恢复。开发MSR就是为了克服SSR的局限性。MSR结合了不同环绕空间的质量,提供了一个动态范围和整体呈现良好压缩效果的图像。
在MSR中,它在单级上使用多重环绕功能来确定照度。在用卷积的方法计算出不同尺度的光照后,再取对数。然后,取一幅图像的对数,并从它的一个尺度上减去计算得到的光照,然后对所有计算得到的光照重复这个过程。然后,取所有尺度的所有结果的加权和,最终得到增强图像作为输出。对SSR各尺度加权输出的相加称为多尺度Retinex。在数学上,MSR可以表示为:
{logIi(m,n)-log[Ii(m,n)*Mj(m,n)]}
(9)
其中I代表色带(即R,G,B),N代表尺度的使用数量,Mj(m,n)代表环绕功能,代表各个尺度的加权因子。环绕函数可以表示为:
(10)
其中σj代表高斯分布的标准偏差。
MSR在增强图像后会保留图像的大部分细节。MSR比SSR更好,但是它不能产生自然图像。MSR能够提供具有整体再现和动态范围压缩功能的结果,是找出灰度图像增强效果的一种非常好的方法,但是它在彩色图像方面存在问题。在MSR中,无法预测在处理图像后产生的颜色是否正确。MSR存在与颜色灵敏度有关的问题。人们希望Retinex以一种类似于人类从某个角度看的方式来产生结果,并能够像人类的头脑那样进行调整,从而找到有关颜色和其他方面的有关图像的确切细节。因此,要获得与人类视觉相同的结果,就必须使用一种技术,该技术可以提供具有适当色彩还原效果的结果,作为输入图像到输出图像。因此,为了克服MSR的这种局限性,学界提出了另一种方法,即具有颜色恢复功能的MSR(MSRCR)算法。
2.3 带颜色恢复的MSR(MSRCR)
在使用MSR进行了增强后的灰度图像中,它可以在少数全局或局部区域中使图像变灰。因此,为了克服这个问题,需要一种可以处理颜色以保持图像颜色的算法。尽管颜色恒定性对于人类视觉而言也不完美,但是在恢复方法中颜色恒定性可以接受。
在MSRCR中,基于原始图像中的三色通道及其相对强度,为其引入权重。 在这种方法中,它对MSR进行改进,将MSR输出乘以颜色恢复功能以达到目标。在MSRCR中,它将获取输入图像,然后计算图像的色彩恢复功能。计算色彩恢复功能后,需要对图像执行MSR操作。然后,在MSR的输出处,它将与计算出的色彩恢复功能一起执行乘法运算。因此颜色恢复因子为:
(11)
其中αi(m,n)是第i个光谱带的色彩恢复系数,N表示光谱带的数量。 (是输入图像的第i个光谱带。 F( )是色彩空间的映射函数。通过将颜色恢复因子的公式(11)与公式(9)中的MSR相结合,可以得到MSRCR的公式如下:
Ri(m,n)=αi(m,n)RMSR(m,n)
(12)
通过式(12),将能够产生具有更好色彩还原效果的增强图像。为了控制颜色的程度,在颜色恢复系数中引入了增益和偏移。
(13)
颜色恢复因子分别为Gf和Of,分别称为增益和偏移。增益和偏移以某种方式控制恢复颜色的程度,从而影响输出图像颜色的恢复。
与之前的图像增强方法相比,它是一种更好的方法,但是此方法的问题在于,它需要控制色彩恢复的增益程度和偏移值。在MSRCR中,增益和偏移的值可能会导致信息丢失,因此需要一种适当的方法来处理增益和恢复过程的偏移,以便可以从MSRCR获得有效的结果。
2.4 改进的RETINEX图像增强
基于Retinex的方法主要有两个步骤,分别是照度估算和照度归一化。其中的关键问题是需要准确地收集背景照度。如果有相似背景的相邻帧,那么就可以提高照度估算的准确性。在这种方法中将更加专注于照度估算,以便在图像上准确执行Retinex。借助具有不同参数和尺度的高斯掩模可以过滤图像。过滤后,利用最小值法对结果进行混合。在这种方法中,利用视频图像帧的相似性和关系,借助最大值方法,可以计算出所有帧的光学背景。为了增强图像,使用这种光学背景进行Retinex处理,因为它具有均匀的照度。可以从Retinex理论推论得出,图像照度估计的准确性会导致增强输出图像的质量提高。
在这种方法中,首先从视频中获取连续的图像帧,或者获取相同或相近的图像以提取背景。然后,在所有这些图像上,借助多尺度高斯掩模过滤器进行滤波,以便可以有效地获取所有图像的照度。在对同一图像应用高斯掩模后,以最小法在滤波步骤之后混合输出。然后,将获得相应的输入图像的唯一结果。在所有唯一输出上,使用最大方法并通过混合所有背景形成均匀的背景图像。完成该过程后,它将以某种形式提供输出,将获得图像的照度。在估计的照度和输入图像上取两者的对数,然后从图像中减去照度。将得到反射率的对数,然后计算输出的指数,获得输出结果,这就是质量提高了的图像。
在此算法中,有3个主要步骤:
(1)利用多尺度高斯掩模提取不同尺度和方差的背景。
(2)使用最大值法混合图像相邻帧的光照,即从所有给定输入的输出中取最大值。
(3)利用Retinex方法对输入图像进行增强,计算出输入图像的照度。
经过该算法的应用,随着图像背景提取精度的提高,可以使图像得到更好的增强。在该方法中,主要研究的是图像和背景的照度估计。在对图像进行光照估计后,利用Retinex的基本方法在经过处理后的输出中找到增强后的图像。
2.5 夜间MSR的改进
这种方法是基于原始MSR的改进。基本的MSR对于相机在低光照区域捕获图像时产生的噪声非常敏感。原始MSR所提供的图像效果在这些方面并不令人满意。在MSR中使用增益偏移会导致夜间图像上的数据丢失。
而夜间MSR改进法中,对MSR方法进行了一些修改,即用自定义的Sigmoid函数代替了对数函数。使用Sigmoid函数,可以最大程度地减少数据丢失,还可以使MSR适应夜间拍摄的图像。夜间拍摄的图像难以增强,因为它必须处理不同的光照条件。MSR使用增益偏移量来裁剪图像中过高或过低的像素。因此,在夜间,通过增益偏移而拍摄的图像中,可能会导致数据丢失和某些假象的形成。自定义的sigmoid函数用于从一开始就删除不确定的值范围。在Sigmoid函数中,不需要增益偏移,并且对于极端像素,它会压缩它们而不是削波此类像素,因此数据丢失将尽可能少。所以,使用的Sigmoid函数具有很好的边界。
自定义的Sigmoid函数可以表示为:
(14)
其中,k表示斜率。k的值越大,Retinex对k的敏感度越高。参数b和c的存在是为了确保Sigmoid曲线必须经过特定点并在特定点处结束。使用sigmoid函数后,MSR方程可写为:
{Sog[Ii(m,n)]-Sig[Ii(m,n)]*Mj(m,n)]}
(15)
其中I表示输入图像,M表示环绕功能,R表示输出。
在这种方法中,在遵循原始Retinex的完整步骤下,只需要进行微小的更改,即使用定制的Sigmoid函数代替对数函数来计算高斯滤波器卷积后的照度值,原始图像以及用于减法的原始图像。最后,还必须计算所有尺度结果下的加权总和,以提供输出。
此方法可用于夜间或正常时间拍摄的图像,以获取增强的图像。由于它使用了定制的Sigmoid函数,因此不存在像素会丢失数据的困扰,因为它仅是对数据进行压缩而不是对其进行裁剪。
3 比较
基于Retinex理论的图像增强算法各有利弊,将讨论使用Retinex理论进行图像增强的方法之间的差异。在表1中,比较各方法及其之间的区别。
表1 方法之间的差异
由表1可见,SSR只能提供总再现或压缩动态范围。MSR可以在增强后提供图像的动态范围的总再现和压缩,这是由于使用了多尺度高斯函数,其大小导致了总再现和动态范围的压缩。MSR可以提供两种质量的结果,但是它不能像输入图像一样形成输出的颜色。因此,为了克服这一问题,使用了另一种方法来实现色彩还原功能,即MSRCR。在这种方法中,它使用恢复功能来恢复与输入图像相似的颜色的图像输出。IRIE专注于精确计算图像的照度。它基于Retinex的基本原理,从图像中减去照度以获得增强的输出。在MSRINTE中,使用自定义的Sigmoid函数来改善夜间拍摄的图像质量,因为在夜间图像的增强中,原始MSR由于使用对数函数对图像会产生过低或过高剪切强度,导致数据丢失,但S型函数只是压缩数据而不是剪切数据。所有这些基于Retinex的方法都互不相同,它们都有其独特的优势和图像增强方法,可以根据需要进行选择。
4 小结
可以选择MSR而不是SSR,因为它既可以提供高质量的总再现效果,也可以提供图像中动态范围的压缩效果。MSR非常适合用于灰度图像,因此,在处理灰度图像时,MSR的性能非常好。但是对于彩色图像,MSR无法生成与物理视点相同颜色的图像,因此在处理彩色图像时,MSRCR比MSR更好。当且仅当人们正在处理视频时,IRIE是更好的方法,因为视频具有IRIE要求的具有相似背景的连续帧。在处理夜间图像时,MSRINTE是一种更好的方法,因为它可以处理过低和过高的强度,并且可以在像素数据丢失最少的情况下增强图像。