鐘洪德
(福州市勘測院 福建福州 350108)
在我國城鎮化進程中,違法用地、違法建筑現象(簡稱兩違)時有發生,傳統實地巡查監管手段工作量大,耗時長,無法滿足現階段土地執法工作的需要。近年來,人們嘗試遙感影像[1]制作正射影像圖,或是采用傾斜攝影測量技術[2]建立實景真三維模型,代替人工實地巡查,極大減輕工作強度。但兩違現象的發現仍然依靠人工比對識別。
U-Net神經網絡在醫學治療分析方面表現突出[3-4],后來被運用到語義分割的各個方向,例如道路識別[5]、建筑物檢測[6]、水位監測[7]等。近兩年U-Net 開始應用于遙感影像分類領域,一些研究人員嘗試多種數據源與原始影像結合,提高U-Net模型的分類精度,在建筑物分類上取得了較好效果[8]。
本文以福州市無人機兩違監測影像為例,利用U-Net對樣本數據進行訓練,建立了兩違疑似圖斑自動識別模型,在GIS技術支持下可對大面積正射影像進行自動搜索,準確標定兩違疑似圖斑的位置和范圍,極大提高了兩違監測的自動化水平和工作效率。
U-Net模型由壓縮通道(contracting path)和擴展通道(expansive path)組成,該模型外觀呈“U”型,非常形象[9]。U-Net具有如下特點:
①使用全卷積神經網絡,比較適應多種尺寸的輸入圖像。
②有別于一般卷積神經網絡只能回答是什么,U-Net可完成圖像分割,特別適合需要準確知道疑似圖斑位置和范圍的應用場景。
③能對有限的數據進行有效的處理和利用。
④處理速度較快。
為了幫助基于神經網絡架構的開發,Google、Facebook、Microsoft等公司開源了Tensorflow、Pytorch、CNTK等神經網絡框架。其中Pytorch是一種Python接口的深度學習框架,不僅可以實現GPU加速,還可以支持動態神經網絡。相比于其他的深度學習框架,Pytorch允許進行動態定義圖的操作,提供最大的靈活性和運行速度,因此受到了神經網絡研究者們的青睞。
實驗數據來自福州市勘測院“玉屏龍江街道兩違監測項目”。該項目于近期采用無人機進行低空高分辨率(0.1)攝影,實驗數據為經過糾正、鑲嵌、勻色制作的工作底圖,以及人工識別的疑似圖斑矢量數據,以此為依據生成訓練數據。
(1)玉屏龍江街道片區正射影像圖數據,如圖1所示。

圖1 原始影像 圖2 人工識別疑似圖斑
(2)人工判別的疑似圖斑shp格式多邊形數據,如圖2所示。
U型神經網絡需要準備兩種數據,分別是樣本數據和標簽數據。
2.2.1 生成Rgb訓練數據
Rgb訓練樣本數據以人工識別圖斑shp數據為依據,使用ArcToolbox中的Export Training Data For Deep Learning(為深度學習輸出培訓數據)工具,在影像數據上直接提取。具體步驟如下:
(1)ArcMap加載疑似圖斑與影像圖,操作開始前,先對玉屏龍江街道片區疑似圖斑shp的屬性進行添加字段Classname與Classvalue,以保證后續的步驟順利進行。
(2)啟動Export Training Data For Deep Learning工具。
(3)樣本規格為128×128,步長為64×64,步長為樣本寬度的一半,這樣剛好有一個樣本中心處于相鄰樣本的邊界,使取樣有較好覆蓋度。
(4)經過處理,得到樣本文件夾,包含images、lables、stats。其中images中含有大量tif格式的圖片,如圖3所示,它們保留完整的地理坐標信息,為后續柵格疊加計算提供了條件。

圖3 訓練樣本數據
2.2.2 生成標簽數據
先將疑似圖斑矢量多邊形數據轉換為同分辨率的柵格數據,經過重分類后得到0-1二值化數據柵格,其中0像元代表正常像元,1像元代表疑似像元。
然后將二值化柵格分別與3.2.1得到的訓練樣本圖片做“乘法”或“加法”,得到與訓練樣本圖片對應的標簽圖片。如果采用“乘法”,那么結果需要做二值化處理(所有非0值重分類為1);如果采用“加法”,則在做加法前,應將訓練樣本圖片重分類成純0值柵格數據。
由于每個樣本數據對應一個標簽數據,數量較大,本文采用Arcgis的model builder構建的批處理模型完成。這個模型用到重分類工具(Reclassify)與加法工具(plus),在重分類之前再加上一個柵格迭代器進行批處理循環。輸出的標簽數據如圖4所示。

