目前實用 BEV 的技術方案已經(jīng)有大概半年時間了,多個 BEV 模型都在不同項目做了實際部署,可以在這些工作的基礎上做一些經(jīng)驗總結了。
內(nèi)容其實是斷斷續(xù)續(xù)寫的,因為新冠的腦霧在我身上可感知的大概持續(xù)了半個月。
BEV 帶來的優(yōu)勢:
1. 實際的運行性能提升
雖然這個看起來比較反直覺。但是實際上性能反而比 2D 任務更好,而且還能保持基本對標甚至更好的指標。同樣的兩個任務,我們使用更少的算力(1/3 不到),由單相機擴展到 6相機,依然保持了實時運行。在測試指標上,基本保持了一致。當然,我們的 BEV 感知范圍減少了側向和后向的范圍。
相比傳統(tǒng)的方案,主要的提升來源:
整個 Pipeline 處理更加簡單和一致,相比一些傳統(tǒng)的方案,代碼量降低了很多,在工程方向上,這個極大的一個優(yōu)點。越少的代碼,代表越少的bug,越低的維護成本。
由于沒有了 infer 后的一些額外后處理工作帶來的指標降低,模型結構可以進一步簡化,不用在模型這里去補償。
Multi-scale 的融合集中在模型內(nèi)部。
在 BEV 的統(tǒng)一框架下,我們可以將多個任務融合在一個模型中統(tǒng)一處理。
2. 穩(wěn)定性提升
這個無需懷疑,我們的經(jīng)驗和之前 Tesla AI day 上的一些宣傳是一致的:
模型預測正確的情況下,車道線的內(nèi)外八、大幅度的抖動基本不會出現(xiàn)。單單這一點,已經(jīng)解決了非常多的問題。
從上一點引申出來,之前的很多問題都可以很容易的歸約到一個問題上:更多的數(shù)據(jù)?雌饋砗艽直,但是這是數(shù)據(jù)驅(qū)動的前置條件,不滿足這個條件,就不用談什么數(shù)據(jù)驅(qū)動。
3. 多目模型無盲區(qū)
在使用多目的 BEV 模型后,車身周邊的障礙物感知是提升顯著的。由于多個原因,評測集合中的車身側后的 GT 是有盲區(qū)的,模型都可以正常檢測。目標在切換不同相機感知范圍時,在我們自己的測試集上看,很少有跳變。
4. 功能擴展難度降低
由于這一框架更加穩(wěn)定,通用,功能擴展基本都可以在 head 上簡單增加內(nèi)容。比如 Tracking Embedding 的功能,代碼 + 驗證訓練,僅僅需要 3 天,實際上絕大部分時間都在訓練上。
問題:
1. 硬件支持
主要的來源是算子限制。最近一年中,BEV 的論文,百家齊放。但是落實到我們使用的 AI 加速器上,大部分都不支持。即使勉強支持,性能也不行。我們最終還是切換到 MLP 的方案上實現(xiàn)上車運行。
2. 信息丟失
2D -> 3D 的轉(zhuǎn)換模塊帶來的信息損失,帶來的直接問題就是遠距離、小目標的檢測不理想。不過由于目前階段的感知范圍相對比較小,還沒有要求到100m開外,所以整體上表現(xiàn)還不明顯。但是這個問題可能依然是未來必須要面對的問題,我這里有一部分的工作也在嘗試緩解這個問題。
3. 數(shù)據(jù)需求
數(shù)據(jù)量需求較大:
由于2D -> 3D 的部分我們使用的是 MLP,非常容易過擬合。
視覺上 3D 本身的 augmentation 很難做,而且對于硬件標定有依賴。
生成難度也較大:目前階段還大量使用激光來輔助數(shù)據(jù)生成,但是這樣的方案由于傳感器的原因,在未來是沒法擴展的。這也是目前階段我們在嘗試考慮的一個問題。
隨著多目任務的引入,帶來了一個很難避免的問題:模型和相機的布置基本處于一個硬綁定的狀態(tài)。對于普通的公司,必須面對這個問題:怎么樣可以用盡量少的數(shù)據(jù)、更快的適配新的車型。在我看來這是一個體系化的解決方案,數(shù)據(jù)、硬件、算法、工程,都需要針對這一問題作出適應。
目前來看,特斯拉的 4D 標注在靜態(tài)元素上確實是一個比較符合邏輯的方案,成本和效率都比較高(當然也會有一些問題)。但是動態(tài)元素上的工作,我們還在考慮。
挑戰(zhàn):
1. 感知面對戰(zhàn)爭迷霧的挑戰(zhàn)
當然這個和 BEV 本身并沒有直接關系。但是感知模塊即使做到完美也存在盲區(qū)、遮擋、極限范圍外的問題。所以,如何更好的處理不確定性,增加容錯度是依然需要面對的問題。
我自己愛說的一句:感知做到最后都是預測。一旦涉及到預測,就引入了不確定性和概率。如何利用模型來應對這個問題,應該是未來工作內(nèi)容的一個重點。
2. 新的 2D -> 3D 轉(zhuǎn)換模塊的探索
在學界,已經(jīng)有很多方案。主要方向:利用投影、Transformer 及其變體、直接的MLP。
目前從應用角度來看,都還有或多或少的缺陷。怎樣實用化一個新的轉(zhuǎn)換模塊,也是需要考慮的。公司內(nèi)部也有其他的 team 做了一些探索性的工作,提供了一些情報支持,我們自己也在開展下一代轉(zhuǎn)換模塊的選型和試驗。
從我個人的角度來看,逐漸的減少先驗限制才可能會有更好的結果。當然,從工業(yè)界研發(fā)來看,要把握好時機和程度,做好平衡。
3. 數(shù)據(jù)量的提升
BEV 方案相對來說是比較吃數(shù)據(jù)的。當然,也沒有夸張到是數(shù)據(jù)怪獸,非特斯拉的數(shù)據(jù)量不行,正常的公司慢慢迭代穩(wěn)定后,是可以達到一個基準線的。
本身引入 3D 空間后,augmentation 變得很難,尤其是多相機相互之間的關系讓這個問題更加復雜。最可靠的方法反而是:堆更多的數(shù)據(jù)。