給自動駕駛AI搞個“外掛”,0.1M就能顯著提升運動狀態判別力,來自港大&TCL
只需“100K大小的外掛”,就能讓自動駕駛AI識別“物體運動狀態”的能力大幅上升!
這是一項來自香港大學計算機視覺與機器智能實驗室(CVMI Lab)和TCL AI Lab的新研究,目前論文已被CVPR 2023收錄。
研究提出了一種叫做MarS3D的輕量級模型,給原本只能識別物體“是什么”的語義分割模型用上后,就能讓它們進一步學會識別這些物體“是否在動”。
而且是任意主流模型即插即用,幾乎不需要額外的計算量(推理時間只增加不到0.03秒),目前已開源。
要知道,對于靠激光雷達來判斷周圍環境的自動駕駛系統而言,其感知能力,很大程度上依賴于3D點云語義分割模型的準確率和效率。
如果想提升模型識別“運動物體”的能力,往往需要將繁重的室外多幀點云數據分別進行特征提取和處理,但這種方法不僅要增加大量計算,識別性能也沒提升多少,屬實是事倍功半。
相比之下,MarS3D參數量只有約100K大小,卻能將主流點云分割模型的性能提升近5%。
這究竟是怎么做到的?
首先要了解一下3D點云的兩種語義分割任務,單掃描(single-scan)和多掃描(multi-scan)。
這兩種方法的核心差異,在于能否區分物體的運動狀態。
單掃描任務只需要根據單幀點云,把場景中汽車、行人、道路等語義信息分割并標注出來。像下圖,不同的顏色代表不同的物體,如藍色的點云代表車:
多掃描任務,則需要根據時序上的多幀點云,同時分割語義信息和運動狀態。
換言之,不僅要學會區分汽車、行人、道路,還得識別這些物體是否在運動。如汽車標簽擴展成“運動的車”和“不動的車”,以及行人擴展成“運動的行人”和“不動的行人”:
目前,自動駕駛做激光雷達點云數據的處理,主要還是通過單掃描語義分割方法。
雖然能通過擴展標簽、融合點云數據,直接將單掃描模型訓練成多掃描模型,從而讓AI掌握識別物體運動狀態的能力,但存在兩個問題:
一個是性能收效一般;另一個是融合點云數據量大,導致這種模型復雜、計算時間長,而這正是“爭分奪秒”的自動駕駛系統無法接受的。
為了解決這兩個問題,讓語義分割模型又快又好地掌握識別“運動物體”的方法,MarS3D橫空出世。
即使之前模型只能做單掃描語義分割,給它加個MarS3D后,不僅能大幅提升多掃描語義分割能力,區分物體“是否在運動”,效果還比其他多掃描方法更好。
所以,MarS3D的核心思路是什么?
具體來說,模型設計了一個基于2D CNN網絡的分支BEV Branch,這個模型能提取點云數據轉換的BEV(Bird’s Eye View)表征,即自上而下的鳥瞰視角。
之所以選用BEV,主要有兩個原因。
一方面,目前的運動物體基本都是在地上跑(即使在空中飛,也幾乎不存在垂直上升的情況),也就是說,幾乎所有的運動都在水平面上有位移,因此它能很好地反映物體在絕大部分場景中的運動狀態;
另一方面,BEV相比點云數據量更小,還能通過參考幀和特征圖相減,降低點云稀疏性帶來表征不穩定的問題,即同樣靜態區域的表征近似,含有動態物體區域的表征距離更遠。此外,多尺寸卷積對表征抽取特征圖,以保證模型對不同運動速度的物體都有很強感知力。
隨后,將這個分支提取的運動狀態信息特征、和其他被時序嵌入向量增強的單掃描任務模型分支3D Branch提取的語義信息特征結合起來,進行特征融合,最終實現語義分割。
那么,這樣實現的3D點云語義分割,效果究竟怎么樣?
相比和其他輸入如RGB圖像進行結合,論文重點測試了模型針對純點云輸入的分割效果。
從下表可見,對于SemanticKITTI數據集,在目前主流的單掃描點云分割模型如SPVCNN、SparseConv和MinkUNet上,MarS3D在只給模型增加0.1M的情況下(參數量增加不到0.5%),將性能(mIoU)分別提升了4.96%、5.65%和6.24%。
同時,計算時間(延遲)只增加了19ms、14ms和28ms。
5%對于模型分割性能提升有多顯著?下圖是在兩個掃描場景中,模型增加MarS3D前和增加后的效果對比,其中左圖是增加前,中間是增加后,右邊是真實值:
顯然,增加MarS3D后模型識別物體的效果要更好。
直接將分割效果和真實值對比,可見增加MarS3D后的“錯誤值”,比增加前要低不少:
整個推理過程,只需要一塊英偉達GeForce RTX 3090 GPU就能搞定。
對MarS3D感興趣的小伙伴們,可以去試試了~
項目地址
https://github.com/CVMI-Lab/MarS3D
論文地址
https://arxiv.org/abs/2307.09316
本文來自微信公眾號“量子位”(ID:QbitAI),作者:蕭簫,36氪經授權發布。
