はじめに
画像からの人物検出や、画像から姿勢推定・骨格検出をいくつか試してきたので、そろそろ実際のデータでの解析をやってみたくなりました。
そこで、2018年5月頃から、中学生のバッティングフォーム解析を始めました。
環境
- 撮影カメラ 自分のスマホ(HTC U11)
- 解析環境
- windows10 home(64bit/CPU)
- Google Colaboratory(python3/CPU)
- ライブラリ DeNA/Chainer_Realtime_Multi-Person_Pose_Estimation
フォーム解析
解析対象
練習におじゃまして、トスバッティングの様子を横から撮影させてもらいました(各選手1分間ずつくらい)
解析結果
選手の動画は使えないので、下記の説明用データは自分(野球素人)のバッティング画像とデータです。。。(お見苦しいですが、、、ご容赦を)
OpenPoseでの骨格推定結果
- パターン①
- パターン②
(パターン①よりも体重移動をしてスイングしているイメージ。あくまで本人イメージ。。。素人なのでゴメンナサイ。。。)
数値解析結果
バッティングの開始・終了までの目・肩・腰・膝・足首の位置の変化をプロット
位置の変化から、
- パターン①の方が縦の移動量が少ない
- パターン②の方が横の移動量が大きい(パターン②は体重移動してスイングしたイメージだったので当然ね)
ということは言えそう。
考察
数値解析結果から、以下のことが見れそう。
-
体重移動せずに、その場で回転して打つ傾向にあるか
-
体重移動して打つ傾向にあるか
-
各選手毎の、縦方向の移動量、横方向の移動量を比較することで、「移動量」という切り口から、選手の特徴は見出せそう
-
競技者から見れば、経験値や感覚として分かっていることで、データを見るまでもないことかもしれないが...まぁ感覚を数値化することに意義がある...かも...
解析方法
①動画⇒画像⇒②骨格検出⇒③分析⇒④動画へ戻すという、かなり遠回りなやり方をしました。
動画からのリアルタイムフォーム解析はしていません。(GPU環境がなかったので、、、)
1. 動画を画像に分割(OpenCV)
2. 分割した画像を1画像づつ骨格検出&座標をCSV出力(DeNA/Chainer_Realtime_Multi-Person_Pose_Estimation)
3. 座標CSV読込、結果をプロット(Pandas)
4. 解析結果の画像を動画へ(OpenShot)
※.50秒の動画で約1500枚の画像に(スマホのカメラが30FPSだったようです)。約1500枚の画像の骨格検出にwindows端末で6時間、Colaboratoryで4時間かかりました。。。
(夜、寝る前にバッチ仕込んで、朝、出社前にまたバッチ仕込んで、、とちまちまと骨格検出。。。GPUだったら速いのかなぁ(遠い目…))
得られたこと
データを見る切り口の大切さ
- 数字さえ出してみれば、その数字から何かが見えてくるかもしれない、という期待をもって望んだものの、、数字を目の前にして愕然。数字をこねくり回そうとしても、考えうる可能性が多すぎで何もできない、という闇にはまる。。。
- 何らかしらの切り口(今回は「移動量」)を持って、数字を見ていくことが重要だなと。
判断基準の大切さ
- 「移動量」という特徴が出たとしても「だから?」という結果に。移動量=ブレと解釈していいのか、移動量が多いと良いのか、悪いのか、移動量から何が言えるのか、、、
数字を判断する何かしらの基準がないと、解析結果はただの結果でしかなく、活用していけない、ということも実感。。。
コミュニケーションの大切さ
- 競技未経験の自分では、「判断基準」を自分の経験として持ち合わせていない。。。
- ならば「判断基準」を持ち合わせている人(監督さん、コーチ)に教えてもらうしかない
- あくまで、解析は競技力向上が目的なので、監督さん、コーチに有用なものであってほしい・・・。どういう解析が有効か相談させてもらうしかない・・・。
- 「データ解析」は、自分が思っていた以上に競技への理解や、関係者とのコミュニケーションが必要だと実感。
おまけ
- 統計学の知識は全くないけれど、今のところは足し算・引き算・平均・三角関数の範囲で進められそう
今後やりたいこと
- ピッチングの解析にも挑戦してみたい
- 継続的に(最低でも1年くらいは)選手のフォームの変化を追っていきたい
- 小学生や、高校生のデータもとってみたい。年齢別に特徴が見られたりするのだろうか
- 競技力向上のみならず、ケガとの関連(こういう特徴がある選手はケガしやすい)等にも活用できるといいな
- 学生の選手に対して、プロの〇〇選手と特徴が似ている、といった分類ができるようにしたい(プロのデータは手に入らないだろうけれど。。。)
- GPU環境ほしい。。。
夢物語は膨らむばかり。。。
最後に、、、プロの方、データお待ちしてます(笑)
2018/7/23 追記
Colaboratory 約1500枚の画像の骨格検出
- CPU : 4時間
- GPU : 15分弱
でした。