基于Retinex理论的眼底彩色图像增强算法

2018-07-19 03:24刘玉红颜红梅
中国生物医学工程学报 2018年3期
关键词:彩色图像图像增强亮度

刘玉红 颜红梅

1(电子科技大学生命科学与技术学院,成都 610054)2(成都医学院物理教研室,成都 610500)

引言

高质量的眼底图像对于病变的检测以及获得可靠的诊断结果具有至关重要的作用[1-3]。由于眼底图像可能会受到成像环境以及成像设备等条件的制约,所获得的图像效果较差,图像的亮度和对比度较低,这些因素会导致对直接拍摄所获得的眼底图像进行病理分析有一定的困难,甚至会使诊断结果出现偏差,因此需要提高此类眼底图像的亮度和对比度,增强细节部分,以便于分析。因此,在临床上,眼底图像的增强对于心血管疾病的诊断和治疗具有重要的作用。

目前主要的眼底图像增强方法有:直方图均衡化(histogram equalization,HE)[4-5]、对比度受限自适应直方图均衡化(contrast limited adaptive histogram equalization,CLAHE)[6-7]、数学形态学方法[8]以及Hessian矩阵增强等方法[9-11]。直方图均衡化是应用得比较多的方法,但利用此方法增强处理后会使图像的灰度级减少,造成图像细节丢失的情况。为弥补此类的不足,人们提出了CLAHE算法。这种方法虽然很大程度上提高了对比度,但是会放大背景噪声,并且将病灶部分视为背景区域等,对于灰度级比较集中的图像增强效果不明显。数学形态学滤波可以很好地提取图像亮暗区域以及细节部分,但主要针对灰度图像来进行提取。基于Hessian矩阵的滤波方法,对实现视网膜图像的全局增强是不合适的。一方面,已有的眼底图像增强方法主要增强血管的信息,以便进一步提取血管进行分析,但较少能够对眼底图像中的视神经盘、眼底血管以及病灶等有用信息进行整体的增强;另一方面,已有眼底图像增强方法大部分是将彩色图像转化为对灰度图形进行增强的,因此很难实现图像视觉效果保真。在具体的增强方法中需要多方面考虑,不仅要突出图像的某些细节部分,还要对图像的动态范围和色彩信息等有所考虑。

基于人类视觉感知的Retinex图像增强算法有传统图像增强算法所不能比拟的颜色恒常效果[12],增强后的图像局部对比度显著提高,能够有效地提高图像暗区域内的细节部分,且色彩信息可得到很好的恢复,对提高医生的临床准确性有很大帮助。最早的单尺度Retinex (single scale retinex, SSR)算法可以提高图像的对比度,但不能兼顾动态范围压缩及色调恢复,并有光晕现象的产生。为了改善SSR算法的缺点,Rahman等提出多尺度Retinex (multi-scale retinex, MSR)算法[13],但该算法颜色失真较大,随后又提出了带色彩恢复的多尺度Retinex (multi-scale retinex with color restoration, MSRCR)算法[14]。由于MSRCR在计算过程中需要进行大量的卷积运算,导致运算的效率降低,并且经对数处理后的图像可能会超出显示器的显示范围,容易引起图像颜色的失真。因此,对处理眼底彩色图像增强方法鲜见报道,主要原因是眼底图像的结构明暗对比度明显,动态范围比较大,采用MSRCR方法处理后发现光晕现象明显,无法观察到视神经盘,并且细节部分丢失严重,图像颜色总体泛白化。因此,本研究在现有Retinex理论基础上,提出一种改进的眼底彩色图像增强方法,称为CP-MSR(color preserve based on MSR)。该方法不是直接对图像的R、G、B分量进行处理,而是先把颜色信息转换为亮度信息后提取亮度信息进行MSR处理,接着再利用SCB(simplest possible color balance algorithm)方法[15]对结果进行gain/offset校正后做颜色恢复处理,最后对亮度信息进行恢复。实验结果表明,经过本算法处理的眼底图像血管对比度提升,色彩保护较好,图像细节清晰。

