鄭泰皓, 王慶濤,, 李家國, 鄭逢斌, 張永紅, 張 寧
(1.河南大學計算機與信息工程學院, 開封 475000; 2.中國科學院遙感與數字地球研究所, 北京 100020;3.中華人民共和國住房和城鄉建設部城鄉管理規劃中心, 北京 100835)
遙感能動態監測地表信息,被廣泛應用于環境檢測、資源探測、生態研究、測繪制圖和軍事指揮等眾多領域[1]。近二十年來,遙感技術飛速發展,及時、精確地從遙感影像上提取水體信息已經成為水資源調查監控的重要手段[2]。
目前,中外在水體自動提取方面已經提出了多種方法,如單波段閾值法、水體指數法[3]、多波段譜間關系法[4-5]、決策樹法[6]、指數法等,其中對水體指數法、多波段譜間關系法、決策樹法的研究較多,應用也比較成熟。但隨著影像中地物信息量的增加,傳統水體分類方法在精度和效率上漸漸不能滿足一些高精度的生產需求。
卷積神經網絡(convolutional neural networks, CNN)是在遙感影像領域應用非常成功的一種深度學習網絡,它擺脫了人工計算影像特征的步驟,直接從遙感影像中學習光譜、紋理、邊緣等特征,有效解決高維、海量數據提取和分類的問題。研究人員基于深度學習對土地利用分類[7-8]、地面目標檢測[9-10]、城市建筑提取[11]等方面進行了相關研究。全卷積神經網絡將傳統的卷積神經網絡的全連接層替換為卷積層,在圖像分割領域的應用效果,遠遠超過了傳統的圖像分割方法[12]。陳睿敏等[13]基于RIT-18數據集,利用全卷積神經網絡進行了道路、水體、農田等的提取,取得了較高的精度;劉笑等[14]基于資源三號衛星影像,研究了遙感影像道路提取方法,取得了較好的效果。
高分號(GF-6)衛星是中國2018年發射的國產衛星,關于其應用潛力的研究逐漸成為一大熱點。以GF-6衛星PMS遙感影像為數據源,分別構建全卷積神經網絡(FCN-8s)、U-Net及U-Net優化(VGGUnet1、VGGUnet2)4種神經網絡進行水體提取研究,提出組合損失函數FD-water loss并應用于VGGUnet1,以進一步提高水體識別的效果,減少水體的誤分和漏分。
為了探究高分六號多光譜相機在不同類型地表水體中的應用能力,選擇撫仙湖、官廳水庫、太湖、黃河(山西段)、深圳市5個區域作為研究對象,涵蓋了清潔水體、一般水體、渾濁水體、富營養化水體、黑臭水體、近岸海水6種不同類型的水體。各研究區概況及數據源如表1所示。
GF-6衛星具有大角度、高質量成像、高效能成像等特點,能夠在較短的時間段內獲取大區域多時相遙感影像。GF-6衛星軌道高度760 km,重返周期4d,其多光譜數據空間分辨率為8 m,具有藍、綠、紅、近紅外4個波段,波長范圍分別為450~520、520~590、630~690、770~890 nm;全色數據分辨率為2 m,波長范圍450~900 nm。訓練數據集所采用的影像產品序列號如表 1所示。
研究流程如圖 1所示。

表1 研究區概況及數據源Table 1 Research area overview and data source

圖1 研究流程Fig.1 Research flow
對GF-6衛星影像進行了正射校正、影像配準、多光譜/全色融合等預處理。
采用ENVI正射校正流程化工具對影像進行正射校正。設置多光譜影像分辨率為8 m,全色影像分辨率為2 m,重采樣方式為3次卷積內插法(cubic convolution),數字高程模型(digital elevation model,DEM)數據為完整的遙感圖像處理平臺(the environment for visualizing images,ENVI)自帶的“GMTED2010.jp2”;采用ENVI自動配準流程化工具,以全色數據為基準對多光譜數據進行配準;采用ENVI 的NNDiffusePanSharpening工具對配準后的全色/多光譜影像進行融合。預處理后影像分辨率2 m,每景約25 G。
水體標注包含兩個步驟:①先使用ENVI的基于特征分類工具(example based feature extraction workflow)進行水體粗提取,設置分類閾值(threshold)為100,對水體進行初步標注;②用目視解譯的方式,進行增、刪、改等操作,確保所標注的水體邊界正確且完整。水體標注結果采用tif進行存儲,數據格式為GDAL_BYTE格式,水體值設為1,背景值設置為0,波段數為1。以局部影像(官廳水庫)為例,原始影像及對應水體標注結果分別如圖2(a)、圖2(b)所示。
將影像及水體區域tif,進行224×224隨機采樣,對采樣得到的樣本數據進行90°、180°、270°旋轉及水平、垂直翻轉等數據集增強操作,以增加模型的魯棒性。最終得到樣本數據集161 622對,其中隨機取26 937對作為驗證數據集,134 685對作為訓練數據集。

