iotにおけるmatlabの活用 ~信号処理・データ解析・ · pdf file3 demo:...

Post on 07-Feb-2018

261 Views

Category:

Documents

11 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1© 2015 The MathWorks, Inc.

IoTにおけるMATLABの活用~信号処理・データ解析・データアグリゲーション~

MathWorks Japan

アプリケーションエンジニアリング部 通信・信号処理

竹本佳充

2

本日のトラックの流れ

最適化

機械学習

データ解析

本セッション

3

demo: スマートフォンによるセンサーデータ取得

エッジ検出

オブジェクト追尾

音声信号モニタリング

4

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

5

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

6

IoT 時代のセンサーデータ技術

インフラ・プラント設備

ヘルスモニタリング プロセス監視

自動車・航空宇宙

テレマティクス、ヘルスモニタリング 走行安全・ADAS

ウェアラブル・メディカル

バイタルサインモニター 在宅ケア・遠隔医療

気象、電力、災害予測 電力需要予測(EMS、電力取引)

気象・環境モニタリング

7

• 冷暖房、換気システム向けクラウドベースのリアルタイム・アナリティクス

• 気象データ、電力消費量を元に、機械学習、最適化• ビルの電力消費量を15-20%削減

http://www.mathworks.com/tagteam/82631_92267v00_BuildingIQ_UserStory_final.pdf

• 喘息の発生及び、COPD(慢性閉塞性肺疾患) 検知

• スマートフォン側の処理と、クラウド処理の組み合わせによる診断

http://www.mathworks.com/tagteam/84870_92152v01_iSonea_UserStory_2015.pdf

IoT 時代のセンサーデータ技術:事例

ウェアラブル・メディカル

インフラ・プラント設備

• 社内ITシステムと統合した解析システム• コンポーネントのパフォーマンス予測• メンテナンスコストの最小化

気象・環境モニタリング 自動車・航空宇宙

http://www.mathworks.com/tagteam/85035_91950v01_HKM_User_Story.pdf

http://www.mathworks.com/tagteam/52469_91597v00_daimler_upd.pdf

• 遺伝的アルゴリズムにより生産スケジュールを最適化

• スケジュール競合の削減、出荷の前倒し、設備稼働率の目標値達成

iSonea

BuildingIQ

HKM

SAFRAN

Daimler

8

例: 生体信号モニタ、診断

心拍データのキャプチャ 特徴の抽出

生体信号モニタリング

ニューラルネットワークによる機械学習

高度な解析技術により、バイタルサインから、疾病の予兆をとらえるknowledge

9

機種B7秒/台

機種A5秒/台

生産計画

最適化後

例: 生産工程最適化

最適化前

設備1 設備2 検査

10

例: 構造ヘルスモニタリング

データセンサー

モニタリング対象

Alert!

解析データセンシング、信号処理

11

例: トラフィックモニタ、分析

12

例: トラフィックモニタ、分析(cont’d)

桜通の1週間の交通量(西行きvs東行き)

トラフィック量のヒストグラム

一週間の交通量(日ごとの推移)

一週間の交通量(24時間で見た推移)

日曜日の交通量(交通量の多い時間帯は?)

13

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データアグリゲータ• データの前処理、同期処理• データベースアクセス

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

センサー

MathWorks IoT 全体像

14

MATLAB

対話型プログラミング環境

高度な科学技術計算向け関数– 線形代数、統計、スペクトル解析、フィルター処理、最適化、数値積分、常微分方程式求解

様々なデータ可視化– ライン、バー、ヒストグラム

– 2D/3Dグラフィックス

– ベクトル、表面、ボリューム表示

C、Java、.NET、Microsoft®Excel® などの言語との容易な接続

15

MATLAB による アナリティクスフロー

計測器

データ

情報

知識

アクション

観測• 検出• 収集• 状態• データ取得

整理• フィルタリング• 信号解析• データ処理• プロット

理解• 分析• 周波数 & 時間領域• 予測分析• 推定

意思決定 & 設計• レポート & Apps• 拡張性のある展開• 設計最適化

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

16

MathWorks IoT 開発フロー①MATLABによる、アルゴリズム開発、全体システム設計

