李 陽,李 猛,王中華
(濟(jì)南大學(xué) 自動化與電氣工程學(xué)院,山東 濟(jì)南 250024)
隨著人工智能時代的到來,智慧無人駕駛技術(shù)能夠幫助我們釋放雙手、擺脫乏味,已然成了不可阻擋的時代潮流,而對交通道路場景的識別能力作為智能駕駛的基礎(chǔ)與前提條件,其效果的可靠性、有效性起著舉足輕重的作用。
基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)的應(yīng)用使得計(jì)算機(jī)視覺得到了快速發(fā)展,其在交通道路場景識別中有著出色的表現(xiàn)。Pan Xingang等人認(rèn)為卷積網(wǎng)絡(luò)在利用圖像中跨行列之間信息的能力不足,影響了車道線、路燈等目標(biāo)的分割效果,基于此提出了SCNN網(wǎng)絡(luò),解決了傳遞特征圖上的空間關(guān)系,在公開數(shù)據(jù)集上表現(xiàn)優(yōu)秀[1]。針對交通場景中車輛行人等相互遮擋的情況,李軒等人提出了一種遮擋的回歸損失函數(shù)Occlusion loss,搭配目標(biāo)檢測算法YOLO v3不僅可以提高目標(biāo)檢測的精度,還能夠避免同一檢測框內(nèi)出現(xiàn)多個被檢測目標(biāo),從而有效防止漏檢,并且擁有更強(qiáng)的魯棒性[2]。譚??〉热酸槍φZ義分割網(wǎng)絡(luò)在提取特征時下采樣池化操作會損害特征圖分辨率的情況,為提升其在交通場景下的分割效果,構(gòu)建了一種雙層殘差網(wǎng)絡(luò)和跳躍特征融合網(wǎng)絡(luò)相結(jié)合的語義分割模型,更加全面充分地學(xué)習(xí)圖像特征,使網(wǎng)絡(luò)達(dá)到了較高的提取特征能力和識別效果[3]。
作為當(dāng)前圖像語義分割領(lǐng)域中主流的具有編碼-解碼結(jié)構(gòu)的網(wǎng)絡(luò)模型,DeepLabv3+網(wǎng)絡(luò)中引入了擴(kuò)張卷積,可以獲取更多的上下文信息,表現(xiàn)十分出色[4]。然而,在面對交通場景中一些小目標(biāo)物體的分割時,分割效果不明顯,且總體分割精度有待提高。針對上述問題,該文將基于DeepLabv3+網(wǎng)絡(luò)進(jìn)行改進(jìn),提升其精度及分割效果。
該文改進(jìn)的DeepLabv3+的圖像語義分割算法,主要是利用了結(jié)構(gòu)重參數(shù)化方法和混合損失函數(shù)實(shí)現(xiàn)的。采用結(jié)構(gòu)重參數(shù)化方法,用具有多分支結(jié)構(gòu)的DBB模塊重構(gòu)模型中解碼部分的網(wǎng)絡(luò)結(jié)構(gòu)[5]。在交叉熵作為損失函數(shù)的基礎(chǔ)上,結(jié)合Dice損失函數(shù)組成混合損失函數(shù),引導(dǎo)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí),彌補(bǔ)單個損失函數(shù)在數(shù)據(jù)出現(xiàn)不均衡時的不足問題,進(jìn)一步提升網(wǎng)絡(luò)的分割精度。
多分支的結(jié)構(gòu)相當(dāng)于使網(wǎng)絡(luò)增加了不同尺度的感受野,相較于單層遞進(jìn)式的網(wǎng)絡(luò)結(jié)構(gòu)拓寬了網(wǎng)絡(luò)的寬度、增加了學(xué)習(xí)參數(shù),有利于網(wǎng)絡(luò)性能的提高,但網(wǎng)絡(luò)的多分支化會不可避免地帶來網(wǎng)絡(luò)在使用時的大參數(shù)量以及內(nèi)存消耗。2021年,Diverse Branch Block(DBB)模塊被提出,圖1為DBB模塊示意圖。其核心理念是通過多分支網(wǎng)絡(luò)結(jié)構(gòu)(包含卷積序列、多尺度卷積及平均池化)來豐富卷積塊的特征空間,從而增強(qiáng)了單卷積的表示能力,為卷積神經(jīng)網(wǎng)絡(luò)帶來更大的改善。通過結(jié)構(gòu)重參數(shù)化思想,DBB模塊還可以將復(fù)雜得多的分支結(jié)構(gòu)等價轉(zhuǎn)化為一個單分支結(jié)構(gòu),如此可以使得轉(zhuǎn)化后的網(wǎng)絡(luò)不僅擁有了在轉(zhuǎn)換前的優(yōu)良性能,而且結(jié)構(gòu)簡單。
圖1 Diverse Branch Block(DBB)示意圖
要將復(fù)雜多分支結(jié)構(gòu)轉(zhuǎn)化為一個單分支結(jié)構(gòu),其融合過程需要涉及多個步驟,包括將BN層與卷積層的融合、不同尺寸的卷積融合等。
首先是BN層和卷積層的融合。已知卷積變化、BN操作分別如公式(1)(2):
則輸入x經(jīng)過卷積層和BN層的過程可以表示為:
式中,γ和β——BN層自身訓(xùn)練學(xué)習(xí)到的比例因子和偏置項(xiàng);μB和σB——均值和方差。令
由(3)(4)可得:
式中,ω?和b?——經(jīng)融合后的卷積核的權(quán)重與偏置。經(jīng)過以上變換,就實(shí)現(xiàn)了將卷積層和BN層融合為一個單一卷積塊的過程。
對于分支融合。由文獻(xiàn)[6]可知,兩個或多個配置相同的卷積是具有可加性,即可以先將不同的分支都轉(zhuǎn)化為相同配置的卷積,再把它們利用可加性合并為一個卷積,這就是分支融合的原理。
如圖1(a)所示,第①條支路中1×1卷積和BN層進(jìn)行融合后,使用0進(jìn)行填充至K×K大??;第②條支路中結(jié)構(gòu)為1× 1Conv-BN-K×KConv-BN,先分別將1×1卷積與對應(yīng)的BN層以及K×K卷積與對應(yīng)的BN層進(jìn)行融合,得到的結(jié)構(gòu)為1× 1Conv-K×KConv。其次以F1∈RD×C×1×1作為1×1Conv的卷積核、F2∈RE×D×K×K作為K×KConv 的卷積核,它們的偏置分別為b1∈RD和b2∈RE。則輸出O'是:
式中,I——輸入,*——卷積運(yùn)算。由于我們需要得到
由文獻(xiàn)[7]可知,可以用轉(zhuǎn)置后的F1對F2進(jìn)行卷積得到F'、b1與F2相乘后與b2相加得到b',注意,對于需要進(jìn)行0填充的K×KConv,方法是在模型訓(xùn)練時對第一個BN后的結(jié)果填充b1,至此將第②條支路轉(zhuǎn)化成K×K大小的卷積。第③條支路中先將平均池化層等價轉(zhuǎn)化為同樣大小和步長的卷積,之后按照第②條支路的處理對該條支路轉(zhuǎn)換為K×K大小的卷積;第④條支路中K×K卷積只和BN層融合。最后將轉(zhuǎn)化后的四條支路進(jìn)行分支融合,得到圖1(b)所示的單一結(jié)構(gòu)卷積塊。
在網(wǎng)絡(luò)訓(xùn)練階段,該文提出了一種混合損失函數(shù),即將交叉熵?fù)p失與Dice損失相結(jié)合。Dice Loss[8]可以有效地應(yīng)對數(shù)據(jù)中正負(fù)樣本不平衡造成的分割效果不理想的場景,其計(jì)算公式如式(8)所示:
式中,pi——預(yù)測圖中的像素點(diǎn);gi——標(biāo)簽圖中的像素點(diǎn);pigi——二者交集。由式(8)中可以看到Dice Loss表示一種區(qū)域性代價函數(shù),也就是說影響某像素點(diǎn)的訓(xùn)練損失及梯度值的原因不僅和該點(diǎn)的預(yù)測值及對應(yīng)標(biāo)簽值有關(guān),其他點(diǎn)的預(yù)測值及相應(yīng)標(biāo)簽值也會做出干擾,即網(wǎng)絡(luò)的所有輸出都會影響該像素的梯度,這就避免了模型在背景像素數(shù)目大于目標(biāo)像素數(shù)目的情況下嚴(yán)重偏向于背景而導(dǎo)致模型分割效果不好的情況,因此圖像中的數(shù)據(jù)不均衡問題可以得到緩解。
該文的實(shí)驗(yàn)環(huán)境為深度學(xué)習(xí)框架為Pytorch1.10,處理器是Intel i9-10980XE,GPU為NVIDIA GeForce RTX 3080。該文使用遷移學(xué)習(xí)策略,將預(yù)訓(xùn)練模型Resnet101網(wǎng)絡(luò)作為算法的初始化權(quán)重主干特征提取網(wǎng)絡(luò),以提升網(wǎng)絡(luò)的泛化能力。訓(xùn)練分為兩個階段。階段一為凍結(jié)主干特征提取網(wǎng)絡(luò)階段,學(xué)習(xí)率為0.007,批處理大小和epoch分別為8和50。階段二是解凍主干網(wǎng)絡(luò)階段,學(xué)習(xí)率為0.000 07,批處理大小和epoch分別為4和50。采用SGD作為優(yōu)化器,學(xué)習(xí)率衰減策略為余弦退火。
訓(xùn)練時,在網(wǎng)絡(luò)解碼結(jié)構(gòu)用DBB模塊替換部分卷積去訓(xùn)練,并且配合混合損失函數(shù)計(jì)算梯度信息進(jìn)行反向傳播訓(xùn)練網(wǎng)絡(luò)模型。推理測試階段利用結(jié)構(gòu)重參數(shù)化方法,將DBB模塊構(gòu)轉(zhuǎn)化成簡單卷積。
該文采用Cityscapes數(shù)據(jù)集[9]對所提算法進(jìn)行試驗(yàn)和驗(yàn)證,由于官方并沒有給出測試集對應(yīng)的標(biāo)簽圖,所以該文使用的數(shù)據(jù)集是訓(xùn)練集加驗(yàn)證集共3 475圖片,并隨機(jī)劃分,取3 175張圖片用于訓(xùn)練、348張圖片用于驗(yàn)證及后續(xù)的測試。該文選擇使用平均交并比(MIoU)和平均像素精度(MPA)為驗(yàn)證圖像語義分割算法性能的評價指標(biāo)。
該文對所改進(jìn)算法進(jìn)行了消融實(shí)驗(yàn),模型語義分割結(jié)果如表1所示。
表1 各模型的圖像語義分割結(jié)果評估
從表1中的結(jié)果對比可以看出,在原算法的基礎(chǔ)上,僅在特征提取階段利用DBB模塊替換卷積結(jié)構(gòu)或僅加入混合損失函數(shù),都使得MIoU和MPA得到了有效提高;而在原有基礎(chǔ)上同時DBB模塊和混合損失函數(shù),使得MIoU值提高了4.63個百分點(diǎn)、MPA提高了3.53個百分點(diǎn)。
使用模型①和④對Cityscapes數(shù)據(jù)集中的測試集進(jìn)行語義分割,實(shí)驗(yàn)對比結(jié)果如圖2所示??梢钥闯?,在交通場景下進(jìn)行場景識別時,原DeepLabv3+算法在分割成像占比較小的柱子、人等物體時明顯存在分割不均衡、遺漏的現(xiàn)象,該文所改進(jìn)的算法的分割效果更為明顯。實(shí)驗(yàn)結(jié)果表明,所改進(jìn)算法對于目標(biāo)背景的邊界分割能力有明顯提升,細(xì)化目標(biāo)邊界,輪廓更加清晰,改善了數(shù)據(jù)不平衡分割不好的問題,并改善了語義分割效果。
圖2 分割結(jié)果對比圖
針對交通場景下語義分割性能精度低以及對小目標(biāo)物體分割效果較差的問題,該文提出了一種改進(jìn)的DeepLabv3+網(wǎng)絡(luò)的語義分割方法,首先利用結(jié)構(gòu)重參數(shù)化方法,在訓(xùn)練階段用DBB模塊重構(gòu)網(wǎng)絡(luò)的解碼架構(gòu),推理階段再等價轉(zhuǎn)化成一個簡單卷積塊,使模型在具有復(fù)雜多分支結(jié)構(gòu)表現(xiàn)出來的良好分割性能的同時兼具單分支結(jié)構(gòu)的簡潔特征;其次,使用Dice損失函數(shù)和交叉熵?fù)p失函數(shù)結(jié)合的混合損失函數(shù)應(yīng)用到算法中,可以有效地改善出現(xiàn)正負(fù)樣本不平衡時分割效果不理想的情況。通過使用Cityscapes數(shù)據(jù)集進(jìn)行的消融實(shí)驗(yàn)表明,所提算法相比原DeepLabv3+算法對圖像的分割準(zhǔn)確度有了很大的提升,擁有更好的效果。