スマホで加速度、角速度を計測
- 運動中のセンサー特徴量を記録
- データとメタ情報を記録
- 機械学習用の教師データセット作成に
※ パソコンでは動作しません
対応スマホ、ブラウザ
iOS、Androidを搭載したスマートフォンのモバイル版のSafari、Chromeで動作します。
※その他のブラウザで動かす場合はDeviceMotion APIに対応している必要があります。
アプリの機能
- 加速度、角速度データを特徴量として記録します。
- 算出可能な特徴量は平均値、分散、ゼロ交差率です。X、Y、Z軸と合成(ノルム)の4次元の特徴量計測ができます。
- 窓幅0.5~5秒の窓計測により特徴量を記録します。スライド間隔は窓幅の1/2時間。
- 20個(固定)の特徴量を計測すると自動的に停止します。計測時間は窓幅により5~50秒となります。
- 計測ごとに最大8種類のタグ(メタ情報)を付けられます。
- 計測データはJSONファイルで保存できます。
操作方法
アプリの起動
スマートフォンでSensorRecのページにアクセスするとアプリ画面が表示されます。 ブラウザ内で「ホーム画面に追加」するとWebアプリとして利用できます。
iPhoneの場合は初回アクセス時に「センサーアクセス許可」ボタンが表示されるので、ボタンを押し内蔵センサーへのアクセスを許可してください(Androidは不要)。
計測方法
画面右上に緑と赤で表示される縦棒がセンサー状態を示すインジケータです。スマートフォンを動かしたときに表示が変化すれば正常にセンサーを計測できています。
画面上部 中央の「記録開始」ボタンを押すと、カウントダウン音が鳴り2秒後に計測が開始されます。20個の特徴量が計測されると自動的に停止します(5~50秒後)。
1回の計測が終わったら、画面中段にあるタグ入力ボタンで計測データにタグ(メタ情報)を付加します。タグが付いた計測データ数がタグ入力ボタンの下に一覧表示されます。
必要なデータ数が揃うまで「計測+タグ付け」を繰り返します。データセットが出来上がったら「ダウンロード」ボタンを押し、スマートフォン内にデータセットファイル(JSON形式)を保存します。
データセットファイル
データセットは、以下のオブジェクトを含むJSON形式で記述されています。
- size・・・窓幅(秒)。
- feature・・・対象とした特徴量。
- mean_acc_[x, y, z, norm]
- var_acc_[x, y, z, norm]
- zrc_acc_[x, y, z]
- mean_gyro_[x, y, z, norm]
- var_gyro_[x, y, z, norm]
- zrc_gyro_[x, y, z]
- label・・・イベントタグ一覧。
- meas・・・計測データ(特徴量)配列。
- tag・・・各計測データのイベントタグ(メタ情報)。labelの番号で記録。
データ利用
機械学習の教師データセット
計測したデータは機械学習の教師データセットとして利用できます。SensorRecの計測データとJavaScriptの機械学習ライブラリを利用することで動作識別AIをスマートフォン上で作ることもできます。
SensorRecで作成したデータセットを利用する「ランダムフォレスト」アルゴリズムを使った歩行を検出するデモプログラムを公開しています(PCでは動作しません)。
iPhoneの場合は「センサーへのアクセス許可」ボタンが表示されるので許可をしてください。画面上部にXYZのセンサー値が表示されれば計測可能です。「開始」ボタンを押すと識別が実行されます。「終了」ボタンで停止します。
身体運動のセンサー計測
身体運動、スポーツ動作で計測されるセンサーデータは以下のような解釈ができます。運動の良し悪しを評価するような機械学習をする場合には、適切なセンサーを選択したり、動作の特徴をとらえやすい部位にスマホを装着するなど計測方法にも工夫が必要です。