32
1 © 2018 The MathWorks, Inc. ADAS・自動運転の開発・検証を加速するMATLAB MathWorks Japan アプリケーションエンジニアリング部 大塚 慶太郎 [email protected]

ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

1© 2018 The MathWorks, Inc.

ADAS・自動運転の開発・検証を加速するMATLAB

MathWorks Japanアプリケーションエンジニアリング部大塚 慶太郎[email protected]

Page 2: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

3

自動運転システムブロック図

認識

位置特定

制御

Sensors• Cameras• RADAR• LIDAR• GPS

Commands• Motion control• Actuator

行動経路決定

Connectivity

Page 3: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

4

ADAS/自動運転開発・検証の統合プラットフォームMATLAB® / Simulink® / Automated Driving System Toolbox™

認識

位置特定行動経路決定

制御

Sensors• Cameras• RADAR• LIDAR• GPS

Commands• Motion control• Actuator

Connectivityシナリオ作成とシミュレーション

画像処理やセンサーフュージョン

LiDAR信号処理、センサーデータの可視化

Page 4: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

5

Agenda

▪ LiDARデータの取り扱い・可視化

▪ 画像処理・画像認識領域での活用・センサフュージョン

▪ シナリオ生成とシミュレーション

▪ まとめ

Page 5: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

6

画像処理アルゴリズム開発の基礎~豊富なアルゴリズム・ライブラリ群~

セグメンテーション機械学習・DeepLearningによる

物体認識

ステレオビジョン

テクスチャ解析

レジストレーション

物体の定量評価最適化

Image Processing Toolbox™Computer Vision System Toolbox™

Page 6: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

7

LiDARデータの取り扱い

LiDARが初めてでも、使いやすい各種関数による可視化・解析・アルゴリズム開発

File I/O

▪ pointCloud

▪ velodyneFileReader

▪ pcread

▪ pcwrite

Preprocessing

▪ pcdenoise

▪ pcdownsample

▪ pctransform

Registration

▪ pcregistericp

▪ pcregisterndt

Segmentation

▪ pcsegdist

▪ segmentLidarData

▪ pcfitplane

Page 7: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

8

LiDARデータに対するラベリングとDNNによる分類

学習済みDNN

DNN

design + training

前処理・ラベリング

ネットワーク学習

Application

logic

C++/CUDA

+ TensorRT

C++/CUDA

+ cuDNN

Standalone

Deployment

Application

design

Page 8: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

9

LiDARデータのGround Truthラベリング

Page 9: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

10

LiDAR Semantic Segmentation

実装データへのアクセス 学習前処理 ラベリング

Page 10: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

11

他のセンサーデータとの比較、結果の可視化

画像処理による認識結果

点群を2次元でプロット

複数センサの可視化や結果比較、独自GUIの作成も容易に実現できます

Page 11: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

12

Agenda

▪ LiDARデータの取り扱い・可視化

▪ 画像処理・画像認識領域での活用・センサフュージョン

▪ シナリオ生成とシミュレーション

▪ まとめ

Page 12: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

13

アルゴリズム

– RANSACによる区画線フィッティング

– 車検出器 (深層学習・ACF)

座標系の変換

– 車両座標系 <–> 画像座標系 の変換

– 単眼画像による、物体までの距離推定

可視化機能

– 区画線

– 鳥瞰図 (birdsEyeViewクラス)

自動運転分野向けコンピュータービジョンアルゴリズム単眼カメラによる認識アルゴリズムモデル

物体認識や距離推定用の関数が多数提供されており、カスタマイズも可能です

Page 13: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

15

カメラオブジェクト検出器

DUT = カメラモジュール (black box)

検出器の評価

評価

(画像座標)

検出結果 vehicleToImage

オブジェクトリスト (車両座標系)(位置、速度、 etc.)

Camera parametersカメラ

検証目的で設置したカメラ(ex. point grey camera)

Ground Truth(画像座標)

Ground Truth

Labeler App

Page 14: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

16

カスタマイズ可能な半自動Ground Truthラベリングツール

独自ファイルの読み込み、自動化アルゴリズムの追加・表示機能の拡張等、様々なカスタマイズも可能です

Page 15: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

17

カメラ:物体検出

カメラ:区画線検出

レーダー

Lidar

カメラ:動画像

