王利娟,常 霞,张 君
(北方民族大学 宁夏智能信息与大数据处理重点实验室,银川 750021)
(北方民族大学 数学与信息科学学院 图像处理与理解研究所,银川 750021)
随着彩色媒介信息的盛行,彩色图像已经渗透到人们的日常生活中.为从降质的彩色图像中提取出高质量内容,图像增强已成为图像处理领域中不可或缺的一部分.传统的增强方法[1]通常可分为:基于空域处理的方法和基于频域处理的方法.基于空域处理的图像增强方法直接对图像像素进行处理,如灰度变换、直方图均衡、Retinex 算法;基于频域的图像增强方法首先将图像看成信号并与基函数做卷积,再对系数做变换进行增强,如基于小波变换和基于多尺度几何变换的增强方法.本文分析于20世纪70年代兴起的一种基于物理模型的图像增强算法-Retinex算法.Retinex 理论是由Land 等于1963年提出的,该理论依据视网膜成像原理去模拟人类视觉系统(Human Visual System,HVS)[2].人眼视觉系统在判断图像真实颜色的时候,几乎不会受到光照的干扰,即视觉恒常性.Retinex算法[3]正是基于视觉恒常这一特性而提出来的.此算法具有色感一致性优点,能保证图像的色彩不受外界不良因素的干扰,故常被用于增强低质量的彩色图像,并取得了令人满意的结果.
假设光照光滑,Retinex 理论通常将待处理图像z看成反射图像m和照度图像n的合成.其中,反射分量包含图像中大量的本质内容;照度分量则是包含光照等大量的外界信息,决定图像的动态范围.Retinex算法的核心思想是消除源图像照度分量干扰,依据反射分量信息还原图像真实色彩.因针对彩色图像,以下公式i∈{R,G,B},不再重复描述.故Retinex 算法公式如下:
其中,(x,y)为图像某像素的位置坐标.为节省计算成本,将式(1)变换至对数域求解:
令Z=logzi(x,y),M=logmi(x,y),N=logni(x,y).则有M=Z-N,将所得结果变换至指数域可得到图像反射分量.其算法处理过程由图1所示.
图1 Retinex 算法处理过程
图1中的MR,ZR,NR,MG,ZG,NG,MB,ZB,NB分别表示原图1的R,G,B 三通道的M,Z,N数值.明显地,结果图与原图1相比,更符合人眼的视觉感知.无论是细节部分还是颜色方面,均得到了很大的改善,尤其山脊沟壑的细节变化和天空颜色变化,图片整体结构层次分明.下面先介绍基于路径和基于中心/环绕两种传统Retinex 算法,并探讨传统的Retinex 算法的局限性,最后讨论并分析了一系列相关的改进算法.
Retinex 理论发展之初,学者们并未构造出具体的数学模型,而是发现了一种基于路径的计算机制[4].这种计算机制的基本思想是结合路径中的局部最亮点——白色参考点(White Patch,WP)[5]来计算路径中相邻像素点的相对亮度来获得反射分量.Land 等正是基于这种路径计算机制而提出了随机路径模型[2].基于路径的Retinex 模型便是最基础的数学模型.对于一幅数字图像z,设置N组随机路径,并给定初始点k和目标点x,假设某条路径上相邻两像素的亮度值分别为S(xk)和S(xk+1).则最终多条路径上的目标点x处的相对亮度值可记为:
式中,nk表示第k条路径像素点总数,δk为阈值函数.其中δk(θtk)满足:
式中,ε代表阈值.Provenzi 等在文献[6]中对该模型进行详细的数学描述,并指出阈值ε 对结果的影响并不大,甚至可以忽略.故目标点x处的相对亮度值为该位置处亮度值与其他各路径中某位置处的最大亮度值之间的比值.因此式(3)可以被表示为:
式中,xHk为最大亮度值所对应的像素点.
随着路径模型应用越来越广泛,研究者们相继提出许多不同的路径选取方式,例如:随机中点位移方法[7]、双重螺旋方法[8]、迭代法[9]和分段路径选取[10]等方法.但均是一维采样算法,极易引进噪声、产生伪影.故Provenzi 等在文献[11]中提出算法效果更优的二维RSR(Random Spay Retinex)模型.随后产生了一些RSR 的优化算法[12,13],用于降低噪声和减少误差.
基于路径的Retinex 算法能最大程度地提高图像对比度.但因其初始位置、终止位置以及路径选取的不确定性,极易引入不良噪声,影响光照估计的精确度;该算法时间成本较高,不便在实践中应用.基于路径的Retinex 算法难以获得色彩保真度高、视觉效果好的高质量图片.
为获得图像真实色彩,Land 等提出基于中心/环绕的Retinex 算法.该算法参数个数少,方便实现.基于中心/环绕的Retinex 算法的核心思想是用高斯核函数估计照度分量.典型算法有单尺度Retinex (SSR)算法[14]、多尺度Retinex (MSR)算法[15]和带色彩恢复因子的多尺度Retinex (MSRCR)算法[16].
根据SSR 算法有:
其中,FSSR是增强结果,*表示卷积运算,f(x,y)表示卷积核函数,公式如下:
式中,k满足σ 表示核参数.参数σ 的取值可决定增强效果,增大 σ,图像信息可保留更多,但颜色保真度会下降;反之,减少 σ,颜色保真度会提升,但增强图像会丢失许多细节信息.
因SSR 算法不能同时有效保持细节和颜色信息.故提出MSR 算法,该算法的基本思想是将多个高斯核尺度参数加权求和,其计算公式如下:
其中,fj(x,y)为滤波函数,尺度和尺度总数分别为 σj和N,ωj是j个参数所对应的权重因子,一般满足
为降低色偏,还原图像真实色彩,Rahman 等提出MSRCR 算法,引入了色彩恢复因子[15],模型如下:
其中,FMSRCR表示增强结果,ci(x,y)表示色彩恢复因子,公式满足:
其中,μ和 η分别是影响图像色彩恢复的增益因子和偏移量,均是常数.
依据传统Retinex 算法理论获得大量的实验结果,可分析得出,该算法在图像增强过程中可以改变照度分量和反射分量在图像中所占的比例,故图像的对比度提高.照度分量的估计是影响图像增强效果的关键因素.如表1所示为传统Retinex 算法的逻辑思路和优缺点.为更好认识这些算法的性能,所有实验均在Matlab 2018a 版本上运行,且尺度参数根据经验值设定,SSR 算法中σ =80,MSR 算法中选取σ1=15,σ2=80,σ3=250.将文献[8]中的螺旋式路径Retinex 算法与另外3 种中心/环绕Retinex 算法做对比实验,实验结果在图2所示.
从表1可知,虽然传统Retinex 算法能很大程度改善图像质量,但在应用过程中仍存在不可忽视的缺点.尤其从图2的实验结果中更能进一步认识这些算法的优势与局限性.由图2(b)可见文献[8]算法能提高原图2的对比度和亮度,整体颜色较清晰,但天空部分的颜色并不自然,并伴随伪影产生.从图2(c)、图2(d)、图2(e)中明显看出,基于中心/环绕的Retinex 算法效果更有效.但算法中参数选取具有局限性,导致增强图像的对比度、色度、清晰度具有不确定性,故增强效果并不理想.其中图2(c)SSR 算法能稍微改善天空的颜色,但整体对比度有所下降,且光晕现象较为严重;图2(e)中,MSRCR 算法因有颜色因子的缘故,颜色明显要比图2(d)MSR 算法中图像的亮度和色度更为自然真实,天空部分也少了许多伪影,但改善效果仍不是最理想.随着学者们对Retinex 算法的深入研究,尤其针对传统Retinex 算法中的颜色失真和光晕现象这两大缺陷,提出了大量的改进算法.
表1 传统Retinex 算法的比较
图2 传统Retinex 算法实验结果
在视觉上,图像的色度会随着照明的变化而变化,在图像获取过程中,常因场景限制因素而获得色彩不自然图片.在对图像实施增强操作时,Retinex 算法中滤波器的设计和权值获取极易导致增强结果出现色偏,所以抑制颜色失真成为改善图像质量必不可少的环节.其中对图像进行空间转变处理、色彩校正处理及滤波器参数和权值的自适应选取成为抑制色偏的重要手段.
应用传统的Retinex 算法增强彩色图像时,通常先将图像分解成R、G、B 3 个通道,再用Retinex 算法分别处理各个通道,最后重组得到结果图像.此处理方法既需要较高的时间成本,又极易破坏R、G、B 三者的比例协调,导致目标图片出现失真现象.学者们经过不断地探索,发现可以通过改进颜色空间的转换方法来获得更好的增强结果.色彩学家Munseu HA 于1915年提出HSI 颜色空间模型,其中H、S、I 3 个特征分别对应图像的色调(Hue)、饱和度(Saturation)和亮度(Intensity)信息.其中H 和S 特征包含图像颜色属性,I 特征含有图像的亮度属性.在对彩色图像进行增强时,图像的颜色属性保持不变,并对亮度属性进行Retinex 算法的处理,这样可以避免图像颜色属性被破坏,可减少图像失真.而且只处理I 通道可以有效减少运行时间.王永胜等[17]基于Lab 色彩空间对踏面低质量图像的L 通道使用Retinex 算法,可有效提高踏面图像的清晰度和辨识度,呈现较为鲜艳的色彩.张红颖等[18]在YUV 色彩空间对夜间图像的明亮度分量Y 采用MSR 算法,并自适应校正色度分量,使得夜间图像的颜色得以较好的恢复.常用的还有HSV、YCbCr、CIELuv 等颜色空间转变方法.
色彩校正方法在彩色图像增强时主要针对图像的饱和度和色调进行校正.文献[19]提出将主色度因素引入到MSR 算法进行色彩校正,该方法基于各颜色通道标准差的局部平均加权来估计输入图像的主色度,再通过保留图像的色度比来实现色彩再现.随之研究者们又提出一些新的较正算法[20-22],例如局部色调映射、使用伽马校正、引进增益函数、饱和度补偿等.尤其针对一些低照度图像,提出了许多颜色校正算法,如李小霞等[23]提出MSR 算法的改进算法,先对饱和度应用分段对数变换做增强处理,又采用边缘保持增强了色调,显著改善了图像的色偏现象;程芳瑾等[24]将余弦彩色恢复函数引入到MSRCR 算法中,显著地提高了图像的信息熵和色彩丰富度;Hanumantharaju 等[25]提出了一种新的色彩还原新技术,并为图像增加了真正的色彩恒定性,实验结果显示,该算法为低质图像提供了真实的色彩保真度.这些算法在改善色偏方面均取得良好效果.
对滤波器参数有效选取是减少传统Retinex 算法引入伪像和色偏的重要因素.研究者们提出利用智能优化算法对参数进行搜索,获得最优匹配结果.汪荣贵等在文献[26]中提出一种基于无限冲激响应(IIR)低通滤波的Retinex 算法,该算法便是利用实数编码遗传算法自适应获得所需参数,计算成本明显降低.并且增强结果图像的边缘得到了很好地保持,光晕和伪影也不明显;Biswas B 等在文献[27]中提出了一种新的基于布谷鸟搜素合适的参数值来优化MSR增强性能,以增强图像对比度和亮度.刘彤[28]将粒子群优化算法引入到SSR算法中,自适应选取不同的滤波模板核参数,将图像像素分成不同类,并对应使用不同的滤波模板,有效地平衡了图像对比度和颜色一致性.当然,如果利用图像像素间的关系或者亮度层关系能够定义合适的权值计算公式[29,30],改善色偏效果也是很满意的.
以上讨论的是近几年抑制颜色失真的3 种改进策略,这些方法的各有逻辑思路和优缺点,具体对比如表2.为从主观上更直接明了的认识这些改进算法的有效性,将文献[22,29,30]的实验结果与传统Retinex 算法做对比实验,实验结果如图3所示.
从图3的实验结果中得到,原图3在传统Retinex算法处理后花朵的的颜色泛白,属于色彩过增强现象.经过其他几种增强算法处理后,效果明显优于图3(b)MSR 算法.其中原图3经过文献[22]中色调映射算法处理后,花朵和叶子的色彩明显更加清晰自然;文献[29]、文献[30]通过自适应选取参数处理后的实验结果中,整体颜色也更为自然,尤其文献[29]算法处理后的结果图中叶子的颜色细节有很大改善.
表2 抑制色彩失真的3 类算法的比较
图3 抑制色偏的实验对比结果
传统Retinex 算法通常假设光照具有均匀性,但这与实际情况相悖.正是这种假设,使得增强结果易出现“光晕”.而消除光晕的关键在于光照估计的方法.
基于中心/环绕Retinex 算法均以高斯滤波器作为低通滤波器来估计光照分量.介于其他一些滤波器也具有独特的优良属性,甚至比高斯滤波器更优.例如基于双边滤波(bilateral filter)[31,32]的Retinex 算法、基于引导滤波(guided filter)[33,34]的Retinex 算法、基于三边滤波器[35]的Retinex 算法和基于自适应滤波器[36,37]的Retinex 算法也可以估计照度分量.这些改进均能有效去除光晕.虽然以上算法在增强细节和消除光晕影响方面取得了很大的进步,但是算法复杂度会随着滤波核参数的增多而增大,较为耗时.故许欣等在文献[38]提出一种快速Retinex 算法,使用“mean-shift 滤波器”估计照度分量.Mean-shift 算法能较大程度保护边缘信息,并且不会破坏图像结构,相较其他算法能够在节省时间成本的情况下,有效地抑制光晕,因此该算法应用最为广泛.
综上所述,想更有效消除光晕,需滤波器在平滑图像过程中具有良好的边缘保持能力.事实上,滤波器的性能很难做到这一点.学者们从另一个角度出发,提出了基于变分框架的Retinex 算法,通常被称为Retinexlike 模型.变分模型通常包括两种,分别是基于HVS 的变分模型和基于Horn 物理先验变分模型.
Palma-Amestoy 等是最先提出基于HVS 的Retinexlike 变分模型[39],之后为降低计算成本,Provenzi 等将小波算法引入到变分模型[40].Kimmel 等[41]依据先验条件-图像分解为照度图像和反射图像,提出基于Horn 物理先验变分框架的Retinex 模型.该算法旨在使光照分量空间分布信息最大程度的平滑,进而有效抑制光晕现象产生.基本思想是根据图像的一些先验信息增加变分约束项,构造目标函数,利用优化原理估计光照分量.与此同时,学者们通过增加或修改约束项相继又提出许多变分模型[42,43].但这些算法缺乏对反射分量的分段连续性的考虑,随后,李明等引入了全变分Retinex 算法(TV-Retinex)[44],该方法有效地显示出被覆盖阴影区域的细节信息,其中的Bregman 迭代算法能有效加快TV 模型算法速度.但是该算法并未考虑保真项,Wang 等[45]在后来的研究中添加了保真项这一因素,算法获得了更好的视觉效果.这就表示普通的变分项不能很好的保持图像信息,照度估计效果不是很理想.学者们对变分项不断地进行灵活的改进.例如,在变分项中增加权重[46],增加结构性约束[47],增强效果明显得到很大提升.之后为抑制噪声和伪影产生的不良影响,文献[48]将指导矢量场项引入到变分框架模型中,提出一种新的基于全局稀疏梯度引导变分(GSG-VR)的图像增强技术,可以有效去除光晕,恢复真实色彩.
以上所分析讨论的可以抑制“光晕现象”的两类改进策略,同时也对这两类改进策略的逻辑思路和优缺点进行归纳总结,具体对比如表3所示.同样地,针对这两种改进策略各选取一种典型代表算法进行对比实验,实验结果如图4所示.
由图4所示,原图4经过传统Retinex 算法处理后,如图4(b)和图4(c)所显示,光晕现象较为明显,尤其法和文献[41]中利用变分法处理后的实验结果显示,原图4中无论是整体的亮度还是颜色都非常符合视天空的颜色变化最为明显,细节信息丢失严重.而原图4经过文献[34]中利用导向滤波估计照度分量算觉感知.尤其天空颜色得到了很明显的恢复,很大程度降低了光晕现象的产生.
表3 抑制光晕的两类算法的比较
图4 抑制光晕的实验对比结果
Retinex 算法对于动态范围低、曝光不足、有雾、水下等低质彩色图像,均能取得良好效果.随着科学技术不断更新发展,为快速增强更多错综复杂的低质图像,学者们提出一系列其他算法,如Hore 提出基于偏微分方程(PDE)的Retinex 算法[49],认为物体反射率在图像的尖锐变化处,其他部分是光滑的,并利用拉普拉斯变换和阈值函数将Retinex 求解过程形式化为离散泊松方程.该算法以一种独特的视角简化了的Retinex 算法,参数个数少,结果也较为稳定.文献[50,51]均对高斯模板进行了优化,以提高卷积速度.其他方面还有Retinex 基于核函数实现[52]、基于迭代有理滤波器方法[53]、基于恰可分辨率差异的非线性滤波方法[54]、基于立体视觉的Retinex 方法[55]等.这些方法均在改进Retinex 算法方面做出了重要贡献,适应于许多低质种类图像的增强,对于改善视觉效果具有重要意义.
本文针对传统Retinex 算法中出现的颜色失真和光晕现象问题,分析了一系列改进算法.并对不同算法种类的核心思想和优缺点进行归纳总结.
目前常用基于路径、基于中心/环绕、基于偏微分和基于变分这4 种Retinex 算法.对于色彩恢复和去除光晕的改进算法都做出了很大的贡献,尤其中心/环绕Retine 算法因其结果稳定性强,使用较广泛.但其中的路径法参数多、噪声大;变分法太灵活,难以构造满意的目标函数.所以Retinex 算法面临的主要挑战仍是在构造模型、优化模型时,如何降低算法计算复杂度,进而节省时间成本.针对图像失真问题,仍然需要进一步寻找更加精准的颜色恢复方法,使其既符合人眼的视觉感知,在实际生活中又符合人类的经验认知.