圖4 標簽數據
(1)定義卷積類class double_conv(),包括2個“二維卷積”+“二維正則化”+“ReLU激活層”,邏輯結構如下:多個小個模塊用nn.Sequential()函數按順序執行,減少了很多步驟。
=>nn.Conv2d=>nn.BatchNorm2d=>nn.ReLU
=>nn.Conv2d=>nn.BatchNorm2d=>nn.ReLU
(2)定義下采樣類class down(),包括double_conv卷積層和nn.Maxpool2d池化層。
=>double_conv=>nn.Maxpool2d
(3)定義上采樣類class up(),根據情況,使用nn.Upsample()函數進行上采樣,或用到nn.ConvTranspose2d()函數進行逆卷積層操作。
(4)定義輸入輸出卷積層,class incov()、分別包含double_conv。class outconv(),包含標準二位卷積層nn.covn2d。
(5)定義class UNet,包括一個輸入層,4個下采樣,4個上采樣,一個輸出層。
將前期準備好的訓練數據隨機選取90%作為訓練集,其他10%作為驗證集。
模型訓練使用Pytorch 1.1框架軟件,損失函數采用由torch.nn.functional模塊提供的nn.MSELoss()函數,而優化函數是由torch.optim模塊提供。采用CDUA模式在NVIDIA Quadro M2200 gpu 上完成,訓練時間大約3 h。
訓練完成后,用模型算出驗證集的預測結果數據。
本文分別用32×32、64×64、128×128、256×256、512×512規格RGB訓練樣本完成5種模型的訓練,之后用模型對驗證集輸出預測數據,如圖5所示。

圖5 128×128預測數據
為評價模型的準確度,將驗證集的預測結果與人工標定結果進行對比分析:
(1)無坐標系預測圖片加入坐標系信息,使預測數據的位置與驗證集標簽數據對齊;
(2)對驗證集標簽數據做歸一化處理,使得標簽數據與預測數據單位統一;
(3)預測圖片與標簽圖片進行減法計算,其中value為0的是識別正確的像素,value大于0或小于0的是識別錯誤的像素,最后計算正確像素個數占每張圖片的總像數的百分比,即為所求準確度。
對每種規格的驗證集進行以上操作,得出每一標簽圖片“兩違圖斑像素”精確率和召回率。如表1所示。32×32規格平均精確率72%最高,128×28規格平均召回率90%最高;256×256和512×512規格樣本精確率十分接近(約為66%),但512×512規格召回率急劇下降,說明U-Net模型對樣本規格選取較敏感。

表1 5種規格的平均準確度 %
因為“兩違圖斑像素”召回率表征了遺漏疑似圖斑的概率。實際應用時出現遺漏人工難以彌補,但精確率偏低代表發現的疑似兩違圖斑中包含較多正常圖斑被誤判,這個可以通過人工甄別剔除。因此:樣本尺寸以選取128×128為最優。
模型應用時只能接受規格化的圖片,因此不能把衛星遙感影像直接放入U-Net模型直接識別,因此,我們將遙感影像進行格網化處理。步驟如下:
(1)利用漁網工具生成網格得到漁網多邊形,使用工具:ArcToolbox→Data Management Tools→Feature Class→Create Fishnet。
(2)用漁網多邊形切割影像生成一系列小圖片,用到分割影像工具(Split Raster)進行此項操作。
(3)用已經訓練好的U型神經網絡模型,分別對切分出來的小塊圖片進行識別,生成對應的預測圖片集。
(4)依據輸入圖片坐標信息還原預測圖片的坐標信息。
(5)將所有預測圖拼接在一起得到總預測圖,用工具Mosaic to New Raster進行此項操作。
(6)在總預測圖上提取疑似圖斑的邊界。
(7)最后輸出成果圖。
為驗證模型的有效性,按上述步驟對福州市高新區2021年4月無人機正射影像圖進行自動識別,預測效果如圖6所示。

圖6 預測效果圖
對拼接好的總預測圖與人工判讀的兩違疑似圖斑柵格數據進行比對分析,結果表明:位置準確率達到95%(即在人工判定有問題的地方均有預測圖斑),精確率達到51%,有一些正常圖片出現誤判現象。
本論文U型神經網絡建立了兩違疑似圖斑識別模型,包括:利用人工標識的疑似圖斑矢量數據制作訓練樣本數據、設計識別模型、進行模型訓練及評價,進而利用該模型對其他影像進行自動識別等。主要結論如下:
(1)模型對樣本規格敏感,128×128規格訓練得到模型為最優。
(2)試驗表明,該模型可代替人工發現兩違疑似圖斑,從而減輕人工作業的強度,提高土地執法部門的工作效率。
(3)由于疑似圖斑精確度難以同時提高,應用中發現有正常圖片被抓取。這類問題可通過人工甄別把關,或由需國土執法人員實地核實后剔除。
本論文是運用深度學習人工智能技術發現兩違疑似圖斑的有益嘗試,對于提高判讀工作效率和自動化水平,以及減輕人工作業勞動強度具有重要實際意義。