使用 Omniverse Replicator 建立自訂合成資料產生工作流程

作者 NVIDIA

現在提供合成資料產生工具與服務的公司及開發人員,可以使用 Omniverse Replicator SDK 建立物理準確的自訂合成資料產生工作流程。Omniverse Replicator SDK 是以 NVIDIA Omniverse 平台為基礎,在 Omniverse Code 中提供測試版。 

Omniverse Replicator 是以可擴充 Omniverse 平台為基礎的高延伸性 SDK,可以產生物理準確的 3D 合成資料,加速 AI 感知網路的訓練和效能。現在開發人員、研究人員和工程師可以使用 Omniverse Replicator,透過大規模擬真合成資料改善和提升現有之深度學習感知模型的效能。 

illustration showing open standards, the scalability with Omniverse Farm, the extensibility of OmniGraph, and the accuracy of live previews.
1Replicator 是使用以 Omniverse 開放標準為基礎的平台以及 OmniGraph Farm 架構提供的延伸性和擴充性

Omniverse Replicator 提供了一個非凡的平台,讓開發人員可以建構符合神經網路要求的合成資料產生應用程式。它是以通用場景描述(Universal Scene Description,USD)、PhysX材質定義語言(Universal Scene Description,MDL)等開放標準為基礎,具備易於使用的 Python API,以及專為延伸性而設計,可以支援自訂隨機化器、註解器和編寫器。使用以 CUDA 為基礎的 OmniGraph 核心註解器功能建置,支援超快速的資料產生,表示可以立即預覽輸出。當Replicator與 Omniverse Farm 和 SwiftStack 輸出結合時,可以在雲端提供大規模的擴充性。

Omniverse Replicator SDK 是由六個適用於自訂合成資料工作流程的主要元件組成:

  • 語意結構描述編輯器:Replicator 可以透過 3D 資產及其 prim 的語意標記,在渲染和資料生成過程中,針對目標物件進行註解。語意結構描述編輯器提供了可以透過使用者介面,將這些標籤套用至現有之 prim 的方式。
  • 視覺化器:提供視覺化功能,分配給 3D 資產的語意標籤以及 2D/3D 定界框、法線、深度等註解。
  • 隨機化器:領域隨機化是 Replicator 最重要的功能之一。您可以使用隨機化器建立隨機化場景,從資產、材質、燈光和攝影機位置取樣,以及其他隨機化功能。 
  • Omni.syntheticdata提供與 Omniverse RTX 渲染器和 OmniGraph 計算圖系統的低層級整合。同時支援 Replicator 的基準真相擷取註解器,將任意輸出變數(Arbitrary Output Variables,AOV)從渲染器傳遞到註解器。
  • 註解器從 Omni.syntheticdata 擴充功能接收 AOV 及其他輸出,產生精確標記的註解,以進行深度神經網路(deep neural network,DNN)訓練。
  • 編寫器:處理來自於註解器的影像及其他註解,並產生 DNN 專用資料格式,以進行訓練。​ 

AI 訓練中的合成資料

為感知任務訓練 DNN 時,通常需要從數百萬張影像中手動收集資料,然後手動針對這些影像和選擇性擴增進行註解。 

Graph showing the process from data collection, annotation, converting data to usable formats for Deep Neural Network training
2資料收集和註解任務圖

手動資料收集和註解是既費力又主觀的事。收集和註解真實影像會造成許多後勤挑戰,包括大規模 2D 定界框等簡單註解。相關註解(例如分割)的資源有限,且手動執行不夠準確。 

Data for DNNs from an outdoor street scene.
3語意分割任務的複雜性

收集和註解後之資料會轉換成 DNN 可以使用的格式,之後針對感知任務訓練 DNN。典型的後續步驟為超參數調整或網路架構變更,可以最佳化網路效能。模型效能分析可能會導致資料集發生潛在變更,但是在大多數情況下,需要另一個手動資料收集和註解週期。此類手動資料收集和註解之迭代週期的成本高昂、冗長,且緩慢。

團隊在擁有以合成方式產生的資料後,即可使用具成本效益之方式透過準確的註解,改善和加強大規模訓練資料產生。此外,合成資料產生也有助於解決與長尾異常、缺乏可用的訓練資料,以及線上強化學習有關的挑戰。有別於手動收集和註解的資料,以合成方式產生之資料的攤銷成本較低,對於資料收集/註解和模型訓練週期的典型迭代性質有益。

