常紅杰 高 鍵 丁明解 齊 亮
(江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212003)
在自動除漆小車的視覺導(dǎo)航過程中,必須對漆面進(jìn)行分割。此外,為了保證良好的除漆效果,漆面的分割精度必須足夠高,分割的實(shí)時性也要很好。
近年來,各種基于神經(jīng)網(wǎng)絡(luò)的圖像分割算法層出不窮,其中,U-net 網(wǎng)絡(luò)是在FCN 網(wǎng)絡(luò)基礎(chǔ)上發(fā)展而來的一種圖像分割網(wǎng)絡(luò)[1]。相比于FCN,U-net 舍棄了全連接環(huán)節(jié),使得網(wǎng)絡(luò)結(jié)構(gòu)更加輕量化,參數(shù)量更少,而關(guān)鍵的特征融合環(huán)節(jié)的引入,顯著提升了網(wǎng)絡(luò)的分割精度。因此U-net 網(wǎng)絡(luò)適用于語義簡單、邊界模糊的圖像分割。
陳澤斌等[2]針對傳統(tǒng)的圖像分割方法耗時且準(zhǔn)確度低的問題,結(jié)合Adam 算法對傳統(tǒng)的U-net模型進(jìn)行改進(jìn),實(shí)現(xiàn)了比傳統(tǒng)模型更高精度、更好實(shí)時性的路面圖像分割。宋廷強(qiáng)等[3]以U-net模型為基礎(chǔ),提出了一種深度語義分割模型AS-Unet,用于視覺導(dǎo)航中的圖像分割,改善了圖像分割的精度。李鴻翔等[4]針對圖像分割中邊緣識別錯誤的問題,提出了一種GAN-Unet 的分割模型,與傳統(tǒng)的U-net 模型相比,圖像分割精度有所提升,邊緣分割誤差顯著減小。王紅等[5]以傳統(tǒng)的U-net為基礎(chǔ),引入并行雙注意力模塊,提出了PCAW-UNet模型,大幅度提高了視覺導(dǎo)航圖像的分割精度,分割準(zhǔn)確率達(dá)到了98.7%。并且該模型的實(shí)時處理速度相較于傳統(tǒng)的U-net模型也有顯著提升。
本文以鋼板除漆維護(hù)為具體應(yīng)用背景,提出了一種基于串行雙注意力機(jī)制和U-net 網(wǎng)絡(luò)的漆面圖像分割方法。
本文主要以船舶油漆面為研究對象,由于沒有現(xiàn)成的油漆面數(shù)據(jù)集供本文使用,只能通過搜集有關(guān)圖像和模擬油漆面的方式,組成數(shù)據(jù)集。第一部分共搜尋到150張漆面圖片組成數(shù)據(jù)集。如圖1所示。
圖1 漆面圖像
在第二部分,本研究利用灰色卡紙?zhí)娲摪?,用不同顏色的顏料在卡紙上面繪制各種圖案,模擬破舊鋼板上的漆面圖案,如圖2所示。
圖2 模擬漆面圖像
最后通過整個攝像頭對模擬漆面進(jìn)行采集組成第二部分的數(shù)據(jù)集,共100 張。經(jīng)過擴(kuò)充以后,將這些圖像分為訓(xùn)練集、驗(yàn)證集。采用Labelme 工具進(jìn)行數(shù)據(jù)處理,根據(jù)研究目標(biāo),本文只對漆面像素進(jìn)行標(biāo)注。
本研究在訓(xùn)練之前對輸入圖像的尺寸進(jìn)行統(tǒng)一,消除圖像尺寸對訓(xùn)練結(jié)果的影響。此外,神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的過程中有很多參數(shù)需要擬合,只有依靠大量的訓(xùn)練,才能防止出現(xiàn)神經(jīng)網(wǎng)絡(luò)過擬合的情況[6]。因此,必須擴(kuò)充數(shù)據(jù)集的容量。本文通過旋轉(zhuǎn)(90°、180°和270°)和翻轉(zhuǎn)(水平、垂直)進(jìn)行擴(kuò)充,隨后再進(jìn)行隨機(jī)Resize 變換,生成具有差異性的漆面圖像,完成漆面數(shù)據(jù)集的擴(kuò)充。
U-net模型采用跳躍連接的方式將編碼網(wǎng)絡(luò)和解碼網(wǎng)絡(luò)兩部分連接起來。其中,編碼階段,負(fù)責(zé)圖像特征提取,主要由四個下采樣模塊組成。解碼階段,負(fù)責(zé)特征融合和恢復(fù)圖像尺寸,由四個上采樣模塊組成[7]。下采樣模塊通過卷積層堆疊的方式進(jìn)行特征提取,隨后利用池化層進(jìn)行下采樣。上采樣模塊則由卷積層和反卷積層組成,卷積層負(fù)責(zé)特征融合,反卷積層實(shí)現(xiàn)上采樣,負(fù)責(zé)恢復(fù)圖像尺寸[8]。
相比于其他的神經(jīng)網(wǎng)絡(luò)模型,U-net 模型雖然結(jié)構(gòu)更加輕量化,分割速度更快,然而在特征融合過程中,U-net 模型沒有對編碼器獲得的特征信息進(jìn)行過濾,使得模型易受到非漆面區(qū)域的特征信息,對模型的分割精度造成影響[9]。
為了進(jìn)一步提高模型的分割精度、實(shí)時性和泛化能力,本文對U-net模型進(jìn)行調(diào)整。
首先,在編碼階段用Efficientnet-B0 編碼器代替原有的編碼器。Efficientnet-B0 在提高模型分割精度的同時,大幅度減少了訓(xùn)練過程中的參數(shù)量,比起傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型有著更好的實(shí)時性和精準(zhǔn)度。Efficientnet-B0編碼模塊結(jié)構(gòu)如圖3所示。
圖3 Efficientnet-B0編碼器結(jié)構(gòu)
其次,引入Focal Loss 代替交叉熵?fù)p失函數(shù)。Focal Loss 調(diào)節(jié)系數(shù)可以改變不同樣本的損失權(quán)重,有利于提高模型的分割準(zhǔn)確率和精度[11]。
其中,αt和γ是權(quán)重調(diào)節(jié)系數(shù),pi表示正確分類概率。
最后,在特征融合環(huán)節(jié)引入串行雙注意力模塊。用于進(jìn)一步改善模型的信息處理能力和準(zhǔn)確性。串行雙注意力模塊結(jié)構(gòu)如圖4所示。
圖4 串行雙注意力模塊結(jié)構(gòu)
改進(jìn)后U-net結(jié)構(gòu)如圖5所示。
圖5 改進(jìn)后U-net模型結(jié)構(gòu)
本文在如下環(huán)境中訓(xùn)練模型:操作系統(tǒng)采用Windows 10,深度學(xué)習(xí)框架為Pytorch 1.8,CPU 為Intel Xeon Sliver 4110 @ 2.10GHz,GPU 為NVIDIA GeForce RTX 2080Ti。
模型訓(xùn)練前,首先使用Efficientnet-b0 權(quán)重初始化方法對模型的初始參數(shù)進(jìn)行設(shè)置。模型優(yōu)化采用目前常用的Adam優(yōu)化器以及參數(shù)使用其中的默認(rèn)參數(shù)[14]:初始學(xué)習(xí)率為0.001,β1=0.9 ;β1=0.999;Epoch設(shè)置為100,Batch_size設(shè)置為8。
模型訓(xùn)練過程中,Adam 優(yōu)化器在每一輪迭代時更新參數(shù)以減小損失值(Loss)。訓(xùn)練集Loss 值(Train Loss)隨迭代次數(shù)變化的趨勢分別如圖6 所示。
圖6 訓(xùn)練集Loss值隨迭代次數(shù)變化的趨勢
對于多分類問題,圖像分割精度主要從以下三個指標(biāo)進(jìn)行評價:像素準(zhǔn)確率PA、平均像素精度mPA、平均交并比mIoU。計(jì)算式分別為
其中,mIoU表示平均交并比;k+1 表示類別數(shù),pij表示預(yù)測錯誤的像素?cái)?shù)量,pii表示判斷正確的像素?cái)?shù)量,TP表示真正例,F(xiàn)P表示假正例,F(xiàn)N表示假反例,TN真反例。
模型訓(xùn)練完成之后,為了驗(yàn)證本文改進(jìn)算法的有效性,設(shè)計(jì)了對比實(shí)驗(yàn)。
在數(shù)據(jù)增強(qiáng)之前和數(shù)據(jù)增強(qiáng)之后,分別訓(xùn)練U-net模型。由表1 可以看出,經(jīng)過數(shù)據(jù)增強(qiáng),各項(xiàng)評價指標(biāo)有明顯的提升??梢则?yàn)證的是,數(shù)據(jù)集容量對于模型的分割精度有著較大影響。
表1 數(shù)據(jù)增強(qiáng)前后漆面分割指標(biāo)對比/%
完成數(shù)據(jù)增強(qiáng)對比試驗(yàn)之后,對原生U-net 模型結(jié)構(gòu)進(jìn)行調(diào)整。隨后選取目前比較常用的圖像分割模型進(jìn)行對比實(shí)驗(yàn)。對比試驗(yàn)的評價指標(biāo)結(jié)果如表2所示。
表2 不同模型的漆面分割精度/%
不難看出,相比于U-net 模型和ResUnet 模型,本文改進(jìn)的算法相比于傳統(tǒng)的U-net模型和ResUnet模型,在分割精度上有著顯著的改進(jìn)。此外,本文改進(jìn)的算法在各項(xiàng)指標(biāo)上與目前最先進(jìn)的Deep-LabV3模型以及DeepLabV3+模型幾乎一致。
為了驗(yàn)證本文改進(jìn)模型的分割性能,計(jì)算各指標(biāo)的平均值μ和方差σ。此外,還加入了模型的訓(xùn)練時間(Training time)和分割時間(Segmentation time),完善模型的性能測試維度。
隨后按照一定的優(yōu)先級對上述指標(biāo)進(jìn)行加權(quán)求和,得到模型的綜合得分(Score)。根據(jù)經(jīng)驗(yàn),本文將模型的精度(平均值μ),穩(wěn)定性(方差σ),模型的訓(xùn)練時間(Tra-time)和分割時間(Seg-time)的權(quán)重分別設(shè)置為100,80,-10 和-50。性能評比結(jié)果如表3所示。
表3 不同模型的分割性能評比
可以看出,雖然DeepLabV3 模型和Deep-LabV3+模型雖然在分割精度上有優(yōu)勢,但是由于其龐大的網(wǎng)絡(luò)結(jié)構(gòu)和巨大的參數(shù)量,其訓(xùn)練時間幾乎是其他模型的4倍~5倍,每張圖片的分割時間甚至達(dá)到了其他模型的10 倍以上。而本文改進(jìn)后的模型,精度幾乎與DeepLabV3+模型的精度持平,同時訓(xùn)練時間和分割時間相比于DeepLabV3+模型,分別提升了76.92%和90.17%,保證了很好的精度和實(shí)時性。
最后,圖7 展示了不同模型的漆面分割效果。可以看出,當(dāng)背景存在與漆面顏色較為接近的區(qū)域時(圖7 前3 行),其他集中未引進(jìn)注意力模塊的分割模型存在誤分割的情況(圖中白色選框標(biāo)注),而本文引入注意力模塊改進(jìn)后的U-net 模型在非漆面區(qū)域沒有出現(xiàn)誤分割的情況。當(dāng)漆面的背景比較簡單且與漆面差異較大時,本文改進(jìn)的算法和DeepLabV3+模型的分割效果均比較理想,在細(xì)節(jié)部分本文改進(jìn)后的模型甚至分割的更加精細(xì)(圖中灰色選框標(biāo)注)。
圖7 不同模型分割結(jié)果對比
本文提出了一種串行雙注意力機(jī)制的U-net分割模型,應(yīng)用于自動除漆小車的視覺導(dǎo)航漆面分割任務(wù)。該方法在對數(shù)據(jù)集進(jìn)行預(yù)處理之后,利用改進(jìn)后的U-net 模型對漆面進(jìn)行分割。通過引入Efficientnet-B0 編碼器,加強(qiáng)了網(wǎng)絡(luò)對于淺層特征的提取,減少了模型的參數(shù)數(shù)量。隨后引入Focal Loss 損失函數(shù),提高模型的分割準(zhǔn)確率,最后嵌入串行雙通道注意力模塊,提高模型對于漆面區(qū)域的關(guān)注比重,降低來自非漆面區(qū)域的特征干擾,同時通道注意力模塊還減少了網(wǎng)絡(luò)在特征融合后的冗余通道數(shù),提升了模型的分割時間。實(shí)驗(yàn)證明,本文改進(jìn)后的算法在保證精度的同時,具有更好的泛化能力和實(shí)時性較少的。
雖然本文改進(jìn)的U-net 模型能夠在訓(xùn)練樣本數(shù)量較少的情況下依然能夠達(dá)到良好的精度和實(shí)時性,但是對于神經(jīng)網(wǎng)絡(luò)模型來說,大量的訓(xùn)練樣本能大幅提高其分割精度(這一點(diǎn)在本文中也得到了驗(yàn)證)。因此,在后續(xù)的研究過程中,找到解決樣本數(shù)量不足的辦法,是本文可以繼續(xù)研究的方向,目前較為常用的方法是利用生成對抗網(wǎng)絡(luò)(GanU-net)以圖生圖[15]。