© 2015 The MathWorks, Inc.
IoTにおけるMATLABの活用
~信号処理・データ解析・データアグリゲーション~
MathWorks Japan
アプリケーションエンジニアリング部 通信・信号処理
竹本佳充
本日のトラックの流れ
最適化
機械学習
データ解析
本セッション
demo:
スマートフォンによるセンサーデータ取得
エッジ検出
オブジェクト追尾
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出
Agenda
Section1: 背景
–
IoT応用例
–
何故MATLABはIoTにフィットするのか?
–
MathWorks IoTソリューション
Section2: 信号処理
Section3:
データ解析
Section4:
データアグリゲーション
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング
Agenda
Section1: 背景
–
IoT応用例
–
何故MATLABはIoTにフィットするのか?
–
MathWorks IoTソリューション
Section2: 信号処理
Section3:
データ解析
Section4:
データアグリゲーション
IoT 時代のセンサーデータ技術
インフラ・プラント設備
ヘルスモニタリング
プロセス監視
自動車・航空宇宙
テレマティクス、ヘルスモニタリング
走行安全・ADAS
ウェアラブル・
メディカル
バイタルサインモニター
在宅ケア・遠隔医療
気象、電力、災害予測
気象・環境
モニタリング
• 冷暖房、換気システム向けクラウドベースの リアルタイム・アナリティクス • 気象データ、電力消費量を元に、機械学習、最適化 • ビルの電力消費量を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
例:
生体信号モニタ、診断
心拍データのキャプチャ
特徴の抽出
生体信号モニタリング
ニューラルネットワークによる
機械学習
高度な解析技術により、
バイタルサインから、
疾病の予兆をとらえる
knowledge
機種B
7秒/台
機種A
5秒/台
生産計画
最適化後例:
生産工程最適化
最適化前設備1
設備2
検査
例:
構造ヘルスモニタリング
データ
センサー
モニタリング
対象
Alert!
解析
データセンシング、
信号処理
例:
トラフィックモニタ、分析(cont’d)
桜通の1週間の交通量
(西行きvs東行き)
トラフィック量の
ヒストグラム
一週間の交通量
(日ごとの推移)
一週間の交通量
(24時間で見た推移)
日曜日の交通量
(交通量の多い時間帯は?)
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データアグリゲータ • データの前処理、同期処理 • データベースアクセス データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング
センサー
MathWorks IoT 全体像
MATLAB
対話型プログラミング環境
高度な科学技術計算向け関数
–
線形代数、統計、スペクトル解析、
フィルター処理、最適化、数値積分、
常微分方程式求解
様々なデータ可視化
–
ライン、バー、ヒストグラム
–
2D/3Dグラフィックス
–
ベクトル、表面、ボリューム表示
C、Java、.NET、
Microsoft®Excel® などの言語との
容易な接続
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
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, 測定機器類)
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
センサー
MathWorks IoT 開発フロー
②MATLAB/Simulinkによる、組み込み開発
実装
Cコード生成
HDLコード設計
アルゴリズム
要求仕様
ソフトウェア モデル ハードウェアモデル統合
プログラマブル SoCなどシステムモデル
生
成
生
成
実
装
アルゴリズムのパーティショニング • アナログ vs. デジタル • スピード vs. 容量/面積 • FPGA vs. CPUモデルベースデザインフロー
MathWorks IoT 開発フロー
②MATLAB/Simulinkによる、組み込み開発
実装
Cコード生成
HDLコード設計
アルゴリズム
要求仕様
ソフトウェア モデル ハードウェアモデル統合
プログラマブル SoCなどシステムモデル
生
成
生
成
実
装
アルゴリズムのパーティショニング • アナログ vs. デジタル • スピード vs. 容量/面積 • FPGA vs. CPUモデルベースデザインフロー
MathWorks IoT 開発フロー
③
エッジデバイス、アグリゲータへのコードの配置・Deploy
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データアグリゲータ • データの前処理、同期処理 • データベースアクセスC/HDLコード生成 / 実装
システムの最適化/バランス配置 • エッジデバイス vs. サーバー • ストリーミング vs. オフラインMATLABコードの
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング
Agenda
Section2: 信号処理
–
IoTにおける信号処理技術
–
エッジデバイス開発
Section1: 背景
–
IoT応用例
–
何故MATLABはIoTにフィットするのか?
–
MathWorks IoTソリューション
Section3:
データ解析
Section4:
データアグリゲーション
「信号処理」と「エッジ開発」
①信号処理
前処理
雑音除去
フィルタ
特性解析
時系列解析
スペクトル解析
特徴量抽出・峻別
Wavelet
AR推定
②エッジ開発
無線通信
SDR
低消費電力化
組み込み
ARM
FPGA
教育・パーソナルユース
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
Expo2014コンテンツ抜粋
心電図データ(トレンド除去、ピーク値探索)
トレンド除去
QRS群
オリジナルデータ
Expo2014コンテンツ抜粋
例:センサーデータ(瞬時電圧降下対応)
メディアンフィルタで
平滑化
センサーデータに、
ACノイズとスパイクノイズが重畳
IoTで使える信号処理技術
What’s “New” in Signal Processing Toolbox
センサ信号の解析を中心とした機能追加
Challenges:
欠落したデータの取り扱い
信号処理の知識や、プログラミングのスキルがあまり無い方の増加
Solution:
外れ値の検出と除去
信号解析をより簡単に!
ドキュメントの改善
不定周期でサンプリングされた信号のリサンプリング
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)
スペクトラム解析機能の強化(cont.)
Enhanced spectrogram and maxhold spectrum
>> pwelch(x,[],[],[],Fs,'maxhold')
>> pwelch(x,[],[],[],Fs,'minhold')
>> pwelch(x,[],[],[],Fs)
工業単位の表示
DC中心
Power spectrogram
カラーバーの表示
帯域幅測定用関数の追加
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
平均及び中央周波数算出
Support for various inputs
–
Time domain
–
PSD or Power spectrum estimate
Multi-channel support
Selectable mask region
Median freq. robust in presence of spurs
Hampel フィルタ
Identifies and Replaces Outliers
>> hampel(x)
一般的なロバスト推定法に基づく
外れ値検出と、指定ウィンドウの中の中
央値への置き換え
メディアンフィルタ
Robust Central Estimator
>> medfilt1(x,1000,
’truncate’
,
’omitnan’
);
データの始点、終点付近における、中央値推定の
改善
NaNがデータに含まれる場合でも、適切に除去
特にフィルタサイズが大きい場合で、処理速度が
劇的に改善
以下のツール比で非常に高速なアルゴリズム
(R, Mathematica, NumPy, Octave)
再割り当てスペクトログラム
時間成分やスペクトル成分のリーケージによる不確定性の除去
>> spectrogram(x,[],[],[],Fs,
'reassigned'
)
時間-周波数分解能の向上
音響、振動、レーダー等アプリケーションで使われ
る狭帯域信号の分離に最適
スペクトログラムに対する、最小閾値設定
最も支配的なスペクトル成分を強調
>> spectrogram(x,128,127, 'yaxis')
>> spectrogram(x,128,127,'yaxis',...
回転機械等のための、次数解析
rpmプロファイル vs 次数・周波数マップ
マップでは、ピーク振幅、RMS振幅、パワーレベルが
可視化できます
分解能や窓関数の選択が可能
次数やrpm速度に対して2D/3Dマップを可視化す
るための、対話的プロット
メカニカルエンジニア向け、スペクトル分析
>> rpmordermap(x,Fs,rpm)包絡線検出例
»
load mtlb
»
envelope(mtlb, 150, ‘rms’)
RMS Envelope
»
load mtlb
»
envelope(mtlb, 150, ‘peak’)
Peak Envelope
遅延量検出および調整
xcorrを内部で使用した便利関数
»
web(fullfile(docroot, 'signal/examples/measuring-signal-similarities.html')
最新の情報はこ
こをクリック
demo: 外れ値、エンベロープ検出
オリジナルデータ
外れ値検出
(スパイク、NaN)
外れ値除去
エンベロープ
(上側、下側)
エッジデバイス例:Raspberry Pi
GPIO
スイッチ
LED
センサ
USBポート
(webカメラ)
パソコン(Simulink)
音声出力端子
(スピーカー)
本体
エッジデバイス例:Raspberry Pi
PCとWebカメラで動
作チェック
Raspberry Pi 用
カメラペリフェラル
ブロック
必要なデータを抽出し、
Webへアップロード
フォアグランド
ディテクター
Blob解析
雑音除去
台数計測
エッジデバイス例:iPhone/iPad (Apple iOSデバイス)
SimulinkモデルをiPhoneアプリとして実装可能
カメラ、音声I/O、ジャイロ等
の各種センサブロックを提供
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
○
エッジデバイス例: STM32F4-Discovery®, BeagleBone Black®
音声出力
GPIO
音声入力
USBポート
GPIO
DSP System ToolboxとEmbedded Coderの組み合わせで、
最適化された信号処理アプリを実装可能
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出
Agenda
Section3:
データ解析
–
統計処理
–
機械学習
–
最適化
Section1: 背景
–
IoT応用例
–
何故MATLABはIoTにフィットするのか?
–
MathWorks IoTソリューション
Section2: 信号処理
Section4:
データアグリゲーション
Statistics and Machine Learning
Toolbox
多変量統計
確率分布
回帰と分散分析
機械学習
実験計画
統計的工程管理
MATLABデータ解析系ツール
Neural Network Toolbox
ニューラルネットワークの構築、学習
自己組織化マップ
データフィッティング
クラスタリング
パタン認識
GPUによる計算の高速化
Optimization Toolbox
滑らかな目的関数の最適化
さまざまな最適化問題に対応する関数の
提供
最適化計算の並列処理
最適化のためのGUI環境
System Identification
Toolbox
入出力値から
線形/非線形
動的モデルを同定
同定のための
前処理/後処理
【例題】 構造ヘルスモニタリング
Reference: Figueiredo, E., Park, G., Figueiras, J., Farrar, C., & Worden, K. (2009). Structural Health
Sensor #4 Sensor #3 Sensor #1 Sensor #2
振動発生装置
柱と留め具の隙間を調整
できるようになっている
【例題】構造ヘルスモニタリング
入力
特徴抽出
特徴量
分類
出力
センサーからの加速度データ
構造物における損傷の有無
有効な特徴量は?
時系列
ヒストグラム
周波数
スペクトル
AR係数
自己回帰モデルの係数による特徴抽出
過去データの線形和
白色雑音
定数項
t
n
N
i
i
X
a
a
Xn
1
1
0
a
0
, a
1
,..., a
n
(
)
自己回帰モデルの係数による特徴抽出
𝑎
1
, ⋯ , 𝑎
10
𝑎
1
, ⋯ , 𝑎
10
𝑎
1
, ⋯ , 𝑎
10
𝑎
1
, ⋯ , 𝑎
10
Sensor #1
Sensor #2
Sensor #3
Sensor #4
主成分分析(Principal Component Analysis)
特徴量の次数低減
体重 身長 第2主成分 第1主成分PCA
【例題】構造ヘルスモニタリング
MATLABにおける機械学習
機械学習 教師なし学習 教師あり学習 クラスタリング 分類 回帰 K-平均クラスタリング 階層クラスタリング ニューラルネット 混合ガウス分布 自己組織化マップ 線形判別・2次判別 K-最近傍識別 単純ベイズ分類 決定木 アンサンブル学習 ニューラルネット サポートベクターマシン 線形回帰モデル 一般化線形回帰モデル 非線形回帰モデル 回帰木 アンサンブル学習 ニューラルネット 訓練データあり 訓練データなし…
…
…
決定木(Decision Tree)とは?
変数をひとつ選び、閾値を決めて、サンプルを2つに分ける
なるべく同じクラス同士が同じグループに入るようにしたい
混ざり具合の基準(Gini 係数等)を使う
X >= 1.2 X < 1.2 Y >= 0.7 Y < 0.7【例題】 構造ヘルスモニタリング:決定木
【例題】 構造ヘルスモニタリング
170個の振動データ
90個の正常データ
80個の異常データ
【例題】 構造ヘルスモニタリング
92個の振動データ
90個の正常データ
2個の異常データ
【例題】 構造ヘルスモニタリング:教師なし
1クラスSVMによる異常検出
ビデオおよびWebセミナー
http://jp.mathworks.com/
こちらで詳細を
ご覧頂けます
Expo2015展示デモのご紹介
Acceleration Sensor
Building Structure
Camera Device
【例題】心拍モニタ、診断
心拍データのキャプチャ 特徴の抽出生体信号モニタリング・デバイス
Amazon Kinesis Kinesis JAVA Client Amazon EC2MATLAB
ニューラルネットワークによる 機械学習(MATLABからの実装)MATLAB
機種B
7秒/台
機種A
5秒/台
生産計画
最適化後 最適化前設備1
設備2
検査
【例題】生産工程最適化
【例題】ある工場ラインのシミュレーション
機種B
7秒/台
機種A
5秒/台
設備1
修正
バッファ出荷A
パレット
設備2
バッファ バッファ検査
バッファ出荷B
パレット
不良品
パレット
修正率:20% 不良率:10%処理時間
平均10秒σ=3
処理時間
平均5秒σ=1
検査時間
平均15秒σ=3
修正時間
平均60秒σ=30
生産計画
kensa_op.slx
このとき必要な各設備数、検査ライン数、修正ライン数は?
機種B
7秒/台
機種A
5秒/台
生産計画
kensa_op.slx
ラインの流れに沿って、機能ブロックをレイアウト
ある工場ラインのシミュレーション
SimEventsで実現
Global Optimization Toolboxによる最適化
計画未達数
設備コスト
合計
「計画未達コスト+合計設備コスト」を最小化
設備の各上限数
設備の各下限数
最適化ツールから提供される各
種ソルバ
Global Optimaization ToolBoxによる最適化
最適化結果:
設備1=4、設備2=2,検査ライン数=6、修正ライン数=3
最適化
本日のトラックの流れ
最適化
機械学習
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング
Agenda
Section2: 信号処理
Section3:
データ解析
Section4:
データアグリゲーション
Section1: 背景
–
IoT応用例
–
何故MATLABはIoTにフィットするのか?
–
MathWorks IoTソリューション
データのアップロード、ダウンロード
MATLAB/Database Toolbox
–
Web (Restful API)
–
SQL
Instrument Control Toolbox
–
シリアル通信
–
Bluetooth
–
TCP/IP
–
UDP
データの取得とアップロード
I2Cセンサーを使った、データ計測
PostgreSQLへのデータのアップロード
Total Phase Adaptor
I2C Temperature sensor
Remote address=0x48
データベース Kinesis/EC2
データのダウンロード
Restful Web API 使ったデータのダウンロード
デモ: 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 = 久屋大通
JAVA 環境でのインテグレーション
(エンタープライズ対応)
MATLAB Compiler SDK
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
での学習
エッジデバイス • 信号処理、画像処理、データ圧縮 • 組み込みシステム(マイコン、FPGA) データ解析/可視化 • トレンド解析・異常検出 • データ可視化・レポーティング