圖2 影像(局部)及對應水體標注結果Fig.2 Image (partial) and water body labeling results
2.2.1 卷積神經網絡
卷積神經網絡(convolutional neural network, CNN)模型均由輸入層、卷積層、池化層、全連接層、softmax層等部分組成,通過局部連接、參數共享等方式大大減少了網絡參數量,降低了復雜度,提升了網絡的效率和準確度。以AlexNet[15]為例,AlexNet的隱含層包含5個卷積層、3個池化層和3個全鏈接層,網絡結構如圖3所示,網絡比較復雜,可分為上下兩個子網絡,兩子網絡是分別對應兩個圖形處理器(graphics processing unit, GPU),只有到了特定的網絡層后才需要兩塊GPU進行交互,網絡結構上差異不很大,以下層子網絡的為例:第一層輸入為224×224×3的圖像,卷積核的數量為48個,卷積核的大小為11×11×3;步長(stride)為4,采用不擴充邊緣方式卷積,卷積后得到55×55×96個像素層;池化方式為最大池化(max pooling),池化尺度為3×3,步長為2,池化后的尺寸為=27;最后為3個全連接層,第一個卷積層通過4 096個6×6×256的卷積核輸出4 096個本層的輸出結果值,之后類似生成最終的1 000個結果,即為預測種類的概率卷積神經網絡得到的是輸入圖像的一個數值描述的概率值,即從二維矩陣壓縮為一維,丟失了空間坐標,并不適用于像素級的分類任務。因此Long等提出了全卷積網絡(fully convolutional network,FCN)[16],Ronneberger等[17]提出了U-Net。

圖3 AlexNet結構Fig.3 AlexNet structure
2.2.2 全卷積網絡
FCN是在卷積神經網絡的基礎上提出的,基于像素級別的圖像分類網絡,解決了語義級別的圖像分割問題。FCN將傳統的CNN 模型的全連接層轉化成一個個卷積層,這樣所有的層都是卷積層,故稱為全卷積網絡。FCN包括卷積化、上采樣(反卷積) 和跳層結構,網絡結構如圖 4所示。

