基于卷积长短期记忆的残差注意力去雨网络

2022-09-25 08:42强赞霞鲍先富
计算机应用 2022年9期
关键词:残差卷积图像

强赞霞,鲍先富

(中原工学院计算机学院,郑州 450007)

0 引言

雨天是常见的自然天气,雨天采集的图片通常会出现图像失真和背景遮挡问题。无人驾驶系统(Unmanned Driving System,UDS)常因雨纹和雨雾影响导致无法对周围行车环境进行有效感知。去除雨纹和提升图像质量是高效运用计算机视觉(Computer Vision,CV)算法的关键。为解决无人驾驶车辆在雨天条件下产生的图像质量下降问题,本文采用生成对抗网络(Generative Adversarial Network,GAN)[1]结合长短期记忆(Long Short-Term Memory,LSTM)单元去除图片中的雨纹,提升无人驾驶系统的环境感知能力。

传统去雨任务根据物理成像原理进行建模,取得一定的去雨效果。Reynolds 等[2]将雨图进行分层,结合高斯混合模型作为先验知识进行建模,使用半二次方分裂技术解决非凸问题。通过使用高斯混合模型对去雨模块进行评估,但雨纹补丁位置的严重伪影问题仍有待解决。Kang 等[3]使用传统形态学方法结合双边滤波将图片的高低频成分进行分解,对高频分量中的雨纹噪声进行处理,再与低频分量中的背景信息融合得到去雨的图像。该方法虽能有效定位雨纹位置,但损失了背景图像的高频细节信息,恢复的图像仍存在模糊和伪影问题。Luo 等[4]将雨纹矩阵转化为张量,将雨图分解为背景和雨纹噪声两部分进行处理部分。Li 等[5]将雨纹图分层,对反向传递的梯度进行正则化,使两层梯度信息符合长尾分布和短尾分布,通过迭代解决正则化问题。综合所述,传统方法仅利用雨纹先验知识进行简单有限的线性映射,难以处理大雨中产生的密集雨纹,在细节恢复方面难以取得令人满意的去雨效果。

单幅图像去雨仅凭借物理模型和图片像素的先验信息,以往算法虽能取得不错的雨雾去除效果,但很难在雨纹噪声去除和细节恢复上保持良好的平衡。Qian 等[6]借助专注循环网络生成注意力分布图,将注意力权重送入生成对抗网络进行训练,取得较好的去雨效果,但该网络仅能对附着在镜头的雨滴进行处理。Chen 等[7]借助迁移学习对背景和雨纹进行分离,再使用稀疏泛型卷积和低秩滤波器将雨纹去除问题转化为雨纹分离优化问题。该方法仅使用滤波操作,未考虑不同尺度的特征融合,难以对不同程度的降雨进行适应。Fu 等[8]使用低频滤波将雨图分解,将高频分量送入DerainNet 学习雨图与背景之间的高频分量的对应关系,背景的恢复效果差强人意。Barzegar 等[9]通过使用深度残差单元设计DetailNet,缩小网络中变量的映射空间,验证了网络映射空间大小对去雨效果的影响。Zhang 等[10]提出了基于条件生成对抗网络(Conditional Generative Adversarial Network,CGAN)的去雨网络,利用生成对抗网络的数据生成能力对雨图进行修补,这样做基于一个强制约束,即雨图必须与背景图像不可区分。生成对抗网络(GAN)为训练提供额外的正则化和细化损失函数,结合多尺度判别器和改进的感知损失函数,对伪影的去除效果较好;但由于强制约束的加入,未对雨纹进行定位,部分雨纹没有去除。Jiang 等[11]通过建立多尺度金字塔结构,配合通道残差结构和注意力机制,得到优秀的去雨效果;但网络采用完全监督的方法进行训练,难以对不同大小的雨纹进行适应,容易产生过拟合[12]。Lai 等[13]通过高斯混合模型作为背景和雨纹先验信息,通过预处理除雾方法解决降雨累积问题,除雾方法会增强雨纹;但导致雨纹的对比度和强度远高于真实分布,后续操作不能有效去除增强后的雨纹。Zhang 等[14]使用迭代除雾方法对雨雾累积问题进行处理,增加大量噪声并导致去雨的性能降低,通过感知密度和递归网络处理大雨场景中雨层叠加;但无法修复降雨累积产生的色彩失真问题。

传统去雨和多数基于深度学习的去雨方法均采用分解雨图的方法,将去雨转化为矩阵分解,未对雨纹位置进行定位,存在色彩失真和雨纹残留的问题。针对上述算法存在的问题,本文提出一种基于卷积长短期记忆的残差注意力去雨网络算法。在对雨纹进行去除前,本文算法先使用卷积长短期记忆(Convolutional Long Short-Term Memory,CLSTM)网络[15]生成雨纹注意力图,对雨线进行初始定位;然后迭代使用残差通道注意力单元(Residual Channel Attention Block,RCAB)[16]对色彩信息进行修复,以此提升网络的去雨性能。

