鐘洪德
(福州市勘測院 福建福州 350108)
在我國城鎮(zhèn)化進(jìn)程中,違法用地、違法建筑現(xiàn)象(簡稱兩違)時有發(fā)生,傳統(tǒng)實地巡查監(jiān)管手段工作量大,耗時長,無法滿足現(xiàn)階段土地執(zhí)法工作的需要。近年來,人們嘗試遙感影像[1]制作正射影像圖,或是采用傾斜攝影測量技術(shù)[2]建立實景真三維模型,代替人工實地巡查,極大減輕工作強(qiáng)度。但兩違現(xiàn)象的發(fā)現(xiàn)仍然依靠人工比對識別。
U-Net神經(jīng)網(wǎng)絡(luò)在醫(yī)學(xué)治療分析方面表現(xiàn)突出[3-4],后來被運(yùn)用到語義分割的各個方向,例如道路識別[5]、建筑物檢測[6]、水位監(jiān)測[7]等。近兩年U-Net 開始應(yīng)用于遙感影像分類領(lǐng)域,一些研究人員嘗試多種數(shù)據(jù)源與原始影像結(jié)合,提高U-Net模型的分類精度,在建筑物分類上取得了較好效果[8]。
本文以福州市無人機(jī)兩違監(jiān)測影像為例,利用U-Net對樣本數(shù)據(jù)進(jìn)行訓(xùn)練,建立了兩違疑似圖斑自動識別模型,在GIS技術(shù)支持下可對大面積正射影像進(jìn)行自動搜索,準(zhǔn)確標(biāo)定兩違疑似圖斑的位置和范圍,極大提高了兩違監(jiān)測的自動化水平和工作效率。
U-Net模型由壓縮通道(contracting path)和擴(kuò)展通道(expansive path)組成,該模型外觀呈“U”型,非常形象[9]。U-Net具有如下特點:
①使用全卷積神經(jīng)網(wǎng)絡(luò),比較適應(yīng)多種尺寸的輸入圖像。
②有別于一般卷積神經(jīng)網(wǎng)絡(luò)只能回答是什么,U-Net可完成圖像分割,特別適合需要準(zhǔn)確知道疑似圖斑位置和范圍的應(yīng)用場景。
③能對有限的數(shù)據(jù)進(jìn)行有效的處理和利用。
④處理速度較快。
為了幫助基于神經(jīng)網(wǎng)絡(luò)架構(gòu)的開發(fā),Google、Facebook、Microsoft等公司開源了Tensorflow、Pytorch、CNTK等神經(jīng)網(wǎng)絡(luò)框架。其中Pytorch是一種Python接口的深度學(xué)習(xí)框架,不僅可以實現(xiàn)GPU加速,還可以支持動態(tài)神經(jīng)網(wǎng)絡(luò)。相比于其他的深度學(xué)習(xí)框架,Pytorch允許進(jìn)行動態(tài)定義圖的操作,提供最大的靈活性和運(yùn)行速度,因此受到了神經(jīng)網(wǎng)絡(luò)研究者們的青睞。
實驗數(shù)據(jù)來自福州市勘測院“玉屏龍江街道兩違監(jiān)測項目”。該項目于近期采用無人機(jī)進(jìn)行低空高分辨率(0.1)攝影,實驗數(shù)據(jù)為經(jīng)過糾正、鑲嵌、勻色制作的工作底圖,以及人工識別的疑似圖斑矢量數(shù)據(jù),以此為依據(jù)生成訓(xùn)練數(shù)據(jù)。
(1)玉屏龍江街道片區(qū)正射影像圖數(shù)據(jù),如圖1所示。
圖1 原始影像 圖2 人工識別疑似圖斑
(2)人工判別的疑似圖斑shp格式多邊形數(shù)據(jù),如圖2所示。
U型神經(jīng)網(wǎng)絡(luò)需要準(zhǔn)備兩種數(shù)據(jù),分別是樣本數(shù)據(jù)和標(biāo)簽數(shù)據(jù)。
2.2.1 生成Rgb訓(xùn)練數(shù)據(jù)
Rgb訓(xùn)練樣本數(shù)據(jù)以人工識別圖斑shp數(shù)據(jù)為依據(jù),使用ArcToolbox中的Export Training Data For Deep Learning(為深度學(xué)習(xí)輸出培訓(xùn)數(shù)據(jù))工具,在影像數(shù)據(jù)上直接提取。具體步驟如下:
(1)ArcMap加載疑似圖斑與影像圖,操作開始前,先對玉屏龍江街道片區(qū)疑似圖斑shp的屬性進(jìn)行添加字段Classname與Classvalue,以保證后續(xù)的步驟順利進(jìn)行。
(2)啟動Export Training Data For Deep Learning工具。
(3)樣本規(guī)格為128×128,步長為64×64,步長為樣本寬度的一半,這樣剛好有一個樣本中心處于相鄰樣本的邊界,使取樣有較好覆蓋度。
(4)經(jīng)過處理,得到樣本文件夾,包含images、lables、stats。其中images中含有大量tif格式的圖片,如圖3所示,它們保留完整的地理坐標(biāo)信息,為后續(xù)柵格疊加計算提供了條件。
圖3 訓(xùn)練樣本數(shù)據(jù)
2.2.2 生成標(biāo)簽數(shù)據(jù)
先將疑似圖斑矢量多邊形數(shù)據(jù)轉(zhuǎn)換為同分辨率的柵格數(shù)據(jù),經(jīng)過重分類后得到0-1二值化數(shù)據(jù)柵格,其中0像元代表正常像元,1像元代表疑似像元。
然后將二值化柵格分別與3.2.1得到的訓(xùn)練樣本圖片做“乘法”或“加法”,得到與訓(xùn)練樣本圖片對應(yīng)的標(biāo)簽圖片。如果采用“乘法”,那么結(jié)果需要做二值化處理(所有非0值重分類為1);如果采用“加法”,則在做加法前,應(yīng)將訓(xùn)練樣本圖片重分類成純0值柵格數(shù)據(jù)。
由于每個樣本數(shù)據(jù)對應(yīng)一個標(biāo)簽數(shù)據(jù),數(shù)量較大,本文采用Arcgis的model builder構(gòu)建的批處理模型完成。這個模型用到重分類工具(Reclassify)與加法工具(plus),在重分類之前再加上一個柵格迭代器進(jìn)行批處理循環(huán)。輸出的標(biāo)簽數(shù)據(jù)如圖4所示。
圖4 標(biāo)簽數(shù)據(jù)
(1)定義卷積類class double_conv(),包括2個“二維卷積”+“二維正則化”+“ReLU激活層”,邏輯結(jié)構(gòu)如下:多個小個模塊用nn.Sequential()函數(shù)按順序執(zhí)行,減少了很多步驟。
=>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(),根據(jù)情況,使用nn.Upsample()函數(shù)進(jìn)行上采樣,或用到nn.ConvTranspose2d()函數(shù)進(jìn)行逆卷積層操作。
(4)定義輸入輸出卷積層,class incov()、分別包含double_conv。class outconv(),包含標(biāo)準(zhǔn)二位卷積層nn.covn2d。
(5)定義class UNet,包括一個輸入層,4個下采樣,4個上采樣,一個輸出層。
將前期準(zhǔn)備好的訓(xùn)練數(shù)據(jù)隨機(jī)選取90%作為訓(xùn)練集,其他10%作為驗證集。
模型訓(xùn)練使用Pytorch 1.1框架軟件,損失函數(shù)采用由torch.nn.functional模塊提供的nn.MSELoss()函數(shù),而優(yōu)化函數(shù)是由torch.optim模塊提供。采用CDUA模式在NVIDIA Quadro M2200 gpu 上完成,訓(xùn)練時間大約3 h。
訓(xùn)練完成后,用模型算出驗證集的預(yù)測結(jié)果數(shù)據(jù)。
本文分別用32×32、64×64、128×128、256×256、512×512規(guī)格RGB訓(xùn)練樣本完成5種模型的訓(xùn)練,之后用模型對驗證集輸出預(yù)測數(shù)據(jù),如圖5所示。
圖5 128×128預(yù)測數(shù)據(jù)
為評價模型的準(zhǔn)確度,將驗證集的預(yù)測結(jié)果與人工標(biāo)定結(jié)果進(jìn)行對比分析:
(1)無坐標(biāo)系預(yù)測圖片加入坐標(biāo)系信息,使預(yù)測數(shù)據(jù)的位置與驗證集標(biāo)簽數(shù)據(jù)對齊;
(2)對驗證集標(biāo)簽數(shù)據(jù)做歸一化處理,使得標(biāo)簽數(shù)據(jù)與預(yù)測數(shù)據(jù)單位統(tǒng)一;
(3)預(yù)測圖片與標(biāo)簽圖片進(jìn)行減法計算,其中value為0的是識別正確的像素,value大于0或小于0的是識別錯誤的像素,最后計算正確像素個數(shù)占每張圖片的總像數(shù)的百分比,即為所求準(zhǔn)確度。
對每種規(guī)格的驗證集進(jìn)行以上操作,得出每一標(biāo)簽圖片“兩違圖斑像素”精確率和召回率。如表1所示。32×32規(guī)格平均精確率72%最高,128×28規(guī)格平均召回率90%最高;256×256和512×512規(guī)格樣本精確率十分接近(約為66%),但512×512規(guī)格召回率急劇下降,說明U-Net模型對樣本規(guī)格選取較敏感。
表1 5種規(guī)格的平均準(zhǔn)確度 %
因為“兩違圖斑像素”召回率表征了遺漏疑似圖斑的概率。實際應(yīng)用時出現(xiàn)遺漏人工難以彌補(bǔ),但精確率偏低代表發(fā)現(xiàn)的疑似兩違圖斑中包含較多正常圖斑被誤判,這個可以通過人工甄別剔除。因此:樣本尺寸以選取128×128為最優(yōu)。
模型應(yīng)用時只能接受規(guī)格化的圖片,因此不能把衛(wèi)星遙感影像直接放入U-Net模型直接識別,因此,我們將遙感影像進(jìn)行格網(wǎng)化處理。步驟如下:
(1)利用漁網(wǎng)工具生成網(wǎng)格得到漁網(wǎng)多邊形,使用工具:ArcToolbox→Data Management Tools→Feature Class→Create Fishnet。
(2)用漁網(wǎng)多邊形切割影像生成一系列小圖片,用到分割影像工具(Split Raster)進(jìn)行此項操作。
(3)用已經(jīng)訓(xùn)練好的U型神經(jīng)網(wǎng)絡(luò)模型,分別對切分出來的小塊圖片進(jìn)行識別,生成對應(yīng)的預(yù)測圖片集。
(4)依據(jù)輸入圖片坐標(biāo)信息還原預(yù)測圖片的坐標(biāo)信息。
(5)將所有預(yù)測圖拼接在一起得到總預(yù)測圖,用工具M(jìn)osaic to New Raster進(jìn)行此項操作。
(6)在總預(yù)測圖上提取疑似圖斑的邊界。
(7)最后輸出成果圖。
為驗證模型的有效性,按上述步驟對福州市高新區(qū)2021年4月無人機(jī)正射影像圖進(jìn)行自動識別,預(yù)測效果如圖6所示。
圖6 預(yù)測效果圖
對拼接好的總預(yù)測圖與人工判讀的兩違疑似圖斑柵格數(shù)據(jù)進(jìn)行比對分析,結(jié)果表明:位置準(zhǔn)確率達(dá)到95%(即在人工判定有問題的地方均有預(yù)測圖斑),精確率達(dá)到51%,有一些正常圖片出現(xiàn)誤判現(xiàn)象。
本論文U型神經(jīng)網(wǎng)絡(luò)建立了兩違疑似圖斑識別模型,包括:利用人工標(biāo)識的疑似圖斑矢量數(shù)據(jù)制作訓(xùn)練樣本數(shù)據(jù)、設(shè)計識別模型、進(jìn)行模型訓(xùn)練及評價,進(jìn)而利用該模型對其他影像進(jìn)行自動識別等。主要結(jié)論如下:
(1)模型對樣本規(guī)格敏感,128×128規(guī)格訓(xùn)練得到模型為最優(yōu)。
(2)試驗表明,該模型可代替人工發(fā)現(xiàn)兩違疑似圖斑,從而減輕人工作業(yè)的強(qiáng)度,提高土地執(zhí)法部門的工作效率。
(3)由于疑似圖斑精確度難以同時提高,應(yīng)用中發(fā)現(xiàn)有正常圖片被抓取。這類問題可通過人工甄別把關(guān),或由需國土執(zhí)法人員實地核實后剔除。
本論文是運(yùn)用深度學(xué)習(xí)人工智能技術(shù)發(fā)現(xiàn)兩違疑似圖斑的有益嘗試,對于提高判讀工作效率和自動化水平,以及減輕人工作業(yè)勞動強(qiáng)度具有重要實際意義。