Replicator简介

news2025/1/15 7:11:33

Replicator

文章目录

  • Replicator
    • Replicator简介
    • 合成数据训练背后的理论
    • Replicator核心组件
    • 已知的问题

Replicator简介

Omniverse Replicator 是一个高度可扩展的框架,构建在可扩展的 Omniverse 平台上,可生成物理上准确的 3D 合成数据,以加速 AI 感知网络的训练和性能。

Omniverse Replicator 为深度学习工程师和研究人员提供了一套工具和工作流程,用于引导模型训练、提高现有模型的性能或开发由于缺乏数据集或所需注释而无法实现的新型模型。 它允许用户轻松导入模拟就绪资产以构建上下文感知的 3D 场景,通过创建以前不可用的新型数据集和注释来释放以数据为中心的方法。

基于通用场景描述 (USD)、PhysX、材质定义语言 (MDL) 等开源标准,Omniverse Replicator 可以通过可扩展的 Python API 轻松集成或连接到现有管道。

Omniverse Replicator 建立在高度可扩展的 OmniGraph 架构之上,允许用户轻松扩展内置功能以创建满足自己需求的数据集。 它提供了一个可扩展的注释器和编写器注册表,以解决围绕训练 AI 模型所需的注释类型和输出格式的自定义要求。 此外,可扩展随机化器允许创建可编程数据集,从而支持以数据为中心的方法来训练这些模型。

Omniverse Replicator 在 Omniverse Code 中作为一组扩展、内容和示例公开。 有关 Replicator 的详细介绍,请查看此演讲。

合成数据训练背后的理论

为感知任务训练深度神经网络的典型过程涉及手动收集数据(大多数情况下是图像),然后是手动注释这些图像和可选增强的过程。 然后将这些图像转换为 DNN 可用的格式。 然后对 DNN 进行感知任务训练。 超参数调整或网络架构更改是优化网络性能的典型步骤。 对模型性能的分析可能会导致数据集发生潜在变化,但这可能需要另一个手动数据收集和注释周期。 这是一个昂贵的手动过程。

合成数据生成能够以具有成本效益的方式生成具有准确注释的大规模训练数据。 此外,合成数据生成还解决了与长尾异常、没有可用训练数据的引导模型训练以及在线强化学习相关的挑战。

一些更困难的感知任务需要对手动极难完成的图像进行注释(例如,带有遮挡物体的图像)。 以编程方式生成的合成数据可以非常有效地解决这个问题,因为所有生成的数据都被完美地标记了。 数据生成的程序化性质还允许创建有利于 DNN 性能的非标准注释和间接特征。

如上所述,合成数据生成具有许多优点,但要使其有效,还需要解决一系列挑战。

合成数据集是使用模拟生成的; 因此,缩小模拟与现实世界之间的差距至关重要。 这种差距被称为域差距,它可以分为两部分:

  • 外观差距是真实图像和合成图像之间的一组像素级差异。 这些差异可能是由于对象细节、材料的差异,或者在合成数据的情况下,所使用的渲染系统的功能差异造成的

  • 内容差距是指领域之间的差异。 这包括场景中对象的数量、类型和位置的多样性以及类似的上下文信息等因素。

克服这些领域差距的一个关键工具是领域随机化。 域随机化增加了我们为合成数据集生成的域的大小,以尝试确保我们包括最符合现实的范围,包括长尾异常。 通过生成比我们在现实中可能发现的更广泛的数据分布,神经网络可能能够学习更好地概括问题的整个范围。

外观差距可以通过高保真 3D 资产和基于光线跟踪或路径跟踪的渲染,使用基于物理的材料(例如使用 MDL 材料语言定义的材料)进一步解决。 经过验证的传感器模型及其参数的域随机化也可以提供帮助。

在内容方面,需要大量与场景相关的资产。 Omniverse 提供了可用于其他 3D 应用程序的各种连接器。 开发人员还可以编写工具来生成适用于其特定领域的多样化领域场景。

这些挑战给使用合成数据进行训练带来了一层复杂性,因为无法知道在合成数据集中进行的随机化是否能够封装真实域。 要使用合成数据成功训练网络,必须在真实数据集上测试网络。 为了解决任何模型性能问题,我们采用以数据为中心的方法作为第一步,在尝试更改模型架构或超参数之前调整我们的数据集。

这意味着使用合成数据进行训练的过程是高度迭代的。 Replicator 通过将模拟世界转换为一组可学习的参数来实现这种以数据为中心的 AI 训练。 在整个训练过程中,场景可以修改、随机化,资产的分布可以迭代地改变。

Replicator核心组件

