いまからはじめる、MATLABによる 画像処理・コンピュータービジョン (活用編) MathWorks Japan アプリケーションエンジニアリング部 シニアアプリケーションエンジニア 乙部 雅則 © 2013 The MathWorks, Inc.1 デモ デモ Microsoft Kinectとの連携 ハードウェアからの容易なデータ 取り込み • 3次元座標・奥行き取得 • ジェスチャ認識 etc RGB画像+ 骨格座標 深度画像 認識した人(6人まで) 深度プロット 2 アジェンダ 1. Microsoft Kinect を使ったデモ 2. 画像処理・コンピュータービジョン向けツールボックス概要 3. デモ (2種類 + Kinectのデモスクリプト紹介) 4. 高速化ソリューション(GPU処理、Cコード化)最新対応状 況のご紹介 5. Simulinkによる実装環境のご紹介 プレゼンテーションファイル・デモに使用したファイルは 後日ダウンロードいただけます。 3 アジェンダ 1. Microsoft Kinect を使ったデモ 2. 画像処理・コンピュータービジョン向けツールボックス概要 3. デモ (2種類 + Kinectのデモスクリプト紹介) 4. 高速化ソリューション(GPU処理、Cコード化)最新対応状 況のご紹介 5. Simulinkによる実装環境のご紹介 4 画像処理、解析およびアルゴリズム開発 Image Processing Toolbox 各種画像データフォーマットの読込 画像調査用の各種GUIツール 画像(色・コントラスト等)の調整・変換 幾何学的変換(位置や形の変換) レジストレーション(位置合せ) 各種フィルタ処理 モルフォロジー処理(膨張・収縮等の様々な形態処理) オブジェクト(物体)検出・解析 セグメンテーション(領域切出し) 物体の定量評価 ROIベースの処理(特定領域処理) 5 幾何学変換 / 各種フィルター処理 幾何学的変換(位置や形の変換) 各種フィルター処理 ノイズ除去 6 モルフォロジー処理 / オブジェクト検出・解析 モルフォロジー処理(膨張・収縮等の様々な形態処理) 境界線を 抽出 オブジェクト(物体)検出・解析 直線検出 による レーン検出 7 セグメンテーション / 定量評価 セグメンテーション(領域切出し) 葉の部分を 抽出 物体の定量評価 各中心位置・ 面積を計測 8 コンピュータビジョン・高速動画ストリーミング処理 Computer Vision System Toolbox カメラキャリブレーション グラフィックス 特徴点検出・特徴量抽出、 マッチング・レジストレーション 物体認識 – 顔・人物認識 – カスタム物体に対する機械学習 動画ストリーミングデータの高速処理 物体のトラッキング ステレオビジョン向けツール 画像処理用のSimulink ブロックセット 9 カメラキャリブレーション カメラ位置推定 レンズ歪 カメラ内部 カメラ外部の パラメータ抽出 レンズ歪補正 グラフィックス 注釈挿入 マーカー挿入 図形挿入 テキスト挿入 10 特徴点ベースのワークフロー 特徴点のマッチング・物体認識 SURF/Harris/FAST等 の特徴点検出・特徴量抽出 RANSACを用いた対応点推定 特徴点ベースのレジストレーション(位置合せ) 11 顔・人物の認識、機械学習 顔認識 (Viola-Jonesアルゴリズム) 人物認識 (HOG特徴量) 機械学習 (Haar / HOG / LBP 特徴量) データベース 12 高速動画ストリーミング処理・動き検出、トラッキング 動画の高速ストリーミング処理・動き検出 車のカウント 動いている領域の検出 トラッキング 物体が隠れてしまっても、 位置を予測しながら トラッキングを続ける 13 ステレオビジョン向けワークフロー 2枚のステレオ画像の平行化 平行化 2つの画像から特徴点の抽出 奥行きの推定 (ディスパリティーマップ) 14 アジェンダ 1. Microsoft Kinect を使ったデモ 2. 画像処理・コンピュータービジョン向けツールボックス概要 3. デモ (2種類 + Kinectのデモスクリプト紹介) 4. 高速化ソリューション(GPU処理、Cコード化)最新対応状 況のご紹介 5. Simulinkによる実装環境のご紹介 15 デモ1:物体を識別し数える・面積を求める 5種類の木の実を区別して数える 赤い粒の平均面積の測定 16 デモ1:物体を識別し数える・面積を求める: 処理結果 17 デモ1:数えるデモ : 手順 二値化 (輝度二値化) エッジ検出 モルフォロジー処理 (塗り潰し・橋渡し・オー プン処理等) [形状計測] 扁平率で判別 [統計処理] 面積で グループ分け フィルター処理 [色空間変換] 色相で判別 機械学習で判別 MATLAB Central File Exchange デモ 18 HSV色空間 Hue: 色相 赤:0 / 1.0 Value: 明度 Saturation: 彩度 (白/灰色/黒は0) 19 機械学習 > 機械学習用の関数 [Haar-like/Histogram of Orientation (HOG)/Local Binary Pattern (LBP)] trainCascadeObjectDetector() カスケード型分類器 ポジティブ画像と ネガティブ画像を準備 学習済みデータベース (xxx.xml) (Haar / HOG / LBP 特徴量) I = imread('visionteam.jpg'); % 画像の読込み detector = vision.CascadeObjectDetector('xxx.xml'); % 検出オブジェクト定義 faces = step(detector, I) % 顔検出 I2 = insertObjectAnnotation(I, 'rectangle', faces, 'Face'); %枠描画 figure; imshow(I2); % 表示 20 デモ1:数えるデモ : まとめ 二値化 (輝度二値化) エッジ検出 モルフォロジー処理 (塗り潰し・橋渡し・オー プン処理等) [形状計測] 扁平率で判別 [統計処理] 面積で グループ分け フィルター処理 [色空間変換] 色相で判別 機械学習で判別 様々な処理を簡潔な記述で処理可能な、豊富な関数群 対話的な処理方法探索 File Exchangeサイトの利用 21 の利用 22 でのコミュニティー活動 File Exchangeには、ユー ザー様が作られた、画像処 理・コンピュータービジョン 系のアルゴリズム、サンプ ル等が2千件以上登録 共有されているほとんど のファイルは、BSDライ センス R2012bより、Apps機能 も使用可能 23 粒子が接触している場合 24 watershed (分水嶺) セグメンテーション BWclear 1 ~BWclear 0 1 0 距離変換 bwdist(~BWclear) 0 -bwdist(~BWclear) 背景部分を-Infにして、 領域に含まれないようにする 0 BWdist(~BWclear) = -Inf 極小 分水嶺 -Inf 分水嶺変換 領域#1 領域#2 25 デモ2: ホ ッ キ ョ ク グ マ 26 AR (拡張現実:Augmented Reality) 動画のストリーミング処理 局所特徴量を用いたマッチング トラッキングによる認識処理の高速化 => 局所特徴量を用いた物体認識 物体や人物のトラッキング リアルタイムの画像の向き補正 等々への応用 27 動画のストリーミング処理 % ビデオ読込み用のオブジェクトの作成 vidReader = vision.VideoFileReader('fileName.avi'); % ビデオ表示用のオブジェクトの作成 vidPlayer = vision.DeployableVideoPlayer; % ループ処理 while (1) I = step(vidReader); ...... step(vidPlayer, I); % 1フレーム 読込み % 各種処理 % 1フレーム 表示 end 28 デモ2 : 手順1 カメラからの画像 リファレンス画像 局所特徴量: SURF 特徴点の検出 特徴量の抽出 マッチング 29 デモ2 : 手順2 第1フレーム RANSACを用いた幾何学変換推定 (外れ値の除去) 幾何学変換 0.525 0.041 0 −0.042 0.486 0 75.123 168.891 1 合成 30 デモ2 : 手順3 最初のフレームの画像 次のフレームの画像 この中でエッジを検出 局所特徴量マッチングの代わりに、 エッジのトラッキングを用いることで、 高速化 推定した幾何学変換 高速な動画ストリーミング処理 特徴点ベースマッチングやトラッキング等 の高度な処理を簡潔に実現 アイデアの迅速なプロトタイピング 31 各種カメラからの画像データ直接取込み Image Acquisition Toolbox 業界標準のHWからの動画像取込み機能を提供 – フレームグラバ (画像入力ボード) Analog 入力 Camera Link 入力 – DCAM 互換 FireWire (IIDC 1394) – GigE Vision – 一般的なUSB Webカメラ Microsoft Kinect RGB画像+ スケルトン カスタムアダプター開発キット 認識した人(6人まで) 深度画像 32 Microsoft Kinect 接続のサポート 赤外線照射 カラーカメラ 赤外線深度センサー マイクロフォン アレー RGB画像:1280 x 960 / 12 fps or 640 x 480 / 30 fps Depth : 640x480、320x240、80x60 30fps Depth Mode: Default (range of 50 to 400 cm) Near (range of 40 to 300 cm). 33 デモ スクリプト Microsoft Kinectとの連携 ハードウェアからの容易なデータ 取り込み • 3次元座標・奥行き取得 • ジェスチャ認識 etc RGB画像+ 骨格座標 深度画像 認識した人(6人まで) 深度プロット 34 アジェンダ 1. Microsoft Kinect を使ったデモ 2. 画像処理・コンピュータービジョン向けツールボックス概要 3. デモ (2種類 + Kinectのデモスクリプト紹介) 4. 高速化ソリューション(GPU処理、Cコード化)最新対応状 況のご紹介 5. Simulinkによる実装環境のご紹介 35 並列/分散処理・GPGPUによる高速・大規模データ処理 Parallel Computing Toolbox • 並列・分散処理による高速化 • 12コアまでのマルチコア、マルチCPU処理が可能 • MATLAB 関数のGPUによる実行 • 2次元FFT等 150以上のMATLAB基本関数 • Image Processing ToolboxのGPUサポート関数 imrotate(), imfilter(), imdilate(), imerode(), imopen(), imclose(), imtophat(), imbothat(), imshow(), padarray() ...... • MATLAB Distributed Computing Server との併 用によりコンピュータークラスタの使用が可能 36 Image Processing ToolboxのGPUサポート関数 (11関数) imrotate, imfilter, imdilate, imerode, imopen, imclose, imtophat, imbothat, imshow, padarray, bwlookup (24関数の追加) bwmorph, im2single, imgradientxy, medfilt2 corr2, im2uint8, imhist, rgb2gray edge, im2uint16, imlincomb, rgb2ycbcr histeq, imabsdiff, imnoise, std2 im2double, imadjust, imresize, stdfilt im2int16, imgradient, mat2gray, ycbcr2rgb 37 GPGPU処理 各種関数を、GPU上で実行 I = imrotate(I, 75, 'bicubic'); % 画像を75°回転 CPU I = gpuArray(I); I = imrotate(I, 75, 'bicubic'); % 画像を75°回転 gather() GPU メモリー gpuArray() メモリー わずかなコード変更で、高速化が可能 38 MATLABファイルからCコードを生成 MATLAB Coder MATLABファイル実行 MEX の高速化 コード生成/実装 実装(C/HDL)技術者へハンドオフ .c • ANSI-C/ISO-C/GNU-C準拠 • 整数・浮動小数点・ 固定小数点演算対応 (Fixed-Point Designerが必要) MATLABファイル .exe .lib スタンドアロンの アプリケーション作成 (プロトタイプ・配布) 他のソフトウェアへ MATLABアルゴリズムの統合 39 Cコード生成: MATLAB Coder 画像処理・コンピュータービジョン関連関数の、Cコード生成対応状況 (Image Processing Toolbox: 10関数の追加) conndef, imcomplement, imfill, imhmax, imhmin, imreconstruct, imregionalmax, imregionalmin, iptcheckconn, padarray (Computer Vision System Toolbox: 14関数の追加) extractHOGFeatures, extractFeatures, detectSURFFeatures, disparity, detectMSERFeatures, detectFASTFeatures, vision.CascadeObjectDetector, vision.PointTracker, vision.PeopleDetector, MSERRegions, cornerPoints, SURFPoints 40 アジェンダ 1. Microsoft Kinect を使ったデモ 2. 画像処理・コンピュータービジョン向けツールボックス概要 3. デモ (2種類 + Kinectのデモスクリプト紹介) 4. 高速化ソリューション(GPU処理、Cコード化)最新対応状 況のご紹介 5. Simulinkによる実装環境のご紹介 41 MATLAB/Simulinkにおける実装環境 Simulink Coder / Embedded Coder HDL Coder / HDL Verifier アルゴリズム検討 システム設計 コード 生成 検証 Processor VHDL, Verilog FPGA/ASIC ターゲット依存しないコー ド(C、VHDL、Verilog) コードの自動生成による 開発期間の短縮 実装 C, C++ テスト&検証 モデル アルゴリズム検討、 システム設計と実装・検証 が統合された環境 SystemC SoC Virtual Platform MATLAB/Simulinkモデル を動作可能な仕様とし、そ れを中心とした開発フロー 42 Simulinkの特長・概観 Simulinkとは? ブロック線図ベースのシステムモデリング・ シミュレーション 様々な系でのマルチドメインシミュレーション MATLAB/ Simulink システムシミュレーション環境 (連続系・離散、マルチレート、浮動・固定小 数点、イベントドリブン等、制御/制御対象) 分かりやすい並列動作モデリング ブロックライブラリ 時間/周波数応答の表示 C/C++コードのブロック化 時間軸シミュレーション・ストリーミング処理 プリコンパイル型のため高速な処理 システムシミュレーション を短期間で実現 43 Zynq(などのプログラマブルSoC)向けワークフロー 制御対象物理モデル ARM/FPGA実装用コントローラ FPGA ARM Embedded Coder HDL Coder ARM プロセッサ C Code Software AXIバス FPGA HDL Code Hardware Zynq等のプログラマブルSoC 44 デモブースのご案内 信号処理アルゴリズム設計 ~システム設計~実装 45 画像処理回路ハードウェア実装の実事例講演ご紹介 46 各種サービス テクニカルサポート リソース 100名を超えるサポートエンジニア – 北米、欧州、アジアで現地サポート 高い顧客満足度 24時間以内に70%問題解決 80%のお客様が80-100%の満足度と回答 利用方法 Webページ http://www.mathworks.co.jp/support/contact_us/ MATLABヘルプメニュー MATLABデスクトップから サポートリクエストを起動 トレーニングサービス、コンサルティング 効率的な導入 47 まとめ MATLAB・Simulinkを使用することにより、 すぐに動かすことが出来る統合開発環境上で、 画像処理・コンピュータービジョンの効率的 アルゴリズム検討・検証 – 多くの高速/高度な関数・ブロックを用いた様々な方式検討 – 様々な方式・パラメーターのトライ&エラーを迅速に実施が可 – 統合された開発環境上で、GPGPU高速化や、C・HDL生成による実装 を含む、多くのツールとの連携機能 – テクニカルサポートや、多くのユーザ・研究者の方々によるMATLAB Centralなどの共有リソースの有効活用 画像処理・コンピュータービジョンの開発効率の向上 © 2013 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. 48 スクリプトのダウンロード先 http://www.mathworks.co.jp/matlabcentral/fileexchange/44214-how-to-apply-image-processing-andcomputer-vision-wih-matlab-japanese-matlab-expo-2013 49 © 2013 The MathWorks, Inc. 50
© Copyright 2024 Paperzz