1 方法

1.1 Retinex理论基础

Land 和McCann提出的Retinex理论十分适合于人类视觉系统,他们认为物体的颜色是由光的反射分量来确定的,与入射分量无关,而图像主要是由入射光和物体的反射光相互作用形成的[16]。所以,Retinex图像增强的原理主要通过估计并去除或降低原始图像的入射分量,从而获取反映图像本质信息的反射分量,求解出物体本身的特性,从而实现图像增强。

假设一幅原始的图像为I(x,y),那么可表示为

I(x,y)=L(x,y)·R(x,y)

(1)

式中:R(x,y)表示反射分量,代表的是图像的本质信息;L(x,y)表示入射分量。

由于人眼感知亮度的信息具有非线性特征,所以把式(1)转换到对数域中进行处理,从而该式中的乘法运算被转换为对数域中的加法运算,有

lnI(x,y)=lnL(x,y)+lnR(x,y)

(2)

Retinex的核心思想是获得代表本质信息的反射分量,主要通过分离入射分量来减弱因光照因素产生的对图像的影响,从而增强图像的细节信息。将L(x,y)从I(x,y)中去除,得到反射分量R(x,y)。

1.2 Retinex算法

目前,基于Retinex理论的算法中具有代表性的有单尺度Retinex算法(SSR)、多尺度Retinex算法(MSR)和带色彩恢复的多尺度Retinex算法(MSRCR)。

1.2.1SSR 算法

Ri(x,y)=lnIi(x,y)-ln[G(x,y)*Ii(x,y)]

(3)

式中:i=1,2,3代表彩色图像的三原色;*表示卷积运算;G(x,y)是高斯环绕函数,其形式为

(4)

式中:c表示高斯函数的尺度参数,其值越小动态范围压缩越大,图像的细节越突出,其值越大图像的整体效果越好,图像颜色越自然,但局部细节不清晰;K为归一化因子,使高斯环绕函数满足

∬G(x,y,c)dxdy=1

(5)

SSR图像增强中由于选择c的局限性太大,往往不能使图像的局部细节信息、色彩保真性能以及动态压缩范围等特性达到一个比较好的综合效果。为了弥补SSR算法的缺陷,将不同尺度大小的SSR处理所得到的结果进行加权平均求和,即采用MSR算法,目的在于色彩和细节方面达到一个平衡。

1.2.2MSR算法

图1 几种Retinex算法处理结果。(a)原图;(b)SSR;(c)MSR;(d)MSRCRFig.1 Different retinex enhancement methods for fundus images. (a)Original image;(b)SSR;(c)MSR;(d)MSRCR

MSR算法是多个SSR的加权求和,通过选取不同的尺度来对图像细节信息突出,同时保证其色彩信息,其表达式如下:

(6)

式中,RMSRi(x,y)为MSR在第i个颜色通道的输出,Wn为不同尺度的加权系数,N为尺度个数。

实验发现,MSR算法擅长处理灰度图像,在处理彩色图像的时候出现“泛白、颜色失真”等现象。所以,对MSR考虑颜色恢复因子改进,得到带颜色恢复的多尺度Retinex算法(MSRCR)。

1.2.3MSRCR算法

Jobson等给多尺度MSR的输出乘以一个色彩恢复函数,提出了带色彩恢复的多尺度算法,其表达式如下:

RMSRCRi(x,y)=Ci(x,y)RMSRi(x,y)

(7)

式中,Ci(x,y)称为彩色恢复函数,可以表示为

(8)

式中,β为增益常数,α为非线性强度控制因子。

MSRCR算法利用彩色图像的各个色彩通道间的比例关系,解决了处理彩色图像时色彩失真严重的问题。

1.3 经典Retinex算法的缺陷

