Skip to content

具身智能数据术语表

这页专门解释主文档里不得不用到的词。每个词都尽量降低理解门槛,不要求先有数学或机器人基础。

具身智能数据术语关系示意图

具身智能数据,就是带着“身体”和“环境”的智能数据。

它通常不只是图片或文字,还会包含机器人在哪里、看向哪里、做了什么动作、传感器读到了什么、环境发生了什么变化。和普通网页数据相比,它更强调时间、空间和动作之间的关系。

传感器数据就是设备从真实世界采回来的原始记录。

摄像头给图片,麦克风给声音,运动传感器给晃动和加速度,轮子编码器给轮子转了多少。具身智能系统要把这些零散记录对齐后,才更容易判断“当时到底发生了什么”。

时间戳就是一条数据发生的具体时间。

它像给每张图片、每条传感器读数贴上时间标签。没有时间戳,很多数据就很难拼在一起。

数据对齐就是把不同来源的数据按时间或空间配到一起。

例如某张图像应该对应哪一条运动传感器记录、机器人当时在哪个位置、机械臂当时伸到哪里。对齐错了,后面的训练、标注和评估都会跟着错。

轨迹数据记录的是设备一路怎么走。

它通常包含一串时间、位置和朝向。具身智能里,轨迹数据常用来回放采集过程、训练导航模型、评估定位结果。

Episode 是一次任务尝试或一次完整采集片段。

它通常有明确开始和结束,包含任务说明、场景、设备、执行过程、成功或失败结果,以及为什么结束。对具身智能数据来说,episode 是采集、质检、训练划分和评估统计里很重要的管理单位。

Trajectory 是按时间排序的一串观测、状态和动作。

它强调“过程怎么连续变化”。一个 episode 里通常会有一条主 trajectory,也可能有多条并行 trajectory,例如机器人末端轨迹、相机轨迹、物体轨迹和 SLAM 估计轨迹。

Step 是 trajectory 里的一个时间步。

它通常记录这一刻的观测、机器人状态、动作、奖励或边界标记。图像、关节角、末端位姿和夹爪宽度都可能出现在同一个 step 里。

Transition 是从一个 step 到下一个 step 的状态变化记录。

在强化学习数据里,它常表示“当前观测 + 当前动作 + 下一观测 + 奖励 + 是否结束”。在机器人数据里,还要特别注意动作和图像是否在同一时间线上。

Episode 边界就是一次数据片段从哪里开始、到哪里结束。

边界可能来自人工按键、任务成功事件、超时、传感器丢失或后处理裁剪。边界不清楚时,训练窗口可能跨到另一段任务里,动作标签也容易错位。

窗口采样就是从较长 episode 或 trajectory 里切出固定长度的小片段给模型训练。

例如模型看过去几帧图像,再预测未来几步动作。窗口采样要保证不会跨 episode,也要说明动作标签相对观测有没有延迟。

标定文件记录传感器的关键参数。

它告诉系统镜头怎么变形、传感器之间怎么安装、数据该怎么换算。标定文件用错,就像戴着度数不合适的眼镜看世界。

SLAM 是“同时定位和建图”的缩写。也就是机器一边走,一边回答两个问题:

  • 我现在大概在哪里?
  • 我走过的地方大概长什么样?

扫地机器人、无人机、AR 眼镜、自动驾驶小车都会遇到这类问题。

“视觉”是摄像头看到的画面。“惯性”是运动传感器感到的转动、加速和晃动。

视觉惯性就是把“看见了什么”和“身体怎么晃了”合在一起判断运动。

IMU 是一个常见缩写,可以先理解成“运动传感器小盒子”。

它通常能测两类东西:

  • 设备转得有多快。
  • 设备加速或减速得有多明显。

手机横竖屏切换、手柄体感、无人机稳定飞行,都离不开这类传感器。

YUV 在 Android 相机和视频处理中常用来泛指亮度加色差信号,更准确地说很多场景是 YCbCr。

它把画面拆成亮度 Y 和两个色度通道 U/CbV/Cr。对具身智能数据来说,YUV 的价值是采集和传输效率高,但使用时必须记录格式、stride、时间戳和颜色转换方式,否则模型输入和标注预览可能不一致。

YUV420 是一种色度降采样格式。

它保留每个像素的亮度,但让 2x2 四个像素共享一组色度信息。因此 8-bit YUV420 通常约等于 12 bit 每像素,比 RGB888 更省带宽,常见于 Android 相机分析流和视频编码。

I420 是一种常见的 YUV420 平面布局。

它按 Y 平面、U 平面、V 平面的顺序连续存储。很多图像处理库会把其他 YUV 布局先转换成 I420,再做缩放、旋转或 RGB 转换。

