李曉航,周建江
南京航空航天大學(xué) 雷達(dá)成像與微波光子技術(shù)教育部重點(diǎn)實(shí)驗室,南京 211100
不論是道路交通管理還是機(jī)場航路交通管理,自動駕駛的技術(shù)都會為智能交通和自主決策帶來革命性變革。在道路/航路交通環(huán)境中,傳感器通過實(shí)時感知道路/航路、車輛/飛機(jī)或者行人等的狀況,通過路徑規(guī)劃提高行駛效率,減少人為操作失誤帶來的風(fēng)險。在民航領(lǐng)域,智能駕駛技術(shù)可以有效提升機(jī)場飛機(jī)的轉(zhuǎn)運(yùn)效率,尤其是大型民用機(jī)場,智能駕駛技術(shù)可以應(yīng)對更復(fù)雜機(jī)場航路狀況,降低安全風(fēng)險,提高航班正點(diǎn)率。
近年來,隨著地面道路和空中航線越來越復(fù)雜,以及任務(wù)的多元化,單一傳感器已經(jīng)逐漸無法適應(yīng)決策和操作的需求,因此融合多傳感器技術(shù)備受矚目。點(diǎn)云和光學(xué)圖像能夠為環(huán)境感知提供互補(bǔ)信息。點(diǎn)云由大量的三維點(diǎn)集構(gòu)成,描述物體的空間立體結(jié)構(gòu);而圖像則能夠提供出色的色彩飽和度和細(xì)節(jié)紋理信息。因此,融合這2 種模態(tài)的特征,能夠更準(zhǔn)確地掌握環(huán)境狀況,提高自主決策和路徑規(guī)劃的能力[1]。
為了融合不同類別的特征,多模態(tài)網(wǎng)絡(luò)需要使用一種或多種語義分割模型。DeepLab 系列[2-4]是點(diǎn)云語義分割的經(jīng)典網(wǎng)絡(luò),采用編碼-解碼架構(gòu)逐步恢復(fù)空間信息以捕捉清晰的目標(biāo)邊界。該網(wǎng)絡(luò)首次提出空洞卷積的概念,并使用Atrous Spatial Pyramid Pooling(ASPP)的多膨脹率支路捕獲多尺度信息,從而有效增強(qiáng)網(wǎng)絡(luò)讀取上下文的能力。SalsaNext[5]也是基于編碼-解碼結(jié)構(gòu),由多個殘差塊、dropout 層和池化層構(gòu)成編碼器,并使用像素拖拽層代替了SalsaNet[6]中的轉(zhuǎn)置卷積完成上采樣。點(diǎn)云和圖像特征形式的不同使它們難以直接在同一網(wǎng)絡(luò)下訓(xùn)練,因此需要特殊的方法來提取和融合這2 種數(shù)據(jù)的特征。FusionNet[7]是一種有名的雙模態(tài)網(wǎng)絡(luò)結(jié)構(gòu),以光學(xué)圖像為導(dǎo)向輔助點(diǎn)云完成深度補(bǔ)全,并對局部信息和全局信息加權(quán)求和。但該網(wǎng)絡(luò)有多處交叉相融導(dǎo)致數(shù)據(jù)重復(fù)計算,對于大尺度和高分辨率數(shù)據(jù)特征,模型的內(nèi)存消耗較大。Laser-Net++[8]分別使用獨(dú)立的CNN 網(wǎng)絡(luò)訓(xùn)練點(diǎn)云和圖像,融合由CNN 提取的特征,并傳遞到Laser-Net 中,實(shí)現(xiàn)網(wǎng)絡(luò)端到端的訓(xùn)練。TITAN-Net[9]將4 個神經(jīng)網(wǎng)絡(luò)模塊化,分階段處理單模態(tài)和多模態(tài)特征,將點(diǎn)云語義特征轉(zhuǎn)化為圖像語義特征,通過生成式網(wǎng)絡(luò)融合點(diǎn)云和圖像的初級分割結(jié)果。這些流行的多模態(tài)融合網(wǎng)絡(luò)直接將光學(xué)圖像特征合并到點(diǎn)云特征上,或在解碼器后將分割結(jié)果簡單地中和,沒有將兩模態(tài)的互補(bǔ)優(yōu)勢融合在網(wǎng)絡(luò)訓(xùn)練中。即使在訓(xùn)練中融合了多模態(tài)特征,也往往需要較復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),繁瑣的交叉融合導(dǎo)致信息重復(fù)計算,增加網(wǎng)絡(luò)復(fù)雜度。因此,需要設(shè)計一種簡單的多模態(tài)融合模型,減少數(shù)據(jù)的重復(fù)計算,并通過分析模態(tài)特征優(yōu)勢設(shè)計高效的融合模塊。
對于網(wǎng)絡(luò)參數(shù)的更新和計算,經(jīng)典的優(yōu)化算法是隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)[10],通過迭代優(yōu)化,以逐漸逼近或最小化損失函數(shù)。但是在下降過程中會遇到山谷震蕩和鞍點(diǎn)停滯的問題。為了解決這些問題,Adaptive Moment Estimation(Adam)算法[11]利用慣性保持和環(huán)境感知,自適應(yīng)調(diào)整學(xué)習(xí)率,同時在一階矩估計和二階矩估計中采用指數(shù)衰減平均計算累積梯度和累積平方梯度,并利用融合滑動窗口求平均的思想衰減不同時間長度下的貢獻(xiàn)。AdamBound 算法[12]使用自適應(yīng)上限約束學(xué)習(xí)率,抑制了不穩(wěn)定和異常的學(xué)習(xí)率。Adam-Mod 算法[13]增加了一個新的超參數(shù)來度量記憶的長短,逐元素削減學(xué)習(xí)率,避免出現(xiàn)高學(xué)習(xí)率。但是在這些算法中,對時間記憶的把控是基于同一窗口長度,沒有考慮到不同梯度更新幅度下對窗口長度的需求可能不同,因此需要考慮不同梯度更新幅度下對窗口長度的需求,以進(jìn)一步提高算法的精度。
語義分割任務(wù)要求對像素級別的準(zhǔn)確分類,可以實(shí)時生成具有語義信息的地面和空中視角的標(biāo)簽表示,通常需要使用多種損失函數(shù)來優(yōu)化網(wǎng)絡(luò)參數(shù)。交叉熵?fù)p失[14]是最常用的損失函數(shù)之一,它能夠逐個比對每個像素點(diǎn)并得出平均損失值。平衡交叉熵[15]和Focal Loss[16]是在交叉熵?fù)p失的基礎(chǔ)上發(fā)展而來,分別解決了數(shù)據(jù)集中類別不平衡和難易樣本不平衡的問題。雖然這些損失函數(shù)已經(jīng)被廣泛應(yīng)用于實(shí)際網(wǎng)絡(luò)訓(xùn)練中,但在多模態(tài)網(wǎng)絡(luò)中,損失函數(shù)通常只針對某個模態(tài)支路單獨(dú)使用,對不同模態(tài)下的損失進(jìn)行簡單求和,無法充分利用不同模態(tài)之間的互補(bǔ)優(yōu)勢。因此,在多模態(tài)網(wǎng)絡(luò)中,需要設(shè)計新的損失函數(shù),以有效整合不同模態(tài)的信息。
針對上述問題,提出了一種雙模態(tài)語義分割網(wǎng)絡(luò),將光學(xué)圖像與點(diǎn)云特征相融合。首先,使用SalsaNext 和ResNet34[17]對2 個模態(tài)進(jìn)行并行編碼。其次,改進(jìn)了一種可自適應(yīng)改變滑動窗口記憶長度的優(yōu)化器。然后,在不同編碼階段使用殘差映射和膨脹點(diǎn)注意力機(jī)制的思想多次進(jìn)行特征加權(quán)融合。同時,使用多尺度的密集像素采集模塊增強(qiáng)上下文聯(lián)系,并通過瓶頸結(jié)構(gòu)降低模塊參數(shù)量。最后,提出了一種基于交叉熵?fù)p失的協(xié)同差異損失函數(shù)Differ Loss,能夠有效整合不同模態(tài)的信息,判別模態(tài)間的感知差異,結(jié)合Focal Loss 和Lovász-Softmax Loss[18]一起作為網(wǎng)絡(luò)的總損失值。
本文提出了一種雙模態(tài)并行編碼-解碼的語義分割網(wǎng)絡(luò)(Merge Network,MerNet),旨在融合點(diǎn)云特征和光學(xué)圖像特征以完成駕駛環(huán)境的像素級分類任務(wù)。MerNet 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,由5 部分組成:①主干框架:SalsaNext 是一種相對輕量化的編碼器-解碼器架構(gòu)的網(wǎng)絡(luò)模型,能夠?qū)崿F(xiàn)可靠的語義分割性能。在文獻(xiàn)[19]的語義分割任務(wù)對比中,ResNet 作為解碼器明顯表現(xiàn)出比其他解碼結(jié)構(gòu)更強(qiáng)的性能,結(jié)合對網(wǎng)絡(luò)計算量的權(quán)衡,ResNet34 最適用于本文光學(xué)圖像的編碼任務(wù)。因此,本文使用SalsaNext 作為點(diǎn)云特征支路的語義分割主干網(wǎng)絡(luò),ResNet34 作為圖像特征支路的編碼器網(wǎng)路,解碼器采用雙線性插值進(jìn)行上采樣。② 優(yōu)化器:Adam 和SGD 都是常用的優(yōu)化器,SGD 具有簡單的實(shí)現(xiàn)和更少的計算量,在圖像特征的網(wǎng)絡(luò)訓(xùn)練中優(yōu)先選擇SGD 這種經(jīng)典優(yōu)化器。然而點(diǎn)云特征具有更多的噪聲影響,融合了圖像特征后,點(diǎn)云支路的特征具有高復(fù)雜性,Adam 在梯度下降中考慮了慣性保持和環(huán)境感知,更適用于點(diǎn)云支路模型。因此,對于點(diǎn)云特征支路,以Adam 優(yōu)化器為基礎(chǔ),本文提出了一種自適應(yīng)歷史記憶長度的(AdamWin)優(yōu)化算法,對于圖像特征流,則使用經(jīng)典的隨機(jī)梯度下降法(SGD)進(jìn)行優(yōu)化。③融合模塊:在每個編碼階段,將光學(xué)圖像特征通過融合模塊單向映射在點(diǎn)云特征上,得到融合輸出作為點(diǎn)云流的下一編碼階段的輸入繼續(xù)編碼,從而實(shí)現(xiàn)點(diǎn)云和光學(xué)圖像特征的融合。④ 多尺度上下文模塊:在點(diǎn)云流的編碼器和解碼器之間提出了一種多膨脹尺度密集點(diǎn)云采集的上下文模塊。⑤ 損失函數(shù):提出了一種基于交叉熵的雙模態(tài)協(xié)同差異損失,通過比對2 種模態(tài)在駕駛環(huán)境下的感知差異,并結(jié)合Focal Loss 和Lovász-Softmax Loss 優(yōu)化網(wǎng)絡(luò)參數(shù)。
圖1 雙模態(tài)語義分割網(wǎng)絡(luò)MerNet 的總體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Overall network structure of MerNet,a dual-modal semantic segmentation network
在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,優(yōu)化算法尋找模型表征空間中評估指標(biāo)最優(yōu)的模型是至關(guān)重要的。對于光學(xué)圖像特征流,本文采用基于迭代計算的SGD 優(yōu)化算法,使用隨機(jī)梯度更新權(quán)重。SGD 采用隨機(jī)單個參數(shù)損失梯度近似平均梯度的方法,公式為
式中:θ為模型參數(shù);α為學(xué)習(xí)率;?L(θ)刻畫了參數(shù)為θ時模型的損失梯度。SGD 用隨機(jī)的單個參數(shù)損失梯度近似平均損失梯度,公式為
式中:f代表了模型的實(shí)際輸出;x和y分別代表模型的輸入和輸出。這種運(yùn)算可以大大提高收斂速度,在實(shí)際訓(xùn)練中,為了提高迭代的穩(wěn)定性,采用小批量的梯度下降法(Mini-Batch Gradient Descent,MBGD),利用矩陣運(yùn)算同時處理若干組數(shù)據(jù),公式為
式中:m為每個批次中的樣本數(shù)量,本文訓(xùn)練中設(shè)置為4。
Momentum 在SGD 中引入慣性保持的物理概念,解決山谷震蕩和鞍點(diǎn)停滯的現(xiàn)象。公式為
式中:vt表示當(dāng)前時刻的動量;γ表示衰減系數(shù),可以解釋為物理概念上的阻力;gt表示第t時間步的梯度。使用動量刻畫梯度變化的慣性,震蕩方向的梯度可以在累加的過程中因為符號的相反性被抵消,只有損失衰減方向的梯度逐漸累加,從而實(shí)現(xiàn)更快且更穩(wěn)定的收斂。
SGD 算法使用同樣的步長更新參數(shù),但不同參數(shù)的更新頻率不同,對于密集的特征參數(shù),需要減小步幅;對于稀疏的特征參數(shù),需要增大步幅。因此AdaGrad 采用歷史梯度平方來優(yōu)化學(xué)習(xí)速率的自適應(yīng)性,衡量不同特征參數(shù)的稀疏性。將歷史梯度平方作為分母系數(shù)自適應(yīng)調(diào)整梯度更新步幅,公式為
式中:ε是為防止分母為零的很小的常數(shù);gk為k時刻的梯度向量;gt的系數(shù)由初始設(shè)定的α優(yōu)化為加了歷史經(jīng)驗的自適應(yīng)學(xué)習(xí)速率。
Adam 優(yōu)化算法綜合了Momentum 和AdaGrad 的思想,使用一階矩記錄梯度的慣性保持特性,使用二階矩記錄環(huán)境感知特性,消除梯度震蕩對更新造成的隱患并自適應(yīng)調(diào)整更新步幅。歷史梯度的累加提供了經(jīng)驗性的判斷,但也產(chǎn)生了一定的隱患,累積梯度估計的公式為
累積平方估計的公式為
因此,隨著梯度和梯度平方的累加,代入式(6)中的學(xué)習(xí)速率,分母逐漸增大使得gt的調(diào)節(jié)作用逐漸衰弱。加持在一階矩和二階矩的滑動窗口可以利用衰減系數(shù)降低遠(yuǎn)距離梯度對當(dāng)前計算的貢獻(xiàn)度,公式為
式中:β1和β2分別為累積梯度和累積平方梯度的衰減系數(shù)。衰減系數(shù)可以看作對一階矩和二階矩使用滑動窗口,滑動窗口的大小在整個訓(xùn)練期間取固定時間長度。
圖2(a)是損失函數(shù)隨訓(xùn)練輪數(shù)的變化趨勢,可以發(fā)現(xiàn),損失函數(shù)的下降速度逐漸趨于平緩。圖2(b)假設(shè)在任意時刻對歷史梯度計算采用固定窗口長度L1,這表明在不同的梯度變化趨勢下采用同樣的記憶時間長度,最近鄰時刻的梯度始終在整個衰減過程中呈現(xiàn)出同等價值的貢獻(xiàn)。但在實(shí)際梯度運(yùn)算中,由于損失函數(shù)變化趨勢的不同,gt1-L1對gt1的影響要明顯大于gt2-L1對gt2的影響。為了解決不同梯度變化趨勢下歷史記憶長度對當(dāng)前梯度的影響,圖2(c)在早期損失中取S1點(diǎn),在晚期損失中取S2點(diǎn),顯然S1點(diǎn)對應(yīng)的梯度變化更加劇烈,S2點(diǎn)對應(yīng)的梯度變化比較平緩。分別在這2 點(diǎn)取長度為L1和L2(L1>L2)的2 個滑動窗口。S1由于梯度變化速度快,遠(yuǎn)距離記憶點(diǎn)的梯度值對當(dāng)前時刻的貢獻(xiàn)更大,S2由于梯度變化速度慢,遠(yuǎn)距離記憶點(diǎn)對當(dāng)前時刻的貢獻(xiàn)小。因此在當(dāng)前時刻的梯度計算中,為了更好地調(diào)節(jié)歷史梯度的貢獻(xiàn)值,應(yīng)該隨著梯度變化趨緩而增大最近鄰時刻的梯度貢獻(xiàn)值,同時減小遠(yuǎn)記憶時刻對當(dāng)前時刻梯度的影響權(quán)重,相當(dāng)于縮小圖2 中滑動窗口的大小。
圖2 自適應(yīng)歷史記憶長度隨梯度變化趨勢的變化Fig.2 Variation of adaptive historical memory length with gradient trend
為了實(shí)現(xiàn)這一目標(biāo),本文使用了2 個記憶系數(shù)來調(diào)節(jié)滑動窗口的大小,記憶系數(shù)對衰減系數(shù)的調(diào)整公式為
式中:σ1是累積梯度對應(yīng)對記憶系數(shù);e為網(wǎng)絡(luò)訓(xùn)練的輪數(shù)。累計平方梯度中記憶系數(shù)對衰減系數(shù)調(diào)整的公式為
式中:σ2是累積平方梯度對應(yīng)對記憶系數(shù)。記憶系數(shù)σ1和σ2是略小于1 且極度接近1 的值,每進(jìn)入新的一輪訓(xùn)練衰減系數(shù)β除以一個逐漸減小的記憶系數(shù),因此β隨著輪數(shù)的增加呈現(xiàn)緩慢增大的趨勢,等價于逐步增大近鄰時刻的梯度權(quán)重,衰減遠(yuǎn)記憶時刻的梯度權(quán)重。
點(diǎn)云特征支路的訓(xùn)練使用這種隨梯度變化趨勢自適應(yīng)調(diào)整歷史記憶長度的AdamWin 優(yōu)化算法,具體計算流程如算法1 所示。其中:t是時刻;θ0是初始參數(shù)向量;f(θ)是帶參數(shù)的隨機(jī)目標(biāo)函數(shù);ε是為防止分母為零的常數(shù),取默認(rèn)值1×10-8;λ表示權(quán)重衰減系數(shù);mt是一階矩;vt是二階矩。
自適應(yīng)調(diào)整歷史記憶長度的優(yōu)化算法不僅考慮了歷史梯度,還考慮了梯度在不同變化趨勢下對當(dāng)前梯度運(yùn)算的貢獻(xiàn)變化。通過引入記憶系數(shù),自適應(yīng)調(diào)整遠(yuǎn)記憶時刻的貢獻(xiàn)權(quán)重,使梯度關(guān)注貢獻(xiàn)值更大的近鄰點(diǎn),避免在變化緩慢時被遠(yuǎn)距離記憶點(diǎn)分散計算注意力。
在雙流網(wǎng)絡(luò)的并行編碼中,特征的語義信息隨著編碼的降采樣逐漸變得粗糙,在編碼結(jié)束后或預(yù)測階段的后融合結(jié)構(gòu)難以充分將融合特征引入到網(wǎng)絡(luò)的訓(xùn)練中,因此本文在編碼階段就將圖像特征通過融合模塊單向融入點(diǎn)云特征流中,使圖像的感知優(yōu)勢充分參與點(diǎn)云的訓(xùn)練過程。因此融合模塊考慮了不同階段的語義變化特點(diǎn),使用殘差連接將原始點(diǎn)云輸入映射到初步融合結(jié)果,再通過膨脹點(diǎn)注意力模塊為特征點(diǎn)分配權(quán)重。融合模塊的結(jié)構(gòu)如圖3 所示,其中Clidar和Ccamera分別表示點(diǎn)云和圖像特征的通道數(shù);H表示特征高度;W表示特征寬度。
圖3 融合模塊Fig.3 Fusion module
首先將點(diǎn)云特征和圖像特征進(jìn)行拼接,通過3×3 的卷積使通道數(shù)降為點(diǎn)云的通道數(shù),接著使用非線性激活函數(shù)LeakyReLU,并進(jìn)行批歸一化。膨脹點(diǎn)注意力模塊結(jié)構(gòu)如圖4 所示。采用點(diǎn)注意力機(jī)制[20]結(jié)構(gòu),通過2 次3×3 的卷積、批歸一化、非線性激活函數(shù)ReLU,再通過Sigmoid 進(jìn)行激活,與輸入的特征對應(yīng)點(diǎn)相乘實(shí)現(xiàn)點(diǎn)特征注意力的分配。注意力分配需要判斷各特征點(diǎn)的重要性,因此上下文關(guān)系有利于判斷特征點(diǎn)在附近區(qū)域的價值權(quán)重。
圖4 膨脹點(diǎn)注意力模塊Fig.4 Expanding point attention module
由于數(shù)據(jù)采集視野的開闊性,特征點(diǎn)的判斷需要充分考慮鄰近特征的信息,因此在點(diǎn)注意模塊的2 個3×3 卷積中,為了擴(kuò)大卷積核的感受野,在保持輸入特征尺寸不變的情況下,使用擴(kuò)張率為2 的膨脹卷積,在卷積核的每2 個元素之間插入一個空洞,使得注意力計算的過程結(jié)合更大范圍的上下文內(nèi)容為特征點(diǎn)分配權(quán)重。為了充分利用不同語義粗糙程度的圖像特征,在網(wǎng)絡(luò)的4 個編碼階段均使用一次融合模塊,完成圖像特征單向與點(diǎn)云特征融合,并將融合結(jié)果作為點(diǎn)云特征流的下一編碼階段的輸入?yún)⑴c點(diǎn)云特征的訓(xùn)練。
感受野是指卷積神經(jīng)網(wǎng)絡(luò)中輸出層的每一像素點(diǎn)在輸入層上的映射區(qū)域,小的感受野通常用于描述局部細(xì)節(jié)信息,而大的感受野則通常用于描述全局信息。為了提高語義信息的上下文感知能力,本文在點(diǎn)云特征支路的編碼器之后設(shè)計了一種多尺度感受野的上下文模塊(MsASPP),該模塊將不同卷積層的結(jié)果統(tǒng)一到同一尺寸融合輸出,結(jié)構(gòu)如圖5 所示。
圖5 MsASPP 網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Architecture of MsASPP network
MsASPP 模塊共包含6 條并聯(lián)支路。其中,1×1 的卷積用于緩解膨脹率過大造成有效權(quán)重降低的問題。同時,使用圖像級的池化層捕獲全局語義信息。其余4 條并聯(lián)支路通過卷積操作的不同擴(kuò)張率來調(diào)整感受野。MsASPP 模塊的輸入特征尺寸為16×64,因此可以繼續(xù)沿用經(jīng)典ASPP[3]中的(6,12,18)的擴(kuò)張率,為了得到更多的細(xì)節(jié)語義信息,還增加了擴(kuò)張率為3 的并聯(lián)支路,因此MsASPP 模塊中總共包含了4 個擴(kuò)張率對應(yīng)的感受野。
雖然多膨脹支路可以提供不同的感受野,但是膨脹卷積會使部分有效信息被遺忘。因此,在各膨脹支路中,采用4 次級聯(lián)卷積來覆蓋更多區(qū)域,以獲得密集的像素采集。
然而多膨脹率支路需要大量的計算資源來處理不同感受野下的同類型數(shù)據(jù),因此需要高效的算法和網(wǎng)絡(luò)結(jié)構(gòu)來提升這一模塊的計算效率。卷積層的參數(shù)量只與網(wǎng)絡(luò)結(jié)構(gòu)有關(guān),與輸入數(shù)據(jù)無關(guān),因此本文在各膨脹支路中采用瓶頸結(jié)構(gòu)[21]來壓縮特征尺寸,如圖6 所示。
圖6 瓶頸結(jié)構(gòu)的膨脹支路Fig.6 Bottleneck-based dilated branch structure
卷積計算參數(shù)量的公式為
式中:k是卷積核的尺寸;Cin是輸入通道數(shù);Cout是輸出通道數(shù);bias 是偏置,默認(rèn)設(shè)置為1。瓶頸結(jié)構(gòu)通過1×1 的卷積將通道數(shù)降為1/4,并在輸出前使用1×1 的卷積恢復(fù)通道數(shù)。如表1 所示,使用瓶頸結(jié)構(gòu)后,每一條膨脹支路的卷積參數(shù)降低了69.40%。
表1 膨脹支路使用瓶頸卷積的參數(shù)量比較Table 1 Comparison of parameter amount of dilated convolutional branch with bottleneck convolution
相對于傳統(tǒng)的ASPP 模塊,MsASPP 增加了一條并聯(lián)空洞卷積支路,并且每條支路級聯(lián)了4 次膨脹卷積,仍然縮減了參數(shù)量和計算量,如表2 所示。其中,參數(shù)量降低了64.89%,計算量降低了67.09%。
表2 MsASPP 和ASPP 參數(shù)量和計算量對比Table 2 Comparison of parameter amount and computational complexity between MsASPP and ASPP
在點(diǎn)云和圖像的語義分割任務(wù)中,需要對每個點(diǎn)都進(jìn)行分類預(yù)測,并對所有點(diǎn)的損失值求平均,以求得整個點(diǎn)云和圖像的損失。MerNet 的損失函數(shù)由3 部分組成,分別是Foccal Loss、Lovász-Softmax Loss 和用于計算2 種模態(tài)之間感知協(xié)同差異損失的Differ Loss。
式中:Lf表示Focal Loss 計算得出的損失值;Ls表示Lovász-Softmax Loss 計算得出的損失值;Ld表示Differ Loss 計算得出的損失值;η1、η2、η3表示平衡3 個損失函數(shù)在模型總損失計算中比重的平衡系數(shù)。
Focal Loss 基于二分類交叉熵?fù)p失,通過一個動態(tài)縮放因子平衡難易樣本。它的前景的預(yù)測概率公式為
式中:p∈[0,1]表示模型屬于前景的概率。二分類交叉熵的公式為
平衡交叉熵引入平衡因子解決正負(fù)樣本不平衡的問題,公式為
式中:αt∈[0,1]表示平衡因子,本文取0.75。
Focal Loss 在平衡交叉熵?fù)p失的基礎(chǔ)上增加調(diào)制因子解決難易樣本平衡的問題,公式為
式中:φ∈[0,5]為表示難易樣本的調(diào)制因子。Focal Loss 被分別用于點(diǎn)云和圖像支路,并將2 種模態(tài)的損失值相加作為整體模型Focal Loss計算的損失總和,公式為
式中:Lf表示Focal Loss 計算出的損失總和;FLl表示點(diǎn)云支路的Focal Loss 損失值;FLc表示圖像支路的Focla Loss 損失值。
Lovász-Softmax Loss 是對語義分割指標(biāo)IoU 直接進(jìn)行優(yōu)化的損失函數(shù),公式為
式中:C表示種類數(shù);ΔJc表示第c類的Jaccard 系數(shù);m(c)表示第c個類的誤差向量。
Lovász-Softmax Loss 被分別用于點(diǎn)云和圖像支路,并將2 種模態(tài)的損失值相加作為整體模型Lovász-Softmax Loss 計算的損失總和,公式為
式中:Ls表示Lovász-Softmax Loss 計算出的損失總和;LSl表示點(diǎn)云特征支路的Lovász-Softmax Loss 損失值;LSc表示圖像特征支路的Lovász-Softmax Loss 損失值。
點(diǎn)云和圖像在自動駕駛環(huán)境感知中具有不同的優(yōu)勢,點(diǎn)云在空間的立體結(jié)構(gòu)判斷上表現(xiàn)更優(yōu),而圖像在色彩和細(xì)節(jié)紋理上表現(xiàn)更優(yōu),因此2 種模態(tài)支路的網(wǎng)絡(luò)預(yù)測結(jié)果有所差異。本文通過Differ Loss 交叉?zhèn)鬟fsoftmax 層的預(yù)測概率分布,旨在減小模態(tài)間的預(yù)測差異,利用一種模態(tài)下的感知優(yōu)勢降低另一種模態(tài)在劣勢場景下的預(yù)測誤差。Differ Loss 基于交叉熵?fù)p失,在本文的網(wǎng)絡(luò)結(jié)構(gòu)中解決多分類多標(biāo)簽任務(wù),在一個batch 中,交叉熵?fù)p失的計算公式為
式中:B表示batch size(單次訓(xùn)練抓取的數(shù)量);n表示類別數(shù);y表示真實(shí)標(biāo)簽;表示softmax 層的預(yù)測概率。交叉熵?fù)p失將每個像素類別的預(yù)測結(jié)果分別與真實(shí)標(biāo)簽進(jìn)行比較,得出損失值,并對所有像素點(diǎn)損失值求平均。
為了計算2 種模態(tài)的感知差異,本文采用一種逐像素比較的方法。具體而言,將真實(shí)標(biāo)簽替換為另一模態(tài)的預(yù)測概率分布,Differ Loss 逐個檢查每個像素點(diǎn),依次比對2 種模態(tài)下的每個概率分布。其中,以點(diǎn)云支路為基準(zhǔn)模態(tài),圖像支路為對比模態(tài),感知差異損失的計算公式為
以圖像支路為預(yù)測基準(zhǔn),點(diǎn)云支路為對比標(biāo)簽,感知差異損失的計算公式為
協(xié)同差異損失總和是分別以點(diǎn)云和圖像為基準(zhǔn)模態(tài)時的損失和,計算公式為
點(diǎn)云特征為語義提供了更精準(zhǔn)的空間信息,圖像特征為語義提供更多的色彩和細(xì)節(jié)信息,2 種模態(tài)的感知能力互補(bǔ),但并不是完全對立。因此,在協(xié)同差異損失中,應(yīng)當(dāng)考慮2 種模態(tài)對語義判斷的貢獻(xiàn),增加平衡系數(shù)調(diào)整不同模態(tài)的損失占比,公式為
式中:ρ1和ρ2分別表示平衡以點(diǎn)云和圖像為基準(zhǔn)模態(tài)的協(xié)同差異損失值的平衡系數(shù)。
本文通過枚舉實(shí)驗得出ρ1和ρ2平衡系數(shù)為1.0、2.4,且3 種損失函數(shù)在總損失中的平衡系數(shù)η1、η2、η3分別為1、1、0.5 時網(wǎng)絡(luò)的語義分割性能最佳。
1)實(shí)驗平臺:本文采用Ubuntu 20.04.01 操作系統(tǒng),搭配NVIDIA GeForce RTX 3090 的圖像處理器(GPU),內(nèi)存為24 G,cuda 版本11.6,torch 版本為1.12.1。
2)數(shù)據(jù)集:為了評估2 種模態(tài)特征融合的效果,使用公開多模態(tài)數(shù)據(jù)集SementicKITTI[22]。該數(shù)據(jù)集共包含19 個語義類別,其中包括靜態(tài)類別目標(biāo)如道路、植被、柵欄、建筑、路標(biāo)等,以及動態(tài)類別目標(biāo)如汽車、摩托車、卡車、行人等。駕駛環(huán)境包括市中心、郊區(qū)、鄉(xiāng)村、高速公路等。數(shù)據(jù)集采集的場景共包含22 個數(shù)據(jù)包,序列分別為00-21,每個數(shù)據(jù)包中都包含點(diǎn)云和圖像數(shù)據(jù)。其中00-10 包含數(shù)據(jù)真實(shí)標(biāo)簽,本文使用序列為08 的數(shù)據(jù)包作為驗證集,其余00-10 內(nèi)的數(shù)據(jù)包作為訓(xùn)練集。
3)參數(shù)設(shè)置:使用Pytorch 框架實(shí)現(xiàn),點(diǎn)云和圖像支路分別以Salsanext 和ResNet34 作為主干網(wǎng)絡(luò)。使用了AdamWin 和SGD 這2 種優(yōu)化器,設(shè)置學(xué)習(xí)率預(yù)熱(warm_up)為1 輪,學(xué)習(xí)率設(shè)為0.000 1,并采用余弦衰減。共進(jìn)行了30 輪訓(xùn)練,同時設(shè)置了4 個線程,batch size 設(shè)為4。
4)評價指標(biāo):為評估本文提出的網(wǎng)絡(luò)結(jié)構(gòu)和算法的優(yōu)越性,采用平均交并比(mean Intersection over Union,mIoU)來作為語義分割結(jié)果的衡量標(biāo)準(zhǔn)。該指標(biāo)是對數(shù)據(jù)集中每一種類別的網(wǎng)絡(luò)預(yù)測與真實(shí)標(biāo)簽的交并比的平均,是語義分割領(lǐng)域的標(biāo)準(zhǔn)度量。
為了評估本文提出的網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法,在性能比較中與其他流行的單模態(tài)和多模態(tài)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了對比。其中,單模態(tài)網(wǎng)絡(luò)包括SqueezesegV3、RangeNet53++、SalsaNext等,多模態(tài)網(wǎng)絡(luò)包括KPRNet 和HiFANet。具體語義分割結(jié)果如表3[5,23-30]所示,最優(yōu)分割結(jié)果用粗體表示。在與單模態(tài)和多模態(tài)網(wǎng)絡(luò)分割結(jié)果對比中,可以明顯觀察到本文提出的Mar-Net 雙模態(tài)網(wǎng)絡(luò)在分割性能上具備優(yōu)勢,并相比于雙模態(tài)網(wǎng)絡(luò)KPRNet 和HiFANet 分別有0.6%和1.7%的分割優(yōu)勢。MerNet 結(jié)合了注意力機(jī)制和多模態(tài)感知的優(yōu)勢,在自動駕駛環(huán)境中對移動靈活、危險系數(shù)高的目標(biāo)給予更大的計算注意力,并在單個類別的分割上也表現(xiàn)出較好的性能。從表3 中可以看出,盡管靜態(tài)目標(biāo)的性能沒有達(dá)到最優(yōu)水平,但與其他網(wǎng)絡(luò)相比,并沒有顯著的性能差異。僅有一個明顯的分割劣勢出現(xiàn)在“other-ground”類別上。在SemantiKITTI 數(shù)據(jù)集的論文中,“other-ground”被解釋為“當(dāng)人行道和地形之間的區(qū)別不明顯時選擇此標(biāo)簽”。因此,這個類別被視為無法明確分類為其他道路歸屬類型時的選擇。在本文的網(wǎng)絡(luò)訓(xùn)練中,該類別以40.3%的概率分類為“sidewalk”,而其余的概率分布在其他道路類型和靜態(tài)物體之間。這樣的分類結(jié)果不會對駕駛時的決策產(chǎn)生額外的安全風(fēng)險,特別是將更多的計算注意力集中在危險系數(shù)更高的動態(tài)目標(biāo)物上,這更符合對安全性判斷的需要。因此,靜態(tài)目標(biāo)微弱的性能劣勢是可以接受的。圖7 通過混淆矩陣的形式描述了動態(tài)高危險性目標(biāo)的分割精度,將數(shù)據(jù)集中的靜態(tài)目標(biāo)統(tǒng)稱為“static”??梢钥闯?,MerNet 在動態(tài)目標(biāo)的分割上表現(xiàn)出良好的性能,一定程度上增加了自動駕駛的安全性能。然而,圖7 的結(jié)果顯示,motorcyclist 類別有94%的概率被分類為bicyclist,這2 個目標(biāo)具有非常相似的特征。在文獻(xiàn)[22]中,SemanticKITTI 數(shù)據(jù)集未明確考慮騎摩托車或自行車的騎手類別,因此motorcyclist 被識別為bicyclist 是正?,F(xiàn)象,并且在實(shí)際的駕駛環(huán)境中需要對motorcyclist 和bicyclist 做出的決策判斷幾乎相同,因此不會增加更多的安全隱患,這樣的分類結(jié)果是可以接受的。
圖7 動態(tài)目標(biāo)的混淆矩陣分析Fig.7 Analysis of confusion matrix for dynamic object detection
為了更直觀地描述MarNet 的分割效果,圖8展示了MarNet 在幾個經(jīng)典分割場景中的表現(xiàn)。通過可視化的分割圖,可以觀察到MerNet 在光線條件不良的樹蔭區(qū)域、快速運(yùn)動的車輛、行走的路人、目標(biāo)物堆疊造成遮擋的情況、停車位上的車輛和警示牌等目標(biāo)物的分割中,都能展現(xiàn)出較好的效果。
圖8 MerNet 在經(jīng)典場景中的語義分割性能表現(xiàn)Fig.8 Semantic segmentation performance of MerNet in classic scenes
為了驗證提出的每一種網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法的有效性,進(jìn)行了消融實(shí)驗。表4 中的消融實(shí)驗結(jié)果分別展示了各模塊對MerNet 的貢獻(xiàn)。表中:AdamWin 表示點(diǎn)云支路使用提出的自適應(yīng)記憶窗口長度的優(yōu)化算法,否則使用通用的Adam優(yōu)化算法;融合模塊是使用膨脹點(diǎn)注意力機(jī)制和殘差映射的融合,否則只對點(diǎn)云和圖像特征直接拼接;MsASPP 是指提出的多尺度感受野的上下文模塊;Differ Loss 是指使用了提出的協(xié)同差異損失函數(shù),否則網(wǎng)絡(luò)中只有Focal Loss 和Lovász-Softmax Loss。從消融實(shí)驗結(jié)果可以看出,各模塊對整體網(wǎng)絡(luò)的語義分割性能都產(chǎn)生了提升效果。圖9 展示了MerNet 中各模塊的消融實(shí)驗語義分割性能表現(xiàn)。
表4 各模塊的消融實(shí)驗結(jié)果Table 4 Ablation experiments on each module
圖9 各模塊和算法消融實(shí)驗的語義分割性能表現(xiàn)Fig.9 Semantic segmentation performance analysis of each module and algorithm in ablation experiments
此外,為了驗證提出的融合模塊中每個網(wǎng)絡(luò)結(jié)構(gòu)的有效性,同樣對注意力機(jī)制的使用、殘差映射和膨脹點(diǎn)注意力做了消融實(shí)驗,結(jié)果如表5所示。表中:簡單融合指融合模塊只進(jìn)行了初步的特征拼接和卷積;注意力是指在初步融合后引入了點(diǎn)注意力機(jī)制;殘差映射表示在點(diǎn)注意力模塊前連接原始點(diǎn)云殘差連接;膨脹注意力表示在點(diǎn)注意力中的2 個3×3 卷積處使用了擴(kuò)張率為2 的膨脹卷積。消融實(shí)驗結(jié)果顯示,融合模塊中的3 個結(jié)構(gòu)設(shè)計都對融合效果有著性能提升的作用。
表5 融合模塊各結(jié)構(gòu)的消融實(shí)驗結(jié)果對比分析Table 5 Comparative analysis of ablation experiments on various structures in fusion module
1)采用SalsaNext 和ResNet34 分別作為點(diǎn)云和光學(xué)圖像的主干網(wǎng)絡(luò)并行處理特征。
2)基于Adam 改進(jìn)了一種自適應(yīng)歷史記憶長度的AdamWin 優(yōu)化算法,能夠根據(jù)梯度變化趨勢改變歷史梯度的記憶權(quán)重,在梯度趨緩的過程中增強(qiáng)近距離點(diǎn)對梯度計算的貢獻(xiàn)值。
3)基于殘差映射和膨脹點(diǎn)注意力的融合模塊被用于每一個編碼階段,加強(qiáng)了點(diǎn)云訓(xùn)練分支對更精細(xì)細(xì)節(jié)和紋理信息的提取。
4)基于ASPP 改進(jìn)了上下文模塊MsASPP,增加的并聯(lián)膨脹支路以及級聯(lián)空洞卷積,增強(qiáng)了點(diǎn)云的上下文感知信息能力,各支路采用瓶頸結(jié)構(gòu)降低網(wǎng)絡(luò)參數(shù)量。
5)基于交叉熵?fù)p失的多模態(tài)協(xié)同損失函數(shù),交叉?zhèn)鬟f不同模態(tài)間的預(yù)測標(biāo)簽,增強(qiáng)了不同模態(tài)在特定環(huán)境下的感知優(yōu)勢,避免了單一傳感器的感知劣勢使結(jié)果產(chǎn)生較大誤差。
本文主要改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)化算法和損失函數(shù),實(shí)驗結(jié)果表明這些改進(jìn)都提高了網(wǎng)絡(luò)的語義分割性能。然而,多模態(tài)網(wǎng)絡(luò)往往會伴隨著模型復(fù)雜度較高的問題,因此本文在上下文模塊MsASPP 中考慮了壓縮參數(shù)量,并將在未來的工作中考慮對網(wǎng)絡(luò)的整體結(jié)構(gòu)進(jìn)行輕量化處理。