スクリーンショット_2019-05-01_13

姿勢推定AI(OpenPose)で動きの特徴を表現する

「AI技術をなるべくたくさんの人に使ってもらいたい!そしてデータでスポーツ練習の質をあげたい!」ということで、休日に徐々に進めているプロジェクトです。誰でも無料で動画分析ができます!

まず、すでにスポーツの練習においては現在でもスマートフォンの普及やYoutubeなどの動画サービスで、様々な上手い人のエッセンスを取り入れやすい時代だと思います。
そして、これからは誰もがAI利用でエッセンスを可視化する、AIがアドバイスしてくれるなどで、どんどんスポーツ練習の質が向上するんじゃないか?と思っています。

その走りと言うには視点も見た目も拙いですが、楽しんでいただけると嬉しいです。

参考:前回のnote(AIでスポーツをもっと楽しく、もっと科学したい[Sports x Tech])

今回の可視化できるようになる内容

(下のwebページに従っていくと、pose推定のAIを使った動画分析を誰でも無料でできるはずです)
● 人間を追跡できるようになり、以下の3つを描画できます!
  - 手の動きの軌跡
  - 重心位置の軌跡
  - 重心がどっちの足に乗っているか?の時系列グラフ(左足だと0、右足だと1になります)

やってみよう(実行ページ)

(こちらとgoogle driveを利用して可視化を行います。注意は前回noteに書いていますが、無料です。)

適している動画(撮影の注意)

- ジャンル:野球のピッチングやゴルフのスイング、ダンス、武道の型など。
- 固定カメラ、ハイスピードカメラ
- ボケが少ない
- 映っている人が少ない
- 人がひっくり返っていない
- 身体の部位の隠れがない
特に足先まで映っていることが望ましいです。袴やロングスカートは難しいです。

今回の可視化のポイント

①手の軌跡の可視化
「手の動きをもっと大きくするとは」「打点を高くするとは」「手の軌跡が上擦らないように」などで、上手い人はどうなってるの?が可視化できます。
特に、形を重視するスポーツ(格闘技やダンスなど)、道具を使う球技において使えるのではないか?と思います。

②重心位置の軌跡の可視化
「重心の移動が甘いんだよね〜」「相手の重心をもう少し動かそう」などのコメントがどの程度違うのか、見てみたいですよね。という可視化です。
爪先にしたのは、爪先に力を入れると全身に力を伝えやすいからです。(スノボなど例外もあります)

③重心の比率の可視化(option)
「カメラが動いてると結局重心評価できないじゃん…」となってしまったので、「左足(爪先)から右足(爪先)のどのくらいの位置(割合)に重心あるの?」をグラフにしました。
左足の下(枠外)の数字とグラフの凡例が対応しています。1秒分描画されます。


可視化・分析の進め方について

「人間の動作や学習を深く観察する中で、この特徴(動きやバランス)が動作の習熟に重要なのではないか?」という仮説を可視化・定量化するアプローチをしています。
練習の質を上げることが目的なので、人にフィードバックするにはどうしたらいいか?という観点で「まずは可視化から」進めています。
データが溜まってきたら具体的な分析も進めて行こうと思います!

実際に適用してみた動画例

野球のスウィングフォーム

少林寺拳法の投げ技

野球のスイングは割と綺麗に重心の移動が表現できているのですが、残念ながら、少林寺拳法では足が交錯する、人を持ち上げる、投げるなどのタイミングでポイントが崩れてしまっています。
(撮影でカバーできるかは検討していきます。)

参考:最先端のAI事例について

本題とはズレるのですが、凄い技術の紹介です。
僕には実装・展開できないのですが、リアルタイムに動作予測ができるという技術が下記サイトで紹介されていました!

この研究では動作のリアルタイムデータを深層学習(LSTM)に入れると次の動きを予測してくれるのですが、いわゆる「何が理由で予測されたのか?が分からないブラックボックス」になります。
ただ、深層学習から「何が理由で」を抽出する研究や、データから共通項を見つける機械学習もあるので「AIが見るとこういう特徴があったよ」というアプローチでも新しい気づきが得られる可能性もあり、非常に楽しみです。

最後に

「使ってみました!」や、「こんな見方もできたら…」、「〇〇を可視化ができたらな〜!」などのコメントをいただけると次への励みになります。
そして、興味がある方がご自身や家族、友人の動画に適用してみて、楽しんで頂けたなら幸いです。

お読みいただきありがとうございます! スキ(♡)やコメントをいただけると実装や執筆の励みになりますので、気軽にいただけると嬉しいです! よろしくお願いします!