Technical Walkthrough

Trimble 利用合成数据生成和 NVIDIA ISAAC Sim 探索自主机器人训练的加速

将一个自主机器人部署到一个新的环境可能是一个艰难的命题。你如何才能确信机器人的感知能力足够强大,因此能够安全地按计划执行任务?

Trimble 在开始制定计划,将 Boston Dynamics 的 Spot 部署在各种室内环境和施工环境中时,面临着这一挑战。 Trimble 需要将机器学习( ML )模型调整到精确的室内环境,以便 Spot 能够在这些不同的室内环境中自主操作。

Trimble 新兴技术副总裁 Aviad Almagor 表示:“当我们将配备数据采集传感器和现场控制软件的 Spot 部署到室内环境时,我们需要开发一个经济高效且可靠的工作流程来培训基于 ML 的感知模型。”。

“这一战略的核心是分析合成环境的能力。使用 NVIDIA 上的 NVIDIA Omniverse Sim ,我们可以从 Trimble SketchUp 等 CAD 工具无缝导入不同的环境。然后生成完全标记的地面真实合成数据就成了一个简单的练习。”

Image consists of a modern office building viewed in SketchUp’s user interface.
图 1 。在三维建模应用程序 Trimble SketchUp 中查看办公楼

为了确保模型可靠地工作,从事机器人技术和自动化应用程序的开发人员需要包含目标环境所有资产的各种数据集。对于室内,列表 MIG ht 包括隔墙、楼梯、门、窗和家具等资产。

虽然这些数据集可以由真正的摄影师和人类贴标员手动构建,但这种方法需要大量的预先规划和高成本,并且通常在项目启动时关闭大门。使用 合成数据,您可以引导您的 ML 培训并立即开始。

构建此数据集时,可以选择包含分段数据、深度数据或边界框。这些贴有完美标签的地面真相数据可以打开许多探索之门。有些东西,如三维边界框,可以很容易地获得综合,而他们是出了名的难以手动标签。

在本文中,我们概述了使用模拟生成的合成数据构建培训工作流所采取的步骤。尽管此工作流包括复杂的模拟和 ML 技术,但完成此项目所需的步骤很简单:

  1. 将环境从 CAD 导入NVIDIA Omniverse 平台。
  2. 使用 NVIDIA Omniverse Sim 卡构建合成数据集。
  3. 使用 NVIDIA TAO toolkit对 ML 模型进行培训。

将环境从 Trimble SketchUp 导入 NVIDIA Omniverse

在这个项目中, Trimble SketchUp提供了环境,这是一个用于设计建筑的 3D 建模应用程序。要导入资源, NVIDIA Omniverse 支持场景描述的 USD 格式。 SketchUp 模型转换为 USD ,并使用 Omniverse 连接器之一导入。有关更多信息,请参阅什么是 NVIDIA Omniverse 连接?

为确保正确导入所有资产,您必须使用 NVIDIA ISAAC Sim 卡或 Omniverse 中的创建或查看应用程序检查环境。在某些情况下,此过程可能需要几次迭代,直到环境在 Omniverse 中得到满意的表示。

Image shows the process chart of importing a scene into Omniverse, evaluating the scene, and making changes until the scene is satisfactory and can be successfully used in NVIDIA Isaac Sim.
图 2 。将 SketchUp 场景导入 Omniverse 的过程
Importing the scene from SketchUp into Omniverse.
图 3 。导入到 Omniverse 和 Trimble 的 SketchUp 中的原始场景(右)后,同一办公楼的并排视图(左)
视频 1 。将场景从 SketchUp 导入 Omniverse

使用 NVIDIA ISAAC Sim 构建合成数据集

合成数据是计算机视觉应用中训练 ML 模型的重要工具,但收集和标记真实数据可能耗时且成本高昂。此外,收集角落案例的真实训练数据有时可能很棘手,甚至是不可能的。例如,想象一下,训练一辆自动驾驶汽车正确识别和反应,以确保穿过繁忙街道的行人的安全。在交通繁忙的人行横道上拍照是鲁莽和危险的。

