61
AITCオープンラボ 第5回IoT勉強会~人工知能xIoT~ IoTとDeep Learningで 自宅警備員を育ててみる 1 2015/06/18

IoTとDeep Learningで自宅警備員を育ててみる

Embed Size (px)

Citation preview

Page 1: IoTとDeep Learningで自宅警備員を育ててみる

AITCオープンラボ 第5回IoT勉強会~人工知能xIoT~

IoTとDeep Learningで 自宅警備員を育ててみる

1

2015/06/18

Page 2: IoTとDeep Learningで自宅警備員を育ててみる

自己紹介

2

•菅井康之     

•株式会社イーグル所属

• AITCクラウドテクノロジー活用部会 サブリーダー

https://www.facebook.com/yasuyuki.sugai

よろしくお願いしまーす ※この資料の内容は、

個人の見解です

人工知能的なことは門外漢

Page 3: IoTとDeep Learningで自宅警備員を育ててみる

- プロローグ -

3

Page 4: IoTとDeep Learningで自宅警備員を育ててみる

理解力の乏しいわたしは、世間で 持て囃されているDeep Learningに 全く付いていけていませんでした。

4

マジムリ。。 才能ない。。

Page 5: IoTとDeep Learningで自宅警備員を育ててみる

今回のテーマがAIxIoTということなので 自分の触ったことしか話せないわたしは とりあえずなんか作ってみることにしました

5

色々やってきたけど 今回はハードル高いな。。。

Page 6: IoTとDeep Learningで自宅警備員を育ててみる

今日のお話

6

Page 7: IoTとDeep Learningで自宅警備員を育ててみる

今日のお話の流れ・・・

• こんなん作ってみました編 ←前振り – 家族を認識させよう – 在宅?留守?を認識させよう – 留守中の訪問を認識させよう – (おまけ)今日の天気を喋らせよう

• こんな風に作ってみました編 ←メイン – :

7

以上、2本でお送りしまーす

Page 8: IoTとDeep Learningで自宅警備員を育ててみる

今日お話しないこと・・・

• Deep LearningやIoTってなんぞや? – わたしが説明できないので – 時間の都合により・・・ – 数式とかも出てきません

• 何も無いのも寂しいので、過去のクラウド部会で開催したニューラルネットワーク勉強会の資料を(人のだけど勝手に)置いときます

8

何度も 読み返してます

http://www.slideshare.net/kzokm/ss-41622970

Page 9: IoTとDeep Learningで自宅警備員を育ててみる

こんなん作ってみました編

9

Page 10: IoTとDeep Learningで自宅警備員を育ててみる

人工知能=ロボットと安易に結びつけたわたしは、IoTとDeep Learningの力を駆使して、立派な自宅警備員を育てることを決意しました

10

ロボットはロマン

Page 11: IoTとDeep Learningで自宅警備員を育ててみる

育てる上で、二つのことを肝に銘じます

11

少しずつ学んでいきましょう

• 多くを求めすぎない • 人見知りするので、他人との

コミュニケーションは諦める

Page 12: IoTとDeep Learningで自宅警備員を育ててみる

今回使用したロボット

12

http://www.rapiro.com

Page 13: IoTとDeep Learningで自宅警備員を育ててみる

13http://www.rapiro.com

ロボット(Rapiro)は頭部に Raspberry Pi2(OS:Linux)を 搭載して動作させています

ちなみに・・・

Page 14: IoTとDeep Learningで自宅警備員を育ててみる

こんなん作ってみました編 ①家族を認識させよう

14

Page 15: IoTとDeep Learningで自宅警備員を育ててみる

自宅警備員たるもの、家族の協力が無いと生きていけません 家族と家族以外の人を区別できるよう、訓練します

15

基本的には全部教師ありの 学習となります

Page 16: IoTとDeep Learningで自宅警備員を育ててみる

どうやって家族を識別するか?

16

• Rapiroの前面にカメラを配置し、画像撮影 • 事前に学習したモデルと画像を用いて分類 – 特定の人物の顔 – それ以外の顔

カメラ

Page 17: IoTとDeep Learningで自宅警備員を育ててみる