圖4 FCN結構Fig.4 FCN strcture
(1)卷積化。在AlexNet結構中,前5層是卷積層,第6層和第7層分別是一個長度為4 096的一維向量,第8層是長度為1 000的一維向量,分別對應1 000個不同類別的概率。FCN將傳統CNN模型中的全連接層改為卷積層,將第6、7、8層分別表示為卷積層,卷積核(通道數、寬、高)分別為(4 096*1*1)、(4 096*1*1)及(1 000*1*1)。
(2)上采樣。FCN-8s模型經過多次卷積和池化之后,得到的圖像越來越小,分辨率越來越低。FCN為了得到原始影像像素的分類信息,使用上采樣(deconvolution)實現尺寸還原,輸出同分辨率的分割圖像。上采樣選用雙線性插值反卷積[18]方法。
(3)跳層結構。從32 倍下采樣的圖像直接上采樣插值到原始圖像大小,信息量損失較大,結果較粗糙,只能表示出對象的大致形狀。Long等[16]將第4層的輸出和第3層的輸出依次進行反卷積,分別為16倍和8倍的上采樣,從而得到了更加精細的分割結果。如圖 4所示,將conv7層的輸出經過N*1*1卷積后直接上采樣至image大小,得到32倍上采樣預測(32×upsampled prediction,FCN-32s);將conv7層的輸出經過N*1*1卷積后進行2倍上采樣,并與conv4層的輸出經過N*1*1卷積后進行相加操作,得到16倍上采樣預測(16×upsampled prediction,FCN-16s);同理可得到8倍上采樣預測(8×upsampled prediction,FCN-8s)。
FCN可接受任意大小的輸入影像,不要求所有的訓練圖像和測試圖像具有同樣的尺寸,且避免了由于使用像素塊而帶來的重復存儲和計算卷積的過程,更加高效。采用效果較好的8×upsampled prediction(FCN-8s)進行水體提取試驗。
2.2.3 U-Net網絡
U-Net網絡是基于FCN改進得到的一種全卷積網絡,其結構類似于U型,因此稱為U-Net。U-Net網絡結構由收縮路徑和擴張路徑兩部分組成,收縮路徑部分進行特征提取,擴張路徑部分進行反采樣。收縮路徑部分由2個3*3卷積層和1個2*2最大池化層組成的塊重復搭建完成;擴張路徑部分先進行2*2的反卷積,使特征圖的維數減半,然后與對應的特征圖(裁剪后)串聯起來,再接2個3*3卷積層,并重復這一結構;在最后一層及輸出層,通過1*1卷積核及softmax激活函數將特征圖映射成所需的種類。U-Net在上采樣部分加入了復制和裁剪通道,使網絡能夠將上下文信息從淺層傳遞到更高分辨率的層。這種結構使得U-Net和全卷積神經網絡同樣得到一幅分割圖,但是前者的每個像素都包含了原圖的上下文信息,使其對小目標分割具有更佳的效果。Ronneberger提出的U-Net采用VGGNet13的前10層作為U-Net的收縮路徑部分[17-18],網絡模型結構示意圖如圖 5所示。
2.2.4 U-Net網絡優化
為了更有效地挖掘數據的特征,并減少模型的參數量,對U-Net模型進行優化,構建VGGUnet1模型,采用更深層次VGGNet16的前13層作為U-Net的收縮路徑部分,同時擴張路徑部分減少了反卷積層數。構建的VGGUnet1網絡模型結構如圖6所示。

input image為輸入圖像;channels為通道;prediction為預測圖5 U-Net結構Fig.5 U-Net structure
為對比低層次特征對分割結果的影響,構建VGGUnet2模型,該模型取消了VGGUnet1中第4層連接層。
2.2.5 損失函數
基于像素的交叉熵損失函數(pixel-wise cross-entropy loss)是圖像分割任務中最常用的損失函數,被采用在原始U-Net網絡結構中。該損失單獨地檢查每個像素點,將類預測(深度方向的像素矢量)與one-hot編碼的目標矢量進行比較,定義為

圖6 VGGUnet1結構Fig.6 VGGUnet1 structure

(1)
式(1)中:yi,j為預測結果;ti,j為真實值;i表示第i個像素點;j為類別信息。交叉熵損失函數可以衡量yi,j與ti,j的相似性,當yij與ti,j接近時,loss接近于0。
交叉熵損失函數單獨評估每個像素矢量的分類預測,然后對所有像素求平均值,所以如果各種類在圖像分布不平衡時,這會使訓練過程將受像素最多的類所支配。
構建FD-water loss損失函數,以改善正負樣本不均衡帶來的損失函數收斂緩慢甚至無法優化至最優的問題。
FL(focal loss)[19]是解決分類問題中類別不平衡、分類難度存在差異的損失函數。
對于2分類語義分割中的FL,可表示為
(2)
式(2)中:pn為預測值;rn為樣本真值;α、γ均為參數;α為平衡因子,用來平衡正負樣本本身的比例不均。
當一個樣本被錯誤分類且pn很小時,認為它是難區分樣本,調節因子(1-pn)接近于1,此時loss可認為不受(1-pn)影響;當pn→1,認為它是易區分樣本,調節因子(1-pn) →0,此時loss將降低易區分樣本的權重。γ參數調節簡單易分樣本權重下降的速度。當γ=0,FL2就是交叉熵損失函數,隨著γ的增大,調制因子(1-pn)的作用也隨之增大。
Dice loss是針對前景比例太小的問題提出的,dice系數源于二分類,本質上是衡量兩個樣本的重疊部分[20]。對于2分類語義分割中dice loss(DL2)表達式為

