← 返回知识体系
08 系统设计 3D 视觉 机器人 机器人抓取

General 6D Object Pose Estimation Pipeline

通用位姿
估计流程

一个可靠的 6D pose 系统不只是“网络输出 R、t”。它要先发现目标并建立几何证据,再生成、验证和精修候选,最后管理置信度、对称、多实例与时序状态。任一前级漏召回或协议错误,都会成为后级算法无法突破的上限。

Task Before Architecture

先冻结输入、先验与输出,再谈 pipeline

“6D 物体位姿估计”包含多个不同任务。两个方法即使都输出 R、t,也可能一个使用 GT mask 和已知 CAD,另一个从全图发现未见类别实例;它们的输入权限、召回上限、尺度语义和失败空间并不相同。

契约轴常见选项对系统的直接影响
目标先验精确 CAD / 类别规范空间 / posed reference / 无几何模型决定能否定义唯一物体系、生成模板、建立 2D–3D / 3D–3D 对应,以及输出是否包含尺度。
测试时对象训练见过的实例 / 未见 CAD 实例 / 未见类别内实例 / 开放词汇对象决定是否允许 per-object 训练、onboarding、类别先验或测试时检索;“zero-shot”必须说明对对象和类别分别是否未见。
观测模态RGB / RGB-D / depth / point cloud / multi-view / video决定可直接使用的尺度、表面几何、颜色、时间与跨视角约束,也决定传感器失效模式。
目标是否已给出已知 object ID + instance count / 给定 box 或 mask / 完全检测检测漏召回是否计入系统结果;给 GT crop、GT mask 和预测检测器的数字不能直接横向比较。
输出空间6D rigid pose / 6D + size / 9DoF similarity / 多实例 top-K / pose distribution决定变换群、训练标签、对称等价、损失和评测协议;类别级任务通常还要输出尺寸或尺度。
运行模式单帧 / 初始化 + 跟踪 / 在线重定位 / 多视角联合决定初值来源、延迟预算、状态管理、是否允许使用未来帧,以及丢失后的恢复策略。
System success as a conditional chain
P(S)=P(L) P(H∣L) P(V∣H,L) P(A∣V,H,L)P(S)=P(L)\,P(H\mid L)\,P(V\mid H,L)\,P(A\mid V,H,L)
L:目标被正确定位;H:候选集中包含正确等价姿态;V:验证/排序选中可用候选;A:最终任务接受。它不是假设各阶段独立,而是提醒后级只能在前级成功的条件下工作。
POSE DIRECTION

CTO 还是 OTC?

本站默认 object-to-camera;输出到 SLAM、图形学或机器人前再显式求逆和复合。

INSTANCE ID

哪个对象、哪个实例?

多物体系统需要 object ID、instance / track ID、检测来源和重复候选归属。

SCORE

分数到底代表什么?

proposal、对应内点率、渲染一致性和校准成功概率必须分字段,不要混成一个无语义 score。

QUALITY

为什么接受或拒绝?

输出内点、残差、可见率、对称族、终止原因和诊断码,任务层才能安全使用。

End-to-End Architecture

从离线对象准备到在线任务输出的八个关口

不同论文可能合并若干阶段或用一个网络联合预测,但系统责任仍然存在。把责任拆开,才能知道错误来自目标没被发现、证据不可靠、求解退化、排序失败,还是精修离开了正确吸引域。

  1. 00

    OFFLINE

    离线准备与协议冻结

    清理 CAD / reference,定义物体系、单位、直径、对称、相机模型、训练对象范围和输出协议;缓存渲染模板或对象表示。
  2. 01

    PROPOSAL

    目标发现与身份确认

    由检测、分割、开放词汇检索或已给 ROI 确定目标区域与实例身份;保存 full / visible mask 语义、crop 变换和 proposal score。
  3. 02

    EVIDENCE

    提取对象条件证据

    预测关键点、稠密物体坐标、NOCS、局部特征、视点类别、深度点云、法向或直接 pose 参数,并附带可见性与不确定性。
  4. 03

    HYPOTHESIS

    生成一个或多个粗姿态

    使用 PnP-RANSAC、3D–3D 对齐、投票、模板检索、直接回归或全局采样得到候选;保留正深度、几何满秩和任务先验检查。
  5. 04

    VERIFY

    候选验证与去重

    在每个 pose 下渲染可见表面,比较轮廓、RGB 特征、深度、法向和遮挡;做对称感知 pose NMS、跨检测框合并与实例分配。
  6. 05

    REFINE

    局部位姿精修

    从可信粗姿态出发,以重投影、render-and-compare、ICP、可微渲染或学习式增量反复更新 SE(3),同时监控吸引域和残差下降。
  7. 06

    DECIDE

    置信度、等价类与拒绝

    校准最终 score,保留对称/遮挡导致的多假设;根据任务风险选择 top-1、top-K、低置信拒绝或主动获取新视角。
  8. 07

    SYSTEM

    时序、坐标链与任务输出

    视频中维护 track ID、运动先验、失败门控与重初始化;机器人中把 object-to-camera 复合到 base / tool frame,并输出质量日志。
