いまからはじめる 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 0 1 ~BWclear 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); % 1フレーム 読 込 み... % 各 種 処 理 step(vidplayer, I); % 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() gpuarray() GPU メモリー わずかなコード 変 更 で 高 速 化 が 可 能 38
MATLABファイルからCコードを 生 成 MATLAB Coder MEX MATLABファイル 実 行 の 高 速 化 MATLABファイル.c.exe コード 生 成 / 実 装 実 装 (C/HDL) 技 術 者 へハンドオフ ANSI-C/ISO-C/GNU-C 準 拠 整 数 浮 動 小 数 点 固 定 小 数 点 演 算 対 応 (Fixed-Point Designerが 必 要 ) スタンドアロンの アプリケーション 作 成 (プロトタイプ 配 布 ).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 コード 生 成 C, C++ Processor アルゴリズム 検 討 システム 設 計 実 装 VHDL, Verilog FPGA/ASIC モデル 検 証 SystemC SoC Virtual Platform テスト& 検 証 アルゴリズム 検 討 システム 設 計 と 実 装 検 証 が 統 合 された 環 境 ターゲット 依 存 しないコー ド(C VHDL Verilog) コードの 自 動 生 成 による 開 発 期 間 の 短 縮 MATLAB/Simulinkモデル を 動 作 可 能 な 仕 様 とし そ れを 中 心 とした 開 発 フロー 42
Simulinkの 特 長 概 観 Simulinkとは? ブロック 線 図 ベースのシステムモデリング シミュレーション 様 々な 系 でのマルチドメインシミュレーション ( 連 続 系 離 散 マルチレート 浮 動 固 定 小 数 点 イベントドリブン 等 制 御 / 制 御 対 象 ) 分 かりやすい 並 列 動 作 モデリング 時 間 軸 シミュレーション ストリーミング 処 理 プリコンパイル 型 のため 高 速 な 処 理 ブロックライブラリ MATLAB/ Simulink システムシミュレーション 環 境 C/C++コードのブロック 化 時 間 / 周 波 数 応 答 の 表 示 システムシミュレーション を 短 期 間 で 実 現 43
Zynq(などのプログラマブルSoC) 向 けワークフロー ARM/FPGA 実 装 用 コントローラ 制 御 対 象 物 理 モデル ARM FPGA 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