MiniMax-H3 中间特征 vs MobileCLIP · 双任务验证
两个任务:v0hit 击球二分类(950 张 vtennis_lei_v0 人工标注)+
THETIS 动作四分类(1980 张,55 位受试者)·
按摄影师分组 5 折交叉验证(463 位摄影师,零泄漏)· 冻结特征 + 线性分类器
79.6%H3 · 嵌套CV(诚实)
77.6%MobileCLIP 基线
+2.0百分点
0.20McNemar p(不显著)
63.3%多数类基线
独立任务复现(THETIS 动作四分类)
71.5%H3 · block 33
56.3%MobileCLIP
+15.2百分点
9e-33McNemar p
33.3%多数类
在 THETIS 域内,增益大且确凿。
block 33 选自 v0hit,迁到 THETIS 一个参数没再调,仍然
+15.2 点、p=9e-33
(赢 479 输 178)。
这证明 H3 特征确实编码了动作信息。
⚠️ 但请连着下一节一起读:把这个 head 拿到真实目标域上,它塌到了随机水平。
本页早前把这一条称作「最强的证据」,那个说法已被下面的迁移实验推翻。
v0hit 上则是「有信号,但未单独证实」。
诚实的嵌套交叉验证(层只在内层折选择)给出 79.6% vs 基线 77.6%,
+2.0 点,p=0.20 不显著。
本页早前版本报的是 +5.8 点 / p=1.6e-4,那个数字偏高:当时的 block 40 是在看过
b10/b25/b40 在同一批 CV 折上的表现之后选的,属于在评估数据上做选择。
反过来,嵌套那个数字也偏保守 —— 为了算得动,内层选层只用了 mean,
没纳入轨迹,而轨迹在最优层能再加 1–2 点。真实增益大概在 +2 到 +5 之间,
当前 950 条标注定不下来。
完整对比
| 特征 | 维度 | CV 准确率 | Δ vs 基线 |
McNemar | 5 折明细 |
|---|
H3 b40 · mean+traj 第40层 · 池化+轨迹 | 48384 | 0.8337 ±0.023 | +0.0579 | p=1.6e-04 ✅ | 0.847 0.795 0.826 0.863 0.837 |
H3 b40 · mean 第40层 · 仅池化 | 5376 | 0.8105 ±0.018 | +0.0347 | p=0.033 ✅ | 0.826 0.779 0.810 0.832 0.805 |
MobileCLIP-S1 基线 · 512维 | 512 | 0.7758 ±0.028 | | — | 0.732 0.805 0.779 0.805 0.758 |
H3 b25 · mean 第25层 | 5376 | 0.7758 ±0.012 | +0.0000 | p=1.00 | 0.753 0.784 0.784 0.784 0.774 |
H3 b25 · mean+traj 第25层 | 48384 | 0.7611 ±0.020 | -0.0147 | p=0.38 | 0.753 0.779 0.774 0.774 0.726 |
H3 b10 · mean 第10层 | 5376 | 0.7242 ±0.033 | -0.0516 | p=2.7e-03 ✅ | 0.737 0.663 0.721 0.742 0.758 |
H3 b10 · mean+traj 第10层 | 48384 | 0.7021 ±0.031 | -0.0737 | p=2.1e-05 ✅ | 0.711 0.642 0.711 0.732 0.716 |
❌ 零样本跨域迁移:失败
THETIS 训练 head → vtennis_lei_v0 的 400 张人工标注上测试。
这 400 张同时被三个前沿 VLM 跑过分,是唯一能公平横比的地方。
| 方法 | 准确率 | 说明 |
| Claude Opus 5 | 71.8% | VLM · 零样本 |
| GPT-5.5 | 64.0% | VLM · 零样本 |
| GPT-5.5 · 朴素prompt | 63.4% | VLM · 零样本 |
| Qwen3.6-27B (本地部署) | 55.8% | VLM · 零样本 |
| Qwen3-VL-235B (v2 历史标注) | 52.2% | VLM · 零样本 |
| MobileCLIP 迁移 | 33.2% | THETIS 训练的线性头 |
| 多数类基线 | 32.5% | 全判 forehand |
| H3 b33 + CORAL | 29.5% | 无监督特征对齐 |
| H3 b33 直接迁移 | 27.0% | THETIS 训练的线性头 |
H3 和 MobileCLIP 都塌到多数类附近,H3 更低。
CORAL 无监督对齐只捞回 2.5 点。
关键旁证是 MobileCLIP 同样塌(33.2% ≈ 多数类 32.5%)——
所以这不是 H3 的缺陷,是域差异本身太大:THETIS 是室内篮球馆、固定机位、演示性挥拍、画面里没有球,
这些线索在户外比赛照上完全不存在,任何在 THETIS 上训的头都过不去。
结论:跨域零样本这条路走不通,动作分类必须有目标域标注。
更近的训练源应该是 vtennis_lei_v1 的 1356 个真实网球视频(户外、比赛、有球),而不是 THETIS。
层深曲线在两个任务上都是单峰,且峰值相邻
两条曲线来自完全不同的任务和数据域,却都是单峰,峰值落在
block 33 和 34(相邻)。这基本排除了「33 是 v0hit 上的偶然」——
单峰层深结构是 MiniMax-H3 本身的性质,可以固定为默认配置。
(block 44 有 0.6% 图像 fp16 溢出,45–49 全部溢出,已排除在扫描外。)
两张关键图
层深是决定性变量
浅层显著劣于 CLIP,深层显著优于。b40 是我们采样的最深层,趋势仍在上升
—— 50 层全扫正在跑。
标注效率
相同准确率下 H3 需要的标注更少;这比单纯涨点更有落地价值。
运动轨迹只在深层有用。
b40 加上 traj8(预测未来 8 个 latent 帧的特征)涨 2.3 点,
但 b10 加上反而掉 2.2 点。说明「模型认为接下来会发生什么」这个信息只在深层被编码成可用形式
—— 这正是本项目最初的假设。
THETIS 混淆矩阵 · 正反手混淆几乎减半
行 = 人工真值,列 = 预测,格内为数量与该行占比(对角线即 per-class 召回)。
MobileCLIP-S1 · 总体 56.3%
| 正手 | 反手 | 发球 | 其他 |
|---|
| 正手 | 393 60% | 203 31% | 60 9% | 4 1% |
|---|
| 反手 | 203 31% | 401 61% | 52 8% | 4 1% |
|---|
| 发球 | 76 15% | 90 18% | 308 62% | 21 4% |
|---|
| 其他 | 25 15% | 33 20% | 95 58% | 12 7% |
|---|
H3 · block 33 · 总体 71.5%
| 正手 | 反手 | 发球 | 其他 |
|---|
| 正手 | 501 76% | 123 19% | 25 4% | 11 2% |
|---|
| 反手 | 110 17% | 515 78% | 24 4% | 11 2% |
|---|
| 发球 | 28 6% | 40 8% | 364 74% | 63 13% |
|---|
| 其他 | 15 9% | 22 13% | 93 56% | 35 21% |
|---|
增益不是均匀上浮,而是高度集中在正手↔反手这一对。
CLIP 把正反手互判错 406 次,H3 只有 233 次,减少 43%。
静态图上正手和反手的姿态很接近,要分清得知道「这个动作从哪来、往哪去」——
这正是运动先验该起作用的地方,也说明涨的这 15 点不是随机波动。
其他 类两边都差(7% / 21%),它只有 smash 165 张,
语义上本就是为凑四分类硬拼的一类,结果需单独看待。
THETIS 各类样例(两个模型都判对)
THETIS · H3 救回的(共 479 张)
真值 反手CLIP 正手H3 反手backhand2hands
真值 反手CLIP 其他H3 反手backhand2hands
真值 反手CLIP 正手H3 反手backhand
真值 反手CLIP 正手H3 反手backhand
真值 反手CLIP 正手H3 反手backhand_slice
真值 反手CLIP 发球H3 反手backhand_volley
真值 正手CLIP 发球H3 正手forehand_flat
真值 正手CLIP 发球H3 正手forehand_openstands
真值 正手CLIP 发球H3 正手forehand_slice
真值 正手CLIP 发球H3 正手forehand_volley
真值 发球CLIP 反手H3 发球slice_service
真值 发球CLIP 反手H3 发球slice_service
真值 反手CLIP 正手H3 反手backhand
真值 正手CLIP 反手H3 正手forehand_flat
真值 正手CLIP 反手H3 正手forehand_flat
真值 正手CLIP 反手H3 正手forehand_openstands
真值 正手CLIP 反手H3 正手forehand_slice
真值 正手CLIP 反手H3 正手forehand_slice
真值 正手CLIP 反手H3 正手forehand_slice
真值 正手CLIP 反手H3 正手forehand_volley
真值 正手CLIP 反手H3 正手forehand_volley
真值 发球CLIP 反手H3 发球flat_service
真值 发球CLIP 正手H3 发球kick_service
真值 发球CLIP 反手H3 发球slice_service
THETIS · H3 拖累的(共 178 张)
真值 正手CLIP 正手H3 反手forehand_openstands
真值 发球CLIP 发球H3 正手kick_service
真值 其他CLIP 其他H3 发球smash
真值 其他CLIP 其他H3 发球smash
真值 反手CLIP 反手H3 发球backhand
真值 正手CLIP 正手H3 发球forehand_flat
真值 发球CLIP 发球H3 正手flat_service
真值 正手CLIP 正手H3 反手forehand_flat
真值 发球CLIP 发球H3 其他flat_service
真值 发球CLIP 发球H3 其他flat_service
真值 反手CLIP 反手H3 正手backhand
真值 发球CLIP 发球H3 其他flat_service
THETIS · 两个都判错的(共 387 张)
这批是当前特征的共同盲区,最值得看有没有共同模式。
真值 反手CLIP 正手H3 正手backhand2hands
真值 反手CLIP 正手H3 正手backhand
真值 反手CLIP 发球H3 发球backhand_slice
真值 发球CLIP 正手H3 反手flat_service
真值 其他CLIP 正手H3 正手smash
真值 其他CLIP 发球H3 发球smash
真值 其他CLIP 发球H3 发球smash
真值 正手CLIP 反手H3 反手forehand_volley
真值 发球CLIP 反手H3 反手flat_service
真值 发球CLIP 正手H3 其他kick_service
真值 发球CLIP 反手H3 其他slice_service
真值 其他CLIP 反手H3 发球smash
v0hit · H3 救回的样本(CLIP 判错 → H3 判对)
共 131 张,展示前 24 张。
二分类下两边的预测是确定的:这里 CLIP 判成了真值的反面,
H3 判对。
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 非击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 击球CLIP 非击球H3 击球CLIP弱分类: forehand
v0hit · H3 拖累的样本(CLIP 判对 → H3 判错)
共 76 张,展示前 12 张。
方向相反:CLIP 判对,H3 判成了反面。
真值 击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 击球H3 非击球CLIP弱分类: backhand
真值 非击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 非击球CLIP 非击球H3 击球CLIP弱分类: backhand
真值 击球CLIP 击球H3 非击球CLIP弱分类: forehand
真值 击球CLIP 击球H3 非击球CLIP弱分类: forehand
图注怎么读。
真值 是人工标注(探针的唯一监督信号);
CLIP / H3 是两个模型的预测 —— 二分类且画廊按对错筛选,所以预测是确定的;
CLIP弱分类 是 vtennis_lei_v0 建库时的目录分桶(CLIP argmax),
与人工 stroke4 标注一致率仅 30.8%,仅供浏览参考,未进入任何实验。
三个已知局限。
① 这 950 条来自三轮「模型/VLM 提议 → 人工复核」,偏向难例,不是 10 万张的均匀抽样;
② 摄影师泄漏已归零,但同一赛事仍有重叠(不同摄影师拍同一站),无法消除;
③ 结论目前只在击球二分类上成立,动作四分类(THETIS)还没验。
成本
| H3 单图特征提取 | 22.3 s | 双卡拆分 + 砍掉 VAE 解码;单卡 auto-offload 是 185s |
| 950 张 × 3 worker | 2.0 h | 6×A100-80G |
| MobileCLIP 基线 | <1 min | 512 维 |
| 每图特征体积 | 1.2 MB | 3 层 × (mean 5376 + traj 37×5376),fp16 |