透過 NVIDIA Isaac Sim 和 NVIDIA Isaac Replicator 縮小 Sim2Real 差距

作者 NVIDIA

合成資料(Synthetic Data)是為電腦視覺應用程式訓練機器學習模型時的重要工具。NVIDIA 研究人員在 Omniverse Replicator 中導入結構化領域隨機化系統,可以協助您使用合成資料訓練和精進模型。

Omniverse Replicator 是以 NVIDIA Omniverse 平台為基礎的 SDK,可以建立自訂合成資料產生工具和工作流程。NVIDIA Isaac Sim 開發團隊是使用在 NVIDIA Isaac Sim 應用程式中公開的機器人專用合成資料產生工具套件Omniverse Replicator SDK, 建立 NVIDIA Isaac Replicator。

我們曾經探討在近期的專案中使用從合成環境產生的合成資料。 Trimble 計畫將 Boston Dynamics 的 Spot 部署在各種室內環境和施工環境中。但是 Trimble 必須開發出具成本效益及可靠的工作流程,訓練以 機器學習ML 為基礎的感知模型,以便 Spot 可以在不同的室內環境中自主運作。

使用 NVIDIA Isaac Replicator 中的結構化領域隨機化從合成室內環境產生資料,即可訓練現成的物件偵測模型,偵測真實室內環境中的門。

Collage of doors in indoor room and corridors
1. 1000 張真實影像組成之測試集中的一些影像

Sim2Real 領域差距

由於合成資料集是使用模擬產生,因此必須縮小模擬與真實世界之間的差距。此差距稱為領域差距,可以分為兩部分:

  • 外觀差距: 兩張影像之間的像素層級差異。這些差異可能是物件細節、材質差異,或使用之渲染系統的能力差異 (在合成資料的情況下) 而造成。
  • 內容差距:  係指領域之間的差異。包括場景中的物件數量、類型和位置的多樣性、類似的脈絡資訊等因素。

領域隨機化 (DR) 是克服這些領域差距的關鍵工具,可以增加為合成資料集產生之領域的大小。DR 有助於確保涵蓋最符合真實的範圍,包括長尾異常。透過產生更多的資料,我們可能會發現神經網路可以學習更有效地概化問題的全部範圍​。

使用以物理為基礎的材質 (例如以 MDL 定義的材質),可以透過高保真度 3D 資產以及以光線追蹤或路徑追蹤為基礎的渲染,進一步縮小外觀差距。經過驗證的感測器模型及其參數的領域隨機化也可以提供協助。

建立合成場景

我們透過 NVIDIA Omniverse SketchUp Connector ,將室內場景的 BIM 模型,從 Trimble SketchUp 匯入 NVIDIA Isaac Sim。但是,它看起來很粗糙,模擬與真實之間存有明顯的外觀差距。影片 1 呈現 Trimble_DR_v1.1.usd。

影片 1.透過 SketchUp Omniverse Connector ,將室內場景從 Trimble SketchUp 匯入 NVIDIA Isaac Sim 之後進行啟動

為了縮小外觀差距,我們使用 NVIDIA MDL 為門、牆壁和天花板增加了一些紋理和材質。使場景顯得更逼真。

影片 2.增加 MDL 材質後的室內場景

為了縮小模擬與真實之間的內容差距,我們透過 AI 服務 Omniverse DeepSearch,在場景中增加桌子、辦公椅、電腦裝置、紙箱等道具。Omniverse DeepSearch 讓您可以使用自然語言輸入和影像,在整個目錄中搜尋無標記 3D 資產、物件和角色。

這些資產都可以在 NVIDIA Omniverse 中公開取用。

3D models of chairs of different colors and shapes
2 Omniverse DeepSearch 讓您可以輕鬆標記和搜尋 3D 模型

我們同時為場景增加天花板燈。為了捕捉門方向的多樣性,增加領域隨機化 (DR) 元件,將門的旋轉隨機化,並使用 Xform 模擬門鉸鏈。讓門能以不同的角度開啟、關閉或保持半開。影片 3 呈現包含所有道具的最終場景。

影片 3. 增加道具後的室內場景

合成資料產生

