いまからはじめる、matlabによる 画像処理 ... gige vision – 一般的なusb...

Post on 15-Mar-2018

233 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 © 2013 The MathWorks, Inc.

いまからはじめる、MATLABによる

画像処理・コンピュータビジョン (導入編)

MathWorks Japan

アプリケーションエンジニアリング部

シニアアプリケーションエンジニア

大谷 卓也

2

画像処理とは?

例えば、デジタルカメラの内部処理

様々な画像処理がハードウェア・ソフトウェアで行われる

様々なアルゴリズムを使用し、画像の変形や変換、色の補正、ノイズ除去などを行うこと

統計解析などを併用し、画像からデータの数値化を行うこと

3

データ解析

モデリング

アルゴリズム

開発

アプリケーション

開発

処理方法

アルゴリズムの探求

MATLABを使用した、画像処理ワークフロー

処理の自動化

ファイル

ソフトウェア

ハードウェア

C/C++/Javaなど

データへのアクセス

ドキュメント

生成

組み込み開発

アプリケーションとして

配布

結果の共有/IP化

4

MATLABを使用した、データ解析ワークフロー ~画像データへのアクセス~

静止画・動画の取り込み

• 主要画像フォーマットへの対応

• 各種カメラデバイスへの対応

• RAWなど、特殊フォーマットへの対応

デモ

ファイル

ソフトウェア

ハードウェア

C/C++/Javaなど

データへのアクセス

5

サポートされている静止画フォーマット (R2013b)

imread() によりサポートされている静止画フォーマット

BMP — Windows ビットマップ

CUR — Cursor ファイル

GIF — Graphics Interchange Format

HDF4 — Hierarchical Data Format

ICO — Icon ファイル

JPEG — Joint Photographic Experts Group

JPEG 2000 — Joint Photographic Experts Group 2000

PBM — Portable Bitmap

PCX — Windows Paintbrush

PGM — Portable Graymap

PNG — ポータブル ネットワーク グラフ

PPM — Portable Pixmap

RAS — Sun ラスター

TIFF — Tagged Image File Format

XWD — X Window Dump

詳細: http://www.mathworks.co.jp/jp/help/matlab/ref/imread.html

6

サポートされている動画フォーマット (R2013b)

VideoReader によりサポートされている動画フォーマット

Windows

AVI – AVIファイル

MJ2 - Motion JPEG 2000

MPG - MPEG-1

WMV, ASF, ASX - Windows Media® ビデオ Microsoft® DirectShow® がサポートするすべての形式

詳細 http://www.mathworks.co.jp/jp/help/matlab/ref/videoreaderclass.html

Windows7

MP4, M4V - H.264 エンコード ビデオ(Windows 7 のみ)

MOV - Apple QuickTime Movie

Microsoft Media Foundation がサポートするすべての形式。

Apple

MOV - QuickTime Movie および QuickTime がサポートするすべての形式

Linux®

GStreamer 0.10 以降用のプラグインでサポートされる任意の形式

7

各種カメラデバイスからのデータ取り込み Image Acquisition Toolbox

業界標準のHWからの動画像取込み機能を提供

– フレームグラバ Analog

Camera Link

– DCAM 互換 FireWire (IIDC 1394)

– GigE Vision

– 一般的なUSB Webカメラ

Microsoft Kinect RGB画像+

スケルトン

認識した人(6人まで) 深度画像

8

カメラキャリブレーション

レンズの歪(ひずみ)補正

カメラキャリブレータ

(カメラの内部・外部パラメータ抽出)

歪の補正

9

既存ライブラリやIPの活用 ~ C/C++ コードのインポート~

MEX

呼び出し

#include "mex.h"

void mexFunction(

int nlhs, //出力パラメータ数

mxArray *plhs[], //出力パラメータ

int nrhs, //入力パラメータ数

const mxArray *prhs[]){ //入力パラメータ

..............

myFunc(...); }

int myFunc(int a) {

...............

}

ゲートウェイルーチン付きのCコード

myFunc.mexw64

10

MATLAB環境のメリット

~データへのアクセス~

動画、静止画フォーマットへアクセス

– 多彩な静止画・動画フォーマットへ標準対応

(オプションツール不要)

– MEXを使用することで、レガシーコードや、特殊なフォーマットへも

対応可能

ハードウェアからのデータ入力

– 業界標準ハードウェア対応

– Microsoft Kinectからの容易なRGB, IR, Depthデータの取得

– カメラキャリブレーションを行うことで、レンズ歪を取り除いたデータ取得

11

データ解析

モデリング

アルゴリズム

開発

アプリケーション

開発

処理方法

アルゴリズムの探求

MATLABを使用した、画像処理ワークフロー

ファイル

ソフトウェア

ハードウェア

C/C++/Javaなど

データへのアクセス

ドキュメント

生成

組み込み開発

アプリケーションとして

配布

結果の共有/IP化

12

MATLABを使用した、データ解析ワークフロー ~処理方法 アルゴリズムの探求~

迅速な画像処理アルゴリズムの開発

• インタープリタ言語による、

インタラクティブな開発・デバッグ環境

• ドキュメント、ユーザコミュニティの活用

• GUI付きアプリケーションの作成

データ解析

モデリング

アルゴリズム

開発

アプリケーション

開発

処理方法

アルゴリズムの探求

13

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

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

物体認識

ステレオビジョン

特徴点マッチング

レジストレーション

物体の定量評価

14

画像処理・コンピュータビジョン関連ツール

Image Processing Toolbox

コントラスト調整

幾何学変換