(3)
式(3)中:N為總像素個數;pn為預測結果;rn為樣本真值;ε為調節參數,避免分母為0。
構建的FD-WL(FD-water loss)表達式為
FD-WL=FL2+DL2
(4)
函數結合了FL與DL優勢,降低了簡單負樣本(背景)在訓練中所占的權重,同時增強了模型對于小區域水體的提取能力。經多次實驗,α=0.25,γ=2.0,ε=0.000 05時,提取效果較優。
由于采用面向像素的語義分割網絡,水體提取的結果難免存在小范圍的噪聲,比如孤立的像素點及孔洞等,這可能是影像本身存在數值異常的像素或模型本身等造成的。通過應用形態學的知識,對小于一定閾值的孤立像素點進行抹除,對小于一定閾值的孔洞進行填充,可改善噪聲帶來的影響。經實驗及觀測,閾值選擇8個像素面積時較為合適,可進一步提高水體提取的精度。
形態學中腐蝕的表達式為
XΘB={x|(B)x?X}
(5)
形態學中膨脹的表達式為
X⊕B={x|(Bv)x∩X≠?}
(6)
式中:X為目標圖像;B為結構元素;Bv為B的對稱集;x表示集合平移的位移量;Θ為腐蝕運算的運算符;⊕為膨脹運算的運算符。
形態學中開運算為先腐蝕再膨脹,閉運算為先膨脹再腐蝕。對圖像進行開運算和閉運算的效果如圖7所示。

圖7 開運算與閉運算效果Fig.7 Effects of open and close operation
實驗采用Jaccard指數(JAC)、精確率(Precision)及召回率(Racall)進行精度評價。Jaccard指數表達式為
(7)
精確率表達式為
(8)
召回率表達式為
(9)
式中:A表示模型提取水體的結果;B表示水體標注的結果,二者均為二值柵格;Jaccard指數越接近1,說明集合A與B的交集越大、A與B越相似,提取效果越好;TP為提取為水且水體標注結果也為水的像素集合;FP為提取為水但水體標注結果為背景的像素集合,即水體錯分集合;FN為提取為背景水體標注結果為水的像素集合,即水體漏分集合。水體提取的Precision越高說明提取的精度越高,Racall越高說明提取的丟失率越小,漏分越少。
實驗基于Windows Server 2016操作系統,內存16G,顯卡為NVIDIA Quadro P2000,顯存5G。
選取三景預處理后的GF-6 PMS影像作為驗證區影像,景號分別為L1A1119837349(山東煙臺市地區)、L1A1119844867(云南昆明市地區)、L1A1119839138(云南大理市地區)等。驗證區影像及對應的水體標注結果如圖 8所示,其中L1A1119837349大小為57 820×55 008像素,L1A1119844867大小為55 928×53 088像素,L1A1119839138大小為55 836×52 800。圖8(b)中黑色部分為背景,白色部分為水體。
由于預處理后影像較大,將每幅驗證區影像裁為了4塊,每塊大小約23 000*23 000像素,上下或左右相鄰的塊之間保留60行或60列像素的重疊部分。
采用滑動窗口對分塊后影像進行水體提取,滑動窗口的大小為224*224像素,步長為164*164像素。當像素處于分塊后影像的邊緣或分塊后影像所剩不足滑窗大小時,對分塊后影像進行邊緣鏡像擴充。將滑動窗口內的影像依次讀入網絡進行預測。

圖9 建筑陰影混合條件下水體提取結果Fig.9 Water extraction under mixed conditions of building shadow
3.2.1 基于交叉熵損失函數的模型優選
將每個滑窗內影像的提取結果舍棄四周30像素后進行拼接,得到每塊影像的提取結果;然后對每塊提取結果的重疊部分取交集得到整張影像的水體提取結果;最后進行形態學處理得到最終水體提取結果。
為方便觀察對比,對最終提取結果進行了矢量化處理。圖9~圖11給出各模型提取后的局部結果對比。

圖10 不同水深影響條件下水體提取結果Fig.10 Water extraction under different water depths

