🎾 Tennis 数据集总览

网球数据的来源、规模、标注方式与当前进度汇总 —— 4 套基础数据 + 6 层衍生标注,一份数据可叠加多层标注

数据统计截止 2026-08-26(⑩ 击球标注于 2026-09-15 更新:hitting 全量 VLM 标注 v9)· 磁盘 数据 123 GB + 发布包 48 GB(lei_v0 40 · lei_v1 36 · THETIS 27 · TenniSet 18 · 衍生层合计 <4)· 基础集 4(自采图 / 自采视频 / THETIS / TenniSet)· 衍生标注层 6(精彩度 · 动作标签 · 检测 · 姿态 · 跨源探针 · TenniSet 抽帧)· 对外发布包 1

4 + 6
基础集 + 衍生标注层
基础:自采图 / 自采视频 / THETIS / TenniSet
衍生:精彩度 · 动作标签 · 检测 · 姿态 · 探针 · TenniSet抽帧
103,353
图像总数
全部来自 vtennis_lei_v0(Flickr 采集 + CLIP 三门清洗);其上叠加 6 层标注
9,757
视频文件总数
THETIS 8,375(1,980 序列×5 模态)· lei_v1 1,356 池 +10 test_v1 · TenniSet 5 · 自录 11
48 GB
对外发布包
v0_clean 103,353 图 + v1_clean 1,356 视频 · 无标注干净数据 · SHA256 已校验 · releases/

标注类型总览

项目共 10 类标注,可靠性差别很大。同一份数据可以叠加多层标注 —— 例如 vtennis_lei_v0 同时带 ② CLIP 清洗分、⑦ VLM 精彩度分、⑨ 检测框、⑩ 动作标签,它们是同一批图的多组不同标注,不是多套数据(详见下方「衍生数据与标注层」)。✅ = 有且可信 · △ = 有但为弱标注/仅供筛选。

① 逐图动作子类(弱)
单张图的击球类型,由 CLIP 对 5 组 prompt 取 argmax 得到,无 GT
serve / forehand / backhand / volley / other
② CLIP 三门通过分
topic(是不是网球)/ photo(是不是真实照片)/ homonym(同名陷阱)三个相对 margin
gate_topic · gate_photo · gate_homonym · score
③ 视频场景域桶(弱)
转播 vs 业余。由 query 来源决定,不是画面判定,双向都有串味
broadcast / amateur
④ 视频逐帧 CLIP 校验
每视频抽 8 帧过同一套三门,记通过帧占比 + 每帧子类
topic_pass_frac · frame_subclasses[8]
⑤ 动作类别 GT(学术精标)
受控采集,每段一个动作,类别可信;含深度/掩膜/骨架多模态
THETIS 12 类 · 55 人(31 初学 / 24 熟练)
⑥ 转播事件时序 GT(学术精标)
整场转播逐事件时间标注,含比分/发球方/击球方等属性
Match / Set / Game / Point / Serve / Hit

⑦ VLM 精彩度评分
7 维 rubric 各打 0–100 → 固定公式折成 0–1 的 highlight_score;已覆盖 lei_v0 全量 103,353 张
in_play · photo_real · intensity · decisive · difficulty · expressiveness · visibility
⑧ 人工成对偏好
并排两张图选更精彩的那张,界面不显示模型分数以免污染;用作模型排序准确度的真值
515 条成对偏好
⑨ 球员/球拍检测框
人工核验 bbox,球拍门控(无拍即负样本),混入近亲运动作硬负例
det_v0 · racket/nplayer/crowd/scale · 4,095 帧
⑩ 击球/动作标签(迭代)
hitting 击球判定 + stroke4 四类,model→VLM→human 多轮;人工 GT 数百至上千。hitting 已有 GPT-6 Astra 全量标注 102,585 张(v9)
annotations_v0 · hitting · stroke4 · fhbh · multi