IMU(角速度等)

自動運転車両のセンサー例

Page 16: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

19

Time CAN ID Type DLC Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7

26.08050 2 1519 RxD 8 184 33 234 130 235 58 51 30

26.08063 1 522 RxD 4 11 146 50 210

26.08073 2 50 RxD 7 80 22 127 119 239 44 193

26.08088 1 26 RxD 8 166 226 46 72 37 78 181 217

26.08096 2 1844 RxD 8 70 123 252 114 156 80 38 217

26.08111 1 50 RxD 7 254 63 210 227 249 152 78

26.08135 1 228 RxD 2 249 87

26.08158 1 294 RxD 4 156 73 95 195

26.08160 2 228 RxD 8 254 134 94 200 148 244 173 119

26.08183 1 506 RxD 8 73 234 218 169 139 28

不均一なデータ長復号化

- DBC / MDF / 任意のバイナリファイルのインポート- 物理値への変換

- bin2dec / hex2dec- データ長の調整- 様々な日付時間、フォーマットの取り扱い- リサンプリングや様々な補間処理

よくある問題点:

MATLABを使うことで容易になる点:

CAN データの同期、前処理

Page 17: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

20

サンプリング周期の異なるデータの結合 : synchronize

>> engineRPM(1:5,1)

ans =

5×1 timetableTime EngineRPM

______________ ________________

0.000374629 秒 4037.56729223748

0.029330264 秒 1000

0.051818876 秒 1401.15048339456

>> vehSpd(1:5,1)

ans =

5×1 timetableTime VehicleSpeed

______________ _________________

0.000374629 秒 57.2445375110937

0.029362391 秒 0

0.051849886 秒 0.304744919537912

>>Data = synchronize(vehSpd,engineRPM,'union','linear');

>> Data(1:5,1:2)

ans =

5×2 timetable

Time VehicleSpeed EngineRPM

______________ __________________ ________________

0.000374629 秒 57.2445375110937 4037.56729223748

0.029330264 秒 0.0634438511196147 1000

0.029362391 秒 0 1000.57307945817

0.051818876 秒 0.304324679757764 1401.15048339456

0.051849886 秒 0.304744919537912 1401.46492354096

Page 18: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

21

欠損データの再現 : fillgaps

% 自己回帰モデルによる補間>>y = fillgaps(x,len);

x: 対象信号 len:推定に使用するデータ長 y:補間後の信号

resample関数

fillgaps関数

約0.4秒間の欠損波形と真値音声信号への適用例

Page 19: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

22

multiObjectTracker – Sensor Fusion Framework

センサーフュージョン ワークフロー

カメラ

レーダー

IMU

物体検出距離推定

距離推定

速度、ヨーレート

• 検出の割り当て• トラッキング

複数のセンサから得られた

検出結果の統合

オブジェクトリスト• 検出の割り当て• トラッキング

Page 20: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

23

異なるセンサからの、複数の検出結果を フュージョン・トラッキング

レーダー

複数オブジェクト用のトラッカー

トラック情報カルマンフィルタ

トラック管理

時刻

位置

速度

カメラ

Dete

ctio

n P

acker

時刻

位置

速度Detections

Time

Measurement

Measurement Noise

Time

State

State Covariance

Track ID

Age

Is Confirmed

Is Coasted

mutliObjectTracker

• 検出結果のトラックへの割当て• 新しいトラックの生成• 現有トラックの更新• 古いトラックの削除

• トラックの状態の予測・更新

• カルマンフィルター:線形・拡張・unscented

Page 21: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

25

CAN FDデータを利用したフュージョンアルゴリズムの開発

CAN FD

Ethernet

Radar

Camera

IMU

CA

NCAN Tx

TCP/IP

FCW application

FCW algorithm

Visualization

Read

sensor data stream

and video stream

CAN

Rx

TCP/IP

Vision Object

Radar Object

Lane

Vehicle Speed

Yaw Rate

Video frame

Transmitter

Vision Object

Radar Object

Lane

Vehicle Speed

Yaw Rate

Video frame

Recorded

messages

Recorded video

CAN Tx

TCP/IP

▪ Stream CAN FD data to

prototype algorithms on

your laptop

Vehicle Network ToolboxTM

TransmitterReceiver

Ethernet

CAN FD