顔の区別ができるようになったら、 玄関付近で人の顔を監視させ、 家族以外の顔を検知した場合に メールで通報させることにしました

17

自宅警備員の本領発揮ですね

Page 18: IoTとDeep Learningで自宅警備員を育ててみる

18

• 家族を検知した場合

• 家族以外を検知した場合

ど、どちらさまですか? とりあえず通報しました 写真付きで

メール送信

おかえりなさいませ、 ご主人様💕

Page 19: IoTとDeep Learningで自宅警備員を育ててみる

こんなん作ってみました編 ②在宅?留守?を認識させよう

19

Page 20: IoTとDeep Learningで自宅警備員を育ててみる

調子にのって顔の検知をするのですが、、

結果、煩わしい →留守の時だけ検知するようにします  (留守から復帰後の初回のみ)

20

• 付近を通るたびに検知される • 知ってる人や来訪者には失礼 – お客さんを迎えたり・・・ – 配達で届けてもらったり・・・

Page 21: IoTとDeep Learningで自宅警備員を育ててみる

どうやって在宅/留守を認識するか?

21

• 玄関の扉にセンサーを設置 – 加速度センサー – 人感センサー

• センサーの値の変化から、人が外に出たのか入って来たのかを判定 – 在宅 • まだ外に出ていない人がいる

• 外から入ってきた人がいる

– 留守 • 全員が外に出た

Page 22: IoTとDeep Learningで自宅警備員を育ててみる

こんなん作ってみました編 ③留守中の訪問を認識させよう

22

Page 23: IoTとDeep Learningで自宅警備員を育ててみる

在宅か留守かが認識できるように なったので、留守中の訪問を通知して もらうようにします。 (人見知りなので、応対は無理)

ここでは、二つの違いを識別できる ようにします

23

• マンションのエントランスからの訪問 • 玄関先まで来ている訪問

Page 24: IoTとDeep Learningで自宅警備員を育ててみる

どうやって場所を判別するか?

24

• 音センサーを設置 • ブザーの鳴り方が異なるため、その違いから判定 • 結果はメールで通知

Page 25: IoTとDeep Learningで自宅警備員を育ててみる

こんなん作ってみました編 ④今日の天気を喋らせよう

25

Page 26: IoTとDeep Learningで自宅警備員を育ててみる

在宅が分かり、かつ玄関付近に人が 来ることを検知できるようになったため、 朝の通勤時間に今日の天気を教えてもらいます。(朝は忙しいので2倍速で)

夜や夕方に雨が降りそうな場合は、 聞かなくてもわかるよう視覚的に 教えてもらいます。

26

Page 27: IoTとDeep Learningで自宅警備員を育ててみる

どうやるか?

27

• 気象庁の公開データから府県天気概況を取得 • 天気は合成音声で通知 • 視覚的な表現はRapiroのLEDの色変化で通知

RGBフルカラー

Page 28: IoTとDeep Learningで自宅警備員を育ててみる

こんな風に作ってみました編

28

Page 29: IoTとDeep Learningで自宅警備員を育ててみる

こんな風に作ってみました編 ①家族を認識させよう

29

Page 30: IoTとDeep Learningで自宅警備員を育ててみる

概要

30

• 画像の分類、識別にDeep Learning – 画像からの特徴量抽出が最大の魅力

• Deep LearningのライブラリにはCaffeを採用 – 画像分類の分野では一番話に聞くので – GPUでもCPUでも動作 – サンプルやドキュメントが充実

• 課題 – Caffeの動作環境の準備 – 学習用の画像データの用意

Page 31: IoTとDeep Learningで自宅警備員を育ててみる

課題① Caffeの動作環境の準備

31

• Caffeのセットアップは大変と聞くけど。特にCUDA周り。 – 最近ではCaffeが動作する環境が公開されているので、

比較的楽チンに • Docker • AWSのAMI

• GPU環境なんて持ち合わせてないんですけど。 – CPUでも動作するけど、学習時間を考えるとGPUがオススメ – AWSのGPUインスタンスを使おう

