More Related Content Similar to Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し - (10) More from Project Samurai (18) Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -1. 第32回 (2015/7/24) MPS 定例ミーティング
Python で画像処理をやってみよう!
第2回 - 動く物体の抜き出し -
金子純也
(Morning Project Samurai 代表)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
2. 目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGB とグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
3. Morning Project Samurai (MPS)
• Morning
- 土曜の朝を有意義に
• Project
- プロジェクト指向
• Samurai
- 謙虚に学習
- プロジェクトをバッサバッサ
と斬りまくる
プロジェクト
リーダー
シップ
メンバー
シップ
成果
人脈
UP!
UP!
UP!
キャリア
知識・技術
UP!
UP!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
4. これまでに行った活動
• 勉強会 (プレゼン)
- Webアプリの安全性について(XSS実習)
- コンピュータが動くメカニズム(論理回路基礎)
- プログラムテストについて
- JavaScript 入門 (実習)
- Python を用いた Youtube 動画リストの作成
(プログラム基礎、オブジェクト指向、サーバーからのデータ取得、
ドキュメントの検索と読み方、UML基礎)
- Python で OAuth を使ってみよう!
• プロジェクト
- MPS HP
- ぶらさぼり(東京メトロオープンデータ活用コンテスト)
- 企業内研修講師
- 世田谷まちづくりファンド (MPS Setagaya 設立)
- エジソンカー作成
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
9. Be Active, Be Creative!!
MPS
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
10. 目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
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
13. 必要となる (学べる) 知識と技術
• コンピュータ内での基本的な画像の扱い方
• 数学
(行列演算、フーリエ変換、etc.)
• パターン認識、学習アルゴリズム
(ニューラルネット、ベイジアンネットワーク、etc.)
• 上記を統合して実際にプログラミングできる技術
(コンピュータサイエンスに所属する大学3年生程度の知識)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
21. RGBの画像は情報が沢山
• Pixel 数: 640 * 360 = 230400
• 各ピクセルにRGBの情報: 230400 * 3 = 691200
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
23. 目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
24. グレースケール (Grayscale)
• グレーを使って画像を表現
• ピクセルに格納される情報は一次元
• 一般に次式で RGB から変換
Y = 0.299 * R + 0.587 * G + 0.114 * B
• Y は輝度 (光の強さを表す)
(出典: Wikipedia)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
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. 目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
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. 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