融合深度学习与成像模型的水下图像增强算法

2022-02-24 05:06陈学磊权令伟鹿存跃
计算机工程 2022年2期
关键词:图像增强运算卷积

陈学磊,张 品,权令伟,易 超,鹿存跃

(1.上海交通大学电子信息与电气工程学院,上海 200240;2.陆军工程大学电磁环境效应与光电工程国家级重点实验室,南京 210007)

0 概述

水下机器人执行任务时通常需要利用包括视觉传感器在内的多种传感器来感知周围的水体环境,但受环境因素影响,水下图像的质量通常较低。一方面,图像整体色彩偏绿、偏蓝;另一方面,对比度较低且细节模糊。水下图像增强技术可以增强图像的色彩、对比度、清晰度等多个方面,从而改善图像质量。因此,开展水下图像增强算法的相关研究具有十分重要的意义。

水下图像的物理成像模型与雾化图像的物理成像模型[1]有很多相似之处,其原理均为光线传输受到空气或水中细微颗粒对光线散射的影响,导致进入相机的光线与物体本身反射的光线有所不同,从而使拍摄的照片颜色失真。由于其原理的相似性,学术界曾尝试直接将雾化图像的物理成像模型应用到水下图像上进行色彩校正,所提出的多种水下图像色彩校正方法[2-4]均取得了一定的图像增强效果。但由于光线在水下的传播特点与在大气中并不完全相同,已有的成像模型大多没有考虑不同波长的光被水体吸收和发生散射等情况的差异,因而基于这些模型的增强方法处理后的图像在质量上也很难进一步提升。图像增强效果的进一步提升有待于成像模型准确度的提高。AKKAYNAK 等[5]利用大量真实水下实验的结果对已有模型中的衰减系数进行修正,进一步完善了水下图像的物理成像模型,该研究为水下图像增强技术提供了新的理论基础。

自 从ALEXNET[6]取 得ImageNet[7]竞赛冠军 以来,深度学习方法在图像识别、图像分割、目标检测等领域获得了大量关注,并取得了较好的效果。近年来,深度学习技术作为一种新的技术手段也被尝试应用于水下图像增强任务上。如LI 等[8]提出基于CycleGAN 的水下图像色彩校正方法,SKINNER等[9]提出两阶段神经网络结构,并分别用于图像深度估计和色彩校正,FU 等[10]提出一种融合全局和局部信息的神经网络用于水下图像增强。

基于近似的雾化图像成像模型的水下图像增强方法往往仅对特定图像有效果,更换图像后效果就变差,普适性不高。但基于深度学习的方法如果忽略了物理成像模型,将导致神经网络结构复杂,学习难度也会变大,即便融合了近似的物理成像模型,图像增强效果往往也不显著。

为解决上述问 题,本文结合AKKAYNAK 等[4]最新提出的修正后物理成像模型,对现有基于深度学习的图像增强方法进行改进,提出一种新的水下图像增强算法。该算法包含基于卷积神经网络的背景光估计模块和传输图估计模块,将这2 个模块的输出与输入图像进行重建运算后得到增强后的水下图像。在构建神经网络时选用带参数修正线性单元(PReLU)[11]和扩张卷积运算(Dilated Convolution)[12]来提高网络的拟合能力。此外,在UIEB[13]数据集和URPC2020 数据集上进行实验,以验证本文算法的有效性。

1 物理成像模型

1.1 水下环境对光学成像质量的影响

在水下环境拍摄照片时,图像质量会受到光的吸收、散射和折射等因素的影响[14]。

光在穿越水体时会被吸收一部分,不同波长的光被水的吸收程度不同。图1 展示了水下环境光吸收的过程,海水对红光的吸收作用更强,红光在进入水体后强度迅速降低,而波长较短的绿光和蓝光则可以穿透到海平面下较深处,从而导致水下拍摄的图像呈现偏绿偏蓝的效果。

图1 水下光吸收示意图Fig.1 Schematic diagram of underwater light absorption

