唐舒放,王志勝
(南京航空航天大學(xué)自動化學(xué)院,江蘇 南京 211106)
在車載自動駕駛系統(tǒng)中,利用語義分割模塊對視覺傳感器采集的圖像信息進行處理,可以檢測前方路況信息,感知當前車輛所處環(huán)境,甚至判斷道路上的交通標志,因此針對視覺信息的語義分割模塊是自動駕駛系統(tǒng)中至關(guān)重要的一個環(huán)節(jié)。提高語義分割結(jié)果的精確度能夠提升自動駕駛系統(tǒng)對道路場景的理解推斷,更好地為自動駕駛中央決策單元提供信息支持;加快語義分割推理的速度能夠保證實時地為自動駕駛系統(tǒng)提供環(huán)境信息,從而進一步確保自動駕駛系統(tǒng)的安全性。然而,基于深度學(xué)習的語義分割技術(shù)更多的是在學(xué)術(shù)界中快速發(fā)展,與工業(yè)界中的自動駕駛?cè)蝿?wù)需求仍有較大不同[1-3]。
語義分割模塊作為自動駕駛汽車感知周圍環(huán)境的橋梁,實時地為系統(tǒng)提供環(huán)境信息是安全性能的有效保障。在卷積神經(jīng)網(wǎng)絡(luò)中,靠近圖像輸入部分的卷積層中的特征圖具有豐富的空間位置、邊緣形狀等信息,而編碼器輸出的特征圖具有更多的高級語義信息。在目標檢測、分類等其它視覺任務(wù)中往往利用這種高級語義特征就可以達到目的,然而語義分割任務(wù)最終需要達到對所有像素的分類,除了需要高級語義信息來完成語義推斷,還需要特征的原始空間位置信息來將低分辨率的深層特征圖恢復(fù)到原始尺寸,因此導(dǎo)致語義分割網(wǎng)絡(luò)中常見的編碼器-解碼器等結(jié)構(gòu)具有較長的計算流程。設(shè)計輕量級語義分割網(wǎng)絡(luò)的編碼器需要采用快速下采樣的策略,使用較少的卷積層有效快速地提取上下文語義信息,然后通過對早期的特征圖使用注意力機制來獲取更詳細的全局空間信息。為此本文基于雙路徑語義分割網(wǎng)絡(luò),通過結(jié)合注意力機制來實現(xiàn)對街道場景圖像進行實時語義分割。
本文的主要工作如下:
1)搭建一個輕量級語義分割網(wǎng)絡(luò),并部署于嵌入式平臺TX1中以較高的分割準確度實時地對街道場景進行語義分割。
2)基于自注意力機制設(shè)計一個快速注意力模塊。在輕量的空間信息提取網(wǎng)絡(luò)分支中以極小的時間成本增強位置、邊緣等空間信息。
3)基于通道注意力機制設(shè)計一個內(nèi)嵌上下文模塊,有效地突出特征空間維度較高的語義信息特征圖中重要的特征通道。
語義分割網(wǎng)絡(luò)普遍采用編碼器-解碼器結(jié)構(gòu)。編碼器通常由卷積層和池化層組成,用來對圖像的各種特征進行提取、融合;解碼器通常由上采樣池化層和卷積層組成,用來將特征圖恢復(fù)到原始尺寸形成像素級分類結(jié)果。2015年,文獻[4]使用深度卷積網(wǎng)絡(luò)作為特征編碼器,并將其全連接層神經(jīng)網(wǎng)絡(luò)替換為卷積層作為特征解碼器,上采樣得到與輸入圖片同尺寸的像素分類結(jié)果,是首個端到端的語義分割算法。作為語義分割網(wǎng)絡(luò)的開山之作,其缺點也很明顯,由于直接對1×1×4096的特征圖進行上采樣,得到的結(jié)果比較模糊和平滑,對圖像中的細節(jié)不敏感,對各個像素分別進行分類,沒有充分考慮像素之間的對應(yīng)關(guān)系,缺乏空間一致性。早期解碼器中的上采樣操作通常使用雙線性內(nèi)插,這種算法并不像卷積層一樣具有學(xué)習能力,很難將編碼的空間、語義信息恢復(fù)出來,這對語義分割結(jié)果的準確性非常不利。文獻[5]證明了使用反卷積層替換雙線性內(nèi)插作為解碼器可有效提高語義分割結(jié)果。在此基礎(chǔ)上,SegNet[6]增加了編碼器輸出的特征圖分辨率,并在解碼器中使用與編碼器中相對應(yīng)的池化索引將低分辨率特征圖映射到與輸入圖片的分辨率相同的尺寸。
在此之后,更多的研究是以編碼器-解碼器結(jié)構(gòu)為基礎(chǔ)進行適當改進。RefineNet[7]的組件遵循殘差連接的設(shè)計方式,使用殘差模塊[8]對解碼器結(jié)構(gòu)重新設(shè)計。一方面解決了深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練中存在的過擬合問題,另一方面有效利用編碼器輸出的低分辨率特征信息生成高分辨率的分割預(yù)測圖。文獻[9]提出了一種帶大尺寸卷積核的編碼器-解碼器結(jié)構(gòu),通過消融實驗表明在有效感受野和參數(shù)數(shù)量之間取得平衡的同時達到了良好的性能。文獻[10]在編碼階段中加入一種語境分析模塊,同時還改進損失函數(shù)對訓(xùn)練過程進行正則化以加速網(wǎng)絡(luò)在上下文語義信息的學(xué)習。
近幾年來,基于輕量級網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計成為了一個熱門的研究方向,許多學(xué)者開始在神經(jīng)網(wǎng)絡(luò)模型的參數(shù)量、計算成本和結(jié)果精度之間尋找平衡,希望以較少的計算、存儲成本獲得較高的輸出精度。被證明效果顯著的快速性神經(jīng)網(wǎng)絡(luò)模塊有MobileNet[11-13]和ShuffleNet[14-15]等,上述結(jié)構(gòu)單元在圖片歸類問題中達到了不俗的成績。解決分類問題與語義分割問題的關(guān)鍵之一均是獲取準確的高級語義信息,因此其在語義分割任務(wù)當中同樣能有效地提取語義特征信息,例如在輕量級語義分割網(wǎng)絡(luò)DFANet[16]中就使用了深度可分離卷積這一概念。為降低計算成本,快速語義分割網(wǎng)絡(luò)常采用的思路有:
1)通過修剪或插值來限制輸入圖片尺寸。雖然這種方法簡單明了,但是舍棄部分空間信息必然讓預(yù)測結(jié)果打折扣,尤其是在圖片的邊界部分。
2)通過降低卷積層特征圖維度加快處理速度,尤其是在網(wǎng)絡(luò)骨干的初始階段[6],但是這同樣會弱化圖片局部信息的提取,一開始就被舍棄的信息在后續(xù)解碼階段難以恢復(fù)。
3)追求緊湊的網(wǎng)絡(luò)結(jié)構(gòu)而簡化編碼階段。ENet[17]減少了下采樣次數(shù)導(dǎo)致網(wǎng)絡(luò)的感受野不足以覆蓋大尺度物體,魯棒性較差。
鑒于深度卷積網(wǎng)絡(luò)普遍存在計算耗時的問題,本文綜合考慮各種網(wǎng)絡(luò)結(jié)構(gòu),最終采用雙路徑策略,分別對輸入圖像的空間信息和語義信息進行處理,如圖1所示。
圖1 網(wǎng)絡(luò)總體結(jié)構(gòu)圖
在處理空間信息的細節(jié)分支中,為了避免犧牲低層粗糙的局部信息來加速網(wǎng)絡(luò)運行速度,通過設(shè)計一種快速注意力機制來提高網(wǎng)絡(luò)提取特征的效率;在獲取高層語義信息的語義分支中,為了在保證該分支足夠輕量的同時使網(wǎng)絡(luò)具有足夠的感受野,通過設(shè)計一種特征聚合擴展模塊來增強網(wǎng)絡(luò)對高級語義信息的感知。與同時提取空間位置邊緣信息和高層語義信息的單通道編碼器網(wǎng)絡(luò)相比,雙路徑網(wǎng)絡(luò)可以針對2種不同特征信息的特點分別設(shè)計網(wǎng)絡(luò)結(jié)構(gòu),避免為了兼顧2種信息的提取而復(fù)雜化網(wǎng)絡(luò)結(jié)構(gòu)。除此之外,單通道網(wǎng)絡(luò)中流動的特征圖由于同時具有上述2種特征而普遍具有較大的空間尺寸和較寬的特征通道,從而導(dǎo)致較大的內(nèi)存占用和運算成本,然而在本文設(shè)計的雙路徑網(wǎng)絡(luò)中,每個分支中流動的特征圖只關(guān)注于一種特征信息而具有較小的規(guī)模,因此本文采用的雙路徑結(jié)構(gòu)可以保證總體網(wǎng)絡(luò)的輕量性。
為了提高捕捉空間位置信息的能力,本文對自注意力機制的快速性進行改進。
對于特征維度為c,尺寸之積(h×w)為n的特征圖,自注意力機制將捕獲的每個像素非局部上下文信息表示為特征圖中所有位置上的特征加權(quán)和。將上述特征圖平鋪,表示為X∈Rn×c,自注意力模型使用3個1×1的卷積核對其進行編碼,輸出的特征圖分別稱為Value Map(V∈Rn×c)、Query Map(Q∈Rn×c′,c′為降低計算量的過渡特征維度)和Key Map(K∈Rn×c′),其中特征圖V包含了每個像素的語義信息而特征圖Q和K被用來構(gòu)建像素之間的相關(guān)性。softmax函數(shù)經(jīng)常被用來作為相似性建模函數(shù),因此被廣泛使用的自注意力響應(yīng)為:
Y=softmax(Q·KT)·V
(1)
(2)
由于在softmax函數(shù)中存在歸一化項,在計算式(1)時需要首先計算矩陣Q和KT的內(nèi)積,再計算它們的矩陣外積,計算復(fù)雜度為O(n2c)。
本文通過替換softmax函數(shù)來降低計算復(fù)雜度,實際上在文獻[18]中指出有很多相似性函數(shù)可供選擇,例如點積相似度:f(Q,K)=Q·KT。但是由于矩陣Q和K中的值大小不固定,應(yīng)首先對其進行逐通道歸一化,點積相似度函數(shù)也因此轉(zhuǎn)變?yōu)橛嘞蚁嗨贫群瘮?shù):
(3)
考慮到矩陣的尺寸中n?c,可以通過矩陣乘法的結(jié)合律改變式(3)中矩陣計算的順序:
(4)
圖2 快速注意力模塊網(wǎng)絡(luò)結(jié)構(gòu)
不失一般性,經(jīng)過上述改進后的快速注意力機制的計算復(fù)雜度降低到O(nc2)。
為了在語義特征圖眾多特征維度中突出對語義類別預(yù)測更具影響的通道,本文結(jié)合通道注意力機制對特征圖進行優(yōu)化,并將該網(wǎng)絡(luò)結(jié)構(gòu)稱為內(nèi)嵌語境模塊。該模塊主要由全局平均池化和一個殘差連接組成,如圖3所示。使用全局平均池化將每一維度的特征切片映射為一個值來構(gòu)建特征通道間的相關(guān)性[19],完成由空間域到通道域的轉(zhuǎn)變,使網(wǎng)絡(luò)在更全面的角度對特征圖各維度重要程度進行判斷。最終將描述通道相關(guān)性的向量通過殘差連接對原始輸入特征圖加權(quán),起到抑制無用信息,突出有效信息的作用。
圖3 基于通道注意力機制的內(nèi)嵌上下文模塊網(wǎng)絡(luò)結(jié)構(gòu)
語義分割系統(tǒng)應(yīng)當對每一類別采取同樣的重視程度才能保證分割的準確性。為了應(yīng)對類別不均衡的情況,本文在交叉熵損失函數(shù)中加入基于不同類別所占比重計算的權(quán)重模板ωc。每一類別的權(quán)重通常由類別關(guān)注度除以該類樣本所占數(shù)據(jù)集比例的計算方式得到。
樣本的類別屬性除了由標簽提供的語義類別外,還可以分為容易被分類樣本和難以被分類樣本[20]。可通過softmax分類器預(yù)測的所屬類別概率區(qū)分難易樣本。在損失函數(shù)中針對難易樣本進一步加入權(quán)重因子。本文所使用的交叉熵損失函數(shù)最終形式如下:
(5)
實驗環(huán)節(jié)中,硬件環(huán)境為Intel Core I7-8700、GTX1080Ti,軟件環(huán)境為Python3.6、Pytorch1.6。對網(wǎng)絡(luò)模型的訓(xùn)練驗證均使用Cityscapes數(shù)據(jù)集。
網(wǎng)絡(luò)模型訓(xùn)練環(huán)節(jié)中,訓(xùn)練批量大小為8,初始學(xué)習率設(shè)置為0.005,在學(xué)習過程中動態(tài)調(diào)整學(xué)習率。使用普通交叉熵損失函數(shù)和抑制性權(quán)重交叉熵損失函數(shù)(式(5)中常量γ為0.6)分別對網(wǎng)絡(luò)模型進行訓(xùn)練,模型收斂情況如圖4所示??梢钥闯鍪褂酶倪M后的權(quán)重交叉熵損失函數(shù)可以加快網(wǎng)絡(luò)模型的收斂速度并收斂在更小的數(shù)值上,在學(xué)習過程中產(chǎn)生的震蕩現(xiàn)象也有所緩解,表明改進后的損失函數(shù)能夠更有效地引導(dǎo)網(wǎng)絡(luò)學(xué)習過程,提高了網(wǎng)絡(luò)對不同語義對象的分辨能力,同時對網(wǎng)絡(luò)中各神經(jīng)元權(quán)重在梯度下降環(huán)節(jié)中避開局部極小值點也有所幫助。
圖4 不同損失函數(shù)下模型訓(xùn)練過程對比
圖5對比了經(jīng)過快速注意力模塊優(yōu)化前后特征圖的可視化結(jié)果。圖中重要對象的區(qū)域被賦予更高的關(guān)注度,因此可視化后亮度也較大,而部分紋理區(qū)域則顯示較暗,對應(yīng)于注意力機制突出有效信息而抑制無用信息的特點,充分說明了本文設(shè)計的快速注意力模塊具有重要的作用。
圖5 特征圖可視化對比
圖6展示了內(nèi)嵌上下文模塊對網(wǎng)絡(luò)分割結(jié)果的影響。經(jīng)過注意力機制增強后的特征圖分割結(jié)果中,各個對象的邊界分割更為準確,同一語義對象內(nèi)部出現(xiàn)歧義的現(xiàn)象也較為改善。由于一般圖像中的遠處物體尺寸較小,編碼階段其特征響應(yīng)往往不夠明顯。經(jīng)過自注意力機制的優(yōu)化調(diào)整,圖像語義分割網(wǎng)絡(luò)對尺寸較小的語義對象敏感度提升,側(cè)面提高了網(wǎng)絡(luò)模型的泛化性。因此本文設(shè)計的快速注意力模塊可以有效地提高網(wǎng)絡(luò)模型輸出結(jié)果的準確度。
圖6 內(nèi)嵌上下文模塊有效性對比
為了驗證本文設(shè)計的輕量級網(wǎng)絡(luò)結(jié)構(gòu)的快速性,對不同語義分割網(wǎng)絡(luò)的參數(shù)量、推理速度進行統(tǒng)計,如表1所示。經(jīng)典的語義分割網(wǎng)絡(luò)DeepLab[21]、PSPNet[22]與實時語義分割網(wǎng)絡(luò)相比,它們在分割準確度上具有明顯的優(yōu)勢,但是這些執(zhí)行算法都需要硬件平臺具有足夠的浮點計算能力并占用較大內(nèi)存空間,很難被實際部署在各種硬件資源極其受限的移動開發(fā)平臺上。在近些年來眾多輕量級語義分割網(wǎng)絡(luò)中,本文設(shè)計的網(wǎng)絡(luò)以很低的計算成本為代價取得了較高的分割準確度,同時擁有較小的內(nèi)存占用和浮點計算力要求,在GTX1080Ti顯卡上的推理速度可以達到每秒25幀圖像以上。
在所選數(shù)據(jù)集中對19種語義對象進行分割,本文設(shè)計的網(wǎng)絡(luò)對大部分類別的分割都具有較高的精度,表明針對類別不均衡現(xiàn)象采取的損失函數(shù)策略較為有效。與基于單路徑編碼器-解碼器結(jié)構(gòu)的網(wǎng)絡(luò)ENet和SegNet相比,本文網(wǎng)絡(luò)對所有類別的交并比(Intersection over Union, IoU)均有較大提升。與同為雙路徑編碼器結(jié)構(gòu)的BiSeNet[23]相比,本文網(wǎng)絡(luò)在部分重要類別中進一步提升了IoU,如信號燈、交通標志、騎手、摩托車等。
表1 提出的網(wǎng)絡(luò)與其他語義分割網(wǎng)絡(luò)在Cityscapes驗證集上的性能對比統(tǒng)計
當前對語義分割算法的研究大部分是通過高性能的計算機來完成對網(wǎng)絡(luò)模型的訓(xùn)練及網(wǎng)絡(luò)推理性能的評估,而語義分割技術(shù)的實際應(yīng)用中需要將網(wǎng)絡(luò)模型遷移到不同的任務(wù)平臺中。本文選取英偉達公司推出的Jetson TX1嵌入式開發(fā)平臺完成語義分割模型在實際場景中的性能驗證。借助半浮點精度技術(shù)(fp16)和TensorRT引擎的加速,本文搭建的語義分割網(wǎng)絡(luò)在嵌入式環(huán)境下對512×1024分辨率圖像的處理速度達到了10 fps,對真實場景的分割效果如圖7所示。
圖7 校園道路場景語義分割結(jié)果展示
對于未出現(xiàn)在Cityscapes數(shù)據(jù)集中的國內(nèi)路況場景,本文搭建的圖像語義分割網(wǎng)絡(luò)能夠準確地分割汽車、摩托車及行人等自動駕駛?cè)蝿?wù)中較為敏感的對象,且對相同對象多尺度、多角度情況具有自適應(yīng)能力。對于道路與人行道之間的界限也能準確地區(qū)分,同時還具備分辨較遠目標的能力。此外,觀察涵洞內(nèi)的分割結(jié)果可以看出,網(wǎng)絡(luò)對亮度變化具有一定的魯棒性。同時,網(wǎng)絡(luò)對不同光照條件下產(chǎn)生的陰影不敏感,能夠準確分割車道線。總體上,本文設(shè)計的網(wǎng)絡(luò)模型具有較強的泛化性能,在復(fù)雜場景下的語義分割能力具有較高的準確度。
為了確保自動駕駛汽車的安全行駛,車載自動駕駛系統(tǒng)需要同時處理多種子任務(wù)來控制車輛的行駛,分配到處理語義分割任務(wù)的硬件資源將極其有限,因此語義分割算法的空間與時間復(fù)雜度不宜太高。在車載計算平臺中,考慮到空間、能耗等成本因素而無法攜帶高性能的電腦,小巧便攜的嵌入式計算平臺憑借其自身輕便低功耗的特點被廣泛應(yīng)用在各種移動開發(fā)場景中。針對上述情況,本文搭建了一個輕量級語義分割網(wǎng)絡(luò),在Cityscapes驗證集上達到了73.9%的分割準確度,在TX1嵌入式開發(fā)平臺中的處理速度達到了10 fps,滿足了自動駕駛系統(tǒng)對語義分割任務(wù)的準確性和實時性要求。