周宇浩,陳錫愛*,葉 開
(中國計(jì)量大學(xué),浙江 杭州 310018)
河岸線是水陸生態(tài)系統(tǒng)的中間地帶,對維系河流生態(tài)系統(tǒng)健康起著很重要的作用,同時也是河流沿岸經(jīng)濟(jì)發(fā)展的基礎(chǔ)。河岸線的生態(tài)健康遭到破壞源自于河岸線的自然演變以及不合理的、盲目的開發(fā)利用。因此,加強(qiáng)河岸線的保護(hù)與利用,要從規(guī)劃、管理、研究、治理等方面采取措施。當(dāng)前國內(nèi)河道巡檢方式主要有人工徒步巡檢和汽艇巡查。近年來,隨著無人機(jī)技術(shù)的快速發(fā)展,無人機(jī)巡檢技術(shù)也在興起。本文基于語義分割算法進(jìn)行河岸線識別,并通過無人機(jī)進(jìn)行河道巡檢,從而降低人工成本。
語義分割算法是計(jì)算機(jī)視覺領(lǐng)域中的基礎(chǔ)性算法之一,通過對圖像中各個像素點(diǎn)進(jìn)行語義識別,得到各個類別在圖像中所屬的區(qū)域。近些年,隨著深度學(xué)習(xí)技術(shù)的日漸成熟,圖像語義分割算法取得了很大的成績。2014年提出的全卷積網(wǎng)絡(luò)(FCN)是將成型的卷積神經(jīng)網(wǎng)絡(luò)模型經(jīng)過結(jié)構(gòu)改造后形成的端到端,像素到像素的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。FCN將傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)中的全連接層全部轉(zhuǎn)化為卷積層。然而,F(xiàn)CN上采樣時的結(jié)構(gòu)相比于CNN下采樣時的結(jié)構(gòu)相對凌亂。因此,2015年提出了由編碼器和解碼器構(gòu)成的SegNet分割網(wǎng)絡(luò),其分割精度和識別效率都得到了提高。SegNet網(wǎng)絡(luò)中,編碼器是由卷積層和池化層構(gòu)成來提取圖像特征,解碼器是由卷積層和上采樣層構(gòu)成來恢復(fù)原始圖像的大小,以此實(shí)現(xiàn)端到端的網(wǎng)絡(luò)結(jié)構(gòu)。通過圖像語義分割算法的不斷發(fā)展,Deeplabv3+算法中加入了多孔空間金字塔池化(ASPP)網(wǎng)絡(luò)模塊。在ASPP模塊中加入了不同尺度的卷積,獲取更多的上下文特征信息,實(shí)現(xiàn)了圖像魯棒分割。
Deeplabv算法采用膨脹卷積來保證感受野大小不受影響的同時,設(shè)置VGG網(wǎng)絡(luò)的池化層步長來緩解特征圖尺寸縮小的問題。在Deeplabv1基礎(chǔ)上,Deeplabv2采用ASPP模塊結(jié)構(gòu),獲得了多尺度的特征。但是,Deeplabv2使用相同膨脹率的膨脹卷積來提取圖像特征,所以只能提取圖像上離散點(diǎn)的特征;而且在ASPP結(jié)構(gòu)中,由于過大的膨脹率卷積,會縮小提取特征的有效范圍。因此,Deeplabv3在相鄰膨脹卷積中使用不同膨脹率;同時,用全局平均池化層替代ASPP結(jié)構(gòu)中膨脹率較大的膨脹卷積。為了更精確恢復(fù)特征圖尺寸,在Deeplabv3+網(wǎng)絡(luò)結(jié)構(gòu)中增加Decoder模塊,整體結(jié)構(gòu)變成Encoder-Decoder模塊。
針對河道場景河岸線的識別問題,為了得到更為精準(zhǔn)的識別結(jié)果,本文基于Deeplabv3+語義分割算法,對ASPP模塊進(jìn)行剪枝加速以及優(yōu)化擴(kuò)張卷積。
語義分割是像素級別的分類任務(wù),對圖片中各個像素預(yù)測其類別。實(shí)現(xiàn)語義分割首先要對采集到的河道圖像制作圖像標(biāo)簽。圖像標(biāo)簽是像素值和目標(biāo)類別相互對應(yīng)的灰度圖,且其尺寸與原圖像一致。本文基于Labelme軟件對無人機(jī)采集的河道圖像進(jìn)行了精確標(biāo)注,其標(biāo)注界面如圖1所示。
圖1 河道語義標(biāo)注界面圖
圖2 數(shù)據(jù)集增強(qiáng)
為了防止過擬合和提升網(wǎng)絡(luò)的泛化能力,對河道圖像進(jìn)行數(shù)據(jù)增強(qiáng)操作。本文通過旋轉(zhuǎn)、裁剪、椒鹽噪聲、高斯噪聲、調(diào)節(jié)亮度和對比度等方式進(jìn)行了數(shù)據(jù)集擴(kuò)充。樣本增廣完成后,將9000幅圖像用于訓(xùn)練,2250幅圖像作為驗(yàn)證集,剩余的2250幅圖像作為測試集。河道數(shù)據(jù)集增強(qiáng)結(jié)果如圖2所示。
Deeplabv3+是Google公司在2018年最新推出的語義分割算法,該算法在Deeplabv1-3基礎(chǔ)上發(fā)展。該算法編碼器是以Xception網(wǎng)絡(luò)作為主干。Xception網(wǎng)絡(luò)是由Inception結(jié)構(gòu)加上Depthwise Separable Convlution,再加上殘差網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)而來。最后的分類和識別效果很大程度上取決于深度學(xué)習(xí)網(wǎng)絡(luò)的深度。常規(guī)的網(wǎng)絡(luò)在層數(shù)較深的時候,識別效果反而不好。因?yàn)樘荻认У默F(xiàn)象隨網(wǎng)絡(luò)層數(shù)的加深會更加明顯,導(dǎo)致訓(xùn)練效果不是很好。但是現(xiàn)在網(wǎng)絡(luò)深度較淺的又無法明顯提升識別效果。訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)采用梯度下降算法,若沒有殘差,訓(xùn)練誤差會隨著網(wǎng)絡(luò)的加深先減少后增加,導(dǎo)致識別效果不是很好。而對于殘差網(wǎng)絡(luò)來講,訓(xùn)練誤差會隨著網(wǎng)絡(luò)的加深而越來越小。這有助于解決梯度爆炸和梯度消失的問題,在網(wǎng)絡(luò)加深的同時又能達(dá)到良好的識別效果。采用Depthwise Separable Convolution也可以帶來準(zhǔn)確率的提升。
Deeplabv3+網(wǎng)絡(luò)編碼器ASPP模塊采用多尺度卷積及全局平均池化處理河道圖像,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。改進(jìn)后網(wǎng)絡(luò)編碼器中ASPP模塊僅含有單尺度卷積進(jìn)行特征提取,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖3 Deeplabv3+網(wǎng)絡(luò)結(jié)構(gòu)
圖4 Deeplabv3+改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)
MIoU是用于評估語義分割算法性能的標(biāo)準(zhǔn)指標(biāo)。假設(shè)圖像中有+1個類(從到,其中包含背景類),表示本屬于類但被識別為類的像素?cái)?shù)量。、則為假正例和假負(fù)例,而表示識別正確的像素?cái)?shù)量。則MIoU可表示為
(1)
模型的精確程度是指使并集盡可能重合。目標(biāo)的捕獲程度是指使預(yù)測標(biāo)簽與標(biāo)注盡可能重合。通過計(jì)算以上評價指標(biāo)即可判斷模型的精確程度和目標(biāo)的捕獲程度。
圖5 ASPP模塊剪枝加速
本文基于Linux系統(tǒng)搭建了深度學(xué)習(xí)的系統(tǒng)環(huán)境。使用Tensorflow深度學(xué)習(xí)框架。為了加速計(jì)算,使用NVIDIA GPU作為訓(xùn)練時的硬件加速器。系統(tǒng)的軟硬件環(huán)境配置如表1所示。
表1
ASPP模塊使用不同采樣率的空洞卷積對輸入特征圖并行采樣,捕捉到更多的圖像上下文信息。ASPP結(jié)構(gòu)中包含3×3擴(kuò)張率分別為{6,12,18}的卷積和一個全局平局池化層。
在Deeplabv3+算法基礎(chǔ)上,本文通過保留ASPP模塊中不同卷積個數(shù)作為網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實(shí)驗(yàn)。通過計(jì)算測試集中河道圖片平均測試時間和MIoU,得出算法測試效果如表2、圖5所示,其中ASPP模塊中保留3*3擴(kuò)張率為6的卷積和全局平均池化卷積的網(wǎng)絡(luò)模型在MIoU可接受的情況下,單張測試時間最短。
表2 ASPP模塊剪枝加速
在傳統(tǒng)分類網(wǎng)絡(luò)中,一般通過連續(xù)的池化或者其它下采樣操作來獲取多尺度上下文信息。如果刪除池化層并擴(kuò)大卷積核,會加大計(jì)算量。但是如果不加入池化層,則會因感受野變小而學(xué)不到全局的特征。因此提出了空洞卷積,它在不損失分辨率的前提下支持感受野指數(shù)級增長。
圖6 ASPP模塊卷積擴(kuò)張率優(yōu)化
空洞卷積可根據(jù)特征圖的大小調(diào)整擴(kuò)張率,并在不增加參數(shù)數(shù)量的情況下增加了更大的上下文信息。但是當(dāng)擴(kuò)張率非常接近特征圖大小時,常規(guī)的3×3空洞卷積充當(dāng)了標(biāo)準(zhǔn)的1×1卷積。因此,擴(kuò)張率的選擇情況決定了空洞卷積的效率。在Deeplabv3+算法基礎(chǔ)上,保留ASPP模塊中全局平均池化層,采用不同擴(kuò)張率的3×3空洞卷積進(jìn)行對比實(shí)驗(yàn)。通過計(jì)算測試集中河道圖片平均測試時間和MIoU,得出算法測試效果如表3、圖6所示,其中ASPP模塊中采用3*3擴(kuò)張率為12的卷積和全局平均池化層的網(wǎng)絡(luò)模型在單張測試時間基本一致的情況下,MIoU最高。
表3 ASPP模塊卷積擴(kuò)張率優(yōu)化
隨著機(jī)器學(xué)習(xí)領(lǐng)域的發(fā)展,深度學(xué)習(xí)在圖像處理方面取得了卓越的成績。在河道圖像處理領(lǐng)域,相比于傳統(tǒng)人工處理方法,擁有許多優(yōu)勢。本文基于無人機(jī)進(jìn)行巡檢,并從檢測速度和精度兩方面考慮,對Deeplabv3+算法中ASPP模塊進(jìn)行了優(yōu)化。最后在河道數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),通過對ASPP模塊采用合適擴(kuò)張率單個卷積進(jìn)行特征提取,做了一系列對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果從原先單張測試時間為3.79秒、MIoU為90.28%提高到單張測試時間為3.26秒、MIoU為90.77%,提升了0.49%的精度和16.26%的速度,證明了本實(shí)驗(yàn)算法的可行性。