PHALP:先把人「抬进 3D 世界」,再跟踪——遮挡就不再是问题
🎯 为什么重要:2D 跟踪的根本痛点是「投影」
2021 年前,多人跟踪的主流是「2D 检测 + 关联」——每帧用 detector 检出框,再用 Re-ID 特征或 2D 运动模型把框连起来。Rajasegaran 等人 2021 年的 HMAR [32] 已经证明 3D 表示更适合跟踪。PHALP 把这个想法做成完整系统,并用控制论的「状态估计 + 预测 + 关联」框架重写跟踪问题。
- 遮挡 = 消失:图像里没像素就跟不住。但婴儿都知道物体被遮挡并不消失(object permanence)。
- 外观依赖姿态:同一个人的衣纹、形状在「站」和「蹲」下完全不同,2D 像素特征会误判为两个人。
- 深度丢失:远处的人「靠近镜头」时在 2D 里加速,2D 运动模型(CVA)失效。
PHALP 的回答:把所有跟踪对象都放进 3D 世界,用 3D 状态做预测和匹配。这样三个痛点一起解决:3D 状态在遮挡下持续演化;外观在 UV map 上与姿态解耦;深度用「nearness」$n = \log(1/z)$ 显式建模。
💡 核心思想:Perception → Tracklet → Prediction → Association(控制论标准管线)
PHALP 把跟踪严格翻译成「状态估计 + 数据关联」经典框架,每一步都有明确的概率解释。
🛠️ 五个关键设计选择
| 设计 | 具体做法 | 为什么这样做 |
|---|---|---|
| ① 用 nearness $n=\log(1/z)$ 代替深度 z | 3D 位置写成 $l=(x, y, n)^T$,对三维分别独立线性回归 | 透视投影是 $1/z$ 缩放,深度大时小扰动→图像大位移;nearness 让「线性回归 + 常速假设」在 3D 上仍然成立(虽然 2D 上不成立) |
| ② 外观在 UV 空间聚合 | 每帧把可见像素贴到 SMPL 的 UV map,tracklet 用加权平均 $\hat{A}_t = (1-\alpha)\hat{A}_{t-1} + \alpha A_t$,α 由可见性决定 | UV map 把外观从姿态中解耦——同一个人不同姿态的 UV 贴图可以对齐相加,2D 像素做不到 |
| ③ 姿态用 Transformer 聚合 | HMMR 的「movie strip」改用 Transformer,通过 mask attention 处理缺失帧 | 遮挡时单帧 detector 没输出,tracklet 必须能处理「中间缺帧」的时序建模 |
| ④ 不同属性用不同距离分布 | 外观/姿态用 Cauchy 分布(重尾),位置/深度用 Exponential 分布(按预测区间归一化) | 从 PoseTrack 数据上经验拟合:外观/姿态的 inlier 分布有长尾(同人多角度),位置则更紧凑 |
| ⑤ Shot change 时扔掉位置 cost | 检测到镜头切换后,关联 cost 只保留 P_A · P_P(外观 + 姿态) | 外观和 3D 姿态对视角不变,但镜头切换后 3D 位置完全无效 |
因为四个属性的距离→概率映射都有闭式分布(Cauchy / Exp),分布形状是数据经验决定的,每个分布只剩一个 scale 参数 β。最后加一个 Hungarian 阈值 β_th,共 5 个。作者用 Nelder-Mead 在 PoseTrack 上一次性优化完,然后所有数据集共用——不需要 per-dataset 调参。这种「少超参 + 概率解释」的设计,让系统非常 robust。
📊 关键结果(论文 Table 1 / Table 2)
| 实验 | 对比 | 关键数字 |
|---|---|---|
| SOTA 对比 · PoseTrack (Table 2) | IDs↓ | 541(T3DP 655;Tracktor 702;Trackformer 1263;AlphaPose 2220) |
| MOTA↑ / IDF1↑ / HOTA↑ | 58.9 / 76.4 / 52.9(HOTA 也是最佳) | |
| SOTA 对比 · MuPoTS (Table 2) | IDs↓ | 22(T3DP 38;Tracktor 53;Trackformer 43) |
| MOTA↑ / IDF1↑ / HOTA↑ | 66.2 / 81.4 / 59.4 | |
| SOTA 对比 · AVA (Table 2,含镜头切换) | IDs↓ | 227(T3DP 240;Tracktor 289;FlowPose 452) |
| IDF1↑ | 62.7 | |
| 消融 · PoseTrack (Table 1) | w/o 3D appearance | IDs 541 → 632(+91) |
| w/o 3D pose | IDs 541 → 558(+17,最小影响) | |
| w/o 3D location | IDs 541 → 948(+407,影响最大) | |
| w/o nearness(仅 xy) | IDs 541 → 622(+81,证明深度必要) |
(1) 3D location 是最重要的 cue(去掉 IDs 涨 407),而 nearness(深度)单独贡献 81——这正面回答了「2D 跟踪的根本缺陷」。
(2) 3D pose 单独看贡献小(17),但它在「外观相似的人」和「镜头切换」场景下不可替代——AVA 数据集(电影,大量镜头切换)上的优势正来自此。
🌐 在领域中的位置
横向:vs Tracktor / Trackformer(2D 跟踪 SOTA)—— PHALP 在 IDs 上大幅减少(如 PoseTrack 上 Trackformer 1263 → PHALP 541,约 57% 降幅)。vs T3DP(HMAR 同组的早期 3D 跟踪)—— PHALP 加了姿态预测 + 概率关联,IDs 再砍 17%。这篇论文之后,PHALP 成了视频人体 3D 重建的事实标准预处理器(4D Humans 直接用 PHALP 跟踪 + SMPL 输出)。
❓ 常见误区
PHALP 是「3D 人体重建」方法吗?
不是,它是跟踪方法。它确实为每个被跟踪的人生成 3D SMPL 参数,但这只是中间表示——目标是从视频里给每个人一个稳定的 ID。当然,它的副产品(每帧 3D 网格)非常好用,所以后来被很多 4D 重建工作直接拿来当 backbone。
为什么位置预测用线性回归这么「朴素」?
因为作者在 3D(nearness 空间)里做线性化——3D 上的常速对应 2D 上的非常速(人靠近相机会看起来加速),但 3D 局部线性化永远合理。再用预测区间 $\delta$ 表达「这个预测有多不确定」,把这个不确定性传到关联阶段。这就是经典卡尔曼滤波的思路,只是用 nearness 参数化让线性假设重新成立。
外观用 UV map,姿态用 Transformer——为什么不用端到端大模型?
因为各属性的时间动力学本质不同:外观变化慢(衣服不变)→ 简单加权平均就够;姿态变化快且有周期 → 需要 Transformer 建模;位置常速 → 线性回归。把所有这些塞进一个大模型反而难训,模块化让每块用最合适的工具。
「object permanence」是怎么实现的,需要专门训练吗?
不需要专门训练。这是架构带来的涌现属性:tracklet 的状态在遮挡时继续按动力学演化(外观不变、姿态用 Transformer 预测、位置线性外推),等检测重新出现时做关联。论文强调「It is not the case that "Out of sight, out of mind"」——因为系统不在 2D 像素上跟踪,而在 3D 状态上跟踪。