NVIDIA合成數(shù)據(jù)生成加速AV開發(fā)和驗證
NVIDIA 編輯推薦
在 9 月舉行的 GTC 大會上,NVIDIA 產品經理 Gautham Sholingar 以《合成數(shù)據(jù)生成:加速自動駕駛汽車的開發(fā)和驗證》為題,完整地介紹了 NVIDIA 過去一年在長尾場景訓練的最新進展和相關經驗,特別是探討開發(fā)者如何使用 DRIVE Replicator 生成多樣化的合成數(shù)據(jù)集,以及準確的真值數(shù)據(jù)標簽,從而加速自動駕駛汽車的開發(fā)和驗證。該講座內容干貨滿滿,引發(fā)了行業(yè)的廣泛關注和討論。本文對此次分享的精華內容進行匯總和整理,以幫助大家更好地了解 DRIVE Replicator,以及自動駕駛感知算法的合成數(shù)據(jù)生成。
( 圖 1 )
在過去的一年中,NVIDIA 在使用 DRIVE Replicator 生成用于訓練自動駕駛感知算法的合成數(shù)據(jù)集方面取得了積極的進展。圖 1 展示了目前 NVIDIA 正在攻克的一些長尾場景挑戰(zhàn):
1) 第一行左側圖,倒車攝像頭附近的弱勢道路使用者(VRU)。對于任意自動駕駛感知算法而言,VRU 都是一個重要的對象類別。在本例中,我們專注于檢測倒車魚眼攝像頭附近的兒童。由于現(xiàn)實世界中的數(shù)據(jù)采集和數(shù)據(jù)標記相當具有挑戰(zhàn)性,因此這是一個重要的安全用例。
2) 第一行中間圖,事故車輛檢測。自動駕駛感知算法需要接觸到罕見和不常見的場景,才有助于使對象檢測算法變得可靠?,F(xiàn)實世界數(shù)據(jù)集里的事故車輛少之又少。DRIVE Replicator 可幫助開發(fā)人員創(chuàng)建各種環(huán)境條件下的意外事件(例如翻車),從而幫助訓練此類網絡。
3) 第一行右側圖,交通標志檢測。在其他一些情況下,手動標注數(shù)據(jù)既耗時,又容易出錯。DRIVE Replicator 可幫助開發(fā)人員生成各種環(huán)境條件下數(shù)百個交通標志和交通信號燈的數(shù)據(jù)集,并快速訓練網絡以解決現(xiàn)實世界的多樣性問題。
4) 最后,在城市環(huán)境中,有許多對象并不常見,例如特定的交通道具和某些類型的車輛。DRIVE Replicator 可幫助開發(fā)人員提高數(shù)據(jù)集里這些罕見對象的出現(xiàn)頻率,并借助目標合成數(shù)據(jù)來幫助增強現(xiàn)實世界的數(shù)據(jù)采集。
以上的這些功能,正在通過 NVIDIA DRIVE Replicator 實現(xiàn)。
了解 DRIVE Replicator 及其關聯(lián)生態(tài)
DRIVE Replicator 是 DRIVE Sim 工具套件的一部分,可用于自動駕駛仿真。
DRIVE Sim 是 NVIDIA 基于 Omniverse 構建的、非常領先的自動駕駛汽車模擬器,可大規(guī)模地進行物理精準的傳感器仿真。開發(fā)人員可以在工作站上運行可重復的仿真,然后在數(shù)據(jù)中心或云端擴展為批量模式。DRIVE Sim 是基于 USD 等強大的開放標準構建的模塊化平臺,支持用戶通過 Omniverse 擴展程序引入自己的功能。
DRIVE Sim 上包括 DRIVE Replicator 等多個應用。DRIVE Replicator 主要提供一系列專注于合成數(shù)據(jù)生成的功能,用于自動駕駛汽車的訓練和算法驗證。DRIVE Sim 和 DRIVE Constellation 還支持各個級別的自動駕駛全棧仿真,包括軟件在環(huán)、硬件在環(huán)和其他在環(huán)仿真測試(模型、植物、人類,以及更多)。
DRIVE Sim 和傳統(tǒng)自動駕駛仿真工具的不同之處是在創(chuàng)建合成數(shù)據(jù)集時,傳統(tǒng)的自動駕駛仿真工具往往結合專業(yè)的游戲引擎來進行,來還原足夠真實的場景。但是,對于自動駕駛仿真而言,這是遠遠不夠的,還需要處理包括物理準確性、可重復性和規(guī)模性等核心訴求。
( 圖 2 )
在進一步介紹 DRIVE Replicator 之前,先為大家介紹幾個關聯(lián)概念(如圖 2),特別是 Omniverse,以幫助大家更好地理解與 DRIVE Replicator 相關的底層技術支撐。
第一、了解 NVIDIA 用于大規(guī)模仿真的引擎 Omniverse。Omniverse 基于由 Pixar 公司開發(fā)的 USD(Universal Scene Description,一種用于描述虛擬世界的可擴展通用語言)而構建。USD 是整個仿真和仿真各個方面(包括傳感器、3D 環(huán)境)的單一真值數(shù)據(jù)源,這些完全通過 USD 構建的場景允許開發(fā)人員對仿真中的每個元素進行分層式的訪問,為后續(xù)生成多樣化的合成數(shù)據(jù)集奠定基礎。
第二、Omniverse 提供實時性的光線追蹤效果,可為 DRIVE Sim 中的傳感器提供支持。RTX 是 NVIDIA 在計算圖形領域重要的先進技術之一,利用優(yōu)化的光線追蹤 API ,該 API 專注于物理準確性,可確保對攝像頭、激光雷達、毫米波雷達和超聲傳感器的復雜行為(例如多次反射、多路徑效應、滾動快門和鏡頭失真)進行原生建模。
第三、NVIDIA Omniverse 是一個易于擴展的開放式平臺,專為虛擬協(xié)作和物理級準確的實時模擬打造,能夠在云端或數(shù)據(jù)中心運行工作流,可實現(xiàn)多 GPU 和節(jié)點并行渲染和數(shù)據(jù)生成。
第四、Omniverse 和 DRIVE Sim 采用開放式、模塊化設計,圍繞此平臺已經形成了一個龐大的合作伙伴生態(tài)系統(tǒng)。這些合作伙伴可提供 3D 素材、傳感器、車輛和交通模型、驗證工具等
第五、Omniverse 協(xié)作的核心是 Nucleus,Nucleus 具有數(shù)據(jù)存儲和訪問控制功能,它能夠充當多個用戶的集中式內容倉庫,支持 DRIVE Sim 將 Runtime 與內容解耦,改善版本控制,并為所有素材、場景和元數(shù)據(jù)創(chuàng)建單個參考點。
DRIVE Sim 是一個平臺,NVIDIA 采取生態(tài)合作方式來搭建該平臺,讓合作伙伴都能為這個通用平臺貢獻自己的力量。目前 DRIVE Sim 已經建立一個龐大的合作伙伴生態(tài)系統(tǒng),涉及 3D 資產、環(huán)境傳感器模型、驗證等多個領域。借助 DRIVE Sim SDK,合作伙伴可以輕松引入自己的傳感器、交通和車輛動態(tài)模型,并擴展其核心仿真功能。開發(fā)者不僅能在 Omniverse 中編寫擴展程序,輕松添加新功能,還能享受到在通用平臺上進行開發(fā)的好處——Omniverse 已連接多個關鍵合作伙伴,他們提供了與自動駕駛開發(fā)相關的重要工作流。
如何用 DRIVE Replicator 生成合成數(shù)據(jù)集和真值數(shù)據(jù)
接下來,將為大家解釋以上的這些內容如何組合起來,以及 DRIVE Replicator 生成合成數(shù)據(jù)的五個主要工作步驟(如圖 3):Content(內容 )— DRIVE Sim Runtime — Sensing(感知)— Randomization(域隨機化)— Data Writers(數(shù)據(jù)寫入器)。
( 圖 3 )
仿真流程的第一步是存儲在 Nucleus 服務器上的 3D 內容和素材。這些素材會被傳送至 DRIVE Sim Runtime,后者是執(zhí)行場景、交通模型、車輛動態(tài)和行為的核心技術。DRIVE Sim Runtime 可與基于 RTX 光線追蹤技術的攝像頭、激光雷達、毫米波雷達和 USS 的感知技術結合使用。下一步是通過運動、行為、照明和外觀的隨機化,為數(shù)據(jù)引入多樣性。對于閉環(huán)仿真,下一步通常由傳感器協(xié)議、CAN 消息和虛擬 ECU(向自動駕駛棧發(fā)送重要信息以閉環(huán))組成的車輛 I/O 將仿真連接到自動駕駛棧。
對于合成數(shù)據(jù)生成,這則是一個開放的循環(huán)流程,這個流程會將隨機化的傳感器數(shù)據(jù)發(fā)送給數(shù)據(jù)寫入器,而這些數(shù)據(jù)寫入器可輸出用于訓練自動駕駛感知算法的真值標簽。以上的這些步驟代表了合成數(shù)據(jù)生成的完整工作流。
1. Content(內容)
上文提到,仿真流程的第一步是存儲在 Nucleus 服務器上的 3D 內容和素材。這些內容來源于哪里?如何獲取?有什么標準或者要求?
過去幾年,NVIDIA 與多個內容合作伙伴合作,建立了一個龐大的 3D 資產提供商生態(tài)系統(tǒng),這些素材包括車輛、道具、行人、植被和 3D 環(huán)境,隨時可在 DRIVE Sim 中使用。
有一點需要注意的是,即便您從市場上獲得了這些資產,也不意味著就可以開始仿真工作,您還需要讓這些資產為仿真做好準備,而這就是 SimReady 的用武之地。
擴展內容的一個重要部分是與 3D 資產提供商合作,并為他們提供所需的工具,以確保在將資產引入 DRIVE Sim 時遵循某些約定、命名、資產綁定(asset rigging)、語義標簽(semantic labels)和物理特性。
SimReady Studio 幫助內容提供商將其現(xiàn)有的資產轉換可以加載到 DRIVE Sim 上、仿真就緒的 USD 資產,包括 3D 環(huán)境、動態(tài)資產和靜態(tài)道具。
那么,什么是 SimReady?您可以理解為它是一個轉換器,有助于確保 DRIVE Sim 和 Replicator 中的 3D 資產準備好支持端到端的模擬工作流程。SimReady 有幾個關鍵要素,包括:
1) 每項資產必須遵循一套關于方向、命名、幾何形狀等約定的規(guī)范,以確保一致性;
2) 語義標簽和定義明確的本體(ontology),用于注釋資產的每個元素。這對于生成用于感知的真值標簽至關重要;
3) 支持剛體物理和動力學,使生成的數(shù)據(jù)集看起來逼真,并從運動學角度縮小仿真與現(xiàn)實之間的差距;
4) 下一步是確保資產遵循特定的材料和命名約定,以確保資產為 RTX 光線追蹤做好準備,并對激光雷達、毫米波雷達和超聲波傳感器等有源傳感器產生真實的響應;
5) 另一個常見方面是裝配 3D 資產,從而實現(xiàn)照明變化、門驅動、行人步行操作等功能;
6) 最后一部分是實時高保真?zhèn)鞲衅鞣抡娴男阅軆?yōu)化。
基于以上的理解,一起來看看如何使用 SimReady studio 獲取可用于 DRIVE Sim 的資產的過程。
假設這個過程是從 3D 市場購入資產開始。第一步是將此資產導入到 SimReady Studio。這也可以批量完成,或者批量導入多個資產來完成這個步驟。
導入后,這些內容資產的材質名稱會更新,它們的材質屬性也會更新,拓展至包含反射率、粗糙度等方面的屬性。
這對于確保渲染數(shù)據(jù)質量的物理真實性,以及確保材質系統(tǒng)與所有 RTX 傳感器類型(而不僅僅是在可見光譜中運行的傳感器類型)的交互非常重要。
下一步涉及更新語義標簽和標記。為什么這一步很重要?擁有正確的標簽意味著使用資產生成的數(shù)據(jù)可用于訓練 AV 算法。此外,DRIVE Sim 和 Omniverse 使用 Nucleus 作為中央資產存儲庫。Nucleus 上有數(shù)以千計的內容資產,擁有可搜索的標簽以及相關的縮略圖將幫助新用戶更容易找到某個資產。
接下來,開始定義對象的碰撞體積和幾何形狀,并從物理角度觀察該內容資產的行為方式。然后修改對象的物理和質量屬性,從而來創(chuàng)建預期的行為。
整個過程的最后一步是驗證資產,以確保這些內容資產符合正確的約定。仿真就緒的 USD 資產現(xiàn)在可以保存并重新導入至 NVIDIA Omniverse 和 DRIVE Sim。通過 USD 構建場景的最大優(yōu)點是,在前面的步驟中創(chuàng)建的所有元數(shù)據(jù)都與最終資產一起傳輸,并分層鏈接到主要對象的 USD,為后續(xù)生成多樣化的合成數(shù)據(jù)集奠定基礎。
( 圖 4 )
回到自動駕駛汽車仿真內容創(chuàng)建,從地圖數(shù)據(jù)創(chuàng)建環(huán)境通常有幾種方法(見圖 4)。一種是選擇使用 MathWorks 的 Roadrunner 工具在一個開放的 NVIDIA DRIVE map(多模式地圖平臺)上創(chuàng)建 3D 環(huán)境。然后將該步驟的輸出結果,以及語義地圖信息、信號時序等傳輸?shù)?SimReady Studio ,該 3D 環(huán)境即可轉換為可以加載到 DRIVE Sim 上的 USD 資產。
另一種選擇,使用來自自動駕駛車隊的體素地圖數(shù)據(jù)并提取語義地圖信息,例如車道、路標和其他元數(shù)據(jù)。這些信息通過數(shù)字孿生創(chuàng)建,生成可以加載到 DRIVE Sim 上的 USD 資產。
以上兩類的 USD 環(huán)境,將被用于支持自動駕駛汽車端到端(E2E)仿真測試以及合成數(shù)據(jù)生成工作流。
2. DRIVE Sim Runtime
接下來為大家介紹仿真的第二步——DRIVE Sim Runtime,它奠定了我們在 DRIVE Replicator 中用于生成合成數(shù)據(jù)集的所有功能的基礎。
DRIVE Sim Runtime 是開放式、模塊化的可擴展組件。這在實踐中意味著什么(見圖 5)?
第一、它基于場景構建,在這些場景中開發(fā)者可定義場景中的對象的特定位置、運動和交互。這些場景可在 Python 中或使用場景編輯器 UI 進行定義,并可以保存以供日后使用。
第二、它支持通過 DRIVE Sim SDK 與自定義車輛動態(tài)包集成,既可以作為流程中的步驟,也可以作為與 DRIVE Sim 2.0 的共同仿真。
第三、交通模型。DRIVE Sim 擁有豐富的車輛模型界面,借助 Runtime,開發(fā)者可以引入自己的車輛動態(tài)或配置現(xiàn)有的基于規(guī)則的交通模型。
第四、動作系統(tǒng),其中包含預定義的豐富動作庫(例如車道變更)、可用于創(chuàng)建不同對象相互交互場景的時間觸發(fā)器等。
( 圖 5 )
到這里簡單回顧一下前面的內容:仿真流程第一步,經過 SimReady 轉化的、仿真就緒的 3D 內容和素材,被存儲在 Nucleus 服務器上。第二步,這些素材會被傳送至 DRIVE Sim Runtime,后者是執(zhí)行場景、交通模型、車輛動態(tài)和行為的核心技術,為后面生成合成數(shù)據(jù)集的所有功能奠定基礎。
3. Sensing(感知)
在生成數(shù)據(jù)之前,需使用傳感器來設置目標測試車輛。使用 Ego Configurator 工具,開發(fā)者可選擇特定車輛并將其添加到場景中。
此外,開發(fā)者還可以在場景中移動車輛,并為車輛添加傳感器。Ego 配置器工具支持通用和 Hyperion 8 傳感器。
將傳感器添加到車輛后,開發(fā)者還可以更改 FOV、分辨率、傳感器名稱等參數(shù),并在車輛上直觀地配置傳感器位置。
用戶還可以從傳感器 POV 中查看預覽,并在 3D 環(huán)境中實現(xiàn)視野可視化,然后再創(chuàng)建數(shù)據(jù)生成場景。
這個工具可以幫助開發(fā)者快速進行不同配置的原型設計,并將感知任務所能達到的覆蓋范圍可視化。
4. Randomization(域隨機化)
現(xiàn)在簡要介紹一下仿真流程的第四步,域隨機化,如何通過運動、行為、照明和外觀的隨機化,為數(shù)據(jù)引入多樣性。
這會涉及到創(chuàng)建場景的另一種方法,使用 Python。DRIVE Replicator 的 Python API 允許開發(fā)者查詢開放的 NVIDIA DRIVE Map,并以可感知情景的方式放置一系列靜態(tài)和動態(tài)資產。一些隨機發(fā)生器將重點關注如何將自主車輛從某一點傳送到下一點,如何在自主車輛周圍產生對象,并由此生成不同的合成數(shù)據(jù)集。這些聽起來很復雜的操作都能輕松實現(xiàn),因為用戶可以直接控制 USD 場景和該環(huán)境中的所有對象。
在創(chuàng)建用于訓練的合成數(shù)據(jù)集時,另一個重要步驟是引入 3D 場景外觀變化的能力。上文也提到過 USD 的強大功能,比如通過 USD 構建的場景允許開發(fā)人員對仿真中的每個元素進行分層式的訪問。SimReady 的API 借助 USD 可以快速設置場景中的特征。
下面看一個示例(見圖 6):路面有些濕,但在我們設置不同的參數(shù)時,路面潮濕程度會發(fā)生變化。我們可以對太陽方位角和太陽高度角等方面進行類似的更改,以在一系列環(huán)境條件下生成逼真的數(shù)據(jù)集。
另一個要點是開啟照明和外觀變化的能力,所有的這些變化都可以通過 SimReady API 和 USD 實現(xiàn)。
( 圖 6 )
DRIVE Sim 的一個主要優(yōu)勢是 RTX 傳感器工作流,它支持各種傳感器(見圖 7),包括用于攝像頭、激光雷達、普通雷達和 USS 的通用和現(xiàn)成模型。此外,DRIVE Sim 還全面支持 NVIDIA DRIVE Hyperion 傳感器套件,允許用戶在虛擬環(huán)境中開始算法開發(fā)和驗證工作。
此外,DRIVE Sim 擁有功能強大、用途多樣的 SDK,支持合作伙伴使用 NVIDIA 的光線追蹤 API 來實現(xiàn)復雜的傳感器模型,同時保護其 IP 和專有算法。多年來,這個生態(tài)系統(tǒng)不斷發(fā)展壯大,而且 NVIDIA 正與合作伙伴合作,將成像雷達、FMCW 激光雷達等新形態(tài)的傳感器引入到 DRIVE Sim 中。
( 圖 7 )
5. Data Writers(數(shù)據(jù)寫入器)
現(xiàn)在,把重點轉移到生成真值數(shù)據(jù),以及如何實現(xiàn)這些信息的可視化。這涉及到仿真流程的最后一個步驟,數(shù)據(jù)寫入器。在這個流程中,會將隨機化的傳感器數(shù)據(jù)發(fā)送給數(shù)據(jù)寫入器,而這些數(shù)據(jù)寫入器可輸出用于訓練自動駕駛感知算法的真值標簽。
數(shù)據(jù)寫入器是一個 Python 腳本,用于生成訓練自動駕駛感知算法所需的真值標簽。
NVIDIA DRIVE Replicator 配有模板寫入器,例如基礎寫入器和 KITTI 寫入器。
其中,基礎寫入器涵蓋了廣泛的真實數(shù)據(jù)標簽,包括對象類、2D 和 3D 中的緊密和松散邊界框、語義和實例掩碼、深度輸出、遮擋、法線等。
類似地,也有激光雷達/普通雷達寫入器,可用于將激光點云數(shù)據(jù)導出為 numpy 數(shù)組,或將隨邊界框、語義和對象標簽一起導出為任何相關的自定義格式。
這些寫入器可為開發(fā)者提供示例,可根據(jù)自定義標記格式配置自己的寫入器,并擴展數(shù)據(jù)生成工作。
最后,為大家介紹一款令人興奮的軟件,Omniverse 團隊傾力打造的 Replicator Insight。
Replicator Insight 是一款基于 Omniverse Kit 構建的獨立應用程序,可用于檢查渲染的合成數(shù)據(jù)集,并疊加用于訓練的各種真值標簽。
Replicator Insight 可支持所有合成數(shù)據(jù)的生成用例,包括 DRIVE、Isaac 和 Omniverse Replicator。
下面來看一個示例(見圖 8):用戶可以在這個可視化工具中加載 DRIVE Replicator 生成的數(shù)據(jù),并為場景中的不同對象類別開啟和關閉不同的真值標簽。
( 圖 8 )
借助這個可視化工具,用戶可以播放視頻、梳理數(shù)據(jù)集,甚至可以在深度和 RGB 數(shù)據(jù)等不同視圖之間進行比較。
用戶還可以更改播放幀率和深度范圍等參數(shù),或者在自動駕駛汽車訓練前快速將數(shù)據(jù)集可視化。
這將幫助開發(fā)者輕松理解新的真值標簽類型和解析復雜的數(shù)據(jù)集。
總的來說,這是一款功能強大的工具,讓用戶在每次查看數(shù)據(jù)時都能獲得新的見解,不管這些數(shù)據(jù)是真實的還是合成的。
小結
以上,總結了 DRIVE Replicator 過去一年的最新發(fā)展,并分享了開發(fā)者可以如何借助 DRIVE Replicator 生成多樣化的合成數(shù)據(jù)集,以及準確的真值數(shù)據(jù)標簽,從而加速自動駕駛汽車的開發(fā)和驗證。NVIDIA 在為各種現(xiàn)實世界用例生成高質量的傳感器數(shù)據(jù)集方面取得了令人欣喜的進展,期待后續(xù)與大家進一步交流!
關于 NVIDIA
自1993年成立以來,NVIDIA (NASDAQ: NVDA) 一直是加速計算領域的先驅。NVIDIA 1999年發(fā)明的GPU驅動了PC游戲市場的增長,并重新定義了現(xiàn)代計算機圖形,開啟了現(xiàn)代AI時代,推動了元宇宙的創(chuàng)建。NVIDIA現(xiàn)在是一家全棧計算公司,其數(shù)據(jù)中心規(guī)模的產品正在重塑整個行業(yè)。
>>點擊查看今日優(yōu)惠<<
-
1哈弗B26官圖發(fā)布 硬派設計+新能源/有望年內推出
- 2新款本田M-NV將于粵港澳車展亮相 電動機功率提升
- 3蔚來全系車型起售價減3萬元 用戶權益同步調整
- 42023款奇瑞艾瑞澤5 PLUS上市 售價7.49萬元起
- 5新一代豐田埃爾法國內現(xiàn)真容!6月21日全球首發(fā)
- 6新款攬勝星脈將于6月16日上市 預售價56.8萬元起
×广汉市| 阿拉善左旗| 平南县| 雅江县| 南郑县| 鹤山市| 松江区| 花莲县| 阳朔县| 新野县| 屯昌县| 龙口市| 连云港市| 张家口市| 香河县| 黄山市| 铜山县| 洞口县| 巴中市| 延津县| 敦化市| 涡阳县| 龙里县| 利川市| 闽清县| 中方县| 东兴市| 延长县| 黄陵县| 南投县| 桐乡市| 南岸区| 都兰县| 揭阳市| 平安县| 花垣县| 建平县| 博客| 衡山县| 武山县| 乐都县| - 2新款本田M-NV將于粵港澳車展亮相 電動機功率提升