DataTennis.NET

データテニスドットネット

ディープラーニング(深層学習)を活用してテニスのトラッキングシステムを作りたい

公開日:
最終更新日:2020/02/02

      2020/02/02

テニスのトラッキングシステムを個人開発でつくりたく、プロトタイプをつくったりあれこれやっています。
完成まではまだまだですが、現段階でのプロトタイプはこんな感じのものになってます。

上は、こちらの動画(2016年全仏決勝ナダルvsワウリンカ)を元に作成しました。一番最初のナダルがスマッシュを決めたポイントで、ナダルとワウリンカ2選手の移動軌跡をプロットしています。

試合の動画データを取り込みテニスコート四隅と選手の位置を検出してトラッキングデータを作成してます。検出にはディープラーニングの技術を活用。ほんとはボールの軌道も検出したいんですがうまくできてません。小さく動きの速い物体を検出するのは難しい。。

トラッキングシステムとは

トラッキングシステムというのは、
・選手の位置や移動軌跡
・ボールの軌跡、着地点
・フォアハンド、バックハンドなどショットの判別
などあらゆるものをデータ化し、分析に活用するものです。
サッカー、ラグビー、バスケットボールなどチームスポーツで活用が盛んです。

テニスのプロツアーでは、ホークアイやfoxtennというトラッキングシステムが活用されてます。ホークアイは、ボールのインアウトを判定するチャレンジシステムを目的に開発されたものですが、トラッキングシステムとしても活用されてます。
ホークアイやfoxtennについては、弊記事(テニスのデータ分析・記録で活用されているテクノロジー)でも説明してます。

個人でも、ディープラーニングの画像解析の技術を使ってトラッキングできないかと思いあれこれやっており、選手の移動軌跡のデータ化にトライしている段階です。

トラッキングデータの作成フロー

測定からデータ化までのフローは↓のようになってます。

①画像データからテニスコート四隅の座標を検出(特徴点検出)
②選手の位置をSSDという物体検出モデルで検出
③射影変換で斜め上から撮影した画像を真上から撮影した画像に変換

動画の各フレーム毎に順次これらの処理①~③を施してトラッキングデータを作成します。
①、②どちらもディープラーニングベースのモデルになっています。

①のテニスコート検出は、テニスコートの四隅を検出するための特徴点検出モデルを構築しました。VGG19という画像分類でよく用いられるモデルを上流層に据え、下流層にテニスコート隅の4点それぞれの確からしさを出力する出力層をつなげたモデルを作成し、予測の出力値が所定以上の確率であればコート四隅として検出します。学習データには、クレー、ハード、グラスコートなどを混ぜており、どのコートでもそこそこの精度で検出できてるかなと。(精度検証はできてなく見た目で判断してます)

↓の動画は4隅の点をつなげたコートラインの画像を表示するようにしてます。途中で動画がズームしていきますが、コートラインを追従して検出していることがわかるかと思います(多少のずれはありますが)

そして②の選手の位置検出はSSD(SingleShotDetection)というディープラーニングベースの物体検出手法を用いて検出してます。

完成までの道のりは長い

以上、作成中のトラッキングシステムの概要を説明しました。取得したトラッキングデータを戦術分析に活かすためには、大量の試合データが必要になると思っています。
しかし、手動作業がまだまだ多くありますし、ディープラーニングでの計算もそこそこの時間を要します。大量のデータを集めるシステムをつくるためには、自動化をもっと進めるなど、まだまだやることがいっぱいあります。先は長い。。

 - blog, スポーツ画像解析, データ分析