1 生成对抗长短期记忆网络

目前大多数去雨算法采用如式(1)所示的物理模型处理单幅图像去雨任务:

其中:I表示拍摄得到的雨图;J表示雨图的背景信息;Si表示雨纹;n表示雨纹数量。去雨主要为了从相机采集的雨图I中恢复清晰的背景图像J,由于背景图像J和雨纹信息Si分布未知,雨纹的大小姿态未知,导致去雨任务变得复杂。本文整合CLSTM 和RCAB 结构,设计新的雨纹去除网络——生成对抗去雨网络(Generative Adversarial Deraining Network,GADN)。

1.1 网络结构设计

GADN 的生成网络(Generative Network,GN)主要由CLSTM 和RCAB 单元组成。GADN 除了GN 还包含判别器网络(Discriminative Network,DN)和VGG-16 网络,网络主体结构如图1 所示。GN 主要借助CLSTM 结构对雨纹进行定位,并产生雨纹MASK,然后利用RCAB 对雨纹信息进行学习。本文在GN 中引入多尺度特征融合思想,通过对雨图进行2倍、4 倍下采样得到尺度金字塔结构,同时在GN 的后半部分中增加RCAB 结构[17],配合残差组(Residual Group,RG)进行雨纹特征融合,最终将各尺度层拟合得到的雨纹特征进行反卷积上采样融合。DN 由7 个卷积模块组成,在网络末尾使用全连接结构判断去雨图与真实背景图片之间的相似性;另外,加入一个VGG-16 网络,并载入网络的预训练权重,计算去雨图和真实背景图之间的概念感知损失(conceptual Perception Loss,PL),加速GN 的网络收敛。

图1 GADN模型的主体结构Fig.1 Main structure of GADN model

表1 GN结构设计Tab.1 GN structure design

1.2 卷积长短期记忆单元

为探求不同雨纹之间的尺度大小关联,同时为增加GN对不同尺度的雨纹的学习能力,研究引入CLSTM 单元学习不同雨图中雨纹的关联性,增加网络对不同尺度雨纹的定位能力。传统LSTM 结构仅适用于序列任务,无法对空间特征进行学习。结合雨纹空间特征分布的相似性,本文采用CLSTM 单元对雨线长度等空间信息进行学习。通过将LSTM中的全连接权重改为卷积权重,得到如图2 所示CLSTM 结构,表达如式(2)所示:

图2 CLSTM结构Fig.2 CLSTM structure

其中:*代表卷积操作;·代表逐元素相乘操作;σ代表Sigmoid 函数;tanh 代表Tanh 激活函数;xt表示输入特征;W为各个卷积的权重矩阵;bi、bf、bc是偏置向量。CLSTM 通过记忆门限权重对雨纹的特征进行记忆,Ht代表处理第t张图片时的隐藏层向量,CLSTM 将传统LSTM 的全连接权重改为卷积权重以更好适应计算机视觉任务,对雨纹的学习状态由X和Ht-1决定。

1.3 模型自适应修正

雨图的高频分量中包含大量雨纹分布信息,不适合在通道之中被平等对待。平等处理会阻碍GN 对雨纹信息的拟合能力,造成许多可直接传输到网络末端的低频分量被GN 主干网络学习,使得GN 对雨纹的学习能力下降。为了使GN专注学习高频成分中的雨纹信息,本文在GN 引入RCAB,并使用残差嵌套结构(Residual In Residual,RIR)构造残差组(RG)。每个RG 结构由多个RCAB 和长跳跃连接(Long Skip Connection,LSC)组成。RCAB 的残差结构和RCAB 的LSC结构允许背景信息的低频分量通过跳跃连接进行直接前向传播,这样的设计使RIR 主体权重能够专注学习雨图高频成分的雨纹信息;同时GN 使用RCAB 中的通道注意力机制(Channel Attention,CA)对雨图高频成分中的背景细节信息赋予较小的权重,以此过滤高频分量中的背景细节信息,借助通道之间的相互依赖,自适应地进行注意力权重调整。

对于输入CA 的特征向量X∈RH×W×C,首先进行全局池化处理(Global Pooling,GP)得到特征图M∈RC,其中X的第k个通道的特征向量通过GP 得到mk,GP 操作使用φgp表示,计算如式(3)所示:

