0
雷鋒網按:本文作者系 Uber 數據可視化團隊軟件工程師 Xiaoji Chen,由雷鋒網新智駕(微信公號:AI-Drive)編譯。
Uber 的先進技術團隊(ATG)正在努力塑造自動駕駛的未來。今年早些時候,數字可視化團隊(利用可視化技術探索、檢查、闡釋和調試數據)就聯手 ATG 對自動駕駛汽車解釋和理解這個世界的能力進行了升級。
此次,兩大團隊共同搭建了一個新平臺,借助基于 Web 的最新可視化技術,ATG 的工程師和操作員能快速完成對離線和在線測試數據的檢查、調試和探索。這對使用該技術的用戶快速理解問題、完成產品快速迭代和生產力的提升至關重要。同時,更簡單的視覺語言和用戶體驗設計也是給工程師和操作員傳達細節(jié)和技術信息的必備工具。
本文詳細闡釋了數字可視化團隊打造該平臺的方法,并詳述了將復雜和多樣化數據集與可重復利用的高性能 Web 組件相結合過程中遭遇的挑戰(zhàn)。
關于挑選 Web 來打造自動駕駛可視化平臺,業(yè)內有許多有趣的討論。Uber 選擇 Web 有如下考慮:
1. 快速循環(huán)迭代。借助 Web,開發(fā)和部署新功能會變得相當迅速且簡單。如果用戶想要最新產品,它們只需刷新瀏覽器網頁就行,這比下載并安裝新應用快多了。
2. 靈活性和共享性。由于 Web 與硬件無關,因此只要有一款操作系統(tǒng),任何人在任何地點都能在平臺上干活。事實上,這里瀏覽器就是操作系統(tǒng)。將操作系統(tǒng)放到 Web 端不但能打破不同操作系統(tǒng)間的界限,還讓全世界任何地方都變成了 ATG 總部。因為只需點擊一個 URL 鏈接,工程師和操作員就能匯報并診斷事故了。
3. 協作及定制化。作為一個快速進化的技術,自動駕駛汽車一直在產生新的數據集、指標和用例。同時,ATG 的每個團隊都有特殊的可視化和數據生成需要,因此它們必須定制自己團隊的體驗。在打造定制化 UI 上,HTML5 和 JavaScript 是久經沙場且值得信賴的工具,而且它們很容易就能綜合進其他基礎設施和任務管理系統(tǒng)。
要理解自動駕駛汽車做出的決定,我們必須基于大量數據重構上下文。這些數據包括預先處理過的地圖和行車時記錄的車輛日志。
地圖能透露出城市道路的連接和限制,Uber 用的是自己的專有網絡地圖,其中的細節(jié)信息頗為豐富。舉例來說,這套地圖中有路面的高清掃描、車道邊界和類型、轉彎、限速和人行道等。
地圖團隊利用該平臺檢查特殊路口的 3D 地圖細節(jié)
車輛日志則記錄了車輛的所作所為和所見所想。借助傳感器數據,算法完成了自動駕駛中的三大關鍵階段:感知(測量)、預測(預報)和行動規(guī)劃(行動)。要想順利上路運行,車輛必須通過傳感器感知到周圍物體的一舉一動。拿到這些信息后它便可以預測周圍物體的運動趨勢了。最后,車輛會根據手頭的信息規(guī)劃自己的下一步動作。
操作員利用平臺檢查自動駕駛汽車的感知和預測數據
與工程師結合后,我們實驗性的搭建了一套可視隱喻系統(tǒng)來展現復雜的數據。這套系統(tǒng)能提供周邊環(huán)境的真實再現,包括車輛、地面圖像、標線和路標等一系列能幫工程師和操作員判定周邊環(huán)境的錨點。
為了幫工程師一窺未來的替代決定或時間切片,該系統(tǒng)還能通過顏色和幾何編碼抽象展示算法生成的信息,如物體分類、預測、計劃和前瞻等。
影響這些數據源完成聚合的最大挑戰(zhàn)是處理不同的地理空間坐標。不同的服務會利用不同的坐標系統(tǒng)提供模型,一些靠的是經緯度,一些則用到了通用橫向墨卡托坐標系(UTM),還有一些則與其真實位置有關,剩下的則與車輛的位置和方向相關。此外,所有的坐標信息會快速進行更新。為了能更高效的轉換這些坐標并導出準確的數據,我們將重任委托給了 GPU。
用 WebGL 完成高性能 3D 場景渲染
Uber 的可視化團隊為基于 Web 的大規(guī)模數據可視化任務維護著一整套框架,其中包括 react-map-gl 和 deck.gl。這些框架利用 GPU 的能力在瀏覽器上以高幀率顯示數百萬個幾何圖形。如果能像地圖一樣,將可視化的精細度從一塊縮小到一個像素,GPU 就是最理想的場所。
deck.gl 可以渲染 GeoJSON、點云和可視化網格等
最終,性能將成為決定性因素。ATG 的工程師和車輛操作員需要實時獲知車輛日志并順暢的操作相機和場景中選定的物體,而這時先進的 deck.gl 可視化框架將正式派上用場。
最新版的 deck.gl 性能得到了多處優(yōu)化,研究人員還根據 ATG 的用例對其圖形特征進行了升級。deck.gl 上下文的每一層都能把數據源呈現成提前設定的樣子。網格(地面和車輛)、道路(車道和軌跡)、多邊形(路上的其他物體)和點云都不在話下。
在日志回放時,用戶可以在不同相機模式下切換
工程師用平臺對比兩種軟件的模擬結果
此外,每一層都能指定自己的坐標系并分享同一個攝像頭視角。一個典型的代碼片段可以以每秒 30-50 幀的速度渲染 60-100 層。
雷鋒網推薦閱讀:
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。