先端運転支援システムへ向けた各種画像 コンピュータビジョンアルゴリズム開発環境 MathWorks Japan アプリケーションエンジニアリング部 シニアアプリケーションエンジニア乙部雅則 2014 The MathWorks, Inc. 1
MATLAB / Simulink テスト検証 Test and measurement Model checking Code verification Certification kits 自動コード生成 Rapid prototyping and HIL Embedded software DSP software VHDL/Verilog generation PLC code MATLAB Coder システム設計シミュレーション Simulink DSP designs State charts Physical Communications systems modeling Discrete-event simulation Video & Image processing Blocksets System objects Computer Vision System Toolbox データ解析アルゴリズム開発 Control design Signal processing Optimization Statistics Image processing Toolbox Computational finance Computational biology テクニカルコンピューティング MATLAB Application deployment Student version Instrument and database connectivity Parallel computing MATLAB Mobile for iphone/ipad 1985 1990 1995 2000 2005 2010 設立 :1984 年 様々なオプション製品により 幅広いテクニカルコンピューティング環境を提供 2
でのコミュニティー活動 File Exchange には ユーザー様が作られた 画像処理 コンピュータービジョン系のアルゴリズム アプリケーション等が 2,700 件以上登録 この一年で 400 件以上増加 共有されているほとんどのファイルは BSD ライセンス R2012b より Apps 機能も使用可能 3
アクティブセーフティシステムへ向けたアルゴリズム開発 アダプティブクルーズコントロールストップ & ゴー ヘッドライトコントロール 死角検知 車線変更支援 前方衝突防止警告 緊急ブレーキ支援 道路標識認識 車線逸脱警告 先進緊急ブレーキシステム 車線維持システム 後退時支援 From Advance Driver Assistance Systems Market, Drivers, Functions, Continental AG, KSAE 2011 4
アイデアを試してみたい / システムレベルで確認したい 世の中にあるやり方と比べてみたい 差別化にならない部分は 一般的なやり方で済ませたい MATLAB/Simulink 環境を用いることで 効率的なアルゴリズム開発 5
幾何学変換 幾何学的変換 ( 位置や形の変換 ) デモ 簡潔なコードで処理を実行各種 GUI ツール 6
高速動画ストリーミング処理 動き検出 トラッキング 動画の高速ストリーミング処理 動き検出 動いている領域の検出 車のカウント トラッキング ( 物陰への隠れ ) 物体が隠れてしまっても 位置を予測しながらトラッキングを続ける デモ 7
顔 人物の認識 機械学習 顔認識 人物認識 (Viola-Jones アルゴリズム ) (HOG 特徴量 ) I = imread('visionteam.jpg'); % 画像の読込み detector = vision.cascadeobjectdetector(); % 顔検出オブジェクト定義 faces = step(detector, I) % 顔検出 I2 = insertobjectannotation(i, 'rectangle', faces, 'Face'); % 枠描画 figure; imshow(i2); % 表示 わずか数行の MATLAB コードで 人の顔認識 デモ 8
ステレオビジョン向けワークフロー : ステレオカメラキャリブレーション デモ ステレオカメラキャリブレーション パラメータ 平行化 ステレオ画像 9
ステレオビジョン : 動画での人物認識 距離測定 % 人物認識用のオブジェクト (HOG 特徴量 ) vision.peopledetector() デモ ステレオカメラにより 人物までの距離を測定し 3m 以内になったら赤で警告 => 衝突防止等への応用 10
システム検証事例 : レーンキープアシストシステム 車線からの車両の逸脱を監視 認識 ドライバーへの警告や ステアリングを自動的に調整し車両位置を修正 Vision algorithm for lane Vision algorithm for lane detection detection Control algorithm for steering input Control System for Steering Input 11
アクティブセーフティシステムの開発 周辺環境を用いた閉ループシミュレーションが課題? 画像処理 コントローラ 12
アクティブセーフティシステムの開発システムレベルシミュレーション オープンな MATLAB/Simulink 環境に サードパーティー製品を接続可能 Prescan from TASS 3D driving environment modeling is used to test various driving conditions Provides: 各種センサーや 自動車のモデル 480 x 640 VGA Camera Simple Dynamics Model ビル 道路などの環境モデル 天候 照度 道路のコンディションの変化 13
周波数変調連続波レーダーによる アダプティブクルーズコントロール FMCW 信号により 送信時と受信時の周波数シフト情報から 前方の車までの距離を推定 前方の車が 間隔 50m 速度 96km/h 自車が100km/h ( 相対速度 4km/h) で走行のときの例 14
フェーズドアレイシステムとは? 以下を含むシステム : トランスデューサのアレイ 一般的には等間隔に配置 ( 必須条件ではない ) 複数のトランスデューサを空間的に配置することで有効に活用する信号処理技術 トランスデューサ信号の位相をずらし ( 遅延させ ) 特定の方向においてゲインを得る ( 他の方向からの雑音 / 干渉を最小化 ) Signal Wavefront Steering Delay Stage t 1 t 2 t 2 Signal Alignment t 1 S 0 15
フェーズドアレイ信号処理システムをモデル化 シミュレーションするツールおよびアルゴリズム Phased Array System Toolbox アレイ設計 解析 波形設計 解析 送信 / 受信モデル ターゲット / 環境モデル 時間処理 空間処理 時空間適応処理 P d NonfluctuatingCoherent Receiver Operating Characteristic (ROC) Curves 1 0.9 SNR=13dB 0.8 SNR=10dB 0.7 SNR=3dB 0.6 0.5 SNR=0dB 0.4 0.3 0.2 0.1 0 10-10 10-8 10-6 10-4 10-2 10 0 P fa Power (dbw) Target Range Estimation -120-140 -160-180 -200-220 -240-260 -280-300 0 0.005 0.01 0.015 0.02 0.025 0.03 Time (ms) 16
I/O ドライバ AXI I/F Zynq( などのプログラマブル SoC) 向けワークフロー コントローラ 制御対象 ARM FPGA Embedded Coder HDL Coder ARM プロセッサ C Code Software AXI バス FPGA HDL Code Hardware 物理モデル Zynq 等のプログラマブル SoC 17
まとめ MATLAB Simulink を使用することにより すぐに動かすことが出来る統合開発環境上で 画像処理 コンピュータービジョンの対話的 アルゴリズム検討 検証 統合マルチドメイン開発プラットフォームを提供 : 画像システム 制御設計 システムレベルシミュレーション サードパーティー製品との接続 画像処理 コンピュータービジョンの開発効率の向上 案内 18
画像処理 コンピュータビジョン向け MATLAB 活用セミナー ( 予定 ) 2014 年 8 月 27 日 ( 水 ) 13:30-16:45 秋葉原 ( 予定 ) 19
Image Processing Toolbox 画像処理のベースとなる関数群 各種画像データフォーマットの読込 画像調査用の各種 GUIツール 画像 ( 色 コントラスト等 ) の調整 変換 幾何学的変換 ( 位置や形の変換 ) レジストレーション ( 位置合せ ) 各種フィルタ処理 モルフォロジー処理 ( 膨張 収縮等の様々な形態処理 ) オブジェクト ( 物体 ) 検出 解析 セグメンテーション ( 領域切出し ) 物体の定量評価 ROIベースの処理 ( 特定領域処理 ) 20
画像の表示 調査 / コントラストの調整 マッチング 画像の表示 調査 画像ビューアーアプリケーション 色の閾値アプリケーション コントラストの調整 マッチング 21
幾何学変換 / 各種フィルター処理 幾何学的変換 ( 位置や形の変換 ) 各種フィルター処理 ノイズ除去 22
モルフォロジー処理 / オブジェクト検出 解析 モルフォロジー処理 ( 膨張 収縮等の様々な形態処理 ) オブジェクト ( 物体 ) 検出 解析 境界線を抽出 直線検出によるレーン検出 車線の検出 23
セグメンテーション / 定量評価 セグメンテーション ( 領域切出し ) 葉の部分を抽出 物体の定量評価 各中心位置 面積を計測 中心点 面積の抽出 24
画像処理やコンピュータビジョンのための機能 高速ストリーミング処理 Computer Vision System Toolbox カメラキャリブレーション グラフィックス 特徴点検出 特徴量抽出 マッチング レジストレーション 物体認識 文字認識 (OCR) 顔 人物認識 カスタム物体に対する機械学習 動画ストリーミングデータの高速処理 物体のトラッキング ステレオビジョン向けツール 画像処理用の Simulink ブロックセット C コード生成 固定小数点に対応した画像処理用システムオブジェクト 25
画像取扱い機能 カメラキャリブレーション カメラ位置推定 レンズ歪カメラ内部カメラ外部のパラメータ抽出 高速なグラフィックス レンズ歪補正 注釈挿入 マーカー挿入 図形挿入 テキスト挿入 26
特徴点ベースのワークフロー 特徴点のマッチングを用いた 物体認識 SURF/Harris/FAST/BRISK 等の特徴点検出 SURF/FREAK/BRISK/HOG 等の特徴量抽出 RANSAC を用いた対応点推定 物体の検出 特徴点ベースのレジストレーション ( 位置合せ ) 27
パターンマッチング テンプレートマッチング ターゲット テンプレート ブロックマッチング 28
文字認識 OCR ( 光学文字認識 ) 29
顔 人物の認識 機械学習 顔認識 人物認識 (Viola-Jones アルゴリズム ) (HOG 特徴量 ) 機械学習 ラベリング用のツール (Haar / HOG / LBP 特徴量 ) データベース 30
高速動画ストリーミング処理 動き検出 トラッキング 動画の高速ストリーミング処理 動き検出 動いている領域の検出 車のカウント トラッキング 物体が隠れてしまっても 位置を予測しながらトラッキングを続ける 31
ステレオビジョン向けワークフロー ステレオ画像の平行化 ステレオカメラキャリブレーション デモ 平行化 左右の画像から特徴点の抽出 奥行きの推定 ( 視差画像 ) 32
各種カメラからの画像データ直接取込み Image Acquisition Toolbox 業界標準の HW からの動画像取込み機能を提供 フレームグラバ ( 画像入力ボード ) Analog 入力 Camera Link 入力 DCAM 互換 FireWire (IIDC 1394) GigE Vision 一般的な USB Web カメラ => 簡易的取込みは MATLAB の関数で可能 Microsoft Kinect for Windows RGB 画像 + 骨格座標 (2 人まで ) 認識した人 (6 人まで ) 深度画像 カスタムアダプター開発キット Simulink ブロック 深度プロット 33