2020/02/03ツイートディープラーニング(深層学習)を活用してテニスのトラッキングシステムを作りたいでも書きましたが、テニスの試合のデータ記録を自動化したく、ディープラーニングを活用したトラッキングシステムの開発に取り組んでます。・選手の動き・テニスコート・ボールのデータ取得を自動化したいと思っています。↓は、試合の映像から選手の動きとテニスコートを検出し、真上からみた位置に変換してアニメーションにしたものですが、ボールの軌跡が検出&プロットすることができていません。ボールはサイズが小さい(=特徴が少ない)、瞬間的に動くものなので静止画にするとぶれる、など物体検出するのに難しい要因がいくつかあります。カメラが固定されていればフレーム間差分という1つ前の画像フレームとの差をとって、動いたものだけを浮き出させる方法があって、下の動画のようにボールを検出することができます。サーブの着弾点を機械学習(SVM)で予測してます。ボールはフレーム間差分で検出。着弾点はSVMで確率が一番高い箇所を予測していて精度はまだ8割ぐらい。説明変数は、ボール間ベクトルの長さや角度変化など。1つ前と次のボール情報を使用してます。2018Qiita記事でもやり方を説明してます。OpenCV(Python版)でテニスのボール軌道を検出するただ、トッププロの試合はカメラがパン、ズームしたり、画角が移動することが多々あります。すると背景も一緒に動体として検出されてしまい、ボールがその中に埋もれてしまいます。画像解析でなんとかならないか、あれこれやってはいたのですが、なかなかうまくいかず。よい手法はないかなあと思っていたところ、はんぺんさんのツイートが。2020すごい、こんな精度良くボールを検出できるんだ。いうことで、自分もやってみました。さんがTrackNet使っているツイートみて自分もやってみた。ボールの誤検出は少ないし、軌道を補完してくれるしかなりいい感じだと思う。自分のやり方の問題かもしれんが。2020TrackNetに関する説明はこちらになります。ソースコードhttps://nol.cs.nctu.edu.tw:234/open-source/TrackNet/説明を読むと、スポーツ映像からボールを検出するための予測モデルを構築したとあり、自分がやりたいことにドンピシャの手法です。一般的な物体検出は、動画の各フレームを個別に処理して物体を検出します。TrackNetは1つ前と、2つ前のフレームも含め合計3つのフレームで処理します。僕ら人間も、過去のボールの動きも含めてボールの動きを捉えてると思っていて、それと同じことなのかなあと思っています。いい感じにボール検出ができましたが、こちらの手法は推論の計算に多くの時間を要します。(GPU1080Ti×1の環境)↑の動画は30秒程度の動画ですが、12時間ぐらいの時間を要しました。画像サイズを小さくするなど、工夫をしないと実際に使うのは難しいかなと。テニスの試合は1試合数時間になりますから。課題は山積してますが、引き続き開発を進めていきたいなと思います。以上、テニスのトラッキングシステムの進捗でした。スポーツ画像解析B!LINEへ送る関連記事テニス試合の動画データ募集してますこんにちは。個人でテニスのデータ分析ツールをつくってる@otakoです。...テニスの試合シミュレータをつくり、錦織とジョコビッチを1000回対戦させてみましたテニスの試合シミュレータをつくってみました。...高い位置からテニスの試合を撮影できるカメラアタッチメントを製作してみましたこんにちは。個人でテニスのデータ分析ツールをつくってる@otakoです。link購読するサイトについて「データ」×「テニス」をキーワードにブログを書いたり、データを公開したり、データ分析用のツール開発を進めてます。詳細は「サイトについて」にて。ツイッターもやってます。データテニス【DataTennis】サイト管理人がつくったテニスのスコア記録用のアプリです。otakomaサイトリンクテニス・ライブスコア(FlashScore)・男子ATP/女子WTAツアー/チャレンジャーなどほぼ全てのテニストッププロの試合のライブスコアを確認することができます。