侯禹存,宋 輝
(沈陽工業(yè)大學 信息科學與工程學院,沈陽 110870)
遙感圖像在生成和傳輸?shù)倪^程中,由于受到外部環(huán)境和成像設備的影響,會在圖像上產生一定的隨機噪聲[1],這極大的影響圖像的質量,為后續(xù)的處理也帶來了困難,去噪的效果好壞會直接影響到后續(xù)特征提取以及識別分類等工作的效率[2-5],因此圖像去噪在遙感領域十分重要。傳統(tǒng)的圖像去噪方法主要采取濾波方式,包括空間域濾波和頻域濾波,空間域濾波是直接對原始圖像的像素點進行處理,將圖像與設定的濾波器進行運算,經典的算法有中值濾波[6]、自適應濾波[7]等,在2005年Buades 等人提出了非局部均值[8]方法,通過在圖像中選取相似的圖像塊作為整體求得均值,代替?zhèn)鹘y(tǒng)的濾波方法僅對一個像素周圍區(qū)域進行均值運算,相比于局部平均的算法較好的保護了圖像邊緣和細節(jié)紋理特征。文獻[9]又將殘差圖像濾波與非局部均值算法相結合,能夠充分地挖掘殘差中的圖像結構信息,顯著地提升了非局部均值算法的去噪性能。文獻[10]又將結構相似性指數(shù)引入小塊相似性的度量當中更進一步的加強了對邊緣結構信息的保護,并將其應用于遙感圖像的去噪,獲得了較好的去噪效果。頻域濾波的思想是將含噪聲圖像從空間域轉化到頻域,噪聲一般集中在圖像的高頻部分,而圖像的其他信息則集中在低頻部分,因此可在頻域中對圖像進行濾波運算,再將濾波后圖像轉換回空間域,實現(xiàn)濾波去噪。典型的方法有小波變換去噪,早在1995年,Donoho等就提出了基于小波閾值的去噪方法[11],使用一種非常簡潔的方法對小波系數(shù)進行估計,將原始信號連續(xù)進行幾次小波分解后,選取了一個特定的閾值,將小于設定閾值的小波系數(shù)置零,將大于設定閾值的小波系數(shù)予以保留或進行收縮,以此來得到小波系數(shù)的估計。此后基于小波變換的圖像去噪方法的主要研究方向集中在對于小波系數(shù)的處理[12-14],通過設定更加合適的閾值,對噪聲進行定位和消除。
近些年來,隨著硬件性能的提升,深度學習技術有了很大程度的飛躍,在圖像處理領域有著大量的應用。出現(xiàn)了AlexNet、VGGNet、ResNet等多種神經網絡模型,這些模型在包括目標檢測、圖像分類、語義分割等數(shù)字圖像處理領域都表現(xiàn)出了強大的優(yōu)勢。由于神經網絡強大的學習能力,能夠自主學習噪聲特征,實現(xiàn)含噪圖片到無噪圖片的映射,無需人工設定去噪參數(shù),因此基于深度學習的去噪方法比傳統(tǒng)方法更具優(yōu)勢。2012年Burger[15]等提出使用多層感知器MLP(multi-layer perceptron)來學習噪聲圖像到無噪圖像的映射,成功的將神經網絡應用于圖像的去噪。2016年,Zhang[16]等提出 DnCNN 模型,引入殘差學習的思想,使用網絡模型去預測殘差圖像,可實現(xiàn)對未知噪聲的盲降噪。
基于深度學習的圖像去噪方法往往通過人工來設計網絡模型超參數(shù)(網絡層數(shù)、卷積核尺寸及數(shù)量等),而后經過網絡訓練來獲取合適的網絡參數(shù),實現(xiàn)網絡模型的功能,人工設計主要通過試錯的方式進行,嘗試對不同結構的網絡進行訓練,根據經驗逐步修改超參數(shù),這大大的增加了工作的復雜度和工作難度,也無法保證最終得到模型的質量。近年來出現(xiàn)了神經網絡結構自動搜索的方法(NAS, neural architecture search),通過這種方法可以用計算機來代替人工設計網絡模型,通過程序自動搜索出最優(yōu)異的網絡結構。神經網絡結構搜索的方法主要由搜索空間、搜索策略以及評估方法三部分構成,在定義了一個搜索空間范圍后,通過一定的搜索策略進行搜索,使用合適的評估方法對每次搜索出的模型結構進行評估,將評估結果反饋到搜索策略來修正下一步的搜索方向,以此來搜索出符合要求的最優(yōu)網絡結構。由于DnCNN網絡模型在對噪聲的預測上表現(xiàn)優(yōu)異,本文提出將其與小波變換相結合應用于遙感圖像去噪,首先通過小波變換將圖像分解成不同頻率的4個子帶部分,而后使用DnCNN模型預測這4個部分各自含有的噪聲成分,為了將網絡模型能夠更加適合于每一個頻率子帶,采用了基于遺傳算法的神經網絡結構自動搜索方法來得到4個不同的網絡模型,以此針對不同含量的噪聲成分使用不同的模型進行預測,實現(xiàn)最優(yōu)的去噪效果。
小波變換具有能量集中的特性[17],原始信號經過小波變換后,噪聲成分的能量主要集中在高頻部分且比較均勻的分布在多個幅值較小的小波系數(shù)上,而原始信號的能量則集中分布在少數(shù)幾個幅值較大的小波系數(shù)上,因此可以在小波域實現(xiàn)信號與噪聲的有效分離。對于一幅大小為N×N的二維圖像,將其進行尺度為1的小波變換首先需要按行作N個長度為N的一維數(shù)據的小波變換,將圖像分解成兩部分:左半部分是大小為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 )設計而成。一般的來說基于深度學習的方法實現(xiàn)的都是從含噪圖像到去噪后圖像的映射,但與其他基于深度學習的去噪算法不同,DnCNN模型并不會直接輸出去噪后的圖像,而輸出的是對噪聲部分的預測,之后再由含噪圖像與預測的噪聲做差來得到去噪后的圖像。模型原理如圖2所示,一幅含有噪聲的圖像由噪聲部分和無噪部分相加構成,DnCNN模型經過訓練學習出含噪圖像與無噪圖像之間的差異,也就是原始含噪圖像中的噪聲部分,即可實現(xiàn)將噪聲成分從含有噪聲的原始圖像當中提取出來達到去噪的目的。在DnCNN模型訓練的過程中,網絡的輸出為預測的殘差圖像,目標輸出為含噪圖像與無噪圖像之差,需要求得兩幅圖像的差異作為損失函數(shù)來進行誤差反向傳播修正網絡參數(shù),在DnCNN模型中采用的是均方誤差(MSE ,mean square error)
圖2 DnCNN模型原理圖
作為損失函數(shù),具體表達式如式(1)所示:
(1)
式中,R(yi,θ)為預測的殘差輸出,yi和xi分別代表的是含噪圖像和無噪圖像,N為樣本數(shù)目,θ為網絡中的參數(shù)。
DnCNN網絡主要包括殘差學習和批量歸一化兩個核心內容。殘差學習是為了解決在卷積神經網絡的訓練中會出現(xiàn)的退化問題而提出的,當神經網絡模型的深度加深時,訓練的精度反而會降低,殘差學習通過將輸入與之后的層直接相連,使網絡學習這幾層的殘差映射,利用這種學習策略可以很好地訓練較深的卷積網絡,并且可以提高結果的準確性。在神經網絡模型訓練的過程中,網絡前一層的輸出會發(fā)生非線性的變化,會導致數(shù)據波動較大,這種波動在前向傳播的過程中會被逐層放大,使得訓練過程難度增加,另一方面,對于網絡模型不同的輸入數(shù)據分布,就需要訓練得到不同的網絡參數(shù)去適應,會導致網絡的泛化性能大大降低,因此需要在每一層后添加歸一化操作,將所有的輸入都限定到某一敏感的范圍區(qū)間之內。
結合了殘差學習和批量歸一化兩個核心內容的DnCNN模型可以實現(xiàn)快速穩(wěn)定的訓練以及更好的去噪效果,在此基礎上本文提出了改進DnCNN的去噪方法,結合了小波變換可以在頻域對圖像進行處理的優(yōu)勢,先利用小波變換將原始含噪圖像從空間域轉化到頻域,以此將高頻分布的噪聲成分與圖像中的其他低頻有用信息進行一定程度的分離,隨后使用DnCNN模型對不同頻率分量中所含的噪聲成分進行預測進而剔除。具體流程如圖3所示,將原始含噪圖像進行尺度為1的小波分解,得到L、H、V、D共4個子帶的圖片分量,隨后分別通入DnCNN中,得到對應輸出的4個分量,再將其進行小波逆變換合成為去噪后的圖像。
圖3 算法流程圖
原始的DnCNN網絡主要由首尾兩個卷積層和中間15個連續(xù)相同的卷積塊共17層卷積構成,在第一個卷積層中由64個大小為3×3的卷積核將通道數(shù)增加至64,以此來提取圖像中的特征信息,后面的每個卷積塊由一個卷積層、批量歸一化層和ReLU激活函數(shù)層組成,卷積層一律采用尺寸為3×3的卷積核,通過采用填充的方式保證每次卷積后圖像大小不發(fā)生改變,網絡結構如圖4所示。
圖4 DnCNN網絡結構
原始的DnCNN方法對含噪圖像進行直接的噪聲預測,在本文算法中,提出將原始圖像進行小波分解得到不同頻率的4個分量,在這4個分量中存在的噪聲成分強度不同,因此對這4個不同頻率的子帶圖片應使用不同的模型結構來進行噪聲提取,本文采用了基于遺傳算法[18]的搜索策略來實現(xiàn)網絡結構自動搜索,以此來代替人工設計模型,使得網絡結構能夠更加適用于不同頻率的圖像分量,更進一步的提高算法對于噪聲成分的提取能力。遺傳算法由美國Michigan大學的Holland教授的團隊與1975年提出,遺傳算法模擬了自然界中的自然選擇和進化的機理,通過構建基因序列并在此基礎上進行交叉和變異可以搜索出目標函數(shù)的最優(yōu)解。本文采用了遺傳算法的思想,通過將原始模型中連續(xù)相同的15個卷積塊分成卷積核尺寸分別為3×3和5×5的兩種,將兩種卷積塊進行不同的排列組合以構建不同的基因序列,由交叉和變異兩種方式生成搜索空間,將去噪后圖像的峰值信噪比作為適應度。具體算法流程如圖5所示,首先隨機生成一定數(shù)目的基因序列作為初始種群并計算適應度,而后在適應度高的基因序列上產生交叉和變異,以此來構成新的種群并繼續(xù)計算適應度,循環(huán)此過程直至適應度滿足要求。
圖5 遺傳算法流程圖
實驗采用的CPU為Intel Corei9-10900K,GPU使用的是NVIDIA GeForce3090,其顯存為24GB,軟件運行的環(huán)境為Ubuntu18.04系統(tǒng),CUDA10.1,Python3.7,網絡框架采用的是Pytorch1.7。訓練集采用UC Merced Land-Use遙感圖像數(shù)據集[19],是由UC Merced計算機視覺實驗室于2010年發(fā)布,其中包括公路、建筑、飛機、車輛等21類自然場景圖,我們在其中挑選了13類具有去噪需求的場景圖像,經過篩選得到了1 300張大小為256×256的圖像作為訓練樣本集,通過對比發(fā)現(xiàn)含有真實噪聲的遙感圖像與含有20以下標準差的高斯噪聲圖像接近,因此將原始圖像中加入了標準差為20的高斯噪聲模擬出含噪樣本集。對于去噪效果的評價主要包括視覺主觀定性評價和定量分析,定量分析主要包括分析去噪圖像的峰值信噪比(PSNR, peak signal to noise ratio)以及結構相似性(SSIM, structural similarity),用這兩個指標來衡量模型的去噪效果。PSNR是圖像降噪問題中的重要衡量指標,它通過圖像的均方差進行定義,數(shù)值越大代表著降噪程度越好,如公式(2)和(3)所示:
(2)
(3)
式(2)中,W×H為圖像的分辨率,I和I0表示去噪后的圖像和初始圖像。SSIM是從亮度、對比度和結構3個方面來評價兩幅圖像的相似程度,它的取值范圍在0~1之間,數(shù)值越大表示圖像與作比較的原圖越相近,圖像信息完整,去噪效果好,如公式(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的協(xié)方差,c1,c2,c3分別為常數(shù),一般設定α=β=γ=1。
通過采用基于遺傳算法的網絡結構自動搜索方法,得到了適合于每個頻率分量的網絡模型,為了排除模型搜索時的偶然性,對于每個頻率模型都進行了20次實驗,最終選取出現(xiàn)比例最高模型超參數(shù)作為最終的結構,表1為針對不同分量搜索出的最優(yōu)網絡結構,以及最優(yōu)結構對應的峰值信噪比的值,其中1和0分別代表的是3×3和5×5的兩種尺寸的卷積核。
表1 不同分量網絡結構
由表1可以看出對于不同頻率的子帶圖像,都搜索出了各自最適合的網絡結構,其對應的峰值信噪比的值也都能夠達到30 dB以上。
在小波變換過程中,使用不同的小波基函數(shù)會影響最終的去噪效果。因此我們比較了4種常用的小波基函數(shù):Haar、Daubechies、Symlet和Coiflet在5張測試圖片上的效果,去噪后圖像的PSNR和SSIM值如表2和表3所示。
表2 不同小波基函數(shù)的PSNR值 dB
表3 不同小波基函數(shù)的SSIM值
從表3中可以看出,經由Haar小波基函數(shù)分解的圖像在去噪后有著更高的PSNR與SSIM值。因此我們最終選取Haar小波作為小波基函數(shù)。
為了驗證文本方法的去噪效果,我們在遙感圖像數(shù)據集中選取了12幅圖像進行測試,在其中添加了與真實環(huán)境噪聲強度接近的標準差為20的高斯噪聲進行去噪實驗。圖6為這12幅含有噪聲的圖像和對應的去噪后圖像。
圖6 去噪結果圖
遙感圖像的下一步處理主要包括分割和分類,因此經過去噪后的圖像應該保證其中的主要物體輪廓清晰,與背景較容易區(qū)分并且能夠不被噪聲所干擾。對于圖像1和圖像7~8來說,去噪后圖像中的飛機和船舶的整體輪廓保留完整,能夠與其背景明顯的區(qū)分,圖像中的噪聲干擾得到了去除,能夠對圖像中的不同物體進行良好的分類;對于圖像3~6,11和12中不同排布和密度的建筑群,房屋輪廓完整,去除了共有的噪聲后,不同建筑群之間的差異明顯,能夠較好的服務于對建筑物的分析工作;在圖像9和10中,在去除噪聲的同時,交通路面以及大部分的車道線信息得到了保護,能夠適用于交通方面的應用。總結上述結果可以得出,經由本文方法去噪后的遙感圖像仍具備較高的清晰度,在最大程度去除噪聲干擾的同時保留圖中建筑、車道、車輛和船只等的輪廓信息,能夠服務于接下來的工作。圖7為去噪過程中含噪聲圖像的H和V分量在經過網絡模型前后的對比,從圖中可以看出,本文方法能夠更加有針對性的對各頻率分量中的噪聲成分進行去除,而不影響其中的邊緣輪廓等有用信息。
圖7 各分量的去噪對比圖
本文選用了雙邊濾波、BM3D[20]和DnCNN方法與本文提出的算法進行對比,PSNR和SSIM的量化對比結果如表4和表5所示。從表中數(shù)據可知,在絕大部分圖像中本文算法的PSNR值都要好于其他方法,本文算法在12幅圖像上PSNR的均值為29.10 dB,相較于雙邊濾波提高了4.1 dB,相較于DnCNN方法提高了1.02 dB。從SSIM數(shù)據中也可以看出經過本文所提出的算法去噪后的圖像在結構相似性上也要好于傳統(tǒng)方法,在這12幅圖中的SSIM平均值可達0.83,高于雙邊濾波的0.71和BM3D方法的0.69。
表5 不同方法的SSIM值
為了探究本文方法對于不同強度的真實環(huán)境噪聲的去除效果,在未經處理的原始數(shù)據集中挑選了環(huán)境噪聲干擾較強的幾幅圖像進行測試,將這幾幅遙感圖像使用本文方法進行去噪,圖8為數(shù)據集中含有真實噪聲的遙感圖像和經過本文方法去噪后的對應結果。從視覺效果上看去噪后的圖像仍具有較高的清晰度,建筑物整體輪廓信息保護較好,但與圖像背景相近的細小車道線會發(fā)生消失。
圖8 真實噪聲的去噪效果
因為圖像的小波分解具有分解尺度這一特征,將圖像繼續(xù)分解可以得到更高尺度的各個頻率分量,為了探究加深分解尺度對于最終去噪效果的影響,本文將含噪圖像繼續(xù)進行了尺度為2的分解,得到LL2,HL2,LH2,HH2,HL1,LH1,HH1共7個分量,將這7個分量依次重新訓練得到了各自的DnCNN網絡結構后,在測試圖像上進行去噪并合成的圖像見圖9,對應的PSNR和SSIM值如表4、5中最后一行所示。
圖9 2尺度小波變換的去噪結果
將上述圖像與圖6中進行尺度為1分解得到的去噪圖像相比后可以看出二者差異并不是很明顯,仔細觀察可發(fā)現(xiàn)繼續(xù)分解后再去噪的圖像在微小細節(jié)處稍有模糊,比較表4和5中的數(shù)據后也可看出其PSNR和SSIM值略低,表明在繼續(xù)分解的低頻圖像中可能會存在一定程度上的過度的去噪,進而有損合成后的圖像質量,因此最終采用尺度為1的小波分解來進行去噪。
表4 不同方法的PSNR值 dB
本文提出了一種基于小波變換與DnCNN模型相結合的方法實現(xiàn)對遙感圖像的去噪。首先通過將含有噪聲的遙感圖像進行小波分解并得到4個不同頻率的分量,而后分別將這4個分量放入4個結構不同的網絡模型中進行訓練,以此得到4個改進的DnCNN模型實現(xiàn)在不同頻率的圖像分量上對各自含有的噪聲成分進行剔除,最后再將四部分分量重新合成,通過這種先分解、再合成的方法得到去噪后的原始域圖像。本文通過實驗最終在小波分解的尺度上選擇進行尺度為1的分解,小波基函數(shù)選取了Haar小波基。設計網絡模型時,在借鑒了DnCNN模型的主要框架下,對卷積塊的排列順序和卷積核的尺寸大小進行了調整,采用了基于遺傳算法的神經網絡結構自動搜素方法代替人工設計,以此對于不同頻率的圖像分量搜索出了不同網絡結構的DnCNN模型以實現(xiàn)最優(yōu)的去噪效果。實驗結果顯示,經過本文方法去噪后圖片的PSNR以及SSIM數(shù)值指標要高于DnCNN模型和其他濾波方法。在視覺主觀評價上,經本文算法去噪的圖像中的大部分有用信息得到保留,噪聲等干擾信息得到有效的剔除。實驗中還表明本文的方法對于實際場景下含有真實環(huán)境噪聲的遙感圖像也能夠實現(xiàn)較好的去噪,能夠在去除噪聲的同時,保護圖像中建筑物、車輛、船只的輪廓信息,能夠滿足遙感圖像進一步的輪廓提取、分類等應用要求,因此具有一定的應用意義。經本文算法處理后,圖像中細小且與背景相似的細節(jié)存在一定的丟失,因此如何進一步的將圖像中的小對比度信息進行保護是未來的研究方向。