从未见过现实世界数据,MIT在虚拟环境中训练出机器狗,能跑酷
mhr18 2024-12-16 11:47 23 浏览 0 评论
机器之心报道
编辑:杜伟
如今,机器人学习最大的瓶颈是缺乏数据。与图片和文字相比,机器人的学习数据非常稀少。目前机器人学科的主流方向是通过扩大真实世界中的数据收集来尝试实现通用具身智能,但是和其他的基础模型,比如初版的 StableDiffusion 相比,即使是 pi 的数据都会少七八个数量级。MIT 的这个团队希望用生成模型来作为机器人学习的新数据源,用工程手段来取代传统的数据收集,实现一条通过由生成模型加持的物理仿真来训练机器人视觉的技术路线。
随着机器人在训练过程中持续进化,进一步提升技能所需的数据也在增长。因此获取足够的数据对于提升机器人的性能至关重要,但在当前实践中,针对新场景和新任务获取数据是一个从头开始不断重复的手动过程。
另一种替代方法则是在模拟环境中训练,从中可以对更多样化的环境条件进行采样,并且机器人可以安全地探索故障案例并直接从它们自己的行为中学习。尽管业界已经在模拟物理和渲染方面投入了大量资金,但目前为实现真实性所做的最佳实践仍与现实存在差距。
一方面渲染真实的图像意味着要制作细致、逼真的场景内容,但大规模手动制作此类内容以获得机器人 sim-to-real(模拟到现实)迁移所需要的多样性,成本过高。另一方面,如果缺少多样化和高质量的场景内容,在模拟环境中训练的机器人在迁移到真实世界时表现得太脆弱。
因此,如何在无限的虚拟环境中匹配现实世界,并将色彩感知融入到 sim-to-real 学习中,这是一个关键挑战。
近日, MIT CSAIL 的研究者开发出了一套解决方案,他们将生成模型作为机器人学习的新数据源,并使用视觉跑酷(visual parkout)作为试验场景,让配备单色相机的机器狗快速攀爬障碍物。
研究者的愿景是完全在生成的虚拟世界中训练机器人,而核心在于找到精确控制语义组成和场景外观的方法,以对齐模拟物理世界,同时保持对于实现 sim-to-real 泛化至关重要的随机性。
- arXiv 地址:https://arxiv.org/pdf/2411.00083
- 项目主页:https://lucidsim.github.io/
- 论文标题:Learning Visual Parkour from Generated Images
下图 2 为本文 LucidSim 方法概览:采用了流行的物理引擎 MuJoCo,并在每一帧上渲染了深度图像和语义掩码,这些一起被用作深度条件 ControlNet 的输入。然后从已知的场景几何和相机姿态变化中计算真值密集光流,并在接下来的六个时间步中扭曲原始生成帧以生成时间一致的视频序列。
在学习方面,研究者训练的视觉策略分为两个阶段完成:首先优化策略以模拟从特权教师收集的 rollout 中获得的专家行为。在经过这一预训练步骤后,策略表现不佳。因此,后训练步骤包括从视觉策略本身收集 on-policy 数据,并与当前收集的所有数据的学习交错进行。重复这一步骤三次使得该视觉策略显著提升了自身性能。
研究者表示,该策略足够稳健,在他们的测试场景中可以将零样本转换为真实世界的色彩观察。
下面我们来看一段视频展示:
机器之心
,赞91
LucidSim:利用物理引导生成多样化视觉数据
研究者考虑了这样一种 sim-to-real 设置,机器人在模拟环境中接受训练,并无需进一步调整就能迁移到现实世界。他们对自己打算部署机器人的环境已经有部分了解,可能是粗略的描述或者参考图像。
由于信息不完整,研究者依赖生成模型内部的先验知识来填补空白。他们将这一引导过程称为先验辅助域生成(Prior -Assisted Domain Generation,PADG),并首先采用对合成不同域至关重要的自动提示技术。
LLM 成为多样化、结构化的提示来源。研究者很早就观察到,从同一提示中重复采样往往会重现类似的图像。因此,为了获得多样化的图像,他们首先使用了包含标题块、查询详情的「元」提示,以提示 ChatGPT 生成批量结构化的图像块,最后以一个要求 JSON 结构化输出的问题结束。具体如下图 4 所示。
研究者的要求包括特定天气、一天中的时间、光照条件和文化遗址。手动编辑生成的图像提示是不切实际的,因而他们通过生成少量图像来调整元提示,并进行迭代直到它们始终可以生成合理的图像。下图 5 下面一行显示了相同元提示、不同图像提示的多样化样本示例。
在几何和物理引导下生成图像。研究者增强了一个原始文本到图像模型,在增加额外语义和几何控制的同时,使它与模拟物理保持一致。他们首先将图像的文本提示替换为提示和语义掩码对,其中每个对应一种资产类型。比如在爬楼梯场景中,研究者通过文本指定了粗略轮廓内台阶的材质和纹理。
为了使图像在几何上保持一致,研究者采用了现成的 ControlNet,该模型使用来自 MiDAS 的单目深度估计进行训练。条件深度图像则通过反转 z 缓冲区并在每一张图像内进行归一化处理来计算。此外,调整控制强度以避免丢失图像细节非常重要。他们采用的场景几何是以往工作中出现的简单地形,包括可选的侧墙。同时避免随机化几何地形以专注视觉多样性分析。
为了制作短视频,研究者开发了 Dreams In Motion(DIM)技术,它根据场景几何计算出的真值光流以及两帧之间机器人相机视角的变化,将生成图像扭曲成后续帧。生成的图像堆栈包含对跑酷至关重要的计时信息。生成速度也很重要,DIM 显著提高了渲染速度,这得益于计算流和应用扭曲要比生成图像快得多。具体如下图 6 所示。
通过 on-policy 闭环训练来学习稳健的真实世界视觉策略
训练过程分为两个阶段:一是预训练阶段,通过模拟有权直接访问高度图的特权专家来引导视觉策略,其中高度图通过 RL 进行训练。研究者从专家及其不完美的早期检查点收集 rollout,并向专家查询动作标签以监督视觉策略。该视觉策略在预训练后表现不佳,但在第二阶段即后训练阶段做出了足够合理的决策来收集 on-policy 数据。具体如下图 7 所示。
研究者遵循 DAgger,将 on-policy rollout 与上一步中的教师 rollout 相结合。他们从专家教师那里收集了动作标签,并用余弦学习率计划下使用 Adam 优化器运行 70 个梯度下降 epoch。研究者在实验中仅需重复迭代 DAgger 三次就可以实现接近专家表现程度的视觉控制器。实际上第二阶段中的闭环训练过程是机器人出色表现的主要原因。
一个简单的 transformer 控制模型架构。研究者提出了一个简单的 transformer 架构,与之前extreme parkour, 使用 transformer 大大减少了处理多模态输入时控制模型架构的复杂度,如下图 8 所示。以往四足跑酷的相关工作使用复合架构,首先使用 ConvNet 将深度图处理成紧凑的潜在向量,然后使用循环骨干网络。
研究者使用了带有多查询注意力的五层 transformer 骨干网络,输入的相机视频被切成小块,并由一个卷积层并行处理。然后,他们将这些 token 与同一时间步的本体感受观察的线性嵌入堆叠在一起。研究者对所有时间步重复此操作,并在 token 级添加了可学习的嵌入。他们发现,对于 RGB 图像,在卷积之前包含批归一化层也有帮助。
最后,研究者通过堆叠在输入序列末尾的额外类 token 来计算动作输出,然后是 ReLU 潜在层和线性映射。
实验结果
在实验环节,研究者考虑了以下任务:
- 追踪足球(chase-soccer);
- 追踪橙色交通锥(chase-cone);
- 攀爬各种材质的楼梯(stairs)。
他们分别在现实世界和一小部分使用 3D 高斯泼溅来模拟创建的真实世界场景中评估学习到的控制器性能。这些基准环境的示例如下图 9 所示。
此外,研究者进行了以下基线比较:
- 需要特权地形数据(障碍)的专家策略;
- 使用相同 pipeline 训练的深度学生策略;
- 使用纹理上经典域随机化训练的 RGB 学生策略;
- 以及本文基于 DIM 生成的帧堆栈进行训练的 LucidSim。
从生成图像中学习要优于域随机化
在模拟评估中,研究者观察到 LucidSim 在几乎所有评估中都优于经典域随机化方法,如下表 1 和表 6 所示。其中,域随机化基线方法能够在模拟中非常高效地爬楼梯,但在跨越障碍任务中表现不佳。这是因为深度学生网络在 3D 场景中遭遇了微妙且常见的 sim-to-real 差距。
比如由于受到栏杆的影响,Oracle 策略在其中一个爬楼梯场景(Marble)中表现不佳,因为它在训练环境中从未见过栏杆。相反,LucidSim 受到的影响较小。
从零样本迁移到现实世界
研究者在配备廉价 RGB 网络摄像头的 Unitree Go1 上部署了 LucidSim,在 Jetson AGX Orin 上运行了推理。每个任务都在多种场景中进行评估,并记录了机器人是否追到了目标物(追逐)或成功跨越障碍物。
下图 11 展示了 LucidSim 与域随机化方法的比较结果,其中 LucidSim 不仅能够识别经典的黑白足球,而且由于之前看到了具有丰富多样性的生成数据,因而可以泛化到不同颜色的足球。
对于跨越障碍(hurdle)和爬楼梯(stair)场景,Domain Rand. 无法始终如一地识别前方障碍物,并经常出现正面碰撞,而 LucidSim 能够始终如一地预测前方的障碍物并成功跨越。
学习 on-policy 要优于原始的专家数据 Scaling
研究者在下图 12 中,将基于 on-policy 的学习与原始的专家数据收集方法进行了比较。结果显示,通过额外专家专用数据训练获得的性能增益很快达到饱和。在跨越障碍和爬楼梯场景中,通过 DAgger 进行 on-policy 学习对于制定足够稳健的策略很有必要。
下图 10 展示了 LucidSim 和域随机化基线方法下 DAgger 产生的益处,其中前者的整体性能更高。
仅深度的策略过拟合训练几何
除了极限跑酷,研究者还考虑了两种深度策略,它们都接受了与 LucidSim 相同的训练,但输入深度不同。第一种(如上表 1 和表 6 第三行)接收远距剪切至五米的深度,并实现 120° FoV(视场角)。第二种(上表 1 和表 6 第四行)接收剪切至两米的深度。
在模拟评估中,研究者观察到,使用未剪切深度的策略会过拟合训练场景中的最小和简单几何,并被评估场景背景中的干扰因素所干扰。而视觉有限的深度策略不太会受到测试场景中多样性的影响,并且性能可以显著地提高。
理解 DIM 的速度和性能
图像生成是本文 pipeline 中的瓶颈。DIM 大大加速了每个策略的展开,同时通过权衡多样性提供动态一致的帧堆栈。研究者探究了独立生成每一帧如何影响学生网络的性能,他们认为跨越障碍场景最具挑战性。如下图 13 所示,在性能类似的情况下,DIM 可以在短时间内实现相同结果。
强大的条件降低多样性和图像细节
研究者需要权衡几何准确率与生成图像细节丰富度。当条件强度过低时,图像会偏离场景几何(如下图 14 左侧)。当条件强度过高时,图像会失去多样性和丰富细节(图 14 右侧),并且由于过约束而变得失真严重。
相关推荐
- 订单超时自动取消业务的 N 种实现方案,从原理到落地全解析
-
在分布式系统架构中,订单超时自动取消机制是保障业务一致性的关键组件。某电商平台曾因超时处理机制缺陷导致日均3000+订单库存锁定异常,直接损失超50万元/天。本文将从技术原理、实现细节、...
- 使用Spring Boot 3开发时,如何选择合适的分布式技术?
-
作为互联网大厂的后端开发人员,当你满怀期待地用上SpringBoot3,准备在项目中大显身手时,却发现一个棘手的问题摆在面前:面对众多分布式技术,究竟该如何选择,才能让SpringBoot...
- 数据库内存爆满怎么办?99%的程序员都踩过这个坑!
-
你的数据库是不是又双叒叕内存爆满了?!服务器监控一片红色警告,老板在群里@所有人,运维同事的电话打爆了手机...这种场景是不是特别熟悉?别慌!作为一个在数据库优化这条路上摸爬滚打了10年的老司机,今天...
- springboot利用Redisson 实现缓存与数据库双写不一致问题
-
使用了Redisson来操作Redis分布式锁,主要功能是从缓存和数据库中获取商品信息,以下是针对并发时更新缓存和数据库带来不一致问题的解决方案1.基于读写锁和删除缓存策略在并发更新场景下,...
- 外贸独立站数据库炸了?对象缓存让你起死回生
-
上周黑五,一个客户眼睁睁看着服务器CPU飙到100%——每次页面加载要查87次数据库。这让我想起2024年Pantheon的测试:Redis缓存能把WooCommerce查询速度提升20倍。跨境电商最...
- 手把手教你在 Spring Boot3 里纯编码实现自定义分布式锁
-
为什么要自己实现分布式锁?你是不是早就受够了引入各种第三方依赖时的繁琐?尤其是分布式锁这块,每次集成Redisson或者Zookeeper,都得额外维护一堆配置,有时候还会因为版本兼容问题头疼半...
- 如何设计一个支持百万级实时数据推送的WebSocket集群架构?
-
面试解答:要设计一个支持百万级实时数据推送的WebSocket集群架构,需从**连接管理、负载均衡、水平扩展、容灾恢复**四个维度切入:连接层设计-**长连接优化**:采用Netty或Und...
- Redis数据结构总结——面试最常问到的知识点
-
Redis作为主流的nosql存储,面试时经常会问到。其主要场景是用作缓存,分布式锁,分布式session,消息队列,发布订阅等等。其存储结构主要有String,List,Set,Hash,Sort...
- skynet服务的缺陷 lua死循环
-
服务端高级架构—云风的skynet这边有一个关于云风skynet的视频推荐给大家观看点击就可以观看了!skynet是一套多人在线游戏的轻量级服务端框架,使用C+Lua开发。skynet的显著优点是,...
- 七年Java开发的一路辛酸史:分享面试京东、阿里、美团后的心得
-
前言我觉得有一个能够找一份大厂的offer的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司...
- mysql mogodb es redis数据库之间的区别
-
1.MySQL应用场景概念:关系型数据库,基于关系模型,使用表和行存储数据。优点:支持ACID事务,数据具有很高的一致性和完整性。缺点:垂直扩展能力有限,需要分库分表等方式扩展。对于复杂的查询和大量的...
- redis,memcached,nginx网络组件
-
1.理解阻塞io,非阻塞io,同步io,异步io的区别2.理解BIO和AIO的区别io多路复用只负责io检测,不负责io操作阻塞io中的write,能写多少是多少,只要写成功就返回,譬如准备写500字...
- SpringBoot+Vue+Redis实现验证码功能
-
一个小时只允许发三次验证码。一次验证码有效期二分钟。SpringBoot整合Redis...
- AWS MemoryDB 可观测最佳实践
-
AWSMemoryDB介绍AmazonMemoryDB是一种完全托管的、内存中数据存储服务,专为需要极低延迟和高吞吐量的应用程序而设计。它与Redis和Memcached相似,但具有更...
- 从0构建大型AI推荐系统:实时化引擎从工具到生态的演进
-
在AI浪潮席卷各行各业的今天,推荐系统正从幕后走向前台,成为用户体验的核心驱动力。本文将带你深入探索一个大型AI推荐系统从零起步的全过程,揭示实时化引擎如何从单一工具演进为复杂生态的关键路径。无论你是...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (83)
- php redis (97)
- redis 存储 (67)
- redis 锁 (74)
- 启动 redis (73)
- redis 时间 (60)
- redis 删除 (69)
- redis内存 (64)
- redis并发 (53)
- redis 主从 (71)
- redis同步 (53)
- redis结构 (53)
- redis 订阅 (54)
- redis 登录 (62)
- redis 面试 (58)
- redis问题 (54)
- 阿里 redis (67)
- redis的缓存 (57)
- lua redis (59)
- redis 连接池 (64)