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

IoTとDeep Learningで
自宅警備員を育ててみる
1
2015/06/18
自己紹介
2
•菅井康之     
•株式会社イーグル所属
•AITCクラウドテクノロジー活用部会 サブリーダー
https://www.facebook.com/yasuyuki.sugai
よろしくお願いしまーす
※この資料の内容は、
個人の見解です
人工知能的なことは門外漢
- プロローグ -
3
理解力の乏しいわたしは、世間で
持て囃されているDeep Learningに
全く付いていけていませんでした。
4
マジムリ。。
才能ない。。
今回のテーマがAIxIoTということなので
自分の触ったことしか話せないわたしは
とりあえずなんか作ってみることにしました
5
色々やってきたけど
今回はハードル高いな。。。
今日のお話
6
今日のお話の流れ・・・
• こんなん作ってみました編 ←前振り
– 家族を認識させよう
– 在宅?留守?を認識させよう
– 留守中の訪問を認識させよう
– (おまけ)今日の天気を喋らせよう
• こんな風に作ってみました編 ←メイン
– :
7
以上、2本でお送りしまーす
今日お話しないこと・・・
• Deep LearningやIoTってなんぞや?
– わたしが説明できないので
– 時間の都合により・・・
– 数式とかも出てきません
• 何も無いのも寂しいので、過去のクラウド部会で

開催したニューラルネットワーク勉強会の資料を

(人のだけど勝手に)置いときます
8
何度も
読み返してます
http://www.slideshare.net/kzokm/ss-41622970
こんなん作ってみました編
9
人工知能=ロボットと安易に結びつけた
わたしは、IoTとDeep Learningの力を

駆使して、立派な自宅警備員を育てる
ことを決意しました
10
ロボットはロマン
育てる上で、二つのことを肝に銘じます
11
少しずつ学んでいきましょう
• 多くを求めすぎない
• 人見知りするので、他人との

コミュニケーションは諦める
今回使用したロボット
12
http://www.rapiro.com
13
http://www.rapiro.com
ロボット(Rapiro)は頭部に
Raspberry Pi2(OS:Linux)を
搭載して動作させています
ちなみに・・・
こんなん作ってみました編
①家族を認識させよう
14
自宅警備員たるもの、家族の協力が
無いと生きていけません
家族と家族以外の人を区別できるよう、
訓練します
15
基本的には全部教師ありの
学習となります
どうやって家族を識別するか?
16
• Rapiroの前面にカメラを配置し、画像撮影
• 事前に学習したモデルと画像を用いて分類
– 特定の人物の顔
– それ以外の顔
カメラ
顔の区別ができるようになったら、
玄関付近で人の顔を監視させ、
家族以外の顔を検知した場合に
メールで通報させることにしました
17
自宅警備員の本領発揮ですね
18
• 家族を検知した場合
• 家族以外を検知した場合
ど、どちらさまですか?
とりあえず通報しました 写真付きで
メール送信
おかえりなさいませ、
ご主人様💕
こんなん作ってみました編
②在宅?留守?を認識させよう
19
調子にのって顔の検知をするのですが、、
結果、煩わしい
→留守の時だけ検知するようにします
 (留守から復帰後の初回のみ)
20
• 付近を通るたびに検知される
• 知ってる人や来訪者には失礼
– お客さんを迎えたり・・・
– 配達で届けてもらったり・・・
どうやって在宅/留守を認識するか?
21
• 玄関の扉にセンサーを設置
– 加速度センサー
– 人感センサー
• センサーの値の変化から、人が外に出たのか

入って来たのかを判定
– 在宅
• まだ外に出ていない人がいる
• 外から入ってきた人がいる
– 留守
• 全員が外に出た
こんなん作ってみました編
③留守中の訪問を認識させよう
22
在宅か留守かが認識できるように
なったので、留守中の訪問を通知して
もらうようにします。
(人見知りなので、応対は無理)
ここでは、二つの違いを識別できる
ようにします
23
• マンションのエントランスからの訪問
• 玄関先まで来ている訪問
どうやって場所を判別するか?
24
• 音センサーを設置
• ブザーの鳴り方が異なるため、その違いから判定
• 結果はメールで通知
こんなん作ってみました編
④今日の天気を喋らせよう
25
在宅が分かり、かつ玄関付近に人が
来ることを検知できるようになったため、
朝の通勤時間に今日の天気を教えて
もらいます。(朝は忙しいので2倍速で)
夜や夕方に雨が降りそうな場合は、
聞かなくてもわかるよう視覚的に
教えてもらいます。
26
どうやるか?
27
• 気象庁の公開データから府県天気概況を取得
• 天気は合成音声で通知
• 視覚的な表現はRapiroのLEDの色変化で通知
RGBフルカラー
こんな風に作ってみました編
28
こんな風に作ってみました編
①家族を認識させよう
29
概要
30
• 画像の分類、識別にDeep Learning
– 画像からの特徴量抽出が最大の魅力
• Deep LearningのライブラリにはCaffeを採用
– 画像分類の分野では一番話に聞くので
– GPUでもCPUでも動作
– サンプルやドキュメントが充実
• 課題
– Caffeの動作環境の準備
– 学習用の画像データの用意
課題① Caffeの動作環境の準備
31
• Caffeのセットアップは大変と聞くけど。特にCUDA周り。
– 最近ではCaffeが動作する環境が公開されているので、

