AsianPlayer/TriDrive / code /aide /eval /paper_rows.py
AsianPlayer's picture
download
raw
4.82 kB
"""Driver-WM (arXiv 2605.05092v2) published table, typed VERBATIM from the owner's transcription (roadmap supplement B §B1),
so that report_stage_bc.py and baselines_analytic.py share one source. Nothing here is measured by us.
Columns per row: All-MPJPE, d-nMPJPE, HM-MPJPE, HM d-nMPJPE, PCK@0.05, F1 DBR, F1 DER, F1 TCR, F1 VCR (None = not
reported by the paper). Row groups: 5 motion baselines, 4 controlled context baselines, main model + 2 variants,
6 ablations = 18 model rows; the transcription's "20 rows" also counts the h=5 HM entry (PAPER_HM5) and the
7-row intervention block (PAPER_T3_FULL).
"""
from __future__ import annotations
COLS = ("mpjpe_all", "dn_mpjpe", "mpjpe_hm", "dn_mpjpe_hm", "pck05", "f1_dbr", "f1_der", "f1_tcr", "f1_vcr")
LOWER_IS_BETTER = {"mpjpe_all", "dn_mpjpe", "mpjpe_hm", "dn_mpjpe_hm"}
GROUP = { # row -> group label (paper structure)
"Zero-Velocity": "motion baseline", "ST-GCN": "motion baseline", "SiMLPe": "motion baseline",
"MotionBERT": "motion baseline", "Offline Enc-Dec": "motion baseline",
"Static pooling": "controlled context baseline", "Single-stream": "controlled context baseline",
"Late fusion": "controlled context baseline", "Cross-Attn only": "controlled context baseline",
"Driver-WM main": "main", "full pretrained": "variant", "Non-causal": "variant (reads future frames)",
"w/o ext context": "ablation", "RSSM/GRU": "ablation", "+Skeleton-Pre": "ablation", "KL bottleneck": "ablation",
"no-prompt feat": "ablation", "no pose head": "ablation",
}
def _row(*vals):
assert len(vals) == len(COLS), vals
return dict(zip(COLS, vals))
PAPER_ROWS = {
"Zero-Velocity": _row(52.89, 2.40, 139.19, 6.32, 85.95, 8.27, 14.94, None, None),
"ST-GCN": _row(110.98, 5.04, 158.10, 7.18, 60.97, 18.96, 22.66, None, None),
"SiMLPe": _row(106.38, 4.83, 156.29, 7.09, 63.45, 37.26, 41.69, None, None),
"MotionBERT": _row(73.51, 3.34, 141.53, 6.42, 78.01, 56.70, 52.71, None, None),
"Offline Enc-Dec": _row(75.87, 3.45, 144.05, 6.54, 77.17, 53.82, 50.68, None, None),
"Static pooling": _row(68.50, 3.11, 134.56, 6.11, 72.55, 54.04, 60.07, 26.39, 14.00),
"Single-stream": _row(90.87, 4.13, 147.44, 6.69, 59.63, 24.56, 24.35, 26.39, 14.00),
"Late fusion": _row(82.59, 3.75, 143.31, 6.51, 65.07, 45.87, 49.10, 87.85, 65.97),
"Cross-Attn only": _row(80.14, 3.64, 142.41, 6.47, 66.43, 62.52, 68.75, 87.94, 69.09),
"Driver-WM main": _row(71.47, 3.24, 138.03, 6.27, 71.66, 68.07, 72.61, 90.15, 68.34),
"full pretrained": _row(72.68, 3.30, 138.03, 6.27, 70.99, 73.22, 73.97, 90.54, 62.09),
"Non-causal": _row(72.15, 3.27, 136.50, 6.20, 71.39, 73.35, 74.46, 88.65, 68.82),
"w/o ext context": _row(71.74, 3.26, 136.94, 6.21, 71.13, 71.33, 63.56, 26.39, 14.00),
"RSSM/GRU": _row(78.42, 3.56, 136.46, 6.19, 67.48, 67.15, 72.29, 88.26, 63.74),
"+Skeleton-Pre": _row(70.92, 3.22, 136.04, 6.18, 72.09, 69.55, 75.65, 88.33, 70.24),
"KL bottleneck": _row(70.56, 3.20, 136.50, 6.20, 71.71, 69.89, 71.54, 88.84, 64.68),
"no-prompt feat": _row(76.54, 3.47, 142.08, 6.45, 68.28, 68.88, 69.92, 76.87, 58.59),
"no pose head": _row(None, None, None, None, None, 67.22, 70.92, 88.83, 69.44),
}
assert len(PAPER_ROWS) == 18 and set(PAPER_ROWS) == set(GROUP)
PAPER_HM5 = {"Driver-WM main": 155.82, "Zero-Velocity": 178.62} # h=5 High-Motion MPJPE quoted in the paper
NON_CAUSAL = {"Non-causal"}
# Table 3 interventions (Driver-WM main, test): Δ All / Δ HM / Δ h=5 / Δ Head / Δ Hands (px deviation from the factual rollout)
PAPER_T3_FULL = {
"swap": (5.363, 4.794, 8.042, 5.462, 3.502),
"remove ext": (12.953, 8.691, 15.208, 7.385, 12.937),
"shift large": (0.793, 0.892, 1.009, 0.661, 0.018),
"drop view": (0.419, 0.100, 0.478, 0.392, 0.265),
"disable pathway": (89.641, 62.232, 116.751, 36.783, 95.666),
"force": (26.733, 11.480, 42.170, 15.861, 26.727),
"over-injection": (43.015, 23.959, 52.142, 33.909, 43.695),
}
def best_published(col, exclude_non_causal=False):
"""(value, row name) of the best published number in `col` over all rows that report it."""
rows = [(r, v[col]) for r, v in PAPER_ROWS.items() if v[col] is not None and not (exclude_non_causal and r in NON_CAUSAL)]
r, v = (min if col in LOWER_IS_BETTER else max)(rows, key=lambda x: x[1])
return v, r
def margin(col, ours):
"""Signed margin of `ours` over the best published value; NEGATIVE = ours better for error columns, POSITIVE = ours
better for PCK / F1. Returns (margin, best_value, best_row, ours_is_better)."""
best, row = best_published(col)
m = ours - best
better = (m < 0) if col in LOWER_IS_BETTER else (m > 0)
return m, best, row, better

Xet Storage Details

Size:
4.82 kB
·
Xet hash:
5fcf29f585b32ef86748a517f43063336c3319019b50cf1142982360f1d37bad

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.