肖建峰
(南華大學(xué)計(jì)算機(jī)學(xué)院軟件工程系,衡陽(yáng) 421001)
深度學(xué)習(xí)(deep learning,DL)是機(jī)器學(xué)習(xí)(machine learning,ML)領(lǐng)域中一個(gè)新的研究方向,它被引入機(jī)器學(xué)習(xí)使其更接近于最初的目標(biāo)——人工智能(artificial intelligence,AI)[1]。近年來(lái)隨著深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)上用于語(yǔ)義分割有不錯(cuò)的成就。圖像分割是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要方向,是圖像處理的核心環(huán)節(jié)。伴隨深度學(xué)習(xí)技術(shù)的發(fā)展,結(jié)合深度學(xué)習(xí)的圖像分割技術(shù)在精確度上遠(yuǎn)超傳統(tǒng)圖像分割方法。卷積神經(jīng)網(wǎng)絡(luò)(CNN)與全卷積神經(jīng)網(wǎng)絡(luò)(FCN)的提出,極大促進(jìn)了圖像語(yǔ)義分割技術(shù)發(fā)展,研究人員提出了很多新型網(wǎng)絡(luò)模型,分割精準(zhǔn)度大幅度提升[2]。
遙感技術(shù)在空間地理信息的應(yīng)用上解決了許多的問(wèn)題。遙感技術(shù)廣泛用于軍事檢測(cè)、監(jiān)視海洋環(huán)境、觀察天氣等。在民用方面,遙感技術(shù)被用來(lái)進(jìn)行地理資源檢測(cè)、農(nóng)作物分類、用地規(guī)劃、環(huán)境污染監(jiān)測(cè)、建筑識(shí)別、預(yù)測(cè)地震等方面。
本文將講述語(yǔ)義分割的相關(guān)內(nèi)容,闡明使用FCN和ResNet結(jié)合的網(wǎng)絡(luò)模型來(lái)對(duì)地表的建筑物進(jìn)行識(shí)別,將圖像分割出來(lái)的原理。并利用航拍的地表圖片進(jìn)行訓(xùn)練,得出實(shí)驗(yàn)結(jié)果,進(jìn)行總結(jié)。
語(yǔ)義分割是計(jì)算機(jī)視覺(jué)中十分重要的領(lǐng)域,它是從像素的級(jí)別上識(shí)別圖像,識(shí)別出圖像中每個(gè)像素對(duì)應(yīng)的物體的種類。語(yǔ)義分割的目的是將圖像中的每個(gè)像素映射至一個(gè)目標(biāo)類。語(yǔ)義在圖像的領(lǐng)域來(lái)說(shuō)就是指對(duì)圖像內(nèi)容進(jìn)行理解。分割,就是將圖像中物體從像素的顏色上分離。如圖1中對(duì)像素進(jìn)行分類識(shí)別出一只貓。
圖1 語(yǔ)義分割簡(jiǎn)單示例
1.2.1 地理位置信息
通過(guò)構(gòu)建神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),將航拍的圖像作為輸入能有效地自動(dòng)識(shí)別地表的建筑、山川、河流等位置信息,來(lái)幫助地理局進(jìn)行相關(guān)的工作。
1.2.2 用于無(wú)人駕駛
對(duì)于自動(dòng)駕駛的汽車來(lái)說(shuō),判斷道路的情況是十分重要的,對(duì)無(wú)人駕駛來(lái)說(shuō)語(yǔ)義分割是很核心的算法,通過(guò)對(duì)道路圖像的輸入利用神經(jīng)網(wǎng)絡(luò)將道路上的物體分類,從而對(duì)分析的道路情況進(jìn)項(xiàng)相應(yīng)的駕駛操作,提升駕駛的安全。如圖2所示。
圖2 道路情況語(yǔ)義分割
1.2.3 醫(yī)療影像分析
圖像分割是一個(gè)重要的處理步驟,它可以幫助進(jìn)行以圖像為指引的醫(yī)學(xué)干預(yù)、放射療法或是更有效的放射科診斷等[3]。如圖3所示。
圖3 醫(yī)學(xué)影像齲齒診斷語(yǔ)義分割
1.3.1 圖像分類
給出打好標(biāo)簽的分類的圖像,進(jìn)行訓(xùn)練然后這就是圖像分類問(wèn)題。圖像分類是判別圖中物體是什么,比如是貓還是羊。
1.3.2 目標(biāo)檢測(cè)
區(qū)分圖像中的物體并進(jìn)行定位,一般對(duì)所檢測(cè)的物體進(jìn)行矩形框的標(biāo)記,同時(shí)標(biāo)注出是什么物體。如圖4所示的檢測(cè)則要使用邊界框檢測(cè)所給定圖像中的所有羊。
圖4 目標(biāo)檢測(cè)示例
1.3.3 語(yǔ)義分割
對(duì)圖像進(jìn)行像素級(jí)分類,預(yù)測(cè)每個(gè)像素屬于的類別,不區(qū)分個(gè)體。如圖5所示。
圖5 語(yǔ)義分割示例
1.3.4 實(shí)例分割
定位圖中每個(gè)物體,并進(jìn)行像素級(jí)標(biāo)注,區(qū)分不同個(gè)體。如圖6所示,3只羊都被分割出不同的顏色。
圖6 實(shí)例分割示例
CNN在卷積、非線性激活和最大池化運(yùn)算后,將特征圖展開成若干個(gè)獨(dú)立神經(jīng)元,并通過(guò)全連接方式映射為固定長(zhǎng)度的特征向量,常應(yīng)用于對(duì)整幅圖像分類。與CNN不同,Long等人2015年提出的FCN模型(fully convolutional networks for semantic segmentation),利用特征圖同尺寸卷積運(yùn)算得到若干個(gè)卷積層用來(lái)代替CNN網(wǎng)絡(luò)中的全連接層,并采用空間插值和反卷積等上采樣技術(shù)對(duì)特征圖進(jìn)行尺度復(fù)原,最后基于多分類模型進(jìn)行逐像素預(yù)測(cè),實(shí)現(xiàn)端到端語(yǔ)義分割[4]。FCN有三大特點(diǎn):
(1)接收任意尺寸輸入的全卷積網(wǎng)絡(luò)。全卷積神經(jīng)網(wǎng)絡(luò)把卷積神經(jīng)網(wǎng)絡(luò)中的全連接層使用卷積層來(lái)代替。在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,前面是卷積層,后3層是全連接層,而FCN打破了常規(guī),把后面的全連接改成卷積,最后輸出和原圖大小相同的圖片。因?yàn)樗械膶佣际蔷矸e層,故稱為全卷積網(wǎng)絡(luò)。為了實(shí)現(xiàn)圖像的像素分類,最后將圖片進(jìn)行分割,輸出應(yīng)為圖片,而全連接層的是將二維的輸入轉(zhuǎn)換為一維,不能變?yōu)槎S圖像。但是FCN將全連接層替換為卷積層就能達(dá)到輸出為低分辨率圖像的目的,同時(shí)卷積也能學(xué)習(xí)到更深的特征。網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 FCN網(wǎng)絡(luò)結(jié)構(gòu)
(2)圖片上采樣。圖片上采樣利用反卷積把圖像變大,最后放大成和原圖大小相同的圖片(圖8)。上采樣還能提高分辨率,能夠輸出良好的結(jié)果。并確保特征所在區(qū)域的權(quán)重,最后在提高圖像分辨率和原始圖像一致性后,高權(quán)重區(qū)域就是目標(biāo)所在區(qū)域。如圖9中,自行車的圖片,沒(méi)有經(jīng)過(guò)上采樣的圖像熱圖形狀模糊,識(shí)別不出是什么物體,經(jīng)過(guò)不斷地反卷積之后圖像特征逐漸明顯,自行車的部分權(quán)重高熱圖顏色深,很好的提升了圖像分辨率保留了特征。
圖8 反卷積填充
圖9 上采樣示例
(3)融合深層粗糙特征和淺層精細(xì)特征的跳躍結(jié)構(gòu)。經(jīng)過(guò)卷積池化后的圖像特征丟失會(huì)很明顯,為了加強(qiáng)特征的學(xué)習(xí)使得輸出的圖像更加精細(xì),保留細(xì)節(jié)。FCN具有跳躍結(jié)構(gòu),如圖10所示。
圖10 FCN跳躍結(jié)構(gòu)
圖像經(jīng)過(guò)1次卷積池化過(guò)程,長(zhǎng)變?yōu)?/2,寬變?yōu)?/2;圖像通過(guò)第2次卷積池化過(guò)程后,長(zhǎng)變?yōu)?/4,寬變?yōu)?/4;圖像通過(guò)第3次卷積池化過(guò)程后,長(zhǎng)變?yōu)?/8,寬變?yōu)?/8,留下第3次的池化后的featuremap;通過(guò)第4次卷積池化過(guò)程后圖像長(zhǎng)變?yōu)?/16,寬變?yōu)?/16,這時(shí)留下第4次的池化后的特征圖featuremap;在第5次卷積池化過(guò)程后圖像長(zhǎng)變?yōu)?/32,寬變?yōu)?/32,F(xiàn)CN-32s是直接經(jīng)過(guò)5次卷積池化后通過(guò)后幾層卷積得到的分割圖像。FCN-16s是第4次保留的featuremap和第5次的卷積池化后的上采樣疊加的圖像,能恢復(fù)一些細(xì)節(jié)。FCN-8s是第3次保留的featuremap和第4、5次上采樣的圖像再次疊加的放大圖像。此時(shí)一些細(xì)節(jié)的特征將保留下來(lái)。使用跳級(jí)連接結(jié)構(gòu),從卷積的前幾層中提取的特征圖像,分別與后一層的上采樣層連接,然后再進(jìn)行上采樣,經(jīng)過(guò)多次采樣后,可以得到與原始圖像大小相同的特征圖像,因此在復(fù)原圖像時(shí),可以獲得更多的和原圖一樣的圖像信息。
圖11 殘差網(wǎng)絡(luò)殘差塊
殘差網(wǎng)絡(luò)是由來(lái)自Microsoft Research的4位學(xué)者提出的卷積神經(jīng)網(wǎng)絡(luò),在2015年的ImageNet大規(guī)模視覺(jué)識(shí)別競(jìng)賽(imageNet large scale visual recognition challenge,ILSVRC)中獲得了圖像分類和物體識(shí)別的優(yōu)勝[5]。殘差網(wǎng)絡(luò)的特點(diǎn)是它有特殊的跳躍結(jié)構(gòu)能幫助學(xué)習(xí)更多的特征,精細(xì)化表述,同時(shí)能解決相應(yīng)的網(wǎng)絡(luò)退化梯度消失的問(wèn)題。一般網(wǎng)絡(luò),隨著層數(shù)的加深,網(wǎng)絡(luò)會(huì)發(fā)生退化,即特征圖像包含的圖像信息會(huì)隨層數(shù)的增加而減少,而ResNet的跳躍結(jié)構(gòu)能將之前的層的特征直接映射到后層或者經(jīng)過(guò)降維之后疊加到后面的層,從而可以使得模型訓(xùn)練時(shí)學(xué)習(xí)更多的特征,刻畫細(xì)節(jié),最后和原圖一致。
為了更好的實(shí)現(xiàn)對(duì)建筑物的語(yǔ)義分割,本文利用FCN和ResNet50網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,網(wǎng)絡(luò)結(jié)構(gòu)如圖12所示。
圖12 FCN+ResNet50模型
Conv2_x層是3個(gè)1×1,64、3×3,64、1×1,256的卷積構(gòu)成,Conv3_x層是3個(gè)1×1,128、3×3,128、1×1,512的卷積構(gòu)成,Conv4_x層是3個(gè)1×1,256、3×3,256、1×1,1024的卷積構(gòu)成,Conv5_x層 是3個(gè)1×1,512、3×3,512、1×1,2048的卷積構(gòu)成。
為了驗(yàn)證模型的有效性,本文使用航拍的地表建筑數(shù)據(jù)進(jìn)行訓(xùn)練,圖像分為有建筑與無(wú)建筑,訓(xùn)練測(cè)試后將圖像分類,有建筑則進(jìn)行分割圖像。
train_mask.csv:存儲(chǔ)圖片的標(biāo)注的rle編碼,run-length encoding,游程編碼或行程是一種不會(huì)破壞圖像的無(wú)損壓縮的方法。
train文件夾和test文件夾:存儲(chǔ)訓(xùn)練集和測(cè)試集圖片,訓(xùn)練集圖片30000張,測(cè)試集圖片2500張。
首先對(duì)圖片進(jìn)行預(yù)處理,讀取圖片,進(jìn)行rle解碼,然后對(duì)圖片進(jìn)行數(shù)據(jù)增廣。數(shù)據(jù)增廣是一種有效的正則化手段,可以防止模型過(guò)擬合,在深度學(xué)習(xí)模型的訓(xùn)練過(guò)程中被廣泛地運(yùn)用。數(shù)據(jù)增廣的目的是增加數(shù)據(jù)集中樣本的數(shù)據(jù)量,同時(shí)也可以有效增加樣本的語(yǔ)義空間。本文利用albu?mentations對(duì)數(shù)據(jù)進(jìn)行增廣,包括對(duì)圖片進(jìn)行裁剪、翻轉(zhuǎn)、隨機(jī)裁剪等操作。劃分好訓(xùn)練集和測(cè)試集,接著進(jìn)行模型訓(xùn)練,設(shè)置EPOCHES=20,BATCH_SIZE=32,IMAGE_SIZE=512,使 用DiceLoss作為損失函數(shù),每次訓(xùn)練時(shí)進(jìn)行正向傳播,計(jì)算損失,反向傳播。
在訓(xùn)練過(guò)程中,對(duì)訓(xùn)練集和驗(yàn)證集進(jìn)行了劃分,并利用繪圖工具繪制了精度曲線和損失函數(shù)曲線。最終準(zhǔn)確率為82%。損失率為0.101。如圖13所示。
圖13 準(zhǔn)確率損失率
從圖14預(yù)測(cè)結(jié)果看出,驗(yàn)證FCN+ResNet50網(wǎng)絡(luò)模型用于地表的建筑物的識(shí)別是行之有效的。
圖14 預(yù)測(cè)結(jié)果
本文講述了FCN+ResNet的網(wǎng)絡(luò)模型進(jìn)行語(yǔ)義分割的方法,主要是應(yīng)用于航拍的地表建筑識(shí)別。介紹了FCN的三大特點(diǎn),接收任意尺寸輸入的全卷積網(wǎng)絡(luò);圖片上采樣;融合深層粗略特征和淺層細(xì)節(jié)特征的跳躍結(jié)構(gòu),ResNet的跳躍結(jié)構(gòu),以及FCN是如何做到語(yǔ)義分割的原理。同時(shí)提出將FCN+ResNet網(wǎng)絡(luò)模型結(jié)合能更好的學(xué)習(xí)深層特征和淺層的精細(xì)特征,最后通實(shí)驗(yàn)進(jìn)行驗(yàn)證,利用航拍的地表建筑圖像數(shù)據(jù)集,使用FCN+REsNet50模型進(jìn)行訓(xùn)練最終得出不錯(cuò)的效果。因此得出FCN_ResNet網(wǎng)絡(luò)用于航拍的地表建筑識(shí)別是行之有效的,其也是語(yǔ)義分割表現(xiàn)不錯(cuò)的模型。