金祖亮,隗寒冰,Zheng Liu,2,婁 路,鄭國峰
(1. 重慶交通大學機電與車輛工程學院,重慶 400074;2. University of British Columbia Okanagan, Kelowna, BC, Canada)
自動駕駛汽車高度依賴于自車對場景的理解,例如濕滑地面檢測[1]、交通標志檢測[2]和障礙物檢測等。在環(huán)視多相機語義分割任務中,前期研究基于DeepLap[3]、UNet[4]等單目相機分割得到2D 目標,然后采用跨相機后處理方式將分割結果投影至統一車身坐標系下獲得3D 輸出[5]。這類方法不能跨視圖處理特征,分割結果容易受到環(huán)境影響而出現歧義,嚴重影響語義分割準確度。建立統一的鳥瞰圖(BEV)矢量空間提取多視圖相機內的特征已成為了當前代替單目后處理方式的主流方向。
建立統一矢量空間完成BEV 環(huán)視感知任務,需要網絡能夠在特征提取階段之后完成透視圖到BEV的轉換。Philion 等[6]提出LLS(lift splat shoot)網絡,該方法能顯式預測出每個像素點深度的離散分布和上下文向量,從而通過離散分布和向量間內積確定沿相機射線方向上特征點的深度,然后結合相機參數將2D 特征提升到了統一3D 空間,最后借鑒PointPillars[7]中的體柱方法將特征解碼得到分割結果。Hu 等[8]在LLS 的基礎上提出了FIERY 網絡,該方法在LLS 基礎上有效地融合了時間序列,進一步提升了分割效果。Huang 等[9]也按照LLS 的視圖轉換方法完成了3D 目標檢測任務。上述基于深度估計的方法隨著感知距離增加,深度估計精度也會隨之下降,并且逐點估計的偽點云方法會占用大量計算資源,導致推理時間長、速度慢,難以實時地完成自動駕駛感知任務。Pan 等[10]提出VPN 網絡采用兩層感知機(multi-layer perceptron,MLP),通過映射方式將透視圖特征轉化為BEV 特征。Li 等[11]提出的HDMapNet 網絡同樣采用MLP 的方式完成視圖轉換,為了確保轉換有效性,該網絡還將BEV 特征重投影回透視圖,以對轉換結果進行檢查?;贛LP的方法速度雖然有所提升,但仍然沒有使用相機內參作為幾何先驗以及缺乏深度信息。Zhou 等[12]提出基于Transformer[13]完成視圖轉換的CVT 網絡,該網絡通過構建BEV 查詢(query),采用交叉注意力(cross attention)完成與圖像特征之間的查詢,且圖像特征添加了由相機參數計算得到的位置嵌入以提供較好的先驗。由于語義分割任務采用BEV 網格這種密集的查詢來完成BEV 下的分割,但網絡復雜度和計算量與BEV 查詢的分辨率和透視圖特征分辨率相關,因此網絡采用縮小分辨率的方式來減少計算量,提高推理時間。Li 等[14]提出的BEVFormer利用了可形變注意力機制用于BEV 分割,使注意力關注在BEV 重投影透視圖的相關稀疏位置以減少計算量。Chen 等[15]提出的GKT 利用幾何先驗引導注意力聚集在2D參考點的核區(qū)域,并且建立BEV和2D 的查找表用于快速推理?;赥ransformer 的方法能更好地完成視圖轉換且模型權重擁有強數據關聯性,相比基于深度估計和MLP 的方法具有更好的魯棒性和精度。盡管基于Transformer的方法達到了當前最佳的檢測精度和計算速度,但其計算量仍然較大,模型推理速度高度依賴于高算力GPU。
針對上述問題,本文中提出一種輕量型實時BEV 語義分割模型,以完成對自動駕駛場景中道路邊緣、車道線和人行橫道線的分割。本文提出的BEV語義分割模型包含3個關鍵設計:
(1)借鑒特征金字塔(feature pyramid networks,FPN[16])思想對輕量型骨干網絡EdgeNeXt[17]進行改進,以完成對多尺度特征的提??;
(2)構建交叉視圖轉換編碼器來完成透視圖特征到BEV特征轉換;
(3)提出了一種局部窗口交叉注意力方式,由此完成視圖轉換,以解決視圖轉化中全局查詢帶來的計算量大的問題。
本文提出的網絡整體結構如圖1 所示。骨干網絡采用改進的EdgeNeXt 網絡,基本思想是在EdgeNeXt 基礎上添加殘差塊[18]的方式構建特征金字塔來捕獲全局和局部信息,完成特征提取和融合。交叉視圖轉換編碼器用于透視圖特征到BEV 特征的轉換,編碼器包含BEV 局部窗口查詢向量構建、局部窗口交叉視圖注意力。BEV 特征解碼器用于BEV 特征解碼,從而輸出分割結果,解碼器借鑒FCN[19]網絡,通過多個上采樣殘差塊(upsample block)得到分割結果。
圖1 網絡整體結構
在骨干特征提取網絡上,本文中設計了一種改進型EdgeNeXt 網絡。EdgeNeXt 作為一種快速推理的混合神經網絡,結合了卷積神經網絡CNN 和Transformer 模型的優(yōu)勢,能夠有效地學習局部和全局信息。同時為了增強模型的表現力,獲取更多的上下文信息,骨干網絡通過構建特征金字塔來聚合多尺度特征。
1.2.1 骨干網絡改進
如圖2(a)中骨干網絡整體框架所示,EdgeNeXt模型包含4 個Stage 模塊。除Stage1 外,所有的模塊都包含一個下采樣、多個卷積編碼器和一個深度轉置編碼器。為了減少冗余的位置編碼帶來的推理速度下降,僅需在第一個深度轉置編碼器前,即Stage2模塊內添加一次位置編碼。
圖2 骨干網絡結構
特征金字塔如圖2 中的黃框所示,金字塔搭建在Stage 2、3、4的輸出上,圖像經過多個Stage得到寬高下采樣8 倍、16 倍、32 倍的特征圖。對Stage 2 的輸出下采樣2 倍,Stage 4 的輸出上采樣2 倍率,同時與Stage 3 的輸出拼接,拼接結果通過一個殘差塊聚合特征。高層特征和淺層特征在通過殘差塊融合,進一步增強了特征的表達能力。骨干網絡的金字塔的輸出,分別為寬高下采樣32倍和下采樣16倍大小的特征圖。
1.2.2 卷積編碼器
受到MobileNet[20]和ConvNeXt[21]啟發(fā),卷積編碼器由一系列深度可分離卷積和殘差連接組成,深度可分離卷積由深度卷積和逐點卷積組成。對應不同的骨干網絡模塊,深度卷積采用不同的卷積核大小來提取特征,同時使用正則化和高斯誤差線性單元(GeLU)非線性激活特征映射,如式(1)所示。
式 中:xi∈RH×W×C為輸 入特征 圖;xi+1∈RH×W×C為輸出特征圖;Pw為逐點卷積;Dw為深度卷積;N為正則化;G為GeLU激活函數。
1.2.3 深度轉置注意力編碼器
深度轉置注意力編碼器由兩個基本模塊組成。在第1個模塊內,輸入由通道方向被切分為均等的4個子集,每個子集由上一個子集的輸出特征融合后,再通過3×3大小的深度可分離卷積得到,最終將4個子集拼接后得到不同空間級別的多尺度感受野特征。模塊2 通過轉置注意力編碼全局圖像特征表示,不同于傳統多頭自注意力對空間維度的外積計算,轉置注意力對跨通道維度外積,從而生成全局表示的潛在表達注意力特征圖。具體步驟如下。
(1) 將輸入特征圖轉化為序列向量,通過一個線性投射層得到查詢(Query,Q)、鍵(Key,K)和值(Value,V),即
式中:M為線性投射層;Xp為圖像特征,Xp∈RC×H×W。
(2)Q的轉置和K點乘計算并通過softmax 歸一化后和V相乘得到自注意力圖,即
(3) 將得到的注意力圖與輸入殘差連接并將序列向量變換回特征圖,如式(4)所示。
式中:Xo∈RC×H×W為輸出特征圖;R為resize操作。
為了實現透視圖特征到BEV 特征的轉換,CVT網絡提出了交叉注意視圖模塊,該方法構建的BEV查詢與全部視圖進行交叉注意力操作,帶來了一定的計算資源消耗。本文在此基礎上提出的交叉視圖轉換器通過將BEV 網格劃分為多個窗口,窗口內的BEV 查詢僅和自身感興趣視圖完成交叉注意力,這種方式能夠為窗口內的查詢提供顯式的指引,帶來一定的性能提升,并且有效地降低模型計算量。
1.3.1 BEV局部窗口查詢構建
將環(huán)視透視圖特征F∈RN×H×W×C轉換為BEV特征G∈RX×Y×C,H和W為像素大小,X和Y為網格大小,BEV 網格長度由感知距離與分辨率決定。為了減少交叉注意力計算的復雜度,模型先下采樣BEV 網格尺寸,在完成視圖轉換后再通過上采樣殘差塊還原BEV 原始大小。然后根據相機的內外參將BEV 網格投影至圖像坐標系,并結合相機視角場(field of view,FOV),得出組成環(huán)視的6 個相機在BEV下的FOV,如圖3所示。
圖3 視圖FOV
針對不同相機視圖FOV 區(qū)域存在重疊,可根據相機視角FOV 確定BEV 網格內所有網格點所關聯的視圖。將BEV 網格劃分為多個窗口,窗口內的網格查詢只與該窗口對應的感興趣視圖進行交叉注意力。如圖4 所示,本文將BEV 網格劃分為4 個窗口,每個窗口會與3 個視圖進行交叉注意力,如深藍色窗口對應的FOV則為前視、左前視、左后視。
圖4 BEV窗口對應視圖
1.3.2 交叉視圖注意力
BEV 坐標Xw通過相機內外參可以轉化為圖像坐標XI,計算公式如下:
式中:u、v為圖像坐標;d為深度;I為相機內參矩陣;E為相機外參矩陣。
由上式可知,BEV 坐標能夠通過內外參重投影回透視圖坐標系。與之相反,由于缺少深度d,透視圖坐標難以轉換至BEV坐標系下。
本文通過構建透視圖像反投影的BEV 坐標和BEV 網格坐標之間的余弦相似度完成交叉注意力,從而隱式學習圖像深度完成視圖轉換。
交叉視圖注意力具體實現過程如下。
(1) 根據透視特征圖大小,構建特征圖的反投影索引,并通過線性投射層得到Key,即
式中:Key∈Rn×hw×d;E為相機外參;I-1為相機內參的逆;M為線性投射層。
(2) 透視圖特征經過線性投射層得到Value,即
其中Value∈Rn×hw×d
(3) BEV 查詢Q、反投影K和圖像特征V之間完成交叉注意力,如式(10)所示。
1.3.3 局部窗口交叉注意力
通過構建BEV 查詢和所有視圖之間的交叉注意力,即可以實現透視圖到BEV 的特征轉換。然而BEV 查詢的網格點并不與所有視圖都關聯,該方式計算量如式(11)所示。本文提出的局部窗口交叉注意力如圖5 所示,通過將查詢劃分為局部4 個窗口,每個局部窗口與3 個關聯視圖進行交叉注意力,局部窗口交叉注意力的計算量僅為全局交叉注意力一半,計算量如式(12)所示。通過建立窗口查詢和關聯視圖之間的交叉注意力不僅能有效減少計算量,還能夠指導BEV查詢關注正確的局部區(qū)域。
圖5 局部窗口交叉注意力
式中:F為計算量;n為視圖數量;xy為BEV 查詢網格總數;hw為透視圖像素數;C為注意力通道數。
BEV 特征解碼器由上采樣殘差塊和分割頭組成,交叉視圖轉換編碼器得到的BEV 特征圖通過上采樣殘差塊進一步提高BEV 分辨率,最終通過分割頭解碼得到圖像語義分割結果。
圖像原始尺寸為1600×900,被調整到128×352作為網絡輸入。BEV網格X軸范圍為[-30 m,30 m],Y軸范圍為[-15 m,15 m],間隔為0.15,BEV 分辨率為400×200。BEV 查詢8倍下采樣后,BEV 網格查詢大小為50×25。模型訓練時采用AdamW 優(yōu)化器,初始學習率為1e-4,權重衰減為1e-7。模型框架使用Pytorch1.12.1+Cuda11.6。模型使用的硬件為Intel i5-13600kf CPU, GeForce RTX 4090 GPU,32 GB 內存,操作系統為Ubuntu22.04。
圖6為本文方法在晴天、雨天和黑夜3種不同能見度場景下的推理結果。如圖6(a)所示,晴天場景下特征非常明顯,模型能有較好的分割結果,精確度最高且尺度基本一致。雨天場景下能見度下降,且由于雨水落在車道上導致部分靜態(tài)車道特征變化,雨天分割結果精度下降。但本文方法在雨天環(huán)境仍有相對較好的分割精度,如圖6(b)所示,紅色框對應的道路邊緣區(qū)域在預測圖中也能被很好地分割。黑夜場景下,能見度不足導致模型難以提取出有效的特征,并且對遠距離的目標分割存在一定難度,因此通常難度遠大于晴天和雨天場景。圖6(c)紅色框內區(qū)域為左轉路口,在透視圖像中的特征不明顯,容易被認定為直行區(qū)域,從而使模型推理困難。但本文方法仍能對此做出合理的推理,強大的骨干特征提取網絡能夠有效利用局部特征,從而認定道路邊緣分割存在向左趨勢。可以認為,本文所提方法在不同能見度場景下都能有著不錯的分割結果。
圖6 模型推理結果
為了驗證改進型EdgeNeXt 骨干網絡和局部窗口交叉注意力對模型性能的影響,對EdgeNeXt 骨干網絡、金字塔結構、局部窗口交叉注意力進行多組消融實驗。初始模型為骨干使用EfficientNet-B0 的CVT方法,實驗結果如表1所示。
表1 消融實驗結果
由表1 可知,模型骨干網絡改進和局部窗口交叉注意力方式都能有效地提升模型的分割性能。具有Transformer 全局信息和CNN 局部信息捕獲能力的改進型EdgeNext 相比較初始模型的EfficientNet-B0,能夠以相同的推理時間達到更好的分割性能。同時在基本不增加推理延遲的情況下,局部窗口交叉注意力使BEV 查詢落在感興趣區(qū)域內,有效地提升了推理速度。在少量增加推理延遲情況下平均IoU提升近5%,實現了對車道線、人行橫道和道路邊緣的分割,證明了本文方法的有效性。
本文的方法在nuScenes[22]驗證集上與其他方法的實驗結果對比如表2所示。
表2 語義分割結果
由表2 可知,本文提出的方法在各項子任務中超過了目前表現最好的HDMapNet 方法,IoU 分別提升1.6%、2.1%和2.9%,平均IoU 提升2.2%。圖7為本文方法與LLS、HDMapNet 對比結果??梢钥闯霰疚姆椒▽h處目標有著更好的分割結果,且在部分局部細節(jié)上遠遠優(yōu)于其他方法,如圖7 所示紅色圓框區(qū)域。表2 中列出了不同方法的具體量化指標,與目前計算量最少模型GKT 相比,本文方法計算量僅為其51.2%,推理速度提高58.2%,也是表中FPS值唯一超過100的方法。
車輛實際工作中相機可能因接觸不良、相機故障等導致相機離線。為驗證在特殊工況下模型的魯棒性,本文進行了僅有前視和后視圖像輸入條件下的算法驗證。本文提出的方法提取前視和后視的特征,通過局部窗口交叉注意力模型轉換到BEV 視圖,如圖8 所示。根據前視和后視FOV 在本文方法的圖上分別繪制兩條FOV 虛線,前視和后視的靜態(tài)車道線被成功分割出來且位于虛線內,虛線外的其他視圖由于缺少輸入并未被分割。相比之下,HDMapNet 的視圖轉換模塊MLP 卻將部分前后視圖特征轉換至虛線區(qū)域外,且位于前后視圖內的區(qū)域分割結果也不理想??梢哉J為,本文方法在缺少其他視圖情況下,仍能對前視和后視FOV 內的靜態(tài)車道線準確推理,而HDMapNet 均推理失敗,說明本文方法更具魯棒性,在多個車載相機離線情況下仍然有較好的推理結果。
圖8 離線工況模型對比
(1) 為解決多相機帶來的計算量上升問題,本文提出基于局部窗口交叉注意力的輕量型語義分割方法,通過采用改進型EdgeNeXt 骨干網絡和局部窗口交叉注意力使推理達到106 FPS,速度比GKT 模型提高58.2%,滿足自動駕駛實時需求。
(2) 通過改進型骨干網絡提取特征,并使用局部窗口交叉注意力完成對跨相機透視圖之間的特征轉換,使注意力查詢落在感興趣透視圖上,以減少計算量并提高模型的分割性能。
(3) 與HDMapNet模型相比,平均IoU提高2.2%,達到了35.1%;進行了相機離線工況實驗,能夠有效轉換對應的透視圖,且分割結果位于視圖FOV 內,表明本文方法具有更好的分割性能和魯棒性。