從產品到廢棄物:使用 NVIDIA Omniverse 生成合成廢棄物資料
by 皮安卓, 電腦視覺工程師

AIRECO 已經擁有一個大型的資料集,這些資料是通過傳統方式收集的,也就是拍攝廢棄物的圖片並對其進行標註。雖然這些資料品質良好,且對於訓練我們的 AI 模型有很大的幫助,但仍然存在一些限制:
- 資料不平衡:有些產品使用頻率較高,導致廢棄物資料不平衡
- 物品變化的範圍有限:物品的方向、變形、髒污、光線等條件可能會不同,但我們的模型無法知道這些變化
- 需要標註:雖然某些自動化程序存在,但標註實際資料仍然需要一些人力,這會限制標註影像的速度
- 標註不準確:由於廢棄物種類繁多且可能會變質,標註過程容易出錯,人工標註容易出現更多錯誤
這意味著我們需要以其他方式來擴增資料集,以提高資料質量並減少人力投入。
合成資料生成可以解決這些問題。透過選擇生成的物品,我們可以創建平衡的資料。每個物品都可以進行修改,來表現所有可能的變化。而且,標註會與影像同時自動生成,避免出現錯誤。
我們設計了一個「從產品到廢棄物」的反向方法來獲取廢棄物資料。通常我們會先獲得廢棄物的影像,再推測原始產品進行標註,而在這裡,我們從未經改動的產品 3D 模型開始,並改變它們的狀態,讓它們看起來像廢棄物。這個過程可以分為四個步驟:
- 獲取物品的 3D 模型:這可以透過不同方式來完成,模型可以通過專用相機拍攝、從第三方獲得或從頭開始創建
- 物品改變:對物品進行損壞和髒污的模擬
- 場景創建:多個物品被載入 NVIDIA Isaac Sim,並應用物理效果,讓它們一起掉落到有紋理的背景平面上
- 資料生成:使用 NVIDIA Replicator 生成場景的影像和標註
從固定數量的 3D 模型,我們基本上可以無限生成各種不同的圖片。
我們透過掃描訓練資料中未曾出現過的物件 3D 模型,並從這些模型生成合成影像來驗證此流程。 這些合成影像用於訓練模型,而真實影像則僅用於測試並標記資料。如果只使用合成影像訓練的模型在真實測試影像上表現良好, 表示模型能夠從合成資料中學習。一旦證明此方法有效,我們就能將這些影像納入現有的真實影像資料集。
整體來看,生成合成資料是擴展訓練數據的最佳方式,不僅能提升數量與品質,還能讓我們更精確地控制數據內容。然而,此方法的瓶頸在於物件 3D 模型的初始獲取。 最簡單的方法是使用 3D 感知相機來捕捉模型,但這需要持續的人力投入,且品質可能不穩定。因此,我們希望與製造商合作,直接從源頭獲取 3D 模型,並回饋有價值的數據分析給他們。 另一種方式是從零開始建立模型,這樣能夠完全客製化物件,並實現真正自動化的合成數據生成流程。