手軽にはじめる画像処理・コンピュータービジョン · ・kinect...

Post on 27-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1© 2016 The MathWorks, Inc.

手軽にはじめる画像処理・コンピュータービジョン

MathWorks Japan

アプリケーションエンジニアリング部 (信号処理・通信)

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

福本 拓司

2

画像処理とは?

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

画像の変形や変換、色の補正、ノイズ除去などを行うこと

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

・数を数える・大きさを測る

人が目で確認していたものを画像処理で置き換えるトレンド

3

目盛りを読む作業・動きがあるもの(人による読み間違い)・長時間の観測(人の工数大、読み忘れ)

人の作業を減らすための画像処理

デモ

4

みなさんはどのタイプにあてはまるでしょうか画像処理未経験

画像処理経験豊富

プログラム経験豊富

プログラム未経験

既存ソフト操作メイン

急に画像処理の仕事プログラム&画像処理どちらもこれから

プログラム未経験者の不安

・ちゃんと習得できるか。・途中で予期してなかった難しいアルゴリズムが必要になったら。。。・仕事の効率をあげる成果物までたどり着けるか。

高度なアルゴリズムを扱う仕事

プログラム経験者の葛藤

・経験ある言語は画像処理向きでない。

・いろいろなアルゴリズムからすばやく最適なもの、設定をみつけたい。

本セッションのゴール:

MATLABでの画像処理

ワークフローが理解できた!

・コーディング経験が少なくても成果物作れそう!・作業効率上がりそう!

感じていただければ幸いです。

5

アジェンダ

手軽にはじめる画像処理– 画像処理とは?

– メーターの値を画像処理で読みとるワークフロー

– 統合的な開発環境であるMATLAB®

今話題!コンピュータービジョンの世界– コンピュータービジョンとは?

– 人検出が1行?MATLABでおこなう人の行動解析のワークフロー

スムーズな習得のために

6

MATLAB®と画像処理

Matrix Laboratory

対話的開発環境

豊富な拡張ライブラリ

使用目的- データ解析、可視化

- アルゴリズム開発、プログラミング

- 外部アプリケーションとの連携

A = magic(5)figure, imshow(A,[])

■画像は行列

■画像データ(行列)とスカラの比較

画像処理はMATLABと親和性が高い分野

(例) Aで10以上の輝度の位置を抽出

B = A > 10

MATLABならこれだけ!不要な二重forループがいらない。

7

画像処理による速度メーターの測定

速度読み取り

速度0に対する針の角度

ゴール

針を検出

目盛りの検出

解析&直線化

デモ

8

色空間

赤:0 / 1.0HSV色空間

Hue: 色相Saturation: 彩度 (0:白/灰色/黒)Value: 明度

RGB色空間 白黄色シアン (~水色)緑マゼンタ(紅紫色)赤青黒

: (R,G,B) = (1, 1, 1): (R,G,B) = (1, 1, 0): (R,G,B) = (0, 1, 1): (R,G,B) = (0, 1, 0): (R,G,B) = (1, 0, 1): (R,G,B) = (1, 0, 0): (R,G,B) = (0, 0, 1): (R,G,B) = (0, 0, 0)

Value: 明度

Hue: 色相

Saturation: 彩度(白/灰色/黒は0)

赤緑

9

画像処理ワークフロー モルフォロジー処理: bwmorph領域解析:regionprops

角度の解析

色のしきい値アプリによる二値化

速度読み取り

基準に対する針の角度読み取り

針を検出

目盛りの検出

座標解析&直線化

マウス操作による基準位置の指定

アプリ & 高度な関数 & マウス操作 で“手軽かつ柔軟”に画像処理による効率化を目指すことができます。

10

手軽にはじめるを強力にサポート:画像処理用アプリケーション

イメージブラウザー

イメージビューアー

変数やMATLABコードとして出力可能

イメージの領域分割 イメージの領域解析色のしきい値

直感的なGUI操作のアプリケーション

http://jp.mathworks.com/videos/image-segmentation-application-120733.html

http://jp.mathworks.com/videos/calculate-region-properties-using-image-region-analyzer-116911.htmlhttp://jp.mathworks.com/videos/color-based-

