LoginSignup
7
6

More than 5 years have passed since last update.

スマートホームでの行動認識をやってみる

Last updated at Posted at 2017-03-29

概要

スマートホームのセンサデータから日常行動認識をやってみます.
今回対象とするセンサは,ドアやいろいろな家具,器具に取り付けられた動きセンサで,そこから取得されるオンオフデータから行動のラベルを推定します.

Yala氏の手法を参考にしました.
https://hal.archives-ouvertes.fr/hal-01202168/file/Inista_Yala_Session5B.pdf

コードも拙いですが,公開しました.(何かしら問題があればコメントなどいただけると幸いです.)
jupyterを使ってpython3で書いてます.pandas,sklearnなどのライブラリを使っております.
https://github.com/LittleWat/ActivityRecognitionInSmartHome

データセット

ワシントン州大学で取得されたデータセット( http://ailab.wsu.edu/casas/datasets/ )をありがたく使わせていただきます.
ここの研究室(?),活動が2014年で止まっているようで残念です.

今回はこのうち,17番のArubaデータセットを用います.

Arubaデータセットのセンサ配置

スクリーンショット 2017-03-26 17.25.17.png

Raw Data

スクリーンショット 2017-03-26 17.22.09.png

行動認識のパイプライン

スクリーンショット 2017-03-29 16.10.32.png

DataSegmentation

スクリーンショット 2017-03-29 17.09.36.png

実際は,上手のように,activityごとに,時間幅やセンサ数幅など異なっており,うまく扱う必要がありそうですが,
今回は,単純にRaw Dataの一定数行(10行)ごとに(センサ数幅で)データを切り分けました.

Feature Extraction

Feature Engineeringをするわけですが,今回はYala氏の手法のうちベースラインの方法と最終状態のON/OFFを特徴量とする手法の2つのみ試してみました.

ベースラインの手法

スクリーンショット 2017-03-27 10.53.01.png

最終状態を特徴量とする手法

スクリーンショット 2017-03-27 10.53.56.png

時刻がスカラー値になっておりますが,どうスカラー値にencodigするか不明だったため,1日24時間ということで24次元のone-hot-vectorにencodingしました.

結果

ベースラインの手法(Accuracy: 0.913)

スクリーンショット 2017-03-27 11.08.09.png

最終状態を特徴量とする手法(Accuracy: 0.920)

スクリーンショット 2017-03-27 11.07.45.png

どちらも特にパラメータチューニングなどやったわけではないですが,高い精度が出ました.
簡単すぎる問題設定だったようです,

まとめ

Yala氏の手法を実装して,それなりの結果が出ることを確認しました.

jupyter + pandas + seaborn

の組み合わせはやはり便利ですね^^

References

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6