在日常光照环境下,大部分图像基本上都能通过MSR或者MSRCR增强算法来提高图像质量,但依然有很多地方需要改进,MSRCR在明暗交替的地方容易出现光晕现象,并且可能会导致不可预知的颜色失真,甚至出现颜色反转。通过分析,发现在彩色图像中某些像素点比如R通道的值接近0,而G通道的值接近255。这些值经过MSR算法后,得到的反射分量的像素值可能会变成负数;在MSRCR算法中,需要与比色变换因子相乘,如果比色变换因子也是负数,那最终得到的结果可能是一个正的像素,随后经过线性拉伸后就会导致色调的失真,甚至出现颜色反转现象,因此需要对映射方法以及颜色恢复因子算法进行改进。图1给出了经典Retinex算法(SSR、MSR、MSRCR)处理后的结果。

由图1可以看到,经过Retinex算法处理后的眼底图像在边缘细节上有了提升,暗处的细节突显出来。SSR使边缘血管较明显,增强了边缘信息,但中央的视神经盘信息几乎完全丢失(见图1(b))。MSR相对SSR来说,眼底图像信息基本上存在,并且中央的视神经盘信息也突显出来,但在增强过程中,每个像素和它相邻的像素进行比较,输出此像素与相邻像素均值的差,因此有些原本色彩很好的区域求均值差后却变小了,导致输出的色彩存在变淡的情况,出现图像中的色彩失真,整体颜色呈现灰白色调(见图1(c))。MSRCR方法对血管信息有很好的增强效果,但在明暗对比强烈的地方视神经盘的位置出现光晕现象(见图1(d)),而且总体的颜色比例失调,也出现偏白情况,视觉效果并不好。虽然这种“泛灰化”不会造成视觉误差,但对图像的后续处理可能会产生影响。因此,在医学图像处理中,Retinex方法大多用来处理灰度图像,很少用来处理彩色的医学图像。另外,原始的Retinex算法是基于空域卷积处理,运算量较大,加之MSRCR的颜色恢复算子是对每个像素来操作,因此导致运算时间较长。本研究主要针对MSRCR方法对眼底图像处理后颜色失真的问题,提出一种基于Retinex理论改进的眼底彩色图像增强方法(CP-MSR)。

1.4 算法流程

本研究提出了眼底图像增强的算法,其框架如图2所示,总体流程如下描述:首先,输入彩色RGB图像,并将RGB图像转为亮度图像;其次,采用Ana Belén所提出的方法[17],将多尺度的Retinex算法应用到亮度图像上,由于只需要计算单一的亮度通道,因此提高了算法的处理效率;然后,采用SCB方法对所获得的亮度值进行映射修正,并根据增益因子对各个通道进行染色处理;最后,对亮度通道(R通道)进行恢复。

图2 CP-MSR算法框架Fig.2 The algorithm flow chart for CP-MSR

1.4.1亮度调整

由于HSI空间中的亮度信息与颜色信息无关,因此对亮度信息进行处理并不会改变图像原本的颜色。首先根据HSI色彩空间,获得RGB彩色图像的亮度信息I(x,y),有

I(x,y)=(R(x,y)+G(x,y)+B(x,y))/3

(9)

式中,R(x,y)、G(x,y)、B(x,y)分别为(x,y)处像素的红色、绿色、蓝色分量。

根据MSR算法对此亮度通道进行MSR处理,有

(10)

式中,RMSR(x,y)表示多尺度的输出结果,G(x,y,δ)表示高斯核。

分别选择小尺度、中尺度、大尺度的高斯核,这样就可以兼顾图像整体效果和局部突出,也同时保证动态范围压缩和色彩的一致性。

1.4.2Gain/Offset 修正方法的改进

传统的MSRCR算法是对数域的输出,可能会出现负值,也有可能会超出显示器的显示范围,因此必须要对像素进行适当的修正,使之压缩到显示器所能显示的范围[0,255]内。这个映射的算法(增益补偿算法)具有重要的意义,其好坏直接决定了最后输出的图像质量。传统的增益补偿算法公式描述如下:

(11)

