基于散射模型的水下浑浊图像增强方法
2021-09-08张伟高赛博李子轩宫鹏伍文华哈尔滨工程大学水下机器人技术重点实验室黑龙江哈尔滨150001
张伟, 高赛博, 李子轩, 宫鹏, 伍文华 (哈尔滨工程大学 水下机器人技术重点实验室,黑龙江 哈尔滨 150001)
近年来,水下无人航行器技术发展迅速,应用于海底环境监测、海底地形探测、水下管道检查等领域,这些海洋探索依赖于先进的水下探测技术,其中水下图像处理是其中重要的一部分,但水下的浮游生物、可见颗粒物等物质会对太阳光有吸收和散射作用[1],针对不同波长的太阳光水的吸收程度不同,其中水对红色光的吸收作用最强,水下图像多呈蓝绿色调,与陆地上的图像相比水下图像会存在颜色畸变、对比度低、噪声大等问题,因此水下图像增强对于水下图像的信息恢复、质量提升有重要意义[2]。水下图像增强技术分为基于物理模型的方法和基于非物理模型的方法2种[3],基于非物理模型的方法不考虑水下图像退化的物理过程,经典方法是基于Retinex的增强方法[4],融合对比度和颜色校正的方法[5],这类方法通常是直接改变像素值,容易发生过度校正和过饱和。基于物理模型的方法对水下成像过程建模,文献[6]利用水下图像的散射模型对水下图像增强,因其需要对背景光预先标定而不适用于背景光变化的水下场景。He等[7]提出的针对空气中有雾图像的暗通道去雾方法(dark channel prior,DCP)可应用于水下图像,但由于水下光的散射和吸收传统暗通道方法作用不明显。谢昊伶等[8]利用波长和散射系数的关系分别估计了三通道的透射率,通过导向滤波细化透射率,但该方法需获得相机的拍摄深度,限制了其实际应用。汤忠强等[9]改进了DCP方法,通过亮暗通道的视差估计背景光和透射率。以上均是基于物理模型的方法,在先验信息的基础上估计模型参数,反向计算出未退化的水下图像。在图像去雾中,He等[7]提出了暗通道先验构建透射率的方法;Park等[10]提出利用熵信息和保真率结合的方式构建雾天透射率;Zhu等[11]提出利用亮度和饱和度之差构建透射率。
借鉴雾天图像增强的分析方法,本文对水下浑浊图像直接进行分析。考虑物理模型法增强图像会获得更好的效果,同时减少模型参数估计带来的复杂程度,本文对水下浑浊图像直接进行分析。考虑物理模型法增强图像会获得更好的效果,同时减少模型参数估计带来的复杂程度,本文提出的水下图像增强方法仅通过单幅图像,不需要模型先验参数就能实现水下浑浊图像的自适应增强,以恢复水下图像损失的细节,实现水下浑浊图像清晰化。
1 水下视觉成像模型建立
水下图像受光照不足、亮度不均、水体的散射和吸收、悬浮颗粒物等因素的影响损失了很多信息,针对水下的特殊环境,Jaffe-McGlamery定义的水下光传播经典模型[12],到达相机的光是前向散射、后向散射和直接光三部分的线性叠加,前向散射是水下物体的反射光又经散射的光,后向散射是环境光被水中的颗粒、生物等散射后进入相机的光,直接光是相机直接接受到的光。在距离较短时可以忽略前向散射,用直接光和后向散射近似描述到达相机的总光:
An(x,λ)=A∞(λ)(1-e-α(λ)x)
(1)
式中:x为光传播距离;A∞(λ)为背景光;λ为波长;α(λ)为由于吸收和散射的总的衰减系数。场景直接光散射Ad(x,λ)可以表示为:
Ad(x,λ)=J0(λ)e-α(λ)x
(2)
式中:x表示传播的距离;λ表示波长;为由于吸收和散射的总的衰减系数;J0(λ)是未被水下环境衰减的光,就是需要被恢复的清晰图像。水下摄像机成像模型为:
I=Ad(x,λ)+An(x,λ)=J0(λ)e-α(λ)x+
A∞(λ)(1-e-α(λ)x)
(3)
近距离下,认为水对光的吸收和散射作用相同,将α视为常数,忽略波长的影响,水下成像模型为:
I=J0e-αx+A∞(1-e-αx)=J0t(x)+A∞(1-t(x))
(4)
式中t(x)为透射率。将等式两边对距离x求导,可得:
(5)
当背景光大于自然光,光强随距离增加而减小且衰减速度越来越慢,当背景光小于自然光,光强随距离增加而增加且增加速度越来越慢,符合人眼观察到的水下图像景深越深场景越模糊大的特点。
2 图像增强算法设计
依据式(4),进行移项可得水下图像复原公式:
(6)
式中:A∞为背景光;t(x)为透射率。式(6)可以得到增强后的水下场景清晰图像。随着相机离物体距离的增加,观察到的信息越少,图像越模糊,通过一些评价指标如熵、平均梯度、逼真度等可以量化水下图像的信息。
2.1 背景光估计
文献[7-9]将传统的暗通道先验去雾方法改进后估计水下图像背景光用于水下图像复原,但暗通道先验去雾方法是基于一种统计规律,水下图像的统计规律和空气中图像有差异。本文针对水下图像的特性对背景光的大小进行分析,利用水下图像的局部区域熵信息估计背景光。
通过式(5)和前文的分析,水下物体模糊的一部分原因为景深的增加,景深增加带来了更严重的吸收、散射、颜色畸变等问题,背景光的区域景深最大因而信息也最少,视觉上看起来是最模糊的,用熵来衡量水下图像的信息,局部区域信息熵越大证明信息越多。后向散射带来的水下图像的模糊主要是因为距离远的物体在光的传播过程中造成了熵大的衰减,用熵描述景深为:
(7)
式中P(i)某个灰度在该图像中出现的概率,可由灰度直方图计算。
对图2的背景光进行估计,在计算信息熵前先将图像分成互不重叠的小块,局部区域块的大小会影响最后的估计结果。本文选取4组不同的局部区域块尺寸(5×5,20×20,35×35,50×50),按区域块统计熵,不同尺寸区域块的熵统计图如图3所示。
图2 水下原始图像Fig.2 Underwater original image
图3 不同尺寸熵统计结果Fig.3 Entropy statistical results of different block sizes
根据图3的熵统计结果可知,水下图像不同区域块信息熵的大小随景深而变化,熵和光在水下的吸收和散射程度密切相关。观察4种分块尺寸的熵值图,分块大小为50×50的熵值图较模糊,由于分块过大已经不能完整地描述景深,局部区块大小为5×5的熵统计图因为区块选取过小又弱化了水下散射和熵值的相关性,使相同景深下物体的不同细节熵值有较大差异(例如潜水员衣服上的细节),故局部区域块尺寸为20×20,35×35能较好地描述景深,综合对景深的细化处理和算法的快速性,本文选取的局部区域块大小为35×35。
利用局部区域块大小为35×35的熵值图估计背景光,参照熵对水下信息的表述能力,熵值越大代表图像的信息越多,景深越小,而背景光区域出现在景深较大处,相对于整幅图像熵值最低,因此选取熵值较低的20%的区域作为估计背景光的候选区域,在候选区域中选择出现频率最高的灰度作为水下图像的背景光,这样就能在候选区域中降低误判的可能性,提高背景光估计的准确性。
具有较低强度的前20%的熵统计图如图4所示,原图中此区域为水体背景,由此可以看出本方法估计背景光较为合理,背景光候选区域的灰度直方图如图5所示,选取出现频率最高的灰度值作为背景光,数值为122。
图4 具有较低强度的前20%熵的统计量Fig.4 Statistics of the first 20% entropy with higher intensity
图5 具有较低强度的前20%熵的直方图统计Fig.5 Histogram statistics of the first 20% entropy with higher intensity
2.2 透射率估计
假设水下图像局部区域透射率连续不变且水下图像的真实场景与透射率无关,为准确估计水下图像的局部透射率,本文根据图像的平均梯度和图像的逼真度提出了一个代价函数。图像的局部区域清晰度可以用梯度衡量,具有最大平均梯度的局部区域对应局部最佳透射率,衡量图像的平均梯度的代价函数为:
(8)
由式(6)复原后的清晰图像可能会出现失真的像素,即像素值大于255或小于0,在计算平均梯度之前通过阈值处理先去除掉一些失真像素,当像素大于255时上界取255,当像素小于0时取下界0。逼真度为:
(9)
(10)
式中:δ(p)表示在透射率为r时当前区域块内没有失真的像素占总像素的比例。δ(p)越小图像的逼真度越低,δ(p)越大失真像素比例越小,图像的逼真度越高,图像增强的效果越好。因此需最大化代价函数以获得好的图像增强效果。综合水下图像清晰度和逼真度两方面,计算透射率的代价函数为:
ffinal(r)=fgradient(r)·ffidelity(r)
(11)
计算该代价函数的最大值可计算出最佳透射率,透射率为:
r=argmax(ffinal(r))
(12)
如图6所示,图中显示了ffidelity(r)、fgradient(r)和ffinal(r)的结果,最佳透射率为最大化ffinal(r)所对应的结果,透射率为0.48。
图6 最优透射率计算函数Fig.6 The graph of the function for calculating the optimal transmission
2.3 细化透射率
通过计算可以得到局部区域的透射率,由于透射率是分块计算的,所以在区块的连接处透射率图不够连续,恢复出的水下图像在块的连接处也会出现块效应,因此需要减弱透射图区块边缘的影响,利用改进的最改进加权最小二乘的保边滤波算法细化透射图。未改进的最小二乘保边滤波算法为[12]:
(13)
(14)
式中:wx(g)为原图像经高斯滤波后x方向梯度值;wy(g)为原图像经高斯滤波后y方向梯度值。改进后的最小二乘保边滤波算法可通过增大λ平滑透射图的区块边缘,同时也能起到增强原图边缘细节的作用,但λ过大也会削弱不同局部块之间透射率的差异,需在合理范围内。
改进后的最小二乘保边滤波算法细化前后的透射图如图7所示,从图中可以看出未处理前的透射图局部区块连接处不够平滑,细化后的透射图局部区块间平滑过渡,物体的边界也被增强。
图7 细化前后的透射图像Fig.7 Transmission image before and after refining
2.4 图像复原自适应调节
通过2.3节方法计算出背景光和透射率可以用于图像增强,但在进行透射率计算时设计的代价函数权衡了图像细节和图像失真,仍然存在一些失真的像素,为解决此问题设计自适应调节因子μ,经式(6)计算出增强后的图像为J0,统计增强图像中相对于原始图像像素的失真比μ,设计新的图像复原为:
(15)
式中:A∞为背景光;t(x)为透射率;μ是原始像素失真比。
该自适应调节方法可以减少图像复原后部分像素的失真情况。算法总体流程如图8。
图8 算法整体流程Fig.8 Algorithm overall flow chart
3 图像增强算法实验结果
为了验证本文所提算法的有效性,本为选取水下灰度图像作为测试图像,按照本文方法进行图像增强,计算客观评价指标验证所提算法的有效性,并与传统暗通道先验去雾算法和文献[6]所提方法进行比较。
3.1 客观评价指标
图像的客观评价方法主要有2种,一种是全参考,一种是无参考,本文采用全参考评价,可视化边角比率[13]。可视化边角比率是增强图像中恢复的可见边与原始图像中可见边的比率,对于水下的图像,由于光的吸收和散射效应等问题而丢失了一些可见边,采用这个度量可以衡量给定图像增强方法所带来的可见边数量以及图像细节的改变,仅仅计算增强图像的可见边并不能反映算法的有效性,系数e为:
(16)
式中:nr是增强图像Ir中可见边的数目;n0是原始图像I0中可见边的数目,图像中的边可以定义为找到一组连接像素的2个相邻区域之间的边界,如果e>1则图像的可视边缘增加,这里使用的边缘检测算法是Sobel边缘检测器。e的值可以评估该方法恢复在I0中不可见但在Ir中不可见的边的能力。
对于非周期目标,其可见度与发光对比度相关,其定义为:
(17)
式中:ΔL是目标和背景的亮度差;Lt是目标亮度;Lb是背景的亮度。当目标和背景之间的亮度差是阈值亮度差ΔLthreshold时,目标以高概率被感知,目标的可见性水平可通过以下比率量化:
(18)
式中:Cactual为实际对比度;Cthreshold为阈值处的对比度。
在阈值处,目标的可见性水平为:
(19)
对于复杂图像计算ΔLthreshold并不简单,有必要检测和分割多个目标对象,这对于复杂对象的图像是十分困难的。为了评估图像增强算法的性能不需要分割图像,对于可见边缘的每个像素,计算恢复图像和原始图像梯度的比率:
(20)
式中:ΔIr是恢复图像中的梯度;ΔI0是原始图像中的梯度。
图9 不同方法恢复的可见边Fig.9 Corresponding visible edge maps of the recovered images
(21)
结构相似性理论从高层次上模拟人眼视觉系统的整体功能,因此对结构信息的度量可以作为图像感知质量的近似,文献[14]提出了结构相似度指数SSIM,但传统的SSIM指数存在一些缺点,本文采用改进的SSIM算法,计算基于结构信息提取的SIExt指数作为图像增强的评价指标。
3.2 实验效果比较
表1 不同场景下的参数结果Table 1 Coefficient e, compared on four images
图10 不同算法的图像增强效果Fig.10 Image enhancement with different algorithms
在场景2中,DCP方法的暗背景几乎隐藏了后方的对象,地面上的细小物体周围均存在光晕,对于目标过多的图像DCP方法明显会带来较多光晕,本文所提方法并不存在此问题。在场景3中DCP方法左上角的对象十分模糊,本文所提方法很好地复原了原始图像中的该部分。场景4中虽然目标轮廓的光晕不明显,但是位于中间和右侧的对象几乎看不到任何细节,从e参数也可以看出场景4的可见边数目相比原图没有增加反而减少,虽然对比度相差不大,但是由于可见边的丢失使得视觉效果远不如本文所提方法。
该方法能够评估基于视觉描述的图像增强算法的性能,但是并不能评价图像增强算法的保真度,只测量对象的可见性。相应地,计算基于结构信息提取的图像质量评价,在频域不同频率的成分对图像信息起到了不同的作用,局部区域的基本灰度等级主要由低频成分决定,中频部分影响着图像的结构,高频部分构成图像的一些边缘细节。并且同一频率成分,能量越大,重要程度越大,视觉注意力也就越大,基于以上分析,本文将结构信息解释为图像中能量足够大的中高频成分。SIExt各部分参数设置如下:wl=0.1,ws=0.8,wn=0.1,表2给出了SIExt评价结果。
表2 不同场景SIExt结果Table 2 The SIExt compared on four images
从实验结果获得的数据可以看到本文所提方法的结构相似性优于DCP方法,在场景2中,DCP方法的结构相似性优于本文方法。中频成分是人眼所能感知的主要成分,是图像中最重要的频率成分,故结构信息系数设置为最大,根据文献[8]的结论,SIExt在各分量取不同权重时变化并不敏感,故基于结构信息提取的图像质量评价准则更好地验证了前文的结论。
本文对文献[6]中的图像进行处理,计算标定后的背景光和透射率,将本文方法与文献[6]方法、暗通道先验去雾算法[9](DCP)比较,实验结果如表3和图11所示。
图1 水下光散射模型Fig.1 Underwater light scattering model
表3 不同方法的参数比较Table 3 Coefficient e, compared on different algorithms
图11 不同算法的图像增强效果Fig.11 Image enhancement with different algorithms
4 结论
1) 本文所提出的算法合理地估计了水下图像的背景光和透射率,通过实验对比分析,有良好的效果,恢复图像丢失的可见边,提升了水下图像对比度。
2) 解决了水下浑浊图像失真的问题,恢复了场景信息。算法有更广泛的适用性,针对陆地上的雾天图像可考虑应用本文算法去雾。在未来的研究中,可对散射模型研究和改进。
3) 本文算法建立在忽略前向散射的模型基础上,若能较准确地建立前向散射模型,可以更好地解决光照不均匀的问题,增强算法的普适性。