同样,由于水体对光的吸收效应,在更深的海域进行图像采集时已不仅只是受到波长较长的光线不足这一因素的影响,还会由于各个波长的光线均不足导致图像整体曝光度低的影响,因此在深海进行图像采集通常还需进行人为补光,或利用多曝光度图像序列加权融合等算法进行曝光度增强[15-16]。

水下图像的光学成像模型主要包含2 个部分的光源信息:直接传输的光和背景散射的光。如图2 所示,直接传输的光来源于被拍摄物体本身,在传输路径上会经历衰减效应,衰减效应由光的吸收和光的散射导致,会造成水下图像色彩畸变。背景散射的光并非来源于被拍摄区域物体本身的辐射,而是由周围环境中的光被水中存在的大量微小颗粒散射得到,背景散射的光是水下图像对比度降低的主要原因。

图2 光学成像模型示意图Fig.2 Schematic diagram of optical imaging model

光线在不均匀介质中不沿直线传播,会发生折射现象,光的折射会导致图像中的细节扭曲失真[17]。水中的微粒、海水的波动、水下的气泡等都会造成光的折射,从而造成水下图像扭曲。由于图像扭曲的复原属于图像修复领域,本文所提算法属于图像增强算法,仅解决光的吸收和光的散射造成的颜色畸变、对比度降低、细节模糊等问题。

1.2 水下图像成像模型的数学表达

根据雾化图像的成像模型[1]可以得到近似的水下图像成像模型[2]:

其中:x表示像素点坐标;I(x)表示水下环境中相机拍摄得到的图像;D(x)表示物体本身的辐射光,可以理解成消除水下环境因素影响后的水下图像;t(x)表示直接传输映射;B表示环境光。D(x)t(x)对应图2 中直接传输的光;B(1-t(x))对应图2 中背景散射的光。直接传输的光会经历衰减效应,衰减效应的大小由衰减系数β和传输距离d决定,如式(2)所示:

传统的水下图像增强方法通常将图像RGB 的3 个通道的t(x)视为一个映射来简化计算,但这种方式忽略了t(x)中的衰减系数β在不同通道之间的差异,增强后的图像依然有偏色现象。AKKAYNAK等[5]进行了大量水下实验,提出了修正后的模型,如式(3)所示。修正模型主要基于水下环境的光学成像特点,对衰减系数进行了修正。

其中:c∈{R,G,B}表示图像通道分别表示直接传输和背景散射的衰减系数;d表示传输距离。直接传输和背景散射的衰减系数又分别依赖于[d,ρ,E,Sc,a,b]和其中:d表示传输距离;ρ表示反射频谱;E表示辐照度;Sc表示相机频谱响应;a和b分别表示吸收和散射系数。

对式(3)进行整理得到式(4)的形式:

本文使用式(5)作为水下图像的物理成像模型,结合深度学习技术,完成水下图像增强任务。

2 融合深度学习与成像模型的图像增强算法

2.1 算法设计思路

本文提出的基于深度学习与成像模型的水下图像增强算法的核心思想是利用卷积神经网络对成像模型中的多个组成部分进行拟合。

根据式(5),拍摄得到的图像Ic(x)为已知信息,环境光Bc和直接传输参数为未知信息。已有的暗通道先验[8]等算法表明环境光Bc作为一个全局信息,可以从拍摄得到的图像中估计得到,因而在设计算法时可以先构建背景散射模块来估计Bc的值。直接传输参数与环境光Bc的差别在于前者更复杂,不同像素点位置上的直接传输参数的值并不完全相同,因此对整张图像直接传输参数的估计实际上是对一个高维矩阵的估计。结合以上2 点,在构建神经网络时先构建背景散射估计模块来估计较为简单的Bc,再构建直接传输估计模块来估计更加复杂的,且背景散射估计模块的输出可以作为辅助信息,和输入图像一起作为直接传输估计模块的输入,这样做的优点是使网络能结合图像局部像素信息和全局背景光信息来估计局部像素的直接传输参数。