NV21 是一种常见的 YUV420 半平面布局。

它先存完整 Y 平面,再把 V 和 U 交错存储。Android 旧 Camera API 的预览默认常见 NV21;使用 Camera2 或 CameraX 时,不应直接假设 YUV_420_888 的底层内存就是 NV21。

Row stride 是图像某个平面里相邻两行起点之间相隔的字节数。

它可能大于图像有效宽度,因为每行末尾可能有 padding。读取 Android YUV plane 时,如果忽略 row stride,图像容易出现错行、斜纹或颜色错位。

Pixel stride 是同一行里相邻两个采样点之间相隔的字节数。

在 Android YUV_420_888 中,Y 平面的 pixel stride 保证为 1;U/V 平面的 pixel stride 可能是 1,也可能是 2。处理 U/V 时必须按这个值取样,不能只按连续数组读取。

VIO 可以理解成“视觉惯性定位”。

它主要关心“我怎么移动了”,不一定负责长期保存和维护完整地图。SLAM 则更强调“定位”和“建图”一起做。

Ego 视角就是第一人称或本体视角。

在具身智能数据里,它通常表示相机跟着执行者移动:人戴着眼镜、机器人头部相机看世界,或像 UMI 那样把相机装在手持夹爪上。它记录的是“执行者当时能看到什么”,适合学习操作过程中的接触、遮挡和物体状态变化。

世界模式就是把采集到的数据放回一个较稳定的环境坐标系里。

例如用 SLAM 地图、桌面标记板或房间坐标系来描述相机和夹爪在哪里。它关心环境、地图、位姿和坐标对齐,方便比较不同演示和不同设备采集的数据。

操作模式就是数据怎样表达“下一步怎么动”。

它可以是绝对末端位姿、相对当前位姿的未来轨迹,也可以是每个控制周期的小增量。对模仿学习来说,操作模式会直接影响模型学到的动作是否容易跨场景、跨机器人复用。

UMI 是 Universal Manipulation Interface 的缩写,可以理解成一种手持夹爪式操作数据采集框架。

它把 GoPro 摄像头、IMU、夹爪标记和后处理管线结合起来,让人在真实场景中用夹爪演示任务,再把视频处理成机器人策略可以学习的图像、末端轨迹和夹爪宽度数据。

Project Aria 是 Meta 用于第一人称多模态研究的眼镜设备和工具体系。

在具身智能数据里,它常被当作头戴式 ego 传感器平台:可以记录相机、运动传感器、音频、眼动和标定信息,再通过后处理得到轨迹、点云、眼动和手部状态等数据。

VRS 是 Vision Replay Systems 的缩写,可以理解成 Aria 用来保存多路传感器原始记录的容器。

普通视频文件主要保存画面和声音;VRS 还会保存不同传感器 stream、设备时间戳、相机标定和同步信息。读取 VRS 时,通常需要 Project Aria Tools 这类专门工具,而不是只用普通视频播放器。

MPS 是 Machine Perception Services 的缩写,可以理解成 Aria 原始数据的机器感知后处理服务。

它会从 VRS 等原始记录中生成更容易直接使用的数据,例如 6DoF 轨迹、半稠密点云、在线标定、眼动估计和手部跟踪。MPS 输出不是原始真值,使用时要注意版本、质量和坐标系。

Ego4D 是大规模第一人称视频数据集和 benchmark 体系。

它的重点是把来自真实生活场景的第一人称视频整理成可训练、可评估的数据:包括规范化长视频、任务 clip、元数据和多类 JSON 标注。对具身智能数据使用者来说,关键是把 video_uid、clip 时间范围和任务标注正确对上。

Ego-Exo4D 是同步第一人称和第三人称视角的多模态多视角数据集。

它通常用 Aria 眼镜记录 ego 视角,同时用多个 GoPro 记录 exo 视角,并在 take 级别提供同步视频、相机标定、轨迹、点云、眼动和多类标注。它适合研究跨视角动作理解、三维姿态、技能评估和多视角对齐。

Canonical video 是经过规范化处理后的主视频版本。

在 Ego4D 里,原始 video components 可能来自不同设备,帧率、音频和时基不完全一致。canonical video 会把这些片段整理成更稳定的长视频,方便标注、下载和训练使用。

Canonical clip 是从 canonical video 中裁出的任务片段。

它通常和某个 benchmark 标注直接关联,例如自然语言查询、手物交互或活动预测。读取标注时要分清 clip_* 时间字段和 video_* 时间字段,避免把 clip 内时间误当成长视频时间。

Capture 是一次多设备录制会话。