Replicator addresses expanded datasets, expanded sensors and annotations, and cost.
4Omniverse Replicator 透過準確的註解進行大規模訓練資料產生

Omniverse Replicator 是利用 Omniverse 平台的許多核心功能和最佳實務,解決這些挑戰,包括但不限於物理準確的真實感資料集以及存取超大型資料集。

物理準確的真實感資料集必須透過 RTX 技術、以物理為基礎的材質以及物理引擎(Omniverse 平台的所有核心技術),進行準確的光線追蹤和路徑追蹤。

Replicator used to create synthetic data for a warehouse use case
5使用 Omniverse Replicator 在倉庫場景中加強感測器註解

通用場景描述(USD)為基礎的 Omniverse 可以無縫連線至其他 3D 應用程式,以便開發人員導入自訂內容或自行編寫工具,以產生不同的領域場景。產生這些資產的瓶頸,通常在於必須跨多個 GPU 和節點進行擴充。 

Omniverse Replicator 是利用 Omniverse Farm,讓團隊使用多個工作站或伺服器支援渲染或合成資料產生等工作。合成資料產生工作流程無法「一勞永逸」。必須在真實資料集上反覆測試網絡,才能成功使用合成資料訓練網路。Replicator 透過將模擬世界轉換成可學習參數集合,提供以資料為中心的 AI 訓練。 

利用 Omniverse Replicator 和 TAO 工具套件加快現有的工作流程 

開發人員、工程師和研究人員可以將 Omniverse Replicator 與現有的工具整合,以加快 AI 模型訓練。例如,在產生合成資料之後,開發人員即可使用 NVIDIA TAO 工具套件快速訓練 AI 模型。TAO 工具套件是利用轉移學習的能力,讓開發人員可以針對使用案例訓練、調整和最佳化模型,而無須事先具備 AI 專業知識。

Graph demonstrating how TAO toolkit can provide feedback to tune dataset generation parameters.
6針對合成資料產生和模型訓練的 Omniverse Replicator TAO 工具套件工作流程

使用 Omniverse Replicator 建構應用程式

Kinetic Vision 是一家系統整合商,為零售、內部物流、消費品製造和包裝消費品領域的大型工業客戶提供服務。他們正在開發以 Omniverse Replicator SDK 為基礎的新型企業應用程式,為客戶提供高品質合成資料方面的服務。

Omniverse Replicator 可以在沒有訓練深度學習模型需要的資料時,生成合成資料,這些資料可以擴增有限的資料集。Lightning AI(前身為 Grid.AI)是使用 NVIDIA Omniverse Replicator,以通用場景描述(USD)為基礎,產生可以訓練這些模型的物理準確 3D 資料集。使用者僅需要拖放 3D 資產,產生資料集之後,即可從最新的先進電腦視覺模型中選擇在合成資料上自動進行訓練。

Lightning application user interface from Lightning AI is built on Omniverse Replicator.
7Lightning AI 應用程式呈現出在 Replicator 產生之合成資料上訓練和測試的 DNN

NVIDIA 的 Isaac SimDRIVE Sim 團隊是利用 Omniverse Replicator SDK 建構特定領域的合成產生工具、適用於機器人的 Isaac Replicator,以及適用於自動駕駛車訓練的 DRIVE Replicator。Omniverse Replicator SDK 提供核心功能,讓開發人員可以利用 Omniverse 平台提供的所有優點,建立特定領域的合成資料產生管道。Replicator 以 Omniverse 做為 3D 模擬、渲染和 AI 開發功能的開發平台,提供自訂合成資料產生工作流程。

Images of NVIDIA Isaac Sim and NVIDIA DRIVE Sim.
8使用 Omniverse Replicator 建構的 NVIDIA Isaac Sim DRIVE Sim合成資料功能

上市時間

現在,Omniverse Replicator SDK 已在 Omniverse Code 中推出,可以從 Omniverse Launcher 下載。 

在需要更多與 Replicator 有關的資訊時,請參考 Replicator 文件及觀看 Replicator 教學。請加入我們的 Discord 伺服器與社群聊天,並參考我們與合成資料產生有關的 Discord 頻道。

探索 Omniverse 資源中心以深入瞭解更多資訊,其中詳細介紹了開發人員如何為平台建立自訂應用程式和擴充功能。

InstagramTwitterYouTubeMedium 上關注 Omniverse,以取得更多資源和靈感。參考 Omniverse 論壇以獲得專家指導。