这篇文章最初发表在 NVIDIA 技术博客上。
数据是 AI 系统的生命线,AI 系统依靠可靠的数据集进行学习并做出预测或决策。具体而言,对于感知 AI 模型而言,数据反映真实环境并整合一系列场景至关重要。这包括通常难以收集数据的边缘用例,例如街头交通和制造装配线。
为了启动和加速计算机视觉模型的训练,AI 和机器学习 (ML) 工程师可以利用合成数据 (SDG) 来生成大量不同的训练数据集,以处理视觉检测、机器人和自动驾驶领域的各种用例。
最新更新的 NVIDIA Omniverse Replicator 是 NVIDIA Omniverse 的核心扩展,基于通用场景描述(OpenUSD)的平台,开发人员可以构建比以往任何时候都更强大的合成数据生成管道。新功能亮点包括:
- 借助基于 YAML 的低代码配置器,为 AI 开发者释放合成数据的强大功能。
- 通过异步渲染扩展整个渲染过程,将传感器模拟与渲染任务分解。
- 借助基于事件的条件触发器,在数据生成过程中实现更高的灵活性。
借助 Omniverse Replicator,开发者能够构建用于训练计算机视觉模型的数据工厂。此外,Replicator 具有高度可定制性和可扩展性,因此能够适应许多计算机视觉工作流程。
Replicator 已集成到 NVIDIA Isaac Sim 机器人和 NVIDIA DRIVE Sim。在 ROSCon 2023 上,NVIDIA 宣布对 NVIDIA Isaac 机器人平台进行重大更新,以简化基于 AI 的高性能机器人应用的构建和测试。
简化的定制解决方案
以前 Replicator 扩展程序的限制要求开发者编写大量代码行,以生成用于模型训练的数据。不熟悉 3D 内容生成的 AI 和 ML 工程师缺乏生成数据的有效方法。
现在,开发者无需为预先存在的场景编写大量代码行,而是可以使用基于 YAML 的描述性文件,使用语法(例如光线、环境、位置)简单地描述要更改的参数。这种方法可以更轻松地将 SDG 参数作为模型创建和性能沿袭的一部分进行跟踪,从而为真正以数据为中心的模型开发方法提供支持。
此外,开发者可以通过使用 YAML 文件和 Replicator 在 Omniverse Farm 上运行 NVIDIA OVX system。用户可以轻松共享和分发代码 recipe,以创建同一文件的新版本,并创建用于数据生成的自动化工作流。
视频 1.学习基于 YAML 的简单工作流程,通过随机化仓库中常见物体的位置来生成训练数据
使用异步渲染扩展合成数据生成
SDG 的世界仿真、传感器仿真和渲染任务通常作为紧密集成的同步应用程序实施。这限制了在不影响性能的情况下模拟传感器以不同速率运行的灵活性。
异步渲染在彼此之间异步运行传感器的模拟和渲染,使用户能够更好地控制整个过程。这使得开发者能够使用多个 GPU 大规模渲染合成数据,从而提高吞吐量。
借助基于事件的触发器,为 SDG 提供出色的灵活性
在 Replicator 中,触发器 指定特定节点(例如 Randomizer 或 Writer)的激活时间。系统支持帧内触发器在每一帧中激活节点,以及*准时触发器,*以设置的时间间隔激活节点。
最新的 Replicator 版本还引入了*条件触发器,*可根据特定事件或条件激活节点。开发者现在可以通过自己的函数建立自定义逻辑,从而对 Randomizer 和 Writer 提供更精细的控制。
使用新版 NVIDIA Isaac Sim 的机器人专家可以使用此功能针对特定事件启动自主移动机器人 (AMR) 的运动。这为控制 SDG 的生成时间和方式提供了可靠的方法,具体取决于模拟事件。
图 1. NVIDIA Isaac Sim 中的条件触发器对用于训练自主移动机器人的场景进行随机化
开始使用 Omniverse Replicator 进行开发
这些只是 Omniverse Replicator 1.10 中用于提升 SDG 流程的部分新功能。如需了解其他功能(包括材质支持、后渲染增强以及 2D 和 3D 散点节点增强),请参阅 Replicator 文档。
开始开发您自己的 SDG 应用程序,请使用 Omniverse Replicator,免费下载 Omniverse 并按照 在 Omniverse Code 中开始使用 Replicator 的指南。
如果您想详细了解 Replicator,请查看 Replicator 教程。欢迎加入 NVIDIA Omniverse Discord 与社区进行交流,并查看 合成数据生成 Discord 频道。
您还可以访问 NVIDIA 开发者论坛,了解 Omniverse 专家提供的信息。