自動駕駛第一性之純視覺靜態(tài)重建
本文經(jīng)自動駕駛之心公眾號授權轉載,轉載請聯(lián)系出處。
純視覺的標注方案,主要是利用視覺加上一些GPS、IMU和輪速計傳感器的數(shù)據(jù)進行動靜態(tài)標注。當然面向量產(chǎn)場景的話,不一定非要是純視覺,有一些量產(chǎn)的車輛里面,會有像固態(tài)雷達(AT128)這樣的傳感器。如果從量產(chǎn)的角度做數(shù)據(jù)閉環(huán),把這些傳感器都用上,可以有效地解決動態(tài)物體的標注問題。但是我們的方案里面,是沒有固態(tài)雷達的。所以,我們就介紹這種最通用的量產(chǎn)標注方案。
純視覺的標注方案的核心在于高精度的pose重建。我們采用Structure from motion (SFM) 的pose重建方案,來保證重建精度。但是傳統(tǒng)的SFM,尤其是增量式的SFM,效率非常慢,計算復雜度是O(n^4),n是圖像的數(shù)量。這種重建的效率,對于大規(guī)模的數(shù)據(jù)標注,是沒有辦法接受的,我們對SFM的方案進行了一些改進。
改進后的clip重建主要分為三個模塊:1)利用多傳感器的數(shù)據(jù),GNSS、IMU和輪速計,構建pose_graph優(yōu)化,得到初始的pose,這個算法我們稱為Wheel-Imu-GNSS-Odometry (WIGO);2)圖像進行特征提取和匹配,并直接利用初始化的pose進行三角化,得到初始的3D點;3)最后進行一次全局的BA(Bundle Adjustment)。我們的方案一方面避免了增量式SFM,另一方面不同的clip之間可以實現(xiàn)并行運算,從而大幅度的提升了pose重建的效率,比起現(xiàn)有的增量式的重建,可以實現(xiàn)10到20倍的效率提升。
在單次重建的過程中,我們的方案也做了一些優(yōu)化。例如我們采用了Learning based features(Superpoint和Superglue),一個是特征點,一個是匹配方式,來替代傳統(tǒng)的SIFT關鍵點。用學習NN-Features的優(yōu)勢就在于,一方面可以根據(jù)數(shù)據(jù)驅動的方式去設計規(guī)則,滿足一些定制化的需求,提升在一些弱紋理以及暗光照的情況下的魯棒性;另一方面可以提升關鍵點檢測和匹配的效率。我們做了一些對比的實驗,在夜晚場景下NN-features的成功率會比SFIT提升大概4倍,從20%提升至80%。
得到單個Clip的重建結果之后,我們會進行多個clips的聚合。與現(xiàn)有的HDmap建圖采用矢量結構匹配的方案不同,為了保證聚合的精度,我們采用特征點級別的聚合,也就是通過特征點的匹配進行clip之間的聚合約束。這個操作類似于SLAM中的回環(huán)檢測,首先采用GPS來確定一些候選的匹配幀;之后,利用特征點以及描述進行圖像之間的匹配;最后,結合這些回環(huán)約束,構造全局的BA(Bundle Adjustment)并進行優(yōu)化。目前我們這套方案的精度,RTE指標遠超于現(xiàn)在的一些視覺SLAM或者建圖方案。
實驗:采用colmap cuda版,使用180張圖,3848* 2168分辨率,手動設置內參,其余使用默認設置,sparse重建耗時約15min,整個dense重建耗時極長(1-2h)
重建結果統(tǒng)計
特征點示意圖
sparse重建效果
直行路段整體效果
地面錐桶效果
高處限速牌效果
路口斑馬線效果
容易不收斂,另外試了一組圖像就沒有收斂:靜止ego過濾,根據(jù)自車運動每50-100m形成一個clip;高動態(tài)場景動態(tài)點濾除、隧道場景位姿
利用周視和環(huán)視多攝像頭:特征點匹配圖優(yōu)化、內外參優(yōu)化項、利用已有的odom。
https://github.com/colmap/colmap/blob/main/pycolmap/custom_bundle_adjustment.py
pyceres.solve(solver_options, bundle_adjuster.problem, summary)
3DGS加速密集重建,否則時間太長無法接受