美國質量協會(ASQ)的數據顯示,制造商因缺陷而遭受的損失可占其銷售總收入的近 20%。用戶日常使用的電話、汽車、電視和電腦等產品都須通過精密制造產出,方能在各類條件和場景中發揮作用。
基于 AI 的計算機視覺應用正在以更快、更有效的方式幫助制造業檢測制造流程中存在的缺陷,以幫助企業提高產量、保持產品質量的穩定性并減少誤報。事實上,根據谷歌云制造業報告所示,當前已有 64% 的制造企業通過部署 AI 來幫助其開展日常活動,其中有 39% 的制造企業將 AI 用于質量檢查。
驅動相關視覺應用的 AI 模型必須經過訓練和調優,以預測眾多用例中存在的特定缺陷,例如:
-
汽車制造缺陷:如裂紋、車漆瑕疵或誤裝等
-
電信設施缺陷:如蜂窩塔和電線桿上存在裂縫或被腐蝕等
這類感知 AI 模型的訓練需要采集存在特定缺陷的圖像來完成。但這類圖像采集在生產環境中很難做到且成本高昂。
NVIDIA Omniverse Replicator 可生成用于訓練 AI 模型的合成數據,來幫助企業克服數據挑戰。NVIDIA Omniverse 是一個基于通用場景描述(USD)的計算平臺,可賦能個人和團隊開發 3D 工作流和應用。NVIDIA Omniverse Replicator 是 Omniverse 平臺中的一項可擴展的基礎應用。
開發人員可基于 Omniverse Replicator,通過改變各項參數(如缺陷類型、位置、環境照明等),輕松生成不同的數據集來啟動和加快模型訓練與迭代。用戶可通過訪問 Develop on NVIDIA Omniverse 了解更多有關信息。
(https://developer.nvidia.cn/omniverse)
本文將介紹如何充分利用合成數據來訓練對象檢測模型、使用有限的真值數據來進一步提高準確性以及使用模型處理中從未出現過的圖像來對模型進行驗證。本文將基于該方法來展示合成數據在克服真實數據缺失方面存在的價值,以及如何通過模型訓練縮小仿真與現實之間的差距。
開發缺陷檢測模型
以下示例是在車身(錐形前臉)上生成劃痕(如圖 1 所示)。需要注意的是,該工作流程需要使用 Adobe Substance 3D Designer 或存在預先生成的劃痕庫、NVIDIA Omniverse 以及所下載的 USD 格式的樣本。
此工作流以在 Adobe Substance 3D Designer 中創建一組缺陷開始,也就是本示例中的“劃痕”,然后將缺陷與 CAD 零件導入 NVIDIA Omniverse 中,再將 CAD 零件置于特定場景中(例如生產線或車間)并在相應位置放置傳感器或攝像頭。
場景設置完畢后,基于 NVIDIA Omniverse Replicator,以程序性的方式將缺陷置于 CAD 零件上,來生成用于模型訓練和評估的注釋數據。整體的迭代流程將持續進行,直至模型達到預期的關鍵績效指標(KPI)為止。
圖 2:基礎計算機視覺模型訓練流程
創建草圖
磨損和劃痕是制造業常見的表面缺陷。制造業中會使用名為法線貼圖的紋理映射技術在 3D 環境中展現這些紋理。法線貼圖利用 RGB 圖像來表示高度信息,可直接對應 3D 空間中相對于一個表面所對應的 X、Y 和 Z 軸。
本例中使用的法線貼圖是在 Adobe Substance 3D Designer 中所創建的。此外,Blender 或 Autodesk Maya 等多數建模軟件也可用于生成法線貼圖。
圖 3:在 Adobe Substance 3D Designer 中創建的劃痕實例
雖然開發人員可先將劃痕導入 Omniverse,而后再隨機調整其大小和位置。但最好是建立一個完整的法線圖庫并將其以文件形式保存,并用以生成一組具有魯棒性的合成數據。開發人員所生成的法線貼圖應該包含各類形狀和大小,以代表不同程度的劃痕。
場景設置
接下來該進行場景設置了。首先,借助 Omniverse Code 導入相關零件的 CAD 模型。該示例中是導入了一個“SOLIDWORKS.SLDPRT”文件,該文件是 Sierra Cars RX3 賽車的前臉面板模型。
圖 4:Sierra RX3 的完整 CAD 裝配體
在將 CAD 文件導入 Omniverse 后,可對場景背景進行設置以便能盡可能接近基于真值數據構建的環境。本示例是使用了車間的激光雷達掃描圖。
圖 5:在 Omniverse 中組裝 USD 格式的場景,并將不同材質應用于面板中并將其置于車間掃描圖中
為方便復制,此示例中還將背景和 CAD 模型整合成為了可在 Omniverse Exchange 中下載的 USD 場景。
使用擴展程序來構建隨機化劃痕
為了給該模型創建一個多樣化的訓練數據集,開發人員需要生成各種合成劃痕以反映不同劃痕可能留下的不同類型的痕跡。該示例使用了基于 Omniverse Kit 構建的參考擴展程序以隨機化劃痕的位置、大小和角度。詳情請訪問 GitHub 上的 NVIDIA-Omniverse/kit-extension-sample-defectsgen 了解。
圖 6:Omniverse 中的 Defects Sample Extension
需注意的是,該參考擴展程序用于操作可將法線貼圖作為紋理投射到 CAD 零件表面的 proxy 對象。改變擴展程序中的參數實際上是在改變投射紋理的立方體大小和形狀。
圖 7:示例 - 在 CAD 零件表面程序性生成劃痕
利用所需參數運行擴展程序后,將能夠輸出一組帶注釋的參考圖像并將以 .png、.json 和 .npy 文件格式保存至一個可利用擴展程序進行定義的文件夾中。
模型訓練和驗證
Omniverse 擴展程序輸出的是可用于大量本地或云端模型訓練平臺的標準文件格式。此外,開發人員還可以通過構建自定義寫入器來格式化相關數據,以便將其用于特定的模型和平臺之中。
該示例中開發人員建立了一個可將輸出結果導入 Roboflow 的自定義 COCO JSON 寫入器。Roboflow 是一個可用于訓練和部署計算機視覺模型的網絡平臺。
圖 8:Roboflow 中完整的合成數據集
開發人員首先是在 Roboflow 用戶界面中使用了一組包含 1000 張合成圖像數據集來訓練 YOLOv8 模型,以加快對象檢測速度。這項操作的主要目的在于查看模型在該數據集中的表現情況,這僅僅只是一個開始。模型訓練是一個迭代過程,因此訓練伊始可以使用規模較小的數據集,而后在迭代中持續擴大數據集的規模并提升數據集的多樣性。
圖 9:合成數據生成所產出的初步結果顯示模型準確率為 74%、34% 和 39%
雖然初始模型展示的結果較好,但并不完美(如圖 9 所示)。在初始模型中仍存在以下缺陷:
-
未有效檢測出長劃痕
-
捕捉了反光邊緣
-
車間地板上的劃痕也被包含在內
為解決這些問題,可以采取以下解決措施:
-
調整擴展程序參數以涵蓋長度更長的劃痕
-
在所生成的場景中加入零件的更多角度
-
改變照明和背景場景
另一個辦法是使用真值圖像來強化合成數據。雖然 Replicator 會對文件進行自動注釋,但該示例中仍使用了 Roboflow 的內置工具來進行手動注釋。
圖 10:Roboflow 內置用于手動注釋圖像的工具
通過上述調整可訓練該模型于每張驗證圖像中發現更多的劃痕,甚至能在置信度閾值更高的情況下來完成此操作。
圖 11:通過 Roboflow 用戶界面調整模型參數
入門
事實上在現實世界中,并非總是能夠獲得足夠的真值圖像。開發人員可以使用 NVIDIA Omniverse Replicator 生成的合成數據來縮小仿真與現實之間的差距。
如若想要自行生成合成數據,開發人員需先下載 NVIDIA Omniverse。
(https://developer.nvidia.cn/omniverse/get-started)
用戶可以從 GitHub 下載并安裝參考擴展程序,并使用 Omniverse Code 來探索相關工作流,而后通過修改代碼來構建自定義的缺陷檢測生成工具。此外,用戶還可以通過 Omniverse Exchange 上的缺陷檢測演示包來訪問配套的 USD 文件和樣本。
用戶可點擊“閱讀原文”,免費下載標準許可證以使用 NVIDIA Omniverse,或在 Omniverse 頁面了解 Omniverse Enterprise 如何連接企業團隊。
?
即刻掃描下方海報二維碼,在 NVIDIA On-Demand 上觀看 GTC 精選回放,包括主題演講相關精選、中國本地精選內容、生成式 AI 專題以及全球各行業及領域最新成果!
原文標題:如何使用 NVIDIA Omniverse Replicator 生成的合成數據訓練缺陷檢測模型
文章出處:【微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3771瀏覽量
90991
原文標題:如何使用 NVIDIA Omniverse Replicator 生成的合成數據訓練缺陷檢測模型
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論