在 Ego-Exo4D 里,一个 capture 可能包含 Aria 和多个 GoPro 同时录下的一整段活动,也可能再切成多个 take。capture 级文件常包含同步信息,例如不同设备之间的时间对齐表。

Take 是从一次 capture 中切出的具体任务片段。

Ego-Exo4D 的许多数据和标注都围绕 take_uid 组织。一个 take 里通常包含同步后的 ego 视频、多个 exo 视频、轨迹、相机标定和任务标注,因此它很适合作为训练和质检的基本单位。

Frame-aligned video 是按帧对齐后的多视角视频。

在 Ego-Exo4D 里,它的目标是让同一个 frame index 在 Aria ego 视角和多个 GoPro exo 视角中对应同一时刻。这样模型或标注工具才能把不同相机看到的同一动作放在一起比较。

ArUco 标记是一种黑白方形视觉标记。

系统可以从图像里检测它的位置和朝向。UMI 里会用它辅助估计桌面参考坐标,也会用夹爪手指上的标记计算夹爪开合宽度。

Replay buffer 是按时间顺序保存 episode 数据的训练数据容器。

在 UMI 这类数据管线里,它会把图像帧、末端位姿、夹爪宽度和 episode 边界整理成模型训练时可以快速采样的格式。

位姿就是“位置 + 朝向”。

只说位置还不够,因为机器不仅要知道自己在房间哪个点,还要知道自己面朝哪里、有没有歪、有没有仰头。

轨迹就是机器一路走过来的路线。

如果把每一时刻的位置连起来,就得到一条轨迹。

漂移就是误差越攒越大。

比如你以为自己沿着走廊直走,但系统估计的位置一点点偏到墙里。刚开始偏一点,跑久了就可能偏很多。

回环就是系统发现“我又回到以前来过的地方了”。

一旦认出来,系统就有机会把之前一路累积的偏差修正掉。比如走了一圈回到门口,系统发现门口和刚开始看到的一样,就能把地图拉得更合理。

关键帧就是“比较值得保存的画面”。

摄像头每秒可能拍很多张图,但每张都保存、都计算会很慢。系统会挑一些代表性画面留下来,就像旅行相册不会把每一秒都放进去。

特征点就是图片里容易再次认出来的小线索。

比如桌角、门框角、墙上海报的角、地砖交叉点。它们比一大片白墙更容易被系统跟踪。

稀疏线索就是“只抓少量关键点”,不试图理解每一个像素。

它的好处是快。坏处是地图通常比较简略,不像完整三维模型那样密。

优化就是“把很多互相矛盾的小证据放在一起,找一个最说得通的结果”。

摄像头可能说往左动了一点,运动传感器可能说转得更快一点。系统要综合它们,选出整体误差最小的解释。

滑动窗口就是“只认真处理最近一小段时间的数据”。

机器一直在走,历史数据会越来越多。为了实时运行,系统常常只拿最近几秒或最近几张关键画面来精算,窗口会随着机器前进不断往前滑。

滤波可以理解成“来一条新信息,就更新一次当前猜测”。

它不一定每次都把全部历史重新算一遍,而是更像持续维护一个当前答案。优点是快,缺点是需要仔细处理误差。

传感器对齐与标定示意图

标定就是“把传感器的真实情况量清楚”。

例如摄像头镜头会有变形,运动传感器和摄像头安装时也有相对位置和角度。系统需要知道这些细节,才能把数据对上。

外参标定就是量清楚“两个传感器之间怎么摆放”。

比如摄像头在运动传感器前面几厘米、左边几厘米、转了几度。这个关系如果错了,系统会把运动和画面对歪。

时间同步就是让不同传感器的时间对齐。

摄像头说“这张图是 10:00:00.100 拍的”,运动传感器也要能对应到同一瞬间的运动。如果时间差一点点,高速运动时就会造成明显错误。

双目摄像头就是两个摄像头并排看世界。

它有点像人的两只眼睛:同一个物体在左右眼里位置略有不同,系统可以利用这个差异估计远近。

深度相机不只拍颜色,还能直接给出距离信息。

它能告诉系统“这个点离我大概多远”,所以建三维地图会更直接。但它也有成本、距离范围、户外强光等限制。

语义就是“这是什么东西”。

普通地图可能只知道这里有一片点云或墙面。带语义的地图会进一步知道这是门、地面、桌子、人、车辆等。

三维网格可以理解成用很多小三角片拼出来的立体表面。

它比一堆散点更像真实物体表面,适合显示房间、墙面、桌椅的大概形状。

轨迹评估就是比较“系统估计路线”和“真实路线”的差距。

它不是只看终点差多少,也会看一路上偏了多少、是否越跑越偏、回到旧地方后有没有修正。