6 DoF
刚体能独立移动的维度:R³ 的平移加 SO(3) 的旋转。它由物理问题决定。
Position + Orientation + Reference Frame
位置只给出物体原点在哪里;朝向给出物体系三根轴如何落在参考系中。选择哪个 CAD 原点、哪个 canonical orientation 和哪个参考 frame,会直接改变数值标签,但不会改变真实场景。
已知相机内参与畸变后,把 CAD 点经 CTO 变到相机系,再做透视投影,即可得到关键点、三维框、轮廓和渲染深度。因而“投影是否贴合图像”是最直接的位姿语义检查。
查看相机投影 →Degrees of Freedom
DoF 计算系统状态能独立变化的维度;表示可以冗余、带约束或有多对一。四元数有四个分量但受单位范数约束且 q 与 −q 等价,因此旋转仍只有三个物理自由度。
| 状态 | 一种写法 | 物理含义 | 常见场景 | 不要混淆 |
|---|---|---|---|---|
| 3 DoF | t = [x, y, z]ᵀ | 只估计位置,朝向、形状与尺度已知或固定 | 目标中心定位、带方向无关标记的三维跟踪 | 不是完整物体 pose;同一位置仍允许任意旋转 |
| 4 DoF | [x, y, z, yaw] | 重力固定 roll / pitch,只剩平移与偏航 | 自动驾驶 3D box、平面移动机器人、直立物体 | “直立”是场景先验,不能直接用于任意手持物体 |
| 6 DoF | (R, t) ∈ SE(3) | 三维位置 + 三维朝向,保持刚体尺寸 | 实例级物体位姿、相机定位、机器人操作 | R 的参数可能有 3、4、6 或 9 个数,但旋转仍只有 3 DoF |
| 7 DoF | (s, R, t) ∈ Sim(3) | 6D 刚体位姿 + 一个一致尺度 s | 单目地图对齐、未知统一尺度的对象或轨迹 | 不要把 quaternion(4) + translation(3) 的 7 个输出误称为 7DoF |
| 9 DoF | (R, t, sx, sy, sz) | 三平移 + 三旋转 + 三个轴向尺寸 | 类别级 pose 与实例尺寸联合估计 | 非均匀尺寸不属于刚体变换,canonical frame 会影响标签语义 |
刚体能独立移动的维度:R³ 的平移加 SO(3) 的旋转。它由物理问题决定。
unit quaternion q(4) + t(3) 共有 7 个分量,但范数约束与双覆盖不会新增物理运动。
网络可输出 6D rotation representation、分类 bins、多关键点或概率分布,再映射回同一个 pose 空间。
One Relation · Two Directions
若 ^C T_O 把 object 坐标送入 camera 坐标,那么它的逆 ^O T_C 就表达相机在物体系中的位置与朝向。平移求逆不是简单取负,因为逆平移必须重新表达在逆变换的 target frame 中。
下标 / 右端的 O 表示输入坐标来自 object frame。
上标 / 左端的 C 表示输出坐标落在 camera frame。
旋转无量纲,平移、模型与深度必须统一 m 或 mm。
OpenCV、OpenGL、ROS 和图形引擎的相机轴约定可能不同。
Interactive Overview Lab
先观察自由度变化如何改变状态空间,再对同一物体—相机关系求逆;最后组合测试时对象先验、观测模态与单帧/视频条件,判断自己真正解决的任务。
Interactive · Pose at a Glance
Task
State vector
Translation
Rotation / size
object → camera
camera → object
Your task family
Prior
Metricity
Output
Ambiguity
Recommended next concepts
Task Taxonomy
是否有精确 CAD、测试对象是否参与训练、是否给定 object ID / ROI、是否要从全图检测、是否允许参考图或 onboarding,都会改变可用几何证据和结果可比性。
| 任务族 | 测试时先验 | 典型输出 | 阅读论文时继续追问 | 代表性语境 |
|---|---|---|---|---|
| 实例级 · 已见对象 | 训练与测试共享 object ID;通常有精确 CAD、尺度和固定 object frame | 每个已知实例的 6D rigid pose | 目标是否给定?使用 GT box / mask 还是从全图检测? | 经典 BOP localization / detection、LINEMOD 系列 |
| 未见对象 · CAD-based | 测试对象未参与训练,但测试时提供精确 CAD,可离线 onboarding | novel object 的 6D pose,常含 coarse-to-refine | CAD 是否有真实尺度?onboarding 成本与 detector 从哪里来? | MegaPose 等 render-and-compare 路线 |
| 类别级 · 未见实例 | 只有类别与 canonical / shape prior,没有该实例的精确 CAD | 6D pose + 尺寸,或常被称为 9DoF pose | 类别规范朝向、尺寸、连续对称和形状变化如何定义? | NOCS 及类别级 pose-and-size |
| Reference-based / CAD-free | 测试前或测试时提供参考 RGB、RGB-D 扫描、视频或神经对象表示 | 相对或度量 6D pose;取决于参考是否有尺度与相机 pose | “model-free”究竟免除了 CAD,还是也免除了对象 onboarding? | FoundationPose 的 model-free setting 等 |
| 开放世界 / 开放词汇 | 对象与类别范围不再封闭,常结合文本、检索、通用分割与基础特征 | 身份、实例、pose、置信度及拒绝状态 | zero-shot 对对象、类别、场景分别意味着什么?如何发现未知目标? | novel-object / open-vocabulary 扩展任务 |
localization 通常给出目标存在信息;detection 必须从整图发现并识别实例。GT crop、GT mask 或已知 object ID 会显著降低系统难度。
model-free 方法仍可能需要 posed reference、RGB-D 扫描、对象视频或在线重建。还要追问参考是否有尺度和相机位姿。
未见测试实例、未见类别、未见场景和不做 per-object training 是不同声明;最好逐项列出训练集、资产与测试时操作。
What Does the Sensor Actually Observe?
模态不是网络输入通道数量,而是测量机制与可用信息的边界。RGB-D 同时拥有颜色和深度也不代表天然可靠:对齐、尺度、有效性与时间同步属于任务契约。
| 模态 | 直接观测 | 主要能力 | 缺失与失效 | 常见几何路线 |
|---|---|---|---|---|
| RGB | 颜色、纹理、轮廓、透视与遮挡关系 | 高分辨率外观;配合已知 CAD 与 K 可由投影约束恢复度量 t | 不直接测量深度;弱纹理、光照、材质和单目歧义明显 | 2D–3D 对应 + PnP、模板、直接回归、render-and-compare |
| Depth / Point cloud | 可见表面的度量三维几何 | 尺度、表面距离、法向和 3D–3D 对齐证据 | 颜色语义;透明、镜面、黑色材质会产生空洞和飞点 | Kabsch / Umeyama、RANSAC、全局配准、ICP / GICP |
| RGB-D | 同一时刻的外观与可见表面几何 | 互补证据,可验证单目深度并做点级融合与几何精修 | 并非自动对齐;深度尺度、RGB–D 外参、时间同步都可能错误 | 早/中/晚融合、点级投票、PnP + depth check、ICP refinement |
| Multi-view / Video | 跨视角视差、时间连续性和逐步显露的表面 | 缓解单帧遮挡,三角化结构,联合优化相机与对象状态 | 需要数据关联、相机运动、同步和漂移管理 | 跟踪、三角化、BA、multi-view fusion、object-level SLAM |
包括 RGB-only / depth-only / RGB-D、点云与法向、早中晚融合、RGB–Depth 对齐、真实传感器噪声、透明反光物体、模态缺失、多视图与几何精修。
查看知识地图 →From Observation to Action
有些网络会联合实现多个阶段,但系统责任不会消失。把输入权限、候选生成、独立验证和任务接受拆开,才能知道失败在哪一层。
FIND
EVIDENCE
SOLVE
VERIFY
ACT
Ambiguity, Failure and Sanity Checks
位姿估计的难点既来自几何不可辨识,也来自传感器、资产和协议错误。可靠系统需要保留多假设、显式拒绝,并通过投影、深度和变换链做独立检查。
| 问题 | 为什么发生 | 第一响应 |
|---|---|---|
| 对称与重复外观 | 多个旋转产生相同或近似观测;单一 canonical 标签可能人为制造冲突 | 输出等价类 / 多假设,并使用对称感知训练和评测 |
| 遮挡与截断 | 只看到局部表面,关键点、轮廓与深度证据不完整 | 估计可见性,保留 top-K,用时序或主动视角补证据 |
| 弱纹理与域差距 | RGB 对应不稳定,合成渲染与真实材质/光照不一致 | 结合轮廓、几何、冻结特征与域随机化,独立验证候选 |
| 尺度、单位与原点 | m/mm、CAD 尺寸或 object origin 错误可让旋转看似正确而平移/投影全错 | 把 frame、unit、asset version 写入数据契约并投影检查 |
| 深度失效 | 透明、镜面、黑色表面、多径和边缘混合像素产生系统性缺失 | 保存有效性 mask,训练模态缺失,禁止把 0 depth 当真实表面 |
| 错误任务比较 | GT crop、已知 ID、预测 detector、CAD-based 与 CAD-free 的数字被混在一起 | 先写清 setting contract,再比较检测召回、pose 精度与运行成本 |
读契约:它是 CTO 还是 OTC?列向量还是行向量?m 还是 mm?
查旋转:RᵀR ≈ I、det(R) ≈ +1;四元数顺序、Euler 轴序和角度单位是否匹配?
查深度:物体原点与可见模型点是否在相机前方?t 的 z 与场景距离是否同量级?
做投影:用当前 K、畸变、crop 后坐标与同一 CAD 投影坐标轴、3D box、轮廓和深度。
查等价:看似“旋转错了”是否其实是物体对称、canonical frame 差异或 object origin 版本不同?
查任务:最终是 benchmark 接受、AR 视觉贴合、机器人可达,还是抓取成功?不同任务的容错方向不同。
One Geometry · Four Communities
不同领域常用不同命名和输出方向,但核心仍是 frame 之间的刚体关系。理解它们如何连接,比记住某个 API 的默认格式更可靠。
核心是相机模型、对应、PnP、点云配准、对称与评测。位姿常是识别、重建、AR 和测量的几何接口。
坐标系 → 旋转 → 相机 → PnP → 配准 → 流程SLAM 多以世界中的相机位姿为主,object SLAM 还估计物体 landmark。二者通过求逆与变换复合连接,而不是两套独立几何。
刚体几何 → 相机 → 多视图 → BA → Object SLAM视觉输出只有经过相机外参、手眼标定、时间同步和运动学链,才成为机器人可执行的目标。
变换链 → 外参 → 手眼标定 → 误差传播 → 视觉伺服还需 object-to-grasp、夹爪 TCP、碰撞、可达性、对称等价抓取与闭环重定位;最终指标应是任务成功而不只是 ADD。
物体位姿 → grasp frame → IK / collision → 闭环操作How to Continue
最稳妥的主线是先掌握刚体几何和坐标约定,再进入旋转、相机与求解器;之后根据自己的应用选择 SLAM、模态、数据、机器人或前沿分支。
向量、基、齐次坐标、SO(3)、SE(3)、复合、求逆与局部增量。
02object / camera / world / robot / gripper frame 与跨社区轴约定。
03Euler、矩阵、轴角、四元数、连续表示与视点相关旋转。
04内外参、透视投影、畸变、标定、裁剪缩放与深度反投影。
06从像素—模型对应恢复 object-to-camera,并理解 RANSAC 与退化。
07Kabsch、Umeyama、RANSAC、全局配准和 ICP 收敛域。
08把检测、证据、候选、验证、精修、置信度与跟踪串起来。
Primary Sources
把本章的直觉正式写成向量、矩阵、SO(3)、SE(3) 与齐次变换。