いまからはじめる、MATLABによる 画像処理・コンピュータビジョン

Similar documents
MATLAB ではじめる画像処理とロボットビジョン ~ 機械学習による物体認識と SLAM~ MathWorks Japan アプリケーションエンジニアリング部信号処理 通信 木川田亘 2015 The MathWorks, 1Inc.

Presentation Title

SimscapeプラントモデルのFPGAアクセラレーション

SimulinkによるReal-Time Test環境の構築

f2-system-requirement-system-composer-mw

MATLAB®製品紹介セミナー

MATLAB EXPO 2019 Japan プレゼン資料の検討

Presentation Title

Presentation Title

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

PowerPoint Presentation

MATLAB®製品紹介セミナー

いまからはじめる、MATLABによる 画像処理・コンピュータビジョン

Presentation Title

PowerPoint Presentation

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

Microsoft PowerPoint - pr_12_template-bs.pptx

Presentation Title

b4-deeplearning-embedded-c-mw

Python によるジオプロセシング スクリプト入門

Presentation Title

制御のためのSimulink入門

タイトル

Managing and Sharing MATLAB Code

PowerPoint プレゼンテーション

Python によるジオプロセシング スクリプト入門

医用画像を題材とした3次元画像解析とディープラーニング


Presentation Title

ディープラーニングの組み込み機器実装ソリューション ~GPC/CPU編~

AMS Expoコンテンツ

Microsoft Word - HowToSetupVault_mod.doc

2D/3D CAD データ管理導入手法実践セミナー Autodesk Vault 最新バージョン情報 Presenter Name 2013 年 4 月 2013 Autodesk

ビッグデータ分析を高速化する 分散処理技術を開発 日本電気株式会社

PowerPoint Presentation

インテル(R) Visual Fortran コンパイラ 10.0

Presentation Title

Expo 2014

いまからはじめる組み込みGPU実装

Presentation Title

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

MATLAB/SimulinkによるAMS活用事例 ~Mixed-Signal Library 2.0のご紹介~

Source Insight

d4-automated-driving-mw

20th Embarcadero Developer Camp

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

Microsoft Word - 卒論レジュメ_最終_.doc

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 田中二郎 PM ( 筑波大学大学院システム情報工学研究科教授 ) 2. 採択者氏名チーフクリエータ : 矢口裕明 ( 東京大学大学院情報理工学系研究科創造情報学専攻博士課程三年次学生 ) コクリエータ : なし 3.

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

Introduction to System Identification

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

Presentation Title

目次 1. CAD インターフェイス (3D_Analyzer&3D_Evolution) ユーザーインターフェイス機能強化 (3D_Analyzer&3D_Evolution)... 3 レポート... 3 クリッピング機能... 4 言語... 4 表示オプション

tokyo_t3.pdf

iNFUSE インフューズ

生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ

JACi400のご紹介~RPGとHTMLで簡単Web化~

使用説明書(Windows)

円筒面で利用可能なARマーカ

Presentation Title プレゼンテーションのタイトル

Presentation Title

PowerPoint プレゼンテーション

Signal Processing Toolbox

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

AutoCAD道場-なぜ「レイアウト」がいいのか?

TopSE並行システム はじめに

Microsoft PowerPoint - EXPO2012_AKASAKA_rev.2.pptx

ZoomBrowser EX Ver5.7 使用説明書(Windows)

CSM_FZ5_SDNB-031_10_3

はじめての機械学習

AutoCAD のCitrix XenApp 対応

<4D F736F F D208FEE95F A E9197BF8DFB8E71>

Windows GPO のスクリプトと Cisco NAC 相互運用性

Microsoft PowerPoint - 01_Vengineer.ppt

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Presentation Title

AMS Expoコンテンツ

Fortran 勉強会 第 5 回 辻野智紀

ポニソフト顔認識システムご案内 Face Recognition System (Windows Base ) PONI- 顔認識システムソフトウェアは, 顔の特徴を高速で検出 分析 認識し その特徴を照合の結果 登録された名前の割出し 履歴記録ファィルとの連動 あるいは 男 女の性別と年齢の分類

この時お使いの端末の.ssh ディレクトリ配下にある known_hosts ファイルから fx.cc.nagoya-u.ac.jp に関する行を削除して再度ログインを行って下さい

帳票OCR Ver.8

AI技術の紹介とセンサーデータ解析への応用

.NET テクノロジー概説 /WindowsAzure 入門 コード P-2 0:00~7:00 ( 休憩 時間含む ) 前提条件 Windows の操作経験 ( エクスプローラの操作 ファイルの操作 ) があること 最低開講人数 0 名.NET テクノロジー概説 /WindowsAzure 入門

Presentation Title

ISMAR2013

Microsoft PowerPoint - LAB-03-SR18-ã…Łã‡¡ã‡¤ã…«ã…ªã‡¹ã…‹ã‡¢-v1

使用説明書(Macintosh)

PGRelief C/C++ 強化ポイント説明書

第 3 回 TERAS 成果報告会 TERAS V3 紹介と今後の展開 Tool Environment for Reliable and Accountable Software 一般社団法人 TERAS 理事開発委員長渡辺政彦 2014 年 3 月 12 日

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

