杜守庆,陈 明,王俊豪
(1 上海海洋大学信息学院,上海 201306;2 农业农村部渔业信息重点实验室,上海 201306)
复杂的水下成像环境和光照条件导致水下成像系统拍摄的图像往往具有对比度低、纹理模糊、颜色失真、非均匀光照、可视范围有限等质量退化问题,严重影响到基于视觉引导的水下目标识别与跟踪[1]、机器人水下作业[2]等任务的性能,需要通过水下图像增强技术作为预处理手段来提升视觉质量。
目前主流的水下图像增强算法主要分为三类:基于非物理模型的方法[3-8]、基于物理模型的方法[9-15]和基于深度学习的方法[16-21]。Iqbal等[3]提出了基于直方图拉伸的无监督颜色校正方法(UCM),分别在RGB空间增强对比度和HSI空间校正颜色。Huang等[5]提出一种基于自适应参数采集的相对全局直方图拉伸算法(RGHS)校正图像对比度和颜色。基于非物理模型的方法对单张图像建模,没有深入考虑到水下图像退化的根本原因,泛化性不强。Drews 等[10]提出基于蓝绿通道的水下暗通道先验算法(UDCP)估计场景深度,减少红色通道光衰减的影响。Peng 等[11]提出图像模糊和光吸收算法(IBLA),该方法对模糊先验假设做进一步的改善,提高了水下场景深度估计的准确性。基于物理模型的方法依赖于对水下成像原理建模和严格的先验知识,方法大多结构复杂,算力消耗巨大,实时性不高。Islam 等[17]提出了一种基于条件对抗生成网络的实时水下图像增强模型(FGAN),该模型在大规模水下图像数据集 EUVP 上通过对抗性训练来学习失真图像到清晰图像的端到端映射。Islam等[18]提出一种基于残差结构的超分辨率增强网络(Deep SESR),该模型可以学习在2、3或4个更高空间分辨率下恢复水下图像质量。基于深度学习的方法由数据和模型双驱动,在水下图像增强领域取得了显著的成果。但是此类方法往往为了追求模型的精度,大多采用深度网络结构,极大地限制了方法的实时性能;反之若追求模型的轻量级,往往又在真实数据集上的表现不够稳定。
针对现有基于深度学习方法的局限性,本研究提出了一种轻量级卷积神经网络模型,实现对水下图像的实时感知增强。为了加强模型的图像特征提取能力,设计了一个多尺度特征提取模块实现多感受野范围下的多层次特征信息的提取和融合。本研究在多项损失函数中加入梯度差损失项,加强模型对水下图像边缘细节的学习能力。
给定源域X(失真图像)和期望域Y(增强图像),本研究的目标是学习一个映射G:X->Y,以便执行自动水下图像感知增强。本研究采用了一个基于多尺度特征提取的轻量级神经网络模型,通过多模态损失函数指导模型学习这种映射。
如图1所示,本研究的执行流程如下:为了实现快速推理,模型的输入设置为256×256×3,通过一个优化的特征提取模块(MFE Module)生成256×256×32的多尺度特征图,然后将该特征图输入到三个密集连接的卷积块中。卷积块是卷积层(Conv)、随机失活层(Dropout)和LeakyReLU激活函数的串行化结构,首先对输入的特征图采用3×3的卷积,在卷积之后接入随机失活层来避免高权重节点完全控制输出结果,再引入LeakyReLU激活函数来加强模型的非线性能力。由于串行连接的网络随着深度叠加,容易导致高维权重矩阵大部分维度没有有效信息,造成网络退化。本研究将多尺度特征图跳跃连接到每个卷积块的输出来打破结构对称性,从而改善权重矩阵的表达能力。最后通过一个3×3的卷积层生成256×256×3的输出图像,该输出图像即为增强图像。
图1 模型框架
1.2.1 可分离残差密集块
受深度残差密集网络[22-24]的启发,使用其中的残差密集块(RDB)作为特征提取基本单元,其结构如图2所示。但是为了保持整体的轻量型结构,对RDB模块进行了简化改进,形成了可分离残差密集块(SRDB)作为特征提取模块的基本单元,其结构如图3所示。
图2 残差密集块
图3 可分离残差密集块
改进1是使用深度可分离卷积(DSC)[25]取代RDB模块中的标准卷积层。本研究中的DSC首先使用3×3的深度逐通道卷积(D_Conv)得到每个通道的特征图,然后使用批量归一化(BN)和LeakyReLU激活函数加快网络训练和收敛的速度,再使用1×1的卷积融合每个通道的特征形成完整的输出。
改进2是改变局部分层特征间的传递方式,仅将上一层的输入特征传递给当前层。由于SRDB本身仅使用三组卷积进行特征提取,网络层次较浅,而且也使用了残差连接将SRDB模块的输入信息跳跃连接到模块的输出,所以并无多少语义信息损失,使用上一层的输入特征传递是能够满足特征保留需求的。而且每一个局部分层特征都向后传递,会导致局部浅层特征对局部高层特征的提取产生抑制作用。
1.2.2 多尺度特征提取
单一的卷积层感受野固定,无法满足不同大小的目标物特征和不同语义信息的提取。图像的不同层次特征包含不同的语义信息,一般浅层卷积提取图像的细节和纹理信息,中层卷积一般提取的是图像的部分轮廓信息,高层卷积提取图像的整体结构信息,对水下图像恢复都有着重要作用。
为了充分利用原始图像的特征,本研究参照文献[26]中的MSRB模块设计了一个多尺度特征提取模块来提取不同尺度范围下的不同层次的特征信息,结构如图4所示。
图4 多尺度特征提取模块
首先,3个并行分支分别使用不同大小卷积核(3×3,5×5,7×7)的标准卷积提取三种感受野范围内的浅层特征。然后,分别在每个分支使用4个密集连接的SRDB进一步提取图像的中高层语义信息,密集连接支持 SRDB 间的连续记忆,一个 SRDB 的输出可以直接影响下一个SRDB各层信息的传递,从而使状态连续传递。再将每一个SRDB的输出特征作为分层特征进行通道连接,自适应地保留每一个分层特征图的语义信息。最后通过1×1标准卷积调整通道数,并用残差连接融合浅层特征信息作为每一个分支的特征输出。将3个不同分支输出的特征图进行通道连接,接一个1×1标准卷积调整通道数作为多尺度特征提取模块的输出。
特征提取模块每一个分支都是用标准卷积提取浅层特征,然后使用密集连接的SRDB模块逐步扩大感受野范围,分层次提取原始图像的中高层语义信息,最终融合浅层和中高层的语义信息使其具备丰富的上下文信息。3个尺度不同的并行分支是为了满足不同大小的目标物体特征提取,融合3个分支的特征得到不同尺度范围下的多层次特征信息,具备更好的特征表达能力。
本研究使用一个多模态的损失函数约束模型的训练方向,使源域图像X能够学习到期望域图像Y的纹理结构、内容感知和色彩感知,通过考虑生成图像G(X)和期望域图像Y之间的梯度差损失,使生成的图像保持源图像边缘的锐度和细节信息。具体的损失函数如下所示:
1)全局相似性损失
现有的方法表明,在目标函数中添加L1(L2)损失使G能够学习从L1(L2)意义上的全局相似空间中采样,由于L1损失不容易受噪声影响,故使用L1损失来计算生成图像和目标图像之间的像素级损失。L1损失项的数学表达如式(1)所示:
(1)
式中:Y为标签图像;G(X)为生成图像。
2)梯度差损失
为了保持原始图像的细节信息,锐化图像的边缘,引入二阶微分算子Laplace算子计算生成图像G(X)和目标图像Y之间的梯度差损失。Laplace算子的数学表达如式(2)所示,梯度差损失项的数学表达如式(3)所示:
(2)
(3)
式中:∇2(G(X))表示生成图像G(X)在(x,y)处的梯度,∇2(Y)表示目标图像Y在(x,y)的梯度。
3)内容感知损失
为了鼓励映射G能够生成与标签图像具有相似内容(即特征表示)的增强图像,受文献[27]的启发,本研究将图像内容感知函数定义为由预训练的VGG19网络的最后一层提取出来的高级特征。内容感知损失项的数学表达如式(4)所示:
(4)
式中:φ(G(X))为生成图像经过VGG19网络训练后的输出,φ(Y)为目标图像经过VGG19网络的输出。
4)总损失函数
总损失函数的数学表达如式(5)所示:
Ltotal=α×L1+β×Lcontent+γ×Lgd
(5)
式中:α,β,γ表示每一项损失所占比重,取α=0.6,β=0.3,γ=0.1。
2.1.1 数据集
为解决水下图像退化域和期望域的成对训练数据问题,本研究收集了EUVP数据集中的underwater_dark、underwater_imagenet和underwater_scenes中成对的水下图像5 000张,这些图像包含了大量的水下场景和丰富的水下内容信息,能够表示绝大多数的水下真实场景。另外为了保证模型的泛化性,选取了从人工养殖基地采集的大量河豚图像中的300张具有代表性的图片。将成对的水下图像按照7∶2∶1的比例划分为训练集和验证集和测试集A,并将选取的河豚图像作为测试集B。这样划分数据能够充分验证模型在公开数据集和真实数据集的增强效果,保证模型的有效性和泛化性。
2.1.2 试验设置
本试验在Windows 10操作系统下,基于Pytorch1.7深度学习开源框架实现,编程语言为Python 3.6。计算机的配置如下:处理器为Intel(R)Core(TM)i7-9700 CPU@3.6GHz,GPU为NVIDIA GeForce RTX2080Ti,内存64GB。本试验为了更好地训练模型,统一将图像尺寸设定为256×256×3,并归一化到[0,1]区间。模型在训练过程中采用Adam优化器,学习率lr=0.000 2,批处理大小batch_size=16,迭代次数epoch=1 000。另外为了保证试验的公平性,所有基于深度学习的对比试验都是采用原文献的参数设计以及本文相同的数据集训练和测试。
2.2.1 本研究与对比方法的对比分析
为了验证本研究的有效性与泛化性,通过大量的对比试验,将本研究与基于非物理模型的典型方法(UCM[3],RGHS[5]),基于物理模型的典型方法(UDCP[10],IBLA[11]),基于深度学习驱动的最新方法(FGAN[17],Deep SESR[18])从水下图像感知增强角度进行主观和客观的评价,分析本研究与其他最新方法对比存在的优势与劣势;然后,从模型的处理速度出发,分析本研究和对比方法的实时性能。
1)主观评价
主观评价是从人眼观察角度来分析水下图像感知增强的效果,6种水下图像增强方法和本研究在测试集A、B上的主观表现如图5、图6所示。
图5 不同方法在测试集A上的结果
通过图5、图6可以发现,UCM明显增强了图像的对比度,但是出现了色彩饱和现象,部分图像呈现出偏红色调。RGHS较好地改善了图片的模糊问题,提升了图像的清晰度,但是在去除色偏问题上表现不足,部分图像还是呈现出明显的蓝绿色偏现象。UDCP处理后的图像并没有解决图像的色偏问题,甚至加深了图像的色偏程度,相当于引入了新的噪声,而且图像偏暗,整体的增强效果欠佳。IBLA增强后的图像整体对比度和亮度都得到了改善,但是部分区域表现出过度增强的现象,图像的色彩有不自然的趋势。
图6 不同方法在测试集B上的结果
基于深度学习的方法由模型和数据双驱动,模型的泛化性往往比传统方法更好。FGAN的处理效果较好,能够有效去除图像模糊和色偏现象。Deep SESR在测试集A上表现良好,但是在测试集B上出现图像更加模糊的现象,颜色也趋向于不自然。本研究处理后的图像去除了色偏和模糊现象,对比度和亮度得到提升,而且边缘更加清晰,保留了更多的细节信息。
2)客观评价
为了客观评价和分析本研究方法的性能,选取两种全参考图像质量评价指标:结构相似性(SSIM)和峰值信噪比(PSNR)[28]以及两种无参考图像质量评价指标:UIQM[29]和NIQE[30]对不同方法在测试集A、B上的增强效果进行定量评价。
通常情况下,SSIM和PSNR越大,表明被评价图像越接近标签图像。UIQM 是水下图像色度度量(UICM)、水下图像清晰度度量(UISM)和水下图像对比度度量(UIConM)的线性组合,其值和图像的视觉质量成正比。NIQE是用来衡量待测图像和自然图像提取的特征所构建的多元分布上的差异,其值越小,表示待测图像越接近自然图像。
由于测试集A具有参考图像,所以选取PSNR、SSIM、UIQM和NIQE来定量对比不同方法在测试集A上的表现,其均值和方差结果如表1所示。从整体来看,基于深度学习的方法的表现要优于传统的方法,这和主观的分析结果一致。其中本研究在PSNR和SSIM上的平均值得分最高,UIQM和NIQE平均值得分第二且方差较小,表明本研究在测试集A上增强的图像更接近于自然图像,且增强效果更加稳定。
表1 不同方法在测试集A上的定量对比
由于测试集B没有参考图像,所以选取UIQM和NIQE来定量对比不同方法在测试集B上的表现,其均值和方差结果如表2所示。
表2 不同方法在测试集B上的定量对比
通过表2发现,本研究在UIQM和NIQE上的平均得分都是最高,充分说明了本研究在测试集B上的表现要优于列出的其他方法。
综合表1和表2的分析结果得出,本研究不仅在公共数据集上取得了优秀的表现,而且在真实数据集上也取得了优于其他方法的表现,体现了本研究的有效性和泛化性。
2.2.2 处理速度对比
一个好的水下图像增强模型追求的不仅仅是视觉感知的增强,而且也要考虑到模型的处理速度,这将决定该模型是否能够应用到实时情景中。本研究用FPS(模型处理图片的帧率)分析当下几种主流的水下图像增强方法和本研究方法的实时性能。试验后得出UCM的FPS为0.64;RGHS的FPS为1.00;UDCP的FPS为0.42;IBLA的FPS为0.18;FGAN的FPS为5.56;Deep SESR的FPS为6.25;本研究的FPS为27.55。从结果来看,基于深度学习方法的FPS都要高于传统方法,其中本研究方法排在第一,而且要明显优于其余几种方法的处理速度,表明本研究方法的处理速度较快,具备良好的实时性能。
2.2.3 MFE模块SRDB数量的对比分析
对MFE模块中每个分支提取不同层次信息的特征提取单元SRDB的数量进行了对比试验,验证MFE模块设计的合理性。为了统一衡量测试集A,B的客观对比结果,选用UIQM和NIQE评价指标,其平均值结果如图7所示。从图7可以明显看出,UIQM和NIQE得分在SRDB数量为4时基本达到了最优情况,继续堆叠SRDB的数量也不会对模型的性能产生明显的提升,而且还会加深网络结构,带来更多的内存和时间消耗,所以MFE模块将SRDB的数量设计为4是合理的。
图7 SRDB数量的对比试验结果
2.2.4 消融试验
1) SRDB改进组件的消融试验
为了进一步验证本研究对SRDB组件改进的有效性,对改进部分进行消融试验,设计以下试验:(a)改进1;(b)改进2;(c)改进1+改进2;(d)原RDB结构。其客观评价指标表现如表3所示。
表3 SRDB改进组件消融试验的定量比较
从表3的定量比较结果来看,本研究对RDB模块的改进是不会对测试集水下图像的质量恢复产生太大的负面影响,甚至部分数据产生了正向作用。经过试验后得出(a)的FPS为21.82;(b)的FPS为19.43;(c)的FPS为27.55;(d)的FPS为16.70。由此可见,本研究在不损害模型性能的基础之上对RDB组件的轻量化优化是合理有效的。
2) MFE模块和梯度差损失项的消融试验
为了进一步验证本研究在基础网络结构之上改进的每个组件的有效性,对改进部分进行消融试验。消融试验设计以下内容:(a)无MFE 模块;(b)无梯度差损失项;(c)本研究方法。消融试验的主观表现如图8所示,客观评价指标如表4所示。
图8 消融试验主观结果
表4 消融试验的客观结果
图8所示,MFE模块能够校正水下图像的对比度和颜色,尤其是对TestB的颜色校正结果尤其明显;梯度差损失项能够加强水下图像的边缘细节保持能力,使得边缘部分更加清晰。
表4所示,本研究改进的模块都能够提升水下图像的客观质量评价表现,其中MFE模块的提升效果尤其明显。综合主客观表现,证明本研究所提组件都能够提升水下图像复原的效果,表明本研究改进部分的合理有效性。
2.2.5 应用测试
图像增强的目的是给后续高层应用提供高质量的输入图像,使得高阶视觉任务更容易提取图像特征信息。采用了Canny边缘检测和SURF特征点检测与匹配来进一步说明本研究的增强效果,结果如图9、图10所示。图像的边缘是指图像局部区域灰度强度变化最显著的部分,属于图像中最直观的结构信息,良好的边缘信息代表着更多的细节信息,其对高级语义信息的提取有着重要的影响。
图9 Canny边缘检测
图10 SURF特征点检测与匹配
从图9可以看出,经过本研究增强后的水下图像 提取的边缘更加清晰,包含更多的细节信息,而且也没有产生多余的噪声。
SURF特征属于尺度不变特征,且具备较高的计算效率,能够很好地反映图像的特征表达能力。为了体现其尺度不变性,将图像经过180°旋转,变换后的图像置于特征点匹配图像的右半部分。图10第一幅对比图像中,原图的特征点匹配数量为120,增强后的图像匹配的特征点数量为666;图10第二幅对比图像中,原图的特征点匹配数量为107,增强后的图像匹配的特征点数量为205。经过SURF特征点的检测与匹配结果来看,增强后的图像能够提取和匹配更多的特征点,进一步说明本研究对图像特征的增强效果。
综合canny边缘检测和SURF特征点检测和匹配的结果来看,本研究方法能够有效增强图像的细节特征,使其语义信息更加丰富,有利于高阶视觉任务性能的提升。
针对水下图像视觉质量退化和现有基于深度学习方法的局限性,提出了一种基于多尺度特征提取的水下图像增强模型,使用公共数据集EUVP和真实养殖环境下拍摄的河豚图像构造的大规模数据集来训练和验证模型的精度。多尺度特征提取模块构建基本特征提取单元SRDB,堆叠SRDB模块并使用残差密集连接组合分层特征信息,使用3个不同尺度的并行分支提取并融合不同感受野范围下的多层次特征信息形成多尺度特征图。模型在损失函数中加入梯度差损失项,加强对水下图像边缘细节的学习能力。结果表明,本研究对比其他几种主流算法在测试集上有更好的主客观表现,表明所提算法能有效提高图像清晰度和对比度,校正图像颜色,提升图像视觉感知。本研究整体保持为一个轻量级模型,拥有优秀的性能之外还保持了较高的处理速度,期望为实时水下图像增强做出一些参考。
□