アルゴリズムの開発• データの同期方法検討• 特徴抽出・機械学習の検討• トレンド解析、イベント・異常検出

大規模高速演算• HPC/クラウド利用による、並列処理• GPGPUによる高速処理

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

MATLABへHWをダイレクト接続(I2C, SPI, CAN, 測定機器類)

センサー

17

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

MATLABへHWをダイレクト接続(I2C, SPI, CAN, 測定機器類)

アルゴリズムの開発• データの同期方法検討• 特徴抽出・機械学習の検討• トレンド解析、イベント・異常検出

MPG Acceleration Displacement Weight Horsepow er

MP

GA

ccele

ratio

nD

ispla

cem

ent

Weig

ht

Hors

epow

er

50 1001502002000 4000200 40010 2020 40

50

100

150

200

2000

4000

200

400

10

20

20

40

センサー

18

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

実装

Cコード HDLコード生成

設計

アルゴリズム 要求仕様

ソフトウェアモデル

ハードウェアモデル

統合

プログラマブル SoCなど

システムモデル

生成

生成

実装

アルゴリズムのパーティショニング• アナログ vs. デジタル• スピード vs. 容量/面積• FPGA vs. CPU

モデルベースデザインフロー

19

MathWorks IoT 開発フロー②MATLAB/Simulinkによる、組み込み開発

実装

Cコード HDLコード生成

設計

アルゴリズム 要求仕様

ソフトウェアモデル

ハードウェアモデル

統合

プログラマブル SoCなど

システムモデル

生成

生成

実装

アルゴリズムのパーティショニング• アナログ vs. デジタル• スピード vs. 容量/面積• FPGA vs. CPU

モデルベースデザインフロー

20

MathWorks IoT 開発フロー

③エッジデバイス、アグリゲータへのコードの配置・Deploy

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データアグリゲータ• データの前処理、同期処理• データベースアクセス

C/HDLコード生成 / 実装

システムの最適化/バランス配置• エッジデバイス vs. サーバー• ストリーミング vs. オフライン

MATLABコードのDeploy (C, Java, .NET)

21

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section2: 信号処理– IoTにおける信号処理技術

– エッジデバイス開発

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section3:

データ解析

Section4:

データアグリゲーション

22

「信号処理」と「エッジ開発」

①信号処理 前処理

雑音除去 フィルタ

特性解析 時系列解析 スペクトル解析

特徴量抽出・峻別 Wavelet AR推定

②エッジ開発 無線通信

SDR 低消費電力化

組み込み ARM FPGA 教育・パーソナルユース

23

Expo2014のコンテンツCase1: Weather

Thingspeakによるデータ取得

トレンド抽出、移動平均フィルタ

Case2: Wearable/Medical 生体信号処理

雑音・トレンド除去、ピーク検出

Case3: Infra/Home センサー信号のACノイズ、スパイクノイズ除去

振動センサデータのスペクトル解析

Case4: Automotive ノッキング信号の取得

スペクトログラム、GUIフィルタ設計、Simulink

http://www.matlabexpo.com/jp/2014/signal-processing-workflow.html

24

Expo2014コンテンツ抜粋心電図データ(トレンド除去、ピーク値探索)

トレンド除去QRS群

オリジナルデータ

25

Expo2014コンテンツ抜粋例:センサーデータ(瞬時電圧降下対応)

メディアンフィルタで平滑化

センサーデータに、ACノイズとスパイクノイズが重畳

26

IoTで使える信号処理技術What’s “New” in Signal Processing Toolbox

センサ信号の解析を中心とした機能追加

Challenges:

欠落したデータの取り扱い

信号処理の知識や、プログラミングのスキルがあまり無い方の増加

Solution:

外れ値の検出と除去

信号解析をより簡単に!

ドキュメントの改善

27

不定周期でサンプリングされた信号のリサンプリング

Default sample rate

Default anti-aliasing filter

Multichannel support

Convert irregularly sampled signals to a fixed rate

» [y,ty] = resample(x,tx)

» y = resample(x,tx,fs)

» [y,ty,b] = resample(x,tx,fs,…)