コンピュータグラフィックス第6回

テクニカルティップス IDS NXT HALCON Loader HALCON 画像処理から IDS NXT ビジョンアプリへの数ステップ HALCON で開発した画像処理を IDS NXT ビジョンアプリでプログラミングすることなく 直接ビジョンアプリベースの IDS カメラで実行できます 時間が

PowerPoint プレゼンテーション

Quartus II クイック・スタートガイド

f3-power-train-simulation-mw

Microsoft Word - SKY操作マニュアル.doc

3. 回路図面の作図 回路図の作成では 部品など回路要素の図記号を配置し 要素どうしを配線するが それぞれの配線には 線番 などの電気的な情報が存在する 配線も単なる線ではなく 信号の入力や出力など部品どうしを結び付ける接続情報をもたせることで回路としての意味をもつ このように回路図を構成する図面は

X-Form Plug-in Guide

CLEFIA_ISEC発表

Transcription:

いまからはじめる MATLAB による画像処理 コンピュータビジョン MathWorks Japan アプリケーションエンジニアリング部シニアアプリケーションエンジニア大谷卓也 2012 The MathWorks, Inc. 1

Demo: 顔検出 画像から 人間の顔認識を行い 数のカウントを行う 2

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

MATLAB/Simulink での画像処理 コンピュータビジョン開発 コンセプト検討 設計 アルゴリズム方式検討 プロトタイピング 組み込みシステム設計 画像処理 コンピュータビジョンの 方式検討 アルゴリズム検討 プロトタイピング 実装方式の検討 制御部分 画像処理 処理速度の検討 FPGA? CPU? DSP? メモリ容量の検討 MATLAB/Simulink では アルゴリズムから HW/ 組み込みシステム実装まで幅広くツールでカバーします 4

アジェンダ 画像処理とは? 画像の取り扱いの基本 各種画像処理アルゴリズムの扱い MATLAB で画像処理を行うメリット コンピュータビジョンとは? 応用例のご紹介 特徴量を使用した認識 MATLAB で使用出来る様々な環境 5

画像処理とは? 様々なアルゴリズムを使用し 画像の変形や変換 色の補正 ノイズ除去などを行うこと 統計解析などを併用し 画像からデータの数値化を行うこと 例えば デジタルカメラの内部処理様々な画像処理がハードウェア ソフトウェアで行われる 6

画像処理とは? ノイズ除去 色 コントラスト ヒストグラム調整 7

画像処理とは? モルフォロジー処理などによる 領域の分割面積 中心点などの算出 8

画像処理とは? 特定の物体の検出 数値算出画像からの定量評価 9

画像処理デモ インデックス操作 2 値化 モルフォロジー処理 セグメンテーション例 画像フィルタ操作例 これから始める方へ 関数のサーチ方法 10

画像処理開発における MATLAB 使用のメリット シンプルな構文 C/C++ に比べて 少ない作業量 ( ループ等の記述は最小限 ) データタイプの扱いが簡単 ( 多くの場合定義も不要 ) スクリプトでの実行 多くの可視化機能 コンパイル等の作業が不要 プログラム途中でのデバッグが容易 高度なアルゴリズム ライブラリ群 高速な行列演算ライブラリ 最小限の設定ですぐに使える画像処理 コンピュータビジョン アルゴリズム 11

アジェンダ 画像処理とは? 画像の取り扱いの基本 各種画像処理アルゴリズムの扱い MATLAB で画像処理を行うメリット コンピュータビジョンとは? 応用例のご紹介 特徴量を使用した認識 MATLAB で使用出来る様々な環境 12

コンピュータビジョンとは? 静止画像や 動画像を使用し 検出 識別 物体のトラッキングを行い コンピュータでシーンの理解などを行うこと 画像処理 ノイズ補正コントラスト補正測定 コンピュータビジョン 検出認識識別トラッキング シーンの理解 道路人物自転車トラックアクシデント 13

コンピュータビジョンの応用例 アクティブセーフティ ロボット制御 セキュリティ バイオメトリクス 14

コンピュータビジョンとは? 特徴点 特徴量の検出からのマッチングや認識 15

コンピュータビジョンとは? 特徴点をベースにパノラマ画像の生成 (Image Stitching) 16

コンピュータビジョンとは? 機械学習などを使った 顔や人物の認識 17

コンピュータビジョンとは? 動画からの動き検出 ( 定点カメラからの自動車検出例 ) 18

コンピュータビジョンとは? 複数物体の検出 及びトラッキング 物体の動き予測 ( オクルージョン含む ) 19

コンピュータビジョンデモ 顔の検出 特徴点 特徴量の抽出 マッチング 動きの検出例 20

その他 MATLAB で使用出来る環境 柔軟な画像入力 ( 動画 静止画 ) ツールボックス追加による 豊富な画像処理 コンピュータビジョンアルゴリズム 既存の C / C++ ライブラリ取り込み 多くのユーザ 研究者による MATLAB コードの共有 ツールボックスの関数や 最新のオープンソースを利用し アルゴリズム 方式検討を加速 21

