李 莉,王新强,银 珊
(桂林电子科技大学电子工程与自动化学院,广西桂林 541004)
受复杂水下物理环境的影响,水下图像经常存在颜色失真、低对比度、细节模糊等问题[1-3]。低质量的水下图像对探知水下场景带来了极大挑战,因此,研究有效的水下图像清晰化算法具有重要意义。
目前,水下图像清晰化技术主要分为图像复原和图像增强[4]两种。其中,复原算法考虑水下成像机理,估计退化模型的参数以反演清晰图像[5]。近期,暗通道启发的算法逐渐应用到水下图像去雾方面,但该算法没有充分考虑红通道的衰减,造成估计的透射率较大,复原图像较暗。文献[6]采用随机森林回归算法提高透射率估计的准确率,但该算法的运算复杂度较高。文献[7-8]提出的算法进一步提高了投射率的估计准确率,但增强的图像中引入了红色伪影。
图像增强算法通过调整图像的像素值以增强图像的颜色和对比度。文献[9]提出了基于Retinex 的水下图像增强算法,该算法提高了图像的可视性,但易引入微红色。文献[10]利用Retinex 分解图像的反射分量和入射分量,然后对它们采用不同的增强算法,并通过加权融合获得增强的图像,但该算法放大了噪声。文献[11]受Retinex 的启发,采用模型分段和线性分段增强反射分量,通过空间平滑和线性平滑改善入射分量,但该算法求解复杂。文献[12-13]提出了自适应双直方图算法,但没有充分考虑水下图像的衰减,从而导致增强的图像出现过增强或欠增强。文献[14]提出了颜色平衡和融合的水下图像增强算法,但该算法对于衰减通道的选择考虑不足。增强算法简单且高效,在对比度增强方面表现出较好的性能,但需要充分考虑水下图像的衰减问题。最近,基于深度学习的算法逐渐应用到水下图像增强方面[15-18]。然而,高质量的训练数据和有效的网络结构制约了深度学习算法的发展。
本文提出无需先验知识假设且不必数据驱动的ACHS 算法,用以增强水下图像的对比度和颜色。根据颜色通道的衰减特性计算衰减矩阵,对衰减严重的通道进行校正。同时,通过引导滤波分离LAB 颜色模型中L通道的基础层和细节层,利用基于K-means聚类的双直方图增强基础层的对比度,采用Gamma 校正突显细节层的纹理结构。在此基础上,将L通道的基础层和细节层进行累加并转换到RGB 颜色模型,从而得到最终的增强图像。
ACHS 算法流程如图1 所示(彩色效果见《计算机工程》官网HTML 版),算法步骤如下:1)将输入图像分解为红、绿、蓝通道;2)采用基于衰减补偿的颜色校正算法以去除水下图像的颜色失真;3)在LAB 颜色模型,通过引导滤波将亮度通道L通道分解为基础层和细节层,同时采用不同的增强策略分别实施增强操作;4)累加基础层和细节层以获得增强的L通道,并转换到RGB颜色模型以获取最终的增强图像。
图1 基于衰减补偿和直方图拉伸的水下图像增强算法流程Fig.1 Procedure of underwater image enhancement algorithm based on attenuation compensation and dual histogram
颜色失真是水下图像面临的挑战性问题。传统的拉伸算法并没有充分考虑水下图像的衰减,当直接被应用到水下图像的颜色校正时,易引入红色失真[12]。此外,在浑浊或深水域获得的水下图像各个通道之间的衰减程度差异较大。因此,本文需要考虑不同颜色通道之间的衰减差异,针对不同颜色通道采用不同的校正算法。首先,利用式(1)计算各个通道的总像素值:
其中:M和N表示图像行和列。然后,根据每个通道的总像素值对这3 个颜色通道从大到小排序为Imax、Imid、Imin。Imax表示最大颜色通道,也被称为衰减最弱的通道;Imid表示中间颜色通道,也被称为衰减较弱的通道;Imin表示最小颜色通道,也被称为衰减最强的通道。对于Imax颜色通道直接采用传输的拉伸算法,表达式如下:
其中:Ihigh和Ilow表示最大颜通道的最大值和最小值;Icmax表示校正的结果,对于中间颜色通道,它相对于最大的颜色通道Imax也有一些衰减。因此,考虑在它们之间的构建衰减矩阵[Imax(i,j)-Imid(i,j)],并将其补偿给中间颜色通道。数学上,中间颜色通道的校正公式如下:
最小颜色通道相对于最大颜色通道Imax衰减最为严重。因此,需要在它们之间构建衰减矩阵[Imax(i,j) -Imin(i,j)],并将其补偿给最小颜色通道。数学上,最小颜色通道的校正公式如下:
图2 展示了蓝色、绿色、黄色、模糊4 类退化的水下图像(彩色效果见《计算机工程》官网HTML 版),从中能够清楚看到本文颜色校正算法对于这4 种退化的水下图像都具有明显效果,特别适用于水下图像的颜色失真校正。
图2 颜色校正Fig.2 Color correction
如图2 所示,虽然本文的颜色校正算法可以有效移除颜色失真,但这些结果的对比度和细节纹理还需要进一步增强。在不改变颜色的前提下,有效提高水下图像的可视度是本节的研究重点。本节考虑到LAB 颜色空间中亮度通道L和颜色通道A、B是相互独立的。因此,通过增强L通道进一步提高输出图像的对比度。此外,为了进一步突显增强图像的纹理细节,本节采用引导滤波分解出L通道的基础层和细节层,然后,采用不同的增强策略进行增强。将颜色校正的图像从RGB 颜色模型转换到LAB 颜色模型,然后对其进行分层处理:
其中,亮度通道L即可作为引导图像也可以作为被滤波的图像,guided_filter()表示引导滤波的简化函数,且r和ε分别被设定为16 和0.01,这些参数的选择参考文献[19]。细节层是从输入图像中减去基础层如下:
1.3.1 基于K-means 的双直方图增强基础层
多数水下图像前景亮度高于背景亮度,由于前景距离成像系统较近且照明相对较充足,因此本节考虑将L通道分解前景和背景两个子图像,在这里本文的L通道指的是基础层。其中,前景子图像对应的是图像直方图中的高像素,背景子图像对应的是图像直方图中的低像素。K-means 作为无监督的聚类算法广泛引用到图像分割、聚类等领域。本节采用K-means 聚类的思想将L通道分解为前景和背景两个子图像。首先根据距离关系定义初始化聚类的中心:
其中:Cx为第x个类别的最初聚类中心;LBase,max和LBase,min表示基础层的最大和最小像素值,且x=1,2,…,X。然后,分配各个像素点到最近似的聚类集合中,表达式如下:
其中:Dx,y为第y个像素值到第x个像素值所在聚类中心之间的距离,y=1,2,…,Y,Y是像素点的总数目。当完成一次聚类以后,需要通过式(9)再次更新聚类中心:
其中:Yy表示式(8)被分配到x类别中的像素总数。如果聚类中心的位置发生变化,则重复执行式(8),直到整个聚类过程结束。最终将第x类和x-1 类的聚类中心的平均值作为双直方图的分解值,表达式如下:
将T作为L通道中分离前景和背景最佳阈值,然后利用阈值T将L通道分解为前景和背景子图像,其中小于阈值的区域定义为背景子图像,大于阈值的区域定义为前景子图像,最后采用式(11)分别对前景和背景子图像进行拉伸:
其中:CDF(LBase(i,j))表示对于任意一个输入像素LBase(i,j)的累加概率;LBase,Background和LBase,Foreground分别表示校正后的前景和背景子图像。最终,L通道的基础层被校正为=LBase,Background+LBase,Foreground。
1.3.2 Gamma 校正增强细节层
L通道的细节层包含大量的纹理信息,如图1 所示纹理信息较暗,因此如何有效提高纹理信息的亮度是突显细节的关键。Gamma 校正作为一种有效的非线性变换算法,可用于调整细节层的动态范围以突显纹理结构。基于Gamma 校正的原理,细节层的校正公式如下:
其中:LDetail表示L通道细节层;表示Gamma 校正的细节层。在Gamma 校正中,当γ<1 时,低灰度区域的动态范围增加,高灰度区域的动态范围减小;当γ>1 时,低灰度区域的动态范围减小,高灰度区域的动态范围增加。在细节层中纹理信息相对于图像中的其它区域显然是高灰度区域,为了进一步增大高灰度区域的动态范围,因此在本文Gamma 校正中γ>1。实验结果表明,当γ=1.8 时,细节层的纹理信息能够被较好地突显。最终,利用累加获取增强的L通道,同时将图像从LAB 颜色模型转换到RGB 颜色模型以获得最终的增强图像。
为了验证ACHS 算法的有效性,本文从UIEB[16]数据集中选出蓝色、绿色、黄色、模糊4 类具有代表性的水下图像进行主观评估分析。UIEB 包括890 张不同退化程度的水下图像。同时,从3 类经典算法选择7 个代表性的算法进行对比实验。复原算法:HMU[6],GDCP[7];增强算法:REBE[9],BARU[11],CBAF[14];深度学习算法:WaterNet[16],UIEC^2-Net[18]。实验平 台设置为:CPU八核3.6 GHz、内存32 GB;软件为Matlab R2015b,Windows 10 操作系统。
在UIEB 数据集上,引导滤波中的参数选择评估结果如表1 所示,其中加粗数据表示最优数据。从中可知,当引入滤波中的局部窗口半径和正则化参数被设定为16 和0.01 时,定量评估指标PCQI、UCIQE 和CCF 能够获得最高和近似最高的值。因此,在本文分层设计中,r和ε被设定为16 和0.01。
表1 在UIEB 数据集上的参数选择评估结果Table 1 Parameter selection evaluation result on UIEB dataset
本文选择4 类具有代表性的样本进行主观评估。蓝色、绿色、黄色和模糊水下图像示例分别如图3~图6 所示(彩色效果见《计算机工程》官网HTML 版)。由于版面有限,因此本文仅展示部分主观实验结果。
图3 不同算法的实验结果(蓝色水下图像)Fig.3 Experimental results of different algorithms(blue underwater images)
由图3 所示的蓝色水下图像实例可知:GDCP 加剧了颜色失真;虽然HUM 提高了图像的对比度,但引入了微红色失真;REBE、BARU 和CBAF 移除了颜色失真,提高了对比度,但不能有效突显细节;WaterNet 校正了颜色,提高了对比度,但是增强的图像出现了黑暗的外观;UIEC^2Net 在颜色校正和对比度增强方面都展示了令人满意的结果,但是在细节增强方面劣于ACHS 算法;ACHS 具有较好主观视觉效果,突显了细节信息。
由图4 所示的绿色水下图像实例可知:GDCP 不能很好地移除绿色失真;虽然HUM 移除了绿色失真,但引入了微红色失真;REBE、BARU 和CBAF 在颜色校正和对比度增强方面都展示了令人满意的结果,但是REBE 结果局部过暗,BARU 和CBAF 引入了局部微红色;WaterNet结果局部过暗;UIEC^2-Net在对比度增强和细节突显方面差于ACHS 算法。
图4 不同算法的实验结果(绿色水下图像)Fig.4 Experimental results of different algorithms(green underwater images)
由图5所示的黄色水下图像实例可知:GDCP、REBE和BARU 在移除红色失真方面的结果并不理想;HUM引入了不想要的蓝色失真;WaterNet移除了黄色失真,但是不能有效提高图像的可视性;CBAF 和UIEC2-Net移除了黄色失真,但是在细节突显和对比度增强方面差于ACHS 算法。
图5 不同算法的实验结果(黄色水下图像)Fig.5 Experimental results of different algorithms(yellow underwater images)
由图6 所示的模糊水下图像实例可知:GDCP、BARU、CBAF 和WaterNet 去模糊效果并不理想;UHM引入了红色失真;REBE 结果局部过暗;UIEC^2-Net 在对比度增强方面弱于ACHS 算法。
图6 不同算法的实验结果(模糊水下图像)Fig.6 Experimental results of different algorithms(blurred underwater images)
综上所述,ACHS 算法能够有效地移除水下图像的颜色失真,增强输出图像的对比度和细节。
为进一步评估本文算法的有效性,选择全参考的图像质量评估指标:均方误差(MSE)[16],边缘强度(EI)[13]和局部批次对比度(PCQI)[20],以及非参考的评估指标:水下图像彩色质量指标(UCIQE)[21]和水下图像颜色、对比度以及雾的线性评估指标(CCF)[22]。其中:MSE 的值越低表明增强算法的性能越好;EI、PCQI、UCIQE 和CCF 的值越高表明增强算法的性能越好。为了进一步说明客观评估的有效性,使用ACHS 算法和对比算法测试整个UIEB 数据集。不同算法的客观评估指标如表2 所示。
表2 不同算法在UIEB 数据集上的客观评估指标Table 2 Objective evaluation metric of different algorithms tested on UIEB dataset
ACHS 算法在客观评估方面具有近似最高和最高的EI、PCQI、UCIQE、CCF 值以及最低的MSE 值。此外,ACHS 算法具有最高的平均评估指标。总体而言,ACHS 算法不仅具有较好的主观视觉,而且还具有较好的客观评结果。
本文提出一种基于衰减补偿和直方图拉伸的水下图像增强算法ACHS。结合水下图像的衰减补偿和线性拉伸技术扩大图像的动态范围,进而移除水下图像的颜色失真。同时,通过增强亮度通道的基础层和细节层,增强图像的对比度和细节。实验结果表明,ACHS 算法能够使增强的图像具有自然的颜色、较高的对比度和清晰的细节。此外,算法对于雾和低光照图像也具有一定的适用性。下一步将结合水下成像模型对水下图像进行视觉质量增强探索,并继续研究简单有效的水下图像增强方法。