28

スペクトラム解析機能の強化(cont.)Enhanced spectrogram and maxhold spectrum

>> pwelch(x,[],[],[],Fs,'maxhold')>> pwelch(x,[],[],[],Fs,'minhold')>> pwelch(x,[],[],[],Fs)

工業単位の表示 DC中心 Power spectrogram カラーバーの表示

29

帯域幅測定用関数の追加

Support for various inputs

– Time domain

– PSD or Power spectrum estimate

Multi-channel support

Select bands and percentile estimations (obw)

Selectable power level roll-off (powerbw)

Provide common estimation of filter and channel widths

»obw(x,Fs) »powerbw(Pxx,F)

30

平均及び中央周波数算出

Support for various inputs

– Time domain

– PSD or Power spectrum estimate

Multi-channel support

Selectable mask region

Median freq. robust in presence of spurs

Estimate average frequency and mid-point of spectrum

» meanfreq(Pxx,F,[50e3 150e3]) » medfreq(Pxx,F)

31

Hampel フィルタIdentifies and Replaces Outliers

>> hampel(x)

一般的なロバスト推定法に基づく 外れ値検出と、指定ウィンドウの中の中央値への置き換え

Fastアルゴリズムの使用

32

メディアンフィルタRobust Central Estimator

>> medfilt1(x,1000,’truncate’,’omitnan’);

データの始点、終点付近における、中央値推定の改善

NaNがデータに含まれる場合でも、適切に除去

特にフィルタサイズが大きい場合で、処理速度が劇的に改善以下のツール比で非常に高速なアルゴリズム(R, Mathematica, NumPy, Octave)

33

再割り当てスペクトログラム時間成分やスペクトル成分のリーケージによる不確定性の除去

>> spectrogram(x,[],[],[],Fs,'reassigned')

時間-周波数分解能の向上

音響、振動、レーダー等アプリケーションで使われる狭帯域信号の分離に最適

Ideal ADAS waveform

34

スペクトログラムに対する、最小閾値設定

最も支配的なスペクトル成分を強調

>> spectrogram(x,128,127, 'yaxis')

>> spectrogram(x,128,127,'yaxis',... 'MinThreshold',-10)

35

回転機械等のための、次数解析

rpmプロファイル vs 次数・周波数マップ

マップでは、ピーク振幅、RMS振幅、パワーレベルが可視化できます

分解能や窓関数の選択が可能

次数やrpm速度に対して2D/3Dマップを可視化するための、対話的プロット

メカニカルエンジニア向け、スペクトル分析

>> rpmordermap(x,Fs,rpm)

36

包絡線検出例

» load mtlb

» envelope(mtlb, 150, ‘rms’)

RMS Envelope

» load mtlb

» envelope(mtlb, 150, ‘peak’)

Peak Envelope

37

遅延量検出および調整

xcorrを内部で使用した便利関数