最终设计的算法如图3 所示,该算法包含3 部分:第1 部分从输入图像中估计出背景散射光,即式(5)中的Bc;第2 部分利用估计出的背景散射光和输入图像估计出直接传输映射,即式(5)中的,此处与大多数已有方法估计t(x)不同,实际上是t(x)的倒数,这样设定的优势在于最后的重建运算为乘法,有利于深度学习训练里的损失函数的反向传播;第3 部分利用估计出的Bc和,并结合式(5)进行重建运算得到消除水下环境影响因素后的增强图像。

图3 本文算法整体框架Fig.3 Framework of algorithm in this paper

2.2 背景散射估计模块

背景散射估计模块包括了2 组尺寸为3×3 的卷积核,1 个全局均值池化层和2 组尺寸为1×1 的卷积核,每组卷积核的数量均为3,具体结构如图4 所示。卷积运算的激活函数选择了带参数修正线性单元(PReLU)[11]。

图4 背景散射估计模块结构Fig.4 Structure of backscatter estimation module

带参数修正线性单元(PReLU)和常见的修正线性单元(ReLU)的数学表达式如式(6)和式(7)所示:

其中:x是神经网络特征图上每一个位置的值;a是可以学习的参数。与常见的修正线性单元(ReLU)相比,使用带参数修正线性单元的优点是可以避免x为负时梯度为0,导致相应参数无法再被更新的现象发生。

2.3 直接传输估计模块

直接传输估计模块将背景散射估计与输入图像进行联接操作,随后的运算中包括了3 组3×3 大小的扩张卷积核和1 组3×3 大小的普通卷积核,每组扩张卷积核的数量均为8,最后1 组普通卷积核的数量为3,具体结构如图5 所示。

图5 直接传输估计模块结构Fig.5 Structure of direct-transmission estimation module

扩张卷积能在参数量不变的情况下通过在卷积核内填入额外的0 来增大感受野,更大的感受野能帮助网络利用更多图像信息来估计直接传输参数。为避免扩张卷积带来的网格效应[12],可以采用混合扩张卷积的设计方式,即对连续的扩张卷积运算选用不同的扩张率,本文算法中的3 组扩张卷积核的扩张率分别选用了1、2、5。

2.4 训练方式

本文算法的输出为增强后的图像。在训练过程中,每一个输入图像均有一个对应的参考图像作为训练目标。本文算法使用基于像素值的均方差作为损失函数来计算增强后图像与目标图像之间的差异,均方差损失函数如式(8)所示:

其中:H、W和C分别为图像的高度、宽度和通道数;x、y和z分别表示图像3 个维度的坐标;D^(I)表示本文算法的输出;R(I)表示训练数据集中的参考目标。Adam 优化器[18]被用来进行神经网络参数的优化。

3 实验结果与分析

为验证本文所提水下图像增强算法的有效性,设计并进行了一系列仿真实验。实验在Ubuntu18.04 系统中进行,使用PyTorch 深度学习框架实现所提算法。所使用的计算机配置为Intel i7-10700 CPU、16 GB RAM和NVIDIA RTX 2070 GPU。深度学习训练中使用的批尺寸为1,学习率为0.001,训练轮数为3 000。本文的代码和训练好的模型开源选择GitHub 平台:https://github.com/xueleichen/PyTorch-Underwater-Image-Enhancement。实验中的图像来源为UIEB[13]数据集,该数据集采集了大量真实场景中拍摄的水下图像,包含多种已有算法和志愿者人工评判得到对应的色彩增强图像。该数据集包含890 张真实水下图像和890 张供参考的色彩增强图像,其中700张图像用来训练,190张图像用来测试。此外,在UIEB 数据集上训练的模型也在URPC2020 数据集上进行了测试,以验证算法的通用性,并从视觉效果、质量指标和运算速度3 个方面对本文算法进行效果评价,与已有方法进行对比分析。另外,本文还进行了关键点匹配的实验来验证水下图像增强对后续视觉任务效果的提升。

3.1 视觉效果分析