Replicator 由六个组件组成,使您能够生成合成数据:

  • 语义模式编辑器需要语义注释(与给定网格相关的“感兴趣的”数据)才能正确使用合成数据扩展。 这些注释告知扩展场景中的哪些对象需要边界框、姿态估计等……语义模式编辑器提供了一种通过 UI 将这些注释应用于舞台上的基元的方法。

  • 可视化工具 Replicator 可视化工具使您能够可视化 2D/3D 边界框、法线、深度等的语义标签。

  • 随机化器:Replicator 的随机化工具允许开发人员轻松创建域随机化场景,从资产、材料、照明和相机位置快速采样。

  • Omni.syntheticdata:Omni.synthetiticdata 是 Replicator 软件堆栈的最低级别组件,它将作为 Omniverse Kit SDK 未来所有版本的内置扩展发布。 omni.syntheticdata 扩展提供与 RTX 渲染器和 OmniGraph 计算图系统的低级集成。这是为 Replicator 的 Ground Truth 提取注释器的计算图提供动力的组件,将任意输出变量或 AOV 从渲染器传递到注释器 .

  • 注释器:注释系统本身从 omni.syntheticdata 扩展中摄取 AOV 和其他输出,为 DNN 训练生成精确标记的注释。

  • 编写器:编写器处理来自注释器的图像和其他注释,并生成用于训练的 DNN 特定数据格式。 编写器可以输出到本地存储,通过网络输出到基于云的存储后端,例如 SwiftStack,未来我们将提供后端用于实时 GPU 训练,允许生成的数据保留在 GPU 上进行训练,避免任何额外的 IO 全部。

在数据集的整个生成过程中,最常见的工作流程是随机化一个场景,选择您的注释器,然后写入您想要的格式。 但是,如果需要更多定制,您可以访问 omni.synthetic 数据。

已知的问题

  • 在 RTX - 实时模式下,材料或纹理有时无法及时加载以进行捕捉。 如果发生这种情况,您可以通过设置 /omni/replicator/RTSubframes 标志(默认值 = 3)来增加捕获之间的间隔。 要在 Python 中设置,carb.settings.get_settings().set(<new value>)。 同样,如果没有材料被随机化,则可以通过将该值设置为最小值 1 来提高捕获速度。

  • 在具有多 GPU 的系统上运行时,可能会出现注释器可视化和数据生成错误。 要禁用多 GPU,请使用 --/renderer/multiGpu/enabled=false 标志启动。

  • 在具有大量 3D 边界框的场景中,可视化器会因框的渲染顺序而闪烁。 这个渲染问题纯粹是美学问题,在写入数据时不会有任何影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/443978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传输线的物理基础(十):特性阻抗的频率变化

到目前为止&#xff0c;我们一直假设传输线的特性阻抗随频率保持不变。正如我们所见&#xff0c;从传输线前端看&#xff0c;输入阻抗与频率密切相关。毕竟&#xff0c;在低频时&#xff0c;远端开路的传输线的输入阻抗看起来像一个电容器&#xff0c;阻抗开始很高&#xff0c;…

JavaScript中的执行上下文和执行栈

执行上下文概念以及理解 执行上下文是评估和执行JavaScript代码环境的抽象概念&#xff0c;但我们在JavaScript中所做的声明变量&#xff0c;声明函数&#xff0c;执行函数。他们都是在执行上下文中运行&#xff0c;也有了所谓的作用域。 执行上下文的类型 执行上下文分为三…

创建vite+vue+electron项目

写在前面的废话 首先&#xff0c;这是一篇缝合文&#xff0c;我的目的就是想用vite、vue结合electron打包一个windows应用&#xff1b;其次&#xff0c;项目只是这三个工具的简单应用&#xff0c;目前还没有往里面添加其他内容。再次&#xff0c;项目过程中参考了google的多篇文…

执行数学的运算

数学是计算机编程的重要能力。遗憾的是&#xff0c;对shell脚本来说&#xff0c;这个处理过程比较麻烦。在shell脚本中两种途径来进行数学运算。 expr命令 最开始&#xff0c;Bourne shell提供了一个特别的命令用来处理数学表达式。expr命令允许在命令行上处理数学数学表达式。…

EMQX vs VerneMQ | 2023 MQTT Broker 对比

引言 EMQX 和 VerneMQ 都是用 Erlang/OTP 开发的高性能、分布式开源 MQTT Broker&#xff0c;以其稳定性、容错性和扩展性著称。 EMQX 是目前全球最受欢迎的 MQTT Broker 之一&#xff0c;而 VerneMQ 项目近年来却没有积极地开发和维护。 本文是《2023 年 MQTT Broker 对比》…

可视化电子标签在仓储管理上的应用

随着经济快速增长和激烈的国内外市场竞争&#xff0c;要求企业运作的每个环节反应要迅速&#xff0c;经济转型要求更趋向改善工作流程、提高作业效率、减低运作成本、增加企业效益成为当务之急。虽然许多企业都有实施库存管理系统&#xff0c;但系统主要以人工盘点和走单据流程…

请收下这些软件测试学习干货,不看后悔一辈子

学习软件测试的过程中会遇到很多很多的困难和挑战&#xff0c;只有跨过这些困难和挑战&#xff0c;才有机会挑战软件测试领域的高薪offer。今天我们就来梳理一下&#xff0c;学习软件测试的过程中&#xff0c;我们一般都会遇到哪些困难&#xff0c;我们又当如何克服这些困难。 …

ChatGPT/大模型+零代码,给中小企业带来哪些机会?

