劉 春,楊 懌,周 源,周驍騰,
(1. 同濟大學測繪與地理信息學院,上海200092;2. 北京大學大數(shù)據(jù)科學研究中心,北京100871;3. 上海同繁勘測工程科技有限公司,上海200092)
城市河網(wǎng)水質(zhì)是城市生態(tài)環(huán)境的重要評價指標之一,也直接影響著城市民生和經(jīng)濟發(fā)展等諸多方面,因此快速和高效的水質(zhì)監(jiān)測技術(shù)在水環(huán)境的保護中起著重要作用。上海市計劃至2020 年基本消滅劣五類水體,進而整治四類、五類水體,以不斷改善城市水環(huán)境。截至目前,主要依靠人力摸排和水文站定點監(jiān)測的方法對河流污染情況進行排查[1],但這些方法耗費較多的人力和物力,而且時空分辨率較低,難以滿足水環(huán)境動態(tài)監(jiān)測的需求[2]。
遙感技術(shù)的發(fā)展為快速、動態(tài)、全覆蓋的水質(zhì)監(jiān)測提供了很好的技術(shù)手段。相對于內(nèi)陸河流水體,海洋和大型湖泊水體更容易被遙感手段觀測。隨著各國環(huán)境監(jiān)測衛(wèi)星的不斷研發(fā)和投入使用,針對海洋和大型湖泊的遙感水質(zhì)監(jiān)測技術(shù)體系已較為成熟。Mohdhasmadi 等[3]建立了法國地球觀測系統(tǒng)(SPOT)衛(wèi)星的近紅外波段反射率與水質(zhì)濁度的關(guān)系;Hellweger 等[4]發(fā)現(xiàn)美國陸地衛(wèi)星專題制圖儀(Landsat TM)的綠色和紅色波段的比值與水體中葉綠素A 的含量成強線性相關(guān),并實驗驗證了反演可行性;Tehrani 等[5]利用美國海洋水色衛(wèi)星的寬視場水色掃描儀(SeaWiFS)、美國中分辨率成像光譜儀(MODIS)和歐空局ENVISAT 衛(wèi)星的中等分辨率成像頻譜儀(MERIS)的若干波段組合反演了有色溶解有機物和溶解有機碳濃度。以上研究主要采用線性模型進行回歸反演,計算簡單,對數(shù)據(jù)依賴小,但模型的物理描述機制不夠充分。隨著機器學習技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡方法為建立更復雜、更準確的反演模型提供了可能,并且已有研究表明,基于神經(jīng)網(wǎng)絡的水質(zhì)遙感分析效果優(yōu)于傳統(tǒng)方法[6-7]。
將海洋和大型湖泊水體的水質(zhì)遙感監(jiān)測技術(shù)應用于城市河網(wǎng),主要面臨2個主要問題。首先,城市水質(zhì)監(jiān)測常關(guān)注易出現(xiàn)污染源頭的河網(wǎng)中上游部分,而這些河流的主干部分寬度通常為數(shù)十米,支流的寬度則常僅有數(shù)米,衛(wèi)星遙感影像的空間分辨率往往無法達到城市相應水質(zhì)監(jiān)測的要求。為這一問題提供解決方案的是空間分辨率可達厘米級的無人機低空多光譜遙感技術(shù),然而高分辨率的無人機低空多光譜遙感影像數(shù)據(jù)量更大。傳統(tǒng)影像分析的統(tǒng)計模型雖然算法簡便,能夠快速對遙感影像進行處理,但是容易出現(xiàn)模型有偏問題,并且在建立模型時需要進行大量的光譜與水質(zhì)參數(shù)相關(guān)性分析、回歸模型擬合優(yōu)度檢驗等前期工作?;谏窠?jīng)網(wǎng)絡可以建立更復雜、更能反映多變水質(zhì)狀況的模型,但計算復雜度往往顯著高于傳統(tǒng)模型,使遙感影像的處理速度變得很慢,難以在實際工程項目中進行規(guī)?;瘧?。
目前在深度學習和圖像模式識別領域中,卷積神經(jīng)網(wǎng)絡(CNN)方法在保留傳統(tǒng)神經(jīng)網(wǎng)絡模型復雜度的同時,能夠快速針對圖像進行運算[8-9]?;诰矸e神經(jīng)網(wǎng)絡建立分析模型,對無人機低空多光譜遙感影像進行分析,是城市河網(wǎng)水質(zhì)監(jiān)測的一個潛在的有效途徑。
以城市河流水體為研究對象,建立支持水質(zhì)反演模型自動化建模和低空遙感圖像快速處理的水環(huán)境遙感監(jiān)測數(shù)據(jù)處理方案。具體地,基于卷積神經(jīng)網(wǎng)絡模型框架,提出一個可以對無人機多光譜遙感影像進行水質(zhì)等級分類的算法。
為實現(xiàn)基于無人機低空多光譜遙感數(shù)據(jù)的城市河流全流域水質(zhì)等級分類,給出了如圖1 所示的總體算法思路。該算法包括3個主要步驟:數(shù)據(jù)準備、神經(jīng)網(wǎng)絡的設計與訓練、對分類結(jié)果的評價。
圖1 水質(zhì)等級分類算法流程Fig.1 Flow chart of water quality classification algorithm
無人機低空多光譜遙感影像數(shù)據(jù)是一類新型數(shù)據(jù),是無人機低空遙感獲取的、包含紅綠藍三波段和若干定制了中心波長的窄帶波段。這類數(shù)據(jù)現(xiàn)有數(shù)據(jù)量較小,并且數(shù)據(jù)結(jié)構(gòu)不同于傳統(tǒng)圖像語義分割領域使用的可見光圖像,因此難以基于現(xiàn)有的成熟網(wǎng)絡,如VGG模型[10]等,實現(xiàn)遷移學習[11],而需從底層架構(gòu)訓練卷積神經(jīng)網(wǎng)絡。在本研究的圖像像素級標注問題上,Ronneberger 等[12]提出的U 型全卷積神經(jīng)網(wǎng)絡(UFCNN)是一個滿足前述需求并具有良好泛化能力的模型。U型全卷積神經(jīng)網(wǎng)絡已經(jīng)應用于遙感圖像解譯[13-14]?;谠摼W(wǎng)絡架構(gòu),設計用于水質(zhì)等級分類的卷積神經(jīng)網(wǎng)絡。
設計架構(gòu)如圖2 所示的U 型全卷積神經(jīng)網(wǎng)絡。網(wǎng)絡共20層(未計入輸入層)。前9層類似于常規(guī)卷積神經(jīng)網(wǎng)絡,由卷積層和池化層交替構(gòu)成,用于特征提??;后9 層是由卷積層和上采樣層交替構(gòu)成的圖像重建部分;中間包含2 個連接層,分別連接第3 層與第13 層、第6 層與第11 層,即同一尺度上的原始特征圖與上采樣結(jié)果特征圖,以融合圖像特征和空間位置信息。網(wǎng)絡的輸入是五通道的訓練樣本,輸出是以獨熱編碼(one-hot encoding)表示的分割結(jié)果。對于網(wǎng)絡中使用的卷積層,除第10層、第12層、第14層和輸出層采用1×1卷積來壓縮特征維度外,其余均采用3×3卷積;所有卷積層的移動步長是1,補零(padding)方式為‘same'。池化層采用最大池化(max-pooling)算法,池化因子為2。上采樣層采用反卷積算法[15],反卷積層使用3×3 卷積核,步長與池化層對應設為2。網(wǎng)絡參數(shù)總個數(shù)為32 213。損失函數(shù)使用多分類交叉熵函數(shù)。
所設計的網(wǎng)絡架構(gòu)深度為3,即包含了3次最大池化和3 次反卷積上采樣。在前期測試網(wǎng)絡深度時,深度為3的網(wǎng)絡測試精度高于深度為2的網(wǎng)絡測試精度,而深度為4 和5 的網(wǎng)絡測試精度與深度為3的網(wǎng)絡測試精度基本相同,因此網(wǎng)絡深度采用3。
圖2 水質(zhì)等級分類神經(jīng)網(wǎng)絡架構(gòu)Fig.2 Neural network architecture for water quality classification
對于分類結(jié)果,以常用的混淆矩陣及在其基礎上計算的正確率、準確率、召回率和F分數(shù)等作為評價指標,計算式分別如下所示:
式中:A表示正確率;P表示準確率;R表示召回率;F表示F分數(shù);pij表示混淆矩陣第i行第j列的元素,第i行表示真實類別為第i類的像元,第j列表示分類結(jié)果為第j類的像元。
對于本研究的神經(jīng)網(wǎng)絡訓練結(jié)果,使用所有類別分類正確率的均值作為神經(jīng)網(wǎng)絡的分類精度。
使用了來自2個不同實驗區(qū)的數(shù)據(jù)對算法進行穩(wěn)定性和可行性驗證。
實驗區(qū)1位于上海市嘉定區(qū)。實驗區(qū)范圍東西向跨度約800 m,南北向跨度約900 m。實驗區(qū)內(nèi)部的河流主要是位于某一校園內(nèi)部的人工河流,水系總長度約5.0 km,平均水深約0.5 m,水域總面積約0.50 km2。該河流水源主要為降水,沒有污水排放,亦不與校區(qū)外部河流直接相連,水質(zhì)較好。實驗區(qū)西南角包含一段蘊藻浜支流,流經(jīng)校園外部的居民區(qū)和工業(yè)區(qū),水質(zhì)較校園內(nèi)部略差。
實驗區(qū)2位于上海市寶山區(qū)楊行鎮(zhèn)。實驗區(qū)范圍東西向跨度約5 500 m,南北向跨度約3 500 m。實驗區(qū)內(nèi)部的若干河流在區(qū)域內(nèi)穿過綠地、居民區(qū)和工業(yè)區(qū),在實驗區(qū)外部匯入黃浦江。水系總長度約20 km,水域總面積約0.5 km2。圖3是2個實驗區(qū)的位置示意圖。
圖3 數(shù)據(jù)采集區(qū)域位置Fig.3 Experiment area position
數(shù)據(jù)采集方式為無人機低空遙感。無人機作業(yè)時天氣晴朗,實驗水域在作業(yè)前1 個月內(nèi)未發(fā)生特殊污染情況,水體水質(zhì)狀況基本穩(wěn)定。無人機搭載的相機為多光譜相機,5個波段依次為紅―綠―藍可見光波段、675 nm 和705 nm 2 個窄帶多光譜波段,后2個波段與多個兩類水體非水色水質(zhì)參數(shù)均有較高的相關(guān)性[6]。無人機采集的原始影像即為依次對應上述波段的五通道影像。
數(shù)據(jù)預處理包括輻射校正、幾何校正和水體提取。輻射校正由自主研發(fā)的算法完成。幾何校正由無人機測圖軟件Pix4D 完成,同時生成了實驗區(qū)域的正射影像。實驗區(qū)1 和2 的正射影像大小分別約為25 000 ×21 000 和21 000×13 000 像素,數(shù)據(jù)存儲類型為16 位整型。水體提取由自主研發(fā)的自動化提取算法輔以人工后處理完成,預處理后正射影像如圖3a和3b所示。
要建立用于U型全卷積神經(jīng)網(wǎng)絡訓練和驗證的數(shù)據(jù)集,首先需生成正射影像所對應的分類地面真值圖像,然后利用兩者不斷生成用于單次訓練的樣本,最后將這些樣本整合,形成數(shù)據(jù)集。
所使用的地面真實數(shù)據(jù)來自筆者團隊對同一實驗區(qū)的前期研究成果。依據(jù)國家標準《地表水環(huán)境質(zhì)量標準》[16](下文簡稱“國標”)以及《上海市內(nèi)陸河流及水系水質(zhì)常規(guī)評價技術(shù)規(guī)范》(下文簡稱“上海市標準”),選用水質(zhì)指標氨氮(AN)和總磷(TP),使用指數(shù)型反演公式對實驗區(qū)水體的水質(zhì)進行反演,并依據(jù)國標進行分類,最終得到Ⅰ類至Ⅲ類水、Ⅳ類水、Ⅴ類水和劣Ⅴ類水的水體在實驗區(qū)的分布。依據(jù)分類結(jié)果,生成地面真值圖像。在地面真值圖像中,除上述4 個水質(zhì)等級,還有一類像素為非水,即共有5 個類別。圖像存儲格式為單通道的tif 文件,水質(zhì)等級的分布如圖4b 和圖5a 所示。分布圖大小分別與正射影像大小對應,數(shù)據(jù)存儲類型為整型,數(shù)據(jù)范圍為0~4。表1記錄了地面真值圖像中每個類別所包含的像素個數(shù)。
表1 各類水的像素數(shù)量Tab.1 Number of pixels for each quality level water
使用隨機開窗截取的方法生成單個學習樣本,以克服正射影像過大、難以基于現(xiàn)有硬件條件直接在U型全卷積神經(jīng)網(wǎng)絡中進行迭代訓練的問題。對應實驗區(qū)1和2的窗口大小分別為300×300和64×64,每次截取時隨機選定一個位置,然后在該位置上分別截取窗口大小的正射影像和地面真值圖像,生成一個學習樣本。在實驗區(qū)正射影像中,水體部分僅占整個影像像素的小部分,而本實驗的目標是水質(zhì)分類,即主要關(guān)注影像的水體部分,因此不均勻的數(shù)據(jù)分布會給訓練帶來較大困難。針對此問題,在生成樣本時,若隨機的樣本中不包含任何水體,則該樣本無效,需重新生成。以此方法,本實驗生成樣本數(shù)量分別為1 000(實驗區(qū)1)和3 000(實驗區(qū)2)的數(shù)據(jù)集,下文稱這2 個數(shù)據(jù)集分別為數(shù)據(jù)集1 和數(shù)據(jù)集2。
實驗運行硬件環(huán)境為:計算機內(nèi)存16 GB,CPU型號Intel(R)Core(TM)i7-6700HQ 2.60 GHz,顯卡型號NVIDIA GeForce GTX 960M。神經(jīng)網(wǎng)絡訓練框架選用Keras[17]。
在第1.2節(jié)所述U型全卷積神經(jīng)網(wǎng)絡架構(gòu)的基礎上,對U 型全卷積神經(jīng)網(wǎng)絡的關(guān)鍵超參數(shù)做出如下設置:
(1)梯度下降算法
選用Adam 算法[18],研究表明該算法在多數(shù)情況下優(yōu)于此前的動量算法、均方根傳播(RMSProp)算法和可變步長梯度法(Adagrad)等梯度下降算法[19]。Adam 算法的參數(shù)使用其默認參數(shù),即β1=0.9,β2=0.999,?=1×10-8。
(2)正則化
為預防過擬合,使用Dropout[11]作為正則化算法。Dropout 層添加于每個Max-Pooling 層和Deconvolution層之后,Dropout率設為0.4。
(3)Batch-normalization
為預防深層神經(jīng)網(wǎng)絡出現(xiàn)梯度爆炸或梯度彌散,在除輸出層外的每個激活層前使用Batchnormalization算法[20]。
(4)自適應學習速率調(diào)整
當學習停滯時,適當?shù)販p小學習速率可能使網(wǎng)絡更好地收斂到極小值點。使用的自適應學習速率調(diào)整算法為Keras 預定義的學習率衰減(ReduceLROnPlateau)算法[17],參數(shù)選用默認參數(shù),即每當連續(xù)迭代10 次而總loss 變化不明顯時,將學習速率減小為原來的0.1倍。
對神經(jīng)網(wǎng)絡的訓練結(jié)果和泛化能力有較明顯影響的參數(shù)是學習速率,而Adam 算法結(jié)合自適應學習速率調(diào)整是選擇該參數(shù)的一種優(yōu)選策略[11]。另外,在多次神經(jīng)網(wǎng)絡訓練過程中,當?shù)螖?shù)達到200 左右時,經(jīng)自適應學習速率調(diào)整,學習速率往往減小至1×10-12以下,并且訓練精度已經(jīng)較高,此時認為訓練完成。在下文的交叉驗證過程中,本實驗選擇的訓練迭代次數(shù)均為200。
對數(shù)據(jù)集1采用交叉驗證方法來劃分訓練集和驗證集,并用最終交叉驗證精度近似測試精度,以評估網(wǎng)絡泛化能力。使用的交叉驗證方法是k折交叉驗證算法,k取10,即為十折交叉驗證法。在實驗中,每次隨機選取900個樣本作為訓練數(shù)據(jù)集,其余100個樣本作為驗證數(shù)據(jù)集;重復完成10 次訓練-驗證過程,得到每次的訓練精度和驗證精度。
表2 為十折交叉驗證結(jié)果。驗證精度可反映U型全卷積神經(jīng)網(wǎng)絡的分類能力,驗證精度與訓練精度之差可反映U型全卷積神經(jīng)網(wǎng)絡的過擬合程度和泛化能力。如表2 所示,交叉驗證的平均驗證精度達到92.05%。由于水質(zhì)監(jiān)測本身并不要求非常高的水質(zhì)分類精度,這一結(jié)果可以滿足實際工作的需要。驗證精度與訓練精度平均相差1.54%,兩者之差的標準差為1.60%,表明所提出的U 型全卷積神經(jīng)網(wǎng)絡具有較好的泛化能力。
表2 水質(zhì)等級分類模型訓練及交叉驗證結(jié)果Tab.2 Training and cross-validation results of water quality classification model
為定性描述U型全卷積神經(jīng)網(wǎng)絡模型的分類結(jié)果,使用訓練精度和驗證精度均接近十折交叉驗證精度均值的一組網(wǎng)絡參數(shù),即表2 中第10 次訓練結(jié)果,對數(shù)據(jù)集1的整個正射影像進行分類,并輸出分類結(jié)果圖和混淆矩陣,如圖4和表3所示。
表3 U型全卷積神經(jīng)網(wǎng)絡模型水質(zhì)分類結(jié)果混淆矩陣(數(shù)據(jù)集1)Tab.3 Confusion matrix of water quality classification results with UFCNN model(data set 1)
為與所提算法進行對比,借助成熟的遙感圖像處理軟件ENVI 5.3,使用極大似然法對實驗區(qū)1 的水體進行了分類。對照實驗的分類結(jié)果如圖4 所示。囿于篇幅,僅列出對照實驗的F分數(shù),如表4所示。表3中水質(zhì)分類精度計算的是各類水質(zhì)等級的像素分類精度的平均值,非水類分類準確率明顯高于水質(zhì)分類的原因是非水像素的五波段像素值都被置為零,分類相對容易,故非水像素的分類精度并未計入。從圖4 可見,極大似然法不僅在相鄰兩等級的水質(zhì)分類上存在混淆,甚至會混淆分屬非相鄰等級水質(zhì)的像素。所提出的U型全卷積神經(jīng)網(wǎng)絡模型雖然在Ⅳ類與Ⅴ類水之間存在一定混淆,但總體上以較理想的精度實現(xiàn)了不同水質(zhì)等級的水體分類,平均水質(zhì)分類精度為87.96%。
圖4 實驗區(qū)1分類結(jié)果Fig.4 Classification results for experiment area 1
表4 實驗組及對照組分類結(jié)果F分數(shù)Tab.4 F-score for experimental group and control group
數(shù)據(jù)集2 的數(shù)據(jù)量和變化程度更大,更接近水環(huán)境遙感檢測項目中所使用的實際數(shù)據(jù),但分類難度也更高。除前文提及的Dropout 參數(shù)調(diào)整為0.2以適應更復雜的數(shù)據(jù)之外,實驗2沿用在數(shù)據(jù)集1上使用的U型全卷積神經(jīng)網(wǎng)絡模型及算法,在數(shù)據(jù)集2上進行訓練并對整個正射影像進行分類,結(jié)果如圖5和表5所示。表5顯示的整體分類精度有所降低,為77.57%,但從圖5 可以看出,模型仍識別出了不同水質(zhì)等級的主要水體。
圖5 實驗區(qū)2分類結(jié)果Fig.5 Classification results of experiment area 2
表5 U型全卷積神經(jīng)網(wǎng)絡模型水質(zhì)分類結(jié)果混淆矩陣(數(shù)據(jù)集2)Tab.5 Confusion matrix of water quality classification results with UFCNN model(data set 2)
數(shù)據(jù)集1 對比實驗中,極大似然法的原理是通過歐式距離劃分類別,即待分類樣本被劃分到與其距離最近的訓練樣本所屬的類別。該方法沒有對數(shù)據(jù)空間進行變換。結(jié)果表明,即使在數(shù)據(jù)的空間分辨率較高、光譜特征較豐富的情況下,對水體按照水質(zhì)等級進行分類仍然是一個復雜度較高的分類問題,傳統(tǒng)自動化分類方法難以進行有效分類。限制分類精度的其他原因主要有以下兩點:一是地面真值圖像不夠精確,因地面真值圖像是反演結(jié)果而非由全部實測得到的,本身包含的錯誤和誤差阻礙了U 型全卷積神經(jīng)網(wǎng)絡模型訓練精度的進一步提升;二是在有限的外部條件和優(yōu)化空間本身復雜度較高的情況下,很可能未找到使U 型全卷積神經(jīng)網(wǎng)絡模型分類精度最優(yōu)的超參數(shù)組合。
提出了一個基于全卷積神經(jīng)網(wǎng)絡的城市河流全流域低空遙感影像水質(zhì)等級分類算法,該算法包括無人機遙感數(shù)據(jù)的處理、用于網(wǎng)絡學習的樣本數(shù)據(jù)集的構(gòu)建、基于U 型全卷積神經(jīng)網(wǎng)絡的水質(zhì)分類神經(jīng)網(wǎng)絡架構(gòu)設計和超參數(shù)調(diào)整以及分類結(jié)果的評價與輸出。使用上海市嘉定區(qū)某區(qū)域和上海市寶山區(qū)楊行鎮(zhèn)某區(qū)域的無人機低空遙感影像對該算法進行了驗證,分別達到87.96%和77.57%的平均水質(zhì)分類精度,這一結(jié)果可支持該算法的可行性。所設計的全卷積神經(jīng)網(wǎng)絡經(jīng)交叉驗證,過擬合程度低,具有良好的泛化潛力。
基于無人機低空遙感的全流域水質(zhì)監(jiān)測工作尚處于起步階段,若能經(jīng)過一段時間的數(shù)據(jù)積累,則由深度學習依賴于大數(shù)據(jù)驅(qū)動的特性,該算法的精度和實際應用表現(xiàn)有望得到進一步提升。水質(zhì)反演的結(jié)果由水體光譜特性決定,而水體光譜特性會受到無人機遙感影像的輻射定標與校正的直接影響,因此一種可靠的無人機遙感影像輻射定標和校正方法也是所提算法可推廣性的前提和保障。