这种数据处理后具有高动态的特性,数据分布也广,但在光照分布不均匀情况下,会出现两极化的现象,难以获得好的增强结果。在对MSRCR算法的增强图像进行直方图统计分析后,发现直方图都类似于正态分布,两端存在很多小概率值,如果按照传统的式(11)增益补偿方法,两端的小概率值会在同时被拉伸后拥有大量的灰度级,使原本表现图像增强的主要细节信息灰度级偏少,导致图像的效果不好。为了解决这个问题,本研究利用基于直方图的simplest color balance(SCB)方法对增益进行补偿,对直方图的两端数据按照一定的百分比进行截取处理,然后把中间保留的部分线性映射到[0,255]之间,获得相应的值,有

(12)

式中,S1、S2分别为两端的截取百分比,N为所输入图像像素数。

在这里,把S1、S2都设置为1,使图像中的R、G、B每个通道上的值通过式(12)变换映射到[0,255]之间,因此,剪切了增强图像的直方图中两端的小概率值,使更大范围的灰度级用于表示图像的细节,从而提高了图像对比度。

1.4.3颜色恢复因子的改进

上面只是对图像的亮度做了处理,以获得增强后的亮度图像,此外还需要对图像进行颜色恢复。但是,传统方法的颜色恢复因子可能会产生颜色反转的风险,因此引入一个新的颜色恢复因子,分别对R、G、B这3个色彩通道的各像素点做颜色恢复,以此来解决存在的颜色失真问题,使图像具有更好的视觉效果,颜色恢复表达式如下:

(13)

虽然经过颜色恢复后的算法对图像质量有很大的提高,但从单一的R、G、B通道分析发现,G、B通道亮度信息基本保持不变,而R通道的亮度信息丢失较为严重。基于上述的缺陷,需要对红色通道进行恢复处理。

1.4.4红色通道的恢复

眼底图像是采用 RGB 模型来描述的彩色图像。一幅图像由 R(红色通道)、G(绿色通道)、B(蓝色通道)组成,而红色通道的亮度信息最多。由于首先对亮度通道进行处理,因此经过调整后的亮度信息可能存在丢失情况,未经过红色通道恢复的图像整体偏红,因此需要对红色通道进行恢复处理。对红色通道进行的处理如下:

(14)

经过处理后,得到红色通道的多尺度变换,将结果采用本文第1.4.2节提出的方法进行修正,并且与得出的结果进行比较,取最大值,有

(15)

后续处理与本文第1.4.3节中的处理一致。

1.5 算法验证

为了对增强效果进行客观评价,本文采用3个基本的评价指标:信息熵(IE)、均值(MAE)和峰值信噪比(PSNR),对图像结果进行定量分析。

信息熵(IE)指的是图像中的信息量大小,定义为

(16)

式中,pm表示灰度值为m的像素出现的概率。

平均绝对误差(MAE)在图像处理中主要反映亮度信息,定义为

(17)

峰值信噪比(PSNR)主要基于误差敏感的图像质量评价,定义为

式中,MSE表示均方误差(mean squared error, MSE),f(i,j)表示原始图像,y(i,j)表示增强后的图像,m和n表示图像的长和宽,maxi表示图像中取得的像素最大值。

IE值越大,表明图像细节信息越丰富;MAE反映图像的亮度,值越大表示图像越亮,值越小表示图像越暗。图像太亮或者太暗,都会导致细节模糊不清;PSNR值越大,图像质量就越好。

2 结果

图3为图1(d)经过本文第1.4.1~1.4.3节的步骤后得到的结果。从主观对比来看,MSRCR方法(见图1(d))虽然可以把图像的黑暗区域恢复出来,但处理后的图像在色彩上出现泛灰化,而经过本研究颜色恢复处理后的眼底图像颜色保持较好,亮度以及对比度都得到了较好的增强,如图3所示。

图3 颜色恢复后的眼底图像Fig.3 Fundus images via color recovery

在眼底图像中,由于R通道亮度信息最多,而本方法主要是针对亮度信息进行处理,因此在对单一的R通道进行处理后,发现视神经盘、血管及背景信息丢失,如图4所示。

