在构建用于机器人或自动驾驶车辆的多模态模型时,需要大量的数据,手动标注这些数据是不现实的。合成数据在创建这些模型时发挥了重要作用。过去,已经展示了如何通过在图像背景上随机放置对象、使用最先进的图像生成模型如Stable Diffusion,以及使用Unity Perception等工具来生成合成数据。今天,将重点介绍使用NVIDIA Omniverse Replicator与Roboflow结合真实世界数据和合成3D资产来训练高性能缺陷检测计算机视觉模型的强大功能。
NVIDIA最近举办了他们的全球AI开发者大会GTC,并在会上介绍了“3D合成数据:简化和加速工业工作流程中视觉AI模型的训练”这一主题。他们很好地解释了合成数据的实用性。可以使用GTC登录查看会议内容,点击此处查看幻灯片,或继续阅读以获取回顾。合成数据在构建用于缺陷检测等用例的计算机视觉模型时特别有用,因为通常很难找到关于缺陷的数据。通过合成数据,可以以较低的成本快速生成大量数据。合成数据的两大优势是数据的多样性以及数据附带的完美标注,这些标注是程序生成的。
NVIDIA的演示强调了模型训练流程的步骤:导入数据、构建场景、随机化领域、生成数据和训练模型。有了这个过程,可以将其应用于任何领域。例如,NVIDIA为汽车面板制造商创建了一个缺陷检测模型。他们从50张真实图像开始,并将它们上传到Roboflow作为数据集的基础。他们使用Roboflow Train训练了一个模型,并验证了50张真实图像不足以满足他们生产就绪模型的需求。
为了生成更多的训练数据,NVIDIA团队导入了3D文件来构建场景,然后随机化了场景中的不同领域(颜色、位置、纹理、照明、相机等)。这种详细的领域随机化有助于考虑可能导致模型在生产中失败的边缘情况。使用NVIDIA Omniverse Replicator UI,团队能够控制关键领域,如照明和反射,这有助于使模型在真实世界条件下准确。
一旦合成数据生成并上传到Roboflow,使用合成数据训练模型与真实世界数据相同。NVIDIA团队创建了多个模型来测试哪些变量会导致更好的性能。这包括扩展真实世界数据、使用不同的增强、增加场景变量等。在启动不同变体的并行训练运行后,他们能够生产出高性能的模型。Roboflow仪表板显示了NVIDIA制作的“汽车面板划痕检测”模型的94.5% mAP。
无论训练结果统计数据如何,重要的是在不同环境、照明和不同设备上测试模型。这将有助于确保模型在可能部署的各种位置都能表现良好。
合成数据生成过程是针对每个用例定制的,如何构建管道取决于整体计算机视觉管道。让看看今天可以这样做的两个实际方式。
以下是一个使用TAA Omniverse扩展生成合成数据并自动将其发送到Roboflow的示例。这个扩展允许使用简单的UI自动化领域随机化,并自动将数据上传到正确的Roboflow项目进行模型训练。无需编码。
Dave's Armoury使用合成数据构建了一个使用对象跟踪进行导航的自动躺椅。可以查看数据集,并使用开源Python脚本来随机化Omniverse Replicator中的场景!