侯禹存,宋 辉
(沈阳工业大学 信息科学与工程学院,沈阳 110870)
遥感图像在生成和传输的过程中,由于受到外部环境和成像设备的影响,会在图像上产生一定的随机噪声[1],这极大的影响图像的质量,为后续的处理也带来了困难,去噪的效果好坏会直接影响到后续特征提取以及识别分类等工作的效率[2-5],因此图像去噪在遥感领域十分重要。传统的图像去噪方法主要采取滤波方式,包括空间域滤波和频域滤波,空间域滤波是直接对原始图像的像素点进行处理,将图像与设定的滤波器进行运算,经典的算法有中值滤波[6]、自适应滤波[7]等,在2005年Buades 等人提出了非局部均值[8]方法,通过在图像中选取相似的图像块作为整体求得均值,代替传统的滤波方法仅对一个像素周围区域进行均值运算,相比于局部平均的算法较好的保护了图像边缘和细节纹理特征。文献[9]又将残差图像滤波与非局部均值算法相结合,能够充分地挖掘残差中的图像结构信息,显著地提升了非局部均值算法的去噪性能。文献[10]又将结构相似性指数引入小块相似性的度量当中更进一步的加强了对边缘结构信息的保护,并将其应用于遥感图像的去噪,获得了较好的去噪效果。频域滤波的思想是将含噪声图像从空间域转化到频域,噪声一般集中在图像的高频部分,而图像的其他信息则集中在低频部分,因此可在频域中对图像进行滤波运算,再将滤波后图像转换回空间域,实现滤波去噪。典型的方法有小波变换去噪,早在1995年,Donoho等就提出了基于小波阈值的去噪方法[11],使用一种非常简洁的方法对小波系数进行估计,将原始信号连续进行几次小波分解后,选取了一个特定的阈值,将小于设定阈值的小波系数置零,将大于设定阈值的小波系数予以保留或进行收缩,以此来得到小波系数的估计。此后基于小波变换的图像去噪方法的主要研究方向集中在对于小波系数的处理[12-14],通过设定更加合适的阈值,对噪声进行定位和消除。
近些年来,随着硬件性能的提升,深度学习技术有了很大程度的飞跃,在图像处理领域有着大量的应用。出现了AlexNet、VGGNet、ResNet等多种神经网络模型,这些模型在包括目标检测、图像分类、语义分割等数字图像处理领域都表现出了强大的优势。由于神经网络强大的学习能力,能够自主学习噪声特征,实现含噪图片到无噪图片的映射,无需人工设定去噪参数,因此基于深度学习的去噪方法比传统方法更具优势。2012年Burger[15]等提出使用多层感知器MLP(multi-layer perceptron)来学习噪声图像到无噪图像的映射,成功的将神经网络应用于图像的去噪。2016年,Zhang[16]等提出 DnCNN 模型,引入残差学习的思想,使用网络模型去预测残差图像,可实现对未知噪声的盲降噪。
基于深度学习的图像去噪方法往往通过人工来设计网络模型超参数(网络层数、卷积核尺寸及数量等),而后经过网络训练来获取合适的网络参数,实现网络模型的功能,人工设计主要通过试错的方式进行,尝试对不同结构的网络进行训练,根据经验逐步修改超参数,这大大的增加了工作的复杂度和工作难度,也无法保证最终得到模型的质量。近年来出现了神经网络结构自动搜索的方法(NAS, neural architecture search),通过这种方法可以用计算机来代替人工设计网络模型,通过程序自动搜索出最优异的网络结构。神经网络结构搜索的方法主要由搜索空间、搜索策略以及评估方法三部分构成,在定义了一个搜索空间范围后,通过一定的搜索策略进行搜索,使用合适的评估方法对每次搜索出的模型结构进行评估,将评估结果反馈到搜索策略来修正下一步的搜索方向,以此来搜索出符合要求的最优网络结构。由于DnCNN网络模型在对噪声的预测上表现优异,本文提出将其与小波变换相结合应用于遥感图像去噪,首先通过小波变换将图像分解成不同频率的4个子带部分,而后使用DnCNN模型预测这4个部分各自含有的噪声成分,为了将网络模型能够更加适合于每一个频率子带,采用了基于遗传算法的神经网络结构自动搜索方法来得到4个不同的网络模型,以此针对不同含量的噪声成分使用不同的模型进行预测,实现最优的去噪效果。
小波变换具有能量集中的特性[17],原始信号经过小波变换后,噪声成分的能量主要集中在高频部分且比较均匀的分布在多个幅值较小的小波系数上,而原始信号的能量则集中分布在少数几个幅值较大的小波系数上,因此可以在小波域实现信号与噪声的有效分离。对于一幅大小为N×N的二维图像,将其进行尺度为1的小波变换首先需要按行作N个长度为N的一维数据的小波变换,将图像分解成两部分:左半部分是大小为N×N/2的低频子图像,右半部分是大小为N×N/2的高频子图像,然后把每个子图像再按列作N/2个长度为N的一维小波变换,则原始图像可分解为4个子图像:LL1,HL1,LH1,HH1,其中3个高频分量均包含了较多的边缘轮廓以及噪声信息。在此分解的基础上,可以将低频子图像LL1进行第二级的小波变换,同样得到4个子图像:LL2,HL2,LH2,HH2,即对原始的二维图像进行了尺度为2的小波分解结果,如图1所示。
图1 小波变换模型
DnCNN模型是基于使用重复卷积块的深层神经网络VGG(visual geometry group )设计而成。一般的来说基于深度学习的方法实现的都是从含噪图像到去噪后图像的映射,但与其他基于深度学习的去噪算法不同,DnCNN模型并不会直接输出去噪后的图像,而输出的是对噪声部分的预测,之后再由含噪图像与预测的噪声做差来得到去噪后的图像。模型原理如图2所示,一幅含有噪声的图像由噪声部分和无噪部分相加构成,DnCNN模型经过训练学习出含噪图像与无噪图像之间的差异,也就是原始含噪图像中的噪声部分,即可实现将噪声成分从含有噪声的原始图像当中提取出来达到去噪的目的。在DnCNN模型训练的过程中,网络的输出为预测的残差图像,目标输出为含噪图像与无噪图像之差,需要求得两幅图像的差异作为损失函数来进行误差反向传播修正网络参数,在DnCNN模型中采用的是均方误差(MSE ,mean square error)
图2 DnCNN模型原理图
作为损失函数,具体表达式如式(1)所示:
(1)
式中,R(yi,θ)为预测的残差输出,yi和xi分别代表的是含噪图像和无噪图像,N为样本数目,θ为网络中的参数。
DnCNN网络主要包括残差学习和批量归一化两个核心内容。残差学习是为了解决在卷积神经网络的训练中会出现的退化问题而提出的,当神经网络模型的深度加深时,训练的精度反而会降低,残差学习通过将输入与之后的层直接相连,使网络学习这几层的残差映射,利用这种学习策略可以很好地训练较深的卷积网络,并且可以提高结果的准确性。在神经网络模型训练的过程中,网络前一层的输出会发生非线性的变化,会导致数据波动较大,这种波动在前向传播的过程中会被逐层放大,使得训练过程难度增加,另一方面,对于网络模型不同的输入数据分布,就需要训练得到不同的网络参数去适应,会导致网络的泛化性能大大降低,因此需要在每一层后添加归一化操作,将所有的输入都限定到某一敏感的范围区间之内。
结合了残差学习和批量归一化两个核心内容的DnCNN模型可以实现快速稳定的训练以及更好的去噪效果,在此基础上本文提出了改进DnCNN的去噪方法,结合了小波变换可以在频域对图像进行处理的优势,先利用小波变换将原始含噪图像从空间域转化到频域,以此将高频分布的噪声成分与图像中的其他低频有用信息进行一定程度的分离,随后使用DnCNN模型对不同频率分量中所含的噪声成分进行预测进而剔除。具体流程如图3所示,将原始含噪图像进行尺度为1的小波分解,得到L、H、V、D共4个子带的图片分量,随后分别通入DnCNN中,得到对应输出的4个分量,再将其进行小波逆变换合成为去噪后的图像。
图3 算法流程图
原始的DnCNN网络主要由首尾两个卷积层和中间15个连续相同的卷积块共17层卷积构成,在第一个卷积层中由64个大小为3×3的卷积核将通道数增加至64,以此来提取图像中的特征信息,后面的每个卷积块由一个卷积层、批量归一化层和ReLU激活函数层组成,卷积层一律采用尺寸为3×3的卷积核,通过采用填充的方式保证每次卷积后图像大小不发生改变,网络结构如图4所示。
图4 DnCNN网络结构
原始的DnCNN方法对含噪图像进行直接的噪声预测,在本文算法中,提出将原始图像进行小波分解得到不同频率的4个分量,在这4个分量中存在的噪声成分强度不同,因此对这4个不同频率的子带图片应使用不同的模型结构来进行噪声提取,本文采用了基于遗传算法[18]的搜索策略来实现网络结构自动搜索,以此来代替人工设计模型,使得网络结构能够更加适用于不同频率的图像分量,更进一步的提高算法对于噪声成分的提取能力。遗传算法由美国Michigan大学的Holland教授的团队与1975年提出,遗传算法模拟了自然界中的自然选择和进化的机理,通过构建基因序列并在此基础上进行交叉和变异可以搜索出目标函数的最优解。本文采用了遗传算法的思想,通过将原始模型中连续相同的15个卷积块分成卷积核尺寸分别为3×3和5×5的两种,将两种卷积块进行不同的排列组合以构建不同的基因序列,由交叉和变异两种方式生成搜索空间,将去噪后图像的峰值信噪比作为适应度。具体算法流程如图5所示,首先随机生成一定数目的基因序列作为初始种群并计算适应度,而后在适应度高的基因序列上产生交叉和变异,以此来构成新的种群并继续计算适应度,循环此过程直至适应度满足要求。
图5 遗传算法流程图
实验采用的CPU为Intel Corei9-10900K,GPU使用的是NVIDIA GeForce3090,其显存为24GB,软件运行的环境为Ubuntu18.04系统,CUDA10.1,Python3.7,网络框架采用的是Pytorch1.7。训练集采用UC Merced Land-Use遥感图像数据集[19],是由UC Merced计算机视觉实验室于2010年发布,其中包括公路、建筑、飞机、车辆等21类自然场景图,我们在其中挑选了13类具有去噪需求的场景图像,经过筛选得到了1 300张大小为256×256的图像作为训练样本集,通过对比发现含有真实噪声的遥感图像与含有20以下标准差的高斯噪声图像接近,因此将原始图像中加入了标准差为20的高斯噪声模拟出含噪样本集。对于去噪效果的评价主要包括视觉主观定性评价和定量分析,定量分析主要包括分析去噪图像的峰值信噪比(PSNR, peak signal to noise ratio)以及结构相似性(SSIM, structural similarity),用这两个指标来衡量模型的去噪效果。PSNR是图像降噪问题中的重要衡量指标,它通过图像的均方差进行定义,数值越大代表着降噪程度越好,如公式(2)和(3)所示:
(2)
(3)
式(2)中,W×H为图像的分辨率,I和I0表示去噪后的图像和初始图像。SSIM是从亮度、对比度和结构3个方面来评价两幅图像的相似程度,它的取值范围在0~1之间,数值越大表示图像与作比较的原图越相近,图像信息完整,去噪效果好,如公式(4)~(7)所示:
SSIM(I,I0)=[l(I,I0)]α[c(I,I0)]β[s(I,I0)]γ
(4)
(5)
(6)
(7)
其中:l(I,I0)是两幅图像的亮度比较,c(I,I0)是对比度比较,s(I,I0)是结构比较,μI和μI0分别代表I和I0的平均值,σI和σI0分别代表I和I0的标准差,σII0代表I和I0的协方差,c1,c2,c3分别为常数,一般设定α=β=γ=1。
通过采用基于遗传算法的网络结构自动搜索方法,得到了适合于每个频率分量的网络模型,为了排除模型搜索时的偶然性,对于每个频率模型都进行了20次实验,最终选取出现比例最高模型超参数作为最终的结构,表1为针对不同分量搜索出的最优网络结构,以及最优结构对应的峰值信噪比的值,其中1和0分别代表的是3×3和5×5的两种尺寸的卷积核。
表1 不同分量网络结构
由表1可以看出对于不同频率的子带图像,都搜索出了各自最适合的网络结构,其对应的峰值信噪比的值也都能够达到30 dB以上。
在小波变换过程中,使用不同的小波基函数会影响最终的去噪效果。因此我们比较了4种常用的小波基函数:Haar、Daubechies、Symlet和Coiflet在5张测试图片上的效果,去噪后图像的PSNR和SSIM值如表2和表3所示。
表2 不同小波基函数的PSNR值 dB
表3 不同小波基函数的SSIM值
从表3中可以看出,经由Haar小波基函数分解的图像在去噪后有着更高的PSNR与SSIM值。因此我们最终选取Haar小波作为小波基函数。
为了验证文本方法的去噪效果,我们在遥感图像数据集中选取了12幅图像进行测试,在其中添加了与真实环境噪声强度接近的标准差为20的高斯噪声进行去噪实验。图6为这12幅含有噪声的图像和对应的去噪后图像。
图6 去噪结果图
遥感图像的下一步处理主要包括分割和分类,因此经过去噪后的图像应该保证其中的主要物体轮廓清晰,与背景较容易区分并且能够不被噪声所干扰。对于图像1和图像7~8来说,去噪后图像中的飞机和船舶的整体轮廓保留完整,能够与其背景明显的区分,图像中的噪声干扰得到了去除,能够对图像中的不同物体进行良好的分类;对于图像3~6,11和12中不同排布和密度的建筑群,房屋轮廓完整,去除了共有的噪声后,不同建筑群之间的差异明显,能够较好的服务于对建筑物的分析工作;在图像9和10中,在去除噪声的同时,交通路面以及大部分的车道线信息得到了保护,能够适用于交通方面的应用。总结上述结果可以得出,经由本文方法去噪后的遥感图像仍具备较高的清晰度,在最大程度去除噪声干扰的同时保留图中建筑、车道、车辆和船只等的轮廓信息,能够服务于接下来的工作。图7为去噪过程中含噪声图像的H和V分量在经过网络模型前后的对比,从图中可以看出,本文方法能够更加有针对性的对各频率分量中的噪声成分进行去除,而不影响其中的边缘轮廓等有用信息。
图7 各分量的去噪对比图
本文选用了双边滤波、BM3D[20]和DnCNN方法与本文提出的算法进行对比,PSNR和SSIM的量化对比结果如表4和表5所示。从表中数据可知,在绝大部分图像中本文算法的PSNR值都要好于其他方法,本文算法在12幅图像上PSNR的均值为29.10 dB,相较于双边滤波提高了4.1 dB,相较于DnCNN方法提高了1.02 dB。从SSIM数据中也可以看出经过本文所提出的算法去噪后的图像在结构相似性上也要好于传统方法,在这12幅图中的SSIM平均值可达0.83,高于双边滤波的0.71和BM3D方法的0.69。
表5 不同方法的SSIM值
为了探究本文方法对于不同强度的真实环境噪声的去除效果,在未经处理的原始数据集中挑选了环境噪声干扰较强的几幅图像进行测试,将这几幅遥感图像使用本文方法进行去噪,图8为数据集中含有真实噪声的遥感图像和经过本文方法去噪后的对应结果。从视觉效果上看去噪后的图像仍具有较高的清晰度,建筑物整体轮廓信息保护较好,但与图像背景相近的细小车道线会发生消失。
图8 真实噪声的去噪效果
因为图像的小波分解具有分解尺度这一特征,将图像继续分解可以得到更高尺度的各个频率分量,为了探究加深分解尺度对于最终去噪效果的影响,本文将含噪图像继续进行了尺度为2的分解,得到LL2,HL2,LH2,HH2,HL1,LH1,HH1共7个分量,将这7个分量依次重新训练得到了各自的DnCNN网络结构后,在测试图像上进行去噪并合成的图像见图9,对应的PSNR和SSIM值如表4、5中最后一行所示。
图9 2尺度小波变换的去噪结果
将上述图像与图6中进行尺度为1分解得到的去噪图像相比后可以看出二者差异并不是很明显,仔细观察可发现继续分解后再去噪的图像在微小细节处稍有模糊,比较表4和5中的数据后也可看出其PSNR和SSIM值略低,表明在继续分解的低频图像中可能会存在一定程度上的过度的去噪,进而有损合成后的图像质量,因此最终采用尺度为1的小波分解来进行去噪。
表4 不同方法的PSNR值 dB
本文提出了一种基于小波变换与DnCNN模型相结合的方法实现对遥感图像的去噪。首先通过将含有噪声的遥感图像进行小波分解并得到4个不同频率的分量,而后分别将这4个分量放入4个结构不同的网络模型中进行训练,以此得到4个改进的DnCNN模型实现在不同频率的图像分量上对各自含有的噪声成分进行剔除,最后再将四部分分量重新合成,通过这种先分解、再合成的方法得到去噪后的原始域图像。本文通过实验最终在小波分解的尺度上选择进行尺度为1的分解,小波基函数选取了Haar小波基。设计网络模型时,在借鉴了DnCNN模型的主要框架下,对卷积块的排列顺序和卷积核的尺寸大小进行了调整,采用了基于遗传算法的神经网络结构自动搜素方法代替人工设计,以此对于不同频率的图像分量搜索出了不同网络结构的DnCNN模型以实现最优的去噪效果。实验结果显示,经过本文方法去噪后图片的PSNR以及SSIM数值指标要高于DnCNN模型和其他滤波方法。在视觉主观评价上,经本文算法去噪的图像中的大部分有用信息得到保留,噪声等干扰信息得到有效的剔除。实验中还表明本文的方法对于实际场景下含有真实环境噪声的遥感图像也能够实现较好的去噪,能够在去除噪声的同时,保护图像中建筑物、车辆、船只的轮廓信息,能够满足遥感图像进一步的轮廓提取、分类等应用要求,因此具有一定的应用意义。经本文算法处理后,图像中细小且与背景相似的细节存在一定的丢失,因此如何进一步的将图像中的小对比度信息进行保护是未来的研究方向。