因此,需要对R通道进行恢复处理。图5(b)、(c)两幅图像分别是未经红色通道恢复的图像、经过红色通道恢复的图像,从结果可以看出,经过红色通道恢复的图像有较好的色彩保护性能,增强后的图像依然保有红色背景,图像的细节信息比未经过红色通道恢复的图像明显要好,并且更能突出边缘信息和视神经盘等结构的细节信息。

图4 色彩恢复处理后单一的R通道图像Fig.4 Single red channel information based color restoration

为了验证本算法对眼底图像处理的有效性,从DIARETDB0数据库[18]中随机选择正常和病理的眼底图像来进行对比,所选择的3个尺度大小分别为15、80、250,实验结果如图6所示。可以看出,无论正常还是病理图像,本方法处理后的眼底图像对比度增强,血管更加清晰,并且黄斑、视神经盘以及病变区域都被保留,这有利于医生的进一步诊断。

为了证明本方法的有效性,将其和其他算法进行比较。

2.1 本算法与其他算法的主观比较结果

在实验中,将本算法与4种经典算法作比较,对比的方法包括MSR算法、MSRCR算法、HE算法、CLAHE算法,图7展示了本算法和这4种眼底图像算法的增强效果。图中第一行从左到右依次为原图、MSR增强算法结果和MSRCR算法结果,第二行从左到右分别是HE算法、CLAHE算法和本算法对眼底彩色图像的处理结果。

2.2 本算法与其他算法的客观比较结果

图6 不同眼底图像的增强效果(每行从左至右分别为正常、出血、渗出物)。(a)原始图像;(b)本方法Fig.6 CP-MRS for fundus images(Each row from left to right: normal one, the ones with bleeding and ooze). (a)Original image; (b)Proposed method

图7 不同算法的增强效果。(a)原图;(b)MSR算法;(c)MSRCR算法;(d)HE增强算法;(e)CLAHE增强算法;(f)本算法Fig.7 Results of different image enhancement methods. (a)Original image; (b) MSR;(c)MSRCR;(d) HE;(e)CLAHE;(f)Proposed method

为进一步验证本方法的效果,在DIARETDB0数据库上将本算法结果和MSR算法、MSRCR算法、HE增强算法、CLAHE增强算法进行定量比较。DIARETDB0图像数据库包含有130幅彩色眼底图像,其中20幅正常的眼底图像、110幅病变的眼底图像。该图像与实际情况类似,没有经过特殊的校准处理,因此完全可以用来评估算法的性能。MSR、MSRCR和本算法均为多尺度的,为了保证公平对比,每种算法所选用的3个尺度(大、中、小)都是相同的:小尺度均为15,中尺度均为80,大尺度均为250。

采用图像的信息熵、均值、峰值信噪比参数,衡量图像增强的效果。图像的均值反映的是图像整体的明暗程度以及对比度,信息熵是衡量图像所包含的信息量参数,峰值信噪比表示图像的质量。4种算法的图像质量客观评价指标如表1所示。为了评价的鲁棒性,统计了130幅图片,其中110幅病变的眼底图像,20幅正常的眼底图像(最优的指标以黑体在表1中标出)。

表1 DIARETDB0数据库本章算法和现有其他算法结果的客观评价指标比较Tab.1 Performance comparison of different image enhancement results on DIARETDB0 fundus image database

3 讨论

3.1 各种算法结果的比较

从主观和客观两个方面对实验结果进行讨论。从图7的实验结果可以得到,本算法显著优于其他4种增强算法,其他算法虽然对原图都有增强的效果,但在一定程度上有颜色失真现象。利用文献[12]的MSR算法得到的眼底图像颜色灰白化,颜色出现失真;文献[13]的MSRCR算法虽然将图像的暗区域恢复出来,但是图像在色彩上却出现“泛白化”,图像色彩较淡,并且有光晕现象的产生;文献[5]的HE算法在一定程度上提高了图像对比度,但依然存在图像颜色失真;文献[7]的CLAHE算法在细节上有一定增强,但是增强后整体的对比度不够明显,且图片整体色调较暗;本算法不仅能够提高图像对比度,边缘纹理细节相对清晰,而且可以完好地呈现出图像原有的色彩,具有较强的原始色彩保护性能,并有效抑制了光晕现象的产生,图像视觉效果更佳。

