歐建榮 熊孝天 錢 朗 張金區
(華南師范大學 廣州 510631)
遙感影像在資源調查、環境監測[1]和城市規劃等方面都有著重要的應用價值,但在遙感影像的成像過程中往往會因其信號頻率、大氣、衛星自身等原因而造成某些影像波段的部分損失。從多光譜遙感影像的成像機理來看,多光譜遙感影像波段間存在著某種相關性,有效地挖掘出波段間的這種相關性,并利用這種相關性高精度地還原缺失部分波段在多光譜遙感影像中具有重要應用價值[2]。
目前,在多光譜遙感影像波段重建方面,具有較為廣泛應用的且不依賴人為主觀性的重建方法主要有線性回歸[3]和非線性回歸法。線性回歸處理方法是假設多光譜影像各波段之間成線性關系,盡管多光譜遙感影像各波段之間存在較大的相關性,但由于地表覆蓋的復雜異質性加上其光譜響應的多樣性,波段間的復雜關系難以通過簡單的線性公式得以表現[4]。于是,通過非線性回歸法尋找遙感波段間的相關性成為研究的焦點。
現有的非線性模型較為簡單,沒有更多地往構建更深的網絡的方向去考慮影像波段之間的相關性。對于神經網絡算法來說,只要數據量足夠大,在網絡結構能接受的深度范圍內,控制過擬合、優化函數陷入局部最優解、梯度消失、梯度爆炸等求解,會得到性能較好的網絡結構。為此,本文選取BP神經網絡算法,主要從加深神經網絡的結構方面去構建BP神經網絡,通過給BP神經網絡大量的數據并進行多次訓練,對訓練出的不同模型進行性能分析,找到最佳反映影像波段間的非線性關系的模型,再將其應用到影像中模擬出所需要還原的缺失的部分影像波段信息,并對所還原的遙感影像進行質量評估。
BP神經網絡最早由Rumelhart和Mccelland在《并行分布式處理》一文中提出[5],現已在分類、預測、評價等方面取得廣泛的研究成果。作為一種多層前饋網絡,其強大的非線性關系能夠模擬眾多因素之間的復雜關系[6],不需要人為進行權重賦值,可最大限度消除主觀因素的影響。運用BP神經網絡可以充分利用其自學習的特點,在訓練過程中不斷進行自適應調整,加強計算模型的通用性及合理性[7]。
如圖1所示,標準的BP神經網絡模型包含三層,分別是輸入層、隱藏層和輸出層[8]。在正向傳播過程中,輸入樣本從輸入層傳入,通過隱藏層處理后,傳向輸出層,如果輸出層的實際輸出與期望輸出不在誤差范圍內,則進行誤差的反向傳播,通過計算輸出層所有神經元的期望輸出與實際值之間的總誤差對網絡權值和閾值進行調整,用各層單元的誤差信號修正各單元的權值,從而使神經網絡實際輸出不斷逼近期望輸出[9]。

圖1 經典BP神經網絡模型
在圖1中,Xi為輸入層節點,Hj為隱藏層節點,Yk為輸出層節點,Wij為各層之間的權重值。BP網絡是一種單向傳播的多層前饋神經網絡,標準BP網絡算法包括前向傳播和反向傳遞兩個方面。
對于前向傳播,數據通過輸入層輸入進行權值修正,將所得到的加權和傳到隱藏層,再經過激活函數激活后傳到輸出層[10],如式(1)所示。

其中n為輸入層節點數,Hj為隱藏層第j節點輸入加權和。經過激活函數作用并傳到輸出層,如式(2)所示。

