使用 Omniverse Replicator 构建自定义合成数据生成管线
提供合成数据生成工具和服务的企业以及开发者现在可以使用 Omniverse Replicator SDK 构建自定义、物理级精确的合成数据生成管线。Omniverse Replicator SDK 建立在 NVIDIA Omniverse 平台上,目前已在 Omniverse Code 内提供公测版。
Omniverse Replicator 是一个建立在可扩展的 Omniverse 平台上的高度可扩展 SDK,它可以生成物理级精确的 3D 合成数据来加速 AI 感知网络的训练和性能。开发者、研究人员和工程师现在可以使用 Omniverse Replicator 生成的大规模逼真合成数据来引导和提高现有深度学习感知模型的性能。
图1:Replicator 使用基于开放标准的 Omniverse 平台,以及 OmniGraph 和 Farm 架构提供的可延伸性和可扩展性
Omniverse Replicator 为开发者提供了一个可以根据他们的神经网络要求构建特定合成数据生成应用的特殊平台。它建立在通用场景描述(USD)、PhysX 和材质定义语言(MDL)等开放标准之上并带有易于使用的 python API,还具有可扩展性并且支持自定义随机发生器、注释器和写入器。Replicator 通过基于 CUDA 的 OmniGraph 实现核心注释器功能,支持瞬间数据生成,因此可以实时预览输出。当与 Omniverse Farm 和 SwiftStack 输出相结合时,Replicator 可在云中提供大规模的可扩展性。
Omniverse Replicator SDK 由六个用于自定义合成数据工作流程的主要组件组成:
语义模式编辑器:通过对 3D 资产及其 prim 进行语义标记,Replicator 可以在渲染和数据生成过程中对目标对象进行注释。语义模式编辑器提供一种通过用户界面将这些标签应用于 prim 的方式。
可视化器:为分配给 3D 资产的语义标签以及 2D/3D bounding box、法线、深度等注释提供可视化功能。
随机发生器:域随机化是 Replicator 最重要的功能之一。用户可以使用随机发生器创建随机化的场景,从资产、材质、照明和摄像机位置等随机化能力中取样。
Omni.syntheticdata:提供与 Omniverse RTX 渲染器和 OmniGraph 计算图系统的低层次集成,驱动 Replicator 的基准真值数据提取注释器,将任意输出变量(AOV)从渲染器传递到注释器。
注释器:从 Omni.syntheticdata 扩展程序中提取 AOV 和其他输出,生成用于深度神经网络(DNN)训练的精确标记注释。
写入器:处理来自注释器的图像和其他注释,并生成用于训练的 DNN 专用数据格式。
用于 AI 训练的合成数据
为了训练一个用于感知任务的 DNN,通常需要从数百万图像中手动采集数据,然后对这些图像进行手动注释和有选择性的增强。
图2:数据采集和注释任务图
人工数据采集和注释是一项费力而主观的任务。在采集和注释真实图像的过程中,即便只是像大规模 2D bounding box 这样的简单注释也会带来许多人力协调方面的挑战。分割等所涉及到的注释存在资源限制,并且手动执行此类任务时的准确性要差得多。
图3:语义分割任务的复杂性
在采集和注释完毕后,数据将被转换成 DNN 可用的格式,然后训练用于感知任务的 DNN。一般情况下,接下来会通过超参数调节或改变网络结构来优化网络性能。在对模型性能进行分析时,可能会导致数据集发生变化,在大多数情况下,还需要进行一轮手动数据采集和注释,这种人工数据采集和注释的迭代循环是昂贵、乏味且缓慢的。
凭借以合成方式生成的数据,团队就能以一种高成本效益的方式启动和加强带有准确注释的大规模训练数据的生成。此外,合成数据生成还有助于解决与长尾异常、缺乏可用训练数据和在线强化学习有关的挑战。不同于人工采集和注释的数据,以合成方式生成的数据具有较低的摊销成本。由于数据采集/注释和模型训练周期一般具有迭代性,因此这一点十分有益。
图4:使用 Omniverse Replicator 生成带有准确注释的大规模训练数据
Omniverse Replicator 通过利用 Omniverse 平台的众多核心功能和最佳实践来解决这些挑战,包括但不限于物理级精确、逼真的数据集和对超大数据集的访问。
为了生成物理级精确的逼真数据集,需要使用各种 RTX 技术、基于物理学的材质和物理引擎等 Omniverse 平台的所有核心技术进行准确的光线追踪和路径追踪。
图5:使用 Omniverse Replicator 增强仓库场景中的传感器注释
基于通用场景描述(USD)的 Omniverse 可以无缝连接其他 3D 应用,因此开发者可以导入自定义内容或编写自己的工具来生成不同的域场景。由于需要在多个 GPU 和节点上进行扩展,因此这些资产的生成往往会成为瓶颈。
Omniverse Replicator 通过 Omniverse Farm 使团队能够一起使用多个工作站或服务器驱动渲染或合成数据生成等工作。合成数据生成工作流程不是一蹴而就的,为了成功使用合成数据训练网络,必须在真实数据集上反复测试该网络。Replicator 通过将模拟世界转换为一组可学习的参数来提供这种以数据为中心的 AI 训练。
使用 Omniverse Replicator 和 TAO 工具套件加速现有的工作流程
开发者、工程师和研究人员可以将 Omniverse Replicator 与现有的工具进行整合,来加快 AI 模型的训练速度。例如,在生成合成数据后,开发者可以利用 NVIDIA TAO 工具套件快速训练他们的 AI 模型。TAO 工具套件利用迁移学习让开发者无需事先掌握 AI 专业知识,就能根据其用例来训练、调整和优化模型。
图6:用于合成数据生成和模型训练的 Omniverse Replicator 和 TAO 工具套件工作流程
使用 Omniverse Replicator 构建应用
Kinetic Vision 是一家为零售、内部物流、消费性制造和消费性包装品行业的大型客户提供服务的系统集成商。为了向客户提供高质量的合成数据服务,该公司正在开发一个基于 Omniverse Replicator SDK 的新企业应用。
当训练深度学习模型所需的数据不可用时,Omniverse Replicator 会生成可用于增强有限数据集的合成数据。Lightning AI (前身为 Grid.AI)使用 NVIDIA Omniverse Replicator 生成基于通用场景描述(USD)格式、物理级精确的 3D 数据集,这些数据集可用于训练这些模型。用户只需要拖放 3D 资产,然后在数据集生成后,就可以选择最新、最先进的计算机视觉模型并使用合成数据自动训练。
图7:Lightning AI 应用正在基于 Replicator 生成的合成数据来训练和测试 DNN。
NVIDIA Isaac Sim 和 DRIVE Sim 团队使用 Omniverse Replicator SDK 构建特定领域的合成数据生成工具——用于机器人的 Isaac Replicator 和用于自动驾驶汽车训练的 DRIVE Replicator。Omniverse Replicator SDK 为开发者提供一套核心功能,方便开发者利用 Omniverse 平台所提供的所有优势建立任何特定领域的合成数据生成管线。Replicator 通过将 Omniverse 作为 3D 模拟、渲染和 AI 开发能力的开发平台,提供自定义合成数据生成管线。
图8:使用 Omniverse Replicator 构建的 NVIDIA Isaac Sim(左)和 DRIVE Sim(右)合成数据生成能力
使用 Omniverse Replicator
现在可以在 Omniverse Code 中使用 Omniverse Replicator SDK。用户可从 Omniverse Launcher 下载 Omniverse Code。
点击“阅读原文”,了解关于 Omniverse Replicator 的更多信息。