LoginSignup
7
8

More than 5 years have passed since last update.

スポーツをITする(1)フォーム tensoleflow.js

Last updated at Posted at 2018-10-26

スポーツとITを融合させてみよう、と空いた時間に取り組み始めてから約2年。
これまで色々と試して来たことをQiitaに整理・まとめて、ご意見も聞きながら有効活用化まで持って行こうと思っています。

命題

スポーツをITするにあたり、2つの命題を掲げて進めていきたいと思います。
1. 過去の自分と比較してどうなのか?=上達の定義
2. 他人と自分を比較してどうなのか?=勝利の方程式
この2つの命題をクリアするため、我流理論に基づきながら、過去に実践したデータ&プログラムを検証していきたいと思います。

上達の定義

上達の内容には、以下の2つの条件があると考えています。
1.過去よりもフォームが良くなること。
2.スコアやスタッツ、パフォーマンスが過去よりも良くなっていること。
単発的な状況に一喜一憂せず、長期間におよぶ練習・試行錯誤の結果が、実戦の対戦スコアや個人成績(スタッツ)にどのように影響するか、をデータ化し、次の方法を考えていくべきだと思っています。

フォームをデータ化する

約1年半前に登場した「OpenPose」。これを見た時に、「スポーツ選手のフォームチェックが出来るかも」と考えました。ただしオリジナル「OpenPose」はGPU必須、またスポーツには利用できないポリシーとのこと。

とはいえ、試してみないことには実用性があるかわからない、と思い、結果的に行き着いた先は、最近Qiitaで教えて頂いた「Tensoleflow.js」の「posenet」でした。

https://github.com/tensorflow/tfjs-models/tree/master/posenet
*demoではyarnを利用してますが、将来的に考えて、自分はローカルPCブラウザで動作するよう、少しだけ手を加えました。ほぼそのままで動作します。guiとstatsはカットしました。あとは、console.logを見て出たエラーを潰していけばローカルで動作します。

Tensoleflow.js posenetの使用感

GPUの無い4core、8MBメモリーのカメラ付きノートPCで実験。GPUを使っているのかと思うくらいのスムーズ感です。ただ、少し誤検出が多い気がします。ターゲットが少し遠いと誤検出が多くなる感じがしました。GPU環境では誤検出が少なくなるのか、は不明です。

ともあれ、GPUの無いPCブラウザで、リアルタイム映像と静止画像から、ストレス無く簡単に姿勢ボーン座標検出が出来るようになったので、精度が上がれば活用シーンが多くなると思います。

そんなわけで、とあるトッププロゴルファーのアドレスフォームをposenetしてみました。
スクリーンショット 2018-10-27 0.07.45.png

実際にスマフォ画面に映し出された自分のアドレスと、このトッププロの姿勢ボーンを重ねて表示すれば、同じような構えになった時に、画面が赤く反転する、などといったことが出来そうです。

また、様々なトッププロの姿勢ボーンを蓄積すれば、自分と似た構えのプロ、似たスイングのプロ、を判定することも可能と思います。

撮影アングルには要注意ですが、これらに加えて、自分個人の姿勢データが蓄積されれば、フォームが良くなっている、と比較しやすくなるのではないでしょうか。「上達の定義」において、この「posenet」が大きな役割を果たしてくれるでしょう。

7
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8