实测 · 2026-09-03 夜 · 2026-09-04 补全片回合数与产品化后数字

看人数拍·首夜实测

昨天的调研说"改看人为主、听声为辅"。今晚用两条真实业余单打视频、人工打的金标,把现行声音法和看人法放在同一把尺子上量了一次。这页是第一版数字,全片回合数对比已在次日早补上(03b 节)。

结论

  1. 角落机位的嘈杂素材上,看人法明显赢过声音法。拍数综合分 74 对 47(满分 100),而且 94% 的拍能说对是谁打的。现行声音法在这条素材上漏掉一半以上的拍。
  2. 正后方的安静素材上,两者打平,都在 60 多分。声音法查准很高但查全只有一半(轻球听不到);看人法查全高但查准低,尤其是网前半秒一拍的快速对拉,规则法数不清。
  3. 两个没预料到的坑:B 站那条视频的声音比画面晚 0.3 秒,不先校正偏移,声音法的拍数和边界全错;角落机位上对手和长凳观众在画面里重叠,三分之一的时间跟错人或跟丢。
  4. 纯规则法的天花板大约就是 70 分。要到 90 分得训练一个"这是不是一拍"的小分类器。今晚打的金标(47 拍确定 + 18 拍存疑)就是训练数据的起点。

01素材与机位

本机现成素材里没有"正后方居中架高"的理想机位,选了最接近的两条。9 月 2 日拆解用的那条 B 站视频,看原图才发现其实是后方角落斜拍,正好是最初问的那种难机位;YouTube 那条是正后方略偏右、略架高、60 帧,是手头最容易的素材。

B站素材机位
B 站业余单打(30 帧):后方角落斜拍。对手站在长凳前,和坐着的观众重叠;多人轮换,70 秒时近端换了人。
YouTube素材机位
YouTube 业余单打(60 帧):正后方略偏右、略架高,整片场地入画。远端球员小但清楚;隔壁场的人偶尔入画。

02金标怎么打的

没有公开的业余逐拍标注,所以自己标。工具是"连续逐帧条":每 0.1 秒一格,近端球员一行、远端球员一行,从每个球员自己的裁剪框里看挥拍动作,逐拍记下时刻和是谁打的。快速网前对拉处两拍只隔半秒,人眼也只能定到正负 0.2 秒,这些拍标为"存疑",评分时不奖不罚。

金标连续条示例
金标工具的一段(B 站素材 42~44 秒):上行近端球员、下行远端球员,右上角红点是现行声音法检出的击球声。可以看到远端 43.3 秒挥拍,声音 43.6 秒才到。
素材标注窗口回合确定的拍存疑的拍备注
B 站 · 角落40~66 秒、70~76 秒322376 秒后远端大段跟丢,没往后标
YouTube · 正后方0~46 秒4(首尾两个不完整)2515一个 17 拍的网前快速回合,存疑拍集中在这里

03数字

评分口径:预测的拍落在金标拍前后 0.35 秒内算对。查准 = 报出来的拍里有多少是真的;查全 = 真的拍里有多少被报出来;综合分是两者的调和平均,满分 100。"谁打的"只对看人法有意义。

B 站素材(后方角落,嘈杂,多人轮换)

方法查准查全综合分谁打的回合数(金标 3)每回合拍数(金标 10 / 7 / 8)
现行声音法(全片固定门槛)564147—4(切碎了一个)6 / 3 / 4
声音法 + 音画偏移校正805565—47 / 3 / 3
看人:持拍手臂动作峰值 + 交替 + 配对规则76737415 / 1638 / 5 / 8
看人 + 声音确认76737413 / 1638 / 5 / 8

YouTube 素材(正后方,安静,60 帧)

方法查准查全综合分谁打的每回合拍数(金标 10 / 17 / 6 / 4)
现行声音法924863—4 / 7 / 4 / 1
看人:持拍手臂动作峰值 + 规则55686114 / 1711 / 6 / 5 / 5
看人 + 声音确认65686713 / 1711 / 6 / 5 / 5

怎么读这两张表:角落素材上看人法比声音法高 27 分,和昨天调研里"画面校验能提 15~30 分"的文献数字吻合。正后方素材上没拉开,问题出在那个 17 拍的快速回合:规则法只数出 6 拍。这说明看人法的短板不是机位,是"半秒一拍的网前对拉",需要更聪明的判据而不是更好的素材。

03b全片回合数(次日早补)

