• 検索結果がありません。

IoT/M2Mにおける MATLABソリューション事例紹介

N/A
N/A
Protected

Academic year: 2021

シェア "IoT/M2Mにおける MATLABソリューション事例紹介"

Copied!
74
0
0

読み込み中.... (全文を見る)

全文

(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

ウェアラブル・

メディカル

 バイタルサインモニター

 在宅ケア・遠隔医療

 気象、電力、災害予測

気象・環境

モニタリング

(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

Daimle

r

(8)

例:

生体信号モニタ、診断

心拍データのキャプチャ

特徴の抽出

生体信号モニタリング

ニューラルネットワークによる

機械学習

高度な解析技術により、

バイタルサインから、

疾病の予兆をとらえる

knowledge

(9)

機種B

7秒/台

機種A

5秒/台

生産計画

最適化後

例:

生産工程最適化

最適化前

設備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

M P G A c c e le ra tio n D is p la c e m e n t W e ig h t H o rs e p o w e r 50 100150200 2000 4000 200 400 10 20 20 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

M P G A cc e le ra tio n D is p la c em e nt W e ig h t H o rs ep o w e r 50 100150200 20004000 200 400 10 20 20 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

M P G A cc e le ra tio n D is p la c em e nt W e ig h t H o rs ep o w e r 50 100150200 20004000 200 400 10 20 20 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コードの

(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)

(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

(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

(31)

Hampel フィルタ

Identifies and Replaces Outliers

>> hampel(x)

 一般的なロバスト推定法に基づく

 外れ値検出と、指定ウィンドウの中の中

央値への置き換え

(32)

メディアンフィルタ

Robust Central Estimator

>> medfilt1(x,1000,

’truncate’

,

’omitnan’

);

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

改善

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

 特にフィルタサイズが大きい場合で、処理速度が

劇的に改善

以下のツール比で非常に高速なアルゴリズム

(R, Mathematica, NumPy, Octave)

(33)

再割り当てスペクトログラム

時間成分やスペクトル成分のリーケージによる不確定性の除去

>> spectrogram(x,[],[],[],Fs,

'reassigned'

)

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

 音響、振動、レーダー等アプリケーションで使われ

る狭帯域信号の分離に最適

(34)

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

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

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

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

(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 Pi

GPIO

 スイッチ

 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

(43)

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

音声出力

GPIO

音声入力

USBポート

GPIO

DSP System ToolboxとEmbedded Coderの組み合わせで、

最適化された信号処理アプリを実装可能

(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

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

振動発生装置

柱と留め具の隙間を調整

できるようになっている

(47)

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

入力

特徴抽出

特徴量

分類

出力

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

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

(48)

有効な特徴量は?

時系列

ヒストグラム

周波数

スペクトル

AR係数

(49)

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

過去データの線形和

白色雑音

定数項

t

n

N

i

i

X

a

a

Xn

1

1

0

a

0

, a

1

,..., a

n

(

)

(50)

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

𝑎

1

, ⋯ , 𝑎

10

𝑎

1

, ⋯ , 𝑎

10

𝑎

1

, ⋯ , 𝑎

10

𝑎

1

, ⋯ , 𝑎

10

Sensor #1

Sensor #2

Sensor #3

Sensor #4

(51)

主成分分析(Principal Component Analysis)

特徴量の次数低減

体重 身長 第2主成分 第1主成分

PCA

(52)

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

(53)

MATLABにおける機械学習

機械学習 教師なし学習 教師あり学習 クラスタリング 分類 回帰 K-平均クラスタリング 階層クラスタリング ニューラルネット 混合ガウス分布 自己組織化マップ 線形判別・2次判別 K-最近傍識別 単純ベイズ分類 決定木 アンサンブル学習 ニューラルネット サポートベクターマシン 線形回帰モデル 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習 ニューラルネット 訓練データあり 訓練データなし

(54)

決定木(Decision Tree)とは?

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

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

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

X >= 1.2 X < 1.2 Y >= 0.7 Y < 0.7

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

(55)

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

170個の振動データ

90個の正常データ

80個の異常データ

(56)

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

92個の振動データ

90個の正常データ

2個の異常データ

(57)

【例題】 構造ヘルスモニタリング:教師なし

1クラスSVMによる異常検出

(58)

ビデオおよびWebセミナー

http://jp.mathworks.com/

こちらで詳細を

ご覧頂けます

(59)

Expo2015展示デモのご紹介

Acceleration Sensor

Building Structure

Camera Device

(60)

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

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

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

Amazon Kinesis Kinesis JAVA Client Amazon EC2

MATLAB

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

MATLAB

(61)

機種B

7秒/台

機種A

5秒/台

生産計画

最適化後 最適化前

設備1

設備2

検査

【例題】生産工程最適化

(62)

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

機種B

7秒/台

機種A

5秒/台

設備1

修正

バッファ

出荷A

パレット

設備2

バッファ バッファ

検査

バッファ

出荷B

パレット

不良品

パレット

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

処理時間

平均10秒σ=3

処理時間

平均5秒σ=1

検査時間

平均15秒σ=3

修正時間

平均60秒σ=30

生産計画

kensa_op.slx

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

(63)

機種B

7秒/台

機種A

5秒/台

生産計画

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

(69)

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

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

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

Total Phase Adaptor

I2C Temperature sensor

Remote address=0x48

データベース Kinesis/EC2

(70)

データのダウンロード

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

(71)

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

MATLAB コード

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

Web API

Send request

Get response

XML, 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).line Ans = 名古屋市桜通線 >> data.response.station(1).name ans = 久屋大通

(72)

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

(エンタープライズ対応)

MATLAB Compiler SDK

(73)

MATLAB

Desktop

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

MATLAB Production Server

MATLAB

Production

Server

Web

Application

Server

MATLAB Production Server R eq ue st Br o ker CTF Apache Tomcat Web Server/ Webservice

気象データ

電力データ

予測モデル

MATLAB

での学習

(74)

エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング

まとめ

データ解析

統計処理の実績

機械学習・最適化

データアグリゲーション

豊富なデータI/O

サーバー環境への統合

MATLABにより

IoTシステムの具現化を加速

信号処理

前処理特徴抽出等

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

参照

関連したドキュメント

Amortized efficiency of list update and paging rules.. On the

SUSE® Linux Enterprise Server 15 for AMD64 &amp; Intel64 15S SLES SUSE® Linux Enterprise Server 12 for AMD64 &amp; Intel64 12S. VMware vSphere® 7

MPIO サポートを選択すると、 Windows Unified Host Utilities によって、 Windows Server 2016 に含まれている MPIO 機能が有効になります。.

ESET Server Security for Windows Server、ESET Mail/File/Gateway Security for Linux は

The performance measures- the throughput, the type A and type B message loss probabilities, the idle probability of the server, the fraction of time the server is busy with type r,

Another new aspect of our proof lies in Section 9, where a certain uniform integrability is used to prove convergence of normalized cost functions associated with the sequence

東京都は他の道府県とは値が離れているように見える。相関係数はこう

mkdocs serve - Start the live-reloading docs server.. mkdocs build - Build the