状态:草稿 (2026-10-13)。 论文数据已通过打开原文并结合条件进行了确认(Uplifting 的会议经 CVF 公开论文集确认:WACV 2026,第 7440–7449 页 — 2026-10-15)。亲自动手尝试的是笔记本电脑 CPU 上的 numpy 示例(
code/11_spin_physics.py,大约 30 秒)。这种简便的方法从未在我们的视频中运行过(未实测)。 系列“阅读视觉模型 2”第 11 篇。球台边缘与单应性矩阵在 TT Score 模型解剖第 3 篇中,3D 极值规则规划在第 5 篇中。
目录
- 1. 直觉:2D 中消失的一个维度
- 2. 用物理模型匹配:TT3D
- 3. 用合成数据训练的转换器:Uplifting Table Tennis
- 4. 先提升到 3D,然后分割事件:TT4D
- 5. 亲自尝试:旋转能产生多大的偏转,以及能否逆向拟合
- 6. 论文数据
- 7. 物理模型 vs. 学习模型
- 8. 局限性
- 9. 与我们项目的联系
- 参考文献
1. 直觉:2D 中消失的一个维度
相机将 3D 世界压扁到 2D 屏幕上。在这个过程中, 深度消失了。屏幕上的一个点可以是相机延伸出的直线(视线)上的任意位置。仅凭单个球的 2D 位置,无法得知该球距离相机是 2m 还是 4m。
然而,乒乓球运动中有很多线索。
- 球台的大小是固定的(2.74m × 1.525m)。如果能看到四个角,就可以计算出相机的拍摄位置、方向和焦距。
- 球弹起的瞬间位于球台之上。 那一刻的视线与球台平面的交点就是球的 3D 位置。
- 球遵循物理定律。 两次弹跳之间的轨迹几乎由重力、空气阻力和旋转产生的力(马格努斯力)决定。
最后的线索甚至能揭示旋转。带有上旋的球下落得更快,下旋则会使其飘得更远。 通过观察轨迹的偏转,可以逆向计算出旋转。
2. 用物理模型匹配:TT3D
TT3D(CVPR 2025 Workshop)最大程度地减少了学习,并依赖于物理。
- 相机标定:球台分割模型(小型 U-Net++,1200 张标注,Dice 损失)寻找球台区域,并利用其四个角同时求解相机的位置、方向和焦距(交替进行 PnP 与焦距搜索)。通过卡尔曼滤波随时间进行平滑。边缘误差为 2.39 ± 1.47 像素(40 张图,引自论文)。
- 弹跳的 3D 位置:它是弹跳瞬间的视线与球台平面的交点。弹跳时间通过将分段二次曲线拟合到 2D 轨迹并加上 BlurBall(第 9 篇)给出的模糊角度来寻找。
- 速度与旋转:将弹跳前的速度(3个)和旋转(3个)作为未知数,对飞行方程进行积分,以优化使得投影回屏幕的位置最接近观测到的 2D 位置(最小化重投影误差)。
飞行方程如下(论文,仅更改了符号)。
m · dv/dt = −k_D · |v| · v + k_M · (ω × v) + m · g
m = 2.7g, k_D = 3.8 × 10⁻⁴, k_M = 4.86 × 10⁻⁶, 공 반지름 2cm
第一项是空气阻力,第二项是马格努斯力,第三项是重力。弹跳采用恢复系数 0.85、摩擦系数 0.3 的公式,分情况计算球在球台上是滑动还是滚动。(论文中将 k_D 写成了正号,但要使空气阻力方向与运动相反,必须匹配符号约定。TT4D 附录中将相同的 k_D 写成了负号,而 k_M 写成了 3 × 10⁻⁶,与 TT3D 不同。示例中将 TT3D 的值写成了负号。)
3. 用合成数据训练的转换器:Uplifting Table Tennis
物理拟合虽然准确但速度较慢,如果观测缺失或噪声较大,优化可能会陷入错误的方向。Kienzle 等人的两篇论文走了一条不同的路。 训练一个 Transformer,接收 2D 点序列并直接输出 3D 点序列和旋转。
问题在于真值。在真实视频中,球的 3D 位置和旋转都没有真值。因此, 通过模拟器生成真值
- 。使用物理模拟器(MuJoCo)大量生成乒乓球轨迹。2025 年版为 5 万个,2026 年版(Uplifting)为 14 万个(约 470 万个 2D 点)。这是 3D 位置和旋转都已知的“免费真值”。
- 通过虚拟相机将这些 3D 轨迹投影到 2D 上以创建输入。
- 训练目标是 3D 轨迹的平方误差 + 初始旋转的平方误差(2025 年版,论文)。
从合成过渡到实际的关键桥梁是 增强。由于真实的检测器会漏球且帧率各不相同,我们在训练时随机丢弃 5% 的点,并将帧率设定在 20–60fps 之间抽取。还模拟了轨迹突然中断、拖影和模糊。并且,在 Transformer 的位置编码中使用了 实际时间戳(按 2ms 单位四舍五入)而不是 token 序号,使得即使帧丢失或间隔不同也能理解时间关系(论文)。
前端的 2D 检测器使用真实视频进行训练。连续 3 帧寻找球,13 个基准点通过热图(平方误差,σ=6 像素)寻找球台,球检测器首先使用 BlurBall 数据集的 5 万帧进行训练,然后通过 1080p 乒乓球视频(TTHQ)进行微调。如果结果与采用不同架构的辅助检测器不一致,则丢弃该检测(论文)。
4. 先提升到 3D,然后分割事件:TT4D
TT4D(ACM MM 2026)颠倒了顺序。如果说之前的方法是先在 2D 轨迹中找到弹跳和击球,然后将它们之间的部分提升到 3D,那么 TT4D 则是 先将整个拉力赛(对打)提升到 3D ,然后再分割事件。
- 弹跳 = 高度 z 的极小值。
- 击球 = 球台长度方向 x 的极值(球改变方向的地方)。添加了击球之间大于 0.2 秒、距离球台边缘大于 0.3 米等简单条件。
在 2D 屏幕上,弹跳和击球都表现为“V 形折痕”因而容易混淆,但在 3D 中,“接触地面”和“改变方向”的定义本身就不同。训练使用了约 300 万个合成轨迹点,遮挡的帧在训练时被遮蔽并用插值 token 填充。模型很小,只有 160 万参数(论文)。
5. 亲自尝试:旋转能产生多大的偏转,以及能否逆向拟合
code/11_spin_physics.py 以 1ms 的间隔对上述飞行方程进行积分(code/11_spin_physics.out.txt).
旋转改变的落点。 这是一个从己方底线高 30cm 处以 7.05m/s 速度(微向上 6.5°)击出的球。
아랫회전 50rps: x = 2.68m, 비행 463ms
회전 없음 : x = 2.09m, 비행 348ms
윗회전 50rps : x = 1.74m, 비행 284ms
참고: 공기가 없다면 x = 2.39m. 탁구대 길이는 2.74m
仅凭每秒 50 转的单一旋转,首次触地位置就从 1.74m 变到了 2.68m,改变了几乎 1m。飞行时间也显著不同,分别为 284ms 和 463ms。无旋转的球由于空气阻力,也比真空中提前 30cm 落地。由于球很轻(2.7g),空气的影响非常大。
逆向拟合。 观察带有 50rps 上旋的球在第一次弹跳前的飞行区段(60fps 和 30fps),在 3D 位置中混入噪声后,使用高斯-牛顿最小二乘法拟合了 3 个初始速度和 1 个旋转(重复 30 次)。这是对 TT3D 方法极度简化后的版本。旋转轴被绑定为单一侧轴。
| 观测 | 3D 位置噪声 | 估计中位数 | 绝对误差中位数 | 上/下旋拟合情况 |
|---|---|---|---|---|
| 60fps(17点) | 1cm | 50.5rps | 6.2rps | 100% |
| 60fps(17点) | 3cm | 49.1rps | 26.3rps | 97% |
| 30fps(9点) | 1cm | 50.9rps | 6.0rps | 100% |
| 30fps(9点) | 3cm | 41.7rps | 22.2rps | 87% |
当位置噪声为 1cm 时,旋转方向始终正确,大小误差也在 ±6rps 左右。当噪声达到 3cm 时,大小几乎不可信,而在 30fps 下,连方向也会有 13% 的错误。 由于旋转隐藏在轨迹的微小偏转中,几厘米的位置误差就会掩盖该信号。 实际上观测到的是 2D 位置而非 3D 位置,这使得任务更加困难。因此,论文们不是将旋转回归为“多少 rps”,而是将其评估为 上旋/下旋分类(见下表)。
6. 论文数据
| 方法 | 数值(论文) | 条件 |
|---|---|---|
| TT3D | 3D 平均误差:侧面 8.9cm(有噪声时 12.4)· 斜向 14.5(17.1) · 后方 22.3(29.8)。侧面成功率 97.3% | 真值为 200Hz 多相机 3D 追踪(俱乐部比赛,橙色球)。2D 输入模拟为 25fps,130 条轨迹,位置噪声 2px·模糊角度 6°。无旋转真值,故未评估旋转准确度 |
| Kienzle 等人 2025 | 50 条真实轨迹的旋转分类准确率 92.0%,F1 0.917 | 国际赛事 6 场比赛 2560×1440 50Hz。仅用 5 万条合成轨迹训练 |
| Uplifting Table Tennis | TTST(完美输入)准确率 97.1%,重投影 3.43px。在帧率减半 + 检测丢失 10% 的情况下仍为 97.1%·5.75px(旧版本会崩塌至 67.7%)。整个 pipeline 在 TTHQ 的 57 条轨迹旋转准确度 89.5% | 仅用 14 万条合成轨迹训练的后端 + 用真实视频训练的前端 |
| TT4D | 弹跳 F1 0.92,击球 F1 0.83(±2 帧)。TTST 旋转宏平均 F1 1.000(清晰),0.941(帧减半 + 丢失) | 事件 F1 的数据集在正文中不明确。提出了包含 146 小时、4.6 万多场比赛体量的数据集。截至 2026-10-15 尚未公开(arXiv v2 仅写着“将要公开”。原文单位是 games,但由于是 5 局 3 胜制,实际上相当于一场比赛) |
| TT4D vs. TT3D | 侧面一个区段的 3D 误差 TT4D 15.04cm,TT3D 29.86cm | TT4D 创建的其他基准测试(过滤较少的数据,包含噪声)。不能将其与上述 TT3D 的 8.9cm 放在同一行进行比较 |
引用最后一行时需要格外小心。在 TT3D 自己的基准测试中是 8.9cm,而在 TT4D 的基准测试中,同样的 TT3D 却达到了 29.86cm。 基准测试不同,相同的方法也会得到相差三倍以上的数字。
7. 物理模型 vs. 学习模型
| 通过物理模型拟合 (TT3D) | 通过合成数据训练 (Uplifting · TT4D) | |
|---|---|---|
| 训练数据 | 几乎没有(仅球台分割) | 数万至数百万个合成轨迹 |
| 真实标签来源 | 公式本身 | 模拟器(相同的物理原理,不同的使用方法) |
| 观测缺失与帧率变化 | 优化过程可能会受到干扰 | 通过增强提前学习(支持应对半帧率 + 10% 丢包) |
| 速度 | 每个多回合(Rally)进行优化 | 一次前向传播(TT4D 超过每秒 500 个点,使用桌面级 GPU) |
| 可解释性 | 可以深入研究公式的各项 | 接近黑盒 |
| 出错的地方 | 公式与现实不符的地方(球的状态、地面摩擦力) | 模拟器与现实不符的地方(合成与真实之间的差距) |
这两条路径比想象的要近。因为训练模型的「正确答案」最终也来自于物理模拟器。它们的区别在于 是在考试时每次都求解物理公式(优化),还是在训练时将其内化一次(通过增强的合成数据) 。
8. 局限性
- 假设固定相机。 这三种方法都假设相机在多回合过程中保持不动。手持手机会有晃动(TT3D 虽然通过卡尔曼滤波使校正变平滑,但剧烈运动则另当别论)。
- 真实的 3D 标签很少。 TT3D 的多相机标签是个例外,其余的都是通过重投影误差或旋转分类来进行间接评估。
- 许可协议。 Uplifting 的代码采用 GPL-3.0 协议,TT3D 仓库中没有许可证文件,而 TT4D 尚未公开(根据调研报告)。我们的原则是不直接引入 GPL 代码,只实现其方法。
9. 与我们项目的联系
- 目前的引擎仅支持 2D 和球台平面。 TT Score 通过球台的四个角计算单应性矩阵(Homography),将球的 2D 位置转换到球台平面坐标系中,并通过 2D 轨迹的折返来判定弹跳(参见 TT Score 模型解析第 3 篇和第 5 篇)。剩余错误中的很大一部分是「把击球误读为弹跳的假阳性」,这就是为什么在 2D 中两者的 V 形轨迹看起来很相似。
- 正在评估 TT4D 公式 3D 极值规则。 提升到 3D 后,弹跳(z 的极小值)和击球(x 的极值)的定义就会分叉。这是第 5 篇中记录的计划,目前尚未进行实验(未实测)。
- 侧面拍摄最有利。 从 TT3D 的结果来看,侧面拍摄最准确,误差为 8.9 厘米,而后方拍摄为 22.3 厘米。这与我们推荐的拍摄位置(球台侧面、使用三脚架)相符。
- 旋转只是「附赠品」。 正如示例所示,旋转强度对位置噪声非常敏感。它对于比分判定并非必需,在现实中将其用作教练环节中「刚才那是上旋吗?」级别的分类更为现实(推测)。
Titi 的小贴士。 每秒旋转 50 转的球,即使以相同的力量击打,落点也会相差近 1 米。然而反过来,要想从轨迹中读出旋转,必须将球的位置精确到 1 厘米以内。偏转很容易,读取却很难。旋转就是这样。
参考文献
- Gossard et al., TT3D: Table Tennis 3D Reconstruction, CVPR 2025 Workshops(CVSports). https://arxiv.org/abs/2504.10035
- Kienzle et al., Towards Ball Spin and Trajectory Analysis in Table Tennis Broadcast Videos via Physically Grounded Synthetic-to-Real Transfer, CVPR 2025 Workshops. https://arxiv.org/abs/2504.19863
- Kienzle et al., Uplifting Table Tennis: A Robust, Real-World Application for 3D Trajectory and Spin Estimation, WACV 2026, pp. 7440–7449(CVF 公开论文集). https://arxiv.org/abs/2511.20250
- Rahmanian et al., TT4D: A Pipeline and Dataset for Table Tennis 4D Reconstruction From Monocular Videos, ACM MM 2026. https://arxiv.org/abs/2605.01234
- 示例代码与输出:
code/11_spin_physics.py,code/11_spin_physics.out.txt