数据集 ① 逐图子类② CLIP 门分③ 场景域桶④ 逐帧校验⑤ 动作 GT⑥ 事件时序 GT⑦ 精彩度评分⑧ 人工偏好溯源元数据
vtennis_lei_v0自采图像 103,353 △CLIP argmax·无 GT ✅三门全量 —— —— ✅全量 103,353 △515 条成对 ✅作者/授权/原页
vtennis_lei_v1自采视频 1,356 池 +10 test_v1 △仅抽帧 8 帧 ✅同 v0 三门 △query 来源·非画面判定 ✅池 1,356 —— —— ✅站点/上传者/原页
THETISKinect 1,980 序列 ———— ✅12 类 + 熟练度 — —— △受试者 ID
TenniSet转播 5 场 / 9.5h ———— △Hit.Type 属性 ✅4,448 事件 —— —
test_data自录 11 段 ———— ——— ——
⚠ 全项目没有任何一套人工核验过的网球动作时序标注。TenniSet 的 ⑥ 是学术 GT 但只有 5 场转播;THETIS 的 ⑤ 是受控摆拍、非实战。自采的 ①③ 都是 CLIP/query 派生的弱标注,不能直接当训练标签用。表中只列了 v0 的核心标注列;v0 新增的 ⑨ 检测框 / ⑩ 动作标签 见下方「衍生数据与标注层」。

自采数据集

vtennis_lei_v0

图像Flickr6 层标注 浏览 viewer ↗ 已交付
来源
Flickr API 采集(flickr.photos.search),328 条 query 覆盖场景 / 击球类型 / 场地 / 赛事 / 人群 + 58 位球员 × 3 种击球的矩阵。实际只消耗前 89 条即达标,余 239 条为扩量余量
数据量
103,353 张清洗后图像(16 GB)· 另存 139,151 张过滤前原图(22 GB)与全量 CLIP 分数,可随时改阈值重切
清洗管线
采集 140,532 → pHash 去重 −1,381(0.98%)→ 139,151 → CLIP 三门 → 108,551 通过(78.0%)→ 阈值 score≥0.02 → 103,353
标注 ①
逐图子类(CLIP argmax,无 GT):forehand 50,207 · other 21,008 · serve 16,014 · backhand 10,392 · volley 5,732
标注 ②
三门通过率:topic 83.0% · photo 93.2% · homonym 96.9% · 三门全过 78.0%
授权
All Rights Reserved 88,289(85%)· CC 系 15,064。仅限内部研究,不可分发图片本身;每图记 作者 / 授权 / Flickr 原页

子类分布(弱标注)

forehand 50,207 other 21,008 serve 16,014 10,392 5,732
forehandother servebackhand volley
forehand 占 49% —— 明显在当兜底桶,仅可作浏览分目录用

阈值可切档位

score ≥ 0.00108,551 score ≥ 0.02103,353(当前交付) score ≥ 0.0594,514 score ≥ 0.1063,545
样本预览每个子类 2 张(按 CLIP 分从头部随机抽,不是人工挑的"最好看的")· 点图看原图
⚠ 交付阈值下约 2% 漏检(40 张目检抽样中有 1 张乒乓球混入 backhand)。要更纯用 --threshold 0.05;clean/scores.json 保留全量分数,重切不需重新编码。
data/vtennis_lei_v0/{images/<subclass>/, metadata.jsonl, stats.json, raw/, clean/scores.json, thumbs/} configs/{vtennis_lei_v0_harvest.json, vtennis_lei_v0_filter.json}

↳ 精彩度标注层 highlight