合成資料產生 (SDG) 的迭代過程從此開始。針對目標偵測模型,我們在所有實驗中使用具備 ResNet-18 骨幹的 TAO DetectNet V2 。

我們將所有模型超參數固定為預設值,包括批次大小、學習率、資料集擴增配置參數。在合成資料產生中,反覆調整資料集以產生參數,而不是模型超參數。

Diagram showing the workflow of synthetic dataset generation where synthetic data from 3D assets is improved by feedback obtained from training a model on it and then evaluating it on real data
3. 合成資料產生的迭代過程,是根據模型評估的回饋調整資料集以產生參數

Trimble v1.3 場景包含 500 個光線追蹤影像和環境道具,除門旋轉外,無其他 DR 元件。門紋理保持固定。在此場景進行的訓練,在真實測試集 (大約 1,000 張影像) 上產生 5% 的AP。

從模型針對真實影像的預測可見,模型無法充分偵測真實的門,因為與模擬門的紋理過度擬合。模型在具有不同紋理門之合成驗證資料集上的表現不佳,證實了此點。

另一項觀察是燈光在模擬中穩定不變,在現實中則有多種光照條件。

為了防止與門的紋理過度擬合,我們將門的紋理套用隨機化,在 30 種不同的木質紋理之間隨機變動。為了改變燈光,我們在天花板燈增加了 DR,將燈光的移動、強度和顏色隨機化。由於我們將門的紋理隨機化,現在最重要的是為模型提供一些學習訊號,以瞭解除矩形外,還有哪些元素構成一扇門。我們為場景中所有的門,增加逼真的金屬門把、踢腳板和門框。在來自此改進場景之 500 張影像上進行的訓練,在真實測試集上產生了 57% 的AP。

影片 4. 針對門旋轉、紋理以及燈光顏色和移動增加 DR 元件之後的室內場景

此模型的表現優於之前,但是在測試真實影像中之盆栽和牆上的 QR 碼時,仍做出假陽預測。它在多扇門排成一列之走廊影像上的表現也不佳。它在低溫光照條件下有許多假陽 (圖 5)。

為了使模型可以抗雜訊 (例如牆上的 QR 碼),我們針對具有不同紋理的牆壁紋理套用 DR,包括 QR 碼及其他合成紋理。

我們為場景增加了一些盆栽。因為已經有走廊,所以為了從中產生合成資料,而沿著走廊及天花板燈增加了兩個攝影機。

我們針對光溫及強度、移動和顏色增加了 DR,使模型在不同的光照條件下可以更有效地概化。我們在真實影像中也注意到各種地板,例如閃亮的花崗石、地毯和瓷磚。為了建模,我們套用 DR ,在不同類型的地毯、大理石、瓷磚和花崗石材質之間,將地板材質隨機化。

同樣地,我們增加 了DR 元件,在不同顏色和不同類型的材質之間,將天花板紋理隨機化。我們同時增加了 DR 可見性元件,以在模擬走廊中隨機增加一些推車,希望能最小化模型對真實影像中的推車假陽。

僅在合成資料上進行訓練,於此場景中產生包含 4,000 張影像的合成資料集,在真實測試集上獲得大約 87% 的 AP,達到不錯的 Sim2Real 效能。

影片 5.更多 DR 元件的最終場景

圖 6. 為針自最終模型之真實影像進行的一些推論。

Omniverse 中的合成資料產生

不具備 3D 設計背景的 ML 工程師和資料科學家,也可以利用 Omniverse 連線程式、MDL 以及 DeepSearch 等易於使用的工具建立合成場景。

NVIDIA Isaac Replicator 是透過結構化領域隨機化產生合成資料,輕鬆縮小 Sim2Real 差距。Omniverse即是透過此方式存取合成資料產生,改善以感知為基礎的 ML 專案。

本文介紹的方法應該可以擴充,且應該可以增加目標物件的數量,讓您在想要偵測更多新物件時,可以輕鬆產生新的合成資料。

若需要更多資訊,請參閱下列資源:

若有任何疑問,可以到NVIDIA 開發者論壇區中的 Omniverse 合成資料Omniverse CodeOmniverse Isaac Sim 提出。

或者立即下載包含Omniverse在內超過百種之SDK資源。