OFFLINE ONBOARDING

一次性对象资产

CAD 采样、模板渲染、reference 重建和特征缓存可以降低在线延迟,但它们仍属于方法输入权限,必须统计耗时、存储和是否需要真值 pose。

ONLINE INFERENCE

每帧真正发生的工作

检测、特征、候选、渲染与精修的批处理方式决定延迟;只报告网络 forward 而忽略渲染、RANSAC 和数据搬运会低估系统成本。

DOWNSTREAM ACCEPTANCE

位姿之后还有任务约束

抓取需检查碰撞、IK 和 TCP;AR 需检查感知投影;测量需检查度量表面误差。benchmark 正确不自动等于任务成功。

Intermediate Representation Taxonomy

网络预测什么,决定几何求解器看见什么

与其只按 backbone 或论文年份分类,不如追踪从观测到位姿之间的中间表示:关键点、稠密物体坐标、规范空间、3D 投票、模板、参考匹配、直接回归和 render-and-compare 分别暴露不同的几何结构与不确定性。

表示家族预测内容典型求解优势主要失败模式站内例子
稀疏语义关键点少量 2D 关键点、方向场或热图 + 置信度PnP / PnP-RANSAC几何语义清晰,调试时可逐点检查;像素投票可聚合遮挡下的局部证据关键点布局、遮挡、截断、对称点换位与局部集中会造成弱约束或多解 PVNet ↗
稠密物体坐标前景像素 → CAD / object coordinate稠密 PnP、RANSAC 或几何引导回归对应覆盖完整可见区域,可联合输出 mask、表面区域与逐像素权重相邻像素误差高度相关;对称表面的一像素多 3D 对应不能被强迫成单标签 EPOS / GDR-Net ↗
类别规范坐标像素或点 → NOCS / canonical shape coordinate带尺度 3D–3D 对齐、关键点拟合或 pose/size 回归不需要测试实例的精确 CAD,可处理类别内未见形状并恢复尺寸canonical frame、类别对称与形状变化带来标签歧义;规范形状误差会进入 pose NOCS ↗
RGB-D 点级投票 / 融合逐点特征、3D keypoint offset、中心投票或直接 pose3D 投票 + 最小二乘 / SVD,或学习式回归与迭代精修颜色和度量几何互补,对杂乱、遮挡和深度可见表面更直接RGB–depth 对齐、深度空洞、采样密度和前景 mask 错误会形成结构化偏差 DenseFusion / PVN3D / FFB6D ↗
模板、视点检索与投票离散视点 / 模板相似度、局部位姿 bin 或 pose votes检索得到粗旋转/深度,再连续精修可覆盖很大的初始旋转范围,天然生成多假设;新 CAD 可离线渲染 onboarding模板密度、域差距、对称重复和 coarse bin 量化限制精度与内存 SSD-6D / MegaPose coarse stage ↗
参考 / 基础特征匹配query ↔ reference / CAD rendering 的局部特征对应2D–3D PnP、3D–3D 对齐或视图相对 pose可将预训练视觉特征迁移到未见对象,减少 per-object 训练参考是否有 pose、尺度和三维代理决定问题是否可度量;重复纹理和低 overlap 需要鲁棒过滤 novel / one-shot pipelines ↗
几何引导直接回归R、t 或可微 pose 参数,常带 dense geometry 中间表示网络头或可微几何层推理路径紧凑,可与上游联合训练;中间几何提供可解释监督输出表示、训练分布、尺度和对称多模态会影响泛化;端到端不等于无需几何验证 PoseCNN / GDR-Net ↗
Render-and-compare候选 pose 的增量、可修正性或综合分数迭代 SE(3) update、采样 + ranking 或可微优化把 CAD / 对象表示显式带入当前候选,可用于粗姿态排序、精修和跟踪只在一定吸引域内有效;渲染域差距、错误可见性和不可信初值会导致错误局部解 MegaPose / FoundationPose ↗
GEOMETRY BOTTLENECK

