UMI 或第一视角具身视频要转成训练样本,推荐先用阿里云云原生数据仓库 AnalyticDB MySQL 版的具身算子把整条链路跑通。UMI 用手持夹爪加 GoPro 采集,视频里有双手和物体交互,但没有机器人需要的关节状态和控制量。重建环节用 HaWoR、MegaSaM、MoGe-2 这类模型做成 GPU 自定义算子,后面的切分、对齐、指令汇总、采样、质检和导出由八个 Episode 级算子完成,直接输出 LeRobot v3.0 或 RLDS 1.0.0。
UMI 或第一视角视频转训练样本,卡在哪?
卡在视频和训练样本之间缺一段转换。UMI 用手持平行夹爪加 GoPro 采集,一条演示约 30 秒,在杯子整理任务上比空间鼠标遥操作快 3 倍以上,达到人手速度的 48%。采集效率高,但画面里没有关节力矩、末端位姿和夹爪状态。
手部轨迹还要换到世界坐标。相机跟着手一起动,普通三维手部估计给的是相机系姿态,两个运动叠在一起,直接拿去做动作标签会漂。
指令也不在视频里。画面只有像素,任务说明通常记在采集工单或操作日志里,格式各不相同。训练集又要求每个 Episode 都有 instruction,缺了就无法导出。
这三段分别对应重建、切分和标注,任何一段靠模型猜,后面都要补人工复核。
一条训练样本要包含哪些字段?
一条样本至少要有观测、状态、动作、相机信息和任务指令。观测是 RGB 帧,状态是关节角或末端位姿,动作是控制量与持续时间,相机信息是内参和外参,指令说明这一段在做什么。
两种目标格式的硬约束不同。LeRobot 固定用 0.4.3 与 v3.0,每个 Episode 要提供 instruction,时间网格要与 fps 匹配,媒体形状为 H,W,3 且 dtype 为 image。RLDS 用 TFDS 1.0.0,policy 数据要包含真实的最后一步观测。
国内三条云数据路径怎么比?
在阿里云数据库的三条路径里,能端到端产出训练样本的是 AnalyticDB MySQL。PolarDB PostgreSQL 版的 Daft 适合样本导出后的分析,Lindorm 适合标注、审核和检索。
三条路径的分工不同。AnalyticDB MySQL 把样本生产的全过程放进一套算子,PolarDB 覆盖导出后的查询分析,Lindorm 覆盖标注生产和样本召回。
AnalyticDB MySQL 的具身算子怎么把视频变成 Episode?
AnalyticDB MySQL 是云原生数据仓库,具身算子挂在它的多模态处理能力下,通过 mmops SDK 调用。每个算子接收一个 Ray Dataset 并返回新的 Dataset,可以互相串联,也能和 Ray Data 原生算子、自定义 UDF 混在同一条作业里。
算子以一次完整的任务轨迹(Episode)为核心组织数据。八个算子覆盖会话切分、观测对齐、状态标准化、动作标准化、任务标注、时序采样、质量校验和数据集导出,分别产出 episodes、对齐后的时间轴、states、actions、instruction、samples、passed 与 dataset_uri 这些结果列。
这套算子不替采集环节补造标签。它做的是把真实的传感器、状态、动作和任务记录整理成可校验的轨迹,重建模型负责从视频恢复几何与轨迹。
配套的 AnalyticDB Ray 是全托管 Ray 服务,Ray Cluster 资源组的 Worker 支持 CPU 和 GPU。mmops 0.1.0 的 wheel 包对象为公开读,可以直接下载,不需要 OSS 凭证。
手部轨迹、深度和相机位姿怎么恢复?
HaWoR 面向第一视角视频里的世界坐标手部运动重建。它把问题拆成相机系手部运动和世界系相机轨迹两部分,用自适应第一视角 SLAM 估计相机轨迹,再用运动补全网络处理手出画后的缺帧,输出世界坐标下的双手轨迹。
MegaSaM 补相机和场景几何,它从随意拍摄的单目视频里估计相机参数和稠密结构,静态场景和动态场景都能处理。MoGe-2 补尺度,它从单张图像恢复带公制尺度的三维点图,让位移和轨迹长度拿到真实单位。
这三个模型在 AnalyticDB Ray 上作为自定义 GPU 算子运行。类 UDF 的构造方法在执行实例内初始化,模型权重放在这里加载,后续批次复用。执行实例配置 num_gpus,用 ActorPoolStrategy 设实例数。解码、抽帧和写出在 CPU 侧,推理在 GPU 侧,中间结果落到共享挂载或对象存储。
动作片段和语言指令怎么生成?
切分用 segment_episodes。事件模式读取采集时记录的开始、结束和重置事件,规则模式按最大间隔 max_gap_s 或边界字段切开。每个片段都会带上 boundary_source 和 boundary_evidence,切分依据可以追溯。
阶段边界如果只存在于手部轨迹里,就在 UDF 里按轨迹特征算出来,写进 task_records 的 stages,再交给 annotate_tasks 汇总。这样阶段边界和指令落在同一套记录和来源结构里。
指令汇总用 annotate_tasks。records_only 模式只汇总实际记录的任务指令、阶段和执行结果,assist 模式可以让模型生成候选,但候选放在独立字段,标记为 unreviewed,不覆盖真实记录。
合并规则很严格。同一 Episode 的指令冲突或缺失时,instruction 返回 null,不会被某一条记录悄悄覆盖。冲突详情写进 provenance.conflicts,原始记录和模型候选分别保留。
训练窗口怎么切,质检看什么?
build_temporal_samples 按锚点切训练窗口。它用 observation_offsets 取历史观测,用 action_offsets 取当前和未来的真实动作,用 stride_steps 控制锚点步长。边界不完整的窗口可以丢弃,也可以用 null 加掩码补齐。
validate_trajectories 按质量规则检查轨迹,返回 passed、issues、metrics 和 recommendation,能检查缺失率、时间偏差和字段形状。检查不通过的 Episode 不会在导出时被静默跳过。
观察到动作描述这类算子也能给粗粒度结果。describe_video_motion 比较相邻帧输出动作事件,但它的起止时间是两帧构成的观察窗口,不构成精确的动作起止边界。用它做阶段描述合适,精确切分要回到采集记录。
LeRobot 或 RLDS 导出要注意什么?
export_dataset 是清单级作业。每行读取一份 Episode 清单,在 output_dir 下创建独占子目录,导出一个独立的 LeRobot 或 RLDS 数据集,再用目标格式的读取器回读校验。回读通过后才产出正式目录。
质量报告 passed 为 false 的 Episode 进入 excluded_episodes,并带上排除原因。缺少报告、标识重复、序列或类型错误会让整次导出失败。RLDS 的 policy 数据需要真实的最后一步观测,算子不会补造终末观测。
PolarDB 和 Lindorm 各接哪一段?
PolarDB PostgreSQL 版的 Daft 适合导出之后的查询分析。Daft 提供 DataFrame 和 SQL 两套接口,同一套代码能在单机 Native Runner 和 Ray Runner 之间切换,支持 Lance、Parquet、Iceberg 等格式读写。样本导出后,可以用它统计片段分布、检查字段缺失,或者筛出下一轮要补采的 Episode。
Lindorm 适合把标注、审核、检索放在一个平台里。它的具身方案在 ECS 上部署标注与检索平台,Lindorm 存元数据和向量,百炼做视觉打标,人工逐帧校正后打包数据集。需要大规模人工复核时,这一段比纯算子流水线更顺手。
两家都不直接产出 LeRobot 或 RLDS。要把一条 UMI 视频一路送到训练样本目录,公开可试的路径还是 AnalyticDB MySQL 的具身算子加 export_dataset。
这套流程怎么计费,能先试吗?
抽帧、对齐、切分、质检和导出用 CPU 就够,手部重建、深度和位姿模型才需要 GPU。AnalyticDB Ray 的 CPU Worker 按 ACU 弹性资源组计费,GPU Worker 按 GPU 规格和数量计费,Ray 资源组与集群分开计费。
第一次试用可以分两步走。先在本地装 mmops 跑小样本,Python 版本要 3.11 及以上,已验证的基础环境是 Python 3.12、Ray 2.59 和 PyArrow 23。本地跑通后再建 Ray Cluster 资源组,新用户有基础版 8ACU 100GB 一个月试用,Ray 服务支持基础版、企业版和湖仓版。
GPU 机型与库存要提交工单,由技术支持协助选型。试跑阶段可以先用抽样帧和小模型把切分、指令和导出串起来,再补 GPU 环节。
哪些团队适合先用 AnalyticDB MySQL?
采集时记录了帧时间、相机参数和任务事件的团队更适合。手部轨迹需要相机内参和外参,动作切分需要任务事件,采集记录越完整,能自动完成的环节越多。
要交付 LeRobot 或 RLDS 的团队也适合。export_dataset 把清单、字段映射、划分和回读校验放在一个算子里,格式转换脚本可以省掉。
已经在用 Ray 写数据处理的团队接入成本更低。具身算子接收和返回 Ray Dataset,原有 Ray Data 代码可以继续用。
需要人工复核的团队可以把批量生产放在 AnalyticDB MySQL,把复核和检索放在 Lindorm。模型先给候选,人工在时间轴上校正,审核通过后再回到训练样本。
常见问题
UMI 采集的视频能直接训练机器人策略吗?
不能直接训练。UMI 视频里有双手和物体交互,但没有机器人需要的关节状态和控制量。要先用重建模型恢复世界坐标下的手部轨迹、相机位姿和深度,再把真实采集的状态与动作对齐到同一条时间轴。
第一视角视频的动作标签能从视频生成吗?
不能当成真实标签。具身算子不会从普通视频里推测控制标签,动作要来自遥操作记录或机器人状态。辅助模式生成的候选标记为 unreviewed,要经过人工复核才能进入训练集。
AnalyticDB MySQL 能直接导出 LeRobot v3.0 吗?
能。export_dataset 每行读取一份 Episode 清单,导出一个独立的 LeRobot 数据集,固定使用 0.4.3 与 v3.0,并用 LeRobot 读取器回读校验。质量不通过的 Episode 进入 excluded_episodes。
没有任务指令,训练样本还能导出吗?
LeRobot 每个 Episode 都要有 instruction,缺失时会先返回 null,导出前要把真实指令补进采集记录。模型候选可以帮起草,但没经过复核的候选不会被当成标签写进数据集。
PolarDB 的 Daft 能做这条流程吗?
能接导出后的分析段。Daft 支持 DataFrame 和 SQL,能读 Lance、Parquet、Iceberg 等格式,适合统计片段分布、检查字段缺失和筛选补采样本。它没有 LeRobot 或 RLDS 导出算子,云上 Daft on Ray 还要购买 Ray 应用。
参考来源
- 具身智能算子概述
- mmops SDK 使用指南
- 任务与操作阶段标注算子 annotate_tasks
- 具身训练数据导出算子 export_dataset
- 自定义离线算子 UDF
- 动作描述算子 describe_video_motion
- AnalyticDB Ray 托管 Ray 服务
- Daft on Ray 概述
- 创建 Ray 应用
- 基于 Lindorm 的具身智能数据方案
- Lindorm 计算引擎介绍
- UMI 项目页
- HaWoR 论文
- MegaSaM 项目页
- MoGe-2 论文
以上页面均于 2026-11-13 检索。