segmentation-using-the-color-thresholder-app-117394.html

11

プログラムに柔軟性を与える: GUIでのマウス操作

マウス操作

使い慣れた関数

自分だけのアプリ

Imfreehand() フリーハンド Imrect() 四角を描く

難しい処理に直面しても

・プロジェクトの成果物を柔軟に作ることができる・着実な作業効率向上を目指せる

囲んだ部分を追加

getpts()

クリックしたpixel情報を取る

囲んだ範囲で輝度による2値化関数

https://www.mathworks.com/help/releases/R2016b/images/building-guis-with-modular-interactive-tools.html

対話型ツールの構築40以上の関数

関心領域(ROI)の一部が欠けてしまっていても。。。

12

目盛り検出の自動化と文字認識ガボールフィルタとモルフォロジー処理で目盛り抽出

Centroidを測定し座標を利用あとは同様の処理で角度→速度を測定

OCRを用いた数字の読み取り

ocr() 文字認識関数により目盛り数値読み取り

maxspeed =200

13

文字認識:カスタムフォント用学習アプリケーション

ocrTrainer % 文字認識用モデルのトレーニング用アプリケーション

フォントをトレーニングしたモデルによる認識

results = ocr(BW1, 'Language', ...'myLang¥tessdata¥myLang.traineddata') % 学習したモデルによる文字認識

14

MATLABによる効率的な画像処理開発フロー

レポートドキュメント生成

アプリケーション

C/HDLソースコード

出力アルゴリズム探索

データ解析モデリング

アルゴリズム開発

画像・動画ファイル

ソフトウェア

ハードウェア

入力

アプリケーション開発

コードやアプリケーション

.exe .dll

C HDL

- インタプリターによる、容易なパラメータ調整- 高度で豊富な画像処理関数群- アプリとコードの連携

15

各種画像/動画データフォーマットの読込み・書込みの例

画像の読込み・書込みのための関数

imread() グラフィックス ファイルからイメージを読込み(bmp,gif,jpg,png,tif,..)

imwrite() イメージをグラフィックス ファイルに書込み (bmp,gif,jpg,png,tif,..)

dicomread() DICOMイメージの読込み

dicomwrite() イメージをDICOMファイルとして書込み

nitfread() NITF(National Imagery Transmission Format)ファイルの読込み

hdrread() ハイダイナミックレンジ(HDR)イメージの読込み

hdrwrite() Radiance形式ハイダイナミックレンジ(HDR)イメージ ファイルの書込み

(MATLAB基本関数)

(MATLAB基本関数)

動画の読込み・書込みのための関数

vision.VideoFileReader() 動画ファイルの読込み(.avi , .mpeg,mp4, .m4v, .wmv,…)

vision.VideoFileWriter() 動画ファイルの書込み

16

各種カメラからの画像データ直接取込みImage Acquisition ToolboxTM

RGB画像+骨格座標 深度画像

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

– フレームグラバ (画像入力ボード)

– DCAM 互換 FireWire (IIDC 1394)

– GigE Vision

– USB3 Vision

– 一般的なUSB Webカメラ

– IPカメラ (MATLAB基本関数)

Microsoft Kinect for Windows v1

Microsoft Xbox One Kinect センサー

カスタムアダプター開発キット

Simulink ブロック

←MATLAB本体でサポート

17

アプリケーション/コード配布

JavaExcel .NET.exe .dll

Exceladd-in

Javaクラス

.NETコンポーネント

COMコンポーネント

C/C++共有ライブラリ

無償でダウンロードできるMCRで実行

Python

MATLAB Compiler SDKTM

MATLAB CompilerTM

.c

.cpp

.exe .libMEX

MATLABファイル

MATLAB CoderTM

C/C++言語での利用

作成したアルゴリズムをMATLAB環境以外で実行可能

18

MATLABによる画像処理ワークフロー

MATLABはシステムへの実装を含めた統合的な開発が可能

画像は行列→MATLABが得意

高度な関数(ocr/regionprops等)

GUIアプリで直感的にアルゴリズムを選択

→ mコードの生成

柔軟性のあるアプリにすることも可能

