ステータス:ドラフト(2026-10-13)。 論文の数値は原文を開いて条件とともに確認し、TrackNetV2・V3は論文の本文を開けなかったため、アブストラクト・公式リポジトリ・後続論文の記述で確認しました(その旨を記載しています)。実際に試したのはノートPCのCPUでのnumpyの例(
code/09_ball_labels.py)です。 我々の映像で測定したボール検出の精度・速度はTT Scoreモデル解剖編2にあります。 この記事はその実測の繰り返しはせず、「学習原理と系譜」のみを扱います。 2026-10-15追記: 未測定としておいたTOTNet(公開卓球重み)とTrackNetV3(RacketVision重み)を同じテストで測定した結果を第8節に要約し(詳細な表は第2編)、TrackNetV2・V3の「未確認」を調べ直して修正しました。 シリーズ「ビジョンモデルを読む2」第9編。ここからは「スポーツ」です。
目次
- 1. 何が難しいのか:3つの不均衡
- 2. 画素の不均衡:損失をどのように変えてきたか
- 3. 時間の不均衡:フレームをどのように見せるか
- 4. 条件の不均衡1:遮蔽(TOTNet)
- 5. 条件の不均衡2:ブレ(BlurBall)
- 6. 論文の数値
- 7. 限界
- 8. 我々のプロジェクトとのつながり
- 参考文献
1. 何が難しいのか:3つの不均衡
TT Score第2編で「なぜ難しいのか」を詳しく書いたため、要点だけを移行します。卓球ボールは512×288に縮小されたフレームで直径3画素ほどであり、露光時間中にボールの直径の何倍もの長さにブレ、手やラケットに頻繁に隠れます。学習の観点からは、これが3つの不均衡になります。
- 画素の不均衡:ヒートマップのほとんどすべてのマスが「ボールではない」です。
- 条件の不均衡:学習データの大部分はよく見えるボールであり、隠れたボール・ブレたボール・止まったボールは稀です。しかし、エラーはその稀なケースで発生します。
- 時間の不均衡:ボールの位置はフレームごとに変わりますが、1枚だけを見てもボールと蛍光灯を区別できません。
以下の系譜は、この3つを1つずつ扱ってきた歴史として読むことができます。
2. 画素の不均衡:損失をどのように変えてきたか
直接計算:怠惰な予測の誘惑
code/09_ball_labels.py で512×288のヒートマップに半径2.5マスのボールの円盤を描きました(WASB・TrackNetV3のラベルサイズ)。
[1] 공 원판(반지름 2.5) 칸 수 20 / 전체 147,456 = 0.0136%
1万マス中1.4マスがボールです。このような問題でモデルが真っ先に学ぶのは、 「どこにもボールがない」と答えることです。それだけで99.99%のマスを正解できるからです。「すべて0.01」と答える怠惰な予測と、ボールの位置に0.6を塗った予測の損失を比較しました。
게으른 예측 공을 맞힌 예측 차이(학습 신호) 차이 / 게으른 손실
BCE 0.010674 0.010118 0.000555 5.2%
WBCE 0.000613 0.000012 0.000601 98.0%
게으른 예측의 손실 가운데 「공 아닌 칸」 몫: BCE 94.1%, WBCE 0.2%
通常の二値交差エントロピー(BCE)では、怠惰な予測の損失の94%が、 すでに正解した「ボールではないマス」たちの小さな損失が積み重なったものです。ボールを当てても損失は5%しか減りません。学習シグナルが背景のノイズに埋もれます。
TrackNet(2019):256段階分類
最初のTrackNetは、ヒートマップのマスごとに0〜255の明るさのいずれかを選ぶ205種分類で学習しました(※原文に準拠)。正解はボールの中心に描いた2Dガウス関数(σ² = 10)を0〜255に拡大したマップです(論文)。3フレームを入力し、最後のフレームのヒートマップを1枚出力します。
TrackNetV2(2020)・V3(2023):焦点損失型の加重BCE
V2から損失が変わります。後続論文とV3の公式コードで確認した式はこうです(V2論文の本文は開けませんでした)。
WBCE = −[ (1 − p)² · y · log p + p² · (1 − y) · log(1 − p) ]
すでに正解したマス(ボールではないマスでpが0に近い)にはp²が掛けられ、損失がほぼ0になります。 簡単なマスの声を小さくする ことが核心であり、検出分野の焦点損失(focal loss、γ=2)と同じ形です。上記の計算でWBCEは「ボールではないマス」の割合を94%から0.2%に減らし、ボールを当てたときの損失が98%減少しました。同じ差(0.0006)が今や損失全体を動かします。
V2はさらに3枚を入力して 3枚を一度に出力するように(3-in-3-out)変更し、スループットを大きく向上させました(アブストラクト:2.6 → 31.8 FPS)。V3は試合ごとにあらかじめ計算した 背景(フレームの中央値) を共に入力することで「背景と異なるもの」を見つけやすくし、正解を半径2.5の二値円盤で描きました(公式コード)。ボールを見逃した区間は、軌跡座標を意図的に隠した後に埋めるように別途学習した小さなネットワーク(InpaintNet)で埋めます。
WASB(2023):難しいサンプルにのみ滑らかなラベル
WASBは小さなHRNet(ボールの解像度を最後まで維持するネットワーク)に 品質焦点損失を用います。最初は二値円盤の正解で学習しますが、20エポック目から 位置をうまく合わせられない学習サンプルのみを選び、 正解を実数値のガウス関数(端の最小値0.7)に変更して学習を続けます(HLSM、論文)。うまく当てられるサンプルはシャープな正解で、難しいサンプルは「大体このあたり」という寛大な正解で教えるわけです。事前学習なしで最初から30エポック学習しました。
推論時はヒートマップを0.5で閾値処理して塊を見つけ、ヒートマップの値で重み付けした中心を位置として使用します。そして、前のフレームで予測した位置から離れすぎている候補は捨てる簡単なオンライン追跡を組み込みました(論文)。この後処理はTT Score第2編にコードがあります。
3. 時間的不均衡:フレームをどのように見せるか
| モデル | 入力 | 時間の使用方式 |
|---|---|---|
| TrackNet | 3フレーム → 1枚 | チャネルとして積み重ね、最初のレイヤーで混合(第6回の「早期結合」) |
| TrackNetV2 | 3フレーム → 3枚 | 同上。出力もフレームごと |
| TrackNetV3 | フレーム + 背景 | 「止まっているもの」を別途教える。ほぼ止まったボールまで背景として消えてしまわないか心配したが、測定してみると逆にほぼ止まったボールを最もよく見つけた(第8節) |
| TrackNetV4 | フレーム + 動きマップ | モノクロフレーム差分の絶対値に学習パラメータ2個の正規化をかけ、アテンションマップとして掛け合わせる |
| TOTNet | 5フレーム | フレームごとに2D畳み込みの後、 3D畳み込みで時間を混ぜる |
| TrackNetV5 | 3フレーム + 方向マップ | 差分を+方向と−方向に分け(どちら側に動いたか)て入力し、ドラフトヒートマップを小さなTransformerが残差で調整する |
V4とV5の動きマップは、第5回のオプティカルフローを非常に安価に模倣したものです。オプティカルフローは「どこにどれだけ」を計算しますが、差分は「どこが変わったか」だけを見ます。小さなボールにはそれで十分すぎるというのがこの系列の主張です。V5は学習時、ドラフトヒートマップに10%のドロップアウトをかけ、調整段階がドラフトをそのまま模倣しないようにしました(論文)。
4. 条件的不均衡1:オクルージョン(TOTNet)
TOTNet(2025)は隠れたボールを正面から狙います。学習において3つを変更しました(論文、一部の値は公式リポジトリ)。
- オクルージョンを意図的に作り出す。 対象フレームのボール領域を周辺の平均色で覆い、隠れたボールを模倣します。他のフレームにもランダムな領域を覆うことで、モデルが「覆われた跡」だけを見てボールを見つけるずる賢さを学習しないようにしました。
- 可視性ごとに正解と重みを変える。 見えている、または一部隠れているボールは1セル分の正解、 完全に隠れているボールは広がったガウス分布 の正解、画面外は正解なし。損失はx・yの1D分布(TTNetと同じ形式)にかけるBCEであり、可視性のレベルごとに重みを掛けます(リポジトリの例 [1, 2, 2, 3]:隠れるほど重く)。
- 5フレームの3D畳み込み。 前後のフレームからボールの軌跡をつなぎ、隠れたフレームを埋められるようにします。
5. 条件的不均衡2:ブレ(BlurBall)
BlurBall(2025, CVPRW 2026)の考え方はラベルにあります。
- ブレの中心に位置ラベルを付ける。 ブレた痕跡の前方端(最も最近の位置)ではなく中心です。中心は露出の中間時刻に相当し一定です。ブレの半分の長さと角度も一緒にラベル付けしました(オンライン動画26本、64,119フレーム、フレームの62%にブレ)。
- 正解マップをブレの線分全体に広げる。 ボール中心の1点ではなく、ブレた線分に沿って正解を塗りつぶします。WASBの損失とハードサンプルマイニング(HLSM)はそのままにし、その滑らかな正解も線分に広げました。
- ブレの長さと角度は個別に回帰させません。ヒートマップを切り出した塊に対して主成分分析(PCA)を行って抽出します(論文)。
例の最後の部分は、「中心」がなぜラベルとして優れているのかを思考実験で示しています。ボールの速度20m/s、露出1/120秒(ブレ約17cm)において、人間が1フレームだけを見て「ブレの前方端」を指し示そうとすると、どちらが前方なのか混乱します。
한 장만 보고 「끝점」 을 찍으면 앞뒤를 헷갈려 오차 표준편차 8.3cm, 「가운데」 는 방향과 무관해 0cm
前後を半々で勘違いするという仮定は極端ですが、「中心」は方向が分からなくても同じ場所であるという点は仮定に関わらず成立します。
6. 論文の数値
データセット・競技・判定距離がすべて異なるため、 表同士を比較してはいけません。 同じ表の中だけで比較してください。
| モデル | 数値(論文) | 条件 |
|---|---|---|
| TrackNet | 1フレームF1 92.5 → 3フレーム 98.2、試合を混同しない10分割交差検証F1 84.3 | テニス1試合20,844フレームをランダムに7:3分割、誤差5px以内 |
| TrackNetV2 | 新規試合のテスト Acc 85.2 / P 97.2 / R 85.4、31.84 FPS(3枚入力して3枚受け取る方式) | バドミントン18試合55,563フレーム(緑・学会記録 ICPAI 2020。本文は有料のため閲覧できず、測定GPUは未確認。V3の論文では元のV2の精度を87.72%として引用) |
| TrackNetV3 | Acc 97.51, F1 98.56, 25.11 FPS | シャトルコックテスト3試合29ラリー、288×512、4px(公式リポジトリ・論文)。FPSは8フレームアンサンブルの値であり、アンサンブルを除くと75 FPS以上。GPUはリポジトリ・論文のどこにも記載なし。同表のV2はAcc 94.98 |
| TrackNetV4 | シャトルコック V3 Acc 95.7 → +動きマップ 96.4 | 4px基準。テニス試合単位の分割でも +0.6 |
| WASB | F1 テニス 95.6 · バドミントン 93.1 · サッカー 88.2 · バレーボール 88.0 · バスケットボール 82.6 | 4px、パラメータ150万 |
| TOTNet | 卓球(TTA) 完全オクルージョン RMSE 37.30(WASB) → 12.31、オプティカルフロー追加版 7.19. OpenTTGames Acc 0.84(WASB) → 0.97 | 5px(完全オクルージョンは10px)。868万パラメータ、28.08 FPS(オプティカルフロー版 12.19)、ハードウェア記載なし |
| BlurBall | 卓球 F1 96.52(WASB 96.00)、79 FPS、ブレ誤差長さ 1.5px・角度 6.5° | 4px、149万パラメータ、デスクトップ級GPUと推測 |
| TrackNetV5 | F1 0.9859(V2 0.9677) | 「TrackNetV2データセット」4px。1,477万パラメータ、データセンター推論用GPUで約114 FPS。種目の表記が本文と結論で異なる |
TrackNetの「ランダムフレーム分割 98.2 対 試合分離クロスバリデーション 84.3」はこの分野全体に対する警告です。 同じ試合の隣接フレームが学習とテストの両方に含まれると、スコアが水増しされます。 V4論文がこの点を指摘し、分割規約を新たにつくった理由です。
7. 限界
- 判定距離 4–5px は 512×288 基準である。 1080p に移行すると 15画素ほどであり、卓球台の上では数 cm です。バウンドの「イン・アウト」を判断するのに十分かどうかは別途検討する必要があります。
- 学習映像とテスト映像の重複。 BlurBall の学習映像 26本のリストが公開されておらず、OpenTTGames と重複しているか不明です(TT Score 2本)。ボール検出品質を汎化性能として捉えてはなりません。
- リアルタイムと録画映像。 V3 の軌跡補間には未来のフレームが必要です。TOTNet は公開コードのデフォルト設定が 5フレームウィンドウの 最後 のフレームを予測して未来フレームなしで実行し(前後を見る設定もあり、我々の測定で最後のフレームと一致することを確認)、その代わり計算が重いです。 8GB級 GPU でウィンドウひとつあたり 259.5ms でした。
8. 我々のプロジェクトとのつながり
- 実測は2本目に。 TT Score は BlurBall をデフォルトで使い、OpenTTGames のテスト 7試合で精度 0.982・再現率 0.979、弱点(静止したボール 0.790、隠れたボール 0.863)、サーバー GPU 3.4ms/フレーム、OpenTTGames 以外での低下を直接測定しました。WASB・TrackNetV2などの比較モデルと劣化条件の結果もその本にあります(TT Score モデル解剖 2本目)。
- オクルージョンが残された弱点である。 隠れたボール 0.863 は TOTNet が狙ったまさにその条件です。そこで 2026-10-15 に公開された卓球(TTA) の重みをそのまま同じテスト(OpenTTGames テスト 7試合、3,483枚、5px)で実行しましたが、選手と重なったボールの再現率は 0.403 と BlurBall の半分にも満たず、全体の再現率も 0.686 でした。論文の OpenTTGames 精度 0.97 は OpenTTGames で学習したモデルの値であり、他の体育館で学習した重みはそのまま移行できなかったのです。逆に三種の競技中継で学習した TrackNetV3(RacketVision の重み)は OpenTTGames を見たことがないにもかかわらず、精度 0.983・再現率 0.981 と BlurBall 水準であり、ほぼ静止したボールは 0.956(BlurBall 0.790)とよりよく検出できました。ただし重なったボールは 0.823 でした(TT Score モデル解剖 2本目 第6節)。この実験では「学習方法がオクルージョンを狙ったか」よりも「何の映像で学習したか」の方が大きかったです。TTA の学習データが研究専用のため、その重みの使用条件も考慮する必要があります。
- 蒸留の教師候補。 前後のフレームを見る V3方式の補間、そして我々の映像で再学習した TOTNet のようなモデルは、4本目の「録画映像の教師」のポジションに合致します。
ティーティーの一言。 ボールが画面の 0.01% であるため、普通に教えるとモデルは「ボールはありません」とだけ言う方法をまず学習してしまいます。簡単なセルの声を小さくするひとつの損失がその癖を直します。そこからは、オクルージョンやブレのような稀なケースをいかに頻繁に、より重く見せるかの戦いです。
参考文献
- Huang et al., TrackNet: A Deep Learning Network for Tracking High-speed and Tiny Objects in Sports Applications, AVSS 2019. https://arxiv.org/abs/1907.03698
- Voeikov et al., TTNet: Real-time temporal and spatial video analysis of table tennis, CVPR 2020 Workshops. https://arxiv.org/abs/2004.09927
- Sun et al., TrackNetV2: Efficient Shuttlecock Tracking Network, ICPAI 2020. https://doi.org/10.1109/ICPAI51961.2020.00023
- Chen & Wang, TrackNetV3: Enhancing ShuttleCock Tracking with Augmentations and Trajectory Rectification, ACM MMAsia 2023. https://doi.org/10.1145/3595916.3626370 · リポジトリ https://github.com/qaz812345/TrackNetV3
- Raj et al., TrackNetV4: Enhancing Fast Sports Object Tracking with Motion Attention Maps, ICASSP 2025. https://arxiv.org/abs/2409.14543
- Tang et al., TrackNetV5: Residual-Driven Spatio-Temporal Refinement and Motion Direction Decoupling for Fast Object Tracking, arXiv 2025. https://arxiv.org/abs/2512.02789
- Tarashima et al., Widely Applicable Strong Baseline for Sports Ball Detection and Tracking(WASB), BMVC 2023. https://arxiv.org/abs/2311.05237
- Xu et al., TOTNet: Occlusion-Aware Temporal Tracking for Robust Ball Detection in Sports Videos, CVIU 2026. https://arxiv.org/abs/2508.09650
- Gossard et al., BlurBall: Joint Ball and Motion Blur Estimation for Table Tennis Ball Tracking, CVPR 2026 Workshops. https://arxiv.org/abs/2509.18387
- サンプルコードと出力:
code/09_ball_labels.py,code/09_ball_labels.out.txt