其中:k∈{0,1,…,C-1};H和W分别代表卷积核的高度和宽度;i和j代表特征图中的像素坐标。可将CA 模块处理方法表示如式(4)所示:

其中:δ代表Leaky ReLU 激活函数;Convi×i代表核为i×i的卷积操作;r表示卷积后通道减少倍数。GN 首先对特征图X的每个通道Xk进行GP 处理得到尺寸为1 × 1 ×C的特征向量Xk;然后使用两次1 × 1 的卷积核进行处理,得到尺寸变化先后为1 × 1 ×、1 × 1 ×C的特征向量X2;最后将X2进行Leaky ReLU 函数激活,并与输入CA 模块的特征向量X进行点乘得到X′∈RH×W×C。对于输入RCAB 的特征向 量X0∈RH×W×C的计算方式,如式(5)所示:

其中:X1、X2、Xout∈RH×W×C代表RCAB 中的特征向量;φCA代表CA 模块的处理函数。RCAB 对输入的特征向量X0分别进行卷积、ReLU 函数激活、卷积操作后得到X1,然后将X1送入CA 模块进行缩放得到X2,将X0和X1相加得到输出特征Xout,其中RCAB 中的卷积核大小均为3 × 3。

在RG 模块中存在B个RCAB 模块,一个卷积和LSC 组成,结构如图3(b)所 示。对于送入RG 的特征图X0∈RH×W×C,其特征图的计算如式(6)所示:

图3 残差通道注意力网络Fig.3 Residual channel attention network

1.4 损失函数

GADN 的网络生成器损失LG包括3 项,分别为PL 损失Lps、正则损失项L2和边缘信息损失Ledge,如式(7)所示:

其中:λ1和λ2表示Ledge、Lps损失函数的权重参数,本文λ1和λ2设置为0.05 和0.001 以平衡Ledge损失项。三项损失计算如式(8)~(10)所示:

其中ε 代表接近于0 的参数。

本文中将去雨图与真实背景图片的结构相似性(Structural SIMilarity,SSIM)和峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)加入GN 损失中,如式(8)~(10)所示,其中:fssim和fpsnr分别代表计算Io与IR的SSIM 和PSNR 函数,VGG 表示提取VGG-16 网络的2、4、6 卷积层的特征向量的操作函数,Lap 表示使用拉普拉斯算子提取边缘的函数。DN 损失表示判别器判断GN 生成图片是否为原图所产生的判别损失。根据GAN 定义,该项损失训练趋向0.5 为宜,LD如式(11)所示:

其中:IR代表雨图,Io代表GN 生成的去雨图,Igt代表雨图对应的真实背景图;D(Io)代表Io经过DN 处理得到的概率向量,D(IR)代表IR经过DN 处理得到的概率向量,根据交叉熵值判断Io与IR之间向量的判别误差。

2 实验过程与分析

2.1 实验环境

本文实验基于64 位Ubuntu 21.04 系统,其中CUDA 版本为11.2、CUDNN 版本为8.2、Python 版本为3.7,GPU 为NVIDIA RTX-5000,主机内存为128 GB,GPU 为16 GB。实验基于Tensorlfow-GPU 1.6.0 进行训练,图片尺寸大小为256×376,批处理大小设置3,采用Adam 优化器,初始学习率设为0.2,采用Momentum 优化器,初始学习率设置为0.02,二者学习率采用指数衰减,学习率衰减率设为0.95,且每1 000 轮更新一次。

2.2 数据集

本文实验使用合成的数据集进行测试,验证GADN 的去雨性能,并使用消融实验对GN 各模块性能进行测试,同时使用SOTA(State-Of-The-Art)网络模型进行对比。模型使用的合成数据集共18 200 对雨图,每对包含雨图和相对应的真实背景图。本文在公开的Rain100L、Rain100H 等数据集上与SOTA 模型进行对比,具体训练集及测试集图片组成如表2 所示。

表2 去雨数据集组成Tab.2 Composition of deraining datasets

2.3 消融实验

为验证各模块对模型总体去雨的效果影响,对模型各模块进行消融测试。对CLSTM 的使用次数t、RCAB 模块的迭代次数B、RG 迭代次数C的网络结构进行测试,同时采用公开数据集Real200 进行评估。实验分别测试CLSTM 存在与否、不同RG 模块数量、不同RCAB 模块数量情况下,GADN的去雨性能。实验结果如表3 所示,Model3、Model4、Model5、Model6 模型增加RG 迭代次数的同时,造成网络模型推理时间增加。为了达到模型推理速度和性能的平衡,研究模型将RG 模块的迭代次数设置为10。对比实验Model1、Model2、Model5,CLSTM 对雨纹去除效果,比未加该模块的Model2 测试得到的PSNR 和SSIM 指标增加明显,同时Model5 比Model2、Model1 的效果更好,如表3 和图4 所示,说明CLSTM模块生成的雨纹MASK 对雨纹去除效果有优化作用。