lei_v0 的标注,非独立数据集 浏览 QC viewer ↗ 全量已交付
目的
给每张图打一个 0–1 的"精彩度"分,用于高光检索 / 排序 / 取 topK —— 这是 CLIP 清洗分回答不了的问题(前者问"这张图精彩吗",后者只问"这是不是网球")
覆盖
vtennis_lei_v0 全量 103,353 张 · 0 错误 · 15.4 小时(1.86 img/s)
标注 ⑦
rubric tennis_highlight_v2,7 个维度各打 0–100 → 固定公式折成 0–1,不让模型直接吐总分:
score = in_play门 × photo_real门 × visibility乘子 × (0.30·intensity + 0.22·decisive + 0.33·difficulty + 0.15·expressiveness)
另出 shot 标签与 note
模型
Qwen3-VL-235B-A22B-FP8(TP=4)。8B 也跑了全部对比批,选型见下
标注 ⑧
人工成对偏好 human_pairs.jsonl:去重后 509 条。两批:random 309 条(随机抽对,无偏)+ disagree 200 条(专挑两模型意见相左的对)

全量分数分布(103,353 张)

0 · 20,765 0-.2 .2-.4 .4-.6 · 35,428 .6-.8 · 24,417
唯一分值13,944(v1 时只有 59–108) ≥0.8176 张(0.17%) 非零区间0.0027 – 0.8862 与 CLIP 分相关r = 0.595 —— 测到的是 CLIP 之外的信息

人工成对偏好准确率 · random 批(无偏,n=309)

235B80.5% (206/256) CI [75.2, 84.9] 8B81.9% (199/243) CI [76.6, 86.2] McNemarp = 0.58 —— 差异不显著 两模型均值融合81.5% —— 无增益 基线 CLIP score68.0%
平局(模型给两图同分)235B 53 对 / 8B 66 对,已从分母剔除

disagree 批(对抗抽样,n=200)

235B35.0% (70/200) 8B65.0% (130/200)
这批按构造两模型必然相反,两数之和恒为 100% —— 不能与 random 批合并求平均。它只回答一个问题:两模型打架时人站谁 → 人站 8B 约 2:1

置信度校准(random 批,按 |分差| 四分位)

235B57.8% → 79.7% → 87.5% → 96.9% 8B61.7% → 81.7% → 85.0% → 98.4%
两者都单调 —— 分差越大越可信,可直接当置信度用;分差最小那档接近随机,该交给人工

235B 判定的击球类型

forehand209 none(非击球瞬间)196 serve74 backhand17 volley / return2 / 2
近 4 成被判为"非击球瞬间",与 v0 子类分布中 other 占 20% 相互印证
分数长什么样三档各随机抽 4 张 · 图下为 highlight_score 与模型判定的击球类型,悬停看模型给的 note
≥0.70头部 0.5%
0.45–0.55众数区间
= 0被门卡掉 20.1%
零分那档能看出门在卡什么:非击球瞬间、摆拍人像、空球场 —— 以及混进来的乒乓球(近亲运动漏检的实例)
✅ 全量已用 235B + rubric v2 跑完(103,353 张 / 0 错误 / 15.4 小时)。人工配对复核无退化:准确率 79.5% [74.5, 83.8]、非零平局 0.0%、tie_adjusted 77.5%,均优于 CLIP 基线 68.0%。
选 235B 的依据是粒度(v2 下 328 vs 8B 的 117 个分值)和头部排序质量,不是准确率 —— 四个模型的准确率置信区间全部重叠。8B 每卡效率仍高 8 倍,成本敏感的粗筛场景可回头用 8B v2。
⚠ 零分语义在 v2 下变了:v1 占 35–39%,v2 只有 20.1%(in_play 门 floor=30,中间值多了以后落到门下的少了)。这不是缺陷 —— v1 那批零分里混着"在打球但拍得平淡"的图,现在拿 0.2–0.4 对排序更有用。但若用 score==0 当硬过滤,要改成阈值(如 <0.2,覆盖 34,740 张)。
⚠ 统计上的两个坑:① random 与 disagree 两批混在一起算会得出完全错误的结论(混合后看似 8B 74.3% 碾压 235B 60.8%,实为对抗抽样污染)。② 人工自一致性目前只能从 13 组重复判定估计(6/13),n 太小不可用,应补一批有意重复的对来测标注噪声上限。另注意 highlight_score 与 CLIP 的 score 是两件不同的事:前者问"这张图精彩吗",后者只问"这是不是网球"。
data/highlight/scores_full_235b_v2.jsonl ← 全量交付(103,353 行) data/highlight/{sample_500.jsonl, human_pairs.jsonl} (manifest_full_103k.jsonl 已删,可从 metadata.jsonl 一行重建) data/highlight/{scores_qwen3vl-8b,scores_qwen3vl-235b,scores_qwen3vl-8b_v2,scores_qwen3vl-235b_v2}.jsonl ← 选型对比批 configs/highlight_rubric_v2.json · scripts/{annotate_highlight,compare_rubric_runs}.py docs/highlight_scoring.md(方法主文档) · docs/archive/results/2026-08-03-highlight-full-corpus-annotation-235b-v2.md