• GPUインスタンスってお高いんでしょ。 – スポットインスタンスで節約 – バージニア州だと、1時間$0.1くらいあれば大体いける

Page 32: IoTとDeep Learningで自宅警備員を育ててみる

余談①

32

Deep Learningで GPUの利用が急増?

(日本のみ・・・)

Page 33: IoTとDeep Learningで自宅警備員を育ててみる

余談②

33

二日かけてまわしていた パラメータチューニングが・・・

Page 34: IoTとDeep Learningで自宅警備員を育ててみる

スポットインスタンスの ご利用は計画的に・・・

ケチりすぎるのもダメ。。。

Page 35: IoTとDeep Learningで自宅警備員を育ててみる

課題② 学習用の画像の用意

35

• Deep Learningでは大量の画像が必要って聞くけど・・・ – 学習用データ超重要 – ここのデータの精度で学習結果に如実に影響が

• 今回のデータの準備は・・・ – 家族の顔写真の用意 • OpenCVで5日間に分けて一人あたり3千枚生成 • パソコンの前にいると勝手に撮影 • 流出すると変質者と思われるぐらいの量。。。

(しかも全部自分の画像。。。) – 家族以外の顔写真 • LFWのデータを利用

Page 36: IoTとDeep Learningで自宅警備員を育ててみる

LFW (Labeled Face in the Wild)

http://vis-www.cs.umass.edu/lfw/

• 研究用に作成された、著名人がラベル付けされた画像集 – 1万枚以上の画像が収録 – 一人あたりの画像枚数は少なめ

• 今回の使い方 – ラベルは考慮しない – 画像の質を重視してスクリーニング – ある程度のグループに分類(機械的に+最後は人力) – 最終的に秘伝のタレみたいな状態に。。 36

選ばれる人の基準が よくわからん・・・

Page 37: IoTとDeep Learningで自宅警備員を育ててみる

• 何を変えるとどう変わるかが全く予測できない・・ – ただの知識不足という噂も – いくつか用意されているモデルのパラメータを参考に

• 進化的アルゴリズム – こちらも過去のクラウド部会で開催した

進化的アルゴリズム勉強会の資料を      (人のだけど勝手に)置いときます

パラメータチューニング

