CTO 还是 OTC?
本站默认 object-to-camera;输出到 SLAM、图形学或机器人前再显式求逆和复合。
Task Before Architecture
“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 | 决定变换群、训练标签、对称等价、损失和评测协议;类别级任务通常还要输出尺寸或尺度。 |
| 运行模式 | 单帧 / 初始化 + 跟踪 / 在线重定位 / 多视角联合 | 决定初值来源、延迟预算、状态管理、是否允许使用未来帧,以及丢失后的恢复策略。 |
本站默认 object-to-camera;输出到 SLAM、图形学或机器人前再显式求逆和复合。
多物体系统需要 object ID、instance / track ID、检测来源和重复候选归属。
proposal、对应内点率、渲染一致性和校准成功概率必须分字段,不要混成一个无语义 score。
输出内点、残差、可见率、对称族、终止原因和诊断码,任务层才能安全使用。
End-to-End Architecture
不同论文可能合并若干阶段或用一个网络联合预测,但系统责任仍然存在。把责任拆开,才能知道错误来自目标没被发现、证据不可靠、求解退化、排序失败,还是精修离开了正确吸引域。
OFFLINE
PROPOSAL
EVIDENCE
HYPOTHESIS
VERIFY
REFINE
DECIDE
SYSTEM
CAD 采样、模板渲染、reference 重建和特征缓存可以降低在线延迟,但它们仍属于方法输入权限,必须统计耗时、存储和是否需要真值 pose。
检测、特征、候选、渲染与精修的批处理方式决定延迟;只报告网络 forward 而忽略渲染、RANSAC 和数据搬运会低估系统成本。
抓取需检查碰撞、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、中心投票或直接 pose | 3D 投票 + 最小二乘 / 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 ↗ |
能画出对应、关键点或坐标图,就能区分网络误差与求解器误差,也能替换 solver 做 oracle 对照。
旋转表示、平移参数化、crop 尺度、相机内参和对称标签依然决定输出含义。
同一局部区域的稠密预测高度相关,应关注表面覆盖、区域多样性和不确定性,而不只看对应数量。
杯把、瓶轴、椅子朝向等类别语义并非总能从可见观测唯一恢复,应使用对称或分布表示。
Interactive Lab
配置器根据先验与模态动态生成七阶段方案;多假设视图用加权几何平均融合五类证据,并演示普通/对称感知 pose NMS;跟踪视图根据可见率、残差、运动与帧间隔运行门控状态机。所有数值都是教学模型,不冒充具体论文的真实置信概率。
Interactive · System Architecture
Generated contract
—
—
—
—
—
—
—
Contract risks
Ranked hypotheses
检测置信度不能证明旋转、深度或对称分支正确;高分框仍可能对应错误位姿。
重投影、可见 mask、深度和法向残差都要在同一候选位姿下计算,并使用一致的可见性定义。
需要 reliability diagram、ECE、温度缩放或独立验证集,才能把“0.8”解释为可操作的成功概率。
Current system state
TRACK 用上一帧位姿预测并做局部精修常速度、运动学或上一帧 pose
建立当前帧局部对应与可见性
估计 SE(3) 增量与观测残差
接受、扩大搜索或重初始化
Visibility gate
——RGB residual gate
——Depth residual gate
——Motion / time gate
——Teaching quality index
—Predicted search radius
—Next-frame policy
—Hypothesis Lifecycle
遮挡、对称、平面几何、重复纹理和检测框重叠都会产生多个合理候选。成熟系统要记录每个候选如何生成、支持它的独立证据、属于哪个实例和对称等价类,以及为什么被保留或拒绝。
不同检测框、最小集、模板或旋转采样产生候选
正深度、几何秩、任务先验与数值有限性
独立渲染、mask、深度、时序与碰撞证据
按实例与对称等价做 pose-space NMS
top-1、top-K、拒绝或请求新视角
只要求候选相对顺序正确,适合 top-K 与 NMS;分数 0.9 不一定意味着 90% 成功率。
按 object、遮挡、尺寸或场景分桶画 reliability diagram,报告 ECE / NLL,并在独立数据上做温度缩放或校准。
绘制 coverage–risk:提高拒绝阈值后保留多少实例、错误率下降多少。高风险机器人任务通常需要显式 abstain。
Verification Is Not Refinement
验证器可以只打分、不改变候选;精修器在当前吸引域内更新 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) 创新、速度和可达性 | 在遮挡、平面双解和对称分支间消歧 | 先验不能压过新观测;高速运动或接触会破坏常速度假设 |
错误对称族或无重叠候选需要全局重采样,而不是增加局部迭代。
粗 pose 提供正确可见表面与对应邻域,局部残差才具有正确下降方向。
检查代价下降、姿态增量、表面覆盖和任务误差;不能只信优化器终止标志。
若独立验证分数下降或跳出先验范围,保留 coarse 候选或转入其他假设。
Video, Multi-view & Multi-object
视频并不是把单帧模型循环调用。跟踪需要预测、局部数据关联、观测更新、失败门控与全局重初始化;多视图需要把各相机候选转换到统一 frame;多实例还需要身份分配与重复抑制。
全局估计扩大捕获范围,局部 tracker 提供低延迟精修;周期性或触发式重新检测抑制漂移。
遮挡后重现、同类多实例和相似外观要求 track ID 与 object ID 独立管理。
WTO = WTCCTO;再聚类、匹配和联合优化跨相机候选。
两个框可以观察同一实例,也可能高度重叠却属于不同物体;需要图像、三维与对称感知联合分配。
Stage-wise Evaluation
只看最终 ADD、VSD 或 BOP AR 无法定位瓶颈。逐步替换 GT box / mask、GT 对应、GT 初值和 GT 深度,可以测出每个阶段对最终召回与误差的边际影响,也能防止把检测改进误判为 pose solver 改进。
object recall、mask AP、可见区域覆盖、每图候选数与 GT ROI oracle pose。
top-1 / top-K recall、对称感知姿态误差、RANSAC 内点与候选多样性。
oracle ranking、coarse→fine 成功/失败转移矩阵、独立验证分数和回退率。
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
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,
) 记录 K/D、crop transform、CAD hash、object frame、单位、模型 checkpoint、阈值和对称元数据版本。
保存原始 proposal、对应、候选及各分项 score;只保存最终矩阵无法复现为何选中该解。
输出 rejected / lost / reinitialize,不要用 identity、上一帧 pose 或全零矩阵静默代替失败。
Debug Protocol
端到端位姿错误往往由多个小问题叠加。最有效的排错方式是固定下游、逐级替换 oracle 输入,并为每个候选可视化 frame、投影、对应、mask、深度与 score 分量。
禁用检测、批处理、跟踪与多实例分配,先证明核心几何模块能在一个完全可控样本上恢复正确 CTO。
重投影 CAD、渲染 mask/depth、画坐标轴与 3D box。若真值不能解释数据,错误在资产、K/D、frame、单位或标注。
画关键点编号、稠密对象坐标、置信度、法向和可见性;对称区域应显示多义或低置信,而不是强迫任意单标签。
用合成无噪声、加噪声、离群、共面和对称用例验证 PnP / SVD / RANSAC,再回到网络预测。
若正确解在 top-K 但没被选中,问题在 verifier / NMS;若从未生成,问题在 proposal、表示或采样。
记录 ΔR、Δt、每项残差、可见覆盖和 stop reason;若变差则回退,并绘制初值误差对成功率的吸引域曲线。
逐项加入真实 mask、多个对象、异步传感器、缓存和状态机,监控 ID switch、漂移、延迟尖峰与重初始化。
Next perception topic · 09