表1是上述5种算法处理结果的客观评价参数。可以看出,亮度方面,本算法比MSR、MSRCR、HE结果要低,有效降低了亮度信息;而比CLAHE亮度高,更有力地突出细节部分信息;信息熵和PSNR比其他方法的值大,信息熵提高了5%~7%,峰值信噪比(PSNR)比其他方法提高了1~2倍,说明本算法有效提高了图像质量,增强后的图像细节更丰富,信息量更大。

在上述的实验中,综合主观和客观评价结果可以看出,本算法优于其他4种增强算法,能较好地保护原有的色彩,并克服了光晕现象的产生,取得比较好的增强效果。

3.2 所做的工作及其创新性

1)研究了Retinex的理论基础及其算法,深入分析并实现了SSR、MSR、MSRCR算法对眼底彩色图像的增强,指出此类增强方法所存在的缺陷:SSR算法处理速度快,但是增强效果较差;MSR算法处理后的结果整体泛灰白化;MSRCR对MSR增强颜色不足进行了改进,但在明暗交替的部分容易发生光晕现象。

2)针对传统Retinex算法缺陷,提出改进的基于Retinex理论的眼底彩色图像增强方法。将对R、G、B通道改为对图像的亮度通道进行处理,可以有效保留图像的色彩信息。

3)算法中gain/offset的设置在传统的Retinex中很难找到一个通用的值,使得所有图像都有好的处理效果。针对这个问题,本研究采用文献[15]中的SCB方法,对所获得的亮度值进行映射修正,从而得到更好的图像增强效果。最后根据增益因子对各个通道进行染色处理,更好地保护了图像的原有色彩,并且解决了在明暗交替区域出现的光晕现象。实验证明,本研究所提出的算法解决了MSRCR方法颜色恒常性不足的问题,增强了图像的细节信息,保护了边缘特性,能够很好地改善图像质量。

4)目前的眼底图像增强主要增强血管的信息,以便进一步提取血管进行分析,较少能够实现对眼底图像中的视神经盘、眼底血管以及病灶等有用信息的整体增强[9,11];另外,已有眼底图像增强方法大部分是将彩色图像转化为对灰度图形来进行增强的[10],因此很难实现图像视觉效果保真。本方法将Retinex应用于眼底彩色图像处理,达到了预想的效果,为处理彩色医学图像提供了新的思路和方法。

4 结论

针对当前图像增强方法对于眼底图像存在颜色失真的问题,本研究根据眼底图像信息的特点,提出了一种改进的基于Retinex理论的眼底图像增强方法。根据实验结果的分析可以得出,本研究所提出的增强算法充分考虑了眼底图像的各重要细节信息,较大程度改善了眼底图像的对比度和亮度以及颜色信息,而且其性能优于当前眼底图像增强方法的性能,实验结果验证了本方法的有效性,在改善眼底图像的质量以及后续的眼底图像识别上具有重要的应用价值。

后续还有许多可扩展的工作,包括:

1)如何根据图像本身的信息自适应处理,得到更佳的增强效果。

2)Retinex算法在照射图像的估计时,采用的是高斯滤波器进行处理,今后还可考虑使用双边滤波等其他滤波方法,以适用于不同的场景,从而提高图像的增强效果。

猜你喜欢
彩色图像图像增强亮度
图像增强技术在超跨声叶栅纹影试验中的应用
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
水下视觉SLAM图像增强研究
基于FPGA的实时彩色图像边缘检测
虚拟内窥镜图像增强膝关节镜手术导航系统
亮度调色多面手
基于专家模糊技术的彩色图像对比度增强方法
基于图像增强的无人机侦察图像去雾方法
基于视觉注意的全参考彩色图像质量评价方法
亮度一样吗?