显式中间表示便于检查

能画出对应、关键点或坐标图,就能区分网络误差与求解器误差,也能替换 solver 做 oracle 对照。

DIRECT ≠ GEOMETRY-FREE

直接回归仍有坐标语义

旋转表示、平移参数化、crop 尺度、相机内参和对称标签依然决定输出含义。

DENSE ≠ INDEPENDENT

像素多不等于证据多

同一局部区域的稠密预测高度相关,应关注表面覆盖、区域多样性和不确定性,而不只看对应数量。

CANONICAL ≠ UNIQUE

类别规范本身可能多义

杯把、瓶轴、椅子朝向等类别语义并非总能从可见观测唯一恢复,应使用对称或分布表示。

Interactive Lab

让 setting、候选和系统状态真正联动

配置器根据先验与模态动态生成七阶段方案;多假设视图用加权几何平均融合五类证据,并演示普通/对称感知 pose NMS;跟踪视图根据可见率、残差、运动与帧间隔运行门控状态机。所有数值都是教学模型,不冒充具体论文的真实置信概率。

Interactive · System Architecture

位姿流程配置、多假设与跟踪实验室

先根据任务契约组装合理流程,再观察不同证据如何改变候选排序,最后用观测质量决定继续跟踪、谨慎验证还是完全重初始化。
object → camera coarse → verify → refine score ≠ probability

Generated contract

CAD-based · RGB · Detection

6D rigid PnP / render single-frame
  1. 01

    —

    —

    —
  2. 02

    —

    —

    —
  3. 03

    —

    —

    —
  4. 04

    —

    —

    —
  5. 05

    —

    —

    —
  6. 06

    —

    —

    —
  7. 07

    —

    —

    —

Contract risks