MATLAB Central の利用 共有されている殆どのファイルは BSD ライセンス R2012b より Apps 機能も使用可能 画像処理 コンピュータビジョン系のアルゴリズム サンプル等が千件以上登録 (2012 年現在 ) 22

HW との連携 GUI 配布形式アプリの制作 高度な GUI 作成機能 COM1.exe MATLAB コンパイラを使用し実行形式作成.dll/.lib HW からの高速なデータ取り込み COM.NET MATLAB では 高速なデータの取り込み GUI の作成 そして 配布に向けた 実行形式アプリの作成が可能 23

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

その他 各種ツールボックスで実現できること 各種カメラデバイスからの画像キャプチャ Image Acquisition Toolbox 画像の前処理 ( 色補正 フィルタ Image Processing Toolbox モルフォロジなど ) 特徴点 特徴量の検出 / 抽出 / マッチング Computer Vision その他ビジョンアプリケーション System Toolbox ブレ補正 モザイキング 動きの検出 顔認識 人物認識 トラッキング ステレオ画像 クラシフィケーション 機械学習 Statistics Toolbox 並列化 Neural Network Toolbox 25

CPU/DSP, FPGA 実装ツール EDA 環境 (Xilinx, Altera Mentor Graphics, Cadence 等 ) との連携 外部入力 IDE 環境 (Texas Instruments, Analog Devices, Green Hills, Altium, Eclipse 等 ) との連携 CPU/DSP ボード連携 FPGA ボード連携 Simulink を使用する事で 画像処理システムの机上検証から Software/Hardware と連携した検証まで実現可能 26

まとめ すぐに動かすことが出来る インタープリタ環境による 画像処理 コンピュータビジョンのアルゴリズム検討 様々なパラメータのトライ & エラーを迅速に実施 多くの高速な関数を使った 様々な方式検討 多くの研究者 MATLAB Central などのリソースの有効活用 画像処理 コンピュータビジョン開発の際のイタレーション時間 (Turn Around Time) の短縮 27

デモブースのご案内 信号処理アルゴリズム設計 ~ システム設計 ~ 実装 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. 28

いまからはじめる MATLAB による画像処理 コンピュータビジョン MathWorks Japan アプリケーションエンジニアリング部シニアアプリケーションエンジニア大谷卓也 2012 The MathWorks, Inc. 29

Appendix 本セッションで行った デモの詳細 画像処理 インデックス操作 画像の 2 値化 モルフォロジー処理 コンピュータビジョン 顔認識 特徴点 特徴量の抽出 30

MATLAB で行う画像処理行列操作の得意な環境 (2 値化 マスクの例 ) 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 要素ごとに掛け算 プログラム例 : A = magic(5); B = A > 10; C = A.* B; 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 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 31

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 行 32

コイン画像の 2 値化例 I = imread( coins.png ); % 画像をIという変数に取り込み imshow(i); % 取り込んだ画像を表示 33

ヒストグラムの確認 黒い領域 白い領域 34

画像の 2 値化 35

画像のクリーンアップ 36

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

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

モルフォロジー処理の例 右の画像 ( 米粒 ) のそれぞれの面積 中心点を計算します 39

画像のロード 画像の 2 値化を行なってみます 40

ヒストグラムの確認 しきい値は何処が良いでしょうか? 41

しきい値を変更して 2 値化画像の確認 単一のしきい値で 2 値化は出来ない様子 2 値化を行う前に モルフォロジー処理を行なってみましょう 42

背景の明るさを確認 まず 背景の確認 ( 画像全体を大きくオープン処理して確認 ) 代表的なモルフォロジー処理 imdilate ( 膨張 ) imerode ( 収縮 ) imclose ( クローズ処理 ) imopen ( オープン処理 ) imbothat ( ボトムハット処理 ) imtophat ( トップハット処理 ) その他 bwmorph 関数で多彩な処理が可能 43

画像から背景を引き算 背景の輝度を調整処理結果を確認 ヒストグラムを再度確認 画像から オープニング処理した画像を引き算することをトップハット処理といいます ( 一連の動作は imtophat 関数でも処理が可能です ) 44

画像の 2 値化 マニュアルでの 2 値化以外に 下記で自動設定も可能 綺麗にセグメント出来た事がわかります 45

画像のクリーンアップ 及び プロパティ解析 指定ピクセル以上のリージョンのみ残します 各リージョンのプロパティ解析を行います ( 上記例は 面積 中心点ですが オプション指定で 様々な解析が出来ます ) 46

ドキュメント検索のやり方 逆引き EXAMPLE 47

コンピュータビジョン系デモの詳細顔認識 48

特徴点検出 マッチングのワークフロー I1 = imread('cameraman.tif'); I2 = imrotate(i1, -20); I1 I2 スケール変化に不変な特徴点検出 points1 = detectsurffeatures(i1); points2 = detectsurffeatures(i2); [f1, vpts1] = extractfeatures(i1, points1); [f2, vpts2] = extractfeatures(i2, points2); 回転に不変な特徴量抽出 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 ); Perform Matching 数行のコードで検出 認識などを行うことが出来る 49