Vector CAN Interface

VN1610

Video stream

Object Lists

(vision/radar/imu)

Page 22: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

26

センサーフュージョンによるFCW(前方車接近警報)multiObjectTracker

▪ objectDetection

▪ trackingEKF

▪ trackingUKF

▪ trackingKF

▪ updateTracks

Video Annotation

▪ parabolicLaneBoundary

▪ insertLaneBoundary

▪ vehicleToImage

▪ insertObjectAnnotation

豊富な可視化機能、使いやすいフュージョン用フレームワークで開発エンジニアをサポートします

Page 23: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

27

Agenda

▪ LiDARデータの取り扱い・可視化

▪ 画像処理・画像認識領域での活用・センサフュージョン

▪ シナリオ生成とシミュレーション

▪ まとめ

Page 24: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

28

運転シナリオシミュレーションの重要性

・より多くのテストケースバリエーションでの検証・実車データ取得の難しい、危険なシナリオ

・コーナーケースでのフュージョンアルゴリズム検証・異なる特性のセンサの組み合わせ、配置位置の検証

カメラ物体検出

Rader物体検出

カメラ区画線検出

Page 25: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

29

運転シナリオ生成&シミュレーションにおける困りごと

環境を増設したいが、コストが気になる・・・

もう少しシミュレーション速度を改善したいシナリオ作成自体が

タイヘン

慣れているMATLAB/Simulink環境で完結したい

(制御アルゴと統合)

Page 26: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

30

Driving Scenario Designer : シナリオ作成用専用App衝突被害軽減ブレーキ(AEB)用シナリオの例

AEB Scenario: Vulnerable Road User

-マウス操作で様々な形状の道やセンサーを定義できます

20-60 km/h

5 km/h

Page 27: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

31

Designer上で定義できる道やアクター、センサーの種類

▪ 道、ジャンクション ▪ アクター ▪ センサー

合流や立体交差など、3次元座標で中心を表現できる全ての道

乗用車や自転車、歩行者を含む5種類、お客様独自のクラスを追加することも可能

カメラ・レーダーの2種類様々な検出パラメータを設定可能

-センサーフュージョン・経路計画関連アルゴリズム開発者が必要とする種類、粒度のモデルを定義できます

Page 28: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

34

Driving Scenario Designerで作成したシナリオの活用

シミュレーション実行&

鳥瞰図プロット

Driving Scenario

Designer

Simulink モデル

関数としてエクスポート

-作成したシナリオは関数としてエクスポート可能、車両ダイナミクスモデルや既存の制御アルゴリズムとSimulink上で統合してシミュレーション可能です。

Page 29: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

36

Vehicle Dynamics Blocksetに同梱

ユーザ様インストール

ゲーミングエンジンとの協調シミュレーションVehicle Dynamics Blockset™

▪ ゲーミングエンジンと閉ループ構築可能

Simulinkモデル

ゲーミングエンジンの実行ファイル(コンパイル済みのモデル)

Unreal Engine(ゲーミングエンジンのエディター)

コンパイル

車速、車輪速、車体傾き、など

カメラモジュール信号(RGB)車速、車輪速、車体傾き、など

Page 30: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

37

Agenda

▪ LiDARデータの取り扱い・可視化

▪ 画像処理・画像認識領域での活用・センサフュージョン

▪ シナリオ生成とシミュレーション

▪ まとめ

Page 31: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

38

Key Takeaways : ADAS/自動運転開発・検証の統合プラットフォーム

認識

位置特定行動経路決定

制御

Sensors• Cameras• RADAR• LIDAR• GPS

Commands• Motion control• Actuator

Connectivity

画像処理やセンサーフュージョン

LiDAR信号処理、センサーデータの可視化

シナリオ作成とシミュレーション

-カスタマイズ可能な多くのツール・関数群、MATLAB/Simulink上でシームレスに動作-既存の資産や各種オプション製品との連携-アルゴリズム開発からコード生成、実装までを網羅する統合開発環境

Page 32: ADAS・自動運転の開発・検証を加速するMATLAB · 異なるセンサからの、複数の検出結果をフュージョン・トラッキング レーダー 複数オブジェクト用のトラッカー

39

© 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The

MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks.

Other product or brand names may be trademarks or registered trademarks of their

respective holders.