データ解析におけるプログラミングの必要性
これまでの動作解析ではビデオカメラからの解析などで情報量が限られてきました。しかし、近年ではモーションキャプチャやIMU、AIをはじめとして膨大な量のデータを比較的簡単に取得することができます。
膨大な量のデータをひとつずつ解析していては先に進みません。多くの機器ではソフトウェア上である程度の解析をしてほしいデータを直接出してくれるものも多くあります。それでも欲しいデータが無い場合には自ら解析する必要があります。
解析する場合にはいちいち計算していたら果てしない時間がかかってしまいます。そのためプログラムによる時間短縮が必要不可欠になります。また、選手へのフィードバックを行う場合においてもプログラムを作成し即時に解析できればフィードバックまでの時間を短縮できます。
スピードスケートにおけるプログラミング
スピードスケートにおいても三次元動作解析後に膨大なデータが算出されます。三次元動作解析のみでは算出できない時間的指標などはその膨大なデータから解析していく必要があります。
私がスピードスケートのデータ解析にはMATLABを使用しています。MATLABはデータの解析や可視化、プログラミングなどを行うためのソフトウェア環境です。MATLABの主な特徴です。
- 数値計算とデータ解析:MATLABは行列演算を基本とした数値計算に強い設計になっています。また、関数や解析ツールも豊富に揃っています。
- プログラミング:MATLABはスクリプト言語であり、プログラミングが容易です。数学的アルゴリズムや複雑な計算をシンプルな形で記述することができます。
- Simulink:MATLABにツールであり、制御システムのモデリング、シミュレーションが可能です。ブロックダイアグラムを使用しているため直感的にモデル化することができます。
- 拡張性:MATLABでは豊富なツールボックスを提供しており、信号処理、画像処理、機械学習などさまざまな分野に特化した機能を追加できます。
私が行っている解析はMATLABの機能のごく一部でしかありません。プログラミングやデータアナライシスを専門にしている方からしたらお遊び程度だと思います。ぜひ専門的なプログラミングとのコラボをしてみたいと思っています。
スピードスケートにおけるMATLABの活用事例
スピードスケートでのイベントの特定やその他アウトカムを算出するまでのプログラムを一部紹介します。
スピードスケートの測定では基本的に静止からのスタートで全力滑走を行っています。スタート位置につくまでの時間、ゴールしてからデータ回収位置まで流してくる時間を削除し、余計なデータを省きます。
滑走区間の選択を行った後はストレートとコーナーにを区別していきます。スピードスケートではストレートとコーナーで動作が大きく異なるため分けて解析していく必要があります。また、この時に500mであれば最初の100m、1500mであれば最初の300mはスタートの加速区間としてメインの解析とは分けています。
ストレートとコーナーに分けたあとそれぞれで1ストローク毎に識別していきます。スピードスケートにおいても歩行と同じように関節角度などは周期的に変動しています。1周期を1ストロークとして算出します。簡単に言えば1歩ずつにわけています。このときに、ストレート・コーナーそれぞれの1歩目と最後の1歩などは動作の切り替えてつなぐ箇所なのでメインの解析とは分けています。
1ストロークまで識別できたら、5つのイベントのタイミングを特定していきます。
- Onset:ブレードが氷に接触したタイミング
- Turn back:ブレードをアウトエッジからインエッジに切り返したタイミング
- Push on:実際にpushが始まるタイミング
- Push off:pushが終わるタイミング
- Offset:ブレードが氷から離れるタイミング
IMUによるイベントの特定に関する論文を執筆していますのでご覧ください。
このほかにも学会発表などしておりますので、ご興味ある方はお問い合わせください。
イベントの特定までできれば、あとはそれぞれのタイミングでの関節角度を算出します。また、OnsetからTurn backまでの関節角度変化などの変化量についても算出します。また、角速度や各モーメントの加速度も算出可能です。
また各イベントのタイミングを組み合わせることで片脚支持時間、両脚支持時間などの時間的指標を算出することも可能です。
スピードスケートでのデータ解析やフィードバックはサイト記事にも簡単にまとめています。
まとめ
スピードスケートでは動作解析を中心にプログラミングを使うことで効率的に詳細なデータを取得することができます。プログラミングを専門でしている方からしたらお遊び程度のものですがそれでもかなり便利です。
ぜひプログラミングを専門にしている方で新たな分野に興味のある方はぜひコラボしてみたいと思っています。よろしくお願いします。
コメント