其中Ok為經激活函數作用于隱藏層所輸入的加權和后所輸出的結果。常用的激活函數有Sigmoid、Tanh和ReLU等。雖然Sigmoid激活函數符合實際,但Sigmoid激活函數較大的缺點是容易引起梯度消失,當輸入值很小或很大時,梯度趨向于零;另外,對于非零中心化,會影響梯度下降的動態。Tanh與Sigmoid相比,輸出的范圍變成了零中心化,但梯度消失現象依然存在。Relu修正線性單元有許多優點,是目前神經網絡中使用最多的激活函數[11]。相比于Sigmoid和Tanh,它不會出現梯度消失,而且收斂速度快很多;有些神經元的值為零,使網絡具有saprse性質,可減小過擬合情況的出現。但它具有一個缺點是在訓練時容易“die”,反向傳播中如果一個參數為零,后面的參數就會不更新。對于這種情況,可以由Leak ReLU來解決,Leak Re?lu是對Relu缺點的改進,當輸入值小于零時,輸出值為α,其中α是一個很小的常數,這樣在反向傳播中就不容易出現“die”的情況。因此,本文采用Leak ReLU作為BP神經網絡模型的激活函數。
對于反向傳播,目的是對網絡權值和閾值進行調整,以使得輸出層的實際輸出值與期望值之間的誤差盡可能地接近預設值[12],因此需要設計損失函數。本實驗所選取的損失函數為均方誤差函數,該損失函數是預測數據和原始數據對應點誤差的平方和的均值,反映估計量與被估計量之間差異程度的一種度量,其值越接近于0,說明模型選擇和擬合更好,數據預測也越精確,如式(3)所示。

如圖1中,其中dk為設定的期望值,Ok為實際的輸出值,m為輸出層節點數。將連接權值沿均方誤差E梯度下降方向進行較為準確的調整,如式(4)所示。

如圖1中,其中wjk為隱藏層和輸出層之間的權重值,η為學習率。
如此不斷進行前向傳播和反向傳播,直到輸出層的實際輸出值與期望值無限地接近而停止訓練。
本文所采用的數據是來自Landsat陸地衛星于2009年12月所拍攝的廣州地區數據。由于衛星拍攝等原因而造成原始遙感圖像四周及其邊沿存在某些無價值的像素噪音,為了避免影響數據的準確性,先對原始遙感圖像進行簡單的預處理,并切除周邊無價值的影像區域。
隨機切割部分圖像分別作為訓練數據集和測試數據集。利用PIL,即Python圖片庫功能對預處理完成的多光譜遙感影像進行部分切割,只需要確定所要切割圖像的左上角坐標和右下角坐標即可。本實驗切割了兩組影像數據,第一組影像大小為997×1051,第二組影像大小為900×1000,其中用第一組用作訓練數據集,第二組作為測試數據集(測試影像可為任意大小)。
(此以訓練數據為例)將圖像轉換為像素并保存成二維數組數據結構形式。利用Opencv功能庫讀取圖像并轉化為像素矩陣,再對像素矩陣進行逐像素遍歷,然后對遍歷的像素進行相應的結構格式進行調整,最后按矩陣的形式保存成1047847行7列的二維數據組。每個波段的數據被作為一列存放于二維數據組,因為該實驗以遙感圖像的任意六個波段作為神經網絡的輸入向量以及剩余波段作為輸出向量,所以二維數據組中會有七列的像素數據。其中每一列代表遙感圖像的每一個波段,F1-F6作為樣本特征向量,L1作為特征對應的輸出標簽。所用于訓練的影像轉化為像素數據集時共有1047847條數據樣本。
1)本文所搭建的BP神經網絡模型為五層網絡結構,其中將多光譜遙感影像中任意的六個波段同一位置部分影像作為輸入層的輸入向量,即輸入層神經元個數為6;設置網絡隱藏層為三層,每層隱藏層神經元個數分別為12、8、6;輸出層神經元個數為1,即預測生成的損失影像波段部分。該網絡采用的是BP神經網絡算法,激活函數為改進后的ReLU函數Leak ReLU函數,損失函數為均方誤差函數,優化器為Adam。
2)處理過程主要是首先從保存好的二維數據組中讀取已轉換好的訓練數據集,再對數據進行平均化計算、標準差計算和數據標準化處理等,然后以前六個波段作為六個樣本特征值,第七個波段作為標簽經過BP神經網絡訓練并保存模型。
1)利用4.1小節切割圖像中切取到的第二組影像數據900×1000的前六個波段影像作為測試數據,利用4.2小節中的數據轉換方法將該波段影像轉換成二維數組結構形式,其中每個波段數據被作為一列存放于二維數據組中,即該二維數組有六列,作為六個樣本特征輸入到4.3小節訓練好的模型中進行預測并保存生成的預測數據,將新生成的預測數據附加寫入到原二維數據組中。
2)利用Pyplot功能庫畫出與需要預測的影像波段對應的實際波段影像像素列L1與預測出的像素列L1_pred進行比較,結果高度相似,如圖2所示。

