当前位置: 首页 > 科技赋能

如何使用 NVIDIA Omniverse Replicator 生成的合成数据训练缺陷检测模型

时间:2024-05-19 15:55:13 科技赋能

美国质量协会 (ASQ) 的数据显示,制造商因缺陷而遭受的损失可占其总销售收入的近 20%。

用户每天使用的手机、汽车、电视和计算机等产品必须经过精密制造,才能在各种条件和场景下发挥作用。

基于人工智能的计算机视觉应用正在帮助制造业以更快、更高效的方式检测制造过程中的缺陷,从而帮助企业提高产量、保持产品质量稳定性并减少误报。

事实上,根据谷歌云制造报告,目前有 64% 的制造企业部署人工智能来帮助其日常活动,其中 39% 使用人工智能进行质量检查。

驱动相关视觉应用的人工智能模型必须经过训练和调整,以预测众多用例中存在的特定缺陷,例如: 汽车制造缺陷:例如裂纹、油漆缺陷或组装错误 半导体和电子产品缺陷:例如印刷电路板( PCB)元件错位、破损、焊点过多或有灰尘或头发等异物。

电信设施缺陷:例如手机信号塔和电话杆的裂缝或腐蚀。

这种类型的感知人工智能模型的训练需要收集具有特定缺陷的图像的完整存在。

但在生产环境中进行这种类型的图像采集非常困难且昂贵。

NVIDIA Omniverse Replicator 通过生成用于训练 AI 模型的合成数据来帮助企业克服数据挑战。

NVIDIA Omniverse 是一个基于通用场景描述 (USD) 的计算平台,使个人和团队能够开发 3D 工作流程和应用程序。

NVIDIA Omniverse Replicator 是 Omniverse 平台内的可扩展基础应用程序。

基于Omniverse Replicator,开发者可以通过改变各种参数(如缺陷类型、位置、环境光照等)轻松生成不同的数据集,启动并加速模型训练和迭代。

用户可以通过访问 NVIDIA Omniverse 上的开发来了解更多信息。

(如图1所示)。

请注意,此工作流程需要使用 Adob??e Substance 3D Designer 或存在预生成的暂存库、NVIDIA Omniverse 以及 USD 格式的下载示例。

图 1:该模型基于犹他州 Sierra Cars 设计和制造的汽车,该公司生产结构坚固的越野车。

此工作流程首先在 Adob??e Substance 3D Designer 中创建一组缺陷(在本例中为“Scratch”),然后将缺陷和 CAD 部件导入 NVIDIA Omniverse,然后将 CAD 部件放置在特定场景(例如生产线或车间)中。

)并将传感器或摄像头放置在相应位置。

设置场景后,将使用 NVIDIA Omniverse Replicator 将缺陷按程序放置在 CAD 部件上,以生成用于模型训练和评估的注释数据。

整个迭代过程持续进行,直到模型达到所需的关键绩效指标 (KPI)。

图 2:创建草图的基本计算机视觉模型训练过程 磨损和划痕是制造中常见的表面缺陷。

制造使用称为法线贴图的纹理贴图技术来在 3D 环境中表示这些纹理。

法线贴图使用 RGB 图像来表示高度信息,其直接对应于 3D 空间中相对于表面的 X、Y 和 Z 轴。

本示例中使用的法线贴图是在 Adob??e Substance 3D Designer 中创建的。

此外,大多数建模软件(例如 Blender 或 Autodesk Maya)都可用于生成法线贴图。

图 3:在 Adob??e Substance 3D Designer 中创建的 Scratch 实例 尽管开发人员可以将划痕导入 Omniverse,然后随机调整其大小和位置。

但最好构建一个完整的正常库并将其保存为文件,并使用它生成一组强大的合成数据。

开发人员生成的法线贴图应包括各种形状和尺寸,以表示不同级别的划痕。

场景设置 接下来是设置场景的时候了。

首先,借助Omniverse Code导入相关零件的CAD模型。

在本例中,导入了“SOLIDWORKS.SLDPRT”文件,该文件是 Sierra Cars RX3 赛车的前面板模型。

图 4:Sierra RX3 的完整 CAD 组装 将 CAD 文件导入 Omniverse 后,可以将场景背景设置为尽可能类似于根据地面实况数据构建的环境。

此示例使用车间的激光雷达扫描。

图 5:在 Omniverse 中以 USD 格式组装场景,将不同的材质应用于面板并将它们放置在商店扫描中。

为了便于复制,此示例还将背景和 CAD 模型集成到可在 Omniverse Exchange 中使用的模板中。

下载场景。

使用扩展构建随机划痕 为了为模型创建多样化的训练数据集,开发人员需要生成各种合成划痕,以反映不同划痕可能留下的不同类型的标记。

此示例使用基于 Omniverse Kit 构建的参考扩展来随机化划痕的位置、大小和角度。

有关详细信息,请访问 GitHub 上的 NVIDIA-Omniverse/kit-extension-sample-defectsgen。

图 6:Omniverse 中的缺陷示例扩展 请注意,此参考扩展用于操作将法线贴图作为纹理投影到 CAD 零件表面的代理对象。

更改扩展中的参数实际上会更改投影纹理的立方体大小和形状。

图 7:示例 - CAD 零件表面划痕的程序生成。

使用所需参数运行扩展程序后,您将能够输出一组带注释的参考图像,并将它们以 .png、.json 和 .npy 文件格式保存到使用扩展程序定义的文件夹中。

模型训练和验证 Omniverse 扩展输出标准文件格式,可在各种本地或云模型训练平台上使用。

此外,开发人员可以构建自定义编写器来格式化数据以供特定模型和平台使用。

在此示例中,开发人员构建了一个自定义 COCO JSON 编写器,用于将输出导入 Roboflow。

Roboflow 是一个用于训练和部署计算机视觉模型的网络平台。

图 8:Roboflow 中的完整合成数据集 开发人员首先使用 Roboflow 用户界面中的合成图像数据集训练 YOLOv8 模型,以加快对象检测速度。

这个操作的主要目的是看看模型在这个数据集上的表现如何,而这只是一个开始。

模型训练是一个迭代过程,因此您可以使用较小的数据集开始训练,并通过迭代继续增加数据集的大小和多样性。

图 9:合成数据生成的初步结果显示模型准确度分别为 74%、34% 和 39%。

虽然初始模型显示出良好的结果,但它并不完美(如图 9 所示)。

初始模型仍存在以下缺陷: · 长划痕未能有效检测 · 反光边缘被捕获 · 车间地面的划痕也包含在内 为了解决这些问题,可以采取以下解决方法: · 调整扩展参数以覆盖更长的划痕长度 · 将更多的零件角度纳入生成的场景 · 更改照明和背景场景 另一种方法是使用地面实况图像来增强合成数据。

尽管 Replicator 自动注释文件,但本示例使用 Roboflow 的内置工具进行手动注释。

图 10:Roboflow 用于手动注释图像的内置工具。

上述调整训练模型在每个验证图像中找到更多划痕,即使在更高的置信度阈值下也是如此。

图 11:开始通过 Roboflow 用户界面调整模型参数 事实上,在现实世界中,并不总是可以获得足够的地面实况图像。

开发人员可以使用 NVIDIA Omniverse Replicator 生成的合成数据来缩小模拟与现实之间的差距。

要生成自己的合成数据,开发人员需要下载 NVIDIA Omniverse。

(GitHub 下载并安装参考扩展并使用 Omniverse Code 探索工作流程,然后修改代码构建自定义缺陷检测生成工具。

此外,用户还可以通过 Omniverse Exchange USD 文件上的缺陷检测演示包访问该包和样品。