Claim
先写清要证明什么:已知实例 pose、端到端 6D detection、跟踪稳定性、抓取/装配成功,还是实时系统约束。
同一模型可以针对不同 claim 得到完全不同的“最好指标”。01 · Evaluation Contract
一个可比较数字至少要回答 claim、单位、equivalence、threshold、matching、aggregation 和独立采样单位。只写“使用 ADD-S / AR”还远远不够。
先写清要证明什么:已知实例 pose、端到端 6D detection、跟踪稳定性、抓取/装配成功,还是实时系统约束。
同一模型可以针对不同 claim 得到完全不同的“最好指标”。frame、object instance、scene、sequence、physical instance、dataset 或 task episode。
统计独立性、bootstrap cluster 和平均权重都由该单位决定。rotation / translation、surface、visible depth、image projection、box overlap 或 task cost。
误差空间决定它能看到什么、忽略什么。object geometry / appearance symmetry、current-view ambiguity、visibility 与 task equivalence。
必须来自冻结 metadata / protocol,不能看到结果后再改。连续 error、单一阈值 success、阈值曲线、prediction set coverage 或 calibrated probability。
阈值、单位、直径归一化、strict < / ≤ 都是协议。预测与 GT 的类别约束、one-to-one assignment、score order、top-N、ignore / visibility 规则。
漏检、重复和错误排序只在匹配后成为 TP / FP / FN。instance micro、object macro、dataset macro、threshold average、AUC / AR / AP。
headline score 是多层 reduction,不是新的 pose distance。多 seed、paired difference、scene/sequence cluster bootstrap、effect size 与 interval。
CI 只覆盖指定抽样过程,不自动覆盖域偏移或标签系统误差。按对象、尺度、距离、可见率、对称、材质、sensor、场景和 failure stage 切片。
总分用于排序,切片用于定位修复。dataset split/hash、eval mesh、symmetry、targets、toolkit commit、renderer、thresholds 与 result CSV。
缺少任一项,论文数字可能无法复现。Protocol ID · 建议让结果表可机器追踪
task: ModelBased-6DDet-Unseen dataset: ycbv/test + targets_bop24@sha256:... prediction: class + ᶜTₒ(mm) + confidence + runtime assets: models_eval@sha256:... + models_info@sha256:... errors: [MSSD, MSPD] @ bop_toolkit:<commit> thresholds: <named config> # never inferred from test matching: score_ordered_one_to_one aggregation: threshold → object → metric → dataset independent_unit: scene # for paired bootstrap failure_rule: missing/timeout → FN hardware: GPU / driver / precision / batch / warmup
02 · Component Pose Errors
把 6DoF 拆开能快速判断是 orientation、metric depth、尺度、frame 还是 calibration 出错;但它们没有自动考虑物体尺寸、表面形状和可见性。
03 · Surface & Projection Errors
ADD、ADD-S、MSSD 和 MSPD 都使用模型表面,但 correspondence、symmetry、mean/max 与 3D/2D 空间完全不同。
| Metric | 空间 | 所需 | 对称 | 可见性 | 最敏感 | 看不到 / 风险 |
|---|---|---|---|---|---|---|
| Rotation geodesic | SO(3) 最短角 | R̂, R* | 默认无;可 min over 𝒮 | 无 | 朝向误差,与模型尺寸/平移解耦 | 平移、表面半径、图像尺度与 task contact |
| Translation L2 | 相机 / 世界坐标的 metric 3D | t̂, t* 与单位/frame | rotation symmetry 不影响中心;离轴定义需谨慎 | 无 | 中心位置、深度尺度与外参偏差 | 旋转、表面最坏点和物体尺寸相对难度 |
| ADD | 同名模型点平均 3D 位移 | 固定模型点、两组 pose | 不处理 | 完整模型 | 旋转+平移,远离原点的点贡献更大 | 遮挡;会惩罚视觉等价 symmetry representatives |
| ADD-S | 平均最近点 3D 距离 | 模型点集、nearest-neighbor 实现 | 隐式借助表面最近点 | 完整模型 | 表面整体接近,缓解轴向/重复几何 | 非严格重复结构、纹理方向和 point sampling bias |
| 2D Projection | 同名点平均像素位移 | 模型点、pose、K / camera model | 默认无 | 通常完整模型投影 | 最终 overlay 的平均图像偏移 | 沿视线的 3D 错误;分辨率/focal 改变像素含义 |
| VSD | 当前图像可见表面的 depth discrepancy | 模型、pose、K、test depth、renderer、δ / τ | 通过不可辨识的可见表面处理 | 显式核心 | 遮挡下可观测 surface alignment | 不可见背面;依赖 depth validity 与 rendering contract |
| MSSD | 对称感知后的最大 3D 表面偏移 | eval vertices、pose、global symmetry set | 显式 min over 𝒮 | 完整模型 | 最坏局部 3D 错位、安全 / 接触容差 | 当前 view 是否能区分;对极端 vertex / sampling 敏感 |
| MSPD | 对称感知后的最大投影偏移 | eval vertices、pose、𝒮、K | 显式 min over 𝒮 | 不使用 test depth | 最坏可感知像素错位、RGB / AR | 沿光轴的 metric 3D 错误;依赖 focal / resolution |
| Task success / cost | 抓取、插装、碰撞、轨迹或控制结果 | 机器人、环境、动作策略与重复 trials | 由 action equivalence 定义 | 通过整个闭环间接进入 | 部署真正关心的失败代价 | 难隔离感知模块;sim / hardware 与策略会共同影响 |
04 · Visibility, Thresholds & BOP
VSD 需要 test depth 与 rendering 来判断 surface visibility;MSSD/MSPD 使用预识别全局 symmetry。三者互补,不是同一 metric 的三个精度档。
| 阈值形式 | 示例 | 解释与风险 |
|---|---|---|
| Absolute metric | 5 mm、20 mm、5 px、5° | 直接对应某一工程容差,但跨尺寸、距离和分辨率不公平 |
| Diameter normalized | ADD / MSSD < αd,常见 α=0.1 | 跨对象尺度更可比;细小关键特征和 task tolerance 仍可能不同 |
| Image normalized | 像素阈值按图像宽度或 focal 归一化 | 跨相机更稳,但与人眼/AR 实际容忍度需重新解释 |
| Multiple thresholds | 在一组 θ 上平均 recall / precision | 降低单阈值偶然性;阈值集合与权重仍决定 headline |
| AUC / integral | 对 recall–error threshold 曲线积分 | 必须固定上限、归一化与数值积分;0.1 m 与 0.1d 不可互换 |
| Task calibrated | 由插装间隙、夹爪接触、collision margin 或控制稳定性选择 | 最具应用意义;需独立 task validation,不能由 test set 反向调阈值 |
每个 estimate–GT pair 计算 VSD / MSSD / MSPD。
在每个 θ(VSD 还含 τ)判定 e<θ。
在 targets 与 matching rule 下计算被正确定位比例。
跨该 error 的阈值设置平均 recall。
跨 3 个 errors,再跨 core datasets 等权平均。
05 · Task, Matching & Candidate Semantics
任务输入决定系统被允许知道什么;候选集合、score、top-K 和 one-to-one matching 决定漏检与重复如何进入分母。
保存全部候选的 image / object / pose / score / time;先应用 benchmark 允许的 max predictions 与 target rule。
类别、图像/视图、GT ignore / visibility、metric threshold 和 task target 必须满足,才可进入匹配。
一个 GT 最多被一个 prediction 匹配;一个 prediction 也不能解释多个 GT。重复候选成为 FP 或被 task rule 过滤。
detection 通常按 confidence 从高到低;错误高分会在低 recall 区域先制造 FP,从而压低整条 PR 曲线。
greedy、Hungarian、target-count matching 或 metric-specific matching 可能不同;必须直接使用官方实现并冻结版本。
低可见率或不在 target file 的 GT / predictions 如何处理必须跟协议;“不计入 FN”不必然意味着对应预测计 FP。
top-K 是否作为 K 个 detection、一个 prediction set,还是 oracle best-of-K,三种 protocol 结果完全不同。
相同 score 的稳定排序、数值精度、NMS / symmetry dedup 会改变边界结果,需要确定性规则。
Localization mental model
input: image + [(object_id, visible_count), ...] for each object: keep task-allowed number of hypotheses compute error matrix to same-object GTs one-to-one match under each threshold recall = matched targets / all targets AR_e = average recall over threshold settings headline = aggregate AR_e / datasets
Detection mental model
input: image only (no visible-instance list) predictions = class + pose + confidence sort / cap predictions by protocol for each metric threshold and object: score-ordered one-to-one matching duplicate / wrong / threshold-fail -> FP unmatched GT -> FN AP_e,o = area under precision–recall headline = aggregate objects / metrics / datasets
06 · Interactive Lab
第一组用同一 transform 实算八类 error;第二组把相同候选送进 localization / detection;第三组对 240 条记录切换 micro/macro、pose oracle 与 scene-cluster bootstrap。
Interactive · Error, Matching & Statistical Diagnosis
Rotation
Translation
ADD / ADD-S
Proj2D
MSSD / MSPD
VSD-style
Task input
Considered
Match counts
Recall / Precision
Headline
Headline A / B
Paired delta
Worst slice
Pose-oracle gap
Protocol diagnosis
07 · Aggregation & Statistical Evidence
先保存每条 prediction、每个 GT、每种 error 和 matching outcome,再生成所有汇总表。不要只保留最终平均数。
| 层级 | 怎么平均 | 改变了什么权重 / 风险 |
|---|---|---|
| Per-instance micro | 把所有 annotated instances 放在一起平均 | 样本多的 object / scene 主导;适合真实频率 claim |
| Per-object macro | 先求每个 object 分数,再让每个 object 等权 | 长尾物体获得同等权重;小样本 object 方差更大 |
| Per-dataset macro | 先求 dataset score,再跨 core datasets 等权 | 避免大数据集淹没小数据集;dataset 定义变化会改变总分 |
| Across thresholds | 对 correctness thresholds 求平均 recall / precision | 不是独立试验;阈值网格与范围必须公开 |
| Across metrics | 例如 BOP localization 平均 AR_VSD / AR_MSSD / AR_MSPD | 三个指标面向不同目标应用,平均值会隐藏冲突 |
| Across seeds / runs | 对完整训练和评测 run 报 mean±SD / CI,并保留每个 seed | 不能把逐图像方差代替训练 seed 方差 |
| Across time | 逐帧、逐序列、failure episode 或固定时间窗 | tracking 应按 sequence / episode 聚合并报告失效持续时间 |
去除样本难度的共同波动
若预处理、detector target 或失败样本集合不同,pairing 需先定义 missing rule保留 cluster 内相关性,避免把相邻帧假装独立
cluster 数很少时 percentile CI 不稳定;应同时给原始 cluster counts揭示优化与随机数据顺序的不稳定
固定 checkpoint 只重复 evaluator 不等价于训练 seed variance知道提升是否超过工程容差
基线接近零时 relative % 会夸张;只报 p-value 不说明实际意义平均值之外看到长尾与门限附近形状
不同 sample weights 或过滤规则会让 percentile 不可比避免小 slice 的偶然 100% 被当结论
大量切片会产生选择性汇报;slice schema 应预先冻结08 · Error Slicing & Stage Oracles
每个 slice 都要预先定义、报告样本数和 interval,并能回到原始图像 / 深度 / overlay / error heatmap;否则容易形成事后挑选。
| 切片轴 | 定位问题 | 建议报告 |
|---|---|---|
| Object / category / instance | 几何、纹理、对称、训练频率与 CAD quality | per-object table、macro score、worst-K objects |
| Visible fraction / truncation | 遮挡前端、amodal reasoning 与 VSD 区别 | 按 visib_fract bins、truncation 独立切分 |
| Image footprint / diameter | 小物体像素量化、MSPD 与 detector recall | bbox area、projected diameter 与 metric diameter 分层 |
| Range / depth | Z 误差、focal–translation coupling、depth noise | 按 camera Z、sensor range、translation components |
| Rotation / viewpoint | 训练 pose coverage、in-plane / out-of-plane 和 canonical boundary | SO(3) bins、view sphere、roll bins、symmetry quotient |
| Material / illumination | 透明、镜面、黑色、弱纹理与 domain gap | 资产标签 + sensor validity / exposure / light bins |
| Scene / clutter / count | detector overload、inter-object occlusion 与 duplicates | scene-level count、occluder type、background domain |
| Modality health | RGB blur、depth holes、sync / calibration 和 missing modality | raw sensor QA、confidence、dropout / fallback route |
| Failure stage | detector、mask、correspondence、solver、refiner、score、tracking | GT crop / GT mask / oracle PnP / oracle selection stage ablations |
| Task / robot state | reachability、grasp family、contact tolerance、calibration与 motion | pose-only / calibrated chain / simulated / hardware success ladder |
真实部署候选、漏检、重复和超时全部保留。
当前候选覆盖上限;与真实 score 结果差距定位 ranking / calibration。
定位 PnP / RANSAC / refinement attraction basin。
pose head 上限;不能作为端到端 headline。
Per-instance error record · 让所有图都可重算
scene_id / image_id / gt_id / object_id / physical_instance visibility / truncation / projected_size / camera_z / material_tags prediction_id / rank / confidence / runtime / failure_stage rotation_raw / rotation_sym / translation_xyz ADD / ADD-S / Proj2D / VSD[tau] / MSSD / MSPD matched_gt / TP-FP-FN per threshold / ignore_reason asset_hash / symmetry_hash / evaluator_commit / render_backend overlay_path / depth_diff_path / log_path
09 · Robotics, Tracking & Efficiency
部署评测建立 ladder:pose-only → calibrated robot chain → planner / simulator → hardware trials。每层同时保留输入、失败 stage 与 pose oracle,才能知道改哪里。
MSSD 的最坏表面偏移比平均 ADD 更接近局部接触风险,但最终仍要按 grasp family、jaw width、collision 和 force closure 做 task trials。
分解沿插入轴、横向、roll 与 key-feature error;一个总体 5°5cm 阈值无法表达亚毫米间隙。
报告 control-rate latency、jitter、tracking failure duration、recovery 和 quotient representative jumps,而不只逐帧 pose mean。
P95 / worst-slice、risk–coverage、OOD / sensor-health fallback 与 hardware interlock 往往比平均 AR 更重要。
| 效率维度 | 必须说明 |
|---|---|
| Latency definition | end-to-end wall-clock / image、per-object、per-hypothesis 或 batch throughput;warmup 与 preprocessing 是否计入 |
| Hardware | CPU/GPU/accelerator、memory、driver、precision、power mode、threads 与 batch size |
| Onboarding / training | seen/unseen object 任务的每对象 onboarding 时间、render/template/cache 与最大资源限制 |
| Memory | peak VRAM / RAM、model size、template / feature database 和 persistent cache |
| Throughput vs tail | 平均 FPS 之外报告 median / P95 latency、队列、同步和 worst-case candidate count |
| Energy / deployment | 功耗、thermal throttling、edge device、network / server latency 与 fallback 资源 |
| Accuracy–cost frontier | 相同 protocol 下扫 refinement iterations、top-K、resolution 与 ensemble,报告 Pareto frontier |
10 · Reproducibility & Release Gates
先让 expected targets、prediction records 和 evaluated records 对账,再验证资产、相机、symmetry、renderer、threshold 与聚合。
| 失败模式 | 表象 | 检测 | 修复 |
|---|---|---|---|
| 单位 / frame 错 | 所有方法在某轴出现巨大 translation,ADD 以 1000× 偏差 | 矩阵投影、known synthetic pose、m/mm 和 m2c/c2m round trip | 先阻断评测;不能通过大阈值掩盖 |
| 错误 eval mesh / origin | rotation error 正常但 surface metrics 全面偏差 | hash models_eval、bbox、diameter、vertex count 和 frame overlay | 固定资产版本并随结果归档 |
| 对称 metadata 不一致 | 等价代表元在 ADD/MSSD 得到冲突,per-object 异常 | 渲染 symmetry orbit、surface invariance、texture / instance 审计 | 冻结 geometry/appearance symmetry 与 toolkit discretization |
| ADD-S 过度宽容 | 非严格重复结构的大错仍最近点很近 | 并列 ADD、MSSD、render overlay 与 task result | 不要把 ADD-S 当通用显式 symmetry metric |
| VSD depth / renderer mismatch | 透明/镜面或无效 depth 样本得分异常 | 记录 depth validity、renderer convention、δ/τ 与 visual heatmap | 使用官方 renderer/toolkit;分层报告 sensor failure |
| 5px 跨相机比较 | 高分辨率/长焦数据集看似更差 | 将 pixel error 对 image width、fx 与 metric displacement 对照 | 固定 camera protocol或并列 normalized/3D metric |
| 只评 matched detections | pose head 数字很高,端到端系统大量漏检 | 同时报 GT-crop / detector-crop、pose oracle gap 和 AP/AR | 不丢弃 detector failures;明确 stage |
| 重复预测获益错觉 | oracle top-K 高但真实 score 选错,AP 下降 | one-to-one matching、top-1/top-K、NLL/calibration 与 duplicates | 训练排序/去重;按部署接口评测 |
| Micro 掩盖长尾 | 常见大对象提升,总分升但小对象崩溃 | micro vs object-macro、per-object / scale bins | 预注册权重并公开 counts |
| 逐帧伪独立 | CI 极窄、p-value 很小,但换 sequence 失效 | 按 scene/sequence/physical instance 统计相关性 | cluster bootstrap / grouped split |
| Test-set tuning | 阈值、symmetry tolerance、NMS、temperature 对 test 最优 | 追踪 config provenance 与访问日志 | validation/calibration split 冻结;test 只运行最终协议 |
| 失败样本被 silently drop | NaN、无 pose、超时或 missing file 未计入 denominator | expected targets 与 evaluated records count/checksum 对账 | 失败显式转 FN / max error,按 protocol 记录原因 |
| AUC / AR 名称不完整 | 相同“AR”或“AUC”却差数十点 | 检查 error、threshold grid、upper bound、dataset/year/aggregation | 字段名携带完整 protocol ID |
| 速度不可复现 | 论文 FPS 只测 network forward,部署慢数倍 | 端到端 profiler、warmup、sync、P95、candidate count | 同时报告 stage breakdown 与硬件/precision |
Release gate · 发布任何 pose benchmark 数字之前