圖11 不同大小水體斑塊混雜條件下水體提取結果Fig.11 Water extraction under mixed conditions of water bodies in different areas
從圖9可以看出,FCN-8s的提取結果中存在較多的建筑陰影被誤判為水體,U-Net的提取結果中陰影的誤分已經大為減少,改進后的VGGUnet1、VGGUnet2中陰影的誤分進一步減少,此外FCN-8s在框2處河道水體處在較多的漏分,VGGUnet1的提取結果較為理想。圖10中,由于河流深度的不同,影像水體部分存在著一定的色差,從結果來看,本文所用的各模型的對于水體與河堤、橋梁的邊界識別比較清晰,對于不同顏色水體的提取效果較好,但在沙灘與水體(框1處)的交界處提取能力存在差異,VGGUnet1的提取結果較好。圖10框2處、圖11框1處可以發現,即使提取效果較好的VGGUnet1,對于小面積水體扔存在漏分的現象。
使用Jaccard指數、精確率、召回率對各模型的水體提取結果進行精度評價。各模型提取結果精度如表2所示。綜合對識別示例的分析,VGGUnet1對于水體提取的效果較優,提取水體結果的Jaccard指數為0.939 787,精確率為94.66%,召回率為94.25%。
3.2.2 FD-Water loss對水體提取的提升
從VGGUnet1的水體提取結果中發現,采用交叉熵損失函數的VGGUnet1對于小面積水體存在漏分。因此構建了FD-water loss,減少簡單負樣本的權重,提升小面積水體對損失函數的貢獻。圖12為采用FD-water loss 的水體提取結果對比,同時選擇了閾值法(NDWI閾值法)、監督分類法(最大似然分類法、支持向量機分類)等方法進行了實驗結果的對比分析,對比結果如表3所示。

表2 各模型水體提取對比Table 2 Comparison of water extraction of each model
從圖12框1處可以看出,采用FD-water loss后的VGGUnet1對于小面積水體的識別能力有著明顯的改善,但是仍有部分小面積水體沒有得到識別。經統計分析,當VGGUnet1+FD-water loss模型提取的水體像素面積大于164時,提取水體與水體標注結果較為一致,此時水體實際面積為656 m2。

圖12 不同損失函數條件下VGGUnet1水體提取結果Fig.12 Water extraction of VGGUnet1 under different loss functions

圖13 建筑陰影混合條件下3種對比算法水體提取結果Fig.13 Water extraction of three comparison algorithms under mixed conditions of building shadow

圖14 不同水深影響條件下3種對比算法提取結果Fig.14 Water extraction of three comparison algorithms under conditions of different water depths

表3 各模型水體提取對比Table 3 Comparison of water extraction of each model
從圖13、圖14可以看出,NDWI閾值法的水體提取精度較差,主要表現為NDWI閾值法將大面積的陰影誤分為水體,且在整副影像中的水體提取中,幾乎難以確定一個合適的閾值,精確率僅為75.76%,但是當閾值設置比較大時,NDWI漏分較少,召回率達到了93.76%;最大似然分類仍存在較多陰影的誤分,但是漏分情況較NDWI閾值法有所增加,精確率為86.21%,召回率為89.32%;支持向量機(support vector machine,SVM)分類法的陰影誤分較少,且漏分情況也有所改善,精確率為92.01%,召回率為91.72%;構建的基于FD-water loss損失函數的VGGUnet1網絡模型精確率為98.06%,召回率為97.81%,大大減少了陰影的誤分以及水體的漏分,可獲得較優的提取結果。
制作了GF-6衛星 PMS影像水體數據集,通過FCN-8s、U-Net、VGGUnet1、VGGUnet2這種模型對GF-6衛星PMS影像進行了水體自動提取的研究,提出了基于FD-water loss的VGGUnet1網絡模型。經實驗結果對比分析,得到如下結論。
(1)基于像素的交叉熵損失函數的FCN-8s、U-Net、VGGUnet1、VGGUnet2這4種模型中,VGGUnet1水體提取結果的Jaccard指數、精確率、召回率較高,提取結果較好,是上述四種模型中的較優模型,但是對小面積水體存在較多的漏分現象。
(2)基于FD-water loss 損失函數的VGGUnet1對小面積水體的識別能力得到提高,當水體像素面積大于164時,提取水體與水體標注結果較為一致,此時水體實際面積為656 m2。
(3)與NDWI閾值法、最大似然分類法、支持向量機分類等方法相比,基于FD-water loss 損失函數的VGGUnet1模型對水體提取精度較高、水體邊界提取清晰,錯分、漏分現象大大減少,具有較大的應用潛力。
僅進行了水體的提取研究,對于不同類型水體提取尚未深入。未來可以嘗試利用GF-6衛星的8波段寬幅影像,進行渾濁水體、黑臭水體等不同類型水體提取的研究。