这个 setting 首先要防什么?

    pipeline 不是固定网络结构。 只要先验、模态或输出定义变化,正确的中间表示、求解器和可验证证据就会变化。比较方法前必须先确认它们解决的是同一个 task contract。

    Hypothesis Lifecycle

    从“有一个解”升级为“正确管理候选集合”

    遮挡、对称、平面几何、重复纹理和检测框重叠都会产生多个合理候选。成熟系统要记录每个候选如何生成、支持它的独立证据、属于哪个实例和对称等价类,以及为什么被保留或拒绝。

    Evidence-fused ranking score
    s(T)=exp⁡ ⁣(∑kwklog⁡ ⁣(max⁡(ϵ,sk(T)))∑kwk)s(\mathbf T)=\exp\!\left(\frac{\sum_k w_k\log\!\big(\max(\epsilon,s_k(\mathbf T))\big)}{\sum_k w_k}\right)
    几何平均只是本页交互采用的教学融合方式:某一关键证据很差时不会轻易被另一个高分完全掩盖。实际系统应在验证集上学习或校准融合,并保存每个原始分量。
    Symmetry-aware pose equivalence
    T1∼T2⟺∃ S∈SO: T1≈T2S\mathbf T_1\sim\mathbf T_2\quad\Longleftrightarrow\quad \exists\,\mathbf S\in\mathcal S_O:\ \mathbf T_1\approx\mathbf T_2\mathbf S
    S_O 是物体坐标中的对称变换集合。pose NMS、候选聚类、训练标签与评测都应使用同一等价定义;否则等价姿态会被当成两个实例或错误候选。
    PROPOSE

    不同检测框、最小集、模板或旋转采样产生候选

    →
    VALIDATE

    正深度、几何秩、任务先验与数值有限性

    →
    SCORE

    独立渲染、mask、深度、时序与碰撞证据

    →
    CLUSTER

    按实例与对称等价做 pose-space NMS

    →
    DECIDE

    top-1、top-K、拒绝或请求新视角

    RANKING

    谁比谁更可信?

    只要求候选相对顺序正确,适合 top-K 与 NMS;分数 0.9 不一定意味着 90% 成功率。

    CALIBRATION

    给定分数,实际正确率多少?

    按 object、遮挡、尺寸或场景分桶画 reliability diagram,报告 ECE / NLL,并在独立数据上做温度缩放或校准。

    SELECTIVE PREDICTION

    何时宁可不输出?

    绘制 coverage–risk:提高拒绝阈值后保留多少实例、错误率下降多少。高风险机器人任务通常需要显式 abstain。

    Verification Is Not Refinement

    验证负责判断,精修负责移动 pose

    验证器可以只打分、不改变候选;精修器在当前吸引域内更新 R、t。把二者混成一个网络输出会隐藏失败原因:到底是正确候选没被选中,还是选中后被错误梯度拉走。

    证据典型残差适合验证什么常见陷阱
    正深度与相机视锥变换后模型点 Z > 0,投影落在合理区域最便宜的候选合法性检查只证明能投影,不证明是目标实例或正确姿态
    关键点重投影观测关键点与 π(K,D,RP+t) 的像素距离检查 PnP 与对应的内部一致性训练预测与求解共用同一错误对应时可能自洽但整体错误
    可见 mask / 轮廓mask IoU、边界 Chamfer、可见表面覆盖验证整体投影位置、尺度和朝向full mask 与 visible mask 混用;遮挡物会改变应比较区域
    RGB / feature render渲染与观测的颜色、梯度或冻结特征差异提供纹理和语义细节,补充纯几何歧义曝光、材质、光照和背景域差距不应被误当 pose 误差
    深度与点云可见渲染深度、点到面、法向或 SDF 残差直接约束度量深度和表面几何空洞、反光、多径、单位与 RGB-D 外参错误会产生系统偏差
    时序与运动学相对上一状态的 SE(3) 创新、速度和可达性在遮挡、平面双解和对称分支间消歧先验不能压过新观测;高速运动或接触会破坏常速度假设
    Visibility-aware robust refinement
    min⁡Δξ∑m∈{rgb,mask,depth,feat}λm∑u∈Ωvisρm ⁣(rm ⁣(u,exp⁡(Δξ^)T))\min_{\Delta\boldsymbol\xi}\sum_{m\in\{\mathrm{rgb,mask,depth,feat}\}}\lambda_m\sum_{\mathbf u\in\Omega_{\mathrm{vis}}}\rho_m\!\left(r_m\!\left(\mathbf u,\exp(\widehat{\Delta\boldsymbol\xi})\mathbf T\right)\right)
    Ωvis 应由当前候选、CAD z-buffer、观测遮挡和传感器有效性共同确定。不同残差量纲要归一化;更新侧、坐标方向和 stop criterion 必须写进实现契约。
    COARSE WRONG

    不应精修

    错误对称族或无重叠候选需要全局重采样,而不是增加局部迭代。

    COARSE VALID

    进入吸引域

    粗 pose 提供正确可见表面与对应邻域,局部残差才具有正确下降方向。

    REFINED

    重新验证

    检查代价下降、姿态增量、表面覆盖和任务误差;不能只信优化器终止标志。

    ROLLBACK

    必要时回退

    若独立验证分数下降或跳出先验范围,保留 coarse 候选或转入其他假设。

    Video, Multi-view & Multi-object

    从独立单帧扩展到有状态系统

    视频并不是把单帧模型循环调用。跟踪需要预测、局部数据关联、观测更新、失败门控与全局重初始化;多视图需要把各相机候选转换到统一 frame;多实例还需要身份分配与重复抑制。

    TRACKING

    初始化与局部更新分开

    全局估计扩大捕获范围,局部 tracker 提供低延迟精修;周期性或触发式重新检测抑制漂移。

    RE-IDENTIFICATION

    pose 之外还要维护身份

    遮挡后重现、同类多实例和相似外观要求 track ID 与 object ID 独立管理。

    MULTI-VIEW

    先统一到 world frame

    WTO = WTCCTO;再聚类、匹配和联合优化跨相机候选。

    MULTI-OBJECT

    框 NMS 不等于 pose NMS

    两个框可以观察同一实例,也可能高度重叠却属于不同物体;需要图像、三维与对称感知联合分配。

    Stage-wise Evaluation

    端到端分数之外,必须做逐级 oracle 对照

    只看最终 ADD、VSD 或 BOP AR 无法定位瓶颈。逐步替换 GT box / mask、GT 对应、GT 初值和 GT 深度,可以测出每个阶段对最终召回与误差的边际影响,也能防止把检测改进误判为 pose solver 改进。

    01 · PROPOSAL

    检测 / 分割上限

    object recall、mask AP、可见区域覆盖、每图候选数与 GT ROI oracle pose。

    02 · COARSE POSE

    正确解是否进入 top-K

    top-1 / top-K recall、对称感知姿态误差、RANSAC 内点与候选多样性。

    03 · VERIFY / REFINE

    排序与精修净收益

    oracle ranking、coarse→fine 成功/失败转移矩阵、独立验证分数和回退率。

    04 · SYSTEM

    任务、校准与运行代价

    coverage–risk、ECE、延迟 P50/P95、吞吐、重初始化率、跟踪存活和任务成功率。

    实验替换内容回答的问题不能得出的结论
    GT box / mask只替换 proposal检测与分割损失了多少可估实例不能证明 pose 模块在真实检测上同样稳定
    GT correspondences保留同一 solver,替换几何预测瓶颈在证据网络还是求解器/布局不能反映测试时错配和不确定性
    GT coarse pose + refiner从控制误差分布初始化精修器吸引域与误差修正能力不能把 oracle 初值结果当端到端精度
    GT depth / aligned depth替换深度噪声或外参深度传感器和对齐对 RGB-D 分支的影响不能代表透明、反光和真实空洞场景

    Engineering skeleton · typed result contract

    让每个阶段都能被替换、记录和拒绝

    伪代码强调数据契约,不绑定具体框架。生产系统应给每个结果附上 frame、单位、相机版本、对象资产版本和时间戳。
    proposals = localizer.observe(frame)
    for roi in proposals:
        evidence = encoder.predict(frame, roi, object_prior)
        hypotheses = solver.propose(evidence, camera)
    
        valid = [h for h in hypotheses if geometry_gate(h)]
        scored = verifier.score(frame, valid, object_prior)
        diverse = symmetry_aware_pose_nms(scored, top_k=K)
    
        refined = [refiner.update(frame, h) for h in diverse]
        accepted = decision.calibrate_and_select(refined)
    
        tracker.update_or_reinitialize(
            observation=accepted,
            timestamp=frame.timestamp,
            allow_abstain=True,
        )
    VERSION EVERYTHING

    记录 K/D、crop transform、CAD hash、object frame、单位、模型 checkpoint、阈值和对称元数据版本。

    KEEP RAW EVIDENCE

    保存原始 proposal、对应、候选及各分项 score;只保存最终矩阵无法复现为何选中该解。

    FAIL EXPLICITLY

    输出 rejected / lost / reinitialize,不要用 identity、上一帧 pose 或全零矩阵静默代替失败。

    Debug Protocol

    沿数据流设置断点,而不是一次调完整系统

    端到端位姿错误往往由多个小问题叠加。最有效的排错方式是固定下游、逐级替换 oracle 输入,并为每个候选可视化 frame、投影、对应、mask、深度与 score 分量。

    1. 01

      从单个对象、单张图和真值 crop 开始

      禁用检测、批处理、跟踪与多实例分配,先证明核心几何模块能在一个完全可控样本上恢复正确 CTO。

    2. 02

      用真值位姿重新生成全部监督与观测

      重投影 CAD、渲染 mask/depth、画坐标轴与 3D box。若真值不能解释数据,错误在资产、K/D、frame、单位或标注。

    3. 03

      逐点检查中间表示

      画关键点编号、稠密对象坐标、置信度、法向和可见性;对称区域应显示多义或低置信,而不是强迫任意单标签。

    4. 04

      固定对应,独立测试 solver

      用合成无噪声、加噪声、离群、共面和对称用例验证 PnP / SVD / RANSAC,再回到网络预测。

    5. 05

      保存所有 coarse 候选和排序分量

      若正确解在 top-K 但没被选中,问题在 verifier / NMS;若从未生成,问题在 proposal、表示或采样。

    6. 06

      精修前后都做独立验证

      记录 ΔR、Δt、每项残差、可见覆盖和 stop reason;若变差则回退,并绘制初值误差对成功率的吸引域曲线。

    7. 07

      最后再开启检测、批处理与跟踪

      逐项加入真实 mask、多个对象、异步传感器、缓存和状态机,监控 ID switch、漂移、延迟尖峰与重初始化。

    任务定义、代表性机制与原始来源展开查看 benchmark、论文和项目页

    Next perception topic · 09

    RGB、RGB-D 与多模态流程

    下一专题将专门比较 RGB-only、depth、point cloud 与 RGB-D 的信息边界、融合层级、缺失模态、真实深度噪声、多视角融合,以及透明、反光和黑色物体等困难场景。
    进入完整专题