Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Machine learning × Tennis

913963fd6beff0a716f512efd3792065?s=47 Hampen
January 17, 2020

Machine learning × Tennis

Machine learning × Tennis = ♾

913963fd6beff0a716f512efd3792065?s=128

Hampen

January 17, 2020
Tweet

Transcript

  1. 1 機械学習×テニス 勉強会︓ 株式会社ABEJA様 社内勉強会 ⽇時︓ 2020年01⽉17⽇(⾦) 発表者︓ 持丸 裕⽮

  2. 2 持丸 裕⽮ 【経歴】 2015年 東北⼤学⼯学部卒業 2016年 Fraunhofer IISB (ドイツ留学)

    2018年 東北⼤学⼤学院⼯学研究科卒業 2018年 IT系企業のDataScience部署配属 【テニス】 宮城県⼤会・準優勝(シングルス) 東北地区⼤会・準優勝(ダブルス) 全⽇本学⽣テニス選⼿権⼤会出場(ダブルス) 【やってること】 仕事︓動画の分析 趣味︓機械学習×テニス ⾃⼰紹介 はんぺん (hampen2929)
  3. 3 発表の流れ はじめに 試合の動画の分析 その他やりたい分析 スイング検出と類似度算出モデル まとめ

  4. 4 はじめに https://www.youtube.com/watch?v=IxIixqI2_o0

  5. 5 発表の流れ はじめに 試合の動画の分析 その他やりたい分析 スイング検出と類似度算出モデル まとめ

  6. 6 スイングの検出と類似度算出モデル 検出と姿勢推定 ⼊⼒動画 時系列の 関節位置情報 スイングの検出 ◯◯選⼿のフォア ハンドに似ている 他の選⼿のスイングの特徴ベクトルとの類似度算出

    スイングの 特徴ベクトル算出 他の選⼿の 特徴ベクトルはあらかじめ算出
  7. 7 スイングを⾏なっている瞬間に、右肩のX軸(⽔⾊)Y軸(⻩⾊)、右肘のX軸(緑⾊)Y軸(⾚⾊)、 右⼿⾸のX軸(紫⾊)Y軸(茶⾊)の特徴的な動きが⾒られる。 関節位置情報の可視化 フォアハンド バックハンド フォアスライス バックスライス

  8. 8 両肩、両肘、両⼿⾸、のX, Y軸の座標の合計12種類の関節位置情報を⽤いた。 座標の値 を0~1に正規化し、分類対象の直前15フレーム(0.5秒)の情報を⽤いた。 スイング分類モデルの学習 姿勢推定 時系列の 関節位置情報 スイング分類の

    学習 フォアハンド バックハンド フォアスライス バックスライス 何もしていない 関節位置の 正規化 0 1 1 フレーム 右肩_x 右肩_y … 左⼿⾸_x 左⼿⾸_y 0 0.1 0.4 … 0.9 0.5 -1 0.3 0.5 … 0.3 0.6 ︓ ︓ ︓ … ︓ ︓ -13 0.9 0.5 … 0.4 0.1 -14 0.3 0.6 … 0.5 0.3
  9. 9 スイング間の誤分類はフォアスライスと分類してフォアハンドが正解の場合のみであった。 Confusion matrix 何もしていない フォアハンド バックハンド フォアスライス バックスライス 何もしていない

    2743 68 24 50 52 フォアハンド 26 183 0 0 0 バックハンド 33 0 333 0 0 フォアスライス 9 6 0 166 0 バックスライス 21 0 0 0 282 分類結果 正 解
  10. 10 スイングの検出 https://www.youtube.com/watch?v=vMhTL8vKuEQ

  11. 11 スイングの検出と類似度算出モデル 姿勢推定 ⼊⼒動画 時系列の 関節位置情報 スイングの検出 ◯◯選⼿のフォア ハンドに似ている 他の選⼿のスイングの特徴ベクトルとの類似度算出

    スイングの 特徴ベクトル算出 他の選⼿の 特徴ベクトルはあらかじめ算出
  12. 12 4⼈のテニス選⼿を対象に、分析を⾏なった。 分析対象の選⼿ 対象の選⼿ フォアハンドの回数 フェデラー 14 ナダル 9 ジョコビッチ

    16 錦織 19 画像
  13. 13 Segmentationで⼈の領域以外を除去して姿勢推定

  14. 14 ラケットにボールが当たる瞬間を中⼼として、0.5秒間のスイング範囲の関節位置情報を可視化 した。⼀部ばらつきはあるものの、選⼿ごとにスイングの特徴が捉えられていると⾒受けられる。 スイング範囲の関節位置情報を次元圧縮して可視化

  15. 15 ⾃分のスイングをプロットした瞬間に秩序が乱れた。 スイング範囲の関節位置情報を次元圧縮して可視化

  16. 16 アノテーションしたスイング範囲の右肩、右肘、右⼿⾸のX,Y座標の合計6種類の座標データ 0.5秒分のデータから平均ベクトルを算出し、スイングの特徴ベクトルとした。 選⼿ごとのスイングの特徴ベクトル算出

  17. 17 選⼿ごとの特徴スイング抽出

  18. 18 算出したスイングの特徴ベクトルの可視化 持丸 右肩 Y 右肘 X 右肘 Y 右⼿⾸

    X 右⼿⾸ Y 右肩 X フェデラー ナダル ジョコビッチ 錦織
  19. 19 スイングの特徴ベクトルから⾮類似度の算出 *1:持丸はスイングの特徴を抽出した動画と別の動画でDTW距離を算出 右肩 Y 右肘 X 右肘 Y 右⼿⾸

    X 右⼿⾸ Y 右肩 X 持丸*1 フェデラー ナダル ジョコビッチ 錦織 0.283 0.316 0.298 0.122 0.406 0.213 0.273 平均 0.531 0.716 0.336 0.743 0.257 0.573 0.526 0.918 0.645 0.428 0.709 1.96 1.24 0.983 0.604 0.818 0.225 0.310 0.881 0.307 0.525 0.388 0.639 0.231 0.340 0.451 0.453 0.417
  20. 20 錦織選⼿のスイングに近いのであれば、錦織選⼿のグリップと近い握り⽅の⽅が、⾃分のスイング には合っているのではないかという仮説の元、グリップの握り⽅を変更した。 グリップの握り⽅を変更 https://www.nytimes.com/interactive/2019/08/30/sports/tennis/tennis-evolution-four-grips.html

  21. 21 変更後のフォームは錦織選⼿により近い結果になった。フォアハンドの窮屈感が改善された。 グリップの握り⽅を変更 錦織 右肘 X軸 右肘Y軸 右肩 X軸 右肩

    Y軸 右⼿⾸ X軸 右⼿⾸ Y軸 持丸(後) 0.610 0.258 0.191 0.241 0.612 0.319 0.372 平均 持丸(前) 0.738 0.776 0.256 0.139 0.674 0.434 0.503
  22. 22 持丸(グリップ変更後) 持丸(グリップ変更前) 錦織選⼿

  23. 23 映る⾓度を考慮しての類似度計算をできていなおらす、向きの補正や何らかの正規化が必要で ある。3Dの姿勢推定で向きを取得できればある程度の補正は可能︖ 課題1︓映る⾓度を考慮できていない

  24. 24 BBOXの⼤きさが異なり、BBOX内で正規化しての類似度⽐較だと限界がある。 課題2︓BBOXの⼤きさ違う

  25. 25 発表の流れ はじめに 試合の動画の分析 その他やりたい分析 スイング検出と類似度算出モデル まとめ

  26. 26 テニス分析のためのデータ取得パイプライン ・⼈の検出 ・トラッキング ・選⼿判定 ・姿勢推定 ・動作検出 ・ボールの検出 ・トラッキング ・In-Out判定

    ・コートの⾓検出 ⼈ ボール コート 得点・失点パターン分析 試合の組み⽴ての分析 試合のシミュレーション ショットの分布算出
  27. 27 姿勢推定のためにCenterNetを利⽤するものの、奥の⼈は検出できず。 ⼈に関するデータ取得

  28. 28 YOLOv3ではコートの奥の⼈も検出できた。検出と姿勢推定はモデルを分けた⽅がよさそう。 ⼈に関するデータ取得

  29. 29 コートが⻘⾊でカメラの位置が⾼めの動画だと割と上⼿くいく。芝だときつい。 ボールに関するデータ取得

  30. 30 発表の流れ はじめに 試合の動画の分析 その他やりたい分析 スイング検出と類似度算出モデル まとめ

  31. 31 打点の分析 横から⾒た映像で打点の位置を検出し、打点が後ろになっている原因の分析をしたい。個⼈的 に上達に直結しそう。

  32. 32 発表の流れ はじめに 試合の動画の分析 その他やりたい分析 スイング検出と類似度算出モデル まとめ

  33. 33 話してて本当に楽しかったです︕ ABEJAの皆さんありがとうございました︕ まとめ

  34. 34 ご静聴ありがとうございました︕