いまからはじめる、matlabによる 画像処理・コン …5 アジェンダ...

Post on 11-Jun-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 © 2012 The MathWorks, Inc.

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

画像処理・コンピュータビジョン

MathWorks Japan

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

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

大谷 卓也

2

Demo: 顔検出

画像から、人間の顔認識を行い、数のカウントを行う

3

Demo: MRI Analysis

モンタージュ画像からの3次元構築

4

MATLAB/Simulinkでの

画像処理、コンピュータビジョン開発

コンセプト

検討・設計

アルゴリズム

方式検討 プロト

タイピング

組み込み

システム設計

MATLAB/Simulinkでは、アルゴリズムから、HW/組み込みシステム

実装まで幅広くツールでカバーします

画像処理・コンピュータビジョンの

• 方式検討

• アルゴリズム検討

• プロトタイピング

• 実装方式の検討

• 制御部分、画像処理

• 処理速度の検討 • FPGA? CPU? DSP?

• メモリ容量の検討

5

アジェンダ

画像処理とは?

– 画像の取り扱いの基本

– 各種画像処理アルゴリズムの扱い

– MATLABで画像処理を行うメリット

コンピュータビジョンとは?

– 応用例のご紹介

– 特徴量を使用した認識

– MATLABで使用出来る様々な環境

6

画像処理とは?

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

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

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

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

7

画像処理とは?

ノイズ除去 色、コントラスト、ヒストグラム調整

8

画像処理とは?

モルフォロジー処理などによる、領域の分割

面積、中心点などの算出

9

画像処理とは?

特定の物体の検出、数値算出

画像からの定量評価

10

画像処理デモ

インデックス操作

2値化、モルフォロジー処理、セグメンテーション例

画像フィルタ操作例

これから始める方へ、関数のサーチ方法

11

画像処理開発における、MATLAB使用のメリット

シンプルな構文

– C/C++に比べて、少ない作業量(ループ等の記述は最小限)

– データタイプの扱いが簡単(多くの場合定義も不要)

スクリプトでの実行、多くの可視化機能

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

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

高度なアルゴリズム・ライブラリ群

– 高速な行列演算ライブラリ

– 最小限の設定ですぐに使える画像処理、

コンピュータビジョン・アルゴリズム

12

アジェンダ

画像処理とは?

– 画像の取り扱いの基本

– 各種画像処理アルゴリズムの扱い

– MATLABで画像処理を行うメリット

コンピュータビジョンとは?

– 応用例のご紹介

– 特徴量を使用した認識

– MATLABで使用出来る様々な環境

13

コンピュータビジョンとは?

静止画像や、動画像を使用し、検出、識別、物体のトラッキングを行い、コンピュータでシーンの理解などを行うこと

コンピュータビジョン シーンの理解

検出

認識

識別

トラッキング

道路

人物

自転車

トラック

アクシデント

画像処理

ノイズ補正

コントラスト補正

測定

14

コンピュータビジョンの応用例

ロボット制御

セキュリティ

バイオメトリクス

アクティブセーフティ

15

コンピュータビジョンとは?

特徴点・特徴量の検出からのマッチングや認識

16

コンピュータビジョンとは?

特徴点をベースにパノラマ画像の生成

(Image Stitching)

17

コンピュータビジョンとは?

機械学習などを使った、顔や人物の認識

18

コンピュータビジョンとは?

動画からの動き検出 (定点カメラからの自動車検出例)

19

コンピュータビジョンとは?

複数物体の検出、及びトラッキング

物体の動き予測(オクルージョン含む)

20

コンピュータビジョン デモ

顔の検出

特徴点・特徴量の抽出、マッチング

動きの検出例

21

その他、MATLABで使用出来る環境

既存のC / C++

ライブラリ取り込み

柔軟な画像入力

(動画、静止画)

ツールボックス追加による、

豊富な画像処理、

コンピュータビジョン

アルゴリズム

多くのユーザ、研究者による

MATLABコードの共有

ツールボックスの関数や、最新のオープンソースを利用し、アルゴリズム・方式検討を加速

22

MATLAB Centralの利用

画像処理・コンピュータ

ビジョン系のアルゴリズム、

サンプル等が千件以上登録(2012年現在)

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

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

23

HWとの連携、GUI・配布形式アプリの制作

COM1

HWからの高速なデータ取り込み

高度なGUI作成機能

.NET COM

.exe .dll/.lib

MATLABコンパイラを使用し

実行形式作成

MATLABでは、高速なデータの取り込み、GUIの作成、そして、配布に向けた、実行形式アプリの作成が可能

24

DEMO

左のトランプは、右の画像の中にあるでしょうか?

25

その他、各種ツールボックスで実現できること

各種カメラデバイスからの画像キャプチャ Image Acquisition Toolbox

画像の前処理(色補正、フィルタ、 Image Processing Toolbox

モルフォロジなど)

特徴点・特徴量の検出/抽出/マッチング Computer Vision

その他ビジョンアプリケーション System Toolbox

– ブレ補正、モザイキング

– 動きの検出、顔認識、人物認識

– トラッキング

– ステレオ画像

クラシフィケーション、機械学習 Statistics Toolbox

