许 丽,陆桂明,邱贞光
华北水利水电大学 物理与电子学院,郑州 450046
水下视觉探测技术作为目前水资源开发和保护的主要手段之一,在许多水利工程和其他领域都有广泛应用,如水下坝堤隐患检测[1]、水下管道损坏检测[2]、水底地形重绘[3]、水体中污染物监测和测定[4]等。该技术较常用的水下声学探测可得到更多的颜色、纹理等细节信息,获得更高的探测精度和分辨率[5]。但水下成像与空气成像相比,水体及悬浮物颗粒等对光的散射作用使得图像的对比度降低;水体对光的选择性吸收使得水下图像出现偏蓝或者偏绿的颜色失真[6];另外人工光源的使用或发光生物的影响,常常出现图像亮度分布不均匀的现象[7]。因此,增强水下图像的质量已成为扩大水下视觉探测技术应用的关键。
水下图像增强算法主要有基于直方图均衡(histogram equalization,HE)的水下图像增强、基于暗通道的水下图像增强和基于Retinex的水下图像增强等。
(1)HE算法作为常用的图像增强算法,具有原理简单、易于实现和实时性好的特点。现有许多基于HE的改进算法用于水下图像增强。王永鑫等人采用Retinex理论将水下图像分解为细节层和光照层,采用迭代直方图均衡化算法对光照层图像进行对比度增强,利用S形状函数对细节层图像进行对比度拉伸[8]。黄冬梅等人针对RGB和HSV两种彩色模型图像,结合水下图像的分布特性和水下图像退化物理模型,提出了不同颜色模型下的自适应直方图拉伸方法[9]。由于HE算法属于非线性方法,容易引起彩色三分量比例变化,进而引起颜色失真。
(2)很多学者在暗通道先验去雾算法的基础上进行改进,以适用于水下降质图像的增强。谢昊伶等人通过估计背景光所需的水体光学参数(衰减系数和散射系数),利用散射系数与波长的关系分别计算红、绿、蓝三个通道的传输函数值,通过逆求解成像模型复原水下图像[10]。该方法一定程度上解决了自然光照条件下图像色偏、背景散射导致的模糊等问题。黄松等人通过提取图像中的水体,利用暗通道先验的原理,计算图像的背景光强度和三个通道的透射率,实现对水下图像的复原[11]。宋巍等人通过分析水下图像的背景光和直方图分布的关系,采用图像强度和背景光关联性的多个候选背景光加权融合方法,提高背景光估计的准确性[12]。由于存在水体对光的选择性吸收,使得基于暗通道先验算法估计的暗通道偏小和透射率偏大,产生复原结果偏暗的效果。
(3)基于颜色恒常原理的Retinex图像增强方法通过去除或减弱降质图像中照度分量的影响,求解反映物体本质颜色的反射分量,达到图像增强的效果,在水下降质图像增强中也有广泛的应用。Alex等人提出了改进的Retinex单尺度水下图像增强方法,将图像转换为YCbCr色彩空间,分别在Y和Cr通道利用Retinex算法进行图像增强[13]。Zhang等人提出Retinex扩展框架,利用双边滤波器和三边滤波器对水下图像的不同颜色通道进行处理,并在不同的约束条件下处理图像[14]。石磊等人提出了可控核函数的双边滤波Retinex算法的水下灰度图像增强方法,引入改进的Sigmoid函数用于估计图像的光照强度,采用增益函数对照度估计图像进行了校正,一定程度上解决了传统高斯函数存在的边缘模糊和光晕伪影问题[15]。这些改进方法能从细节对比度增强、颜色校正、去除背景等某一方面上提高水下降质图像增强效果,未能获得较好的综合图像增强效果。
针对水下成像环境存在选择性衰减、散射模糊、非均匀光照等降质因素,本文通过分析包含不同细节信息的水下图像对不同尺度Retinex算法的需求,提出了结合细节信息的自适应多尺度Retinex水下图像增强算法。结合图像细节信息自适应调整多尺度Retinex算子权重,有效地缓和了不同尺度卷积函数对水下图像颜色失真和对比度提升之间的矛盾,既可以增强水下图像的细节信息,也可以避免颜色失真。通过多组实验验证了该算法在去除水下图像的蓝绿背景、消除非均匀光照和图像细节增强等方面有较好的效果。
物理学家Land结合人眼视觉特性,首次提出了Retinex理论[16];在此基础上,Jobson等人提出了采用中心环绕法估计图像的入射分量[17],继而出现了多种单尺度(single scale Retinex,SSR)、多尺度Retinex(multi-scale Retinex,MSR)等多种算法[18-19]。各类Retinex算法首先被广泛应用于雾状模糊图像增强中,近年Alex、Zhang等人提出改进Retinex算法成功地应用于水下图像的增强中[13-14]。
Retinex理论认为物体的形状和颜色是由物体对光线的反射能力来决定的,物体的表面特征不受光照非均匀性的影响,具有一致性[16]。通过估计入射分量,从原始图像中分离出反射分量,进而得到物体的表面特性。视觉图像S(x,y)可由入射分量L(x,y)和物体反射分量R(x,y)组成,它们之间可由下式表示:
其中,L(x,y)为入射分量,受到光影环境因素的影响,决定图像S(x,y)的动态范围;R(x,y)为反射分量,反映物体本身的反射性质,物体吸收和反射光线的能力与物体表面的性质有关。
为了更好地分离入射分量和反射分量,对公式(1)进行对数表示:
其中,s(x,y)=lg(S(x,y)),r(x,y)=lg(R(x,y)),l(x,y)=lg(L(x,y))。由于入射分量无法直接获得,多采用一定的数学模型进行近似估计。中心环绕法是基于位置的入射光照估计方法,包括单尺度Retinex算法(SSR)、多尺度Retinex算法(MSR)、带颜色恢复的多尺度Retinex算法(MSRCR)等。
中心环绕原理假设环境光照分量变化缓慢,根据图像相关性,当前像素点的亮度可由其周围环绕像素的亮度来估计。利用中心环绕算子,抑制环境光照对图像的影响,高斯卷积函数作为常用的平滑算子被用于Retinex算法的平滑中[17]。从频谱角度上看,环境光照分量变化缓慢,主要分布在低频带;反射光变化迅速,其频谱主要分布在高频带。入射图像L(x,y)为退化图像S(x,y)与高斯函数F(x,y)卷积。根据公式(1)和(2),反射分量R(x,y)可以表示为:
其中,*表示卷积运算,F(x,y)表示高斯核函数,其表达式为:
c为高斯函数的标准差,λ为归一化因子,满足下式:
在SSB算法中,c值越小,参与计算的像素范围主要集中在局部区域,更能突出图像的细节信息,但图像的动态范围被压缩,颜色失真较严重。c值越大,参与计算的像素范围扩大,颜色保真效果越自然,但是图像局部细节不清晰,去模糊效果也随之下降,容易在强边缘位置出现光晕效果。
为了平衡局部对比度和色彩保真的图像增强效果,兼顾大、中、小多个尺度的优点,可选取多个尺度的Retinex算法来实现更好的图像增强效果。综合不同尺度Retinex算法的图像增强效果,选择不同尺度c值,对不同尺度Retinex算法结果进行加权平均。
其中,k=1,2,…,K表示波段号;处理灰度图像时,K=1;处理彩色图像时,K=3,分别对应R、G、B分量。R k(x,y)表示第k个波段中被增强的图像;S k(x,y)表示第k个波段的原始图像;N表示尺度的个数;wn是第n个尺度的权重,满足:
MSR算法一般选取小(c<20)、中(c=20~200)、大(c>200)三个尺度卷积核[19-20],选择同一组权重(一般取wn=1/3)进行图像增强。因此,对于多尺度Retinex算法来说,当尺度确定后,每个尺度的权重wn的选择直接影响了最终的图像增强效果。
在Retinex算法中,小尺度高斯核函数参与计算的像素范围侧重于局部细节,对图像细节增强效果好;大尺度高斯核函数参与计算的像素范围加大,对图像细节增强效果弱,颜色保真性好。为了验证卷积核尺度对图像增强的影响,本文通过四组实验分析大、中、小三尺度Retinex算法对包含不同细节信息水下图像的光照分量估计和图像增强情况。
图像梯度能较好地反映图像细节变化的速率,体现细节信息的清晰程度。本文采用梯度作为衡量细节信息大小的参数,梯度值越大,说明图像细节信息越丰富,细节增强的要求越高;梯度值越小,说明图像细节变化小,细节增强的要求越低。像素点(i,j)的梯度G(i,j)可表示为:
其中,max()为取最大值;gh为水平垂直梯度,gc为交叉梯度,分别体现图像像素点(i,j)在水平垂直和交叉方向的细节变化;Ω为梯度计算范围。
其中mean()为取平均值。
下面对平均梯度mg分别为54.71、34.45、18.63和9.61的四组图像,采用高斯核尺度c为10、150和270的单尺度Retinex算法进行光照分量估计和增强效果对比分析。
第一组富含细节信息图像的增强结果分析:如图1所示,针对平均梯度为54.71富含细节信息的图像(原图为图1(d)),比对图1(a)~(c)可得到,使用小尺度高斯核函数,光照估计中参与计算的范围较小,光照分量估计包括部分前景信息;随着滤波高斯核尺度c的增加,估计出的光照分量包括前景信息的部分变少,但所包括的蓝绿背景也变少。对比图像增强效果(图1(e)~(g)),在蓝绿背景光、非均匀光照去除效果上,小尺度图像增强效果较好;图1(e)中红线区域较原图(d)、(f)和(g)的对应区域,小尺度Retinex算法在细节增强上优于中尺度和大尺度Retinex算法的增强效果;但由于小尺度滤波所估计出的光照分量较大,图像增强效果过暗。
图1 富含细节信息图像(mg=54.71)的增强结果分析Fig.1 Analysis of image rich in details(mg=54.71)
第二组含一定细节信息图像的增强结果分析:如图2、3所示,对平均梯度为34.45和18.63两组图像进行分析。小尺度高斯滤波获得的光照分量估计较大(如图2(a)和图3(a)),图像增强效果过暗,影响到图像增强效果(如图2(e)和图3(e))。对于含一定细节信息的图像,采用小尺度Retinex算法无法获得较好的图像增强效果。对比分析图2(f)、(g)和图3(f)、(g)可以看出,当图像包含一定的细节信息时,采用中尺度或大尺度Retinex算法可以获得较好的图像效果,但细节信息增强略显不足。
图2 包含一定细节信息图像(mg=34.45)的增强结果分析Fig.2 Analysis of image containing certain details(mg=34.45)
图3 包含一定细节信息图像(mg=18.63)的增强结果分析Fig.3 Analysis of image containing certain details(mg=18.63)
第三组包含少量细节信息图像的增强结果分析:如图4所示,对平均梯度为9.61的水下模糊图像进行增强效果分析。小尺度高斯滤波获得的光照分量估计过大,进而引起增强图像图4(e)中出现了颜色失真现象(图中红线圈内)。对于包含少量细节信息的水下图像,中尺度和大尺度Retinex算法可以获得较好的图像增强效果。
图4 包含少量细节信息图像(mg=9.61)的增强结果分析Fig.4 Analysis of image with a few details(mg=9.61)
根据以上分析可知,针对富含细节的水下图像(图像梯度较大),采用小尺度Retinex算法可以在蓝绿背景光、非均匀光照去除和细节增强上获得较好的图像增强效果;随着细节信息的减少(图像梯度变小),选择较大尺寸Retinex算法可以获得更好的图像增强效果。
根据以上分析可知,小尺度高斯核函数参与计算的像素范围侧重于局部细节,对图像细节增强效果好,大尺度高斯核函数参与计算的像素范围加大,对图像细节增强效果弱,颜色保真性好。由于不同图像所包含的内部信息不同,或者同一幅图像不同区域的细节信息也不相同,对所有的图像采用相同的权重的Retinex算法进行图像增强,无法达到最佳的图像增强效果,存在颜色失真、图像边缘区域产生边缘模糊或伪影、细节丢失等现象。鉴于此,本文提出结合细节选择的自适应多尺度Retinex算法,根据图像细节变化情况,对每个尺度权重进行自适应调整,从而达到理想的水下图像增强效果。采用图像梯度作为衡量图像细节变化的重要参数,本算法借助像素点梯度大小,选择合适的尺度参数c及其权重值wn,突出不同尺寸Retinex算法对图像的增强效果。
根据公式(6),本文提出自适应多尺度Retinex算法增强后的对数图像r k可以表示为:
其中,n为分段取值个数;阈值向量为T n=[min t1t2…t n-2t n-1max];权重向量为W n=[wn1wn2wn3];在某颜色通道上大、中、小3个尺度的对数增强图像分别表示为r k大、r k中和r k小,分别表示为:
小、中、大尺度高斯核函数标准差取值分别为c<20、c=20~200和c>200。借助图像各点梯度参数的不同,选择对应的权重向量,得到自适应多尺度增强图像。如图5所示。
图5 基于细节选择的自适应多尺度Retinex算法流程Fig.5 Flow of MSR algorithm based on detail selected
基于细节选择的自适应多尺度Retinex算法流程为:
(1)读入图像分量S k(k=1时,S1为灰度图;k=3时,S k为彩色图像,分别为红、绿、蓝三分量);
(2)计算图像分量中各像素在区域Ω内的梯度G(i,j),构成梯度图G;
(3)对图像分量S k分别进行小尺度、中尺度和大尺度高斯函数滤波,得到三尺度图像滤波图R小、R中和R大;
(4)对图像S k、R小、R中和R大进行log[]运算,得到对数图像s k、r小、r中和r大;
(5)根据梯度信息,自适应选择权重W n,计算出自适应多尺度对数图像r k;
(6)对对数图像r k进行指数运算和归一化处理,得到恢复后图像R k;
(7)输出灰度图或彩色图R。
根据公式(11)可知,本文算法关键参数包括阈值向量T n、权重向量W n、梯度计算范围Ω。经过大量实验分析,本文算法选择小、中、大尺度高斯核函数标准差c取值分别为20、150和270,梯度计算范围Ω为7×7的邻域,七个阈值的阈值向量T7=[199 171 143 115 87 59 31],七个阈值区间为[171 199)、[143 171)、[115 143)、[87 115)、[59 87)、[31 59)和[0 31)。权重向量选取为W1=[1 0 0]、W2=[1/2 1/2 0]、W3=[0 1 0]、W4=[0 1/2 1/2]、W5=[1/3 1/3 1/3]、W6=[0 1/2 1/2]和W7=[0 0 1]。
为了验证AMSR算法在水下图像增强的效果,本文在Intel i7-8650 1.9 GHz CPU和16 GB DDR硬件环境,Windows 10操作系统和Matlab 2012b软件平台下进行仿真实验。对几组典型水下模糊图像采用本文算法与单尺度Retinex算法(SSR)、多尺度Retinex算法(MSR)、颜色保真Retinex算法(MSRCR)的处理结果进行对比分析,从主观上和客观上对水下图像恢复效果进行评价。
从去除图像蓝绿背景、雾状模糊和非均匀光照影响,以及抑制颜色失真四个方面进行主观和客观实验验证分析,其中客观评价采用图像均值、图像方差、信噪比、平均梯度四参数进行。
3.2.1 去除图像蓝绿背景
由于水下环境对可见光存在着选择性吸收,其中红光衰减最大,引起水下图像出现蓝绿偏色。这里使用四组图像对MSR、MSRCR和本文算法在去除蓝绿背景方面进行比对分析。MSR算法可有效地去除蓝绿背景,但在边缘区域或纹理变化较大的区域可能出现强曝光效果,或红色偏重的颜色失真。如图6(b1)所示,图中鱼群区域出现了强曝光效果,并且整幅图像有红色过重的颜色失真。图6(b2)和(b3)中石头区域也出现了强曝光现象。图6(b4)中人体和鱼的边缘处出现了红色偏重的颜色失真。MSRCR算法增加了色彩保真算子,水下图像增强的颜色比例分布更接近于原图,但对蓝绿背景的去除有限。如图6(c1)、(c2)、(c3)和(c4)显示MSRCR算法无法有效地消除水下图像的蓝绿背景。本文所提出AMSR算法根据图像所包含的细节大小,选择合适的尺度算子,减小因尺度过大引起的蓝绿背景去除不足的现象,避免因尺度过小引起的颜色失真和二次曝光的情况。图6(d1)、(d2)、(d3)、(d4)实验结果验证了AMSR算法较好地去除了蓝绿背景,又抑制了红色过重的颜色失真,避免了强曝光的不良影响。在定量实验中,对4组图像从均值、方差、信噪比和平均梯度四个参数进行分析,如表1。由于Retinex算法去除或抑制了背景光照分量,各类Retinex算法增强后图像的均值均低于原图均值,但在方差、信噪比和平均梯度参数中,增强后图像多优于原图。MSR算法增强后图像可能产生颜色失真或二次曝光效果,容易引入更多灰度值突变和噪声,因而MSR增强后图像在方差和平均梯度上数值最大。但在信噪比参数比对中,本文算法增强后图像最优。
图6 不同Retinex算法图像增强效果对比(一)Fig.6 Comparisons of enhanced images used different Retinex algorithms
表1 不同Retinex算法图像增强参数对比(一)Table 1 Comparisons of some parameters in enhanced images used different Retinex algorithms
3.2.2 去除雾状模糊,增强图像细节
水下介质的散射引起图像雾状模糊,雾状模糊多具有变化缓慢的低频性质。Retinex算法是在变化平缓的假设条件下进行的,适用于对低频模糊信息的去除,但易引入大量噪声和颜色失真。由于水下图像多偏蓝绿色,红色分量较小,MSR算法对各个不同尺度高斯算子的处理结果采用相同的权重,带来红色分量背景的消除较小,易引起增强图像出现红色偏重的颜色失真和大量噪声(图7(b1)、(b2)、(b3)和(b4)),如表2数据所示MSR算法增强后图像的方差和平均梯度上数值最大。MSRCR算法在颜色保真算子的调节下,在去除雾状模糊和增强图像细节的同时,有时会出现颜色过暗的情况(图7(c2)),表2中图7(a2)的MSRCR算法增强后图像的均值较原图减小了50%。本文算法结合图像细节信息的大小,自适应调整多尺度权重,既可保证水下图像的细节增强,又抑制了红色偏重的颜色失真。从图7(d1)、(d2)和(d3)黄线圈注区域中可看到本文算法较好地恢复了潜水员、鱼群和石头等细节信息,去除了水下图像中的雾状模糊,整体图像并未出现颜色失真等情况。如表2所示,本文算法增强图像在均值、方差和平均梯度参数中,数值适中;在信噪比参数比对中,本文算法增强后图像最优。
图7 不同Retinex算法图像增强效果对比(二)Fig.7 Comparisons of enhanced images used different Retinex algorithms
表2 不同Retinex算法图像增强参数对比(二)Table 2 Comparisons of some parameters in enhanced images used different Retinex algorithms
3.2.3 去除水下非均匀光照
由于水下背景光照弱,在图像获取时多采用投射光源等方式,或水下发光生物等的影响,水下图像常出现非均匀光照的情况。基于中心/环绕高斯滤波的Retinex方法采用不同尺度的高斯函数,可以获得不同的反射分量估计值。本文算法根据不同的细节信息,选择适当的高斯滤波函数,更好地去除非均匀光照。在第一组实验中,如图8(a1)所示,浅水区图像中背景光照的不同和水泡区域反射的影响,引起图像在水底区有光照过强和人体部分出现高亮区域。对比MSR、MSRCR和本文算法的图像增强效果,图8(b1)中MSR算法的增强图像对非均匀背景光照去除效果不佳,在人体区域出现了颜色失真,图像右上角暗区域有噪声加剧的情况;图8(c1)中MSRCR算法的增强图像加剧了图像非均匀光照情况,高亮的区域细节有所增强,但暗区域更暗;图8(d1)中本文算法的增强图像较好地去除了水底和水泡区域非均匀光照的效果。第二组实验显示,如图8(b2)、(c2)和(d2)所示,MSR算法引起了严重的颜色失真情况,MSRCR算法未能有效地去除非均匀光照,出现了右上方高亮区域更亮,左下方暗区域更暗的情况;本文算法更好地消除了原图(a)中右上角的强光照,较好地调亮了暗区域的细节,恢复出光缆自身的颜色。在第三组实验中,图8(a3)的正上方有强光照区域;图8(b3)中MSR算法消除了部分强光,但也出现了其他区域的二次曝光效果和增加噪声的现象;图8(c3)中MSRCR算法较好地保持了原图的颜色,但未有效去除非均匀光照的影响;图8(d3)显示本文算法较好地去除了水下图像的非均匀光照,未引入二次曝光和增大噪声的情况。在定量实验中,对4组存在非均匀光照的图像从均值、方差、信噪比和平均梯度四个参数进行分析。如表3所示,由于MSR算法在去除非均匀光照方面容易引起颜色偏红的失真和引入噪声,在方差和平均梯度参数上数值较大。MSRCR算法在去除非均匀光照方面易出现高亮区域更亮、暗区域更暗的现象,在增强后图像的均值参数上出现过大或过小的情况。本文算法的增强后图像在各参数定量比对中,在信噪比参数比对中性能最优。
图8 不同Retinex算法图像增强效果对比(三)Fig.8 Comparisons of enhanced images used different Retinex algorithms
表3 不同Retinex算法图像增强参数对比(三)Table 3 Comparisons of some parameters in enhanced images used different Retinex algorithms
3.2.4 抑制颜色失真
由于水对可见光的选择性衰减,水下图像的红色分量较小,采用相同尺度的高斯滤波估计图像的照射分量,会引起估算的照射分量过小。采用MSR算法增强图像出现了红色过重的颜色失真现象(图9(b1)~(b5))。如图9(c1)~(c5)所示,MSRCR算法较好地保持了原图的颜色,对蓝绿背景去除效果不佳,易出现亮的区域更亮、暗的区域更暗的情况。如图9(d1)~(d5)所示,本文提出的改进算法在增强图像细节信息的同时,较好地消除了多尺度算法的颜色失真。如表4所示,各类Retinex算法增强的图像均值多低于原图均值,但在方差、信噪比和平均梯度参数中,增强后图像多优于原图。在信噪比参数比对中,本文提出的改进算法增强后图像最优。
表4 不同Retinex算法图像增强参数对比(四)Table 4 Comparisons of some parameters in enhanced images used different Retinex algorithms
图9 不同Retinex算法图像增强效果对比(四)Fig.9 Comparisons of image enhancement used different Retinex algorithms
通过以上四组定性和定量实验证明,与经典的MSR和MSRCR算法比较,本文所提出的基于细节选择的自适应多尺寸Retinex算法在去除水下图像的蓝绿背景、消除水下雾状模糊、增强细节信息、去除水下非均匀光照、抑制颜色失真等方面图像增强效果较好,更适用于水下图像的增强。
针对多尺度Retinex算法存在的缺陷,以适应水下图像存在蓝绿背景、雾状模糊、非均匀光照等特点,本文提出了结合细节信息的自适应多尺度Retinex算法。首先分析包含不同细节信息的水下图像对不同尺度的滤波器尺度的需求,根据各像素的梯度值大小,实现Retinex算法中不同尺度权重的自适应调节。四组主观和客观实验验证本文算法在去除水下图像的蓝绿背景、消除水下雾状模糊、增强细节信息、去除水下非均匀光照、抑制颜色失真等方面具有较好的效果,为扩大视觉系统在各种水下环境的应用提供了技术支撑。