肖建峰
(南華大學計算機學院軟件工程系,衡陽 421001)
深度學習(deep learning,DL)是機器學習(machine learning,ML)領域中一個新的研究方向,它被引入機器學習使其更接近于最初的目標——人工智能(artificial intelligence,AI)[1]。近年來隨著深度學習的發展,深度學習在計算機視覺上用于語義分割有不錯的成就。圖像分割是計算機視覺領域的一個重要方向,是圖像處理的核心環節。伴隨深度學習技術的發展,結合深度學習的圖像分割技術在精確度上遠超傳統圖像分割方法。卷積神經網絡(CNN)與全卷積神經網絡(FCN)的提出,極大促進了圖像語義分割技術發展,研究人員提出了很多新型網絡模型,分割精準度大幅度提升[2]。
遙感技術在空間地理信息的應用上解決了許多的問題。遙感技術廣泛用于軍事檢測、監視海洋環境、觀察天氣等。在民用方面,遙感技術被用來進行地理資源檢測、農作物分類、用地規劃、環境污染監測、建筑識別、預測地震等方面。
本文將講述語義分割的相關內容,闡明使用FCN和ResNet結合的網絡模型來對地表的建筑物進行識別,將圖像分割出來的原理。并利用航拍的地表圖片進行訓練,得出實驗結果,進行總結。
語義分割是計算機視覺中十分重要的領域,它是從像素的級別上識別圖像,識別出圖像中每個像素對應的物體的種類。語義分割的目的是將圖像中的每個像素映射至一個目標類。語義在圖像的領域來說就是指對圖像內容進行理解。分割,就是將圖像中物體從像素的顏色上分離。如圖1中對像素進行分類識別出一只貓。

圖1 語義分割簡單示例
1.2.1 地理位置信息
通過構建神經網絡訓練數據,將航拍的圖像作為輸入能有效地自動識別地表的建筑、山川、河流等位置信息,來幫助地理局進行相關的工作。
1.2.2 用于無人駕駛
對于自動駕駛的汽車來說,判斷道路的情況是十分重要的,對無人駕駛來說語義分割是很核心的算法,通過對道路圖像的輸入利用神經網絡將道路上的物體分類,從而對分析的道路情況進項相應的駕駛操作,提升駕駛的安全。如圖2所示。

圖2 道路情況語義分割
1.2.3 醫療影像分析
圖像分割是一個重要的處理步驟,它可以幫助進行以圖像為指引的醫學干預、放射療法或是更有效的放射科診斷等[3]。如圖3所示。

圖3 醫學影像齲齒診斷語義分割
1.3.1 圖像分類
給出打好標簽的分類的圖像,進行訓練然后這就是圖像分類問題。圖像分類是判別圖中物體是什么,比如是貓還是羊。
1.3.2 目標檢測
區分圖像中的物體并進行定位,一般對所檢測的物體進行矩形框的標記,同時標注出是什么物體。如圖4所示的檢測則要使用邊界框檢測所給定圖像中的所有羊。

圖4 目標檢測示例
1.3.3 語義分割
對圖像進行像素級分類,預測每個像素屬于的類別,不區分個體。如圖5所示。

圖5 語義分割示例
1.3.4 實例分割
定位圖中每個物體,并進行像素級標注,區分不同個體。如圖6所示,3只羊都被分割出不同的顏色。

圖6 實例分割示例
CNN在卷積、非線性激活和最大池化運算后,將特征圖展開成若干個獨立神經元,并通過全連接方式映射為固定長度的特征向量,常應用于對整幅圖像分類。與CNN不同,Long等人2015年提出的FCN模型(fully convolutional networks for semantic segmentation),利用特征圖同尺寸卷積運算得到若干個卷積層用來代替CNN網絡中的全連接層,并采用空間插值和反卷積等上采樣技術對特征圖進行尺度復原,最后基于多分類模型進行逐像素預測,實現端到端語義分割[4]。FCN有三大特點:
(1)接收任意尺寸輸入的全卷積網絡。全卷積神經網絡把卷積神經網絡中的全連接層使用卷積層來代替。在傳統的卷積神經網絡結構中,前面是卷積層,后3層是全連接層,而FCN打破了常規,把后面的全連接改成卷積,最后輸出和原圖大小相同的圖片。因為所有的層都是卷積層,故稱為全卷積網絡。為了實現圖像的像素分類,最后將圖片進行分割,輸出應為圖片,而全連接層的是將二維的輸入轉換為一維,不能變為二維圖像。但是FCN將全連接層替換為卷積層就能達到輸出為低分辨率圖像的目的,同時卷積也能學習到更深的特征。網絡結構如圖7所示。

圖7 FCN網絡結構
(2)圖片上采樣。圖片上采樣利用反卷積把圖像變大,最后放大成和原圖大小相同的圖片(圖8)。上采樣還能提高分辨率,能夠輸出良好的結果。并確保特征所在區域的權重,最后在提高圖像分辨率和原始圖像一致性后,高權重區域就是目標所在區域。如圖9中,自行車的圖片,沒有經過上采樣的圖像熱圖形狀模糊,識別不出是什么物體,經過不斷地反卷積之后圖像特征逐漸明顯,自行車的部分權重高熱圖顏色深,很好的提升了圖像分辨率保留了特征。