vtennis_lei_v1

视频Dailymotion / Bilibili / archive.org 浏览 viewer ↗ 探索性交付
目的
刻意覆盖两个视觉域:转播画面(高台固定机位、图形叠层、剪辑)与业余日常(手机/GoPro/三脚架、球馆和公园场地)。只见过转播画面的模型迁移不到后者
数据量
1,356 个视频(池) / 74.9 小时 / 33.1 GB(video-only ≤720p,无音轨)
另 10 段已移出为 test_v1 held-out 测试集(见下)
来源构成
Dailymotion 935(46.9h)· Bilibili 396(26.7h)· archive.org 25(1.3h)
标注 ③
场景域桶(弱):broadcast 688(38.0h)/ amateur 668(36.9h)—— 由 query 段决定,非画面判定
标注 ④
逐帧 CLIP 校验(池全量 1,356):每视频抽 8 帧过 v0 同一套三门,记 topic_pass_frac + 每帧子类
测试集
test_v1:2026-08-04 人工挑 10 段(move 模式移出,物理互斥)→ data/test_data/test_v1/;审计线索 test_v1_heldout.jsonl,stats.json 带 held_out 块
授权
全部第三方版权内容。仅限内部训练/研究,不可分发媒体本身;每条记 站点 / 上传者 / 原始页面 URL

CLIP 校验可切档位

pass ≥ 0.001,356 / 74.9h pass ≥ 0.25952 / 55.3h pass ≥ 0.50748 / 48.1h(建议) pass ≥ 0.75549 / 38.3h pass = 1.00283 / 22.2h

各源画面质量(平均通过率)

archive.org0.605 —— 池子小但干净 Bilibili0.556 —— 两桶质量都最好,最慢 Dailymotion0.484 —— 给量但最脏
被拒的 ≤0.15 那批(284 个)目检确认是盗播引流、纯色片头、推广卡片、黑帧
样本预览每源每桶各 1 张首帧海报(取 topic_pass_frac 高的候选中目检挑的)· 最后一张是串味实例
前 6 张能看出两个域的差别:转播有图形叠层/高台机位/看台,业余是手机机位、社区场地、教学画面。最后一张标为 amateur 实为罗兰加洛斯转播 —— 这就是 ③ 只能当弱标的原因
⛔ YouTube 在本机不可用。cookies / 匿名 / 8 种 player_client / yt-dlp 升到 2026.7.4 / 装好 PO Token provider(node server :4416,plugin 确认加载)全部返回 Sign in to confirm you're not a bot;verbose 显示校验在 player 请求阶段触发,根本没走到取 token —— 是出口 IP 被判数据中心。解法:从已登录浏览器导出 cookies 覆盖 chores/www.youtube.com_cookies.txt,或换住宅 IP。--source youtube 通路已留好,不需改代码。
⚠ 已隔离 38 个损坏文件到 _corrupt/:中断的 Bilibili 下载留下的 mp4 moov 完好(ffprobe 照报时长)但 HEVC 码流是垃圾。光用 ffprobe 检不出来,必须真解一帧。此外乒乓球漏检与 v0 同源。
data/vtennis_lei_v1/{videos/<source>/<bucket>/, manifest.jsonl, video_scores.jsonl, stats.json, test_v1_heldout.jsonl, previews/, _corrupt/} data/test_data/test_v1/{videos/, posters/, manifest.jsonl, video_scores.jsonl} configs/{vtennis_lei_v1_video_queries.txt, vtennis_lei_v1_bilibili_queries.txt}

