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