圖8 反卷積填充

圖9 上采樣示例
(3)融合深層粗糙特征和淺層精細特征的跳躍結構。經過卷積池化后的圖像特征丟失會很明顯,為了加強特征的學習使得輸出的圖像更加精細,保留細節。FCN具有跳躍結構,如圖10所示。

圖10 FCN跳躍結構
圖像經過1次卷積池化過程,長變為1/2,寬變為1/2;圖像通過第2次卷積池化過程后,長變為1/4,寬變為1/4;圖像通過第3次卷積池化過程后,長變為1/8,寬變為1/8,留下第3次的池化后的featuremap;通過第4次卷積池化過程后圖像長變為1/16,寬變為1/16,這時留下第4次的池化后的特征圖featuremap;在第5次卷積池化過程后圖像長變為1/32,寬變為1/32,FCN-32s是直接經過5次卷積池化后通過后幾層卷積得到的分割圖像。FCN-16s是第4次保留的featuremap和第5次的卷積池化后的上采樣疊加的圖像,能恢復一些細節。FCN-8s是第3次保留的featuremap和第4、5次上采樣的圖像再次疊加的放大圖像。此時一些細節的特征將保留下來。使用跳級連接結構,從卷積的前幾層中提取的特征圖像,分別與后一層的上采樣層連接,然后再進行上采樣,經過多次采樣后,可以得到與原始圖像大小相同的特征圖像,因此在復原圖像時,可以獲得更多的和原圖一樣的圖像信息。

圖11 殘差網絡殘差塊
殘差網絡是由來自Microsoft Research的4位學者提出的卷積神經網絡,在2015年的ImageNet大規模視覺識別競賽(imageNet large scale visual recognition challenge,ILSVRC)中獲得了圖像分類和物體識別的優勝[5]。殘差網絡的特點是它有特殊的跳躍結構能幫助學習更多的特征,精細化表述,同時能解決相應的網絡退化梯度消失的問題。一般網絡,隨著層數的加深,網絡會發生退化,即特征圖像包含的圖像信息會隨層數的增加而減少,而ResNet的跳躍結構能將之前的層的特征直接映射到后層或者經過降維之后疊加到后面的層,從而可以使得模型訓練時學習更多的特征,刻畫細節,最后和原圖一致。
為了更好的實現對建筑物的語義分割,本文利用FCN和ResNet50網絡模型進行訓練,網絡結構如圖12所示。

圖12 FCN+ResNet50模型
Conv2_x層是3個1×1,64、3×3,64、1×1,256的卷積構成,Conv3_x層是3個1×1,128、3×3,128、1×1,512的卷積構成,Conv4_x層是3個1×1,256、3×3,256、1×1,1024的卷積構成,Conv5_x層 是3個1×1,512、3×3,512、1×1,2048的卷積構成。
為了驗證模型的有效性,本文使用航拍的地表建筑數據進行訓練,圖像分為有建筑與無建筑,訓練測試后將圖像分類,有建筑則進行分割圖像。
train_mask.csv:存儲圖片的標注的rle編碼,run-length encoding,游程編碼或行程是一種不會破壞圖像的無損壓縮的方法。
train文件夾和test文件夾:存儲訓練集和測試集圖片,訓練集圖片30000張,測試集圖片2500張。
首先對圖片進行預處理,讀取圖片,進行rle解碼,然后對圖片進行數據增廣。數據增廣是一種有效的正則化手段,可以防止模型過擬合,在深度學習模型的訓練過程中被廣泛地運用。數據增廣的目的是增加數據集中樣本的數據量,同時也可以有效增加樣本的語義空間。本文利用albu?mentations對數據進行增廣,包括對圖片進行裁剪、翻轉、隨機裁剪等操作。劃分好訓練集和測試集,接著進行模型訓練,設置EPOCHES=20,BATCH_SIZE=32,IMAGE_SIZE=512,使 用DiceLoss作為損失函數,每次訓練時進行正向傳播,計算損失,反向傳播。
在訓練過程中,對訓練集和驗證集進行了劃分,并利用繪圖工具繪制了精度曲線和損失函數曲線。最終準確率為82%。損失率為0.101。如圖13所示。

圖13 準確率損失率
從圖14預測結果看出,驗證FCN+ResNet50網絡模型用于地表的建筑物的識別是行之有效的。

圖14 預測結果
本文講述了FCN+ResNet的網絡模型進行語義分割的方法,主要是應用于航拍的地表建筑識別。介紹了FCN的三大特點,接收任意尺寸輸入的全卷積網絡;圖片上采樣;融合深層粗略特征和淺層細節特征的跳躍結構,ResNet的跳躍結構,以及FCN是如何做到語義分割的原理。同時提出將FCN+ResNet網絡模型結合能更好的學習深層特征和淺層的精細特征,最后通實驗進行驗證,利用航拍的地表建筑圖像數據集,使用FCN+REsNet50模型進行訓練最終得出不錯的效果。因此得出FCN_ResNet網絡用于航拍的地表建筑識別是行之有效的,其也是語義分割表現不錯的模型。