Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python で画像処理をしてみよう!
 第3回 - 画像認識 -

2,478 views

Published on

テンプレートマッチングによる画像認識の基礎。Morning Project Samurai (MPS) 32回ミーティング資料。

Foundations of template matching in a image recognition context. 32nd Morning Project Samurai (MPS) meeting at Bunkyo, Tokyo.

---

MPSは東京で活動しているクリエイティブなキャリアをつくるための場の活動です。
Websiteはこちらです!
https://mpsamurai.org/

コミュニティ/イベント告知はDoorkeeperでおこなっています。
https://mpsamurai.doorkeeper.jp/events
興味がある方はぜひご参加ください〜!

Published in: Software
  • Be the first to comment

Python で画像処理をしてみよう!
 第3回 - 画像認識 -

  1. 1. 2015/8/8 MPS第32回ミーティング Python で画像処理をしてみよう!
 第3回 - 画像認識 - 金子純也 (Morning Project Samurai 代表) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  2. 2. 目次 • Morning Project Samurai (MPS) とは • 前回までの復習 • 認識の基礎 • テンプレートマッチング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  3. 3. Morning Project Samurai (MPS) • Morning
 - 土曜の朝を有意義に • Project
 - プロジェクト指向 • Samurai
 - 謙虚に学習
 - プロジェクトをバッサバッサ
 と斬りまくる プロジェクト リーダー シップ メンバー シップ 成果 人脈 UP! UP! UP! キャリア 知識・技術 UP! UP! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  4. 4. これまでに行った活動 • 勉強会 (プレゼン)
 - Webアプリの安全性について(XSS実習)
 - コンピュータが動くメカニズム(論理回路基礎)
 - プログラムテストについて
 - JavaScript 入門 (実習)
 - Python を用いた Youtube 動画リストの作成
 (プログラム基礎、オブジェクト指向、サーバーからのデータ取得、
  ドキュメントの検索と読み方、UML基礎)
 - Python で OAuth を使ってみよう! • プロジェクト
 - MPS HP
 - ぶらさぼり(東京メトロオープンデータ活用コンテスト)
 - 企業内研修講師
 - 世田谷まちづくりファンド (MPS Setagaya 設立)
 - エジソンカー作成 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  5. 5. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  6. 6. ぶらサボり (東京メトロオプンデータコンテスト出展作品) Python + Django で開発第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  7. 7. 社内研修 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko 肖像権保護のため削除
  8. 8. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko 肖像権保護のため削除
  9. 9. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  10. 10. MPS Setagaya 設立! 次回: 2015/8/23 (日) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko 肖像権保護のため削除
  11. 11. Be Active, Be Creative!! MPS 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  12. 12. 目次 • Morning Project Samurai (MPS) とは • 前回までの復習 • 認識の基礎 • テンプレートマッチング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  13. 13. 目標 画像認識 (+α) を用いて
 ミニチュア(半)自立走行車を作る! (MPS Setagaya のイベントでの発表を目標) + KDDI 無限ラボになんか提出 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  14. 14. 画像認識 (Image Recognition) Recognition:
 The act of accepting that something is true or important or that it exists (出典: http://www.merriam-webster.com/) 
 
 物事の真偽や重要性、またはその存在を認める行動 
 Image Recognition: 画像や画像中にあるものが 一体何を意味しているかを理解する第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  15. 15. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  16. 16. ディジタル画像 ピクセル
 (r, g, b) = (255, 0, 0) ピクセルの集合で表現される画像 - ピクセルは離散点 - 各ピクセルにおけるカラーや濃淡の情報も離散値 ピクセル
 (r, g, b) = (255, 255, 255) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  17. 17. 配列による画像の表現 多くの場合、画像は配列で表現される 例: 2D画像の2次元配列表現 (0, 0) (12, 0) (12, 12) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  18. 18. RGB カラーモデルの原理 • 適切な3色を選べば、その混色で任意の色が表現 可能であることに基づく • S = RR0 + GG0 + BB0
 
 S: 任意の色
 R0, G0, B0: 原刺激
 R, G, B: 重み • 色空間: (R, G, B) の組みで表される3次元空間 (出典: https://msdn.microsoft.com/) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  19. 19. 使用レンジの拡大による コントラスト強調 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  20. 20. RGBの画像は情報が沢山 • Pixel 数: 640 * 360 = 230400 • 各ピクセルにRGBの情報: 230400 * 3 = 691200 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  21. 21. 少ない情報量で画像認識したい • Python は遅い • Edison のリソースの有効活用 自立走行するためには画像認識以外にも いろいろすることあるケロ!! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  22. 22. グレースケール (Grayscale) • グレーを使って画像を表現
 • ピクセルに格納される情報は一次元 • 一般に次式で RGB から変換
 Y = 0.299 * R + 0.587 * G + 0.114 * B • Y は輝度 (光の強さを表す) (出典: Wikipedia) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  23. 23. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  24. 24. 画像の差分 2つの画像のピクセル毎の輝度差情報を持った画像 なにかいるケロ!! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  25. 25. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  26. 26. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 識別器作成 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  27. 27. 目次 • Morning Project Samurai (MPS) とは • 前回までの復習 • 認識の基礎 • テンプレートマッチング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  28. 28. Q. コンピュータが画像中の
 人の存在を認識するには何が必要だろう?? 少し左よりの下に人がいる! (出典: https://www.apple.com/) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  29. 29. コンピュータが「人の特徴」を 1. 知ってるいること! 2. 画像中から抜き出せること! 人の特徴は⃝⃝である。 ⃝⃝が、そこに存在する。 よって人がそこに存在する。 (出典: https://www.apple.com/) 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  30. 30. コンピュータが
 「人の特徴」を知る方法 • コンピュータが人の特徴を自分で学習
 - 答えを与えた上で
 - 答えを与えないで • コンピュータに人の特徴をプログラミング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  31. 31. A. コンピュータが
 「人の特徴」を知る方法を考えてみよう! • コンピュータが人の特徴を自分で学習
 - 答えを与えた上で
 - 答えを与えないで • コンピュータに人の特徴をプログラミング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  32. 32. 目次 • Morning Project Samurai (MPS) とは • 前回までの復習 • 認識の基礎 • テンプレートマッチング 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  33. 33. テンプレート A gauge, pattern, or mold (as a thin plate or board) used as a guide to the form of a piece being made (出典:http://www.merriam-webster.com/) ものの形成においてガイドとして使われるパターン 人の存在の認識を形成するときにガイドとして
 使われるパターン 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  34. 34. テンプレートの例 これが人の特徴だケロ! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  35. 35. テンプレートを用いた 人の存在の認識 テンプレートを用いて 人を発見した! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  36. 36. テンプレートによる 人の存在の認識の手順 1. 使用するテンプレートを用意する 2. 画像からテンプレートにマッチする部分 を探索 3. 基準値以上にマッチする部分があれば
 その部分に人が存在すると認識 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  37. 37. テンプレートによる 人の存在の認識の手順 1. 使用するテンプレートを用意する 2. 画像からテンプレートにマッチする部分 を探索 3. 基準値以上にマッチする部分があれば
 その部分に人が存在すると認識 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  38. 38. マッチの度合い (類似度) の尺度が必要! 尺度に合わせた探索手法が必要! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  39. 39. 類似尺度の例 • SSD (Sum of Square Difference) • SAD (Sum of Absolute Difference) Iは被探索画像のピクセルの集合
 Tはテンプレート画像のピクセルの集合第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  40. 40. SSD (1e8) 縦方向 pixel 番号 横方向 pixel 番号第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  41. 41. Pillow でテンプレートマッチングをやってみよう! • 画像とテンプレートを1つ準備する • SSD を用いたテンプレートマッチングの
 アルゴリズムを作る • ヒント: (グレースケールの作り方)
 img.convert(‘L’) (img は Image のインスタンス) • テンプレートの作り方や画像の前処理方法を変えてみよう! • 使用している画像とテンプレートでの計算量を考えてみよう! • 今使用中のテンプレートを使ったマッチングを他の画像にも適用
 してみよう! 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  42. 42. 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  43. 43. 今回のテンプレートマッチングの 問題点 • 変形を伴う運動、スケール、回転に弱い
 - 人の形がテンプレートから外れると
 存在の認識が不可能 • 閾値が明るさやノイズの状況によって変化 • 遅い 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko
  44. 44. 次回から • SIFT (Scale-invariant feature transform) を用いた画像認識 第32回 (2015/8/8) MPS 定例ミーティング (c) Junya Kaneko

×