MATLABを使って画像処理による効率化自動化へのステップを踏んでいきましょう

・MATLAB®

・Image Processing ToolboxTM

・Computer Vision System ToolboxTM

人手作業

画像処理自動化

19

アジェンダ

手軽にはじめる画像処理– 画像処理とは?

– メーターの値を画像処理で読みとるワークフロー

– 統合的な開発環境であるMATLAB®

今話題!コンピュータービジョンの世界– コンピュータービジョンとは?

– 人検出が1行?MATLABでおこなう人の行動解析のワークフロー

スムーズな習得のために

20

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

動画像からコンピュータでシーンの理解などを行う技術

(物体の認識、トラッキング、距離の把握)

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

検出認識識別トラッキング…

道路人物自転車トラックアクシデント…

画像処理

ノイズ補正コントラスト補正測定…

デモ

21

コンピュータビジョンによる人の行動解析

高さ

奥行き

奥行き

22

コンピュータービジョンによる人の行動解析

認識ステレオカメラ

3次元点群解析

・人認識アルゴリズムdetectPeopleACF()たった1行で画像から人検出

人周辺の点群座標を解析

23

事前 キャリブレーション

ステレオビジョンワークフロー:

キャリブレーション用パターンの撮影

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

ステレオ画像の並行化

パラメータ

左右の画像のずれから、視差の計算

三次元空間の再構築

処理速度の高速化

24

人認識アルゴリズムと3次元点群を用いた人の行動解析

人検出のボックスを使って人周辺の視差画像だけを切り抜き 人周辺のみ3次元点群計算

点群情報の解析行動解析結果プロット

・人認識&3次元点群で「各コーナー滞在時間」を解析

・豊富な解析&可視化機能がパワフルにサポート

25

動きの認識

動き検出

トラッキング(追跡)

車のカウント

動いている領域の検出

隠れている物体の位置予測誤検出の低減個々の物体の認識(数量計測等)

動きの認識 機能例

26

3次元点群(ポイントクラウド)3次元空間

-距離測定-自己位置推定(SLAM)-MAPを用いて行動の最適化

ポイントクラウド構築に必要なのは

深度(奥行き)

手法の例-Kinect (深度センサ付)

-ステレオビジョン

-カメラ一台+複数枚画像(Structure From Motion)

27

高度な物体認識&解析を実現する豊富な関数群

・画像処理(色・形 等)

・人認識アルゴリズム・背景差分法・画像特徴量・機械学習

(Statistics and Machine Learning Toolbox™)

・ディープラーニング(Neural Network Toolbox™他)

・カルマンフィルタ・KLT・パーティクルフィルタ

(Robotics System Toolbox™)

・Kinect・ステレオビジョン・単眼カメラSFM

3次元空間トラッキング物体認識 解析

・MATLAB Toolbox各種

認識から解析までを一貫して同じ環境。高度な機能を含むサンプルを用いてすぐにアイデアを試すことができます。

ロボット・ADAS制御 等

アプリケーションへの適用

MATLABなら

・MATLAB®

・Image Processing ToolboxTM

・Computer Vision System ToolboxTM

(Robotics System Toolbox™他)

28

アジェンダ

手軽にはじめる画像処理– 画像処理とは?

– メーターの値を画像処理で読みとるワークフロー

– 統合的な開発環境であるMATLAB®

今話題!コンピュータービジョンの世界– コンピュータービジョンとは?

– 人検出が1行?MATLABでおこなう人の行動解析のワークフロー

スムーズな習得のために

29

画像処理・コンピュータービジョン無料セミナー

日時:2016年11月7日 13:00-17:00

場所:UDX GALLERY NEXT(JR秋葉原駅より徒歩2分)

画像処理、コンピュータービジョンの機能を隅から隅までご紹介!– 画像処理・動画処理のアルゴリズム開発

– 特徴検出・マッチング・認識・機械学習・トラッキング

– 非剛体レジストレーションやカメラキャリブレーション

– ステレオビジョン向けワークフロー、3次元点群処理、Bag-of-Features

– 並列化やGPUなどの連携機能やC/HDL実装環境についてもご案内

