Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20180209 DroidKaigi2018 ActivityRecognition sim...

KAKKA
February 09, 2018

20180209 DroidKaigi2018 ActivityRecognition simulation

近年のAndroidデバイスには多くのセンサーが組み込まれるようになった。Googleはこれらのセンサーを活用してActivityRecognitionというユーザーの行動認識APIをAndroidフレームワークで提供した。
ユーザーの行動を認識することによって、アプリケーションプロバイダは適切なタイミングで適切な内容のコンテンツを提示することができるようになる。
例えば車を運転中であれば、車やドライブに関する情報である。

このActivityRecognitionを実用的に活用するためには、その認識精度が非常に重要になる。誤認識が発生するとユーザー離反の原因となり得る。また、ActivityRecognitionのエンジン自体はブラックボックスとなっているため、改善が難しい。

このセッションではActivityRecognitionの基本的な利用方法を説明し、現状の認識精度を調べた結果を報告する。さらに、複数のセンサーデータをシミュレーションし、精度向上のヒントとなる情報を探る。最後に実用的なActivityRecognitionの利用方法を説明する。

KAKKA

February 09, 2018
Tweet

More Decks by KAKKA

Other Decks in Technology

Transcript

  1. シミュレーション手順 どのセンサーを使うか TYPE_ACCELEROMETER:加速度。使いそう。 TYPE_AMBIENT_TEMPERATURE:気温。使わなそう。 TYPE_GRAVITY:重力。ACCELEROMETERで十分そう。 TYPE_GYROSCOPE:角速度。微妙。 TYPE_LIGHT:照度。ポケットに入れてるときも同じ結果だから使わなそう。 TYPE_LINEAR_ACCELERATION:Monitoring acceleration along

    a single axis. 使わなそう。 TYPE_MAGNETIC_FIELD:磁場。関係なさそう。 TYPE_ORIENTATION:ACCELEROMETERやGYROSCOPEで十分そう。 TYPE_PRESSURE:気圧。使わなそう。ハイキングみたいな Activityなら使うのか? TYPE_PROXIMITY:近接。ポケット入れてる時も同じ結果だから使わなそう。 TYPE_RELATIVE_HUMIDITY:湿度。雨の日のランニングとか検出するには必要?今不要。 TYPE_ROTATION_VECTOR:TILTINGには使うか?一旦使わない。 TYPE_TEMPERATURE:デバイス温度。使わなそう
  2. シミュレーション手順 どのセンサーを使うか TYPE_ACCELEROMETER TYPE_AMBIENT_TEMPERATURE TYPE_GRAVITY TYPE_GYROSCOPE TYPE_LIGHT TYPE_LINEAR_ACCELERATION TYPE_MAGNETIC_FIELD TYPE_ORIENTATION

    TYPE_PRESSURE TYPE_PROXIMITY TYPE_RELATIVE_HUMIDITY TYPE_ROTATION_VECTOR TYPE_TEMPERATURE とりあえずこの2つを使ってみて、精度悪そうなら他のセンサーも増やしてみる 精度良さそうならさらにセンサーを絞ってみる
  3. シミュレーション ON_FOOT Activity正解率 - 100% 100% 平均信頼度 96.83 97.17 97.33

    実機 センサー2つ accelerationのみ accelerationだけで完璧な精度
  4. シミュレーション結果から言えること • ActivityRecognitionにおいて、センサーはほぼaccelerationを使っている ◦ 他のActivity(TILTING, ON_BICYCLE, WALKING, RUNNING)は、追加検証して確かめる必要が ある •

    位置情報やその他のセンサーの影響は少ない ◦ エミュレータに位置情報を与えていないので、位置情報を ONにしていたら精度があがるとは考え にくい • ActivityRecognitionは、accelerationのデータから予測できる実際のユーザーの行動のヒント と捉えるべき ◦ 他のセンサーを組み合わせると、精度の高いユーザー行動検出が可能
  5. ActivityRecognitionを実用化するために 歩きスマホの状態を検出 ActivityRecognitionでON_FOOTを検出 歩いているか スマホをリズミカルに振っていて ポケットに入っているかいないか 画面を見ているか見ていないか proximityセンサで離れていることを確認 歩いていて ポケットに入っていなくて

    画面を見ているか見ていないか gravity(orientation)を確認 歩いていて ポケットに入っていなくて 画面を見ている 位置情報でスピードをチェック 歩いていて ポケットに入っているかいないか 画面を見ているか見ていないか