YouTube 那条 7 分 20 秒的全片姿态跑完了。参照是我从每秒一帧的缩略图人工数出的回合,边界只能定到正负 2 秒,31 个里有 25 个有把握、6 个拿不准(可能是 0 个也可能是 2 个)。

方法数出的回合对上人工的其中有把握的多出来的漏掉的全片拍数
人工参照31—25———
现行声音法1919 / 3114 / 25012148 声
看人法(规则版)3727 / 3122 / 25104297 拍(近 165 / 远 132)

怎么读:看人法找回合的查全率 87%,声音法 61%,漏掉的 12 个回合里 11 个是有把握的真回合。看人法的毛病在另一头:多出来的 10 个里,大多是把一个长回合切成两三段、或者把捡球时的挥拍当成了小回合。这正是卡里"回合结束判据"要治的(两人停下或出现捡球姿势才算结束,不只看拍与拍的间隔)。声音法的"对上 19 个"有水分:它把 6 秒内的响声合成一串,相邻回合常被合并,一段合并区间只算对上一个。

03c产品化后的数字(R3 验收,2026-09-04)

Codex 已把这套方法接进正式流程(R1 两人身份与挥拍候选,R2 管线接线)。下面是用正式流程、而不是我的原型脚本,在 Mac 上跑两条整片的结果。

素材走的路径回合全片拍数金标窗综合分 / 谁打的姿态阶段耗时
YouTube 正后方 7 分 20 秒看人法32(人工 31:对上 27、多 3、漏 4)170(近 79 / 远 91)51 / 80%3503 秒 = 时长 8 倍
B 站角落 4 分 57 秒退回声音法9(同旧版)——446 秒

验收结论:有条件通过。接线是对的,数据契约落地,退回机制可用。但离"能上产品"还差四件事,全部写进了下一张卡(R4):

另有一个和本卡无关但影响体验的数字:32 个回合的集锦合成花了 3715 秒,是整条流程里最慢的一步,另立卡处理。

03dR4 之后的数字(2026-09-04 晚)

素材走的路径回合全片拍数金标窗综合分 / 谁打的姿态阶段
YouTube 正后方看人法32(人工 31:对上 28、多 2、漏 3)279(近 133 / 远 146)63 / 75%2502 秒 = 5.7 倍
B 站角落看人法(自动区域生效)18144(近 70 / 远 74)38 / 67%1557 秒 = 5.3 倍

正后方一切在往上走。角落素材第一次走上看人路径,但金标窗只有 38 分,逐层查下来:姿态质量和固件一样好;候选和规则也没问题,被漏掉的那个回合在规则阶段 9 拍找到 7 拍,把同一份姿态配整片声音重跑一遍能到 71 分。丢失发生在整片运行时的身份选择环节,而且中间产物没有落盘,没法回放。身份选择有三处实锤毛病:远端锁在一个静止的观众上、近端球员被同时当成远端、开头两秒选错人。另外击球声门控在角落素材上是拖后腿的:只用规则 88 分,加了门控 77 分。这些都写进了 R5 卡。

03eR5 之后的数字(2026-09-05)

素材回合(R4 → R5)金标窗综合分 / 谁打的(R4 → R5)判定
YouTube 正后方32 → 19(人工 31;6 个区间各吞并 2~7 个真回合)63 / 75% → 49 / 82%回退
B 站角落18 → 10(两段各吞并多个回合)38 / 67% → 61 / 91%拍数进步,回合合并过头

R5 的"身份选择三修"在角落素材上是正贡献(远端覆盖 62% 升到 76%,综合分翻了近一倍),但在正后方素材上把远端选错了 29% 的时间,开头六秒锁在一个底线外的小个子背景人物上。R5 的"回合结束判据"改成"两拍之间有人在跑就算还在打",把回合间捡球、回位的走动都当成了还在打,两条素材的回合数都合并过头。这两条打回,写成 R7;同时第一次给"身份选择"本身做了回归固件(逐帧所有人 + 正确答案),以后这一步不能再靠整片跑完才发现。

另有一条:R5 的子计时揭穿了慢的元凶,每读一帧都先跳转再读取,Mac 实测比顺序读慢 51 倍,姿态阶段 2500 秒里约 2100 秒花在这上面。R6 卡专修这一条,顺带让战报先出、集锦在后台合成。

03fR6 之后的速度(2026-09-05)

