康萌萌, 楊 浩, 谷小婧, 顧幸生
(1. 華東理工大學化工過程先進控制和優(yōu)化技術教育部重點實驗室,上海 200237;2. 中國民航科學技術研究院,北京 100028)
城市場景的語義分割是實現(xiàn)自動駕駛的關鍵技術[1],通過識別圖像中每個像素所屬的類別,使自動駕駛車輛實現(xiàn)環(huán)境理解[2],進而實現(xiàn)可靠判斷。近年來,隨著深度學習技術的發(fā)展,基于深度學習的語義分割方法也日新月異。Shelhamer 等[3]提出了第1 個端到端的語義分割模型(FCN),隨后,Handa 等[4]將FCN 擴展成一個對稱的編碼-解碼結構SegNet,通過解碼器逐步還原圖像的空間位置信息,避免直接上采樣導致分割細節(jié)不夠精細的問題。文獻[5]也采用類似的編碼-解碼網(wǎng)絡。此外,還有一些研究致力于提高圖像全局信息的利用率,如空洞卷積[6]、多尺度預測[7]、條件隨機場模型[8]等。
基于深度學習的語義分割技術主要圍繞可見光圖像展開,但是在夜間、大霧或強曝光等特殊的光照環(huán)境下,系統(tǒng)性能會顯著下降,導致無法正確分割物體,這也是影響自動駕駛系統(tǒng)走向實際應用的重要原因之一。紅外熱成像相機根據(jù)物體發(fā)射的熱輻射強度成像[9],具有不受光照環(huán)境影響的優(yōu)點??梢姽?紅外(RGB-IR)多波段圖像由兩個傳感器相機同時捕獲并進行配準[10],其中,可見光圖像記錄的是場景的反射特性,光照良好時可以提供豐富的色彩特征和細膩的紋理特征,但光照不佳時圖像信息不足[11];長波紅外圖像記錄的是場景的熱輻射特性,雖然是單色圖像且缺乏細膩的紋理,但可在光照環(huán)境差的情況下提供人、車等熱目標的顯著特征。因此,聯(lián)合使用RGB-IR 多波段圖像中的互補信息,可以提高自動駕駛系統(tǒng)的魯棒性和準確性,使得全天候復雜交通環(huán)境下的安全行駛成為可能。
目前,基于深度學習的多波段圖像語義分割方法主要采用編碼-解碼結構,根據(jù)特征融合方法不同可分為編碼端融合[12-13]、解碼端融合[14]和獨立模塊融合[15-16]三大類。Hazirbas 等[12]提出編碼端融合的FuseNet,采用VGG16 模型構建兩個并行的編碼器和一個共用的解碼器,在編碼端將深度信息對應地相加到可見光通道中,是最直接的編碼端融合結構。Sun等[13]提出的RTFNet 網(wǎng)絡也采取編碼端融合結構,通過ResNet 殘差網(wǎng)絡進行特征提取,并提出一種新的解碼器來恢復特征圖分辨率。Ha 等[14]構建的MFNet輕量級網(wǎng)絡采用解碼端融合方法,將編碼端捕獲的多波段信息直接連接到解碼端構成解碼端融合架構,以減少對特征提取的干擾。以上模型都采用特征直接相加或級聯(lián)的方式,而Lee 等[15]提出的RDFNet網(wǎng)絡結構通過構建MMF 融合模塊對多模態(tài)特征和多級特征進行篩選融合,屬于獨立模塊融合結構。類似的工作還有Valada 等[16]提出的AdaptNet 網(wǎng)絡,通過多尺度特征融合塊MS 構建獨立模塊融合結構。
多波段圖像語義分割方法缺乏對融合特征的有效性判別,可能導致互補信息丟失或信息過度冗余。為了提高融合特征的鑒別性,本文對特征融合過程施加監(jiān)督信號,提出了一種基于融合路徑監(jiān)督的多波段圖像語義分割方法(SFNet)。通過將特征融合模塊串聯(lián)形成特征融合支路,在融合支路末端施加監(jiān)督信號,使融合特征更具有鑒別性。此外,構建了Dice 損失和交叉熵損失的混合監(jiān)督訓練模式,改善對于小目標的分割效果。
基于融合路徑監(jiān)督的多波段圖像語義分割網(wǎng)絡結構如圖1 所示?;A模型采用基于SegNet[4]的編碼器-解碼器架構,該架構可以靈活地將多波段圖像的多級特征進行融合,提高信息利用率。首先利用SegNet 模型構建兩個并行的編碼器,分別對可見光圖像和紅外圖像進行特征提取,在編碼末端得到兩個512×10×10 的高層語義特征圖,代表編碼輸出的10×10 特征圖共有512 個;然后將提取到的多波段高層語義特征直接級聯(lián),通過一個共用的解碼器進行解碼。
圖1基于融合路徑監(jiān)督的多波段圖像語義分割網(wǎng)絡結構Fig.1Multi-spectral image semantic segmentation network with supervised feature fusion
本文模型包括4 個相似的特征融合模塊,將其互相串聯(lián)形成特征融合支路。特征融合模塊作為特征運輸?shù)臉蛄?,將融合后的高層語義特征(即上一個特征融合模塊的輸出)和當前編碼端引出的中間特征再次進行融合,并分別連接到對應的解碼端,以幫助解碼器更好地恢復對象細節(jié)。在融合支路上設置Dice 損失函數(shù)對融合過程進行監(jiān)督,聯(lián)合解碼支路的交叉熵損失函數(shù),利用二者之和作為網(wǎng)絡的最終損失進行反向傳播,構成混合監(jiān)督訓練模式。
首先構建特征融合模塊,具體結構如圖1 中Fusion module 所示。融合模塊有兩個輸入,一是從編碼端引出的多波段特征,將其級聯(lián)后送入融合模塊①端,通過3×3 卷積進行融合預處理并將通道降為原來的1/2;二是來自高層的融合信息,利用模塊②端的3×3 卷積將其通道降為原來的1/2。將經(jīng)過預處理的兩組特征圖級聯(lián),通過3×3 卷積進行后處理,并將通道降為原來的1/2 輸出到③端;輸出的融合信息連接到解碼端,促進解碼分割,同時將其作為下一個融合模塊的輸入。通過以上從高層到低層特征的傳遞,將特征融合模塊串聯(lián)成融合支路,利用高層融合信息指導低層信息融合。本文構建的特征融合模塊避免了互補信息丟失和信息過度冗余等問題,使融合信息在捷徑連接的過程中保持對齊,減少沖突。另外,為了防止過擬合,在特征融合模塊輸入端①、②添加Relu 激活函數(shù)來減少網(wǎng)絡的稀疏性。
為了使融合特征更具有鑒別性,在獨立的融合支路末端直接添加損失函數(shù)構成融合監(jiān)督信號,利用監(jiān)督信號促進特征融合過程。類似的工作有Lee 等[17]提出的深度監(jiān)督網(wǎng)絡,該工作指出利用監(jiān)督學習可以讓中間隱藏層的學習過程更加直接和透明,減少分類的錯誤,從而使學習到的特征更加魯棒和易區(qū)分。本文方法與深度監(jiān)督網(wǎng)絡工作的不同之處在于,深度監(jiān)督復用了同一條網(wǎng)絡支路,而本文基于融合模塊構建了一條獨立的新支路,并對其施加不同的監(jiān)督信號。
首先,使用圖像分割中常用的交叉熵損失函數(shù)對融合支路進行監(jiān)督,其具有求導方便、易于訓練的優(yōu)點,交叉熵損失函數(shù)( Lcross)如式(1)所示。交叉熵損失函數(shù)對每個類別具有相同的關注度,易受類別不平衡因素的影響,因此為了提升對小目標的分割精度,使用Dice 損失函數(shù) (LDice)[18]對融合支路進行監(jiān)督。Dice損失函數(shù)最初用于醫(yī)學圖像分割,它以交并比最大為優(yōu)化目標,可以從較大的背景區(qū)域中將前景目標分離出來,防止預測結果偏向于背景,具有較強的檢測小目標區(qū)域的能力,Dice 損失函數(shù)如式(2)所示。本文在解碼支路使用交叉熵作為損失函數(shù),在融合支路使用Dice 損失函數(shù)作為監(jiān)督信號。最后,使用Dice 損失函數(shù)和交叉熵損失函數(shù)之和作為網(wǎng)絡的最終損失函數(shù)進行反向傳播,構建混合監(jiān)督訓練模式,最終的損失函數(shù)( Ltotal)見式(3)。
其中:n 為數(shù)據(jù)集中分割類別的個數(shù); pi和 gi分別為預測分割值和標簽值。
計算機硬件配置為Intel Core i7-7700k CPU,GeForce GTX 2080Ti GPU,操作系統(tǒng)為Ubuntu 16.04 LTS,計算框架為Python 3.6.6,Cuda 9.0,Cudnn 7.2 以及Torch 0.4.1。網(wǎng)絡訓練過程中將圖片分辨率統(tǒng)一設置為320×320,參數(shù)學習采用帶動量的小批量隨機梯度下降方法,為解決訓練期間出現(xiàn)的輕微過擬合問題,在卷積層之后添加L2正則化。訓練批次大小為4,最大迭代次數(shù)Tmax=400,初始學習率η0=0.01。訓練過程中學習率 ηT隨迭代次數(shù)T 使用poly 策略衰減至0,其表達式為
2.2.1 數(shù)據(jù)集 對比實驗在兩個多波段語義分割數(shù)據(jù)集上展開。數(shù)據(jù)集1 是課題組自行構建的夜間道路場景圖像語義分割數(shù)據(jù)集,共有541 組配準的RGB-IR 圖像及語義標簽圖,圖片分辨率為400×300。語義標簽設定為:汽車、自行車、行人、天空、樹木、交通燈、道路、人行道、建筑、欄桿、路標、桿子、巴士共計13 類物體,外加空類,代表13 種物體之外的場景,本文模型的訓練與評估過程不包括空類。數(shù)據(jù)集2 是Ha 等[14]針對自動駕駛問題構建的城市場景RGB-IR 圖像語義分割數(shù)據(jù)集,共包含1569張分割圖像(其中820 張圖片來自白天,另外749 張圖片來自夜晚),圖片分辨率為480×640。語義標注中提供了在交通環(huán)境中常見的8 種障礙物及背景標簽,本文在數(shù)據(jù)集2 上的實驗不計算背景標簽。
2.2.2 評價指標 在算法評估中,采用每個類別的分割準確率(Acc)、聯(lián)合交叉概率(IoU)、Acc 和IoU 在所有類別上的平均分割準確率(mAcc)及平均聯(lián)合交叉概率(mIoU)指標對語義分割性能進行定量分析,公式如下:
2.3.1 消融實驗 消融實驗主要分為三部分。首先,為了驗證融合支路可以讓高層融合指導低層融合,使信息的利用率更高,從而改善分割效果,本文設計了基于獨立模塊融合方法與融合支路方法的對比實驗。獨立模塊融合方法是指在圖1 中多波段圖像語義分割架構的基礎上,利用兩個3×3 卷積代替圖1 中的Fusion module,通過它對級聯(lián)后的多波段特征進行融合,并將其連接到解碼端,結構如圖2(a)所示。融合支路方法是指在本文模型基礎上去掉融合支路末端的監(jiān)督信號,結構如圖2(b)所示。兩種方法分別在兩個數(shù)據(jù)集上進行實驗,對比結果如表1 所示。從表1 可以看出,利用特征融合支路可以將分割結果mIoU 值提升1.0~2.0,說明融合支路與獨立融合模塊相比可以利用更多的融合信息,提高語義分割效果。
在融合支路末端直接施加監(jiān)督信號,構成基于融合路徑監(jiān)督的分割模型,根據(jù)監(jiān)督信號的不同,分別將交叉熵損失監(jiān)督和Dice 損失監(jiān)督的模型稱為SFNet*和SFNet,簡化結構如圖2(c)所示。在融合支路末端添加與分割支路相同的交叉熵損失監(jiān)督信號時,實驗結果見表1 中的SFNet*。對比表1 的實驗結果可知,在融合支路末端添加交叉熵損失時,在兩個數(shù)據(jù)集上的mIoU 值和mAcc 值與融合支路方法相比都有所提高,說明對融合路徑設置交叉熵信號監(jiān)督能提高融合特征的鑒別性,進而改善分割效果。
圖2消融實驗模型Fig.2Ablation experimental model
將融合支路末端的交叉熵損失替換成Dice 損失,與解碼分割支路上的交叉熵損失構成混合監(jiān)督訓練模式,實驗結果見表1 中的SFNet。對比SFNet*與SFNet 的分割結果可以看到,Dice 損失監(jiān)督模型的mAcc 沒有明顯提高,而mIoU 值提升1 左右,這恰好體現(xiàn)了Dice 損失函數(shù)的特點,以交并比最大化為目標進行參數(shù)更新,提升小目標的分割效果。圖3示出了在特征融合支路上分別添加Dice 損失和交叉熵損失的分割結果對比,從圖3中紅色圓圈標注的地方可以看出,在特征融合支路上添加Dice 損失監(jiān)督信號時,模型對路標、桿子等細小物體的分割效果將更優(yōu)。
表1在數(shù)據(jù)集1 和數(shù)據(jù)集2 上的消融實驗結果Table1Ablation experimental results on dataset1and dataset 2
圖4 分別示出了表1 中4 組對比模型在數(shù)據(jù)集1 的訓練過程中,驗證集的損失函數(shù)變化和mIoU 變化情況。觀察圖4(a)中損失函數(shù)變化曲線發(fā)現(xiàn),在融合支路上加入損失函數(shù)進行融合監(jiān)督之后,SFNet*和SFNet 損失曲線下降較快,說明設置融合監(jiān)督信號后加快了收斂速度,減少了訓練時間。圖4(b)中mIoU值的變化曲線顯示,加入Dice 損失的混合監(jiān)督信號方法與其他方法相比具有較好的分割效果。綜上,基于融合路徑監(jiān)督的方法加快了模型收斂速度,同時能提升融合特征鑒別性,進而改善分割結果。
2.3.2 算法對比及分析 本文選取了目前較為成功的幾種分割網(wǎng)絡作為對比算法,其中包括FCN[3]、SegNet[4]和UNet[13]等經(jīng)典的單模態(tài)圖像語義分割方法,以及FuseNet[12]、MFNet[14]、RTFNet[13]和RDFNet[15]等多波段圖像語義分割方法,分別在數(shù)據(jù)集1、2 上進行實驗。表2 和表3 分別示出了對比算法在數(shù)據(jù)集1 和數(shù)據(jù)集2 上的分割結果,表中黑體字表示分割最優(yōu)值。結果驗證了本文提出的基于融合路徑監(jiān)督的多波段圖像語義分割模型具有較好的分割效果。
圖3不同監(jiān)督信號對比結果Fig.3Comparison results of different supervision signals
圖4驗證集上的損失函數(shù)和mIoU 變化曲線Fig.4Loss and mIoU curves on the validation set
表2不同分割方法在數(shù)據(jù)集1 上的分割結果Table2Segmentation results of different segmentation methods on dataset 1
表2 中只顯示了每個類別(不含空類)的Acc、mAcc 和mIoU。從比較結果來看,在當前主流算法中,以獨立模塊融合方法為代表的RDFNet 模型表現(xiàn)較好,分割結果mIoU 值為52.9,本文的SFNet 方法與RDFNet 相比,mIoU 提高了2.4。從整體對比結果來看,本文方法不論在mAcc 還是mIoU 評價指標上都優(yōu)于其他算法,在大多數(shù)類別的像素準確率上與其他方法相比也有較好的分割效果,特別是對交通燈、標志牌、桿子等小目標的分割像素準確率有較明顯的提高,驗證了在融合支路末端添加Dice 損失監(jiān)督信號對小目標分割的有效性。
表3不同分割方法在數(shù)據(jù)集2 上的分割結果Table3Segmentation results of different segmentation methods on dataset 2
表3 數(shù)據(jù)集中含有大量的背景類像素,這對小目標對象的分割造成了很大的挑戰(zhàn),因此,為了消除背景類像素對整體分割效果的影響,在數(shù)據(jù)集2 上的實驗過程中不計算背景類像素。盡管如此,在數(shù)據(jù)集2 上進行語義分割實驗時,依然出現(xiàn)某些分割方法對護欄類別分割結果為0 的情況,這是由于該類別在數(shù)據(jù)集2 中所占比重較小(約占0.1%),因此沒有被檢測到。從表3 的分割結果來看,采用本文方法得到的mIoU 與mAcc 值明顯高于其他模型。
從表2 和表3 的分割結果可以看出,本文的SFNet模型在兩個數(shù)據(jù)集上的mAcc 和mIoU 值均達到最高,體現(xiàn)了本文方法在不同的語義分割數(shù)據(jù)集上都具有良好的表現(xiàn),魯棒性較好。圖5 示出了不同方法在兩個數(shù)據(jù)集上的語義分割結果。
圖5語義分割結果Fig.5Results of semantic segmentation
此外,對于自動駕駛技術來說,圖像分割的實時性也是決定其能否走向實際應用的一個重要因素。因此,為了評價模型的實時分割效果,利用NVIDIA GeForce GTX2080Ti 顯卡對上述語義分割網(wǎng)絡的推理速度進行測量。在數(shù)據(jù)集1 上輸入圖片分辨率為320×320 的情況下,對比不同融合方法對同一張圖片進行分割所需的平均時間成本t 和速度(FPS),其中FPS 表示每秒可以分割多少張圖像,分割性能和效果對比如表4 所示。
表4不同模型推理速度和性能對比Table4Comparison of inference speed and performance for different models
RTFNet 與RDFNet 都由卷積層數(shù)更深的ResNet基礎網(wǎng)絡構成,從表4 中可以看到,與其他基于VGG網(wǎng)絡的方法相比,RTFNet 和RDFNet 可以提取更多的圖像特征,因此其分割效果優(yōu)于其他主流算法,但是使用更深的模型在一定程度上增加了網(wǎng)絡運算量和模型參數(shù),因此其分割速度均較差。本文模型使用VGG16 基礎網(wǎng)絡搭建,模型參數(shù)較少,訓練速度快;同時,本文模型構建融合路徑監(jiān)督策略,使融合特征更具有鑒別性,從而提升分割結果。從對比結果來看,采用本文方法得到的mIoU 值比RDFNet 方法高2.4,分割速度約為RDFNet 方法的3 倍。綜上,本文提出的基于融合路徑監(jiān)督的多波段圖像語義分割方法不僅具有優(yōu)良的分割結果,同時具有可靠的推理速度。
為了增強多波段圖像融合特征的鑒別性,提高語義分割效果,本文提出一種基于融合路徑監(jiān)督的多波段圖像語義分割方法。首先,利用獨立融合模塊將高層特征與低層特征串聯(lián)形成融合支路,提高信息利用率;其次,對獨立融合支路施加監(jiān)督信號,不僅使融合特征更具有鑒別性,而且加快模型收斂速度,提高訓練效率;最后,對融合支路施加Dice 損失監(jiān)督信號,與分割主支路的交叉熵損失構成混合監(jiān)督訓練模式,改善對于小目標的分割結果。在不同數(shù)據(jù)集上的實驗結果顯示,本文方法與同類算法相比,具有更好的分割效果和分割性能。