比較的楽チンに
• Docker
• AWSのAMI
• GPU環境なんて持ち合わせてないんですけど。
– CPUでも動作するけど、学習時間を考えるとGPUがオススメ
– AWSのGPUインスタンスを使おう
• GPUインスタンスってお高いんでしょ。
– スポットインスタンスで節約
– バージニア州だと、1時間$0.1くらいあれば大体いける
余談①
32
Deep Learningで
GPUの利用が急増?
(日本のみ・・・)
余談②
33
二日かけてまわしていた
パラメータチューニングが・・・
スポットインスタンスの
ご利用は計画的に・・・
ケチりすぎるのもダメ。。。
課題② 学習用の画像の用意
35
• Deep Learningでは大量の画像が必要って

聞くけど・・・
– 学習用データ超重要
– ここのデータの精度で学習結果に如実に影響が
• 今回のデータの準備は・・・
– 家族の顔写真の用意
• OpenCVで5日間に分けて一人あたり3千枚生成
• パソコンの前にいると勝手に撮影
• 流出すると変質者と思われるぐらいの量。。。

(しかも全部自分の画像。。。)
– 家族以外の顔写真
• LFWのデータを利用
LFW
(Labeled Face in the Wild)
http://vis-www.cs.umass.edu/lfw/
• 研究用に作成された、著名人がラベル付けされた画像集
– 1万枚以上の画像が収録
– 一人あたりの画像枚数は少なめ
• 今回の使い方
– ラベルは考慮しない
– 画像の質を重視してスクリーニング
– ある程度のグループに分類(機械的に+最後は人力)
– 最終的に秘伝のタレみたいな状態に。。 36
選ばれる人の基準が
よくわからん・・・
• 何を変えるとどう変わるかが全く予測できない・・
– ただの知識不足という噂も
– いくつか用意されているモデルのパラメータを参考に

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

進化的アルゴリズム勉強会の資料を

      (人のだけど勝手に)置いときます
パラメータチューニング
何度も(ry
http://www.slideshare.net/kzokm/genetic-algorithm-41617242
余談③
38
ただこれが言いたかっただけです。。。
Pythonの進化的アルゴリズムの
ライブラリも「DEAP」
deep x deap!!
• 40,000回の試行で93.04%の精度となった
– AWS g2.2xlargeインスタンスで2時間程度
– 10,000回あたりで収束?
学習結果
39
• 学習には時間がかかるけど、学習モデルを

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

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

誤判定だったり
– 過学習っぽい感じ
– LFWの画像増やすとそっちに持ってかれたり、比率も重要
学習モデルの利用
ざっくりの構成
41
• 一通りの検証を終えるまでの

AWS費用は300円位でした
画像分類用の簡単な
Webインタフェースを構築
こんな風に作ってみました編
②在宅?留守?を認識させよう
42
概要
43
• センサーデータから実環境の状況把握
– 今回は加速度センサーと人感センサーを利用
• センサーとRapiro間は無線通信
– 配置場所の制約から逃れる
– Zigbee通信で近距離無線通信
• 課題
– 入室と退室をどうやって判別するか
センサーの構成
44
人感センサー
加速度センサー
Arduino
Zigbeeモジュール
課題① 入室と退室をどうやって判別
45
• まずは測定してプロットしてみる
– 特徴や分散、相関や偏りから考える
人感センサー
加速度センサー
退室
入室
加速度センサーよりも前に人感センサーが
反応しているか否かの違いが見受けらる
46
• 二つのセンサーの値変化の関係性から、

判別ができそう
• けどそのまま判別しても面白くない、、、

IoTとDeep Learningを組み合わせてみたい
• センサーデータは時系列となる事が多いので

時系列データの波形を特徴量として。。。
数列として扱うのではなく、
グラフを画像化して画像識別で
いけるんじゃね?
センサーデータとDeep Learning
47
• Deep Learningで時系列データのグラフから

特徴量の抽出、分類を行う
– 数列から特徴量を抽出して分類するのは結構大変
• グラフの波形が同じようになるよう前処理は必要
– 間隔の均一、階差、補間、移動平均などを施したり
– 線だけでなく、面で表現することで特徴量を認識しやすく
– 部分的にデータ抽出するところにはルール化が必要になる
– 顔識別と同様に、ここの出来が悪いと結果にも影響
• 学習用データの準備
– 基は数列なので、いくらでもデータは増やせる
– ノイズを加えたり画像の水増しもお茶の子さいさい
結果、時系列データの波長形状からの
分類ができちゃいました
48
簡単に出来すぎて
なんだか怖い。。。
• 時代はグラフで如何に特徴量を

出すかに突入?
こんな風に作ってみました編
③留守中の訪問を認識させよう
49
50
玄関
エントランス
②と大体同じような
話になるので割愛
時間もないし。。。
同じ時間軸で比較
音センサーが反応している
時間の長さに違いが
見受けられる
こんな風に作ってみました編
④今日の天気を喋らせよう
51
気象庁XML用API (クラウド部会で公開中)
http://api.aitc.jp/
52
53この部分を使用
府県天気概況のXML
夕方か夜に雨が降りそうの判定
54
• ある日の天気概況
• 夕方や夜などの単語の後で、近い距離に雨を
表す単語が現れるかで判定
• IoTもDeep Learningも機械学習も

関係ないのであくまでおまけ・・・
15日は、晴れますが夕方から雲が広がり、雨や雷雨となる所があるでしょ
う。東京都では高温が予想されます。熱中症などの健康管理に注意してくだ
さい。16日は、曇りで昼過ぎ一時雨の見込みです。
デモ(時間があれば・・・)
55
まとめ(というか感想)
56
今日お話しした内容をざっくり纏めると
Deep Learningの特徴量抽出技術を
IoTでよくあるシチュエーションに
適用してみたというお話でした。
・生活動向のセンシング
・パターン検出時のアラート
57
ロボットということもあってか
本当に賢くなっているような
感覚が味わえました(小並感)
58
そしてあらためて・・・
59
人間の特徴量抽出力って半端ない
60
fin...
61

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