iotシステムとディープラーニングの適用実証ossforum.jp/jossfiles/ss6_iot適用・検証報告.pdf ·...

Post on 22-Mar-2018

268 Views

Category:

Documents

14 Downloads

Preview:

Click to see full reader

TRANSCRIPT

IoTシステムとディープラーニングの適用実証~Rubyを使用したIoTシステムの拡張事例検証~

2017年2月

日本OSS推進フォーラム アプリケーション部会

(株)エルエスアイ開発研究所

江洲 信也

Copyright 2017 Japan OSS Promotion Forum

本テーマの活動目的と内容

OSS推進フォーラム アプリケーション部会では、Ruby/mrubyのIoTへの適用試行の研究を行っております。今年度は従来のIoTシステムにディープラーニングによる画像認識を付与し、Rubyの適用範囲の拡大をサンプル作成により検証しました。

IoT

ディープラーニング

Copyright 2017 Japan OSS Promotion Forum

はじめに

1

活動チームメンバー紹介(敬称略)日本OSS推進フォーラム アプリケーション部会

Copyright 2017 Japan OSS Promotion Forum

はじめに

2

1.IoTの現状

2.適用事例

3.Ruby適用について

4.まとめ

5.最後に

Copyright 2017 Japan OSS Promotion Forum

目次

3

1.1 IoTとは?

1.2 ディープラーニングとは?

Copyright 2017 Japan OSS Promotion Forum

1.IoTの現状

4

Copyright 2017 Japan OSS Promotion Forum

1.1 IoTとは?

5

アイ‐オー‐ティー【IoT】[Internet of Things]

《Internet of Things》あらゆる物がインターネットを通じてつながることによって実現する新たなサービス、ビジネスモデル、またはそれを可能とする要素技術の総称。従来のパソコン、サーバー、携帯電話、スマートホンのほか、ICタグ、ユビキタス、組み込みシステム、各種センサーや送受信装置などが相互に情報をやりとりできるようになり、新たなネットワーク社会が実現すると期待されている。物のインターネット。インターネットオブシングス。 (デジタル大辞泉)

PCや情報端末だけでなく、全てのモノがネットワーク接続

Copyright 2017 Japan OSS Promotion Forum6

1.2 ディープラーニングとは?

ディープ‐ラーニング(deep learning)

コンピューターによる機械学習で、人間の脳神経回路を模したニューラルネットワークを多層的にすることで、コンピューター自らがデータに含まれる潜在的な特徴をとらえ、より正確で効率的な判断を実現させる技術や手法。音声認識と自然言語処理を組み合わせた音声アシスタントや画像認識など、パターン認識の分野で実用化されている。深層学習。(デジタル大辞泉)

複雑な認識処理をコンピュータ自身による学習で実現

2.1 システム概要

2.2 システム機能

2.3 全体構成

2.4 ソフトウェア構成

2.5 Rubyの実装

Copyright 2017 Japan OSS Promotion Forum

2.適用事例

7

Copyright 2017 Japan OSS Promotion Forum

2.1 システム概要

従来のIoTシステムサンプル

インターネット

リビングルームでの気温の監視エアコンの遠隔制御

書斎にて。。。リビングルームの気温確認エアコンの遠隔制御

クラウドにて。。。リビングルームの気温管理エアコンの遠隔制御

外出先にて。。。リビングルームの異常気温通知エアコンの遠隔制御

センサーゲートウェイサーバ

モバイル端末(パソコン) クラウド

モバイル端末

8

Copyright 2017 Japan OSS Promotion Forum

2.1 システム概要

ディープラーニングとの連携サンプル

インターネット

インタフォンカメラ撮影人用ドアの扉操作ペット用ドアの扉操作

ディープラーニングによる画像識別ペット用ドアの開錠指示

外出先にて。。。インタフォン画像の確認人用ドアの開錠指示

センサーゲートウェイサーバ

クラウド

モバイル端末

9

従来システムを拡張する

Copyright 2017 Japan OSS Promotion Forum

インタフォンカメラ撮影

来客、ペットの画像撮影

ディープラーニングによる画像識別

撮影された画像が人か犬・猫かを判定

鍵の遠隔制御

ペット用の扉はクラウドの指示により操作

人用の扉はモバイル端末の指示により操作

2.2 システム機能

10

Copyright 2017 Japan OSS Promotion Forum

利用シーンシステム例の構成

2.3 全体構成

mruby

RubyRubyMotion

Ruby

ゲートウェイサーバ

扇風機

ON

モバイル端末

クラウドクラウド

「BizVision PLUS Public」

11

扉操作を追加 ディープラーニングによる画像認識処理を追加

カメラ撮影処理を追加

扉開錠指示を追加

Copyright 2017 Japan OSS Promotion Forum

2.4 ソフトウェア構成

クラウド

センサー ディープラーニング

ゲートウェイ

12

Copyright 2017 Japan OSS Promotion Forum

全体シーケンス