圖2 影像實際值與預測值對比(其中橫坐標為像素點的個數,縱坐標為像素點對應像素值的大小)
將新生成的預測數據還原成圖像并保存。首先獲取新生成的二維數據組數據并通過遍歷轉換成與原用于進行訓練的圖像一樣大小的矩陣,然后將該矩陣轉換成數組形式,最后將其轉換成圖像,即生成了預測圖像。
實驗通過影像數據預處理、隨機切割圖像以獲取訓練數據集和測試數據集、影像數據轉換為像素數據、建立模型及參數初始化、加載模型預測、還原預測數據等步驟,將所生成的預測圖像與實際圖像進行比較。下面對線性回歸方法和本文算法進行對比,仔細看的話(如果看不出,可以通過把圖片放在一個文件夾打開切換來看,就可以看出明顯的不同,后面通過質量評估數值說明),可以看出,相比于本文算法所重建的圖像,線性回歸方法所重建的圖像較暗等不足之處。本文算法所重建的圖像與原圖像更為接近相似,由本文算法所預測生成圖像與實際原圖高度相似,如圖3所示。

圖3 圖像預測效果
本實驗采用了三種圖像質量評估方法,分別為PSNR、SSIM、MSSIM,同時采用相關系數法計算兩圖像之間的相關程度。
1)PSNR:Peak Signal to Noise Ratio,即峰值信噪比,峰值信號的能量與噪聲的平均能量之比[13]。主要計算公式如式(5):

其中MSE表示圖像X和Y的均方誤差(即噪聲),n為每像素的比特數。通常表示的時候取log變成分貝(dB),由于MSE為真實圖像與含噪圖像之差的能量均值,而兩者的差即為噪聲,因此PSNR即峰值信號能量與MSE之比。PSNR值越大,就代表失真越少,圖像質量越高。當PSNR值在28以上時,圖象質量差異不太顯著,當處于35~40時,則肉眼分辨不出差異[14]。
2)SSIM:結構相似性,一種全參考的圖像質量評價指標,把與物體結構相關的亮度和對比度作為圖像中結構信息的定義,分別從亮度、對比度、結構三方面度量圖像的相似性。SSIM取值范圍為[0,1],其值越大,表示圖像失真越少,相似度越高[15]。主要計算公式如式(6):

其中,μ_x、μ_y分別表示圖像X和Y的均值,σ_x、σ_y分別表示圖像X和Y的方差,常數C_1、C_2分別是為了避免μ_x^2+μ_y^2和σ_x^2+σ_y^2接近0時造成系統的不穩定。
3)MSSIM:利用滑動窗將圖像分塊,令分塊總數為N,考慮到窗口形狀對分塊的影響,采用高斯加權計算每一窗口的均值、方差以及協方差,然后計算對應塊的結構相似度SSIM,最后將平均值作為兩圖像的結構相似性度量。MSSIM取值范圍為[0,1],其值越大,表示圖像失真越少,相似度越高[16]。主要計算公式如式(7):

其中X、Y為圖像,x_i,y_j為局部SSIM指數在映射中的位置,MN為局部窗口的數量。
將原圖和還原的預測生成圖像進行質量評估,結果如表1所示。

