云上智能駕駛?cè)S重建優(yōu)秀實踐
智能駕駛技術(shù)的不斷發(fā)展,正在改變著我們的出行方式和交通系統(tǒng)。作為其中的一個關(guān)鍵技術(shù),三維重建在智能駕駛系統(tǒng)中起著重要的作用。除去車端本身的感知、重建算法,自動駕駛技術(shù)的落地與發(fā)展需要龐大的云端重建能力支撐,火山引擎多媒體實驗室通過行業(yè)領(lǐng)先的自研三維重建技術(shù),結(jié)合強大的云平臺資源與能力,助力相關(guān)技術(shù)在云端大規(guī)模重建、自動標注、真實感仿真等場景的落地與應(yīng)用。
本文重點介紹火山引擎多媒體實驗室三維重建技術(shù)在動態(tài)、靜態(tài)場景的以及結(jié)合先進光場重建技術(shù)的原理與實踐,幫助大家能更好的了解和認識云上智能三維重建如何服務(wù)智能駕駛領(lǐng)域,助力行業(yè)發(fā)展。
一、技術(shù)挑戰(zhàn)與難點
駕駛場景重建需要對道路環(huán)境做點云級別的三維重建,與傳統(tǒng)的三維重建技術(shù)應(yīng)用場景相比,駕駛場景重建技術(shù)有以下難點:
- 車輛運行過程中的環(huán)境因素復(fù)雜且不可控,不同天氣、光照、車速、路況等均會對車載傳感器采集到的數(shù)據(jù)造成影響,這對重建技術(shù)的魯棒性帶來了挑戰(zhàn)。
- 道路場景中經(jīng)常會出現(xiàn)特征退化和紋理缺失的情況,例如相機獲取到視覺特征不豐富的圖像信息,或者激光雷達獲取到相似性較高的場景結(jié)構(gòu)信息,同時,路面作為重建中的關(guān)鍵要素之一,色彩單一且缺少足夠的紋理信息,這對重建技術(shù)提出了更高的要求。
- 車載傳感器數(shù)量較多,常見的有相機、激光雷達、毫米波雷達、慣導(dǎo)、GPS定位系統(tǒng)、輪速計等等,如何將多傳感器的數(shù)據(jù)融合起來得到更精確的重建結(jié)果,對重建技術(shù)提出了挑戰(zhàn)。
- 道路中存在運動車輛、非機動車、行人等動態(tài)物體,會對傳統(tǒng)重建算法帶來挑戰(zhàn),如何剔除動態(tài)物體對靜態(tài)場景重建帶來干擾,同時對動態(tài)物體的位置、大小、速度進行估計,也是項目的難點之一。
二、駕駛場景重建技術(shù)介紹
自動駕駛領(lǐng)域的重建算法通常會采用激光雷達、相機為主,GPS、慣導(dǎo)為輔的技術(shù)路線。激光雷達可以直接獲取高精度的測距信息,能夠快速得到場景結(jié)構(gòu),通過預(yù)先進行的激光雷達-相機聯(lián)合標定,相機獲取到的圖像能夠為激光點云賦予色彩、語義等信息。同時,GPS和慣導(dǎo)可以進行輔助定位,減少重建過程中因為特征退化而出現(xiàn)的漂移現(xiàn)象。但是,由于多線激光雷達售價較高,通常用于工程車輛,而在量產(chǎn)車上很難得到規(guī)?;氖褂谩?/p>
對此,火山引擎多媒體實驗室自研了一套純視覺的駕駛場景重建技術(shù),包括靜態(tài)場景重建、動態(tài)物體重建和神經(jīng)輻射場重建技術(shù),能夠區(qū)分場景中的動靜態(tài)物體,還原出靜態(tài)場景的稠密點云,并突出路面、指示牌、紅綠燈等關(guān)鍵要素;能夠?qū)鼍爸羞\動物體的位置、大小、朝向和速度進行有效的估計,用于后續(xù)的4D標注;能夠在靜態(tài)場景重建的基礎(chǔ)上,使用神經(jīng)輻射場對場景進行重建和復(fù)現(xiàn),實現(xiàn)自由視角的漫游,可用于場景編輯和仿真渲染。這套技術(shù)解決方案不依賴激光雷達,且能夠達到分米級的相對誤差,用最小的硬件成本實現(xiàn)接近激光雷達的重建效果。
2.1 靜態(tài)場景重建技術(shù):剔除動態(tài)干擾、還原靜態(tài)場景
視覺重建技術(shù)以多視角幾何作為基礎(chǔ)的理論依據(jù),要求待重建的場景或者物體具有幀間一致性,即在不同圖像幀中處在靜止狀態(tài),因此需要在重建過程中剔除動態(tài)物體。根據(jù)場景中的不同要素的重要性,稠密點云中需要去除無關(guān)緊要的點云,而保留一些關(guān)鍵要素點云,因此需要事先對圖像進行語義分割。對此, 火山引擎 多媒體實驗室結(jié)合AI技術(shù)與多視角幾何基本原理,搭建了一套先進的魯棒、精確完整視覺重建算法框架。重建過程包括三個關(guān)鍵步驟 :圖像預(yù)處理、稀疏重建和稠密重建 。
車載相機拍攝過程中處在運動狀態(tài),由于曝光時間的存在,采集到的圖像中會隨著車速提高而出現(xiàn)嚴重的運動模糊現(xiàn)象。另外,出于節(jié)約帶寬和存儲空間考慮,傳輸過程中會對圖像進行不可逆的有損壓縮,造成畫質(zhì)的進一步降低。為此, 火山引擎多媒體實驗室使用了端到端的神經(jīng)網(wǎng)絡(luò)對圖像進行去模糊處理,能夠在抑制運動模糊現(xiàn)象的同時對圖像質(zhì)量進行提升。去模糊前后的對比如下圖所示。
去模糊前(左) 去模糊后(右)
為了區(qū)分出動態(tài)物體,火山引擎多媒體實驗室使用了基于光流的動態(tài)物體識別技術(shù),能夠得到像素級別的動態(tài)物體掩膜。在之后的靜態(tài)場景重建過程中,落在動態(tài)物區(qū)域上的特征點將被剔除,只有靜態(tài)的場景和物體將得到保留。
光流(左) 運動物體(右)
稀疏重建過程中需要同時計算相機的位置、朝向和場景點云,常用的有SLAM算法(Simultaneous localization and mapping)和SFM算法(Structure from Motion,簡稱SfM)。在不要求實時性的情況下,SFM算法能夠得到更高的重建精度。但是,傳統(tǒng)的SFM算法通常將每個相機當作獨立相機來進行處理,而車輛上通常會在前后左右不同方向布置多個相機,這些相機之間的相對位置其實是固定不變的(忽略車輛振動帶來的細微變化)。如果忽視相機與相機之間的相對位置約束,計算出來的各相機位姿誤差會比較大。另外,當遮擋比較嚴重時,個別相機的位姿會難以計算。對此,火山引擎多媒體實驗室自研了基于相機組整體的SFM算法,能夠利用相機之間的先驗相對位姿約束,以相機組作為整體來計算位姿,同時使用了GPS加慣導(dǎo)的融合定位結(jié)果對相機組中心位置進行約束,可有效地提高位姿估計的成功率和準確率,并能改善不同相機之間的點云不一致現(xiàn)象,減少點云分層現(xiàn)象。
傳統(tǒng)SFM(左) 相機組SFM(右)
由于地面色彩單一、紋理缺失,傳統(tǒng)的視覺重建很難還原出完整的地面,但是地面上存在車道線、箭頭、文字/標識等關(guān)鍵要素,因此火山引擎多媒體實驗室采用了二次曲面來擬合地面,輔助進行地面區(qū)域的深度估計和點云融合。和平面擬合相比,二次曲面更貼合實際道路場景,因為實際的路面往往并不是一個理想平面。以下是分別用平面方程和二次曲面方程來擬合地面的效果對比。
平面方程(左) 二次曲面方程(右)
將激光點云視作真值,并將視覺重建結(jié)果與之疊加,可以直觀地衡量重建點云的準確性。從下圖中可以看到,重建點云和真值點云貼合度非常高,經(jīng)過測量得到重建結(jié)果的相對誤差在15cm左右。
火山引擎多媒體實驗室重建結(jié)果(彩色)與真值點云(白色)
以下是火山引擎多媒體實驗室視覺重建算法和某主流商業(yè)重建軟件的效果對比??梢钥吹剑蜕虡I(yè)軟件相比,火山引擎多媒體實驗室的自研算法重建效果更好、更完整,場景中的路牌、紅綠燈、電線桿,以及路面上車道線、箭頭等還原度非常高,而商業(yè)軟件的重建點云非常稀疏,且路面大范圍缺失。
某主流商業(yè)軟件(左) 火山引擎多媒體實驗室算法(右)
2.2 動態(tài)重建技術(shù)
在圖像上對物體進行3d標注十分困難,需要借助于點云,當車輛只有視覺傳感器時,獲取場景中目標物體的完整點云十分困難。特別是動態(tài)物體,無法使用傳統(tǒng)的三維重建技術(shù)獲取其稠密點云。為提供運動物體的表達,服務(wù)于4d標注,使用3d bounding box(以下簡稱3d bbox)對動態(tài)物體進行表示,通過自研動態(tài)重建算法獲取每一時刻場景中動態(tài)物體的3d bbox姿態(tài)、大小、速度等,從而補全動態(tài)物體重建能力。
動態(tài)重建pipeline
對車輛采集的每一幀圖像,首先提取場景中的動態(tài)目標,生成3d bbox的初始提議,提供兩種方式:使用2d目標檢測,通過相機位姿估計對應(yīng)的3d bbox;直接使用3d目標檢測。兩種方式針對不同數(shù)據(jù)可以靈活進行選擇,2d檢測泛化性好,3d檢測可以獲得更好的初值。同時,對圖像動態(tài)區(qū)域內(nèi)部的特征點進行提取。獲取單幀圖像初始3d bbox提議及特征點后,建立多幀間數(shù)據(jù)關(guān)聯(lián):通過自研多目標跟蹤算法建立物體匹配,并通過特征匹配技術(shù)對圖像特征進行匹配。獲取匹配關(guān)系后,將有共視關(guān)系的圖像幀創(chuàng)建為局部地圖,構(gòu)建優(yōu)化問題求解全局一致的目標bbox估計。具體地,通過特征點的匹配以及動態(tài)三角化技術(shù),恢復(fù)動態(tài)3d點;對車輛運動建模,聯(lián)合優(yōu)化物體、3d點、相機之間的觀測,從而獲得最優(yōu)估計的動態(tài)物體3d bbox。
2d生成3d(左二) 3d目標檢測示例
2.3 NeRF 重建:真實感渲染、自由視角
使用神經(jīng)網(wǎng)絡(luò)進行隱式重建,利用可微渲染模型,從已有視圖中學(xué)習如何渲染新視角下的圖像,從而實現(xiàn)照片級逼真的圖像渲染, 即神經(jīng)輻射場(NeRF)技術(shù)。同時,隱式重建具有可編輯、查詢連續(xù)空間的特性,可以用于自動駕駛場景中自動標注、仿真數(shù)據(jù)構(gòu)建等任務(wù)。使用NeRF技術(shù)對場景進行重建是非常有價值的。
火山引擎多媒體實驗室融合神經(jīng)輻射場技術(shù)與大場景建模技術(shù)。在具體實踐中,首先針對數(shù)據(jù)進行處理,場景中的動態(tài)物體會使NeRF重建出現(xiàn)偽影,借助自研動靜態(tài)分割、影子檢測等算法,對場景中和幾何不一致的區(qū)域進行提取,生成mask,同時利用視頻inpainting算法,對剔除掉的區(qū)域進行修復(fù)。借助自研三維重建能力,對場景進行高精度的幾何重建,包括相機參數(shù)估計以及稀疏、稠密點云生成。另外,對場景進行拆分以減小單次訓(xùn)練資源消耗,并可做分布式訓(xùn)練、維護。在神經(jīng)輻射場訓(xùn)練過程中,針對室外無邊界大場景,團隊通過一些優(yōu)化策略以提升該場景下的新視角生成效果,如通過在訓(xùn)練中同時優(yōu)化位姿提高重建精度,基于哈希編碼的層次化表達提升模型訓(xùn)練速度,借助外觀編碼提升不同時間采集場景的外觀一致性等,借助mvs稠密深度信息提升幾何精度等。團隊同毫末智行合作,完成單路采集以及多路合并的NeRF重建,相關(guān)成果已在毫末AI Day發(fā)布。
動態(tài)物/影子剔除,填補