» web(fullfile(docroot, 'signal/examples/measuring-signal-similarities.html')

最新の情報はここをクリック

38

demo: 外れ値、エンベロープ検出

オリジナルデータ

外れ値検出(スパイク、NaN)

外れ値除去エンベロープ

(上側、下側)

39

エッジデバイス例:Raspberry PiGPIO スイッチ LED センサ

USBポート(webカメラ)

パソコン(Simulink)

音声出力端子(スピーカー)

本体

40

エッジデバイス例:Raspberry Pi

PCとWebカメラで動作チェック

Raspberry Pi 用カメラペリフェラル

ブロック

必要なデータを抽出し、Webへアップロード

フォアグランドディテクター

Blob解析

雑音除去

台数計測

41

エッジデバイス例:iPhone/iPad (Apple iOSデバイス)

SimulinkモデルをiPhoneアプリとして実装可能

カメラ、音声I/O、ジャイロ等の各種センサブロックを提供

42

ARM社信号処理ライブラリ対応表

機能 概要 CMSIS Ne10

Discrete FIR Filter Model FIR filters ○ ○FIR Decimation Filter and downsample input signals ○ ○FIR Interpolation Upsample and filter input signals ○ ○LMS Filter Compute output, error, and weights using LMS adaptive algorithm ○Biquad Filter Model biquadratic IIR (SOS) filters ○FFT Fast Fourier transform (FFT) of input ○ ○IFFT Inverse fast Fourier transform (IFFT) of input ○ ○Correlation Cross-correlation of two inputs ○Convolution Convolution of two inputs ○Mean Find mean value of input or sequence of inputs ○RMS Compute root-mean-square value of input or sequence of inputs ○Variance Compute variance of input or sequence of inputs ○Standard Deviation Find standard deviation of input or sequence of inputs ○

信号処理に最適化されたライブラリにより高速処理を実現

43

エッジデバイス例: STM32F4-Discovery®, BeagleBone Black®

音声出力

GPIO

音声入力

USBポート

GPIO

DSP System ToolboxとEmbedded Coderの組み合わせで、最適化された信号処理アプリを実装可能

USBケーブル

44

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section3:

データ解析– 統計処理

– 機械学習

– 最適化

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

Section2: 信号処理

Section4:

データアグリゲーション

45

Statistics and Machine Learning Toolbox

多変量統計

確率分布

回帰と分散分析

機械学習

実験計画

統計的工程管理

MATLABデータ解析系ツール

Neural Network Toolbox ニューラルネットワークの構築、学習

自己組織化マップ

データフィッティング

クラスタリング

パタン認識

GPUによる計算の高速化

Optimization Toolbox

滑らかな目的関数の最適化

さまざまな最適化問題に対応する関数の

提供

最適化計算の並列処理

最適化のためのGUI環境

System Identification Toolbox

入出力値から

線形/非線形

動的モデルを同定

同定のための

前処理/後処理

46

【例題】 構造ヘルスモニタリング

Reference: Figueiredo, E., Park, G., Figueiras, J., Farrar, C., & Worden, K. (2009). Structural Health Monitoring Algorithm Comparisons using Standard Data Sets. Los Alamos National Laboratory Report: LA-14393

Sensor #4

Sensor #3

Sensor #1

Sensor #2

振動発生装置柱と留め具の隙間を調整できるようになっている

47

【例題】構造ヘルスモニタリング

入力

特徴抽出

特徴量

分類

出力

センサーからの加速度データ

構造物における損傷の有無

48

有効な特徴量は?

時系列

ヒストグラム

周波数スペクトル

AR係数

49

自己回帰モデルの係数による特徴抽出

過去データの線形和 白色雑音定数項

tn

N

i

i XaaXn

1

1

0

a0,a1,...,an( )

50

自己回帰モデルの係数による特徴抽出

𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10 𝑎1, ⋯ , 𝑎10

Sensor #1 Sensor #2 Sensor #3 Sensor #4

4*10次元の特徴量

51

主成分分析(Principal Component Analysis)特徴量の次数低減

体重

身長

第2主成分

第1主成分

PCA

[coeff, score, latent] = pca(X)

52

【例題】構造ヘルスモニタリング

4チャネル全て使った場合 1チャネルのみ使った場合

53

MATLABにおける機械学習

機械学習

教師なし学習

教師あり学習

クラスタリング

分類

回帰

K-平均クラスタリング階層クラスタリングニューラルネット混合ガウス分布自己組織化マップ

線形判別・2次判別K-最近傍識別単純ベイズ分類決定木アンサンブル学習ニューラルネットサポートベクターマシン

線形回帰モデル一般化線形回帰モデル非線形回帰モデル回帰木アンサンブル学習ニューラルネット

訓練データあり

訓練データなし

54

決定木(Decision Tree)とは?

変数をひとつ選び、閾値を決めて、サンプルを2つに分ける

なるべく同じクラス同士が同じグループに入るようにしたい

混ざり具合の基準(Gini 係数等)を使う

X >= 1.2X < 1.2

Y >= 0.7Y < 0.7

【例題】 構造ヘルスモニタリング:決定木

55

【例題】 構造ヘルスモニタリング

170個の振動データ

90個の正常データ

80個の異常データ

異常データをそんなにたくさん集められる?

56

【例題】 構造ヘルスモニタリング

92個の振動データ

90個の正常データ

2個の異常データ

異常データを見分けることができるか?

57

【例題】 構造ヘルスモニタリング:教師なし1クラスSVMによる異常検出

58

ビデオおよびWebセミナー

http://jp.mathworks.com/

こちらで詳細をご覧頂けます

60

【例題】心拍モニタ、診断

心拍データのキャプチャ特徴の抽出

生体信号モニタリング・デバイス

Amazon Kinesis

Kinesis JAVA Client

Amazon EC2MATLAB

ニューラルネットワークによる機械学習(MATLABからの実装)

MATLAB

61

機種B7秒/台

機種A5秒/台

生産計画

最適化後最適化前

設備1 設備2 検査

【例題】生産工程最適化

62

【例題】ある工場ラインのシミュレーション

機種B7秒/台

機種A5秒/台

設備1

修正

バッファ

出荷Aパレット

設備2バッファ 検査バッファ

バッファ

出荷Bパレット

不良品パレット

修正率:20%不良率:10%

処理時間平均10秒σ=3

処理時間平均5秒σ=1

検査時間平均15秒σ=3

修正時間平均60秒σ=30

生産計画

kensa_op.slx

このとき必要な各設備数、検査ライン数、修正ライン数は?

63

機種B7秒/台

機種A5秒/台

生産計画

kensa_op.slx

ラインの流れに沿って、機能ブロックをレイアウト

ある工場ラインのシミュレーションSimEventsで実現

64

Global Optimization Toolboxによる最適化

計画未達数

設備コスト合計

「計画未達コスト+合計設備コスト」を最小化

設備の各上限数

設備の各下限数最適化ツールから提供される各種ソルバ

65

Global Optimaization ToolBoxによる最適化

最適化結果:設備1=4、設備2=2,検査ライン数=6、修正ライン数=3

最適化

生産計画と設備投資のバランシング

66

本日のトラックの流れ

最適化

機械学習

データ解析

67

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

Agenda

Section2: 信号処理

Section3:

データ解析

Section4:

データアグリゲーション

Section1: 背景– IoT応用例

– 何故MATLABはIoTにフィットするのか?

– MathWorks IoTソリューション

68

データのアップロード、ダウンロード

MATLAB/Database Toolbox– Web (Restful API)

– SQL

Instrument Control Toolbox– シリアル通信

– Bluetooth

– TCP/IP

– UDP

MATLABは様々な、通信方式に対応しています

69

データの取得とアップロード

I2Cセンサーを使った、データ計測

PostgreSQLへのデータのアップロード

Total Phase AdaptorI2C Temperature sensor

Remote address=0x48

データベースKinesis/EC2

70

データのダウンロード

Restful Web API 使ったデータのダウンロード

e.g.) トラフィック測定アプリケーション

