DataTennis.NET

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

【OpenCVを使ったスポーツ画像解析1(モーショントラッキング)】テニス選手の移動量や軌跡をデータ化する

公開日:
最終更新日:2018/07/27

      2018/07/27

テニスの4大大会(全豪、全仏、全英、全米)では、選手の総移動量が、データとして記録されサイトで公開されます。

錦織圭は、サーブよりもストローク戦でポイントを稼ぐ選手ですので、この数字が比較的高い傾向があります。
ときにマラソンマンなんて言われたりします。

↓は、全仏オープン マリー錦織戦のstats情報ですが、下から2つが
DISTANCE COVERED (M)、DISTANCE COVERED/PT. (M)とあります。これは、試合のポイント中の総移動距離と、1ポイントあたりの移動距離となります。
相手がマリーなので、あまり数値に差がないですが。

distance-nishikori-murray

こういう情報を、画像処理を使って試合の動画から自動で取得できないか、トライしてみようと思ってます。
4大大会以外でもどんな感じかをみてみたいですし、一般選手のデータ解析にも応用できるかと。

Python(スクリプト言語)+OpenCV(画像処理ライブラリ)+contrib(オプション)
の組み合わせで、↓の動画のように選手の移動をトラッキングするのは簡単にできたりします。

Pythonコードは↓です。
一番最初のフェデラーの位置をバウンディングボックスで指定すれば、そのあとの動きは計算ライブラリが自動でやってくれます。
トラッキングのタイプは、BOOSTING MIL KCF TLD MEDIANFLOW GOTURNの6種類があるのですが、ここでは、MILを使っております。

今後は、移動軌跡を測定したり、選手以外のボールをトラッキングしたりとやっていく予定です。

スポーツ画像解析リンク
・【OpenCVを使ったスポーツ画像解析1】テニス選手の移動量や軌跡をデータ化する
・【OpenCVを使ったスポーツ画像解析2】フェデラー選手の移動軌跡をグラフ化してみました
・【OpenCVを使ったスポーツ画像解析3】選手やテニスボールの移動を自動で検出して移動軌跡をトラッキング
・【OpenCVを使ったスポーツ画像解析4】テニスコートのラインの自動検出
・【OpenCVを使ったスポーツ画像解析5】画像からテニス選手の位置を検出する
・【OpenCVを使ったスポーツ画像解析6】深層学習(ディープラーニング)を用いてテニス選手とボールをトラッキング

■環境
Windows10
Python3.5
OpenCV3.2+contrib

 - blog, スポーツ画像解析, データ分析, テニス×テクノロジー