Neural Network Toolbox

並列化

26

CPU/DSP, FPGA実装ツール

Simulinkを使用する事で、画像処理システムの机上検証

から、Software/Hardwareと連携した検証まで実現可能

外部入力

EDA環境(Xilinx,

Altera、Mentor

Graphics, Cadence

等)との連携

FPGAボード連携

CPU/DSPボード連携

IDE環境

(Texas

Instruments,

Analog Devices,

Green Hills, Altium,

Eclipse等)との連携

27

まとめ

すぐに動かすことが出来る、インタープリタ環境による、

画像処理・コンピュータビジョンのアルゴリズム検討

– 様々なパラメータのトライ&エラーを迅速に実施

– 多くの高速な関数を使った、様々な方式検討

– 多くの研究者、MATLAB Centralなどのリソースの有効活用

画像処理・コンピュータビジョン開発の際の

イタレーション時間 (Turn Around Time) の短縮

28

デモブースのご案内

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

~システム設計~実装

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

29 © 2012 The MathWorks, Inc.

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

画像処理・コンピュータビジョン

MathWorks Japan

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

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

大谷 卓也

30

Appendix

本セッションで行った、デモの詳細

画像処理

– インデックス操作

– 画像の2値化

– モルフォロジー処理

コンピュータビジョン

– 顔認識

– 特徴点・特徴量の抽出

31

MATLABで行う画像処理

行列操作の得意な環境 (2値化・マスクの例)

■プログラム例: A = magic(5);

B = A > 10;

C = A .* B;

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

要素ごとに掛け算

A B

17 24 0 0 15

23 0 0 14 16

0 0 13 20 22

0 12 19 21 0

11 18 25 0 0

C

1 1 0 0 1

1 0 0 1 1

0 0 1 1 1

0 1 1 1 0

1 1 1 0 0

32

MATLABで行う画像処理

コンパクトなコード量

I = rgb2gray(imread('peppers.png'));

I = imnoise(I, 'salt', 0.1);

Idenoise = medfilt2(I, [3 3]);

figure, imshow(Idenoise);

4行

RGB = imread('tape.png');

[center, radius] = imfindcircles(RGB,[60 100],'Sensitivity',0.9)

viscircles(center,radius);

hold on; plot(center(:,1),center(:,2),‘yx’,‘LineWidth’,2); hold off;

4行

Iorg=imread('iron.tif');

I = Iorg<180;

I = bwmorph(I,'skel','inf');

I = bwmorph(I,'spur','inf');

I = bwmorph(I,'clean');

figure, imshow(~I);

6行

33

コイン画像の2値化例

I = imread(‘coins.png’); %画像をIという変数に取り込み

imshow(I); %取り込んだ画像を表示

34

ヒストグラムの確認

黒い領域

白い領域

35

画像の2値化

36

画像のクリーンアップ

37

各リージョンの中心点、面積を計算

38

画像の上に、面積のテキストを表示

39

モルフォロジー処理の例

右の画像(米粒)のそれぞれの面積、中心点を計算します

40

画像のロード

画像の2値化を行なってみます

41

ヒストグラムの確認

しきい値は何処が良いでしょうか?

42

しきい値を変更して、2値化画像の確認

単一のしきい値で2値化は出来ない様子

2値化を行う前に、モルフォロジー処理を行なってみましょう

43

背景の明るさを確認

代表的なモルフォロジー処理

imdilate (膨張)

imerode (収縮)

imclose (クローズ処理)

imopen (オープン処理)

imbothat (ボトムハット処理)

imtophat (トップハット処理)

その他、bwmorph関数で多彩な処理が可能

まず、背景の確認

(画像全体を大きくオープン処理して確認)

44

画像から背景を引き算

背景の輝度を調整

処理結果を確認

ヒストグラムを再度確認

画像から、オープニング処理した画像を引き算することをトップハット処理といいます

(一連の動作は、imtophat関数でも処理が可能です)

45

画像の2値化

マニュアルでの2値化以外に、下記で

自動設定も可能

綺麗にセグメント出来た事がわかります

46

画像のクリーンアップ、及び、プロパティ解析

指定ピクセル以上のリージョンのみ残します

各リージョンのプロパティ解析を行います (上記例は、面積、中心点ですが、オプション指定で、様々な解析が出来ます)

47

ドキュメント検索のやり方、

逆引き、EXAMPLE

48

コンピュータビジョン系デモの詳細

顔認識

49

特徴点検出、マッチングのワークフロー

index_pairs = matchFeatures(f1, f2) ;

matched_pts1 = vpts1(index_pairs(:, 1));

matched_pts2 = vpts2(index_pairs(:, 2));

showMatchedFeatures(I1,I2,matched_pts1,matched_pts2, ‘montage’);

points1 = detectSURFFeatures(I1);

points2 = detectSURFFeatures(I2);

[f1, vpts1] = extractFeatures(I1, points1);

[f2, vpts2] = extractFeatures(I2, points2);

I1 I2

スケール変化に不変な特徴点検出

回転に不変な特徴量抽出

Perform Matching 数行のコードで検出・認識などを行うことが出来る

I1 = imread('cameraman.tif');

I2 = imrotate(I1, -20);

top related