71

デモ: Webサービスデータの読み込みMATLAB コード

データベースインターネット

Web API

Send request

Get responseXML, JSON 形式など

>> lat = 35.174067; lon = 139.905854;>> baseURL = 'http://express.heartrails.com/api/json?';>> data = webread(baseURL,'method‘,'getStations',…

'x',lon,'y',lat);

>> data.response.station(1).lineAns =名古屋市桜通線

>> data.response.station(1).nameans =久屋大通

72

JAVA 環境でのインテグレーション(エンタープライズ対応)

MATLAB Compiler SDK

MATLAB Production Server

73

MATLABDesktop

JAVA環境でのインテグレーションMATLAB Production Server

MATLABProduction

Server

WebApplication

Server

MATLAB Production

Server

Request

Bro

ker

CTF

Apache Tomcat

Web Server/Webservice

気象データ

電力データ

予測モデル

MATLABでの学習

74

エッジデバイス• 信号処理、画像処理、データ圧縮• 組み込みシステム(マイコン、FPGA)

データ解析/可視化• トレンド解析・異常検出• データ可視化・レポーティング

まとめ

データ解析– 統計処理の実績

– 機械学習・最適化

データアグリゲーション– 豊富なデータI/O

– サーバー環境への統合

MATLABによりIoTシステムの具現化を加速

信号処理– 前処理特徴抽出等

– 各種エッジデバイスに対応

top related