学术数据集

THETIS

视频Kinect 多模态 外部 GT
来源
学术数据集 THETIS(Three dimEnsional TennIs Shots),Kinect 采集,室内、背景多样。共 27 GB
数据量
1,980 个动作序列(55 人 × 12 类 × 3 次)· 每序列 5 种模态 = 8,375 个视频文件
模态
RGB 1,980 · Depth 1,981 · Mask(轮廓) 1,980 · Skeleton2D 1,217 · Skeleton3D 1,217。骨架序列偏少 —— 标定姿势不总能成功提取
标注 ⑤
12 类动作 GT(每段一个动作):双手反手 / 反手 / 反手切削 / 反手截击 / 正手平击 / 正手开放式 / 正手切削 / 正手截击 / 平击发球 / 上旋发球 / 切削发球 / 高压扣杀
熟练度
55 名受试者分层:p1–p31 初学者(31 人)· p32–p55 熟练者(24 人) —— 可做技能水平相关的实验
文件命名
{actor}_{action}_{sequence}.avi,如 p2_backhand2h_s3.avi
五种模态同一段 foreflat_s1 的中间帧(2D/3D 骨架序列来自另一受试者,p10 的这两条没提取成功)
12 类动作(取 6 类)同一受试者 p10 · 各取序列 55% 处的帧
⚠ 受控摆拍、单人无对手、室内固定机位,与实战和转播画面的域差距很大。适合做动作分类/骨架相关的预训练或消融,不适合直接当检索或高光任务的评测集。
data/THETIS/{VIDEO_RGB, VIDEO_Depth, VIDEO_Mask, VIDEO_Skelet2D, VIDEO_Skelet3D}/<action>/*.avi · README.md · papers/

TenniSet

视频转播时序标注 外部 GT
来源
学术数据集 TenniSet,5 场完整网球转播(V006–V010),共 9.54 小时 / 11 GB
标注 ⑥
逐事件时序 GT,共 4,448 条:Hit 2,551 · Serve 1,017 · Point 746 · Game 118 · Set 11 · Match 5
事件属性
Hit{Player, Side, Type} · Serve{Player, Result} · Point{Winner, Score} · Game{Winner, Score, Server} · Set{Winner, Score, Near}
数据划分
两套官方 split(splits/01、splits/02),各含 train / val / test
已预抽特征
MobileCLIP-S1 逐帧特征已算好并落盘(842 MB):每视频 <id>.npy + <id>.frames.npy —— 直接可用于时序检索/分段实验,不必重跑编码

各场事件数

V006Hit 220 · Serve 112 · Point 81 · Game 13 V007Hit 383 · Serve 172 · Point 129 · Game 19 V008Hit 209 · Serve 109 · Point 76 · Game 13 V009Hit 1,445 · Serve 504 · Point 366 · Game 58 V010Hit 294 · Serve 120 · Point 94 · Game 15

时长分布

V0061h 22m V0071h 31m V0080h 54m V0094h 31m(占总量近一半) V0101h 13m
五场画风各取一个 Serve 事件的起始帧(标注单位是帧号,25 fps)
一个 Point 内的逐事件帧
✅ 这是全项目唯一一套人工精标的实战时序 GT,是时序检索/事件检测任务最该拿来做评测的集合。局限是只有 5 场、单一转播风格。
data/tenniset/{videos/V0*.mp4, annotations/V0*.json, annotations/classes.txt, splits/{01,02}/{train,val,test}.txt, features/mobileclip_s1/}

衍生数据与标注层(挂在基础集之上)

以下都不是独立采集的数据,而是在 vtennis_lei_v0 / tenniset 之上叠加的标注或抽取的子集。同一批底图/视频可同时挂多层。

highlight

v0 标注层VLM 精彩度已交付
标注 ⑦
7 维 rubric 各 0–100 → 折成 0–1 的 highlight_score。主产物 Qwen3-VL-235B v2 全量 103,353 张(scores_full_235b_v2.jsonl)
对照 ⑧
515 对人工成对偏好(human_pairs.jsonl)+ 500 样本对照;另有 8B/235B × v1/v2 各 500 张试跑
用途
关键帧 / 高光筛选;VLM 排序准确率 ~81%
data/highlight/{scores_full_235b_v2.jsonl, human_pairs.jsonl, sample_500.jsonl, scores_qwen3vl-{8b,235b}_v2.jsonl}

annotations_v0

v0 标注层击球 / 动作标签迭代中
击球 hitting
是否处在击球过程中:VLM 全量 102,585 张(v9,2026-09-15)—— GPT-6 Astra · prompt p1 · OpenAI Batch,$634 / 28 分钟;击球中 61,795(60.2%)· 非击球 40,790;与人工 950 张对比准确率 0.878,与 v5 一致率 91.5% · 样本与统计 viewer ↗
此前:人工 GT 最新 721(v6)· VLM 3,000 · 模型全量伪标 102,611(v5)
四类 stroke4
发球/正手/反手/其他:人工 GT 418(v3)· 模型 2,848 · VLM 2,848
其它
正反手 fhbh(model 211)· 多标签 multi 人工 1,000(v8)· 裁剪框 gold675 人工 675
评测集复核
两套 400 张评测集人工标 unclear(难以判断):stroke4 45 张 · hitting 74 张,hitting 另改正 6 个标签(vtennis_lei_v0_eval400_{unclear,relabel}_human.jsonl)
留出集
HOLDOUT_IDS.json 768 张,永不进训练/标注批次(v9 全量标注已排除)
data/annotations_v0/{vtennis_lei_v0_{hitting,stroke4,fhbh,multi}_v*.jsonl, HOLDOUT_IDS.json, batch_v7_gold675.cropboxes.jsonl}

det_v0

v0 标注层球员 / 球拍检测已交付
标注 ⑨
人工核验检测框,4,095 帧:train 2,995 · test 500 · holdout 600(从 19,796 预标帧按 18 层分层抽样)
标签维度
racket(none/ok/orphan · 球拍门控:无拍即负样本)· nplayer(0/1/2/3+)· crowd(sparse/dense)· scale(closeup/mid/wide)
难负样本
混入非网球拍类运动作硬负例:padel 737 · table_tennis 627 · badminton 271 · squash 237 …(~9.7% 非网球)
基线
yolo_v1 / yolo_h0 两个 YOLO checkpoint + 预测已落盘
data/det_v0/{anno/{train,test}.jsonl, pool_{train,test,holdout}.jsonl, pool_stats.json, yolo_v1/, yolo_h0/, prelabel/, preds/}

pose_score

v0 标注层姿态特征已交付
内容
v0 全量 103,353 图的姿态特征缓存(train_manifest.jsonl)+ YOLOv11s 中间层特征 feat_cache_yolo11s_l4-6-8-10.npz(1.27 GB)
用途
姿态相关下游模型(打分 / 动作识别)的快速特征复用,免重跑 backbone
data/pose_score/{train_manifest.jsonl, feat_cache_yolo11s_l4-6-8-10.npz}

probe_v1

跨源探针动作识别已交付
组成
统一动作识别 probe,3,330 帧:THETIS 1,980 + v0hit 950 + v0stroke4 400 + batch_v7 900
用途
跨源(实验室 THETIS vs 自采 v0)评测动作分类器泛化;带 stroke4 标签 + author 分层 split
data/probe_v1/{manifest.jsonl, thetis/, v0hit/, v0stroke4/, batch_v7/, split_v0hit_author.json}

tenniset_stills_v1

TenniSet 抽帧四类动作已交付
内容
从 TenniSet 5 场转播抽的静帧,5,568 张(train 4,754 / test 814),带 stroke4 标签 + hitting / 事件类型 + 时间窗
用途
把 TenniSet 的转播时序 GT 转成逐帧动作分类训练 / 评测素材
data/tenniset_stills_v1/{train/<stroke4>/, test/<stroke4>/, manifest.jsonl}

自录素材

test_data

视频自录 可用
冒烟素材
11 个文件 / 701 MB:tennis_test_video/ 下 7 段(IMG_8662–8665.MOV 手机实拍 + lei_trim1–3.mov 剪辑片段)+ 4 段屏幕录制(2026-05-26)—— 端到端 pipeline 冒烟测试与 demo,无标注
test_v1 held-out
test_v1/:2026-08-04 从 lei_v1 人工挑 10 段业余视频(move 移出,与池物理互斥)/ 0.38h / 0.09 GB。带各自 manifest.jsonl · video_scores.jsonl · posters/,是真正的 held-out 评测集
样本预览前 4 张为 test_v1 首帧海报,后 2 张是自录素材的抽帧
data/test_data/{tennis_test_video/, Screen Recording *.mov, test_v1/{videos/, posters/, manifest.jsonl, video_scores.jsonl}}

对外发布(内部同事)

releases/ · 无标注干净数据包

tar.gz 分卷SHA256 已校验2026-08-26
内容
基础集的干净媒体 + 溯源/license,已剥离所有衍生标注(精彩度 / 检测 / 动作标签 / CLIP 分数)
vtennis_lei_v0_clean
103,353 张图 / 16.61 GB / 4 分卷,保留 subclass 目录 + 精简 manifest
vtennis_lei_v1_clean
1,356 段视频 / 34.64 GB / 7 分卷,保留 source/bucket 目录 + manifest
校验
11 个分卷全部 SHA256 通过;附 SHA256SUMS.txt + 每包 README/LICENSE
⛔ 第三方版权素材(v0 85% Flickr All Rights Reserved · v1 第三方视频),仅限内部研究、不可对外分发;每条带原页 URL / 作者 / license 可溯源撤下。
releases/{vtennis_lei_v0_clean.tar.gz.0[0-3], vtennis_lei_v1_clean.tar.gz.0[0-6], SHA256SUMS.txt, README.md} # 重组: cat vtennis_lei_v0_clean.tar.gz.* > v0.tar.gz && tar xzf v0.tar.gz

当前缺口

时序 GT 太薄
只有 TenniSet 5 场 / 9.5h 的实战事件标注,且是单一转播风格。自采的 1,366 个视频一条时序标注都没有
域标签不可信
lei_v1 的 broadcast/amateur 是 query 派生的弱标,抽检双向串味。要做域相关实验需先训一个画面级域分类器
人工校准不足
highlight 已有 515 对人工偏好(VLM 排序准确率 ~81% 已可信),但标注噪声上限仍未测(重复判定只有 13 组);lei_v0/v1 的清洗结果只做过目检抽样,没有量化过的人工准确率
动作标签仍薄
annotations_v0 的 hitting / stroke4 人工 GT 只有数百条(721 / 418),其余是 model/VLM 伪标;det_v0 检测框 4,095 帧也偏小 —— 都够起步微调,离稳定评测集还差量
近亲运动漏检
乒乓球/羽毛球/匹克球在图像集和视频集都仍有漏检,三门 topic gate 的负样本 bank 还不够
YouTube 通路
本机 IP 被封,业余长尾内容的最大来源拿不到 —— 换 cookies 或住宅 IP 后 lei_v1 量级可再上一个台阶