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