近年、人工知能の発達はめざましく、最近ではデジタルカメラの画像の中から、全身の関節位置の座標を自動的に収集できるようになってきました。
我々はテニスプレーヤーのために、人工知能の技術とモーションシンセサイザーの技術を組み合わせることであたらしい動作分析手法を開発したので、紹介します。
今回、我々は、テニス選手のために、モーションシンセサイザーという新しい動作解析システムを開発したので、報告します。
このシステムでは、デジカメで撮影した動画データとスマートテニスセンサー(ソニー)から得られたデータに対して、統計学と最適化手法を駆使して、選手のニーズを満たすための動作を提案するというものです。
このシステムには、最先端の人工知能のアルゴリズムも組み込まれています。
研究背景
まず、スマートテニスセンターとはどのようなものなのでしょうか?
ソニーのホームページからYou tube動画が提供されていたので、左に掲載しました。
このスマートテニスセンサーを持って、テニスコートに向かいました。
スマートテニスセンサーをラケットのグリップに装着しました。
三脚にiphoneを装着して、アプリを起動しました。
セットアップはたったこれだけ。
撮影を開始すると、1球うつごとに、
①ボールの回転
②スイング速度
③ボール速度
④ラケット面のインパクトポイント
が推定され、リアルタイムに表示されます。
そのときの撮影動画がこんな感じです。
推定値とはいえ、こんなに素早くデータが表示されるとは・・・
「いまの、時速何キロだった~?」
毎回、選手に聞かれる。選手もなんか楽しそう。
どうやら、毎回データをいうと、燃えてくるらしい。
人工知能を使った映像を紹介します。
ここにいま普通のデジカメで撮影した投球動画があります。
この動画に人工知能のアルゴリズムをかけていきますと、全身の関節を自動的に検出して、その座標値を取得することができます。
そして、全身の姿勢を推定することができるのです。
まさに、モーションキャプチャーで行っていたことが、
デジカメで労せずできてしまうのです。(もちろん2Dレベルの話ですが)
それでは、
スマートテニスセンサーに人工知能を組み合わせるとどうなるか?
人工知能にさきほどのテニス動画を読み込ませてみました。
すると、全身の関節位置が自動的に推定されて、選手の姿勢がきれいに推定されました。
研究目的
これまでの技術を使って、新しい試みをチャレンジしてみたいと思います。
チャレンジする項目 一つ目
「ぼくのサーブのスピードを上げるためにはどうしたらいいの?」
という選手のニーズに応えるため、
サーブスピードが上がるときの動作パターンと
サーブスピードが下がるときの動作パターンの
両者を求めて、それらをビジュアライズして比較しつつ、
選手のイメージトレーニングの助けにする。
チャレンジする項目 二つ目
「ぼくのサーブの回転を上げるためにはどうしたらいいの?」
という選手のニーズに応えるため、
サーブの回転が上がるときの動作パターンと
サーブの回転が下がるときの動作パターンの
両者を求めて、それらをビジュアライズして比較しつつ、
選手のイメージトレーニングの助けにする。
チャレンジする項目 3つ目
「ぼくのサーブの打った時の感触をよくするためにはどうしたらいいの?」
スピードや回転という客観的なものも大切ですが、最も大切にしたいのは選手の感覚(主観)です。
サーブの打った時の感触がよいときの動作パターンと
サーブの打った時の感触が悪いときの動作パターンの
両者を求めて、それらをビジュアライズして比較しつつ、
選手のイメージトレーニングの助けにする。
具体的な方法論を述べていきます。
まず、スマートテニスセンサーを用いて、サーブ動作を10球程度撮影します。
センサーから得られるデータ
①ボールの回転
②スイング速度
③ボール速度
④ラケット面のインパクトポイント
はアプリ内に自動的に保存されるので、それを引き出します。
選手の自己評価も大切なので、
1球ごとに自己評価を画像に記録します。
自己評価は3段階で、順位尺度データとしています。
さきほど抽出したスマートセンサーのデータシート(CSVファイル)に、
自己評価の点数を入力します。
動画には、かならず解析に不要な部分が含まれています。
たとえば、左図のようにボールをかごから取り出しているシーン。
こうした不要部分を削除したいのですが、手作業だと大変です。
そこで、ソニーのPlay memoryという画像編集ソフトを使います。これをつかうと、ボールのインパクトシーンを中心に動作だけを自動的に切り出してくれるので、非常に楽です。
収集した10試技分の動画に人工知能のアルゴリズムを導入しました。
すると全身の18個の特徴点のX座標とY座標が求まります。
今回の解析区間はボールインパクトフレームを基準に
基準前 35フレーム
基準後 5フレーム
の40フレームとしました。
そうしますと、1試技あたりの総変数は
18点 x 2座標 x 40フレーム =1440(変数)となります。
これで、データはすべてそろいました。
つぎに解析環境ですが、
プログラミング言語はpythonを
画像処理ライブラリはOpenCVを用いました。
ここでは、解析の詳細は割愛させていただき、
アウトラインだけ述べていきます。
今回のデータセットに主成分分析をかけていきますと、動作情報のパターンを認識して、その主成分を抽出することができます。
その各主成分に、パフォーマンスデータと相関分析をします。
すると、この主成分は球速に関与するとか、この主成分は回転に関与するとか、この主成分は自己評価に関与するとか・・
こうしたことが定量的にわかってきます。
その後、最適化手法を用いて、主成分を合成していきますと選手のニーズを満たすような動作をコンピュータ上にスティックピクチャーとして表示することができるようになります。
結果です。
まず、サーブスピードを高めるというニーズに応えていきましょう。
まず、ボールスピードを最大にする動作パターンを示します。
この場合、左画面の「ball speed」 と 「最大」 というラジオボタンにチェックをいれるだけで、あとはコンピュータがこのニーズをみたす最適な動作を作ってくれます。
まず、平均動作を作成します。
青色がボールスピードが高くなる動作パターン
赤色がボールスピードが低くなる動作パターン
を示しています。
つぎのYoutube動画でご覧ください。
今度は、k近傍法というものと用いて、
さきほどの動画で
青色の動作に最も近い元動画と
赤色の動作に最も近い元動画と
を抽出して、重ねあわせて表示しました。
今回、人工知能を用いて導き出した結果は、以前にモーションキャプチャーシステム(3次元動作分析システム)で導いた結果とかなり類似していました。
つまり、肩障害が起きやすい動作はフットコンタクト時に右ひじを後ろに引きすぎ(水平外転しすぎ)、そのために右ひじが上がって来ず(外転角度が少ない)に、ひじ下がりの状態で投げてしまう。
こういう動作は、痛みが出やすく危険だとおもわれます。
つぎは、自己評価に関する動作パターンですが、
アップするまでもう少しお待ちください。
最後に、回転をアップさせる動作パターンを提示しますが、
これもアップするまでもう少しお待ちください。
今後、我々は、E-Learning systemの開発を行っていく予定です。
選手が自分の動画と自身のニーズを入力し、それをアップロードすると
データ解析センターでその選手のニーズを満たす最適な動作パターンを導き出し、その後その動作パターンがダウンロードできる。
こんなシステムの開発を行っています。