土登達(dá)杰 普布旦增 仁青諾布
(西藏大學(xué)信息科學(xué)技術(shù)學(xué)院 西藏自治區(qū)拉薩市 850000)
草地退化是當(dāng)前草原生態(tài)系統(tǒng)面臨的主要問題;鼠蟲、農(nóng)牧民過度放羊等問題對(duì)草原植被造成極大破壞,而且由于對(duì)地表的破壞往往造成大面積風(fēng)蝕和水土流失。草原毛蟲以牧草莖葉為食,嚴(yán)重時(shí)牧草被采食殆盡。自然場景下的草地生長狀態(tài)目標(biāo)小、背景干擾復(fù)雜等因素增加了草地區(qū)域檢測的難度。傳統(tǒng)的區(qū)域檢測算法不能準(zhǔn)確的檢測出圖像中草地所在的具體位置,而且較多的超參會(huì)導(dǎo)致算法泛化能力差。
近年來,隨著深度學(xué)習(xí)技術(shù)[1][2][3]的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)在多個(gè)計(jì)算機(jī)視覺任務(wù)上展示出了驚艷的效果,學(xué)者們相繼使用神經(jīng)網(wǎng)絡(luò)替換原始的一些圖像處理算法。卷積神經(jīng)網(wǎng)絡(luò)(CNN)[4][5][6]在圖像處理領(lǐng)域得到了廣泛應(yīng)用。圖像語義分割[7][8][9]是一個(gè)基礎(chǔ)研究問題,學(xué)者們相繼提出了多種性能優(yōu)異的語義分割算法。同時(shí)學(xué)者門提出了FCN[10]、U-Net[11]、Deeplabv1[12]、Deeplabv2[13]、Deeplabv3[14]、Deeplabv3+[15]、PSPNet[16]、ICNet[17]、HRNet[18]、Fast-SCNN[19]等算法,這些成果對(duì)語義分割、多尺度分割操作、語義分割算法的魯棒性和運(yùn)行效率、快速且高質(zhì)量分割等問題的解決帶來很好效果。
本文主要工作是獲取圖像中草地所占區(qū)域的大小。傳統(tǒng)的圖像處理算法并不能很好的解決這個(gè)問題,受到卷積神經(jīng)網(wǎng)絡(luò)的啟發(fā),本文嘗試使用語義分割算法來解決,首先使用標(biāo)注好的數(shù)據(jù)訓(xùn)練一個(gè)語義分割模型,同時(shí)在訓(xùn)練過程中對(duì)HRNet 網(wǎng)絡(luò)的架構(gòu)和損失函數(shù)進(jìn)行了改進(jìn);使用訓(xùn)練好的模型在新的測試圖片上進(jìn)行推理,從而獲得圖像中草地所在的具體像素點(diǎn);最后對(duì)圖像中的像素點(diǎn)進(jìn)行統(tǒng)計(jì)并計(jì)算出草地所占面積和整個(gè)圖像面積的比值,當(dāng)這個(gè)比值大于設(shè)定的閾值時(shí),則認(rèn)為這塊草地的生長狀態(tài)比較良好,否則認(rèn)為這片草地的生長狀態(tài)比較差,應(yīng)該對(duì)其加以保護(hù)。
基于語義分割的草地分割算法具有精度高、泛化性能好、抗干擾能力強(qiáng)等優(yōu)點(diǎn),用戶僅僅需要提供少量帶有標(biāo)簽的圖像就可以獲得一個(gè)草地分割模型,它不僅可以獲得很高的分割精度,而且可以很好地應(yīng)用到其它類似場景中。通過語義分割算法我們可以準(zhǔn)確獲取到圖像中屬于草地的每一個(gè)像素點(diǎn),從而完成更加精準(zhǔn)的統(tǒng)計(jì)和計(jì)算。綜上所述,與傳統(tǒng)算法相比,基于語義分割的草坪區(qū)域獲取方法具有更多優(yōu)點(diǎn),能夠更好滿足待測試場景的需求。
本文實(shí)現(xiàn)的語義分割算法的基本網(wǎng)絡(luò)架構(gòu)如表1所示。整個(gè)網(wǎng)絡(luò)包含4 個(gè)階段,每一個(gè)階段包含一些重復(fù)的子模塊,重復(fù)的次數(shù)分別為1、1、4、3 次。在階段1 中,子模塊包含1 個(gè)分支;在階段2 中,子模塊包含2 個(gè)分支;在階段3 中,子模塊包含3 個(gè)分支;在階段4 中,子模塊包含4 個(gè)分支。每一個(gè)分支對(duì)應(yīng)于一個(gè)不同的分辨率,它由4 個(gè)殘差單元和一個(gè)多分辨率融合單元塊構(gòu)成。表中‘[]’表示相應(yīng)的殘差單元,其中第二個(gè)數(shù)字表示這個(gè)殘差單元的重復(fù)次數(shù),最后一個(gè)數(shù)字表示整個(gè)模塊的重復(fù)次數(shù),C 表示通道個(gè)數(shù)。本文使用的殘差塊與ResNet 網(wǎng)絡(luò)中的殘差塊相同,它不僅可以在一定程度上抑制網(wǎng)絡(luò)發(fā)生梯度消失,而且可以協(xié)助網(wǎng)絡(luò)獲得更魯棒的特征表示。除此之外,為了保持特征映射的分辨率不變,本文采用了類似HRNet 網(wǎng)絡(luò)的思路,在網(wǎng)絡(luò)搭建過程中,從高分辨率到低分辨率的過程中并行連接多個(gè)子網(wǎng)路,從而保證了網(wǎng)絡(luò)在加深的同時(shí),特征映射的大小保持不變。為了使網(wǎng)絡(luò)獲取到更加魯棒的特征表示,能夠獲取更加豐富的語義和細(xì)節(jié)信息,在搭建網(wǎng)絡(luò)的過程中不斷交換不同分辨率的設(shè)備。由于本文關(guān)注的分割對(duì)象是草地,而很多現(xiàn)實(shí)場景中拍攝的圖片中,草地比較雜亂,呈現(xiàn)不均勻分布,而且會(huì)遇到大量的干擾物,為了更好地捕獲到草地的細(xì)節(jié)信息,本文改變了階段1 和階段2 的網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)的運(yùn)行速度并沒有受到影響,但是網(wǎng)絡(luò)層之間的變換更加多樣,實(shí)驗(yàn)結(jié)果表明這種改變可以更好地獲取到草地的一些紋理信息,可以在一定程度上改善語義分割算法的效果。
通常訓(xùn)練語義分割模型的數(shù)據(jù)包含每個(gè)圖像中的標(biāo)注多邊形及其所屬的類別信息。由于標(biāo)注質(zhì)量會(huì)極大影響模型的最終效果,因而本文使用labelme 對(duì)圖像進(jìn)行了嚴(yán)格的標(biāo)注,并將這些標(biāo)簽轉(zhuǎn)換為不同的顏色映射,方便后續(xù)的可視化。本文所實(shí)現(xiàn)的語義分割模型在訓(xùn)練過程中包含很多超參,這些超參會(huì)對(duì)模型的精度產(chǎn)生較大的影響。表1展示了一些關(guān)鍵參數(shù)。
語義分割任務(wù),可以被看作一個(gè)像素點(diǎn)分類問題,語義分割網(wǎng)絡(luò)的輸入是一個(gè)512×512×3 的彩色圖像,網(wǎng)絡(luò)通過一個(gè)特定大小的特征映射將其映射到特定的特征空間,最后再通過一個(gè)函數(shù)將其映射為一個(gè)概率值。我們通常使用softmax 損失函數(shù)來完成輸出到概率值的映射,具體計(jì)算公式如式(1)所示。其中y 表示相應(yīng)的標(biāo)簽,p 表示網(wǎng)絡(luò)的預(yù)測輸出,s 表示softmax loss。
表1:語義分割網(wǎng)絡(luò)架構(gòu)
大量實(shí)驗(yàn)結(jié)果表明,雖然softmax 可以完成模型訓(xùn)練的任務(wù),但是在有些情況下使用該損失函數(shù)并不能獲得好的訓(xùn)練結(jié)果。為了獲得較高的精度,本文實(shí)現(xiàn)了多種損失函數(shù),具體包括Weighted softmax loss、Dice loss、Lovasz hinge loss 等。Weighted softmax loss按照不同類別設(shè)置不同的權(quán)重,可以在一定情況下抑制類別不均衡的問題,本文動(dòng)態(tài)設(shè)置不同類別的權(quán)重,即根據(jù)每個(gè)batch 中各個(gè)類別的數(shù)目動(dòng)態(tài)調(diào)整類別權(quán)重。
針對(duì)草地分割問題,我們需要分割的類別包括草地和背景兩類,而在大多數(shù)圖片中都會(huì)出現(xiàn)類別分布不均勻的問題,即背景所占的區(qū)域一般遠(yuǎn)大于草地所占的區(qū)域。本文使用Dice loss 和Lovasz hinge loss 來解決這個(gè)問題。Dice loss 的定義如式(2)所示,其中Y 表示相應(yīng)的標(biāo)簽,P 表示模型預(yù)測結(jié)果,||表示矩陣元素之和,|S|表示Y 和P 的共有元素?cái)?shù),d 表示Dice loss。
Lovasz loss 是基于子模損失的凸Lovasz 函數(shù),該損失函數(shù)可以針對(duì)網(wǎng)絡(luò)的mean IoU 損失進(jìn)行優(yōu)化。該損失函數(shù)的表達(dá)形式如式(3)所示:
通過大量實(shí)驗(yàn),本文最終選擇使用Lovasz hinge loss 和Dice loss 作為最終的損失函數(shù),這兩個(gè)函數(shù)分別包含一個(gè)超參
通過上面的方法我們可以獲取到圖像中草地所在的具體位置,在獲取到圖像中草地所屬的像素之后,我們可以快速統(tǒng)計(jì)出圖像中屬于草地的像素點(diǎn)個(gè)數(shù)。具體計(jì)算公式如式(4)所示,其中n 表示圖像中草地像素點(diǎn)的個(gè)數(shù),img(i,j)表示圖像中第i 行第j 列位置上的像素點(diǎn),grassn表示最終的統(tǒng)計(jì)結(jié)果。
圖1:數(shù)據(jù)樣本
獲取到圖像中草地所占據(jù)的像素點(diǎn)后,我們就可以獲取到草地在整個(gè)圖像中所占據(jù)的比例值,再將計(jì)算獲得的比例值和設(shè)置的閾值比較,如果該比例值大于該閾值,則表明這塊草地的生長狀態(tài)良好;如果該比例值小于該閾值,則表明這塊草地的生長狀態(tài)較差,應(yīng)該對(duì)其加以保護(hù)。具體計(jì)算方法如式(5)所示,其中area(img)表示img 圖片的面積,即整個(gè)圖像總共包含多少個(gè)像素點(diǎn),0.8 表示設(shè)置的閾值,good 表示當(dāng)前草地的生長狀態(tài)良好,不需要進(jìn)行人為干預(yù);bad 表示當(dāng)前草地的生長狀態(tài)較差,需要進(jìn)行適當(dāng)?shù)娜藶楸Wo(hù)。
本實(shí)驗(yàn)所使用的訓(xùn)練數(shù)據(jù)均來自項(xiàng)目組在拉薩、山南等地拍攝的真實(shí)圖片。如圖1所示,真實(shí)場景獲取到的圖像中的草地顏色雜亂、分布不均勻、周圍會(huì)有很多干擾信息:圖1(a)中的草地周圍有一些干擾的干草和石塊,草地的形狀各式各樣;圖1(b)中的草地比較稀疏,不同草地之間沒有連接,草的顏色各不相同;圖1(c)中的草地包含大量的雜草和一些間隙和干擾物。通過上面的觀察,我們可以發(fā)現(xiàn)輸入數(shù)據(jù)具有較大挑戰(zhàn),對(duì)語義分割算法提出了很高的性能要求。為了提升算法的魯棒性,我們在互聯(lián)網(wǎng)中找了部分草地圖片,具體效果如圖1(d)所示,這些圖片中的草地比較干凈,僅存在一些其它的干擾,可以進(jìn)一步提升語義分割算法的泛化能力。我們把真實(shí)拍照和網(wǎng)上獲取一起組成的106 張圖片構(gòu)成了數(shù)據(jù)集,84張作為訓(xùn)練集實(shí)驗(yàn)數(shù)據(jù)、12 張作為驗(yàn)證集、12 張作為測試集。整個(gè)數(shù)據(jù)集采用Labelme 標(biāo)注工具進(jìn)行標(biāo)注,并采用腳本將該數(shù)據(jù)集調(diào)整為Pascal VOC 數(shù)據(jù)集的格式。整個(gè)數(shù)據(jù)集中包含各種不同時(shí)間段、不同地方和不同角度拍攝的草地圖片,圖像中包含大量干擾信息,如干草、石塊、垃圾、大理石等。
整個(gè)實(shí)驗(yàn)過程均在一臺(tái)配有一塊R7-4800H 顯卡、一顆GTX2060 處理器、內(nèi)存大小為16G 的Ubuntu 服務(wù)器上進(jìn)行,使用百度開源的PaddlePaddle 深度學(xué)習(xí)訓(xùn)練框架完成網(wǎng)絡(luò)的訓(xùn)練和網(wǎng)絡(luò)的推理。
表2:不同語義分割算法客觀指標(biāo)展示
表3:不同損失函數(shù)效果展示
圖2:算法效果展示
為了對(duì)本文實(shí)現(xiàn)的針對(duì)草地的語義分割算法進(jìn)行性能評(píng)估,實(shí)驗(yàn)中使用了多種常用性能分析指標(biāo),具體包括MPA、MIoU 和Kappa。MPA,即所謂的平均像素精度,它是對(duì)像素精度指標(biāo)的一種提升,用來計(jì)算每一個(gè)類內(nèi)被正確分類的像素?cái)?shù)的比例,最后將所有類的平均值作為最終結(jié)果,具體計(jì)算公式如式(6)所示。MIoU 即平均交并比,它是在IoU 的基礎(chǔ)上提出的一種評(píng)價(jià)指標(biāo),計(jì)算兩個(gè)集合的交集和并集之比,即計(jì)算算法預(yù)測結(jié)果和標(biāo)簽之間的比值,首先計(jì)算出每一個(gè)類的IoU,然后對(duì)所有類的結(jié)果進(jìn)行平均即可,具體計(jì)算公式如式(7)所示。Kappa 系數(shù)是一個(gè)用于一致性校驗(yàn)的指標(biāo),該系數(shù)的計(jì)算是基于混淆矩陣的,取值范圍為[-1,1],該值越大表示語義分割的效果越好,具體計(jì)算公式如式(8)所示。
其中k 表示k 個(gè)類別,1 表示背景類,pij表示本來是i 類被預(yù)測為j 類的像素?cái)?shù)量;pji表示本來是j 類被預(yù)測為i 類的像素?cái)?shù)量;pii表示本來i 類被預(yù)測為i 類的像素?cái)?shù)量。po表示每一類正確分類的樣本數(shù)量之和除以總樣本數(shù),pe的計(jì)算公式如式2-4 所示。a1,a2,a3表示每一類的標(biāo)簽樣本個(gè)數(shù),b1,b2,b3表示每一類的預(yù)測樣本個(gè)數(shù),n 表示總體樣本個(gè)數(shù)。
本文實(shí)現(xiàn)的語義分割算法進(jìn)行性能評(píng)估,經(jīng)過大量實(shí)驗(yàn),具體包括該語義分割算法和其它性能優(yōu)異的語義分割算法的性能比較、不同損失函數(shù)的分割效果。具體評(píng)估方法包括主觀指標(biāo)評(píng)價(jià)和客觀指標(biāo)評(píng)價(jià),我們不僅將不同語義分割算法在同樣的測試圖片上面的效果進(jìn)行展示和分析,而且計(jì)算出不同模型的MPA、MIoU 和Kappa 數(shù)值。
表2展示了語義分割算法使用不同語義分割模型在測試圖片上的效果,所有分割算法均采用相同的超參,batch_size=4,epoch=30。表中紅色、綠色和藍(lán)色結(jié)果分別表示第一名、第二名和第三名。通過觀察我們可以發(fā)現(xiàn),與其它state-of-the-art 算法相比,本文實(shí)現(xiàn)的語義分割算法能夠在草地?cái)?shù)據(jù)集上獲得最好的分割結(jié)果,在MPA、MIoU 和Kappa 等多項(xiàng)指標(biāo)中均獲得了最佳的效果。
表3展示了語義分割算法使用不同損失函數(shù)訓(xùn)練之后的效果,在訓(xùn)練過程中除了更換不同的損失函數(shù)之外,所有的模型均保持相同的超參,batch_size=4,epoch=30。表中紅色、綠色和藍(lán)色結(jié)果分別表示第一名、第二名和第三名。通過觀察我們可以發(fā)現(xiàn),使用Weighted lovase 損失函數(shù)可以有效提升分割算法的精度,在MAP、MIoU 和Kappa 等指標(biāo)中都取得了最好的結(jié)果。
圖2是實(shí)現(xiàn)的草地語圖像義分割算法和其它5 個(gè)語義分割算法在測試圖片上的測試效果。通過觀察我們可以發(fā)現(xiàn),本文實(shí)現(xiàn)的草地圖像語義分割算法可以在同樣的訓(xùn)練參數(shù)下獲得更高的分割精度,更魯棒的分割性能。該算法分割出的結(jié)果更加接近真實(shí)標(biāo)簽文件,含有更少量的空洞區(qū)域,能夠更好地區(qū)分一些干擾目標(biāo),達(dá)到了本文預(yù)期的要求。
為了對(duì)高原地區(qū)草地生長狀態(tài)進(jìn)行評(píng)估,針對(duì)傳統(tǒng)圖像處理算法存在的精度低、魯棒性差、抗干擾能力弱等缺點(diǎn),本文嘗試使用語義分割算法來解決整個(gè)草地圖像分割問題和草地生長狀態(tài)評(píng)估問題。首先使用一個(gè)改進(jìn)網(wǎng)絡(luò)架構(gòu)和損失函數(shù)的語義分割算法獲得草地圖像分割結(jié)果;然后在該結(jié)果基礎(chǔ)上對(duì)草地區(qū)域進(jìn)行統(tǒng)計(jì)并計(jì)算草地的面積比;最后通過閾值比較確定這塊草地當(dāng)前的生長狀態(tài)。該方法具有精度高、泛化能力強(qiáng)、抗干擾能力好等優(yōu)點(diǎn),可以廣泛應(yīng)用到草地生長狀態(tài)分析的相關(guān)任務(wù)中。