图4 热力图生成对比示意图Fig.4 Heatmap generation and comparison diagram

表3 消融实验结果Tab.3 Experimental results of ablation

模型通过使用不同数量CLSTM 模块、RCAB 模块、RG 模块进行消融测试。对比Model3、Model4、Model5,去雨效果随着RG 数量增加而逐步上升,展现了残差通道注意力机制在图像修复方面的优势,但过多的RG 不利于雨纹的去除,如Model6,较深的网络对于梯度传递效率较差,使得梯度难以有效传递到CLSTM 中,造成CLSTM 中大量参数难以修正。对比Model5、Model7、Model8 中RCAB 的迭代次数B,将B设置为4,由于CLSTM 无法进行并行计算,会大幅增加网络推理时间,所以将t设置为1。综合结果,将GN 结构设置为表现最优Model5 的结构。

2.4 实验结果分析

为客观评价模型性能,本文在6 个公开数据集上进行测试,同时使用现实世界拍摄的降雨数据集Real200 模拟真实场景。本文采用的对比模型为DerainNet(Derain Network)[8]、RESCAN(REcurrent Squeeze-and-Excitation Context Aggregation Net)[20]、PreNet(Progressive Image Deraining Network)[21]、MSPFN(Multi-Scale Progressive Fusion Network)[11]。通 过对比上述算法,对GADN 的去雨性能从PSNR、SSIM 指标和视觉效果方面进行评估。通过对比各模型在各数据集上的测试结果,如表4 和图5 所示。

图5 不同模型的效果对比Fig.5 Effect comparison of different models

表4 去雨效果对比Tab.4 Comparison of rain removal effect

实验结果表明GADN 可取得比其他模型更优的去雨效果。在各测试集上,PSNR 和SSIM 数值与去雨最好的MSPFN模型相比,PSNR 分别提升0.7、2.4、2.2,评价指标SSIM 分别提升0.1、0.1、0.3。GADN 通过使用CLSTM 结构对雨纹位置进行感知,生成的MASK 指导雨纹去除。RCAB 配合残差结构和CLSTM 生成的MASK 对网络进行指导,修正雨线位置上的像素。雨线的色彩修正需要逐步进行,网络使用逐步残差结构逐步进行学习。过多地使用RCAB 和残差结构会造成网络难以训练,梯度难以反向传递回CLSTM 结构,所以使用消融实验探求最佳的RCAB 迭代次数,并将网络逐步优化。

2.5 检测效果对比

为验证GADN 在现实场景下的实用性,本文通过对比去雨前后目标检测算法的检测效果,以此说明雨天条件下,图像去雨对无人驾驶车辆的环境感知能力得提升。通过使用相同权重的YOLOv4(You Only Look Once v4)目标检测模型[22]测试,以此验证无人驾驶系统的环境感知能力的提升。本文使用Rain100H 级别的雨图,进行目标检测测试,并进行可视化对比,如图6 所示。对比发现,经过去雨处理后的图片再进行目标检测,解决了如图6(b)中出现的车辆误检和漏检问题,说明GADN 对无人驾驶系统的环境感知有明显的提升效果,说明了模型有很强的实用性,可适用于无人驾驶系统在雨天场景下的目标检测任务。

图6 去雨前后车辆检测效果对比Fig.6 Comparison of vehicle detection effect before and after deraining

3 结语

对于无人驾驶汽车在雨天行车条件下,车载相机拍摄的图片受雨纹干扰而质量下降的问题,本文提出一种单幅图像去雨算法。本文算法使用卷积长短期记忆单元和残差通道注意力模块,分两步对雨纹进行消除。实验结果表明,该算法解决了人工伪影和雨纹残留问题,展示了通道残差注意力机制在图像修复方面的优势,同时也反映了不同雨纹之间存在序列信息相关,使用循环网络结构有利于对雨线位置进行感知;但本文算法在对不同姿态的雨纹和不同强度的雨线的处理上,鲁棒性还有待加强。接下来将进一步探究多类型天气条件下图像修复问题,并将其运用至无人驾驶、小样本学习任务中。

猜你喜欢
残差卷积图像
基于全卷积神经网络的猪背膘厚快速准确测定
多级计分测验中基于残差统计量的被试拟合研究*
基于图像处理与卷积神经网络的零件识别
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
基于深度卷积网络与空洞卷积融合的人群计数
A、B两点漂流记
卷积神经网络概述
测量数据的残差分析法
名人语录的极简图像表达
连续型过程的二元残差T2控制图