申し込みは弊社ウェブサイトよりhttps://go2.mathworks.com/ipcv-tokyo-sem-jp-1656025

30

テクニカルサポート&ヘルプドキュメント

高い顧客満足度 24時間以内に70%問題解決

80%のお客様が80-100%の満足度と回答

利用方法 Webページ ・ 電話

http://www.mathworks.co.jp/support/contact_us/

MATLABデスクトップからサポートリクエストを起動

■充実したHelp機能■テクニカルサポート

31

- File Exchange 上のさまざまな アプリケーション 例

ImadjustGUI

FindCirclesGUI

exploreRGB MorphTool

http://www.mathworks.co.jp/matlabcentral/fileexchange/?term=authorid:911

SegmentImage Image Registration App

の活用

32

着実に成果につなげるためのMathWorksサポート

■コンサルティング サービス

カスタム“Jumpstart”– 顧客モデルをベースにしたアドバイザリ、他

Advisory Service– 顧客Project に合ったアドバイザリ、他

Project – 顧客要求に応じた成果物、開発業務に

即したツール利用を実現

■トレーニング サービス

・MATLABによるコンピュータービジョン

・MATLABによる画像処理(2日間)

開催予定日 会場

2016年11月10日~11月11日

MathWorks 名古屋オフィス

2017年02月9日~02月10日

MathWorks東京オフィス

開催予定日 会場

2017年 02月28日 MathWorks 東京オフィス

06月30日 MathWorks 名古屋オフィス

33

まとめ

■MATLABは画像処理が得意画像取り込みからアプリケーション配布までできる開発環境

■アプリからのコード生成&高度な関数群により効率的で柔軟なアルゴリズム開発が可能

■紹介セミナー、テクニカルサポート、トレーニング等スムーズな習得が可能

34

この後の画像処理関連セッション

カメラ付アーム型ロボット開発ワークフロー

第3会場 第4会場

●ハードウェア実装

第7会場

第2会場

35

自動運転・画像処理・ディープラーニングブースでデモ展示中

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

自動運転・画像処理・ディープラーニングデモ展示

ご質問はブースまでお越しください。

36

ご清聴ありがとうございました

37

コンサルティングでは

定量的な

解析・評価

機械学習

可視化・目視

解析と評価

非剛体

トラッキング

時系列解析

(主に動画)

科学的

モデリング

効率よいアルゴリズム開発

快適なUI

ソリューションパッケージ化

38

コンサルティング例:医用画像解析

いくつかの事例

脳機能の定量的解析・評価(活躍領域, 病状領域, 行動解析) - MRI, CT, Microscope, NIR (near-infrared), X-ray, NBI (Narrow-band), Calcium image

薬物の効果をモニタリングや評価- Brain MRI, Muscle imaging, limbs MRI

病状の診断やモデリング- Muscle evaluation, disease classification, tissue visualization

3D 再構成や可視化- X-ray image reconstruction, 3D color maps, indexed images, MRI Volume

機械学習や統計解析- Colony classification, health monitoring

動画分析・解析- Lungs movement quantification, synapse analysis

39

コンサルティング例:医用画像解析

UI:なぜ医用画像分野で「大事」なのか?

背景• プログラマーではない

合作• 別々実験部隊と開発部隊

プロトタイプ

• 出力を可視化

40

画像処理プログラミングでお困りのあなたに

2日でマスター!MATLABによる画像処理 画像処理のアルゴリズムをMATLABで効率

よくプログラミングする方法を、2日間で

集中的に学ぶことが出来ます。

主なトピック

– イメージのインポート、前処理

– 空間変換、レジストレーション

– ライン検出、特徴抽出

– 領域のセグメント化

開催予定日 会場

2016年11月10日~11月11日

MathWorks 名古屋オフィス

2017年02月9日~02月10日

MathWorks東京オフィス

(有償)https://www.mathworks.co.jp/training-schedule/

41

コンピュータによる物体検出等のアルゴリズムをMATLABで効率よくプログラミングする方法を、1日で集中的に学ぶことが出来ます。

主なトピック

– ビデオのインポートと可視化・注釈

– 特徴検出、抽出、コーナー検出、 強度検出(MSER)

