1
© 2016 The MathWorks, Inc.
自動運転開発に向けた、MATLAB/Simulink
活用ソリューションの提案
MathWorks Japan
アプリケーションエンジニアリング部 乙部 雅則
2
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
3
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
4
自動運転・ADASシステムの開発へ向けたチャレンジ
From Advance Driver Assistance Systems Market, Drivers, Functions , Continental AG, KSAE 2011
アダプティブクルーズコ ントロール ストップ&ゴー 前方衝突防止警告 緊急ブレーキ支援 先進緊急 ブレーキシステム 道路標識認識 ヘッドライト コントロール 車線変更支援 後退時支援 車線逸脱警告 車線維持システム 死角検知 • 複雑化するアルゴリズム • 異なるシステムの統合 • 検証工程の増大 • 認識 • 複数のセンサーによるセンサーフュージョン • 経路計画 • 制御(乗り心地)
5
自動運転・ADASシステム開発ワークフロー
DESIGN VEHICLE INTEGRATION IMPLEMENTATION REQUIREMENTSSensor Simulation and Acquisition
Sensor Fusion and Control Logic
VHDL, Verilog Perception Algorithm Design
SYSTEM TEST T EST A N D VER IF IC A T ION Rapid Prototyping C, C++ DESIGN TEST REGRE-SSION TEST 画像処理 レーダー 制御 センサーフュージョン 統合シミュレーション (Simulink) (Computer Vision System Toolbox)
(Control System Toolbox) (Phased Array
System Toolbox) 機械学習
(Statistics & Machine Learning Toolbox)
ラピッドプロトタイピング (Simulink Real Time)
6
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
7 設立:1984年 1985 1990 1995 2000 2005 •Rapid prototyping and HIL
•DSP designs •State charts •Physical modeling
•Video & Image processing Blocksets
•Model checking
•Test and
measurement •Code verification
•Embedded
software •VHDL/Verilog generation
MATLAB Simulink •Control design •Signal processing • Image processing Toolbox •Computational
finance •Computational biology
•Application
deployment •Student version •Parallel computing
•Optimization •Statistics システム設計 シミュレーション 自動コード生成 テスト 検証 •Instrument and database connectivity •DSP software •Communications systems 2010 •Certification kits •PLC code •MATLAB Mobile for iPhone/iPad •MATLAB Coder •Computer Vision System Toolbox
MATLAB/Simulink 様々なオプション製品
データ解析 アルゴリズム開発 テクニカル コンピューティング 多様なオプション製品により、複合的な要素を統合して評価可能 制御設計のみならず、画像処理、レーダー分野にも実績 •Phased Array System Toolbox •RF Tools8
画像処理のベースとなる関数群
Image Processing Toolbox™
各種画像データの読み書き
画像調査用の各種アプリケーション
画像(色・コントラスト等)の調整・変換
幾何学的変換(位置や形の変換)
レジストレーション(位置合せ)
各種画像フィルタ処理
モルフォロジー処理(膨張・収縮等の様々な形態処理)
オブジェクト(物体)検出・解析
セグメンテーション(領域切出し)
画像の領域の定量評価
ROIベースの処理(特定領域処理)
9
画像処理やコンピュータビジョンのための機能・高速ストリーミング処理
Computer Vision System Toolbox™
カメラキャリブレーション グラフィックス 大量の画像取扱い用クラス 特徴点検出・特徴量抽出、 マッチング・レジストレーション 物体認識、文字認識(OCR) – 顔・人物認識、機械学習による物体認識 – Bag-of-Visual Wordsによる物体認識・画像検索 動画ストリーミングデータの高速処理 物体のトラッキング・動き推定 ステレオビジョン向けワークフロー
3次元点群処理 ・ Structure from Motion
10
各種カメラからの画像データ直接取込み
Image Acquisition Toolbox
RGB画像+骨格座標 深度画像
業界標準のHWからの動画像取込み機能を提供
– フレームグラバ (画像入力ボード)
Analog 入力
Camera Link 入力
– DCAM 互換 FireWire (IIDC 1394)
– GigE Vision
– USB3 Vision
– 一般的なUSB Webカメラ => 簡易的取込みはMATLABの関数で可能
– IPカメラ (MATLAB基本関数)
Microsoft Kinect for Windows v1
Microsoft Xbox One Kinect センサー
カスタムアダプター開発キット
11
Simulinkによる画像処理
画像処理用の Simulinkブロック ライブラリー
(Computer Vision System ToolboxTMにより提供)
Simulink環境を用いることで、
12
デモ:Simulink
13
幾何学変換
幾何学的変換(位置や形の変換)
簡潔なコードで処理を実行
14
人物検出、トラッキング
トラッキング(物陰への隠れ)
物体が隠れてしまっても、 位置を予測しながら トラッキングを続ける 複数の人物の同時トラッキング % 人物認識 用のオブジェクト vision.PeopleDetector() HOG 特徴量 detectPeopleACF() ACFアルゴリズム 人物検出
人物認識15
誤認識の補償
人検出結果 検出漏れ カルマンフィルタによる トラッキングで、位置を予測 補償 vision.KalmanFilter() 物体トラッキング用カルマンフィルターデモ
16
様々な特徴量を用いた、さらに複雑な機械学習
Statistics and Machine Learning Toolbox
特徴変換 – 主成分分析 (PCA) – 因子分析 クラスタリング – 階層クラスタリング – K平均クラスタリング – ガウス混合分布モデル クラシフィケーション(分類) – サポートベクターマシン (SVM) – SVMを用いた複数クラスの学習 – 単純ベイズ分類器 – 線形分類器 – K近傍分類器 モデルの結合(アンサンブル学習) – バギング(Tree Bagger等) – ブースティング(AdaBoost等)
17
機械学習:サポートベクターマシンの例
Statistics and Machine Learning Toolbox
学習用データ (pos画像) 分類器 手書き文字の中で数字2を識別 学習用データ (neg画像) 識別 前 処 理 特 徴 量 抽 出 機械学習 HOG特徴量 Toolboxの組合せで、機械学習のフローの構築 容易なアルゴリズム探索 Computer Vision System Toolbox
18
ニューラルネットワークを用いた機械学習
Neural Network Toolbox™
教師あり学習 – フィードフォワードネットワーク – 放射基底ネットワーク – 動的ネットワーク(NARX, Layer-Recurrent) – 学習ベクトル量子化(LVQ) 教師なし学習 – 競合学習、自己組織化マップ(SOM) 汎化性能の改善 – 正則化、早期終了 制御システムへの適応 – モデル予測制御、線形化、モデル規範型適応制御 – SimulinkブロックおよびSimulink Coderへの対応 大規模データ及び学習の高速化 – 並列分散およびGPU上での演算 深層学習(Deep Learning)への対応 – Stacked Autoencoder
– Convolutional Neural Networks
0 5 10 15 20 25 30 10-3
10-2
10-1
100
Best Validation Performance is 0.01227 at epoch 26
M e a n S q u a re d E rr o r ( m s e ) 32 Epochs Train Validation Test Best
デモ
19
ニューラルネットワークとは?
通常状態 興奮状態 電位のレベルが閾値を超えると自身が発火する Weight 𝑥1 𝑥2 𝑥𝑛 Σ 𝑓 𝑤1 𝑤2 𝑤𝑛 𝑦 1 𝑏 Transfer Function Bias 𝑦 = 𝑓 𝑘=1 𝑛 𝑤𝑘 ∙ 𝑥𝑘 + 𝑏 0 1 0 LogisticSigmoid Linear UnitRectified
1120.2 1953.1 1231.5 0.0057 0.0022 0.9746 0.0000 0 0 1 0 出力層 隠れ層 入力層 パーセプトロン: 人間の神経細胞の動きを模擬 神経細胞 他の複数の神経細胞からの興奮状態が伝わり、 電位のレベルが上昇する パーセプトロンを1つのノードとして、多層接続
20
Deep Learning:畳込みニューラルネットワーク
Neural Network Toolbox, Parallel Computing Toolbox
compute capability 3.0以上の、CUDA GPUが必要
畳込み層 (フィルタ 処理) 入力層 フィルタ#1の結果 (マップ#1) マップ#N ReLU 活性化 関数層 局所 正規化層 max pooling層 一定領域内の 最大値 全結合層 ソフトマックス 最 大 を 選 択
2
識別結果 入力 画像 特徴量を自動で学習21
Deep Learning: 転移学習
Neural Network Toolbox, Parallel Computing Toolbox, Computer Vision System Toolbox
compute capability 3.0以上の、CUDA GPUが必要
入力 画像 学習済みのニューラルネットワーク(NN) 識別結果 NN や SVM 等 認識結果 多次元の 特徴量ベクトル取得 activation() この部分の分類器のみを学習 入力 画像 別の物体を認識したいとき 学習工数が膨大なNN構築を、 既存のNN一部流用により効率化 学習済みの ニューラルネットワークを 画像の特徴量抽出器として使用
22
ステレオビジョン
キャリブレーション用パターンの撮影 ステレオカメラ キャリブレーション ステレオ画像の並行化 左右の画像のずれから、視差・距離の計算 高速化 専用アプリケーション 抽出したパラメータ23
複数画像によるStructure from Motion
Step#1 カメラの自己位置・姿勢推定 Step#2 密な3次元点群 (マップ) 再構成 各画像間の対応点のマッチング 複数画像上の点対応関係から、各点の3次元位置を推定 : triangulateMultiview 複数Viewにまたがる、点の全対応関係情報 :findTracks 点群位置とカメラ位置・姿勢を最適化 : bundleAdjustment
24
LiDAR信号処理
MATLABを用いることで、
データの可視化や解析、
アルゴリズム開発の効率化
LiDAR: Light Detection
And Ranging
レーザーによる高精度な距
離測定
25
3次元点群処理
3次元表示 点群データの間引き 複数点群データの位置合せ 点群データの幾何学的変換 複数点群データの結合 幾何学形状(面等)へのフィッティング 複数の点群データのスチッティング26
自動運転システムに向けた3-D Vision
一つの環境(MATLABもしくはSimulink)上で、ロボットプラットフォーム(ROS)と
28
レーダーシステムのモデル化・シミュレーション
Phased Array System Toolbox
送信/受信モデル ターゲット/環境モデル アンテナアレイの設計・解析 波形設計・解析 時間処理 空間処理 時空間適応処理 Simulinkブロック 10-10 10-8 10-6 10-4 10-2 100 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 SNR=0dB SNR=3dB SNR=10dB SNR=13dB
NonfluctuatingCoherent Receiver Operating Characteristic (ROC) Curves
Pfa Pd 0 0.005 0.01 0.015 0.02 0.025 0.03 -300 -280 -260 -240 -220 -200 -180 -160 -140 -120 Time (ms) P o w e r (d B w )
29
Phased Array System ToolboxのApps
レーダ方程式計算
レーダー波形解析
30
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
31
ROS (Robot Operating System) とは?
研究者の皆様が、標準的なツールやインタフェースを 使用し、新しいロボティクスシステムを手早く開発する
ことが出来るようにすること、を意図しています。
Jonathan Bohren
ROS Crash-Course, Part I: Introduction to ROS distribution, build system and infrastructure
ロボットアプリ開発のミドルウェアでは#1
内部プロセス間通信の為の標準プロトコルを
提供
複数の開発言語とのインタフェース
(C++, Python, Java, etc.)
画像データなど標準のフォーマットを提供
良く使用されるアルゴリズムや、カメラや3D
センサーなどの各種ドライバを提供
オープンソース
32
ROS上のアプリケーション開発
Ethernet Main CPU Kinematics & Control MATLAB Image pre-processing Localization & Mapping Image Processing Map server Local Planner Global PlannerNODE NODE NODE
NODE NODE NODE NODE NODE Sensors / Actuators Robot (CPU 2) NODE NODE NODE NODE NODE ROSネットワークにおいて、ノード間でのデータ通信により処理を行う
33
自動運転に対するROS使用のメリット
• センサーデータの容易な取得
• 信頼性の高い分散処理アーキテクチャ
• 容易なコンポーネント化
• 自立ロボットシミュレーション環境との容易な統合
MATLAB・SimulinkとROS間の
容易な接続環境を提供するToolbox
34
Robotics System Toolbox
MATLAB/SimulinkをROSネットワーク上 のnodeとして登録する事が可能 (ROS masterにもなれる) MATLAB上で開発したアルゴリズムを、 ROS NodeとしてROSネットワークに接続 可能 コード生成機能を使い、Simulinkモデルか らROS nodeを生成できます。 座標変換・経路計画・トラッキング等、関連 するさまざまな関数を提供
ROS
MATLAB/ Simulink35
BMW : Automated Driving with ROS at BMW
PDF: http://roscon.ros.org/2015/presentations/ROSCon-Automated-Driving.pdf
Video: https://vimeo.com/142622935
36
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
37
自動運転・ADASシステムの開発
制御 複合的な要素を含む 閉ループシミュレーション ハンドル ブレーキ / アクセル カメラ センサー レーダー レーザー ソナー 外界環境 白線, 標識 天候 障害物 / 歩行者 車両ダイナミクス 物体検出 / 認識 Computer vision Machine learning 行動・経路 の決定 距離 / 速度 推定 Phased Array RF 判断 センサー フュージョン38
システム検証事例1:
アダプティブ クルーズコントロール
レーダーシステム
– Phased Array System Toolbox
– SimRF (Optional)
制御
– Simulink
環境モデリング
– Phased Array System Toolbox
可視化
39
システム検証事例1
制御 複合的な要素を含む 閉ループシミュレーション ハンドル ブレーキ / アクセル カメラ センサー レーダー レーザー ソナー 外界環境 白線, 標識 天候 障害物 / 歩行者 車両ダイナミクス 物体検出 / 認識 Computer vision Machine learning 行動・経路 の決定 距離 / 速度 推定 Phased Array RF 判断 センサー フュージョンデモ
40
Snapshots of the models
Top level model of ACC System Radar model with Phased Array
41
Snapshots of the models
Radar model with Phased Array System Toolbox
Transmitted chirp signal from car 1 Sample rate : 150[MHz] 3D Directivity (Sensor Array) Relative velocity b/w two vehicles Distance b/w two vehicles TX FMCW signal RX dechirped signal 77[GHz] FMCW
42
システム検証事例2:
レーンキープアシストシステム
車線からの車両の逸脱を監視、認識
ドライバーへの警告や、ステアリングを自動的に調整し車両位置を修正
Vision algorithm for lane detection
Control algorithm for steering input
Vision algorithm for lane detection
Control System for Steering Input
43
PreScan (TASS International)
– 3D driving environment modeling
– is used to test various driving conditions
Provides:
– 各種センサーや、自動車のモデル
Multiple Camera、 Rader Simple Dynamics Model
– ビル、道路などの環境モデル – 天候、照度、道路のコンディションの変化
自動運転・ADASシステムの開発
システムレベルシミュレーション オープンなMATLAB/Simulink環境に、 サードパーティー製品を接続可能 - 閉ループシミュレーション - 様々な条件下のシミュレーションを容易に実現44
システム検証事例2
制御 複合的な要素を含む 閉ループシミュレーション ハンドル ブレーキ / アクセル カメラ センサー レーダー レーザー ソナー 外界環境 白線, 標識 天候 障害物 / 歩行者 車両ダイナミクス 物体検出 / 認識 Computer vision Machine learning 行動・経路 の決定 距離 / 速度 推定 Phased Array RF 判断 センサー フュージョンデモ
45
外界環境シミュレーションと組み合わせた
アクティブセーフティー システムシミュレーション
画 像 処 理
コンピュータビジョン コントローラ
PreScan (TASS International) 上で、外界の画像を生成
46
外界環境シミュレーションと組み合わせた
閉ループシステムシミュレーション
画 像 処 理
47
–
単一のセンサーの弱点を補完
–
センサーフュージョン:複数のセンサー情報を用い、
精度の向上
更にステレオカメラや、レンジの異なるレーダー等 レーダー 項目 カメラ画像 正確 距離 不正確 直接測定可能 速度、レンジレート 画像から推定 不得意 角度分解能 比較的良好 不得意 物体の判別 可能システム検証事例3: センサーフュージョン
- センサーフュージョンシステムの目的
48
システム検証事例3:センサーフュージョン
制御 ハンドル ブレーキ / アクセル カメラ センサー レーダー レーザー ソナー 外界環境 白線, 標識 天候 障害物 / 歩行者 車両ダイナミクス 物体検出 / 認識 Computer vision Machine learning 行動・経路 の決定 距離 / 速度 推定 Phased Array RF 判断 センサー フュージョン49
コーナー進入時の、自車線前方車両CIPV (Critical In-Path Vehicle) 検出
システム検証事例3:
センサーフュージョンシステム
With Sensor Fusion
by Yaw rate
50
Simulink モデル
入力:画像・車位置情 報(リファレンス用) [PreScanで生成] レーダーモジュール . レーダーのモデリング . 検出 . トラッキング センサーフュージョン . データ相互の関連付け . データフュージョン, TTC . 同一車線車両の認識 可視化 カメラモジュール . 白線検出 . 車両検出 . トラッキング それぞれのブロックに対し、 アルゴリズム等の切替え51
シミュレーション結果
ヨーレートによる 進行方向 検出した車線 ヨーレートを基にした 前方車両 検出した車線を基にした 前方車両 ピンク: カメラの視野 紫: レーダーの範囲 * : Vision Target o : Radar Target x : Fusion Target52
衝突回避の例 (Closed Loop Simulation)
制御 ハンドル ブレーキ / アクセル カメラ センサー レーダー レーザー ソナー 外界環境 白線, 標識 天候 障害物 / 歩行者 車両ダイナミクス 物体検出 / 認識 Computer vision Machine learning 行動・経路 の決定 距離 / 速度 推定 Phased Array RF 判断 センサー フュージョン
53
54
Agenda
背景・ユーザー事例紹介
ADAS・自動運転開発/検証を取り巻く課題 シミュレーション環境 検出・認識
画像処理・コンピュータビジョン LiDAR信号処理 レーダー信号処理 ROS活用による、自動運転開発
システム開発・検証への展開
車両ダイナミクスを含む自動速度制御 外界環境を含む自動運転 センサーフュージョン
ユーザー事例ならびにまとめ
55
センサーフュージョン
レーダー アルゴリズム
画像認識
56
Continental
Developing a Traffic Sign Recognition System
標識認識アルゴリズム開発用ツールチェーン構築。オプションツールの活用により、ツー ル開発コストを低減。運転支援システムの開発・評価において、MATLABを日常的に使用。
Source: 2015 MathWorks Automotive Conference Europe, Stuttgart, Germany, September 24, 2015
Engineering challenge
MATLAB-based toolchain
57
Source: 2013 MathWorks Automotive Conference, Plymouth, MI, May 9, 2013
Magna Electronics
Designing Complex Driver Assistance Logic with MATLAB and Simulink
http://jp.mathworks.com/company/events/conferences/automotive-conference-michigan/2013/proceedings/designing-complex-driver-assistance-logic-with-matlab-and-simulink.pdf
標識の理解・解釈のアルゴリズム開発 (多次元行列)
58
センサーフュージョン
レーダー アルゴリズム
画像認識
59
Challenge
Deliver a production automotive radar sensor alignment algorithm in four weeks
Solution
Use MATLAB to develop algorithms, compare algorithm
performance, and test algorithm robustness. Use MATLAB Coder to generate production C code
Results
Generated C code as efficient as handwritten C code for this algorithm
Development time halved
Algorithm changes verified and coded in seconds
Delphi
Developing Production Radar Sensor
Alignment Algorithm
Delphi’s multimode electronically scanning radar (ESR), which uses a single radar to provide wide
coverage at midrange and high-resolution coverage at long range.
Image courtesy of Delphi
“MATLAB is my preferred tool because it speeds algorithm design and
improvement. I can do the data analysis, algorithm development, algorithm
visualization, and simulation in one place and then generate C code that is reliable, efficient, and easy for software engineers to integrate within a larger system.”
Liang Ma Delphi
レーダーセンサーのアライメントアルゴリズムを開発。MATLABコードからの 量産コード自動生成。
60
センサーフュージョン
レーダー アルゴリズム 画像認識
61
Scania :
Sensor Fusion for Advanced Emergency Breaking System
Source: 2015 MathWorks Automotive Conference Europe, Stuttgart, Germany, September 24, 2015
講演資料・ビデオ https://jp.mathworks.com/company/events/conferences/automotive-conference-stuttgart/2015/proceedings/proceedings.html 可視化 センサーフュージョンのシステム開発に、モデルベースデザインを適用。量産Cコード生成 MATLABコードを併用 システム構成 複数のSW候補 計算クラスター
62 自動運転 センサーフュージョン レーダー アルゴリズム 画像認識
自動運転に向けた、MATLAB/Simulink活用事例
63
MathWorks 製品を用いた自動運転開発
Daimler
"Implementing Autonomous Cars"
BMW
Source: Keynote Presentation at
2015 MathWorks Automotive Conference Europe, Stuttgart, Germany, September 24, 2015
Source: 2015 MathWorks Automotive Conference Europe, Stuttgart, Germany, September 24, 2015
講演資料: http://roscon.ros.org/2015/presentations/ROSCon-Automated-Driving.pdf Video: https://vimeo.com/142622935
Source: ROSCon 2015, Hamburg, Germany, Oct. 3-4, 2015 講演資料・ビデオ
https://jp.mathworks.com/company/events/conferences/automoti ve-conference-stuttgart/2015/proceedings/proceedings.html
講演資料・ビデオhttps://jp.mathworks.com/company/events/conferences/autom
64