根據美國質量協會( ASQ )的說法,缺陷會讓制造商付出 幾乎占總銷售收入近20%的代價。我們每天互動的產品,如手機、汽車、電視和電腦,需要精確制造,以便在不同的條件和場景下提供價值。
基于人工智能的計算機視覺應用程序正在幫助發現制造過程中的缺陷,比傳統方法更快、更有效,使公司能夠提高產量,交付質量一致的產品,并減少誤報。事實上,根據一項研究,如今 64% 的制造商已經部署了人工智能來幫助日常活動, Google Cloud生產報告指出39% 的制造商使用人工智能進行質量檢查.
為這些視覺應用提供動力的人工智能模型必須經過訓練和調整,以預測許多用例中的特定缺陷,例如:
- 汽車制造缺陷,如裂紋、油漆缺陷或裝配不當
- 半導體和電子產品缺陷,如 PCB 上的組件錯位、焊點斷裂或過多,或灰塵或毛發等異物
- 電信缺陷,如裂縫、蜂窩塔和電線桿腐蝕
訓練感知人工智能模型需要收集特定缺陷的圖像,這在生產環境中既困難又昂貴
NVIDIA Omniverse Replicator可以通過生成合成數據以引導人工智能模型訓練過程。 Replicator 是中的一個可擴展基礎應用程序NVIDIA Omniverse,一個使個人和團隊能夠開發的計算平臺Universal Scene Description (USD)– 基于三維工作流和應用程序。
開發人員可以使用 Omniverse Replicator 通過改變許多參數(如缺陷類型、位置、環境照明等)來輕松生成不同的數據集,以引導和加快模型訓練和模型迭代。參觀Develop on NVIDIA Omniverse了解更多信息。
這篇文章解釋了如何使用合成數據,利用有限的地面實況數據進一步提高了其準確性,并將其與模型從未見過的圖像進行了驗證。使用這種方法,我們展示了用合成數據克服真實數據不足的價值,并展示了如何在模型訓練過程中減少模擬與現實的差距
開發缺陷檢測模型
這個例子在汽車面板(前鼻錐)上產生劃痕,如圖 1 所示。請注意,此工作流需要Adobe Substance 3D Designer或預先生成的劃痕庫、 NVIDIA Omniverse 和基于下載的 USD 的樣本。

整個工作流程從創建一組缺陷劃痕開始,在本例中是在 Adobe Substance 3D Designer 中,并將這些缺陷劃痕與 CAD 零件一起導入 NVIDIA Omniverse 。然后將 CAD 零件放置到場景(例如,制造車間或車間)中,并將傳感器或相機放置在所需位置
場景設置后,使用 NVIDIA Omniverse Replicator 將缺陷按程序應用到 CAD 零件上,該 Replicator 生成注釋數據,然后用于訓練和評估模型。這個迭代過程一直持續到模型達到所需的 KPI 為止

創建劃痕
擦傷和劃痕是制造過程中常見的表面缺陷。一種稱為法線映射用于在 3D 環境中表示這些紋理。法線貼圖是高度信息的 RGB 圖像表示,其與 3D 空間中相對于曲面的 X 、 Y 和 Z 軸直接對應。
本例中使用的法線貼圖是在 Adobe Substance 3D Designer 中創建的,但也可以在大多數建模軟件(如Blender或Autodesk Maya.

盡管一旦劃痕被帶到 Omniverse 中,就可以對劃痕的大小和位置進行隨機化,但最好建立一個保存在文件夾中的整個法線圖庫,以生成一組穩健的合成數據。這些法線貼圖應該是各種形狀和大小,代表不同嚴重程度的劃痕。
設置場景
現在,是時候設置場景了。首先,打開 Omniverse 代碼import the CAD model of the part。在本例中,我們從中導入了 RX3 賽車手鼻板的 SOLIDWORKS.SLDPRT 文件Sierra Cars.

將 CAD 文件導入 Omniverse 后,將場景的背景設置為盡可能靠近地面實況數據的環境。在這種情況下,我們對車間進行了激光雷達掃描

為了便于復制,我們將背景和 CAD 模型合并為 USD 場景,可在上下載Omniverse Exchange.
使用擴展來隨機化劃痕
為了為模型創建一組不同的訓練數據,有必要生成各種合成劃痕。本示例使用 Omniverse Kit 上構建的參考擴展來隨機化劃痕的位置、大小和旋轉。有關更多詳細信息,請訪問NVIDIA-Omniverse/kit-extension-sample-defectsgen在 GitHub 上。

應該注意的是,該參考擴展是為了操作代理對象而構建的,該代理對象將法線貼圖作為紋理投影到 CAD 零件的表面上。通過更改擴展中的參數,實際上是在更改投影紋理的立方體的大小和形狀

在使用所需參數運行擴展后,輸出將是一組帶注釋的參考圖像,保存到文件夾中(可以通過擴展定義),作為. png 、. json 和. npy 文件。
模型培訓和驗證
Omniverse 擴展的輸出是標準文件格式,可以與許多本地或基于云的模型訓練平臺一起使用,但custom writer可以被構建為格式化數據以與特定模型和平臺一起使用
對于這個演示,我們構建了一個自定義的 COCO JSON 編寫器,將輸出引入Roboflow,一個基于瀏覽器的平臺,用于訓練和部署計算機視覺模型。

通過 Roboflow 用戶界面,我們從一組 1000 張合成圖像開始訓練 YOLOv8 模型,該模型是根據其對象檢測速度選擇的。這只是了解模型如何使用此數據集的一個起點。考慮到模型訓練是一個迭代過程,最好從小處著手,在每次迭代中提高數據集的大小和多樣性

最初模型的結果很有希望,但并不完美(圖 9 )。對初始模型的一些觀察結果包括:
- 長劃痕檢測不好
- 捕捉到反光邊緣
- 車間地板上的劃痕也包括在內
解決這些問題的可能補救措施包括:
- 調整延伸參數以包括更長的劃痕
- 在生成的場景中包括零件的更多角度
- 改變照明和背景場景
用地面實況圖像增強合成數據是另一種策略。盡管 Replicator 中的文件是自動注釋的,但我們使用 Roboflow 內置工具進行手動注釋。

通過上面描述的一些調整,我們能夠訓練模型在每個驗證圖像上拾取更多的劃痕,即使在更高的置信閾值下也是如此。

開始
在現實世界中,并不總是能夠獲得更多的地面實況圖像。您可以使用NVIDIA Omniverse Replicator.
為了開始自己生成合成數據,下載 NVIDIA Omniverse.
你可以下載并安裝來自 Github的參照插件和使用Omniverse Code探索工作流程。然后通過修改代碼來構建您自己的缺陷檢測生成工具。可以通過 Omniverse Exchange 上的缺陷檢測演示包訪問附帶的 USD 文件和示例內容。有關擴展的其他技術詳細信息,請參閱Omniverse Documentation.
下載標準許可證,開始使用 NVIDIA Omniverse,或學習如何Omniverse 企業版可以協助您的團隊。如果你是一名開發人員,可以開始使用 Omniverse資源。
?