ChatGPT让2023年成了AI之年。正如iPhone在2007年开启了智能手机时代&#xff0c;我们现在正在进入人工智能时代。 新形势下&#xff0c;零代码应如何借势发力&#xff1f;伙伴云“AI零代码”给出了答案。 作为零代码领域的头部平台&#xff0c;伙伴云全量发布【AI零代码应用搭…

暖通空调系统智能化故障检测诊断研究综述与展望

暖通空调系统智能化故障检测诊断研究综述与展望 【摘 要】暖通空调系统智能化化故障检测与诊断对提高运维水平和能源效率具有重要意义。 本文总结了暖通空调故障检测与诊断领域近二十多年来的研究历程&#xff0c;探讨了基于规则、基于模型和基于数据等三类主流方法的优劣&…

一键生成!如何为整个go项目自动添加单测

效果 为go项目中每个go文件生成对应的test文件&#xff0c;为每个接口生成对应的单测接口。 类似于这样&#xff0c;为go项目中每个包都生成一个test文件&#xff0c;单测模板如下&#xff1a; 比如函数接口为func releaseEndpoint(instanceID string, endpointID string) er…

微信小程序中使用 wx.getLocation获取当前详细位置并计算距离

文章目录 前言1&#xff0c;wx.getLocation()2&#xff0c;获取详细地址3&#xff0c;计算距离4&#xff0c;报错信息&#xff1a; getLocation:fail 频繁调用会增加电量损耗5&#xff0c;报错信息&#xff1a; 请求源未被授权 前言 wx.getLocation只能够获取经纬度&#xff0c…

java Maven 的理解

一、maven项目产生的原因 当开发两个Java项目&#xff0c;姑且把它们称为A、B&#xff0c;其中A项目中的一些功能依赖于B项目中的某些类&#xff0c;那么如何维系这种依赖关系的呢&#xff1f; 答&#xff1a;可以将B项目打成jar包&#xff0c;然后在A项目的Library下导入B的ja…

保姆级教程|昨晚撸了一个ChatGPT群聊机器人

前言 近期ChatGPT可以说是太火了&#xff0c;问答、写论文、写诗、写代码&#xff0c;只要输入精确的prompt&#xff0c;他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中&#xff0c;会是怎样一番场景&#xff1f;说做就做&#xff0c;花了1个晚上捣鼓…

ChatGPT与文心一言对比思考

ChatGPT与文心一言对比思考 1. 目前在国内比较广泛被认知的ai模型有什么 我目前通过各种渠道注册到的账号有3个,按照了解到然后注册的顺序分别是 ChatGPTnewbing文心一言 3种ai的注册渠道 ChatGPT注册: 科学上网注册寻找外网手机号发送短信 newbing注册: 科学上网注册微软账…

政企数智办公巡展回顾 | 通信赋能传统行业数智化转型的应用实践

在宏观政策引导、技术革新与企业内部数字化改革需求的共同驱使下&#xff0c;数智办公已经成为各行各业转型升级的必由之路。关注【融云 RongCloud】&#xff0c;了解协同办公平台更多干货。 近期&#xff0c;“连接无界 智赋未来” 融云 2023 政企数智办公巡展在北京、杭州相…

【Java】EnumSet的使用

一、什么是EnumSet? EnumSet是用于枚举类的专用Set集合。 它实现了Set接口并且继承AbstractSet。 当计划使用EnumSet时,必须考虑以下几点: 1、它只能包含枚举值,并且所有值必须属于同一个枚举。 2、它不允许添加 null,在尝试这样做时会抛出NullPointerException。 3、它不…

【SpringCloud AlibabaSentinel实现熔断与限流】

本笔记内容为尚硅谷SpringCloud AlibabaSentinel部分 目录 一、Sentinel 1、官网 2、Sentinel是什么 3、下载 4、特性 5、使用 二、安装Sentinel控制台 1、sentinel组件由2部分构成 2、安装步骤 1.下载 2.运行命令 3.访问sentinel管理界面 三、初始化演示工程 …

KVM虚拟机的磁盘无损扩容方法-qcow2格式的

起因&#xff1a;我的KVM主机上安装了基于Debian11的 虚拟机母鸡&#xff0c;其他虚拟机都由此克隆而来。因为最初只配置了8G的虚拟硬盘&#xff0c;因此在需要占用比较大的空间的应用时&#xff0c;就比较麻烦。度娘等中文搜索结果没找到答案&#xff0c;只能google了。 这里…

JVM系统优化实践(16):线上GC案例(一)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 列举几个实际使用案例说一下GC的问题。一个高峰期每秒10万QPS的社交APP&#xff0c;个人主页模块是流量最大的那个&#xff0c;而一次个人主页的查询&#xff0c…

python文本自动伪原创-ai一键伪原创

chatgpt批量伪原创的优势 ChatGPT是一个由OpenAI开发的强大的自然语言处理模型&#xff0c;它具有批量伪原创的优势&#xff0c;以下是这些优势&#xff1a; 模型能够处理大量的数据&#xff1a;ChatGPT通过训练大规模的语言模型来生成伪原创文本。这个模型拥有一个庞大的语料…