劉彥德,王競雪,2
(1.遼寧工程技術(shù)大學(xué) 測繪與地理科學(xué)學(xué)院,遼寧 阜新 123000;2.西南交通大學(xué) 地球科學(xué)與環(huán)境工程學(xué)院,成都 611756)
水體提取能夠為災(zāi)害監(jiān)測[1]、生態(tài)水文研究[2]、土地管理[3]等方面提供重要信息。目前,水體提取方法可以分為指數(shù)法[4]、監(jiān)督分類法[5]和深度學(xué)習(xí)方法[6]。指數(shù)法自提出后應(yīng)用較為廣泛,但是容易受到水體種類和外界因素的干擾。例如在水體受到洪澇、沉陷等各種因素影響導(dǎo)致其光譜信息發(fā)生變化時,就需要結(jié)合不同類別水體的光譜信息來分析并構(gòu)造新的水體指數(shù),操作繁瑣且使工作量大幅提升[7]。監(jiān)督分類法包含最大似然法[8]、支持向量機法[9]等,這些方法的缺點在于其穩(wěn)定性較差,分類時容易受噪聲影響;在數(shù)據(jù)量較大時運算復(fù)雜度高,耗時較長。
近年來,深度學(xué)習(xí)在圖像處理及信息提取方面已成為該領(lǐng)域研究的熱門,深度學(xué)習(xí)以其高效的特征學(xué)習(xí)能力在遙感影像解譯方面取得了長足發(fā)展[10]。與指數(shù)法和監(jiān)督分類法相比,深度學(xué)習(xí)可以通過制作大量不同種類水體的數(shù)據(jù)集來提取特征,提高分類精度和穩(wěn)定性,彌補傳統(tǒng)方法的不足[11]。何紅術(shù)等[12]提出一種基于改進U-Net網(wǎng)絡(luò)的高分遙感影像水體提取方法,該方法對小目標(biāo)水體的提取效果良好。近年,深度學(xué)習(xí)領(lǐng)域新提出的Swin Transformer網(wǎng)絡(luò)在圖像信息提取方面得到了廣泛應(yīng)用[13]。與常見的卷積神經(jīng)網(wǎng)絡(luò)等模型相比,Swin Transformer網(wǎng)絡(luò)擁有關(guān)注全局信息建模的能力,且其獨特的滑動窗口模塊使信息之間可以進行跨窗口的特征交互,能夠有效擴大感受野,提升目標(biāo)提取的效率[14]。
目前水體提取研究中多使用的影像為Landsat 8影像和Sentinel-2影像,這兩種影像數(shù)據(jù)容易獲取,但就影像分辨率而言,資源三號衛(wèi)星影像要更勝一籌。資源三號衛(wèi)星是我國首顆高分辨率民用測繪衛(wèi)星,該衛(wèi)星的應(yīng)用攻克了國產(chǎn)資源衛(wèi)星測圖困難的難題[15]。在水體提取方面,王國華等[16]提出了一種基于閾值的譜間關(guān)系法,該方法對資源三號衛(wèi)星影像中的細小水體有較好的提取效果;郭建華[17]提出了一種新歸一化差異水體指數(shù),對資源三號衛(wèi)星影像中的城區(qū)水體有更高的提取精度。綜上,針對傳統(tǒng)方法穩(wěn)定性較低和BoxInst網(wǎng)絡(luò)效率較差等不足,本文基于Swin Transformer網(wǎng)絡(luò)高效穩(wěn)定的優(yōu)勢,提出一種改進Swin Transformer網(wǎng)絡(luò)的資源三號衛(wèi)星影像水體提取方法,與傳統(tǒng)方法和BoxInst網(wǎng)絡(luò)相比,本文方法水體提取結(jié)果表現(xiàn)更優(yōu)越。
本文技術(shù)流程分為3個部分:數(shù)據(jù)預(yù)處理與數(shù)據(jù)集制作;結(jié)合PANet算法的深度學(xué)習(xí)模型改進,對數(shù)據(jù)集進行訓(xùn)練并進行影像水體提取;本文方法與傳統(tǒng)傳統(tǒng)方法的精度評定。本文總體技術(shù)流程如圖1所示。
本文以Swin Transformer網(wǎng)絡(luò)為主干,利用其獨特的循環(huán)位移操作,使自注意力計算局限在不重疊的局部窗口中且可以進行跨窗口連接,提升效率。結(jié)合PANet算法能夠快速融合頂層信息和底層信息,通過不同尺度信息的融合提高對水體特征提取的效果。
Swin Transformer網(wǎng)絡(luò)的整體架構(gòu)與CNN的架構(gòu)相似,包括4個階段,每個階段中的單元都是類似重復(fù)的。首先,通過圖塊分割將待處理的圖像H×W×3分割成不重合的圖塊集合,其中H和W為圖片的長和寬,假設(shè)分割后每個圖塊的尺寸是4像素×4像素,特征維度是4×4×3=48,圖塊數(shù)量是(H/4)×(W/4)。然后,在階段1中,使用線性鑲嵌把分割后的圖塊特征維度變成K,輸入到Swin Transformer模塊中。階段2至階段4的運行步驟一致,都是先使用圖塊融合將相鄰的圖塊合并,輸入到Swin Transformer模塊中。經(jīng)過4個階段的處理后得到最終結(jié)果。在本文實驗中,H、W分別設(shè)置為512。網(wǎng)絡(luò)的整體架構(gòu)如圖2所示。
圖2 Swin Transformer網(wǎng)絡(luò)整體架構(gòu)
圖3 Swin Transformer模塊
為了減少計算量,Swin Transformer網(wǎng)絡(luò)將待處理的圖像分為不重合的窗口,在不同窗口內(nèi)進行自注意力計算。假設(shè)一個圖像的高、寬、維度分別為H、W、K,那么該圖像的計算量如式(1)所示。
CQ(MSA)=4HWK2+2(HW)2K
(1)
設(shè)圖像中每個窗口的高和寬為M,則圖像中包含(H/M)×(W/M)個窗口,每個窗口的計算量如式(2)所示。
CQ(Win)=4(MK)2+2(M)4K
(2)
因為有(H/M)×(W/M)個窗口,則W-MSA的計算量如式(3)所示。
CQ(W-MSA)=4HWK2+2M2HWK
(3)
式中:CQ表示計算量。通過對比式(1)和式(3),可以看出W-MSA的計算量要低于整體圖像MSA的計算量。W-MSA的計算量與圖像的尺寸呈現(xiàn)為線性關(guān)系,這樣大幅度減少Swin Transformer網(wǎng)絡(luò)的計算復(fù)雜度,提高了該網(wǎng)絡(luò)的效率。
在使用W-MSA模塊時,由于只在各個窗口內(nèi)進行自注意力計算,導(dǎo)致不重合的窗口之間缺乏信息交流。為了解決這個問題,Swin Transformer網(wǎng)絡(luò)引入滑動窗口分割,即SW-MSA模塊,如圖4所示。
根據(jù)圖4,其左側(cè)是第N層的W-MSA模塊,因為W-MSA模塊和SW-MSA模塊成對使用,那么第N+1層即為SW-MSA模塊??梢钥闯?從第N層到第N+1層,窗口發(fā)生了偏移,如第N+1層中第1行第2列窗口可以使第N層中第1行的兩個窗口進行信息交流,第N+1層中第2行第2列的窗口可以使第N層中的4個窗口進行信息交流,第N+1層中第2行第1列的窗口可以使第N層中第1列的2個窗口進行信息交流,其他同理。這種偏移窗口的方式使得上一層相鄰且不重合的窗口之間增加了連接,加大感受野,解決了不重合窗口之間缺乏信息交流的問題。由于窗口偏移后4個窗口變成了9個窗口,使得計算量有所增加,因此使用循環(huán)位移的方法對窗口進行處理,如圖5所示。
圖4 W-MSA與SW-MSA
圖5 循環(huán)位移
對窗口內(nèi)的每個圖塊進行MSA計算,如式(4)所示。
(4)
式中:Q表示查詢矩陣Query;K表示鍵矩陣Key;V表示值矩陣Value;d表示Q和K的維度;B表示相對位置偏差;SoftMax表示歸一化指數(shù)函數(shù)。
由于循環(huán)位移操作,需要對合并在一起的不同區(qū)域如圖5中的8和2進行MSA計算,為了防止信息混亂,在實際的MSA計算中要加入掩膜操作,隔絕不同區(qū)域的信息。
原Swin Transformer網(wǎng)絡(luò)中使用FPN(feature pyramid network)算法模塊來構(gòu)建特征金字塔。FPN的結(jié)構(gòu)是一個從上到下的特征金字塔,使用上采樣把高層的特征信息進行傳遞融合,得到進行預(yù)測的特征圖,由高維度向低維度傳遞語義信息。隨著網(wǎng)絡(luò)層數(shù)逐漸加深,預(yù)測需要用的位置信息越差。為了解決這個問題,本文選擇結(jié)合PANet算法[18]來實現(xiàn)構(gòu)建特征金字塔的優(yōu)化,具體原理如圖6所示。
圖6 PANet算法原理
第一步在FPN的基礎(chǔ)上添加建立由下至上的加強路徑用來縮短信息路徑,利用低層級特征中存儲的精確定位信號來提升特征金字塔的架構(gòu),如圖6框b中所示。以B2到B3為例,B2經(jīng)過步長為2卷積核尺寸為3*3的卷積層進行下采樣后,特征圖尺寸縮減一半,然后與A3進行單位加,得到的結(jié)果再經(jīng)過步長為1卷積核尺寸為3*3的卷積層得到B3,特征圖尺寸不變。
第二步建立自適應(yīng)特征池化,如圖6框c和框d所示。先將通過區(qū)域生成網(wǎng)絡(luò)提取的感興趣區(qū)壓縮成一維的特征向量,再使用取和的方式進行不同特征區(qū)域融合,在融合之后的基礎(chǔ)上進行類別的預(yù)測。這一步用來修復(fù)每個候選區(qū)域與各個特征層次之間被破壞的信息路徑,集合各個特征層次上的每個候選區(qū)域,避免出現(xiàn)任意分配的情況。
第三步利用一個小型全連接層來補充掩膜預(yù)測,捕獲每個候選區(qū)域的不同視圖,如圖6框e所示。其結(jié)構(gòu)有兩支:主分支由4個尺寸為3*3的卷積核和一個2倍上采樣的反卷積組成,用來預(yù)測每個類別的mask分支;另一個分支是從第3個卷積分出的一個全連接層,其先使用2個尺寸為3*3的卷積降維,之后展開為一維向量,通過該一維向量預(yù)測類別不可知的前景或背景的mask,之后將其還原為與主分支尺寸相等的特征圖像。最后使用單位加和sigmoid激活函數(shù)得到輸出結(jié)果。這一步通過融合兩個視圖來增加信息的多樣性,使得預(yù)測的掩膜效果得到提升。
論文從總體精度(overall accuracy,OA)、Kappa系數(shù)和F1-score指數(shù)3個方面對提取結(jié)果進行精度評定??傮w精度和Kappa系數(shù)的值越高,代表該方法分類結(jié)果的精度和一致性越高;F1-score指數(shù)越高,代表該方法越精確。F1-score指數(shù)常用于統(tǒng)計學(xué)中衡量二分類模型的精確度,可以看作是模型精確率和召回率的一種加權(quán)平均。
本文對資源三號衛(wèi)星01拍攝的影像進行水體提取實驗,空間分辨率為5.8 m,影像尺寸大小均為8 856像素×8 672像素。采用Labelme標(biāo)注工具制作數(shù)據(jù)集,裁切的樣本大小為512像素×512像素,將包含一種或多種類別水體的樣本影像輸入到Labelme中,對樣本中的不同種類水體進行標(biāo)注,生成包含分類名稱、屬性、點坐標(biāo)等信息的JSON格式文件,然后在Python平臺上對JSON格式文件和原始樣本數(shù)據(jù)進行轉(zhuǎn)化,得到訓(xùn)練集、測試集和驗證集。
在深度學(xué)習(xí)中,為了獲取更多的訓(xùn)練樣本,采用數(shù)據(jù)增強方法對已有的影像進行處理。通過對影像進行鏡像、90°旋轉(zhuǎn)、180°旋轉(zhuǎn)、色彩增強等增強操作擴大數(shù)據(jù)集的規(guī)模,防止過擬合現(xiàn)象以提高訓(xùn)練的精度。以一個樣本數(shù)據(jù)為例,原始影像經(jīng)過數(shù)據(jù)增強操作后的數(shù)據(jù)樣本如圖7所示。本研究過程中,初始樣本個數(shù)為7 000個,數(shù)據(jù)增強后得到訓(xùn)練樣本數(shù)目為28 000個的數(shù)據(jù)集,其中按8∶2的比例劃分訓(xùn)練集和測試集,輸入到網(wǎng)絡(luò)模型中進行訓(xùn)練。
圖7 數(shù)據(jù)增強
實驗使用Windows10操作系統(tǒng),CPU為Intel(R) Core(TM) i5,GPU為NVIDIA RTX3060,6 GB顯存,配置CUDA11.1,編程平臺為Python3.8。模型設(shè)置最大迭代次數(shù)為20次,學(xué)習(xí)率為0.000 1。
為了驗證本文方法在不同區(qū)域的提取效果,根據(jù)影像中地物種類的復(fù)雜程度從復(fù)雜到簡單依次選擇城區(qū)、郊區(qū)和山區(qū)3種地形的影像進行水體提取,并與歸一化水體指數(shù)法(normalized difference water index,NDWI)、支持向量機法(support vector machine,SVM)、最大似然法(maximum likelihood classification,MLC)、BoxInst網(wǎng)絡(luò)法、Swin Transformer網(wǎng)絡(luò)法的結(jié)果作對比。原始影像、真值及不同算法的水體提取結(jié)果如圖8~圖10所示,其中真值由人工目視解譯得到,圖中白色部分表示提取到的水體。
不同算法對城區(qū)、郊區(qū)、山區(qū)3組影像進行水體提取結(jié)果的精度統(tǒng)計如表1所示,為方便表示將表1中Swin Transformer網(wǎng)絡(luò)縮寫為ST。通過對結(jié)果圖和統(tǒng)計數(shù)據(jù)進行分析得出:對于城區(qū)影像,在受到建筑物陰影等因素的影響下,水體指數(shù)法、支持向量機法與最大似然法這類傳統(tǒng)方法的提取效果不佳,出現(xiàn)大量錯分的情況;BoxInst網(wǎng)絡(luò)法受陰影影響較少,但存在將河流附近地物錯分為水體以及大量漏分的情況;Swin Transformer網(wǎng)絡(luò)法與本文方法在城區(qū)影像水體提取的表現(xiàn)較為良好。
圖8 不同算法對城區(qū)影像的水體提取結(jié)果
圖9 不同算法對郊區(qū)影像的水體提取結(jié)果
圖10 不同算法對山區(qū)影像的水體提取結(jié)果
表1 不同算法對不同區(qū)域的水體提取精度
對于包含大面積水域的郊區(qū)影像,傳統(tǒng)的水體提取方法與深度學(xué)習(xí)水體提取方法均有一定的細節(jié)缺失問題。整體上傳統(tǒng)方法與BoxInst網(wǎng)絡(luò)法存在大量錯分情況,從表1可以看出,傳統(tǒng)方法與BoxInst網(wǎng)絡(luò)法在郊區(qū)水體提取上的各項精度表現(xiàn)均不如Swin Transformer網(wǎng)絡(luò)法及本文方法。
對于山區(qū)影像,傳統(tǒng)方法與深度學(xué)習(xí)方法在面對地類構(gòu)成簡單的影像時,都具有良好的提取效果。但是在提取精度上從表1可以看出,本文方法的總體精度、Kappa系數(shù)、F1-score指數(shù)更高,更具可靠性。
由于本文方法使用PANet算法代替FPN算法對特征金字塔的構(gòu)建進行優(yōu)化,預(yù)測的掩膜效果得到提升,對水體的特征提取更加細致,有效減少了水體提取的部分缺失和漏分現(xiàn)象。本文方法對城區(qū)、郊區(qū)、山區(qū)的提取總體精度分別為90.14%、91.87%、96.52%,Kappa系數(shù)分別為0.80、0.83、0.88,F1-score指數(shù)分別為0.81、0.83、0.87,本文方法各指標(biāo)均優(yōu)于基礎(chǔ)的Swin Transformer網(wǎng)絡(luò)法。
另外,BoxInst網(wǎng)絡(luò)法、Swin Transformer網(wǎng)絡(luò)法本文方法在對數(shù)據(jù)集進行訓(xùn)練時,本文方法與平均訓(xùn)練每張數(shù)據(jù)所需時間為0.71 s,低于BoxInst網(wǎng)絡(luò)的1.09 s,略高于基礎(chǔ)Swin Transformer網(wǎng)絡(luò)的0.51 s,表明本文方法的模型訓(xùn)練數(shù)據(jù)集的效率較高。
本文提出一種改進的Swin Transformer網(wǎng)絡(luò)的資源三號衛(wèi)星影像水體提取方法。使用Labelme標(biāo)注工具建立水體數(shù)據(jù)集,利用結(jié)合PANet算法的SwinTransformer網(wǎng)絡(luò)進行訓(xùn)練。將其用于城區(qū)、郊區(qū)、山區(qū)水體進行提取,并與歸一化水體指數(shù)法、支持向量機法、最大似然法、BoxInst網(wǎng)絡(luò)法、Swin Transformer網(wǎng)絡(luò)法進行對比分析。通過實驗對比分析,得到以下結(jié)論。
1)本文方法的總體精度、Kappa系數(shù)、F1-score指數(shù)均高于其他5種方法,對城區(qū)、郊區(qū)、山區(qū)的水體提取效果良好,但是對于細小水體還存在少量漏分的情況。
2)與傳統(tǒng)方法相比,本文方法通過大量的數(shù)據(jù)集訓(xùn)練對水體的特征進行提取,避免受到影像中陰影等因素的影響,極少出現(xiàn)錯分現(xiàn)象,可適用于地物種類構(gòu)成較為復(fù)雜的影像水體提取。
3)與BoxInst網(wǎng)絡(luò)法、Swin Transformer網(wǎng)絡(luò)法相比,本文方法由于結(jié)合PANet算法對特征金字塔的構(gòu)建進行優(yōu)化,提高預(yù)測的效果,水體提取精度和模型穩(wěn)定性更高。
本文方法仍存在一些不足,例如面對細小水體時會出現(xiàn)少量漏分的情況;模型的運行效率稍低于基礎(chǔ)的Swin Transformer網(wǎng)絡(luò),后續(xù)將進一步對此進行研究。本研究拓展了Swin Transformer網(wǎng)絡(luò)在資源三號衛(wèi)星影像上進行水體提取的新應(yīng)用,進而可以用于不同種類的水體提取。