Motion-analysis with AI

近年、人工知能の発達はめざましく、最近ではデジタルカメラの画像の中から、全身の関節位置の座標を自動的に収集できるようになってきました。

我々は人工知能の技術とモーションシンセサイザーの技術を組み合わせることであたらしい動作分析手法を開発したので、紹介します。


こうした野球の現場のニーズに応えていくため、我々はモーション・シンセサイザーという新しいコンピュータシミュレーション技術を開発しました。

 

モーション・シンセサイザーでは、野球現場の複数のニーズに対して、それらを同時に満たす動作を提案します。


 モーション・シンセサイザーでは、個々のニーズをスライドバーを用いて入力します。そして、そのニーズを満たす最適な動きをコンピュータ上に作り出すことができるのです。
 
モーション・シンセサイザーでは主成分分析を利用して動きを作成します。「データの基本パターンを抽出して、その基本パターンを合成する」という考え方でこのシステムは成り立っています。

スポーツ現場で、選手のニーズはさまざまです。

現場では、パフォーマンス向上と障害防止を両立させるような投球動作が望まれています。

 

ニーズの設定は、スライドバーを用いて行います。

 

パフォーマンスを下げないようにするには、この球速のスライドバーを固定します。その状態にしたまま、今度は2段目の投球障害肩のスライドバーを右と左に動かすことによって、肩障害が生じやすい動作と生じにくい動作を求めていきました。

 

 

 

 

 

 

 

モーションシンセサイザーで作り出した結果は動画で見られます。

左はその一部を取り出し、静止画で表現したものです。

 

パフォーマンス条件を一定にした状態での肩障害が起きやすい動作や起きにくい動作の特徴を見出すことができます。

 

 

 

 

 

 

 

 

このようなシステムを選手に提示すると

「フォームの改善ポイントがわかった」とか

「イメージがわいた」

とうれしいコメントをしてくれます。

 

 

 

 

 

 

 

しかし、このシステムには大きな問題点もあります。

 

 

 

 

 

 

 

従来のシステムの最大の問題点は、このモーションキャプチャーを使っている点にあります。

モーションキャプチャーの機材は非常に高価で、解析が大変で時間もかかります。そうするとなかなかデータが集まらず普遍性が高まりません。

選手からしてみれば、マーカが動作の邪魔となってしまいます。

 

もっと簡便に、素早くフィードバックしてほしい・・・

 

これが選手や現場の願いです。

 

 

 

そこで我々は、こうした要望に応えるために、

モーションキャプチャーシステムを使わずに

代わりにデジタルビデオカメラを使って、モーションシンセサイザーを作りだすという新しい試みを開始しました。

しかし、モーションキャプチャーシステムを使わずに、全身の関節の位置を取得するためには、なんらかの新しい技術が必要になります。

その技術を探し求めてきました。

 

そして、ついに発見しました!!

 

 

 

 

 

 

 

その新しい技術とは、人工知能です。

 

ここにいま普通のデジカメで撮影した投球動画があります。

この動画に人工知能のアルゴリズムをかけていきますと、全身の関節を自動的に検出して、その座標値を取得することができます。

そして、全身の姿勢を推定することができるのです。

 

まさに、モーションキャプチャーで行っていたことが、

デジカメで労せずできてしまうのです。(もちろん2Dレベルの話ですが)

 


ここで、この人工知能の技術を使った研究をおこなってみました。

 

対象は高校野球部員60名で、三脚と家庭用のデジタルカメラを用いて投球動作を撮影しました。

 

このデータを用いて、人工知能のアルゴリズムとモーションシンセサイザーのシミュレーション技術を組み合わせ、

 

「投球障害の起こりやすくなる投球動作」

 

を導いてみたいと思います。 

 

 

 

収集した60名分の動画に人工知能のアルゴリズムを導入しました。

 

すると全身の18個の特徴点のX座標とY座標が求まります。

 

今回投球動作の解析区間はセットポジションからボールリリースまでとして、この区間を時間で正規化し、60フレームとしました。

 

そうしますと、1試技あたりの総変数は

18点 x 2座標 x 60コマ =2160(変数)となります。

 

 

 

 

 

つぎに、肩の痛みのデータを収集しました。

今回の研究デザインはprospective studyの形をとっています。

つまり、

まず、無症候期に投球動作の撮影を行いました。その後選手を半年間経過観察し、どの選手が発症したかを調べていきました。

 

その結果、この半年間で

① 痛みを発症しなかった選手は 46名

② 痛みを発症したが、パフォーマンスに影響しなたった選手が 10名

③ 痛みを発症して、パフォーマンスに影響した選手が       0名

④ 痛みを発症して、戦線を離脱した選手が             4名

いました。 

 

 

ここまで収集したデータをデータベース化し、解析を開始しました。

解析のアウトラインを示します。

まず、データベースに相関行列・主成分分析を行い、データベース内の動作情報のパターン(主成分)を抽出しました。

その後、各主成分(動作)と痛みとの相関関係を調べていきました。

最後に、痛みの発症と関連性の高い主成分を最適化手法を用いて合成していくと、疼痛が生じやすい動作パターンを求めることができます。

 

 

 

 

 

 

 

 

 

ここから先は、今回の方法論をさらに詳しく述べていきます。

方法論に興味がない方は、結果のところまで読み飛ばしても大丈夫です。

 

今回のシステムの作成環境ですが、プログラミング言語はpythonを用いて、画像処理ライブラリはOpenCVを用いました。

 

 

 

 

 

 

