基于灰度世界和门控聚合网络的水下图像增强
2024-04-10高秀晶洪汉池
刘 真,高秀晶,洪汉池
(1. 厦门理工学院机械与汽车工程学院,福建 厦门 361024;2. 福建理工大学智慧海洋与工程研究院,福建 福州 350118)
伴随着海洋行业对水下机器人日益增长的需求,水下机器人在水下探测的应用得到了快速发展。光学图像是水下探测的重要手段之一,但由于水下环境的复杂性,水下图像往往会出现模糊、对比度低、颜色失真等退化现象,这对水下机器人自主巡航[1]、水下电缆检修[2]、水下目标检测[3]等水下高级视觉任务提出了严峻挑战。由于水下成像环境复杂和光照不足,相较于陆地拍摄的图像,水下图像具有对比度低、颜色失真、边缘模糊、细节不突出等质量退化问题,给实际工程操作带来不良影响。因此,水下图像的增强是当前亟待解决的问题。
常用的水下图像增强方法可以归纳为基于非物理模型、基于物理模型及基于深度学习3类[4]。基于非物理模型的方法主要对图像像素值进行处理,以达到增强效果。董丽丽等[5]分析了经典直方图均衡化的灰度级个数减少、未考虑边缘信息、平均灰度值固定的三大缺点,并对其进行改进分类;Wang 等[6]针对低照度水下图像存在色偏和细节模糊的问题,进行灰度世界算法及全局光照补偿校正水下图像颜色,并根据低照度成像模型得到反射图像;丁元等[7]提出了相对全局直方图拉伸算法(relative global histogram stretching,RGHS),通过自适应的参数对图像直方图拉伸,以改善水下图像的质量问题。基于物理模型主要是根据水下成像衰减模型对水下图像进行复原。Jaffe-McGlamey 成像模型[8]将水下图像成像进入相机的光分为直接衰减分量、前向衰减分量和后向散射分量3个分量线性叠加;Akkaynak 等[9]提出了一种去除水下图像中水体效应的方法Sea-thru,以恢复准确颜色,该方法更适用于泳池和清澈海水中的水下图像场景;Song等[10]利用水下光衰减的先验信息ULAP来估计场景深度图,以进一步恢复水下图像。随着深度学习非线性系统的建模与发展,可用其拟合退化的水下图像到清晰水下图像之间的复杂映射关系,替代传统方法的复杂物理参数估计[11]。Wang等[12]提出了一种无监督的红通道注意力优化的CycleGAN,无需使用成对的样本训练模型,输出图像在色偏方面有了进步,但对比度和边缘细节还可进一步提升;王德兴等[13]提出一种基于Inception-Residual和生成对抗网络的水下图像增强算法,将Inception模块、残差思想、编码解码结构和生成对抗网络相结合,构建IRGAN 模型。利用多项损失函数进行对抗训练,校正水下图像颜色偏差,提升图像视觉感知,但是图像所含信息不够丰富,图像对比度不足。陈清江等[14]在U 型结构网络中加入稠密级联卷积神经网络来提高图像细节特征的提取,但该方法在某些场景的水下图像增强中会出现过度增强现象。
上述现有的主要算法普遍存在图像细节边缘模糊的情况,整体色调偏蓝偏绿的问题没有得到解决。为此,本文提出一种基于灰度世界和门控上下文聚合网络的水下图像增强算法,对水下图像数据集进行图像预处理,恢复图像色偏,消除图像的网格伪影,并将更多注意力集中在重要的通道信息,为处理不同类型的信息提供额外的灵活性。
1 灰度世界算法
由于水下图像存在较多的前向散射、可见光的选择性吸收与衰减,因此,水下物理模型考虑了不同波长的光在水下的衰减程度。影响海洋水体的主要吸收物质有浮游植物、黄色物质、非色素悬浮粒子3类,海水的吸收系数表达式为
式(1)中:αw(λ)为纯水的吸收系数(m-1);αp(λ)、αy(λ)、αs(λ)分别是浮游植物、黄色物质和非色素悬浮粒子的吸收系数(m-1)。
由于海水在450~550 nm 的蓝绿光波段的吸收较小,因此,考虑到蓝绿光在海水中传输的物理特性,目前水下图像处理主要针对图像中蓝绿光的分析处理。
采用灰度世界算法来消除光照环境对颜色显示的影响,该算法的具体计算步骤如下。
1) 计算水下图像R、G、B 3个通道的平均值,计算公式为
式(2)中:Rˉ、Gˉ、Bˉ分别表示红、 绿、 蓝3 个通道的平均值;N为图像的像素总数;Ri、Gi、Bi分别为原图像的第i个像素点值。取图像的设定灰度值
2) 分别计算R、G、B 3个通道的增益系数,计算公式为
式(3)中:KR、KG、KB分别为R、G、B 3通道的增益系数。
3) 根据Von Kries 对角模型(两种光照条件下同一物体表面颜色之间的关系)调整新灰度图像中每个像素值Rnew、Gnew、Bnew,计算公式为
式(5)中:Rnew、Gnew、Bnew分别为校正后的3通道分量的强度值。
本文首先对数据集进行灰度世界算法的预处理,并比较处理前后图像的灰度直方图分布情况,结果见图1。由图1 可见,校正图像色偏后,相较于原水下图像的灰度过于集中的现象,处理后3 通道R、G、B的灰度直方图图像灰度边界阈值变多,利于选择阈值,可更好地处理物体细节边缘。
图1 灰度世界校正结果Fig.1 Results of grayscale world correction
2 门控上下文聚合网络
图像经过灰度世界算法预处理后,输入基于注意力机制的门控上下文聚合网络。首先,图像先进入卷积核处理成特征图;其次,通过中间传输层聚合更多的上下文信息,设计平滑空洞卷积方法消除图像存在的伪影,加入特征注意力机制提供灵活性;最后,结合门控融合和残差学习绕过低频次要信息,恢复图像中高频边缘信息,最终解码器恢复图像细节。门控上下文聚合网络结构见图2。
图2 门控上下文聚合网络结构Fig.2 Gated context aggregation network architecture
2.1 平滑空洞卷积
为实现图像识别,增大水下图像感受野,维持原输入特征图的高宽、分辨率、覆盖率不变,采用一种无需下采样的空洞卷积。将图像4个相邻的像素用4种不同颜色标记,通过空洞卷积即不同像素权重之间加入权重为0的图像信息,来增加图像的感受野,调整扩张率,获得多尺度信息。
设定核大小为2×2的扩张卷积,膨胀因子分别为1、2、4的空洞卷积。由膨胀过程可知,该卷积通过在权重之间插入0 来扩大接受野,且不会降低空间分辨率,但空洞卷积可能会损失信息的连续性,导致图像伪影。本文设计平滑空洞卷积来聚合上下文信息,解决空洞卷积可能会损失信息的连续性的问题。
在一维情况下,空洞卷积[15]被定义为
式(6)中:f[i]是输入信号;g[i]是输出信号;h[l]是长度为l的滤波器;r是用来采样f[i]的膨胀率,当r= 1时,空洞卷积将为正则卷积。
为了减轻网格化的伪影,在空洞卷积的基础上,本文提出了平滑空洞卷积,即基于可分离和可共享的卷积,在周期性采用之前整合局部信息。在空洞卷积前,通过增加1 个核大小为(2r-1)2的可分离共享卷积,将像素之间的依赖关系添加到特征映射中。相比于标准卷积,可分离共享卷积能分别处理每个通道,产生的滤波器对所有输入输出通道共享。
图3 为特征图进行平滑空洞卷积的处理过程,由图3 可见,给定一个6×6 的特征图,一个膨胀空洞率r=2的可分离共享卷积核,其核大小为(2×2-1)×3=3×3,将输出一个4×4的特征图。
图3 平滑空洞卷积过程Fig.3 Smoothed dilated convolution process
2.2 注意力机制
由于海水对不同的颜色通道衰减系数不同,在平滑空洞卷积处理的基础上,引入端到端的特征注意力(feature attention,FA)机制模块。该模块联合通道注意机制和像素注意机制进行水下图像处理。FA 模块对图像不同的特征和像素区域进行不平等处理,在处理不同类型的信息时可以提供额外的灵活性,可扩展CNN的表示能力。
图4 为FA 模块。由图4 可见,FA由通道注意力和像素注意力组成。通道注意力主要关注不同通道的加权信息,根据颜色衰减程度的不同,权重值也不同,衰减越大,权值越大;通道注意力机制进行全局平均池化,通道数不变,将高宽变为1。通道注意力的计算公式为
图4 特征注意力模块Fig.4 Feature attention block
式(7)中:uc(i,j)是第c个通道中uc在位置(i,j)处的值;Fsq是全局平均池化函数。
像素注意力注重水下图像的信息特征,在捕捉像素特征方面扮演着重要的角色,它不平等地对待受水影响不同的区域,提升网络对色偏严重区域的注意力,从而精准去除图像的严重色偏。相较于通道注意力,像素注意力缺少了全局池化操作,直接将特征图输入到两个卷积层、ReLU 激活函数、Sigmoid函数归一化,与原输入特征图相乘,通道数变为1,高宽不变。像素注意力的具体计算公式为
式(8)中:uH,W(k)是第H×W个通道中uH,W在位置k处的值;gc是像素注意力函数。
由式(8)可得到不同权重自适应学习的特征图。
2.3 门控融合网络
经过特征注意力后,得到不同尺度特征图,进而可进行多尺度融合。加入一个门控融合网络Gd,门控融合网络设计为核大小3×3的卷积层。首先从不同级别的Fl、Fm、Fh中提取特征图送入门控融合网络中,先学习得到低、中、高层特征提取层的权重值Ml、Mm、Mh,计算公式为
继而对低、中、高不同卷积层特征图Fl、Fm、Fh与重要程度不同的权重值Ml、Mm、Mh进行线性组合,得到特征图FO,计算公式为
式(9)~式(10)中:Gd为门控融合网络函数;Fl、Fm、Fh分别为低、中、高层的图像特征级别;Ml、Mm、Mh分别是3个不同重要程度的权重。执行多尺度特征调制,使得到的特征图尺度与解码器中逐层的特征图尺度一一对应,并将其送入解码器中,以获得目标水下图像。
2.4 损失函数
网络训练过程即为损失函数的优化过程,本文算法引入L1损失函数和L2损失函数。L1损失函数得到的是预测结果与真实结果之间的差值的绝对值,异常值不会太过敏感;L2损失函数得到的是预测结果和真实结果之间的平方误差,用该损失函数增强后的水下图像噪声较大,所以本文采用L1损失函数。生成图像和真值图像之间的L1损失可表示为
式(11)中:G(x)i为水下图像增强网络的生成图像;yi为原始水下图像的参考图像。
感知损失函数使用VGG 模型,通过预训练的神经网络来计算两张图片之间的差异,保留图像的边缘信息,使得增强后的图像视觉效果更加真实,具有特征提取、分析快速、细节捕获等能力,增强了水下图像网络模型的泛化能力。感知损失函数的计算公式为
式(12)中:c、W、H分别为特征图像的通道、高度和宽度;φ(x)表示VGG网络的conv5_2层提取的高级特征。
该聚合网络的总体损失函数可通过L1损失函数和感知损失函数Lvgg线性叠加得到,即
式(13)中:λ1、λ2是两个常数值,表示两个损失函数的权重。
3 测试评价结果
3.1 训练设置
为了验证本文算法的有效性和可行性,采用UIEB 数据集,它包含890 张水下原始图像和相对应的参考图像,其中,800 幅成对水下图像作为算法训练集,90 幅图像作为测试集A,引入EUVP 数据集中的110幅水下图像作为测试集B。
实验条件:服务器CPU 为12 核 Intel(R)Xeon(R)Platinum 8255C CPU@2.50 GHz,内存为43 GB;GPU 环境为RTX 2080 Ti,显存为11 GB;Python 环境为3.8(Ubuntu20.04),基于PyTorch1.11 深度学习框架,Cuda 为11.3。采用Adam 优化器,学习率设为0.01,批量大小设为4,迭代总轮次epoch 设为200,为防止过拟合,权重衰减设为0.000 5。网络训练时间约为20 h,测试时间约为4 min。
3.2 定性评价分析
为了验证本文算法在色彩校正、对比度提升和清晰度提高方面的有效性,将本文所提算法与常用的图像处理方法进行对比分析评价,选取的对比方法有:基于非物理模型的直方图均衡化HE、限制对比度自适应直方图均衡化CLAHE;基于物理模型的UDCP;基于水下场景先验的水下图像增强卷积神经网络(CNN)模型UWCNN[16]、快速水下图像增强提高视觉感知算法FUnIE-GAN[17]、颜色平衡和融合的水下增强算法Color balance and fusion(CBF)[18]。
不同算法在测试集A、B上的结果如图5~6所示。
图6 不同算法在数据集B上的定性对比Fig.6 Qualitative comparison of different algorithms on test set B
由图5~6 可见,相较于原图,HE 方法处理的图像,其对比度得到了提高,去除图像雾化、过度曝光情况,部分人物主体图像会出现发暗情况;CLAHE 方法在对比度提升的同时,细节也进行了优化,鱼群与水体之间的边缘更清晰,但颜色校正方面处理欠佳,整体图像由于算法过程中的放大噪声出现伪影情况;UDCP 方法处理能够改善图像质量,但整体比原图像偏暗,存在无法正确校正蓝绿色偏的问题;UWCNN 方法存在一定的去雾能力,色偏校正方面有一定提升,但整体的图像过于暗黑色,影响视觉效果,更多图像信息被处理后无法识别,色彩的丰富性不强;FUnIE-GAN 方法能够恢复偏蓝色图像的质量,有效去除水下图像的雾化,突出图像主体信息,但与参考图像相比,其整体色调偏红,没有很好地校正色偏;CBF算法处理后,图像整体对比度有较好的提升,但潜水员与水体边缘存在大面积偏黄情况,边缘的细节信息有所缺失。与这6种图像处理算法相比,本文算法所得到的图像,整体色调色偏有良好的校正,能够有效地去除不同水深图像的雾化情况,视觉上更符合人眼在陆地观测情况,提升了图像亮度和清晰度,物体与水体的边缘细节恢复较为清晰,具有更好的鲁棒性。
本文采用一种常见的主观质量评价方法——平均意见得分(mean opinion score,MOS)来对算法得出的图像进行质量评价。MOS 视觉评价是通过让受试者观看图像,对图像的清晰度、锐度、颜色饱和度、运动模糊、噪声等多方面进行评价,不需要参考图像,主要评判人类视觉系统对图像质量的感知力,从而准确地衡量图像质量。MOS值越高,说明图像质量越好。本文从中选择100幅图像进行测试集分析,将6 种经典算法与本文算法进行对比,得出MOS 值并取平均值,HE、CLAHE、UDCP、UWCNN、FUnIE-GAN、CBF、本文算法的MOS值分别为0.731 588、0.735 348、0.712 275、0.723 566、0.825 665、0.830 949、0.856 873。
3.3 定量评价分析
本文采用全参考型评价指标——峰值信噪比(peak signal to noise ratio,PSNR)、结构相似性(structural similarity,SSIM)、无参考图像评价指标——信息熵(information entropy,IE)和水下图像质量评估度量指标(underwater color image quality evaluation,UCIQE)对水下图像增强效果进行定量评价分析。
SSIM 客观反映了两张图像的质量损失变化,其数值越大,两幅图像之间的结构越相似,质量越好。核心函数[19]定义为
式(14)中:x、y分别表示原始水下图像和所得算法水下图像;Γ(·)表示3个函数的整合;S(x,y)表示两张图片之间的相似性。
UCIQE 是色彩浓度、饱和度和对比度的线性组合,用于量化图像的非均匀色彩投射、模糊和低对比度[20],其定义为
式(15)中:σc是色彩浓度的标准偏差;con1是亮度的对比度;μs是饱和度的平均值;c1、c2、c3是加权系数,c1=0.468 0,c2=0.274 5,c3=0.257 6。
4 个图像质量评价指标在测试集A 上的结果见表1。表1 中,加粗数值为最优结果。由表1 可见,本文算法在PSNR 的评价结果为25.176 0,比第二名的UWCNN 算法高18.30%,说明原图与本文算法所得水下增强图像在像素值、图像内容等各个方面更为相近,失真度更小;在SSIM 上,本文算法的评价结果为0.950 9,比第二名的UWCNN 算法高2.90%,说明本算法得到的图像与原图的相似度更高;在IE上,本文算法的评价结果为8.057 9,比第二名的FUnIE-GAN 算法高8.55%,说明本算法得到的图像所包含的信息更丰富;在UCIQE 中,本文算法的评价结果为0.618 2,比第二名的HE 算法高5.01%,说明本文算法将色调、饱和度、对比度之间的平衡性维持得最好。
表1 不同水下图像增强算法在测试集A上的定量对比Table 1 Quantitative comparison of different underwater image enhancement algorithms on test set A
4 个图像质量评价指标在测试集B 上的结果见表2。表2 中,加粗数值为最优结果。由表2 可见,本文算法在PSNR 的评价结果为21.576 1 dB,比第二名的FUnIE-GAN 算法高3.63%;在SSIM 和UCIQE 上,本文算法的评价结果分别为0.933 1 和0.591 4,分别比第二名的UWCNN 算法高1.40%、12.43%,表明在色彩浓度、饱和度和对比度方面,与参考图像相比,本文算法所得图像与其更为相近;在IE上,本文算法的评价结果为8.119 4,略低于FUnIE-GAN算法。
表2 不同水下图像增强算法在测试集B上的定量对比Table 2 Quantitative comparison of different underwater image enhancement algorithms on test set B
为进一步探究水下图像质量对后续水下作业的影响,将本文算法与HE、UDCP、CBF 3种算法进行特征点匹配测试,匹配测试结果见图7。一般来说,图像越清晰,特征点匹配得越多,在特征提取等应用中效果越好[21]。由图7可见,与原始水下图像相比,大多数水下增强算法都能够呈现较多的匹配关键点。例如,主观视觉较差的HE 和UDCP 结果中,关键点匹配个数较少,而主观视觉较好的CBF算法和本文算法拥有较多的关键点匹配个数,表明本文算法在网络增强后的图像质量更好,有效提升了低层次图像处理任务的性能,有利于后续水下作业任务。
图7 特征匹配结果Fig.7 Feature matching experimental results
4 结论
针对水下机器人在非限制环境中水下作业时,获取的水下图像存在整体色调偏蓝、偏绿、边缘细节较模糊及对比度较低等问题,本文采用白平衡校正,利用门控网络融合高中低层图像特征,采用平滑的空洞卷积消除图像处理中所出现的伪影情况,运用特征注意力模块提高通道信息的灵活性。与6种常用图像增强算法的对比结果表明,在客观评价上,本文算法在PSNR、SSIM、IE和UCIQE的平均值上,测试集A 分别达到25.176 0 dB、0.950 9、8.057 9和0.618 2,测试集B分别达到21.576 1 dB、0.933 1、8.119 4和0.591 4;在主观评价上,本文算法的信息丰富性强,失真性小,在颜色校正、对比度、饱和度方面表现更好,低层数字图像处理更优,更好地达到了水下图像增强的综合效果。但本文算法的运算时间较长,后续会针对问题进一步优化算法,以将本文算法应用于工业水下机器人。