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で画像処理をやってみよう!第2回 - 動く物体の抜き出し -

2,029 views

Published on

Python で画像処理をやってみよう!第2回 - 動く物体の抜き出し - 第31回 MPS ミーティング資料

Let's learn image processing with Python part 2. "Extract moving object."

The 32nd Morning Project Samurai (MPS) meeting document.

---

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

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

Published in: Software

Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -

  1. 1. 第32回 (2015/7/24) MPS 定例ミーティング Python で画像処理をやってみよう! 第2回 - 動く物体の抜き出し - 金子純也 (Morning Project Samurai 代表) 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  2. 2. 目次 • Morning Project Samurai (MPS) とは • 前回の復習 • RGB とグレースケール • 画像の差分を用いた背景と物体の切り分け 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  3. 3. Morning Project Samurai (MPS) • Morning
 - 土曜の朝を有意義に • Project
 - プロジェクト指向 • Samurai
 - 謙虚に学習
 - プロジェクトをバッサバッサ
 と斬りまくる プロジェクト リーダー シップ メンバー シップ 成果 人脈 UP! UP! UP! キャリア 知識・技術 UP! UP! 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  4. 4. これまでに行った活動 • 勉強会 (プレゼン)
 - Webアプリの安全性について(XSS実習)
 - コンピュータが動くメカニズム(論理回路基礎)
 - プログラムテストについて
 - JavaScript 入門 (実習)
 - Python を用いた Youtube 動画リストの作成
 (プログラム基礎、オブジェクト指向、サーバーからのデータ取得、
  ドキュメントの検索と読み方、UML基礎)
 - Python で OAuth を使ってみよう! • プロジェクト
 - MPS HP
 - ぶらさぼり(東京メトロオープンデータ活用コンテスト)
 - 企業内研修講師
 - 世田谷まちづくりファンド (MPS Setagaya 設立)
 - エジソンカー作成 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  5. 5. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  6. 6. ぶらサボり (東京メトロオプンデータコンテスト出展作品) Python + Django で開発第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  7. 7. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  8. 8. MPS Setagaya 設立! 次回: 2015/8/2 (日) 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko 画像削除
  9. 9. Be Active, Be Creative!! MPS 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  10. 10. 目次 • Morning Project Samurai (MPS) とは • 前回の復習 • RGBとグレースケール • 画像の差分を用いた背景と物体の切り分け 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  11. 11. 画像認識 (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/7/24) MPS 定例ミーティング (c) Junya Kaneko
  12. 12. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  13. 13. 必要となる (学べる) 知識と技術 • コンピュータ内での基本的な画像の扱い方 • 数学 
 (行列演算、フーリエ変換、etc.) • パターン認識、学習アルゴリズム 
 (ニューラルネット、ベイジアンネットワーク、etc.) • 上記を統合して実際にプログラミングできる技術 (コンピュータサイエンスに所属する大学3年生程度の知識) 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  14. 14. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  15. 15. 画像認識の流れ サンプリング 前処理 認識 濃度調整 ひずみ補正 雑音除去 etc. 特徴
 抽出 エッジ検出 線分検出 領域分割 etc. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  16. 16. 使用レンジの拡大による コントラスト強調 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  17. 17. 画像を見やすくする方法を 考えてみよう! (問題編) 使用している濃度レンジ 使用可能な濃度レンジ 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  18. 18. 使用レンジの拡大による コントラスト強調 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  19. 19. 使用レンジの拡大による コントラスト強調 暗かった写真が見やすくなったケロ! 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  20. 20. でも、問題が!! 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  21. 21. RGBの画像は情報が沢山 • Pixel 数: 640 * 360 = 230400 • 各ピクセルにRGBの情報: 230400 * 3 = 691200 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  22. 22. 少ない情報量で画像認識したい • Python は遅い • Edison の CPU リソースの有効活用 自立走行するためには画像認識以外にも いろいろすることあるケロ!! 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  23. 23. 目次 • Morning Project Samurai (MPS) とは • 前回の復習 • RGBとグレースケール • 画像の差分を用いた背景と物体の切り分け 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  24. 24. グレースケール (Grayscale) • グレーを使って画像を表現
 • ピクセルに格納される情報は一次元 • 一般に次式で RGB から変換
 Y = 0.299 * R + 0.587 * G + 0.114 * B • Y は輝度 (光の強さを表す) (出典: Wikipedia) 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  25. 25. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  26. 26. RGB画像 をグレースケール画像に
 変換する関数を作って動作確認してみよう ! • 変換式: Y = 0.299 * R + 0.587 * G + 0.114 * B • Pillow を用いたRGB画像のロードとピクセル情報の取得
 - 画像のロード: img = Image.open(‘ファイル名’)
 - 幅と高さの取得: img.width, img.height
 - ピクセル情報の全取得: pxls = img.load()
 - i, j 要素のピクセル情報取得: r, g, b = pxls[i, j] • Pillow を用いたグレースケール画像の作成方法
 - img = Image.new(‘L’, (画像の幅, 画像の高さ))
 - i, j 要素のピクセル情報書き込み: pxls[i, j] = 値 • Image オブジェクトのコピー: img2 = img1.copy() 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  27. 27. 目次 • Morning Project Samurai (MPS) とは • 前回の復習 • RGBとグレースケール • 画像の差分を用いた背景と物体の切り分け 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  28. 28. 画像の差分ってどんなもの? 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  29. 29. 画像の差分ってどんなもの? 2つの画像のピクセル毎の輝度差情報を持った画像 輝度値 = f(i, j)
 i, j: ピクセルのx座標, y座標 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  30. 30. 画像の差分 2つの画像のピクセル毎の輝度差情報を持った画像 なにかいるケロ!! 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko 画像削除
  31. 31. 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  32. 32. 2つの画像の輝度差情報を持つ画像を 作る関数を作ってみよう ! (準備編) 1. PCについているウェブカメラで動画を撮影
 (カメラが自動的に輝度を調整しないように注意) 2. 動画を py ファイルと同じ場所に保存 3. py ファイルと同じ場所に jpg フォルダを作成 4. 動画ファイルを連番JPEG画像ファイルに変換
 - ffmpeg をダウンロード & インストール
 - ffmpeg -i 動画ファイル名 jpg/image-%d.jpg 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
  33. 33. 2つの画像の輝度差情報を持つ画像を 作る関数を作ってみよう ! (実装編) • 関数の入力: 2つの Image オブジェクト • 関数の出力: 輝度差情報を持つ Image オブジェクト • できたら、連番JPEG画像に適用してみよう! • ffmpeg -framerate 5 -i image-%d.jpeg -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko

×