2.5 Rubyの実装

送受信/要求は非同期に発生

13

3.1 ソース公開について

3.2 カメラ取り込み部作成

3.3 ディープラーニング部分作成

Copyright 2017 Japan OSS Promotion Forum

3.Ruby適用について

14

Copyright 2017 Japan OSS Promotion Forum

Githubにて公開

https://github.com/ossforumjp-app-IoT

15

Copyright 2017 Japan OSS Promotion Forum

3.2 カメラ取り込み部作成

16

カメラ取り込み部作成の流れ

方針検討

実装検討

実装・デバッグ

Copyright 2017 Japan OSS Promotion Forum

3.2 カメラ取り込み部作成

17

方針検討

カメラ撮影に必要なスペック

画像認識にはそれなりに大きな画像が必要

組み込み向けの小さなマイコンではJPEGエンコーダIC等

大幅な改修(コスト)が必要

→比較的処理に余裕のあるRaspberry Piを使用

カメラ撮影に必要なソフトウエア

Rubyにはカメラ画像を操作するためのGemが存在する( https://rubygems.org/gems/hornetseye-

v4l2/versions/1.0.7 )

→Gemを利用して開発

Copyright 2017 Japan OSS Promotion Forum

3.2 カメラ取り込み部作成

18

実装検討

Gemの検証

PCで検証用の雛形を作成し、Raspberry Piへ移植

PCでは動いたスクリプトがRaspberry Piでは動かない!!!

→外部コマンド(fswebcam)を利用する方式に変更

Raspberry Piは小型PCでもあるため、豊富なソフトウエア資産が使えるため方針転換が容易

Copyright 2017 Japan OSS Promotion Forum

3.2 カメラ取り込み部作成

19

実装・デバッグ

外部コマンドの検証

システム結合の確認

検証時に正しく撮影できていたカメラからの画像が、ぼやけてしまう不具合が発生

→外部プログラム等を疑って調整するも改善せず

ダメ元でカメラのレンズを操作したら

正しく撮影できた

物理層は最初に疑おう

Copyright 2017 Japan OSS Promotion Forum

3.2 カメラ取り込み部作成

20

実装・デバッグ

スイッチ操作の追加

Raspberry Pi にはGPIO操作のGem( pi_piper)が存在する

PCでは動作しないので、Raspberry Pi上で直接開発を実施

→Raspberry PiはストレージがSDのため、

なるべくPCで編集した方が安心です

Copyright 2017 Japan OSS Promotion Forum

3.3 ディープラーニング部分作成

21

ディープラーニング部分作成部分の流れ

調査・検討

学習

判定

Copyright 2017 Japan OSS Promotion Forum

3.3 ディープラーニング部分作成

22

調査・検討

AIサービス

Azure: Cognitive Services

× 独自の画像分類機は作成できない

× 無料の使用期限は1か月

Bluemix: Watoson

○ 独自の画像分類機を作成できる

× 無料の使用期限は1か月

簡単で便利だが、お金がかかる。従量課金制。

→フレームワークの利用を検討

Copyright 2017 Japan OSS Promotion Forum

3.3 ディープラーニング部分作成

23

調査・検討

ディープラーニングフレームワーク

Caffe(C/C++, Shell script, Python)

画像のディープラーニング界でとても有名

学習済みのモデルcaffemodelが配布されている

学習時間の短縮、精度の上昇

Chainer(Python)

インストールが簡単

画像以外のディープラーニングも可能

ruby_brain(Ruby)

存在しているが・・・

利用者はとても少ない!!!

Copyright 2017 Japan OSS Promotion Forum

3.3 ディープラーニング部分作成

24

学習

Caffeを使用

データを集めたら、シェルスクリプトに少し手を加え待つだけです

画像4000枚、ループ数1000

下記のディープニューラルネットワークで学習

CPU環境で約3週間

→GPU(Nvidia製)がある方はGPUを使いましょう

Copyright 2017 Japan OSS Promotion Forum

3.3 ディープラーニング部分作成

25

判定

Chainerを使用

環境構築が簡単

flaskを使用

軽量なwebフレームワーク: sinatraみたなもの

gunicornを使用

WSGIサーバ: unicornみたいなもの

ネコ : 0.86

イヌ : 0.10

ウサギ : 0.03

リス : 0.01

この画像は何? ネコです

判定

4.1 今後の展開

Copyright 2017 Japan OSS Promotion Forum

4.まとめ

26

Copyright 2017 Japan OSS Promotion Forum

4.1 今後の展開

27

最新トレンドの導入

AI等をサーバサイドに導入

組み込み部分の

mruby派生プロジェクト(mruby/c)をセンサー部分に導入

ruby適用範囲の拡大

カメラ取り込み部、ディープラーニングでのruby適用範囲拡大

デモの拡張を通じて、ruby/OSSをAI/IoT分野へ拡大する

Copyright 2017 Japan OSS Promotion Forum 28

top related