歐建榮 熊孝天 錢 朗 張金區(qū)
(華南師范大學 廣州 510631)
遙感影像在資源調(diào)查、環(huán)境監(jiān)測[1]和城市規(guī)劃等方面都有著重要的應(yīng)用價值,但在遙感影像的成像過程中往往會因其信號頻率、大氣、衛(wèi)星自身等原因而造成某些影像波段的部分損失。從多光譜遙感影像的成像機理來看,多光譜遙感影像波段間存在著某種相關(guān)性,有效地挖掘出波段間的這種相關(guān)性,并利用這種相關(guān)性高精度地還原缺失部分波段在多光譜遙感影像中具有重要應(yīng)用價值[2]。
目前,在多光譜遙感影像波段重建方面,具有較為廣泛應(yīng)用的且不依賴人為主觀性的重建方法主要有線性回歸[3]和非線性回歸法。線性回歸處理方法是假設(shè)多光譜影像各波段之間成線性關(guān)系,盡管多光譜遙感影像各波段之間存在較大的相關(guān)性,但由于地表覆蓋的復雜異質(zhì)性加上其光譜響應(yīng)的多樣性,波段間的復雜關(guān)系難以通過簡單的線性公式得以表現(xiàn)[4]。于是,通過非線性回歸法尋找遙感波段間的相關(guān)性成為研究的焦點。
現(xiàn)有的非線性模型較為簡單,沒有更多地往構(gòu)建更深的網(wǎng)絡(luò)的方向去考慮影像波段之間的相關(guān)性。對于神經(jīng)網(wǎng)絡(luò)算法來說,只要數(shù)據(jù)量足夠大,在網(wǎng)絡(luò)結(jié)構(gòu)能接受的深度范圍內(nèi),控制過擬合、優(yōu)化函數(shù)陷入局部最優(yōu)解、梯度消失、梯度爆炸等求解,會得到性能較好的網(wǎng)絡(luò)結(jié)構(gòu)。為此,本文選取BP神經(jīng)網(wǎng)絡(luò)算法,主要從加深神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)方面去構(gòu)建BP神經(jīng)網(wǎng)絡(luò),通過給BP神經(jīng)網(wǎng)絡(luò)大量的數(shù)據(jù)并進行多次訓練,對訓練出的不同模型進行性能分析,找到最佳反映影像波段間的非線性關(guān)系的模型,再將其應(yīng)用到影像中模擬出所需要還原的缺失的部分影像波段信息,并對所還原的遙感影像進行質(zhì)量評估。
BP神經(jīng)網(wǎng)絡(luò)最早由Rumelhart和Mccelland在《并行分布式處理》一文中提出[5],現(xiàn)已在分類、預測、評價等方面取得廣泛的研究成果。作為一種多層前饋網(wǎng)絡(luò),其強大的非線性關(guān)系能夠模擬眾多因素之間的復雜關(guān)系[6],不需要人為進行權(quán)重賦值,可最大限度消除主觀因素的影響。運用BP神經(jīng)網(wǎng)絡(luò)可以充分利用其自學習的特點,在訓練過程中不斷進行自適應(yīng)調(diào)整,加強計算模型的通用性及合理性[7]。
如圖1所示,標準的BP神經(jīng)網(wǎng)絡(luò)模型包含三層,分別是輸入層、隱藏層和輸出層[8]。在正向傳播過程中,輸入樣本從輸入層傳入,通過隱藏層處理后,傳向輸出層,如果輸出層的實際輸出與期望輸出不在誤差范圍內(nèi),則進行誤差的反向傳播,通過計算輸出層所有神經(jīng)元的期望輸出與實際值之間的總誤差對網(wǎng)絡(luò)權(quán)值和閾值進行調(diào)整,用各層單元的誤差信號修正各單元的權(quán)值,從而使神經(jīng)網(wǎng)絡(luò)實際輸出不斷逼近期望輸出[9]。
圖1 經(jīng)典BP神經(jīng)網(wǎng)絡(luò)模型
在圖1中,Xi為輸入層節(jié)點,Hj為隱藏層節(jié)點,Yk為輸出層節(jié)點,Wij為各層之間的權(quán)重值。BP網(wǎng)絡(luò)是一種單向傳播的多層前饋神經(jīng)網(wǎng)絡(luò),標準BP網(wǎng)絡(luò)算法包括前向傳播和反向傳遞兩個方面。
對于前向傳播,數(shù)據(jù)通過輸入層輸入進行權(quán)值修正,將所得到的加權(quán)和傳到隱藏層,再經(jīng)過激活函數(shù)激活后傳到輸出層[10],如式(1)所示。
其中n為輸入層節(jié)點數(shù),Hj為隱藏層第j節(jié)點輸入加權(quán)和。經(jīng)過激活函數(shù)作用并傳到輸出層,如式(2)所示。
其中Ok為經(jīng)激活函數(shù)作用于隱藏層所輸入的加權(quán)和后所輸出的結(jié)果。常用的激活函數(shù)有Sigmoid、Tanh和ReLU等。雖然Sigmoid激活函數(shù)符合實際,但Sigmoid激活函數(shù)較大的缺點是容易引起梯度消失,當輸入值很小或很大時,梯度趨向于零;另外,對于非零中心化,會影響梯度下降的動態(tài)。Tanh與Sigmoid相比,輸出的范圍變成了零中心化,但梯度消失現(xiàn)象依然存在。Relu修正線性單元有許多優(yōu)點,是目前神經(jīng)網(wǎng)絡(luò)中使用最多的激活函數(shù)[11]。相比于Sigmoid和Tanh,它不會出現(xiàn)梯度消失,而且收斂速度快很多;有些神經(jīng)元的值為零,使網(wǎng)絡(luò)具有saprse性質(zhì),可減小過擬合情況的出現(xiàn)。但它具有一個缺點是在訓練時容易“die”,反向傳播中如果一個參數(shù)為零,后面的參數(shù)就會不更新。對于這種情況,可以由Leak ReLU來解決,Leak Re?lu是對Relu缺點的改進,當輸入值小于零時,輸出值為α,其中α是一個很小的常數(shù),這樣在反向傳播中就不容易出現(xiàn)“die”的情況。因此,本文采用Leak ReLU作為BP神經(jīng)網(wǎng)絡(luò)模型的激活函數(shù)。
對于反向傳播,目的是對網(wǎng)絡(luò)權(quán)值和閾值進行調(diào)整,以使得輸出層的實際輸出值與期望值之間的誤差盡可能地接近預設(shè)值[12],因此需要設(shè)計損失函數(shù)。本實驗所選取的損失函數(shù)為均方誤差函數(shù),該損失函數(shù)是預測數(shù)據(jù)和原始數(shù)據(jù)對應(yīng)點誤差的平方和的均值,反映估計量與被估計量之間差異程度的一種度量,其值越接近于0,說明模型選擇和擬合更好,數(shù)據(jù)預測也越精確,如式(3)所示。
如圖1中,其中dk為設(shè)定的期望值,Ok為實際的輸出值,m為輸出層節(jié)點數(shù)。將連接權(quán)值沿均方誤差E梯度下降方向進行較為準確的調(diào)整,如式(4)所示。
如圖1中,其中wjk為隱藏層和輸出層之間的權(quán)重值,η為學習率。
如此不斷進行前向傳播和反向傳播,直到輸出層的實際輸出值與期望值無限地接近而停止訓練。
本文所采用的數(shù)據(jù)是來自Landsat陸地衛(wèi)星于2009年12月所拍攝的廣州地區(qū)數(shù)據(jù)。由于衛(wèi)星拍攝等原因而造成原始遙感圖像四周及其邊沿存在某些無價值的像素噪音,為了避免影響數(shù)據(jù)的準確性,先對原始遙感圖像進行簡單的預處理,并切除周邊無價值的影像區(qū)域。
隨機切割部分圖像分別作為訓練數(shù)據(jù)集和測試數(shù)據(jù)集。利用PIL,即Python圖片庫功能對預處理完成的多光譜遙感影像進行部分切割,只需要確定所要切割圖像的左上角坐標和右下角坐標即可。本實驗切割了兩組影像數(shù)據(jù),第一組影像大小為997×1051,第二組影像大小為900×1000,其中用第一組用作訓練數(shù)據(jù)集,第二組作為測試數(shù)據(jù)集(測試影像可為任意大?。?。
(此以訓練數(shù)據(jù)為例)將圖像轉(zhuǎn)換為像素并保存成二維數(shù)組數(shù)據(jù)結(jié)構(gòu)形式。利用Opencv功能庫讀取圖像并轉(zhuǎn)化為像素矩陣,再對像素矩陣進行逐像素遍歷,然后對遍歷的像素進行相應(yīng)的結(jié)構(gòu)格式進行調(diào)整,最后按矩陣的形式保存成1047847行7列的二維數(shù)據(jù)組。每個波段的數(shù)據(jù)被作為一列存放于二維數(shù)據(jù)組,因為該實驗以遙感圖像的任意六個波段作為神經(jīng)網(wǎng)絡(luò)的輸入向量以及剩余波段作為輸出向量,所以二維數(shù)據(jù)組中會有七列的像素數(shù)據(jù)。其中每一列代表遙感圖像的每一個波段,F(xiàn)1-F6作為樣本特征向量,L1作為特征對應(yīng)的輸出標簽。所用于訓練的影像轉(zhuǎn)化為像素數(shù)據(jù)集時共有1047847條數(shù)據(jù)樣本。
1)本文所搭建的BP神經(jīng)網(wǎng)絡(luò)模型為五層網(wǎng)絡(luò)結(jié)構(gòu),其中將多光譜遙感影像中任意的六個波段同一位置部分影像作為輸入層的輸入向量,即輸入層神經(jīng)元個數(shù)為6;設(shè)置網(wǎng)絡(luò)隱藏層為三層,每層隱藏層神經(jīng)元個數(shù)分別為12、8、6;輸出層神經(jīng)元個數(shù)為1,即預測生成的損失影像波段部分。該網(wǎng)絡(luò)采用的是BP神經(jīng)網(wǎng)絡(luò)算法,激活函數(shù)為改進后的ReLU函數(shù)Leak ReLU函數(shù),損失函數(shù)為均方誤差函數(shù),優(yōu)化器為Adam。
2)處理過程主要是首先從保存好的二維數(shù)據(jù)組中讀取已轉(zhuǎn)換好的訓練數(shù)據(jù)集,再對數(shù)據(jù)進行平均化計算、標準差計算和數(shù)據(jù)標準化處理等,然后以前六個波段作為六個樣本特征值,第七個波段作為標簽經(jīng)過BP神經(jīng)網(wǎng)絡(luò)訓練并保存模型。
1)利用4.1小節(jié)切割圖像中切取到的第二組影像數(shù)據(jù)900×1000的前六個波段影像作為測試數(shù)據(jù),利用4.2小節(jié)中的數(shù)據(jù)轉(zhuǎn)換方法將該波段影像轉(zhuǎn)換成二維數(shù)組結(jié)構(gòu)形式,其中每個波段數(shù)據(jù)被作為一列存放于二維數(shù)據(jù)組中,即該二維數(shù)組有六列,作為六個樣本特征輸入到4.3小節(jié)訓練好的模型中進行預測并保存生成的預測數(shù)據(jù),將新生成的預測數(shù)據(jù)附加寫入到原二維數(shù)據(jù)組中。
2)利用Pyplot功能庫畫出與需要預測的影像波段對應(yīng)的實際波段影像像素列L1與預測出的像素列L1_pred進行比較,結(jié)果高度相似,如圖2所示。
圖2 影像實際值與預測值對比(其中橫坐標為像素點的個數(shù),縱坐標為像素點對應(yīng)像素值的大?。?/p>
將新生成的預測數(shù)據(jù)還原成圖像并保存。首先獲取新生成的二維數(shù)據(jù)組數(shù)據(jù)并通過遍歷轉(zhuǎn)換成與原用于進行訓練的圖像一樣大小的矩陣,然后將該矩陣轉(zhuǎn)換成數(shù)組形式,最后將其轉(zhuǎn)換成圖像,即生成了預測圖像。
實驗通過影像數(shù)據(jù)預處理、隨機切割圖像以獲取訓練數(shù)據(jù)集和測試數(shù)據(jù)集、影像數(shù)據(jù)轉(zhuǎn)換為像素數(shù)據(jù)、建立模型及參數(shù)初始化、加載模型預測、還原預測數(shù)據(jù)等步驟,將所生成的預測圖像與實際圖像進行比較。下面對線性回歸方法和本文算法進行對比,仔細看的話(如果看不出,可以通過把圖片放在一個文件夾打開切換來看,就可以看出明顯的不同,后面通過質(zhì)量評估數(shù)值說明),可以看出,相比于本文算法所重建的圖像,線性回歸方法所重建的圖像較暗等不足之處。本文算法所重建的圖像與原圖像更為接近相似,由本文算法所預測生成圖像與實際原圖高度相似,如圖3所示。
圖3 圖像預測效果
本實驗采用了三種圖像質(zhì)量評估方法,分別為PSNR、SSIM、MSSIM,同時采用相關(guān)系數(shù)法計算兩圖像之間的相關(guān)程度。
1)PSNR:Peak Signal to Noise Ratio,即峰值信噪比,峰值信號的能量與噪聲的平均能量之比[13]。主要計算公式如式(5):
其中MSE表示圖像X和Y的均方誤差(即噪聲),n為每像素的比特數(shù)。通常表示的時候取log變成分貝(dB),由于MSE為真實圖像與含噪圖像之差的能量均值,而兩者的差即為噪聲,因此PSNR即峰值信號能量與MSE之比。PSNR值越大,就代表失真越少,圖像質(zhì)量越高。當PSNR值在28以上時,圖象質(zhì)量差異不太顯著,當處于35~40時,則肉眼分辨不出差異[14]。
2)SSIM:結(jié)構(gòu)相似性,一種全參考的圖像質(zhì)量評價指標,把與物體結(jié)構(gòu)相關(guān)的亮度和對比度作為圖像中結(jié)構(gòu)信息的定義,分別從亮度、對比度、結(jié)構(gòu)三方面度量圖像的相似性。SSIM取值范圍為[0,1],其值越大,表示圖像失真越少,相似度越高[15]。主要計算公式如式(6):
其中,μ_x、μ_y分別表示圖像X和Y的均值,σ_x、σ_y分別表示圖像X和Y的方差,常數(shù)C_1、C_2分別是為了避免μ_x^2+μ_y^2和σ_x^2+σ_y^2接近0時造成系統(tǒng)的不穩(wěn)定。
3)MSSIM:利用滑動窗將圖像分塊,令分塊總數(shù)為N,考慮到窗口形狀對分塊的影響,采用高斯加權(quán)計算每一窗口的均值、方差以及協(xié)方差,然后計算對應(yīng)塊的結(jié)構(gòu)相似度SSIM,最后將平均值作為兩圖像的結(jié)構(gòu)相似性度量。MSSIM取值范圍為[0,1],其值越大,表示圖像失真越少,相似度越高[16]。主要計算公式如式(7):
其中X、Y為圖像,x_i,y_j為局部SSIM指數(shù)在映射中的位置,MN為局部窗口的數(shù)量。
將原圖和還原的預測生成圖像進行質(zhì)量評估,結(jié)果如表1所示。
表1 算法效果對比
從表1中可以看到線性回歸方法所得的各項質(zhì)量評估值均比本文算法小,即本文算法所生成預測圖像比線性回歸所生成預測圖像效果要好。在本文算法中,原圖像和預測圖像的相關(guān)程度總體高達99%;PSNR值為38.27,在35~40之間,肉眼幾乎分辨不出原圖和預測圖像;SSIM和MSSIM均約為0.97,表明原圖像和預測圖像處于高度相似。綜上所述,總體效果相當不錯。
在搭建BP神經(jīng)網(wǎng)絡(luò)時,神經(jīng)網(wǎng)絡(luò)的隱藏層層數(shù)和隱藏層的隱藏神經(jīng)元個數(shù)應(yīng)該設(shè)為多少是一個重要的問題。因為神經(jīng)網(wǎng)絡(luò)的深度和隱藏層神經(jīng)元的個數(shù)會影響到神經(jīng)網(wǎng)絡(luò)訓練中出現(xiàn)過擬合或者欠擬合的情況。理論上,只要數(shù)據(jù)量足夠大,且在網(wǎng)絡(luò)能接受的最大深度范圍內(nèi),控制好過擬合、優(yōu)化函數(shù)陷入局部最優(yōu)解、梯度消失、梯度爆炸等問題,那么網(wǎng)絡(luò)結(jié)構(gòu)越深則其性能越好[17]。但是在設(shè)置BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的深度時需要參考神經(jīng)網(wǎng)絡(luò)的輸入層和輸出層的神經(jīng)元個數(shù),某層隱藏層隱藏神經(jīng)元的個數(shù)不能太大于或太小于輸入層和輸出層的神經(jīng)元個數(shù),否則容易出現(xiàn)過擬合或欠擬合等問題。本文分別設(shè)置了一層、兩層、三層、四層和五層隱藏層進行多次實驗,通過神經(jīng)網(wǎng)絡(luò)訓練完后的模型對圖像進行質(zhì)量評估所得的效果來確定該BP神經(jīng)網(wǎng)絡(luò)的隱藏層的層數(shù)及隱藏層對應(yīng)的隱藏層神經(jīng)元個數(shù),以表2為例。
表2 隱藏層與質(zhì)量評估值關(guān)系
從表2分析可知,神經(jīng)網(wǎng)絡(luò)隱藏層層數(shù)從一層增加到三層過程中,其圖像質(zhì)量評估值(相關(guān)系數(shù)、PSNR、SSIM、MSSIM)逐漸增大,而三層到五層的過程中,圖像質(zhì)量評估值稍微下降或逐漸沒有什么變化。由此可得,神經(jīng)網(wǎng)絡(luò)隱藏層層數(shù)設(shè)為三層、四層、五層對本實驗效果差別不大,但是神經(jīng)網(wǎng)絡(luò)隱藏層層數(shù)的增加以及隱藏層神經(jīng)元的個數(shù)增加均會加大計算量,時間和空間的開銷均會增加,所以,經(jīng)多次試驗后最終確定設(shè)置隱藏層層數(shù)為三層最為適合,其中各隱藏層的隱藏神經(jīng)元個數(shù)分別為12、8、6。
本實驗所搭建的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)得益于本實驗數(shù)據(jù)超過百萬以及使用的Leak ReLU均可有效防止訓練過程中出現(xiàn)的過擬合等問題。
本文通過運用BP神經(jīng)網(wǎng)絡(luò)算法對Landsat陸地衛(wèi)星所拍攝的廣州地區(qū)多光譜遙感影像進行重建損失的部分波段實驗。首先,去除衛(wèi)星所拍攝原始影像四周無價值的影像部分,接著隨機截取需要重建的損失波段的部分圖像作為訓練數(shù)據(jù)集和測試數(shù)據(jù)集,并將圖像轉(zhuǎn)化為像素數(shù)字形式以用于神經(jīng)網(wǎng)絡(luò)進行訓練;然后,搭建神經(jīng)網(wǎng)絡(luò)模型并進行參數(shù)初始化,加載模型進行數(shù)據(jù)預測,將預測到的像素數(shù)據(jù)還原成圖像;最后,對原圖像和預測生成圖像進行質(zhì)量評估并進行相關(guān)程度計算,驗證了所生成的預測影像的精度;討論了BP神經(jīng)網(wǎng)絡(luò)的深度設(shè)定以及模型相關(guān)參數(shù)對還原損失影像波段的精度影響。結(jié)論如下:
1)BP神經(jīng)網(wǎng)絡(luò)模型能很好地還原損失的部分影像波段,其原圖像與所預測的生成圖像之間的相關(guān)系數(shù)約為0.99,相關(guān)程度極高。通過三種圖像質(zhì)量評估算法(PSRN、SSIM、MSSIM)對實驗結(jié)果進行驗證,其峰值信噪比PSNR值約為38.27,結(jié)構(gòu)相似性SSIM值約為0.97,平均結(jié)構(gòu)相似性MSSIM值約為0.97。總體上,預測生成圖像的精度極高。
2)通過對BP神經(jīng)網(wǎng)絡(luò)深度設(shè)定以及模型相關(guān)參數(shù)的討論分析可得,對于本實驗來說,只要數(shù)據(jù)量足夠大,通過實驗結(jié)果適當?shù)丶由頑P神經(jīng)網(wǎng)絡(luò)的深度層數(shù),網(wǎng)絡(luò)結(jié)構(gòu)性能會變得更好,能夠提升重建圖像質(zhì)量,對還原損失的部分影像波段能夠獲得可靠的結(jié)果。