正后方整片 7 分 20 秒R2R4R6
"看两个人的挥拍"耗时3503 秒(8.0 倍)2502 秒(5.7 倍)1197 秒(2.7 倍)
其中解码—约 2100 秒40 秒

把"每帧先跳转再读"改成顺序读,解码几乎归零,姿态阶段进了 3 倍预算。剩下的时间是检测和姿态两个模型本身,再往下要换轻量模型或放宽检测间隔,属于下一档。同时战报现在先出,集锦在后台合成,用户不再等最慢的那一步。

03gR7 之后的数字(2026-09-06 凌晨)

素材回合(R4 → R5 → R7)金标窗综合分(R4 → R5 → R7)判定
YouTube 正后方32 → 19 → 27(人工 31,对上 29、多 0)63 → 49 → 49回合修好,拍数未回
B 站角落18 → 10 → 1438 → 61 → 46拍数回退

回合边界 v2 生效:正后方从 19 回到 27,合并阶段不再丢拍。但两条素材的拍数都卡在“远端选人”上:R7 的身份回归测试用的是无状态姿态模型产生的候选人,产品里真正跑的两球员跟踪器候选集不同,测试 97.9% 通过而产品照错。R8 把测试改成用替身模型回放、走产品真实路径,第一次就抓到了根因:检测框带留白的高度(253 像素)被拿去套姿态身高上限(198),真远端球员被扔掉,背景小人反而通过。同一次也发现我做的“正确答案”固件在 7 到 14 秒标错了人(底线外旁观者),已修正。

03hR8 之后的数字(2026-09-06)

素材回合金标窗综合分 / 谁打的远端覆盖姿态阶段判定
YouTube 正后方29(人工 31:对上 28、多 1)60 / 75%92%1208 秒,2.7 倍达标
B 站角落1530 / 100%76%812 秒,2.7 倍回退

正后方第一次同时过了三条线:回合数贴近人工、金标窗 60 分、速度 2.7 倍。角落却掉到 30 分:41 到 48 秒远端球员明明在落盘的区域里,却一个都没选上。原因和上一轮一模一样,正后方有走产品路径的回放测试,角落没有,修一条就坏一条。R9 把角落也做成回放测试(全员固件已入库),并顺手核实了角落的"正确答案":几秒标成远端的其实是坐着的观众,已清掉。

03i定稿数字(R9,2026-09-06 晚)

素材回合金标窗综合分 / 谁打的远端覆盖判定
YouTube 正后方29(人工 31:对上 28、多 1)60 / 75%92%达标
B 站角落14(丢失的回合已找回)65 / 92%91%达标,历史最高

两条素材第一次同时过线。从 9 月 3 日夜的原型(角落 74 分对声音 47 分,只在 36 秒的窗口上)到今天,产品链跑完整片:回合数贴近人工、每一拍带"谁打的"、远端球员九成时间跟得住、速度进了 3 倍预算。这个版本可以替换现行的击球声计数。

还没做完的:角落素材的回合仍有合并过头(缺人工参照,待标注);集锦合成阶段的球标注子进程在 Mac 上会挂死,与本线无关,另立卡;速度再往下要换轻量模型。另有一个环境教训:Mac 的"文稿"文件夹走 iCloud 且磁盘将满,系统会把仓库里的视频甚至源码悄悄云端化,程序一读就假死,今天下午的三次"挂死"全是它。

04过程中发现的事

05下一步

  1. 已补:全片回合数三方对比见 03b 节。看人法查全 87% 对声音法 61%,短板是切碎与捡球误报。
  2. 接进产品(一周内,可发卡给 Codex):用"看人 + 声音确认 + 交替/配对规则"替换现行回合切分;加音画偏移估计;远端身份用"运动 + 非坐姿 + 连续性";回合结束改判"两人停下或出现捡球姿势"。预期把角落素材从 47 分提到 70 分上下。
  3. 冲 90 分的路:用今晚的连续条工具再标 200 个回合,训一个"这段骨架动作是不是一拍"的小分类器。快速对拉和"有挥拍无击球"两类错误都得靠它。

脚本和金标都在本机会话目录里(姿态提取、两人身份选择、信号计算、金标连续条、评估各一个脚本),产品化时整体搬进仓库。

2026-09-03 夜 · 本页数字来自两段各 45~60 秒的标注窗口,样本小,只能看方向不能看小数点;金标由一人目检,快速对拉处有 ±0.2 秒不确定。