2018/07/27ツイート先回、【OpenCVを使ったスポーツ画像解析1(モーショントラッキング)】テニス選手の移動量や軌跡をデータ化するにて、選手(フェデラー)の動きをトラッキングする様子を動画で説明しました。バウンディングボックスで選手をトラッキングしていますが、その重心の移動を軌跡データとして描画した動画が↓になります。トラッキングデータである移動軌跡をグラフ上にプロットしてみます。赤丸の位置をスタート位置として、そのあとの移動軌跡が描けていることがわかります。グラフの軸の単位はpixelになっており、これをmに変換する必要があるのと、遠近補正を施す必要があります。斜め上から撮影した動画になっていますが、遠近補正で真上から見た画像に変換します。遠近補正にはホモグラフィ変換という変換法を使用しました。opencvでは、findHomographyという関数を使用することで、台形から長方形へと遠近補正することができます。横823の長方形に変換しました。軌跡が描けたので、次は移動距離を計算したいと思います。見やすくするために、移動軌跡を拡大します。移動距離は点間距離の合計値を総移動距離としています。この場合、総移動距離は1989=19.9mとなりました。動画を見ればわかりますが、このポイントでは19.9mも動いていませんよね。・サーブを打っているときの移動量が大きくでてしまう(フォームモーションの影響?)・0.03s(30fps)毎にデータ取得しているので、細かいノイズがのってしまうの2点の影響で、実際の移動量よりも大きい移動量が算出されていると考えられます。・サーブの時間帯(0~80フレーム)は省く・0.3s(3fps)でデータ取得と間隔を大きくすることで、実際の移動距離に近づける作業をしました。サーブの時間帯(0~80フレーム)を省いた軌跡データをみてみましょう。このとき総移動距離は、10.6mとなります。0.3s毎にデータ取得とデータ取得間隔を少し大きくすると↓のようになります。このとき総移動距離は、5.8mとなり、細かいノイズが減ったことでそこそこいい数字になったかと思います。改善の余地はあるかと思いますが、このポイントだけで条件を決めるわけにはいかないので、いろんなポイントパターンをみながら改善していきたいと思います。range(len(xc_es)-1):#len(xc)-1s_es+=math.sqrt((xc_es[i+1]-xc_es[i])**2+(yc_es[i+1]-yc_es[i])**2)print(s)print(s_es)[:en]先回、【OpenCVを使ったスポーツ画像解析1(モーショントラッキング)】テニス選手の移動量や軌跡をデータ化するにて、選手(フェデラー)の動きをトラッキングする様子を動画で説明しました。バウンディングボックスで選手をトラッキングしていますが、その重心の移動を軌跡データとして描画した動画が↓になります。トラッキングデータである移動軌跡をグラフ上にプロットしてみます。赤丸の位置をスタート位置として、そのあとの移動軌跡が描けていることがわかります。グラフの軸の単位はpixelになっており、これをmに変換する必要があるのと、遠近補正を施す必要があります。斜め上から撮影した動画になっていますが、遠近補正で真上から見た画像に変換します。遠近補正にはホモグラフィ変換という変換法を使用しました。opencvでは、findHomographyという関数を使用することで、台形から長方形へと遠近補正することができます。横823の長方形に変換しました。軌跡が描けたので、次は移動距離を計算したいと思います。見やすくするために、移動軌跡を拡大します。移動距離は点間距離の合計値を総移動距離としています。この場合、総移動距離は1989=19.9mとなりました。動画を見ればわかりますが、このポイントでは19.9mも動いていませんよね。・サーブを打っているときの移動量が大きくでてしまう(フォームモーションの影響?)・0.03s(30fps)毎にデータ取得しているので、細かいノイズがのってしまうの2点の影響で、実際の移動量よりも大きい移動量が算出されていると考えられます。・サーブの時間帯(0~80フレーム)は省く・0.3s(3fps)でデータ取得と間隔を大きくすることで、実際の移動距離に近づける作業をしました。サーブの時間帯(0~80フレーム)を省いた軌跡データをみてみましょう。このとき総移動距離は、10.6mとなります。0.3s毎にデータ取得とデータ取得間隔を少し大きくすると↓のようになります。このとき総移動距離は、5.8mとなり、細かいノイズが減ったことでそこそこいい数字になったかと思います。改善の余地はあるかと思いますが、このポイントだけで条件を決めるわけにはいかないので、いろんなポイントパターンをみながら改善していきたいと思います。テニス×テクノロジーB!LINEへ送る関連記事ブログはじめましたはじめまして。...錦織選手のサーブデータ(コース・速度など)をダウンロードできるようにしましたこんにちは。個人でテニスのデータ分析ツールをつくってる@otakoです。link購読するサイトについて「データ」×「テニス」をキーワードにブログを書いたり、データを公開したり、データ分析用のツール開発を進めてます。詳細は「サイトについて」にて。ツイッターもやってます。データテニス【DataTennis】サイト管理人がつくったテニスのスコア記録用のアプリです。otakomaサイトリンクテニス・ライブスコア(FlashScore)・男子ATP/女子WTAツアー/チャレンジャーなどほぼ全てのテニストッププロの試合のライブスコアを確認することができます。