各種フィルタ

モルフォロジー処理

セグメンテーション

物体の定量評価

Computer Vision System Toolbox

高速な動画 I/O

特徴点ベースのマッチング

トラッキング

ステレオビジョン

Image Acquisition Toolbox

業界標準HWからの画像取り込み

Analog, Camera Link, DCAM,

GigE Vision, USB camera, etc

Microsoft Kinect Support

Statistics Toolbox

クラスタリング

主成分分析

K-means

混合ガウス分布

クラシフィケーション

SVM, K-nearest neighbor,

各種ブースティング

15

インタープリタ言語による、インタラクティブな

開発・デバッグ環境

コードをセクション分けし、コンパイル等不要で、部分的に即実行

16

アルゴリズムのパラメータ探索 ~特徴点ベースのマッチング例~

特徴点検出

特徴量の 抽出

マッチング 処理

Corner

SURF

MSER

SURF MSER

Block

FREAK

SAD

Normxcorr

SSD

各処理ステージで使用するアルゴリズムや、パラメータが複数存在

17

ドキュメント、リファレンス

たくさんの実用的なサンプル

プログラムが付属

アルゴリズムの実装詳細

論文などの詳細な文献リファレンス

18

の利用

File Exchangeには、画像

処理・コンピュータービジョン系のアルゴリズム、サンプル等が2千件以上登録

共有されているほとんどのファイルは、BSDライセンス

R2012bより、Apps機能も使用可能

19

MATLAB Central File Exchangeからの便利ツール例

thresh_tool

(2値化)

exploreRGB

(色空間の探索)

FindCirclesGUI

(円の検出)

SegmentTool

(セグメンテーション)

Cascade Training GUI

(物体認識の機械学習ツール)

ImadjustGUI

(コントラスト調整)

その他もたくさん便利ツールが見つかります

”Image processing”でFile Exchange内を検索

20

マウス操作での

アプリとして配布

ユーザーインターフェース構築機能

ユーザーインターフェース

設計環境 (GUIDE) >> guide

マウス操作で簡単GUI作成

21

MATLAB環境のメリット

~アルゴリズム開発~

シンプルな構文による、アイデアの実現

– C/C++等に比べ少ない記述量

(行列単位での処理により、ループ等の記述は最小限)

– 変数の取扱いが簡単(多くの場合定義も不要、サイズの自動変更)

インタプリタ言語による、迅速な開発・デバッグ

– コンパイル等の作業が不要

– 対話的な処理方法探索

– プログラム途中でのデバッグが容易

豊富なアルゴリズム・ツール類

– 最小限の設定ですぐに使える画像処理アルゴリズム・関数

– 豊富な例、アルゴリズムの説明、参考文献

22

データ解析

モデリング

アルゴリズム

開発

アプリケーション

開発

処理方法

アルゴリズムの探求

MATLABを使用した、画像処理ワークフロー

ファイル

ソフトウェア

ハードウェア

C/C++/Javaなど

データへのアクセス

ドキュメント

生成

組み込み開発

アプリケーションとして

配布

結果の共有/IP化

23

MATLABを使用した、データ解析ワークフロー ~レポート、プログラムの共有・IP化~

開発したアルゴリズムのレポート、共有、IP化

• 処理結果のレポート、ドキュメント化

• アプリケーション配布

• C/C++ アプリケーションに向けたIP化

• 処理の高速化

ドキュメント

生成

組み込み開発

アプリケーションとして

配布

結果の共有/IP化

24

レポートの生成、結果の共有

Texの数式入りで、画像処理・コンピュータビジョンの処理方式・シーケンスをわかりやすく表現可能

25

MATLAB Compiler

.exe .dll

アプリケーション配布と、他言語との連携

MATLAB Coder

.exe .lib .dll

MATLAB Builder

EX JA NE

Java Excel .NET

26

並列/分散処理・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 との併

用によりコンピュータークラスタの使用が可能

28

GPGPU処理

わずかなコード変更で、高速化が可能

CPU

GPU

メモリー

メモリー

gpuArray() gather()

I = imrotate(I, 75, 'bicubic'); % 画像を75°回転

I = gpuArray(I);

I = imrotate(I, 75, 'bicubic'); % 画像を75°回転

各種関数を、GPU上で実行

30

MATLAB環境のメリット

~処理結果の共有~

簡単なドキュメント作成

– ワンクリックで、PDF, Wordなどの文書に処理結果を書き出し

作成したプログラムの共有

– MATLAB Compiler 使用により、GUIを含めて

.dllや、.exeの形へ変換

– MATLAB Coder使用により、アルゴリズム/IP部分を

.c / .cppへ変換、組み込み開発へ適用

処理の高速化

– GPUや並列処理を使用した、処理の高速化

31

まとめ

MATLABは単なるプログラミングツールでは無く、「環境」

多彩なデータ入力手段

インタープリタならではの迅速なアルゴリズム開発

簡単・柔軟な高速化手段

アプリケーション開発、共有、組み込み開発まで視野に入れたコード開発

MATLABの画像処理、コンピュータビジョン開発 「環境」を使用する事で、開発のペースアップを図ってください

32

関連するセッション・セミナー類

33

関連するセッション・セミナー類

34

デモブースのご案内

信号処理アルゴリズム設計

~システム設計~実装

35

デモブースの紹介

~画像処理・コンピュータビジョンの実装フロー紹介~

© 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.

ARMターゲット実装

FPGA (Xilinx Zynq) ターゲット実装

FPGA 検証 (FPGA in the Loop)

top related