表1 算法效果對比
從表1中可以看到線性回歸方法所得的各項質量評估值均比本文算法小,即本文算法所生成預測圖像比線性回歸所生成預測圖像效果要好。在本文算法中,原圖像和預測圖像的相關程度總體高達99%;PSNR值為38.27,在35~40之間,肉眼幾乎分辨不出原圖和預測圖像;SSIM和MSSIM均約為0.97,表明原圖像和預測圖像處于高度相似。綜上所述,總體效果相當不錯。
在搭建BP神經網絡時,神經網絡的隱藏層層數和隱藏層的隱藏神經元個數應該設為多少是一個重要的問題。因為神經網絡的深度和隱藏層神經元的個數會影響到神經網絡訓練中出現過擬合或者欠擬合的情況。理論上,只要數據量足夠大,且在網絡能接受的最大深度范圍內,控制好過擬合、優化函數陷入局部最優解、梯度消失、梯度爆炸等問題,那么網絡結構越深則其性能越好[17]。但是在設置BP神經網絡結構的深度時需要參考神經網絡的輸入層和輸出層的神經元個數,某層隱藏層隱藏神經元的個數不能太大于或太小于輸入層和輸出層的神經元個數,否則容易出現過擬合或欠擬合等問題。本文分別設置了一層、兩層、三層、四層和五層隱藏層進行多次實驗,通過神經網絡訓練完后的模型對圖像進行質量評估所得的效果來確定該BP神經網絡的隱藏層的層數及隱藏層對應的隱藏層神經元個數,以表2為例。

表2 隱藏層與質量評估值關系
從表2分析可知,神經網絡隱藏層層數從一層增加到三層過程中,其圖像質量評估值(相關系數、PSNR、SSIM、MSSIM)逐漸增大,而三層到五層的過程中,圖像質量評估值稍微下降或逐漸沒有什么變化。由此可得,神經網絡隱藏層層數設為三層、四層、五層對本實驗效果差別不大,但是神經網絡隱藏層層數的增加以及隱藏層神經元的個數增加均會加大計算量,時間和空間的開銷均會增加,所以,經多次試驗后最終確定設置隱藏層層數為三層最為適合,其中各隱藏層的隱藏神經元個數分別為12、8、6。
本實驗所搭建的神經網絡模型結構得益于本實驗數據超過百萬以及使用的Leak ReLU均可有效防止訓練過程中出現的過擬合等問題。
本文通過運用BP神經網絡算法對Landsat陸地衛星所拍攝的廣州地區多光譜遙感影像進行重建損失的部分波段實驗。首先,去除衛星所拍攝原始影像四周無價值的影像部分,接著隨機截取需要重建的損失波段的部分圖像作為訓練數據集和測試數據集,并將圖像轉化為像素數字形式以用于神經網絡進行訓練;然后,搭建神經網絡模型并進行參數初始化,加載模型進行數據預測,將預測到的像素數據還原成圖像;最后,對原圖像和預測生成圖像進行質量評估并進行相關程度計算,驗證了所生成的預測影像的精度;討論了BP神經網絡的深度設定以及模型相關參數對還原損失影像波段的精度影響。結論如下:
1)BP神經網絡模型能很好地還原損失的部分影像波段,其原圖像與所預測的生成圖像之間的相關系數約為0.99,相關程度極高。通過三種圖像質量評估算法(PSRN、SSIM、MSSIM)對實驗結果進行驗證,其峰值信噪比PSNR值約為38.27,結構相似性SSIM值約為0.97,平均結構相似性MSSIM值約為0.97。總體上,預測生成圖像的精度極高。
2)通過對BP神經網絡深度設定以及模型相關參數的討論分析可得,對于本實驗來說,只要數據量足夠大,通過實驗結果適當地加深BP神經網絡的深度層數,網絡結構性能會變得更好,能夠提升重建圖像質量,對還原損失的部分影像波段能夠獲得可靠的結果。