一种遥感影像混合噪声二阶去除方法
2022-12-05张胜国任超王子彦闫志恒刘桃林郭玥张旭东
张胜国, 任超,2*, 王子彦, 闫志恒, 刘桃林, 郭玥, 张旭东
(1.桂林理工大学测绘地理信息学院, 桂林 541006; 2.广西空间信息与测绘重点实验室, 桂林 541006)
遥感影像中包含了丰富的地物纹理信息,对遥感影像的解译分析已被广泛应用于土地利用、城市规划及环境监测等各个领域[1]。但由于传感器本身存在的缺陷及周围环境因素的影响,遥感影像在获取和传输过程中会受到噪声干扰而导致影像质量下降,影响影像后续的使用与研究[2-3],因此,如何提高影像质量,有效去除影像中的噪声并且尽可能多的保留原始影像的边缘细节及纹理特征一直是遥感影像预处理领域的重点。
目前对遥感影像的处理主要考虑高斯噪声及椒盐噪声[4-5]。近年来,为了降低噪声对影像的干扰,提升影像质量,许多去噪方法、模型相继被提出。Chang等[6]将全变分模型和稀疏表示结合进行遥感影像去噪。徐冬等[7]提出结合主成分分析法与复小波变换的遥感影像去噪方法,该方法首先利用噪声调整的主成分分析法提取特征,再利用复小波变换对低能量成分进行去噪处理。夏琴等[8]将K-奇异值分解(K-singular value decomposition,K-SVD)稀疏表示理论应用于卫星遥感影像去噪。张从梅等[9]针对遥感影像中存在非局部自相似性和稀疏性,提出一种基于非局部自相似性的遥感图像稀疏去噪算法。Dabov等[10]提出了块匹配协同3D过滤(block-matching and 3D filtering,BM3D)的去噪算法,这是一种利用“组块”之间的相关性,通过联合三维滤波实现影像去噪的方法。上述方法都能够有效去除影像中的高斯噪声,但是对椒盐噪声去除效果不佳,并且由于复杂的优化问题,往往在运行效率方面需要大量的时间和计算成本。随着深度学习的快速发展,Zhang等[11]提出了去噪卷积神经网络(denoising convolutional neural networks,DnCNN)模型,该模型对于传统自然图像的高斯降噪取得了不错的效果,但是对于地物纹理丰富的遥感影像降噪仍然存在一些不足,去噪结果容易出现边缘纹理模糊的现象。吴从中等[12]利用残差编解码网络结合边缘增强来实现遥感图像去噪,虽然能够有效去除影像中的高斯噪声,但是同样对椒盐噪声去除效果不佳。
然而,在实际生产中,遥感影像所含噪声并非是单一的,大多为同时包含高斯噪声与椒盐噪声的混合噪声,单一的传统去噪方法在处理含有混合噪声的遥感图像时效果不理想。因此,朱建军等[13]提出了一种三层组合滤波方法,将Bayes小波阈值滤波、自适应Wiener滤波和自适应中值滤波相结合,达到去除混合噪声的目的。邓开元等[14]提出了将三维块匹配算法和自适应中值滤波相结合的组合滤波去噪方法。赵洪臣等[2]结合BM3D算法对高斯噪声的有效去除能力,提出一种集成BM3D方法,用于去除遥感影像的混合噪声。任超等[15]提出了将BM3D和多级非线性加权平均中值滤波相结合的去噪方法对遥感影像中的混合噪声进行去除。尽管组合滤波能够达到去除混合噪声的目的,但由于不同维度滤波之间的相互影响,最终都会残留部分噪声。
因此,在深度学习和空间域滤波去噪的基础上,现提出一种遥感影像混合噪声二阶去除方法。第一阶段,在DnCNN去噪模型的基础上引入扩张卷积,以增加网络的感受野,便于在地物复杂的遥感影像中提取更多的特征信息,同时在网络的深卷积层后引入DropoutLayer层,防止网络出现过拟合,简化网络训练难度,并且以航摄影像作为数据驱动训练去噪模型,然后使用该模型对影像进行初步降噪;第二阶段,在自适应中值滤波的基础上采用最近邻域像素加权中值替换原滤波窗口中值,对初步降噪结果进行二次处理,以提高初步降噪结果的影像质量,有效去除混合噪声中的椒盐噪声,保留更多的影像边缘细节及纹理特征。
1 相关算法原理介绍
1.1 DnCNN去噪模型
DnCNN模型在卷积神经网络(convolutional neural network,CNN)的基础上使用残差学习、正则化及批量归一化等一系列方法来提高模型的去噪性能,能够有效去除图像中含有的高斯噪声。DnCNN算法网络架构主要由三大部分组成:第一部分为第1层,由Conv+ReLU组成,Conv是大小为3×3×C的卷积核,总共有64个,步长为1×1,C用于区分灰度图像和彩色图像,如果输入图像为灰度图,则C=1,如果输入图像为彩色图,则C=3;第二部分为第2至(d-1)层,每一层均由Conv+BN+ReLU组成,Conv是大小为3×3×64的卷积核,每一层的卷积核个数均为64、步长为1×1,BN为64个通道的批量归一化层,ReLU为激活函数。第三部分为最后一层,由Conv组成,该部分使用C个3×3×64的滤波器对处理后的图像进行重构输出。
1.2 扩张卷积
扩大网络的感受野是卷积神经网络中获取更多上下文信息的一种常用方法。目前来说,扩大感受野的常用方法主要有增加网络深度、扩大滤波器尺寸及使用扩张卷积,然而,增加网络深度会导致网络性能下降,扩大滤波器尺寸会引入更多的参数数量和增加网络的计算量,而扩张卷积可以在不增加网络计算量的同时扩大感受野[16]。扩张卷积的原理是在标准的卷积核中注入空洞,以此来增加网络的感受野,所以又将其称为空洞卷积或者膨胀卷积。例如,对于一个卷积核大小为3×3,扩张因子为2,步长为1,层数为n的扩张卷积,其网络感受野大小可以表示为(4n+1)×(4n+1);而对于一个卷积核大小为3×3,步长为1,层数为n的普通卷积,其网络感受野大小表示为(2n+1)×(2n+1)。
1.3 Dropout层
Dropout层是一种能够提升网络模型泛化能力、解决深度学习中网络过拟合问题的方法。其原理是对每一个隐含单元的权值设置一个服从Bernoulli分布的约束条件,如果这个约束条件被激活,则该单元将暂时以P概率从网络中丢弃,这样舍弃了部分特征,提高网络的泛化能力,达到解决网络过拟合的目的[17]。
1.4 自适应中值滤波
传统的自适应中值滤波(adaptive median filter,AMF)是一种非线性滤波,不仅能够有效地去除噪声,而且在一定程度上能够保留边缘纹理细节。该方法在去噪过程中主要分为两个进程,可以定义为进程A与进程B。设X(i,j)为中心像素点(i,j)在进行滤波时对应的窗口(窗口允许的最大尺寸为Mmax),Zmin为窗口X(i,j)中灰度值的最小值,Zmax为窗口X(i,j)中灰度值的最大值,Imed为窗口X(i,j)中灰度值的中值,Z(i,j)为图像像素点(i,j)位置上的灰度值。令
ZA1=Imed-Zmin
(1)
ZA2=Zmax-Imed
(2)
ZB1=Z(i,j)-Zmin
(3)
ZB2=Zmax-Z(i,j)
(4)
滤波具体算法流程如下。
(1)进程A:如果ZA1>0且ZA2>0时,转入进程B;否则,增大窗口X(i,j)尺寸。如果窗口尺寸等于或小于最大窗口尺寸Mmax,则重复进程A,否则输出该像素点灰度值Z(i,j)。
(2)进程B:如果ZB1>0且ZB2>0时,输出该像素点灰度值Z(i,j),否则,输出中值Imed。
2 本文算法构建
虽然DnCNN降噪模型对于自然图像的高斯降噪具有较好的效果,但是对于地形地物复杂的遥感影像,去噪效果一般,尤其是对于含有混合噪声的影像,去噪结果仍然会存在较多的噪声,并且边缘细节及纹理信息不够清晰。因此,在DnCNN模型与自适应中值滤波的基础上,提出一种遥感影像混合噪声二阶去除方法。
在第一阶段,以DnCNN网络结构作为基础框架搭建一阶降噪模型DP-DnCNN,将网络深度设置为20层,在1~19层中的偶数层中,采用扩张因子为2的扩张卷积(DilatedConv),以增加网络的感受野,提升遥感影像特征提取能力,奇数层及第20层则采用普通卷积(Conv),并且在第19层的ReLU层后加入一层概率为0.5的DropoutLayer层,防止网络出现过拟合,提升模型的泛化能力。网络结构主要分为5个部分,第1部分为输入层,由一个ImageinputLayer构成;第2部分为第1层,由Conv+ReLU组成;第3部分为第2~19层,由Conv+BN+ReLU和DilatedConv+BN+ReLU和Conv+BN+ReLU+DropoutLayer组成;第4部分为第20层,由一个Conv组成;第5部分为回归输出层,由一个RegressionLayer构成。网络输入层输入的影像大小为50×50×1,第1层的输入通道为1,卷积核大小为3×3,输出通道为64。第2~19层的输入通道为64,卷积核为3×3,输出通道为64。第20层的输入通道为64,卷积核大小为3×3,输出通道为1。
在第二阶段,由于传统的自适应中值滤波是以其滤波窗口内的中值替换噪声点像素进行输出的,因此窗口内中值的大小将直接影响去噪的效果及影像清晰度,当中值像素点距离待替换噪声点较远时,会导致图像失真,出现模糊现象。因此,本文对传统的自适应中值滤波进行改进,提出自适应最近邻域权值中值滤波(RW-IAMF)。具体改进方式如下,对于进程B的中值输出,采用最近邻域像素加权中值替换原滤波窗口中值,使得输出的像素中值更接近原图像素,提升算法的去噪性能和边缘细节、纹理特征的保留能力。图1为最近邻域像素示意图,其中Z(i-1,j)、Z(i,j-1)、Z(i+1,j)、Z(i,j+1)4个像素点表示点Z(i,j)的最近邻域像素点。
图1 最近邻域像素示意图Fig.1 Schematic diagram of the nearest neighbor pixel
首先在当前滤波窗口内选取噪点的最近邻域像素值集合W[f(i,j)],进而对选取的最近邻域像素值进行噪声检测判断:如果fn(i,j)=0或255,则将fn(i,j)判定为噪声像素,予以剔除,其中fn(i,j)最近邻域像素集合内的某个像素值;对检测后的最近邻域像素值集合取中值Med(W[f(i,j)]),然后以这个中值为基础,参考文献[18]中的加权计算方法,采用式(5)和式(6)计算集合内每一个像素点的加权系数,再采用式(7)将检测后最近邻域像素集合内剩余的像素点与求得的对应的加权系数进行加权求和,最后将计算结果作为滤波输出。
(5)
(6)
(7)
式中:Med{W[f(i,j)]}为最近邻域像素值集合;fn(i,j)为最近邻域像素集合内的某个像素值;N为检测后最近邻域像素集合W[f(i,j)]内剩余的像素点总个数,wn(i,j)为求得的某个像素点的加权系数大小;f(i,j)为滤波输出结果。
图2 本文算法框架流程图Fig.2 Flowchart of the algorithm framework of this paper
本文算法将第一阶段训练好的降噪模型与第二阶段改进的自适应中值滤波相结合,在有效去除混合噪声的同时提升影像边缘细节及纹理特征的保护能力。算法首先采用第一阶段的降噪模型DP-DnCNN对含混合噪声的影像进行初步降噪,然后利用RW-IAMF对输出影像进行二次修正,提高算法对于混合噪声中椒盐噪声的去除能力。算法具体框架流程如图2所示。
3 实验设置与结果分析
3.1 网络模型训练
对于DP-DnCNN网络模型的训练,本文采用University of Twente Research Information提供的ITCVD航拍影像数据集作为训练集,其中包括135张像素为5 616×3 744×3的航拍影像,分辨率为0.1 m。为方便训练,在影像中随机添加均值为0,方差为[0.001,0.01]范围内的高斯噪声,并且将每张影像都随机裁剪成512个50×50的小子块,最终共训练69 120个小子块。网络训练输入的影像大小为50×50,网络训练求解器使用的是带有动量的随机梯度下降(SGDM)优化器,初始学习率设置为0.01且每迭代10个周期学习率下降为原来的1/10,小批量影像块数量大小设置为128。为了防止梯度爆炸,使用梯度裁剪法稳定训练,并将梯度阈值设置为0.005,指定梯度阈值法使用梯度的绝对值。将L2正则化因子参数设置为0.000 1,减少网络过拟合。网络训练是基于Matlab编程进行的,硬件配置为64位Windows10系统,11th Gen Intel(R) Core(TM) i7-11700@2.50 GHz,NVIDIA GeForce RTx 3060。
3.2 遥感影像去噪实验
为验证本文算法的可行性,利用高分2号卫星拍摄的影像作为实验数据进行遥感影像去噪实验,截取影像数据大小为400×400像素,同时对截取的影像分别添加0.001/0.003、0.003/0.005、0.005/0.008(前者是均值为0的高斯噪声方差,后者是椒盐噪声密度)3种不同浓度的噪声,便于对去噪结果进行定量、定性分析。采用均方误差(MSE)[19]、峰值信噪比(PSNR)[20]、平均结构相似度(MSSIM)[21]作为去噪效果评价指标,将本文算法与DnCNN算法、BM3D算法、DP-DnCNN与自适应中值滤波结合算法(DPIA)、DnCNN与RW-IAMF结合算法(DNRW)、DnCNN与自适应中值滤波结合算法(DNIA)、文献[14]方法(BMIA)、文献[15]方法(BMDJ)的去噪效果进行比较,实验结果如表1~表3所示,其中MSE越小、PSNR越大表示去噪质量越好,MSSIM更接近人眼的视觉评价,其值越大表示去噪后得到的影像结构越完整、保留的边缘细节及纹理信息越多。通过表1~表3中的数据对比可以看出,对于遥感影像中的混合噪声,本文算法降噪后得到的均方误差和峰值信噪比均优于其他对比算法,说明本文所提算法针对遥感影像的混合噪声降噪效果明显优于其他算法。对于平均结构相似度这一指标,本文算法降噪后得到的MSSIM结果也均优于其他对比算法,说明本文所提算法相对于其他降噪算法来说,降噪后得到的影像结构更完整,能够保留更多的影像边缘细节及纹理特征。
本文除了从MSE、PSNR和MSSIM 3个指标进行定性、定量评估之外,还在视觉层面对比了各算法的影像去噪效果。图3为各算法在混合噪声浓度为0.003/0.005下的去噪效果图,分析图3可以看出,本文算法不仅能够有效去除影像中含有的混合噪声,而且能够更完整地保留影像结构、影像边缘细节及纹理特征,得到更清晰的影像。进一步分析各算法去噪结果局部放大图(图4)可知,相比组合算法,单一的DnCNN算法和BM3D算法能够有效去除影像中的高斯噪声,但是都对影像中含有的椒盐噪声去噪效果不佳,导致残余噪声较多,并且BM3D算法在影像平滑区域仍然存在边缘细节丢失,纹理区域模糊的问题;DNIA算法、BMIA算法与DNRW算法能够有效去除影像中的混合噪声,但是仍然残留有部分噪声点,相比DNIA与BMIA算法,DNRW算法受最近邻域像素加权中值的影响,残留的噪声点相对较少;BMDJ算法能够更彻底的去除影像中的混合噪声,但是影像去噪结果的边缘细节存在丢失问题,并且影像纹理平滑的区域在视觉上产生了一定的模糊效果;DPIA算法较前几种算法得到的影像去噪结果更清晰,保留的影像结构比较完整,但是仍然存在残余噪声点;比较以上算法的影像去噪结果,本文算法得到的去噪结果均优于以上几种方法,具有更接近于真实影像的视觉效果,不仅能够有效去除影像中的混合噪声,得到更清晰的
表1 各方法影像去噪结果的均方误差(MSE)对比
表2 各方法影像去噪结果的峰值信噪比(PSNR)对比
表3 各方法影像去噪结果的平均结构相似度(MSSIM)对比
图3 各算法去噪效果图Fig.3 Denoising effect diagram of each algorithm
图4 各算法去噪效果局部放大图Fig.4 Partial enlarged view of denoising effect of each algorithm
影像,而且能够保留更多的影像边缘细节及纹理信息,得到更完整的影像结构。
图5 各算法去噪影像边缘检测结果图Fig.5 Image edge detection results of denoising images by each algorithm
3.3 影像边缘检测
为了更直观地说明本文算法对于影像边缘细节信息的保留能力,采用canny算子对各算法去噪结果进行边缘检测,检测结果如图5所示。从图5中可以看出,对比原始影像和本文算法的检测结果,BMIA、BMDJ两种算法去噪后的影像轮廓线条较为稀疏,视觉效果不佳,尤其是BMDJ算法得到的结果,说明原始影像中的一些边缘细节信息在去噪过程中被当作噪声滤除,不能很好地保留影像的边缘细节信息,而BM3D算法检测结果中存在部分杂乱不连续的线条,说明这种方法去噪后的影像仍然存在部分噪声;DnCNN算法去噪后的影像相比原始影像边缘检测结果来看,存在较多杂乱的轮廓线条,说明受椒盐噪声的影响,去噪后的影像仍然残留有较多的噪声,并且从图中还可以看出影像的部分细节信息也被当作噪声滤除;DPIA、DNRW、DNIA 3种算法去噪后影像边缘检测结果相比原始影像与本文算法的边缘检测结果,仍然存在少量不连续的线条,并且存在部分地物轮廓丢失的现象,说明3种算法去噪后结果仍然存在少量噪声且不能很好地保留影像的边缘细节信息;相比上述方法,本文算法去噪后影像得到的边缘轮廓线条较为连续,与原始影像的边缘检测结果较为相似,能够恢复影像中地物的大致轮廓信息,说明本文算法不仅能够有效去除影像中的混合噪声,而且可以保留更多的影像边缘细节,便于后期影像的分类、识别应用。
4 结论
遥感影像噪声会对影像后续的使用和研究产生较大的影响,因此去噪是遥感影像处理中必不可少的环节。针对影像中存在的混合噪声,将航摄影像作为训练数据驱动,在DnCNN去噪模型的基础上引入扩张卷积及DropoutLayer层训练第一阶段的高斯降噪模型,并且与第二阶段的自适应最近邻域权值中值滤波结合,提出了一种遥感影像混合噪声二阶去除方法。分析遥感影像去噪实验结果及去噪影像边缘检测结果,无论从主观视觉效果还是从客观质量评价来看,本文方法都具有较好的去噪性能,且去噪效果优于传统去噪方法,能够有效去除影像中的高斯、椒盐混合噪声,较好地保留影像边缘细节及纹理特征,获得更清晰的影像结果,可应用于实际的遥感影像去噪处理。