– オブジェクトの検出(HoG・分類・前景検出)

– 動きの推定と追跡

– カメラキャリブレーション(チェッカーボードによる補正)

ロボットの目をプログラミングしよう

1日でマスター!MATLABによるコンピュータービジョン

開催予定日 会場

2017年02月28日

MathWorks 東京オフィス

(有償)https://www.mathworks.co.jp/training-schedule/

対象物の検出とカウント

自転車の検出

レンズ歪の補正

42

画像処理機能例

43

画像の表示・調査 / コントラストの調整・マッチング

画像の表示・調査

コントラストの調整・マッチング

画像ビューアー アプリケーション 色の閾値 アプリケーション

Image Processing Toolbox

44

幾何学変換 / 各種フィルター処理

幾何学変換(位置や形の変換)

各種フィルター処理

ノイズ除去

Image Processing Toolbox

45

モルフォロジー処理 / オブジェクト検出・解析

モルフォロジー処理(膨張・収縮等の様々な形態処理)

オブジェクト(物体)検出・解析

直線検出による

レーン検出

境界線を抽出

Image Processing Toolbox

46

レジストレーション / セグメンテーション / 定量評価

レジストレーション(位置合せ)

物体の定量評価

各中心位置・面積を計測

灯台を抽出

セグメンテーション(領域切出し)

位置合せ

Image Processing Toolbox

47

注釈挿入

レンズ歪補正

カメラ位置推定

マーカー挿入

図形挿入

テキスト挿入

レンズ歪カメラ内部カメラ外部のパラメータ抽出

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

高速なグラフィックス

画像取扱い機能

Computer Vision System Toolbox

48

特徴点ベースのワークフロー

特徴点のマッチングを用いた、物体認識

特徴点ベースのレジストレーション(位置合せ)

SURF/Harris/FAST/BRISK等の特徴点検出

RANSACを用いた対応点推定物体の検出

SURF/FREAK/BRISK/HOG/LBP等の特徴量抽出

対象物体

Computer Vision System Toolbox

49

文字認識 / 顔・人物の認識

OCR (光学文字認識)

Computer Vision System Toolbox

顔認識 人物認識(Viola-Jonesアルゴリズム)

50

機械学習 / 一般物体認識

機械学習

一般物体認識

(Haar / HOG / LBP特徴量) データベース

ラベリング用のツール

Computer Vision System Toolbox

(Bag-of-Visual-Words)

検索対象

類似画像検索(Bag-of-Visual-Words)

51

高速動画ストリーミング処理 / 動き検出、トラッキング

動画の高速ストリーミング処理 /動き検出

トラッキング

車のカウント

動いている領域の検出

Computer Vision System Toolbox

隠れている物体の位置予測誤検出の低減個々の物体の認識(数量計測等)

52

連携機能: 並列処理・GPGPUによる高速・大規模画像処理Parallel Computing ToolboxTM

• 並列・分散処理による高速化

• マルチコア、マルチCPUによる並列高速処理

• MATLAB 関数のGPUによる高速処理

• 2次元FFT等 150以上のMATLAB基本関数

• Image Processing Toolboxの40以上の関数

imrotate(), imfilter(), imdilate(), imerode(), imopen(),

imclose(), imtophat(), imbothat(), imshow()......

• 既存CUDAコードの取込み

• MATLAB Distributed Computing Server との併用により

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

サポートされるGPU (CUDA に対応した NVIDIA GPU) の要件:http://www.mathworks.com/products/parallel-computing/requirements.html

53

連携機能:様々な特徴量を用いた、さらに複雑な機械学習Statistics and Machine Learning ToolboxTM

特徴変換

– 主成分分析 (PCA)

– 因子分析

クラスタリング

– 階層クラスタリング

– K平均クラスタリング

– ガウス混合分布モデル

クラシフィケーション(分類)

– サポートベクターマシン (SVM)

– SVMを用いた複数クラスの学習

– 単純ベイズ分類器

– 線形分類器

– K近傍分類器

モデルの結合(アンサンブル学習)

– バギング(Tree Bagger等)

– ブースティング(AdaBoost等)

top related