何度も(ry

http://www.slideshare.net/kzokm/genetic-algorithm-41617242

Page 38: IoTとDeep Learningで自宅警備員を育ててみる

余談③

38

ただこれが言いたかっただけです。。。

Pythonの進化的アルゴリズムの ライブラリも「DEAP」

deep x deap!!

Page 39: IoTとDeep Learningで自宅警備員を育ててみる

• 40,000回の試行で93.04%の精度となった – AWS g2.2xlargeインスタンスで2時間程度 – 10,000回あたりで収束?

学習結果

39

Page 40: IoTとDeep Learningで自宅警備員を育ててみる

• 学習には時間がかかるけど、学習モデルを使った評価は早い – CPUで十分な速度(CPUでも一枚の画像を数秒で分類) – GPUで学習モデルを作成し、評価はCPUで行うと

お財布にも優しい

• 分類の精度は学習用データによるところが大きい – テスト精度が99%まで行っても、新しいデータが軒並み

誤判定だったり – 過学習っぽい感じ – LFWの画像増やすとそっちに持ってかれたり、比率も重要

学習モデルの利用

Page 41: IoTとDeep Learningで自宅警備員を育ててみる

ざっくりの構成

41

• 一通りの検証を終えるまでのAWS費用は300円位でした

画像分類用の簡単な Webインタフェースを構築

Page 42: IoTとDeep Learningで自宅警備員を育ててみる

こんな風に作ってみました編 ②在宅?留守?を認識させよう

42

Page 43: IoTとDeep Learningで自宅警備員を育ててみる

概要

43

• センサーデータから実環境の状況把握 – 今回は加速度センサーと人感センサーを利用

• センサーとRapiro間は無線通信 – 配置場所の制約から逃れる – Zigbee通信で近距離無線通信

• 課題 – 入室と退室をどうやって判別するか

Page 44: IoTとDeep Learningで自宅警備員を育ててみる

センサーの構成

44

人感センサー

加速度センサー

ArduinoZigbeeモジュール

Page 45: IoTとDeep Learningで自宅警備員を育ててみる

課題① 入室と退室をどうやって判別

45

• まずは測定してプロットしてみる – 特徴や分散、相関や偏りから考える

人感センサー

加速度センサー

退室

入室

加速度センサーよりも前に人感センサーが反応しているか否かの違いが見受けらる

Page 46: IoTとDeep Learningで自宅警備員を育ててみる

46

• 二つのセンサーの値変化の関係性から、判別ができそう

• けどそのまま判別しても面白くない、、、IoTとDeep Learningを組み合わせてみたい • センサーデータは時系列となる事が多いので

時系列データの波形を特徴量として。。。

数列として扱うのではなく、 グラフを画像化して画像識別で

いけるんじゃね?

Page 47: IoTとDeep Learningで自宅警備員を育ててみる

センサーデータとDeep Learning

47

• Deep Learningで時系列データのグラフから特徴量の抽出、分類を行う – 数列から特徴量を抽出して分類するのは結構大変

• グラフの波形が同じようになるよう前処理は必要 – 間隔の均一、階差、補間、移動平均などを施したり – 線だけでなく、面で表現することで特徴量を認識しやすく – 部分的にデータ抽出するところにはルール化が必要になる – 顔識別と同様に、ここの出来が悪いと結果にも影響

• 学習用データの準備 – 基は数列なので、いくらでもデータは増やせる – ノイズを加えたり画像の水増しもお茶の子さいさい

Page 48: IoTとDeep Learningで自宅警備員を育ててみる

結果、時系列データの波長形状からの 分類ができちゃいました

48

簡単に出来すぎて なんだか怖い。。。

• 時代はグラフで如何に特徴量を出すかに突入?

Page 49: IoTとDeep Learningで自宅警備員を育ててみる

こんな風に作ってみました編 ③留守中の訪問を認識させよう

49

Page 50: IoTとDeep Learningで自宅警備員を育ててみる

50

玄関

エントランス

②と大体同じような 話になるので割愛 時間もないし。。。

同じ時間軸で比較 音センサーが反応している 時間の長さに違いが 見受けられる

Page 51: IoTとDeep Learningで自宅警備員を育ててみる

こんな風に作ってみました編 ④今日の天気を喋らせよう

51

Page 52: IoTとDeep Learningで自宅警備員を育ててみる

気象庁XML用API (クラウド部会で公開中)

http://api.aitc.jp/ 52

Page 53: IoTとDeep Learningで自宅警備員を育ててみる

53この部分を使用

府県天気概況のXML

Page 54: IoTとDeep Learningで自宅警備員を育ててみる

夕方か夜に雨が降りそうの判定

54

• ある日の天気概況

• 夕方や夜などの単語の後で、近い距離に雨を表す単語が現れるかで判定

• IoTもDeep Learningも機械学習も関係ないのであくまでおまけ・・・

15日は、晴れますが夕方から雲が広がり、雨や雷雨となる所があるでしょう。東京都では高温が予想されます。熱中症などの健康管理に注意してください。16日は、曇りで昼過ぎ一時雨の見込みです。

Page 55: IoTとDeep Learningで自宅警備員を育ててみる

デモ(時間があれば・・・)

55

Page 56: IoTとDeep Learningで自宅警備員を育ててみる

まとめ(というか感想)

56

Page 57: IoTとDeep Learningで自宅警備員を育ててみる

今日お話しした内容をざっくり纏めると Deep Learningの特徴量抽出技術を IoTでよくあるシチュエーションに 適用してみたというお話でした。

・生活動向のセンシング ・パターン検出時のアラート

57

Page 58: IoTとDeep Learningで自宅警備員を育ててみる

ロボットということもあってか 本当に賢くなっているような

感覚が味わえました(小並感)

58

Page 59: IoTとDeep Learningで自宅警備員を育ててみる

そしてあらためて・・・

59

Page 60: IoTとDeep Learningで自宅警備員を育ててみる

人間の特徴量抽出力って半端ない

60

Page 61: IoTとDeep Learningで自宅警備員を育ててみる

fin...

61