在自動駕駛系統當中,感知任務是整個自駕系統中至關重要的組成部分。感知任務的主要目標是使自動駕駛車輛能夠理解和感知周圍的環境元素,如行駛在路上的車輛、路旁的行人、行駛過程中遇到的障礙物、路上的交通標誌等,從而幫助下游模組做出正確合理的決策和行為。在一輛具備自動駕駛功能的車輛中,通常會配備不同類型的信息採集感測器,如環視相機感測器、雷射雷達感測器以及毫米波雷達感測器等等,從而確保自動駕駛車輛能夠準確感知和理解周圍環境要素,使自動駕駛車輛在自主行駛的過程中能夠做出正確的決斷。
目前,基於純影像的視覺感知方法相對於基於雷射雷達的感知演算法具有更低的硬體成本和部署成本,因此受到了工業界和學術界的廣泛關注。已經湧現了許多出色的視覺感知演算法,用於實現3D目標感知任務和BEV場景下的語義分割任務。雖然現有的3D目標感知演算法在偵測效能方面已經取得了顯著進展,但在實際應用中仍存在一些問題逐漸顯露出來:
基於上述提到的相關問題,柵格佔用網路(Occupancy Network)感知演算法被提出。本質上而言,Occupancy Network感知演算法是基於3D空間場景的語意分割任務。基於純視覺的Occupancy Network感知演算法會將目前的3D空間劃分成一個個的3D體素網格,透過自動駕駛車輛配備的環景相機感測器將所擷取的環視圖像送入網路模型中,經過演算法模型的處理和預測,輸出當前空間中每個3D體素網格的佔用狀態以及可能包含的目標語義類別,從而實現對於當前3D空間場景的全面感知。
近年來,基於Occupancy Network的感知演算法因其更好的感知優勢而受到了研究者們的廣泛關注,目前已經湧現出了很多優秀的工作用於提升該類演算法的檢測性能,這些論文的大概思路方向為:提出更加魯棒的特徵提取方法、2D特徵向3D特徵的坐標變換方式、更加複雜的網絡結構設計以及如何更加準確的生成Occupancy真值標註幫助模型學習等等。然而許多現有的Occupancy Network感知方法在模型預測推理的過程中都存在著嚴重的計算開銷,使得這些演算法很難滿足自動駕駛即時感知的要求,很難上車部署。
我們提出了一種創新的Occupancy Network預測方法,與目前的領先感知演算法相比,我們的FastOcc演算法具有即時的推理速度和優異的檢測性能。透過下圖可以直觀地比較我們提出的演算法與其他演算法在效能和推理速度上的差異。
FastOcc演算法和其他SOTA演算法的精確度和推理速度比較
論文連結:https://arxiv.org/pdf/2403.02710.pdf
為了提高Occupancy Network感知演算法的推理速度,我們分別從輸入影像的解析度、特徵提取主幹網路、視角轉換的方式以及柵格預測頭結構四個部分進行了實驗,透過實驗結果發現,柵格預測頭中的三維卷積或反捲積具有很大的耗時最佳化空間。基於此,我們設計了FastOcc演算法的網路結構,如下圖所示。
FastOcc演算法網路結構圖
整體而言,所提出的FastOcc演算法包含三個子模組,分別是Image Feature Extraction用於多尺度特徵擷取、View Transformation用於視角轉換、Occupancy Prediction Head用於實現感知輸出,接下來我們會分別介紹這三個部分的細節。
對於提出的FastOcc演算法而言,網路輸入依舊是採集到的環視圖像,這裡我們採用了ResNet的網路結構完成環視圖像的特徵提取過程。同時,我們也利用了FPN特徵金字塔結構用於聚合主幹網路輸出的多尺度影像特徵。為了後續的表達方便,這裡我們將輸入影像表示為,經過特徵擷取後的特徵表示為。
視角轉換模組的主要作用就是完成2D影像特徵轉換到3D空間特徵的過程,同時為了降低演算法模型的開銷,通常轉換到3D空間的特徵會進行粗糙的表達,這裡為了方便表示,我們將轉換到3D空間的特徵標記為,其中代表嵌入特徵向量的維度,代表感知空間的長度、寬度和高度。在目前的感知演算法當中,主流的視角轉換過程包括兩類:
考慮到LSS演算法具有更好的推理速度和效率,在本文中,我們採用了LSS演算法作為我們的視角轉換模組。同時,考慮到每個像素位置的離散深度都是估計出來的,其不確定性一定程度上會限制模型最終的感知性能。因此,在我們的具體實現中,我們利用點雲資訊來進行深度方向上的監督,以實現更好的感知結果。
#在上圖展示的網路結構圖中,柵格預測頭也包含三個子部分,分別是BEV特徵提取、影像特徵插值取樣、特徵整合。接下來,我們將逐一介紹三部分的方法的細節。
目前,大多數的Occupancy Network演算法都是對視角轉換模組所得到的3D體素特徵進行處理。而處理的形式一般是三維的全卷積網絡。具體而言,對於三維全卷積網路的任一層,其對輸入的三維體素特徵進行卷積所需的計算量如下:
其中,和分別代表輸入特徵和輸出特徵的通道數量,代表特徵圖空間大小。相較於直接在3D空間中處理體素特徵,我們採用了輕量級的2D BEV特徵卷積模組。具體而言,對於視角轉換模組的輸出體素特徵,我們首先將高度資訊和語義特徵進行融合得到2D的BEV特徵,其次利用2D全卷積網絡進行特徵提取得到BEV特徵,該2D過程的特徵提取過程的計算量可以表述成如下的形式
透過3D和2D處理過程的計算量比較可以看出,透過利用輕量化的2D BEV特徵卷積模組來取代原有的3D體素特徵提取可以大大減少模型的計算量。同時,兩類處理過程的視覺化流程圖如下圖所示:
#2D FCN和3D FCN網路結構的視覺化情況
為了減少柵格預測頭模組的計算量,我們將視角轉換模組輸出的3D體素特徵的高度進行壓縮,並利用2D的BEV卷積模組進行特徵提取。但為了增加缺失的Z軸高度特徵資訊並秉持著減少模型計算量的想法出發,我們提出了影像特徵插值取樣方法。
具體而言,我們首先根據需要感知的範圍設定對應的三維體素空間,並將其分配到ego座標系下,記作。其次,利用相機的外參和內參座標變換矩陣,將ego座標系下的座標點投影到影像座標系,用於擷取對應位置的影像特徵。
其中,和分別代表相機的內參和外參座標變換矩陣,代表ego座標系下的空間點投影到影像座標系下的位置。在得到對應的影像座標後,我們將超過影像範圍或具有負深度的座標點過濾掉。然後,我們採用雙線性內插運算根據投影後的座標位置取得對應的影像語意特徵,並對所有相機影像收集到的特徵取平均值,得到最終的插值取樣結果。
為了將得到的平面BEV特徵與插值採樣得到的3D體素特徵進行集成,我們首先利用上採樣操作將BEV特徵的空間尺寸和3D體素特徵的空間尺寸進行對齊,並且沿著Z軸方向執行repeat操作,操作後得到的特徵我們記作。然後我們將以及影像特徵插值採樣得到的特徵進行Concat並透過一個卷積層進行整合得到最終的體素特徵。
上述提到的影像特徵插值取樣和特徵整合過程整體可以用下圖進行表示:
影像特徵插值取樣以及特徵整合過程
除此之外,為了進一步確保經過BEV特徵提取模組輸出的BEV特徵包含有足夠的特徵資訊用於完成後續的感知過程,我們採用了一個額外的監督方法,即利用一個語義分割頭來先語意分割任務,並利用Occupancy的真值來建構語意分割的真值標籤完成整個的監督過程。
首先展示我們提出的FastOcc演算法在Occ3D-nuScenes資料集上和其他SOTA演算法的比較情況,各個演算法的具體指標見下表所示
#各個演算法指標的在Occ3D-nuScenes資料集上的比較
透過表格上的結果可以看出,我們提出的FastOcc演算法相比於其他的演算法而言,在大多數的類別上都更加的具有優勢,同時總的mIoU指標也實現了SOTA的效果。
除此之外,我們也比較了不同的視角轉換方式以及柵格預測頭當中所使用的解碼特徵的模組對於感知性能以及推理耗時的影響(實驗數據均基於輸入圖像解析度為640×1600,主幹網路採用的是ResNet-101網路),相關的實驗結果比較如下表所示
不同視角轉換以及柵格預測頭的精度和推理耗時對比
SurroundOcc演算法採用了多尺度的Cross-view Attention視角轉換方式以及3D卷積來實現3D體素特徵的提取,具有最高的推理耗時。我們將原有的Cross-view Attention視角轉換方式換成LSS的轉換方式之後,mIoU精度有所提升,同時耗時也降低了。在此基礎上,將原有的3D卷積換成3D FCN結構,可以進一步的增加精度,但是推理耗時也明顯增加。最後我們選擇採樣LSS的座標轉換方式以及2D FCN結構來實現偵測效能和推理耗時之間的平衡。
此外,我們也驗證了我們提出的基於BEV特徵的語義分割監督任務以及影像特徵插值取樣的有效性,具體的消融實驗結果見下表所示:
不同模組的消融實驗對比情況
此外,我們還做了模型上的scale實驗,透過控制主幹網路的大小以及輸入影像的分辨率,從而建構了一組Occupancy Network感知演算法模型(FastOcc、FastOcc-Small、FastOcc-Tiny),具體配置請參考下表:
##不同主幹網路與解析度配置下的模型能力對比在本文中,針對現有的Occupancy Network演算法模型偵測耗時長,難以上車部署的問題,我們提出了FastOcc演算法模型。透過將原有的處理3D體素的3D卷積模組以2D卷積進行替代,極大地縮短了推理耗時,並且和其他演算法相比實現了SOTA的感知結果。
以上是即時加SOTA一飛沖天! FastOcc:推理更快、部署友善Occ演算法來啦!的詳細內容。更多資訊請關注PHP中文網其他相關文章!