李輝輝,林凱墅,馬占奎,文貴華,張 乾,王新鵬
(1.廣東技術師范大學計算機科學學院,廣州 510665;2.華南理工大學計算機科學與工程學院,廣州 510006;3.貴州民族大學數(shù)據(jù)科學與信息工程學院,貴州 550525)
耕地的數(shù)量和質量是保持農(nóng)業(yè)可持續(xù)發(fā)展的關鍵,利用衛(wèi)星遙感影像可以識別并提取耕地,為國家決策部門提供重要支撐。目前高精度的耕地信息提取主要依靠人工解譯,耗費大量人力、財力且效率較低,因此,研究遙感圖像的耕地識別算法具有重要價值。源三號(ZY-3)衛(wèi)星是中國第一顆自主的民用高分辨率立體測繪衛(wèi)星,通過立體觀測,可以測制1∶50 000比例尺地形圖,為國土資源、農(nóng)業(yè)、林業(yè)等領域提供服務,資源三號填補了中國立體測圖這一領域的空白[1-2]。
在農(nóng)業(yè)遙感領域,準確識別耕地地塊對農(nóng)作物分類、估產(chǎn)等具有重大科研價值和經(jīng)濟價值。研究人員提出多種分割方法以便捷地獲取規(guī)整、勻質的地塊,但由于欠分割、過分割等問題的存在,較多研究人員選擇通過邊緣檢測的方式獲取耕地邊緣,以對分割結果進行約束,提高結果精度,形成了許多邊緣檢測算法,包括Canny邊緣檢測算法[3]、LOG算子[4]、Roberts算子、Sobel算子和Prewitt算子等,它們的算法原理不同,因此檢測效果也各有優(yōu)缺點。在耕地分割方面,Rydberg等[5]對SPOT影像中的目標區(qū)域先通過Canny算子檢測得到邊緣后,將邊緣結果用作分割算法的部分條件,得到較為精準的地塊分割結果。胡潭高等[6]同樣選擇對分水嶺分割后的圖像,引入Canny邊緣信息以完成圖像重構,得到最終分割結果。吳慶崗等[7]提出了一種改進的自適應閾值局部三值模式紋理特征提取算法,以提高遙感圖像分類精度。然而,此類方法由于結構較為簡單,沒有包含對象級別信息,不能充分利用影像隱含信息,尤其對于復雜場景的檢測結果往往難以滿足實際需求。
近年來,在遙感圖像分割領域,基于深度學習的相關算法取得重大突破。黎江等[8]提出了一種基于骨干網(wǎng)絡為ResNet-101-RPN的Mask R-CNN的遙感影像土地分割與輪廓提取方法。徐昭洪等[9]利用改進的U-net模型對建筑物區(qū)域進行像素級提取,可獲取其輪廓和尺寸信息。李森等[10]構建了應用于遙感影像的邊緣檢測模型FD-RCF(full dilated-RCF)。范自柱等[11]在U-net中使用特征金字塔結構和全局上下文模塊分割遙感圖像。劉尚旺等[12]提出了一種基于U-net網(wǎng)絡多任務學習的建筑地物語義分割模型。Wei等[13]提出了一種新穎的端到端道路分割方法,有效利用不同層次的卷積層,增強模型精確感知道路邊緣和形狀的能力。Jiang等[14]提出了一種基于殘差網(wǎng)絡的遙感圖像語義分割方法,在提取物探之間的相關性之前,先改變擴張空間金字塔池模塊的擴張卷積核,提高了分割精度。Wang等[15]提出了一種用于遙感圖像語義分割的深度特征聚合網(wǎng)絡,利用基本特征表示層獲取不同分辨率的特征圖。Tan等[16]提出了一種新的基于深度學習的多級框架,可以同時準確提取路面和道路中心線。此外,注意力機制在各種視覺任務中有顯著的優(yōu)化結果。Marcu等[17]提出了基于全局-局部的注意力的語義分割模型,其中不同分支建立空間、通道和物體邊界關系,增強網(wǎng)絡的表征,提高了遙感影像中建筑物體與邊界的識別分割效果。Seong等[18]基于HRNet引入通道和空間注意力門控機制,改善了遙感影像大型建筑物和小型非建筑物體的識別分割效果。Li等[19]提出了深層通道注意力模塊、淺層的空間注意力模塊和自適應權重調整損失函數(shù)改善了遙感影像中不規(guī)則目標和類間、類內(nèi)相似物體的識別分割效果。Yu等[20]提出了一種基于多級通道注意的遙感圖像分割方法(SISM-MLCA)。這種基于深度卷積編解碼的網(wǎng)絡方法在網(wǎng)絡編碼階段初步加入信道注意機制,通過自學習獲得更有效的特征,解決遙感圖像中的目標遮擋問題。對比傳統(tǒng)經(jīng)典算法,深度學習方法能夠通過層間自主學習,由淺到深,生成簡單到復雜的多層次特征檢測器,更充分地利用影像信息,實現(xiàn)對復雜場景更好的檢測效果。但這些方法都沒有針對耕地遙感圖像中條形地塊和耕地間條形道路的條形特性展開研究。
由于耕地遙感圖像中道路邊界等條形元素(條狀的道路與河流和建筑的條形邊界)的分割較為困難,為了讓遙感圖像能夠更好地分割耕地遙感圖像,提出了一種具有條紋池化的V型網(wǎng)絡模型SP-Vnet,其改進U-net[21]和SPnet[22],加入了具有空洞卷積的Res Block和Strip Pooling模塊,其中Strip Pooling 模塊不僅能建立像素的全局特征關系,而且使條狀的物體識別分割效果得到提高。還進一步利用了遷移學習思想,首先在兩個外部相關數(shù)據(jù)集中預訓練SP-Vnet,然后遷移到實驗數(shù)據(jù)中進行精細化訓練,最后通過融合訓練獲得的模型和圖像形態(tài)學處理方法,實現(xiàn)了高精度的分割效果。
通過改進U-net和SPnet,提出了新的網(wǎng)絡結構SP-Vnet,實現(xiàn)耕地遙感圖像的語義分割。網(wǎng)絡使用Strip Pooling模塊來充分利用圖像的全局信息,捕獲孤立區(qū)域的上下文遠程關系,集成長而狹窄的池內(nèi)核,使場景解析網(wǎng)絡可以同時聚合全局和局部上下文。同時Strip Pooling方法能夠提升對長條形目標的分割效果。相比較于傳統(tǒng)的Non-local方法如特征金字塔網(wǎng)絡或自注意力方法,Strip Pooling方法更加節(jié)約顯存,速度更快。因此SP-Vnet在保持了網(wǎng)絡參數(shù)的情況下仍能很好地學習全局信息,提高了網(wǎng)絡模型的學習能力,使網(wǎng)絡能夠在速度和性能中取得很好的平衡。
input imgage tile為輸入圖像;output segmentation map為輸出的分割圖;Conv 3×3為卷積核為3×3的卷積;ReLu為激活函數(shù)Copy and Crop為復制并裁剪特征圖尺寸;MaxPool為2×2的最大池化層;Up-Conv卷積核為2×2反卷積圖1 U-net網(wǎng)絡結構Fig.1 U-net architecture
U-Net是基于一種編碼器-解碼器結構的語義分割網(wǎng)絡。圖1為U-net網(wǎng)絡結構。經(jīng)過編碼器多次卷積和下采樣后獲得高層語義,在解碼器上采樣的時結合編碼器每一階段的特征,很好地結合數(shù)據(jù)的高層的特征語義信息和低層的語義特征,從而能夠結合在整個圖像中的上下文語義信息,提高了分割的效果。
通過去除編碼器最后MaxPool后特征圖的卷積操作,減少了卷積層數(shù)過多,避免了特征細節(jié)的損失,并直接將其通過反卷積操作直接與上一層進行結合,形成V型的網(wǎng)絡結構。
傳統(tǒng)的卷積操作如全卷積神經(jīng)網(wǎng)絡FCN都是通過不斷疊加特征提取層,從而達到獲取高層感受野的目的。然而這種操作會帶來計算量的增加和優(yōu)化難度的增加,且獲取的感受野仍存在局限性,解決這些困難則可以通過Non-local思想[23],即在提取某處特征時利用其周圍點的信息,能夠引入全局的信息,為后面的層帶去更豐富的信息。
受非局部均值(NL-means)[23]啟發(fā),Buades等[24]提出了深度學習神經(jīng)網(wǎng)絡中的非局部操作(Non-local operation)。該模塊能夠很好地捕獲圖像中長距離的信息建立聯(lián)系,并且能夠可以直接嵌入現(xiàn)有的網(wǎng)絡模型中。非局部操作的通用表達式為
(1)
式(1)中:yi為Non-local operation的輸出,i為輸出位置(在空間、時間或時空中)的索引,它的響應值是通過j枚舉所有可能位置來計算的;x為輸入信號(通常是圖像、隊列、視頻的特征);函數(shù)f(xi,xj)計算xi和所有yi之間的相似關系;一元函數(shù)g(xj)計算輸入信號在位置j的表示;最終的響應值通過響應因子C(x)進行標準化處理得到。
非局部模塊(Non-local block)可表示為
zi=Wzyi+xi
(2)
式(2)中:zi為Non-local block的輸出;yi為Non-local operation的輸出;xi的殘差連接,能夠在不破壞原始網(wǎng)絡模型結構的情況下,將Non-local block嵌入其他模型中去。
Non-local block結構圖如圖2所示。
T、H、W分別為輸入批量、特征圖高、特征圖寬;θ、Φ、g為嵌入函數(shù);THW表示將T×H×W×512特征圖平鋪為THW×512的向量;softmax為softmax函數(shù)圖2 Non-local block 結構圖Fig.2 Non-local block structure diagram
Strip Pooling[20]方法能夠在捕獲長距離的全局信息時,同時關注局部細節(jié)信息,提高了對遠距離的帶狀結構的目標對象的分割效果。與Non-local方法相比,Strip Pooling方法更加節(jié)約顯存,速度更快。Strip Pooling模塊的結構如圖3所示,首先輸入一個特征圖(實際上為C×H×W),其經(jīng)過水平和豎直條紋池化后變?yōu)镠×1和1×W,然后對池化核內(nèi)的元素值求平均,以此為池化輸出值。隨后經(jīng)過卷積對兩個輸出特征圖分別沿著左右和上下進行擴充,擴充后兩個特征圖尺寸相同,對擴充后的特征圖對應相同位置進行逐像素求和得到H×W的特征圖。最后通過1×1的卷積與Sigmoid處理后與原輸入圖對應像素相乘得到了最終的輸出結果。
input tensor為輸入特征圖;output為輸出特征圖;Strip Pool為條紋池化函數(shù);Sigmoid為Sigmoid函數(shù)圖3 Strip Pooling模塊結構圖Fig.3 Schematic illustration of the Strip Pooling (SP)module
所提出的SP-Vnet的結構如圖4所示,其根據(jù)U-net和SPnet改進,加入了具有Strip Pooling模塊,具有空洞卷積和殘差連接的Res block作為編碼器對圖像特征提取,空洞卷積能夠加大模型的感受野,能夠關注到更全局的信息,提高了特征表達能力。殘差結構使得卷積層緩解深度網(wǎng)絡中梯度退化的問題,訓練更加容易,網(wǎng)絡的表達能力更好。
Res-Block為殘差卷積塊;Data Path為數(shù)據(jù)路徑;Skip Connection為跳躍連接;Addition為兩個特征圖對應元素相加;Transposed Conv為反卷積;Strip Pool Module為條紋池化模塊;Segmentation Module為將特征圖上采樣分割圖的模塊圖4 SP-Vnet 結構Fig.4 SP-Vnet module
實驗數(shù)據(jù)為MathorCup遙感圖像耕地分割比賽,預訓練數(shù)據(jù)為數(shù)據(jù)集Gaofen image dataset(GID)[1]和Massachusetts Roads[2],實驗流程如圖5所示,主要分為數(shù)據(jù)增強、遷移學習、模型訓練、模型融合、圖像分割并輸出。
圖5 流程圖Fig.5 Flow diagram of experiment
實驗數(shù)據(jù)來自MathorCup遙感圖像耕地分割與提取競賽,實驗圖像來源于資源三號衛(wèi)星獲取的遙感圖像數(shù)據(jù),空間分辨率為2 m,光譜為可見光波段(紅、綠、藍)。由于高精度的耕地信息提取主要還是依靠人工解譯,數(shù)據(jù)量少,僅8張訓練圖像,2張測試圖像。因此利用遷移學習思想,采用兩個預訓練數(shù)據(jù)GID和Massa-chusetts Roads。
2.1.1 GID遙感數(shù)據(jù)集
2018年武漢大學發(fā)布的GID數(shù)據(jù)集圖像總數(shù)為150張,類別總數(shù)為5,每張圖像大小為7 200×6 800×3,分辨率0.8~10 m。將GID遙感數(shù)據(jù)集進行數(shù)據(jù)預處理,將圖像類別變換成耕地類和其他類作為二值分割任務,去除耕田面積小的遙感圖像,將每張遙感圖像隨機裁剪成300張512×512的圖像,選擇包含耕地面積60%~90%的圖像,最后得到5 613張512×512的圖像。
2.1.2 Massachusetts Roads道路數(shù)據(jù)集
2013年多倫多大學發(fā)布的Massachusetts Roads數(shù)據(jù)集是對道路進行二分割,圖像總數(shù)為804張,圖像大小為1 500×1 500×3,分辨率0.8~10 m。由于經(jīng)過實驗發(fā)現(xiàn),原始比賽數(shù)據(jù)的耕地分割中的道路目標分割精度較低,利用這個數(shù)據(jù)集進行預訓練并遷移,可改進道路目標的分割效果。
因為實驗數(shù)據(jù)集小,所以進行了數(shù)據(jù)增強,在訓練時,使用Pytorch框架,將輸入數(shù)據(jù)進行隨機旋轉、隨機水平翻轉、垂直翻轉、隨機縮放后裁剪、調整Contrast對比度、Hue色調、Brightness亮度、Saturation飽和度(-0.15~0.15)等操作,數(shù)據(jù)增強樣本如圖6所示。
圖6 數(shù)據(jù)增強Fig.6 Data augmentation
采用整體準確率(overall accuracy,OA)、F1值和平均交并比(mIoU)作為評價指標。OA定義為
(3)
式(3)中:TP(true positive)正類被判為正類;FP(false positive)負類被判為正類;FN(false negative)正類被判定為負類;TN(true negative)負類被判為負類。
F1值是基于精確率P和召回率R的綜合性評價指標,可定義為
(4)
IoU是語義分割的標準度量,表示預測圖像和標注圖像的重疊度,其計算公式為
(5)
式(5)中:Pgt為真實標記圖的像素集合;Pm為預測圖像的像素集合;“∩”和“∪”分別為交集和并集操作。實驗采用mIoU來評價模型,即分別計算每一類的IoU,再取平均值。
本實驗代碼基于Python3.6.9實現(xiàn),操作系統(tǒng)為Inter(R)Xeon(R)CPU@2.00 GHz,內(nèi)存為64 GB,GPU為Tesla P100:16 GB,軟件環(huán)境為Pytorch1.6.0、CUDA 10.1。
將在GID遙感數(shù)據(jù)集訓練模型,然后將模型遷移至實驗數(shù)據(jù)上訓練。
3.1.1 GID數(shù)據(jù)集預訓練
在5 613張?zhí)幚砗蟮腉ID數(shù)據(jù)集中,選擇80%作為訓練集,20%作為驗證集。迭代次數(shù)為50次epoch(所有數(shù)據(jù)都迭代訓練一次的次數(shù)),batch_size(每次輸入網(wǎng)絡中訓練的數(shù)據(jù)量)設置為8,初始學習率為0.000 1,使用BCELoss函數(shù)作為損失函數(shù),采用自定義調整作為學習率(learning rate,LR)調整策略,調整公式為[25-26]
(6)
使用Ranger函數(shù)[27-28]作為優(yōu)化函數(shù)。
3.1.2 GID數(shù)據(jù)集預訓練模型遷移至實驗數(shù)據(jù)
在實驗數(shù)據(jù)中,選擇兩張圖片作為驗證集。迭代次數(shù)為200次epoch,batch_size設置為6,初始學習率為0.01;使用BCELoss函數(shù)作為損失函數(shù);采用自定義調整式(6)作為學習率調整策略,使用Ranger函數(shù)作為優(yōu)化函數(shù)。同樣,在Massachusetts Roads數(shù)據(jù)集上按上述方法訓練模型。
實驗選取了U-net[21],F(xiàn)CN-8s[27],SegNet[26],D-LinkNet34[29],PSPNet[30],Deeplabv3+[31]6個模型和SP-Vnet進行對比實驗,分別使用這些模型在實驗數(shù)據(jù)直接訓練、在外部數(shù)據(jù)集GID和Massa-chusetts Roads上進行預訓練,再遷移到實驗數(shù)據(jù)上訓練,和凍結部分網(wǎng)絡層(編碼器的前三層網(wǎng)絡)再遷移到實驗數(shù)據(jù)上訓練,5種實驗的不同模型分割結果如圖7所示,其中,實驗1使用實驗數(shù)據(jù)直接訓練模型,實驗2為GID數(shù)據(jù)集預訓練后遷移至實驗數(shù)據(jù),實驗3為GID數(shù)據(jù)集預訓練后(凍結部分網(wǎng)絡層)遷移至實驗數(shù)據(jù),實驗4為Massachusetts Roads數(shù)據(jù)集預訓練后遷移至實驗數(shù)據(jù),實驗5為Massachusetts Roads 數(shù)據(jù)集預訓練后(凍結部分網(wǎng)絡層)遷移至實驗數(shù)據(jù)。
圖7 各種模型的分割結果Fig.7 Segmentation results of various network models
從各種模型的分割結果(圖7)可以發(fā)現(xiàn),SP-Vnet在耕地分割上較其他網(wǎng)絡更為優(yōu)秀,更接近于真實標注,分割細節(jié)較其他網(wǎng)絡也更加精確。SP-Vnet分割效果相比較于U-net和Deeplabv3+,能更加精確地識別出條形目標。在外部Massa-chusetts Roads數(shù)據(jù)集上進行預訓練,再遷移到實驗數(shù)據(jù)上訓練,相比于在原始實驗數(shù)據(jù)訓練和在外部數(shù)據(jù)集GID進行預訓練再遷移,各模型能更加精確地識別圖像中道路信息,減少了將道路標注耕地信息的錯誤。
為了獲取直觀的網(wǎng)絡模型對比結果,使用各個網(wǎng)絡的最優(yōu)模型在測試集上進行模型評估,各實驗中的評估數(shù)據(jù)如表1所示??梢钥闯觯岢龅腟P-Vnet在不同實驗中的OA、F1和mIoU均高于其他6種主流的模型,直接用原始競賽數(shù)據(jù)集實驗時,SP-Vnet比6個模型最高的Segnet的OA提高了2.3%,F(xiàn)1提高了3.1%,mIoU提高了3.9%。在外部數(shù)據(jù)集GID上進行預訓練,再遷移到實驗數(shù)據(jù)上訓練,除Segnet外,各模型的OA、F1和mIoU均得到了提升,說明在耕地分割任務中,當數(shù)據(jù)量不足時,在相關任務相近數(shù)據(jù)集上預訓練后進行模型遷移有利于提高模型分割性能。
表1 不同實驗中各種模型的分割結果Tabel 1 The segmentation results of various models in different experiments
藍色圈為錯誤識別的小塊;紅色圈為部分斷連區(qū)域圖8 模型融合的分割結果Fig.8 Segmentation results of model fusion
由不同實驗中各種模型的分割結果表1可以看出,在使用模型遷移時,凍結部分網(wǎng)絡的之后訓練的效果不如沒有凍結的訓練的效果,故最后選擇實驗2和實驗4的SP-Vnet模型實驗結果進行融合。模型融合策略采用加權融合,其中實驗2和實驗4的權重分別為0.6、0.4。OA、F1和mIoU均得到了提升,實驗結果如表2所示。通過模型融合結果對比,如圖8所示,模型融合后,對于耕地的識別效果和道路的識別效果都有一定的提升,消除了一些錯誤識別的小塊,連通了部分斷連區(qū)域。
表2 模型融合結果Table 2 Results of model fusion
經(jīng)過SP-Vnet分割后,運用圖像形態(tài)學對圖像進一步的處理,對原圖進行膨脹、腐蝕,對圖像的道路毛刺進行去除;提取其骨架細化圖像,對骨架細化圖像進行膨脹、腐蝕操作,最后進行融合,得到最終的分割結果。如圖9所示,可以看出,后處理效果能夠對邊界和噪點做到很好的優(yōu)化,邊緣更加平滑。
圖9 后處理分割結果Fig.9 Post-processing segmentation results
提出了一種基于深度學習的遙感衛(wèi)星圖像分割方法SP-Vnet。相對于傳統(tǒng)語義分割模型,該方法針對道路的識別和區(qū)域的聯(lián)通性進行了改進。得出如下結論。
(1)SP-Vnet包含了Strip Pooling模塊和空洞卷積的V型模型,增強了網(wǎng)絡對全局信息的學習和聯(lián)系。V型模型能夠結合圖像的深層和淺層信息,使模型學習到語義特征更為準確,分割更精確。效果相比較于U-net和deeplabv3+,能更加精確地識別出長條形的道路目標,并分割出準確的目標,通過模型融合得到最后的結果,對于耕地的識別效果和道路的識別效果都有一定的提升,并且消除了一些錯誤識別的小塊,連通了部分斷連區(qū)域,最后利用傳統(tǒng)形態(tài)圖像處理的方法,整體的優(yōu)化了分割的效果。
(2)未來的工作中,將對SP-Vnet中的模塊進一步研究,探索更深的神經(jīng)網(wǎng)絡和更多Strip Pooling模塊,以進一步提高耕地遙感圖像的分割精度。