iotにおけるmatlabの活用 ~信号処理・データ解析・ · pdf file3 demo:...
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/
こちらで詳細をご覧頂けます
59
Expo2015展示デモのご紹介
Acceleration Sensor
Building Structure
Camera Device
Raspberry Pi
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システムの具現化を加速
信号処理– 前処理特徴抽出等
– 各種エッジデバイスに対応