まず、データベースを主成分分析して、姿勢情報のパターンを抽出しました。

主成分分析を行うと、主成分得点と固有ベクトル行列が求まります。

これらを利用することで、

データベースから固有ベクトル行列を介して主成分得点を算出したり、

主成分得点から固有ベクトル行列を介して、データを生成するという

双方向性の計算ができるようになります。

この双方向性の計算ができるということが、シミュレーションを作るうえでとても大切なことになります。 

するとこんなことができるようになります。

 

いま、データベースの中から一つデータを取り出します。これを試技Aとします。

試技Aのデータに固有ベクトル行列をかけていきますと試技Aの主成分得点が求まります。

 

次に、主成分得点に対応するスライドバーを作っていきます。

 

第1主成分に着目したとして、第1主成分のスライドバーをうごかしたときにどのようなことがおこるかを見てみたいと思います。 

いま、第1主成分の得点を-0.21から+2.01に変更したと仮定します。

 

この主成分得点を固有ベクトル行列に代入すると、今度はこの第1主成分得点の変更を反映した新しい試技データを作り出すことができるようになります。

 

さらに具体的にみていきます。

 

今度は第2主成分のスライドバーを動かします。すると第2主成分得点の変更を反映した新しいデータがここに作り出されます。

 

今度は第3主成分のスライドバーを動かします。すると第3主成分得点の変更を反映した新しいデータがここに作り出されます。

 

左図は静止画のため、動きを見せることができませんが、第2主成分は横方向の動き、第3主成分は縦方向の動きに関与していることがわかります。

 

最後に、第2主成分と第3主成分のスライドバーを同時に動かします。すると第2主成分と第3主成分を合成した新しい動作を作り出せることができます。第2主成分は横方向、第3主成分は縦方向のうごきでしたから、それを合成すると斜め方向の動きを作り出すことができるのです。 

さて、投球動作の主成分が抽出でき、それらを合成することができるようになりました。

 

次に行うべきことは、どの主成分がどのくらい痛みに関与しているかということを調べます。ここでは各主成分得点と痛みの順位尺度データから相関係数を求めました。そのグラフが左図(上段)です。

 

すると黄色の四角で囲まれた主成分が痛みと関係の強いところになります。

 

こうした主成分を最適化手法を用いて合成していきますと、痛みが生じやすい動作パターンを求めていくことができます。

 

 

さて、投球動作の主成分が抽出でき、それらを合成することができるようになりました。

 

次に行うべきことは、どの主成分がどのくらい痛みに関与しているかということを調べます。ここでは各主成分得点と痛みの順位尺度データから相関係数を求めました。そのグラフが左図(上段)です。

 

すると黄色の四角で囲まれた主成分が痛みと関係の強いところになります。

 

こうした主成分を最適化手法を用いて合成していきますと、痛みが生じやすい動作パターンを求めていくことができます。

お待たせしました。難しい話はここまでにして、今回得られた結果を示したいと思います。

 

まずはこの選手の投球動作を見てください。

 

この選手は現在痛みはありませんが、

この選手の動作がこんな風に変化したら痛みが出やすくなるという動作を作成してみましょう。

 

 

 

 

さきほどの解析で、痛みがでやすくなる動作パターンが求められていますので、それをこの選手に当てはめてみます。今回はフットコンタクト時が最も特徴的だったのでその姿勢を提示します。

 

スティックピクチャーで示してある動作に変化すると痛みが出やすくなることを示しています。

 

右肘を後方にひきすぎて、肘が上がらずに、それを挙げようとして体が前に突っ込んでいます。

 

 

スティックピクチャーだけだとわかりにくいので、

 

k近傍法という方法を用いて、このスティックピクチャーに最も似ている選手で実際に痛みが生じた選手の動画と重ねあわせてみました。

 

すると

右肘を後方にひきすぎて、肘が上がらずに、それを挙げようとして体が前に突っ込んでいるということがさらにわかるでしょうか?

 

 

 

 

最後に今回のデータベースで作成した平均動作をお見せします。

 

赤線が、肩に痛みが出てしまった選手14名の平均動作。

 

青線が、肩に痛みが出なかった選手46名の平均動作です。

 

 


今回、人工知能を用いて導き出した結果は、以前にモーションキャプチャーシステム(3次元動作分析システム)で導いた結果とかなり類似していました。

 

つまり、肩障害が起きやすい動作はフットコンタクト時に右ひじを後ろに引きすぎ(水平外転しすぎ)、そのために右ひじが上がって来ず(外転角度が少ない)に、ひじ下がりの状態で投げてしまう。

 

こういう動作は、痛みが出やすく危険だとおもわれます。

 

 

 

 

 

 

 

以上、今回は人工知能とモーションシンセサイザーを組み合わせることで

「投球障害が生じやすい動作を生成する」

ということをしてきました。

 

今回新しく開発したシステムは、デジカメでできますから、簡便です。

しかも、マーカーなどはいりません。

 

データ集積もしやすいですから、今後解析結果の普遍性や信頼性はさらに高まっていくことが期待されます。

 

 

 

 

 

 

 

今後、我々はこの技術をさらに現場向きにしていくために、

E-learning systemを構築中です。

 

自分の動作をデジカメで撮影して、それをアップロードする。

するとクラウド上にあるデータ解析センターでその動画を分析して、

その選手の痛みが出やすくなる動作をスティックピクチャーで教えてあげる。

 

こんなような教育・啓蒙システムをつくることで、選手の障害の発生を未然に防いでいきたいと考えています。

 

長い文章をここまでお読みいただきありがとうございました。