在进行视觉效果分析时,本文算法和UDCP算法[2]、IBLA 算法[3]、GLNet 算法[10]的实验结果对比如图6 所示。图6 中前3 行的图片来自UIEB 数据集的测试集,后3 行的图片来自URPC2020 数据集,第1 列为输入的原始图像,后4 列分别为使用不同算法得到的结果(彩色效果见《计算机工程》官网HTML 版)。从图6 可以看出本文算法在进行水下图像增强时可以取得较好的效果,对水下图像的偏色情况进行了校正,同时提升了对比度和细节清晰度,提升了整体视觉效果。而UDCP算法和IBLA 算法处理的图像色彩饱和度过高,背景颜色偏暗。GLNet算法处理的部分图像存在整体偏蓝的现象。

图6 不同算法进行水下图像增强的视觉效果对比Fig.6 Comparison of visual effects of underwater image enhancement by different algorithms

3.2 质量指标分析

水下图像增强实验使用的图像质量指标可以分为两类:有参考指标和无参考指标。有参考指标的计算要求算法处理后的图像有对应的真实参考图像,能够计算这2 张图像间的近似程度。常用的有参考指标包括峰值信噪比(Peak Signeal-to-Noise Ratio,PSNR)和结构相似度(Structural Similarity,SSIM)。无参考指标则直接利用单张处理后图像的颜色、对比度、饱和度等,并将其整合为一个总体图像质量指标。常用的无参考指标包括水下彩色图像质量评价(UCIQE)[19]和水下图像质量评价(UIQM)[20]。

表1 所示为本文算 法、UDCP算法[2]、IBLA 算法[3]及GLNet 算法[10]在UIEB 测试集上的各项指标数值。与基于深度学习的GLNet 算法相比,本文算法在PSNR 和SSIM 两项指标上表现更佳,且在有参考指标方面有更好的效果,从而验证了本文算法在水下图像增强上的有效性。但本文算法在UCIQE和UIQM 两项指标上略微差一些,其原因在于GLNet 方法使用直方图均衡化作为后处理步骤,让图像色彩更均衡,因此在指标上取得了更高的数值,但这也导致了图6 所示GLNet 处理的部分图像存在偏蓝的现象。传统算法UDCP 和IBLA 处理的图像视觉效果并不好,却在UCIQE 取得了最高的分数,这是因为UCIQE 是色彩、对比度、饱和度3 个方面相关统计数据的加权求和,即使图片在某一方面被进行了过度的增强处理,导致存在色彩偏差或在其他方面增强不足,但仍然可能取得较高的UCIQE 数值。这一点在文献[13]中也有讨论,说明目前的水下图像质量评价指标有一定局限性。

表1 不同水下图像增强算法的指标对比Table 1 Index comparison of different underwater image enhancement algorithms

综上所述,在质量指标分析中,本文算法在有参考指标上较已有基于深度学习的方法得分更高,在无参考指标上效果略差于传统方法,这是因为现有基于深度学习的方法采用了后处理步骤增强色彩,但这些后处理步骤会带来诸如偏蓝等副作用。非深度学习方法在UCIQE 指标上大幅领先深度学习方法则是因为该指标的局限性。综上所述,本文算法在质量指标分析方面取得了部分指标更优、其他指标可比的结果。

如1.1 节所述,水下图像具有曝光度较低的特点。本文提出的增强算法并非针对曝光度低这一个特点进行图形增强,而是从颜色、对比度、清晰度等多方面进行整体增强。本文参考文献[15-16]对所提算法及相关算法进行了曝光度增强的量化指标分析,此处使用的是亮度次序误差(LOE)指标,该指标的数值大小与图像尺寸密切相关。在通常情况下,图像尺寸越大,此指标越容易有一个较大的值。在同样的图像尺寸下,亮度次序误差(LOE)指标值越小,代表图像自然度越高。