由于 Trimble 计划在不同的环境中为不同的用例部署自主机器人,他们面临着一个训练数据难题:如何在合理的时间范围内以合理的成本为这些模型安全地获得正确的训练数据集?

NVIDIA ISAAC Sim 内置的合成数据生成功能直接解决了这一挑战。有关更多信息,请参阅什么是 Omniverse ISAAC Sim 卡?

生成合成数据集的关键要求是为正在部署的 ML 模型支持正确的传感器集。如后一示例中所述, NVIDIA ISAAC Sim 支持使用边界框、深度和分割渲染图像,这些对于帮助机器人感知周围环境都很重要。 NVIDIA ISAAC Sim 还支持激光雷达和超声波传感器( USS )等其他传感器,在某些机器人应用中可能会很有用。

Image shows different boxes of synthetic data generated in NVIDIA Isaac Sim: the RGB, instance segmentation, and semantic segmentation images, as well as the 3D bounding
图 4 。 NVIDIA ISAAC Sim 中生成的合成数据,显示 RGB 、分段和边界框

生成合成数据的另一个超级能力是领域随机化。域随机化改变定义模拟场景的参数,例如场景中材质的照明、颜色和纹理。其主要目标之一是通过在仿真中将神经网络暴露于各种域参数来增强 ML 模型的训练。这有助于模型在遇到真实场景时很好地概括。实际上,这种技术有助于让模型知道应该忽略什么。

NVIDIA ISAAC Sim 中的可随机化参数:

  • Color
  • Movement
  • Scale
  • Light
  • Texture
  • Material
  • Mesh
  • Visibility
  • Rotation
视频 2 。从导入的场景生成合成数据
Image of an office environment where the chair and doors have been rendered with randomized parameters. The chairs are shown with random colors and the doors feature random textures.
图 5 。 NVIDIA ISAAC Sim 中的域随机化场景

使用 NVIDIA TAO 工具包培训 ML 模型

图 6 显示了预训练模型和专有数据(真实或合成)作为输入,定制模型作为输出。

Image shows two inputs to TAO Toolkit: pre-trained model and proprietary data. The output is a customized model.
图 6 。 TAO 工具包的功能框图

图 7 显示,模拟器可以从 ROS 和 Python 两方面进行控制。模拟器的输出包括数字孪生和合成数据,可用于训练感知模型。

Image shows three inputs to NVIDIA Isaac Sim: robot model, environment model, and 3D assets.
图 7 。 NVIDIA 上 NVIDIA Omniverse Sim 的功能框图

生成数据集后,将其正确格式化以使用 NVIDIA TAO 工具包,可以大大减少培训模型的时间和费用,同时确保模型的准确性和性能。该工具包支持分割、分类和对象检测模型。

NVIDIA ISAAC Sim 中综合生成的数据集以 KITTI 格式输出,以便与 TAO 工具包无缝使用。有关在 NVIDIA ISAAC Sim 卡中输出数据以进行培训的更多信息,请参阅使用 TLT 进行离线培训

与真实数据相比,使用合成数据集时,可能需要迭代数据集以获得更好的结果。图 8 显示了使用合成数据集进行训练的迭代过程。

Process chart shows that, after the model performance is evaluated, new synthetic data is generated to improve model performance.
图 8 。迭代训练以提高模型性能

概括

Trimble 面临着一个非常普遍的挑战,即在一个经济高效的工作流程中为自主机器人的 ML 模型获取训练数据。这一挑战的解决方案是利用 NVIDIA Omniverse 中连接器的功能,将 CAD 数据高效导入 USD 。然后,数据可以被带入 NVIDIA ISAAC Sim 卡。

在模拟器中, ISAAC Sim 强大的合成数据功能使生成所需数据集变得简单。您可以提供合成数据,以实现更高效的培训工作流和更安全的自主机器人操作。