表2所示为本文算法及UDCP算法[2]、IBLA算法[3]、GLNet算法[10]处理后图像的亮度次序误差(LOE)指标值,此处选取图6 第1 列的前3 张图像进行计算,这3 张图像的原始尺寸分别是259 像素×194 像素、909 像素×758 像素和500 像素×375 像素,因此LOE 数值较大。本文算法在图6 第1 行图像上取得了最好的LOE 指标,在图6 第2 行图像和图6 第3 行图像上取得的LOE 指标次之,仅略差于IBLA方法。但IBLA算法处理图6第1行图像得到的LOE 指标远差于其他算法,因此整体来看,本文算法在曝光度增强方面效果最佳。

表2 不同算法处理后图像亮度次序误差指标对比Table 2 Comparison of brightness order error indexes of images processed by different algorithms

3.3 运算速度分析

当将水下图像增强算法部署到真实机器人上时,还要考虑算法的实时性。对比本文算法及UDCP 算法[2]、IBLA 算法[3]、GLNet 算法[10]的运算速度,实验数据如表3 所示。运算速度的评价指标选择的是帧率,即每秒处理图片数量,帧率越高,表明算法的运算速度越快。由表3 可以看出本文算法的运算速度最快,原因是本文算法在设计神经网络时对每组卷积核的数量选择了较小的值,实现了网络轻量化。

表3 不同水下图像增强算法的运算速度比较Table 3 Comparison of computation speed by different underwater image enhancement algorithms (frame·s-1)

3.4 视觉感知任务

水下图像增强的目的是为了提升水下机器人对周围环境的视觉感知能力。图像特征点匹配是一项基本的视觉感知任务,是摄影测量、三维重建和图像拼接等应用的基础。

利用不同算法对URPC2020 数据集中编号为000001 和000002 的2 张图片进行图像增强操作,再依次对原始图像和不同算法增强后的图像进行特征点匹配,匹配时利用SIFT 方法[21]进行特征点提取,使用RANSAC 方法[22]进行特征点匹配和单应性变换。实验得到的匹配结果如图7 所示,左侧的图为000001 或其增强后图像,右侧的图为000002 或其增强后图像。可以看出不同算法增强后的图像和原始图像相比均能检测到较多匹配点,证明图像增强算法作为图像预处理步骤能帮助提升特征点匹配的效果。

图7 不同算法增强后图像的特征点匹配结果对比Fig.7 Comparison of feature key-point matching results of images enhanced by different algorithms

表4 列出了用不同算法对编号为000001 和000002 的2 张图片进行增强操作后再进行特征点匹配的结果,匹配点对数越多,越利于精确的三维重建或摄影测量。由表4 可知本文算法对特征点匹配效果的提升最大,证实本文提出的水下图像增强算法能更好地提升水下机器人的视觉感知能力。

表4 不同算法增强后图像的匹配点对数对比Table 4 Comparison of the number of matching points in images enhanced by different algorithms

4 结束语

本文提出一种融合深度学习和成像模型的水下图像增强算法,使用带参数修正线性单元和扩张卷积来增强模型的拟合能力,通过基于最新水下成像模型设计的神经网络结构、3 个通道分别估计的直接传输映射以及轻量化网络提高运算速度。实验结果表明,所提算法在多个数据集上取得了较好的图像增强效果,视觉效果和质量指标较UDCP、IBLA 等已有算法均有提升,且运算速度得到大幅提升,能满足水下机器人平台计算实时性的要求。此外,通过实验还证实了本文算法通过水下图像增强能辅助完成后续视觉感知任务。但本文仅使用了图像本身的信息,下一步将融合回声探测仪、多普勒计程器等多种传感器的空间感知信息进行更准确的水下图像色彩校正和图像增强。同时,针对水中的微粒、海水的波动、水下的气泡等造成光的折射,导致图像细节扭曲失真的现象,将进一步改进当前算法以实现水下图像的扭曲复原,提升水下机器人的视觉感知能力。

猜你喜欢
图像增强运算卷积
一种基于轻量级深度网络的无参考光学遥感图像增强算法
重视运算与推理,解决数列求和题
基于3D-Winograd的快速卷积算法设计及FPGA实现
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
有趣的运算
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于图像增强的无人机侦察图像去雾方法