SlideShare una empresa de Scribd logo
1 de 33
第32回 (2015/7/24) MPS 定例ミーティング
Python で画像処理をやってみよう!
第2回 - 動く物体の抜き出し -
金子純也
(Morning Project Samurai 代表)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGB とグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
Morning Project Samurai (MPS)
• Morning

- 土曜の朝を有意義に
• Project

- プロジェクト指向
• Samurai

- 謙虚に学習

- プロジェクトをバッサバッサ

と斬りまくる
プロジェクト
リーダー
シップ
メンバー
シップ
成果
人脈
UP!
UP!
UP!
キャリア
知識・技術
UP!
UP!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
これまでに行った活動
• 勉強会 (プレゼン)

- Webアプリの安全性について(XSS実習)

- コンピュータが動くメカニズム(論理回路基礎)

- プログラムテストについて

- JavaScript 入門 (実習)

- Python を用いた Youtube 動画リストの作成

(プログラム基礎、オブジェクト指向、サーバーからのデータ取得、

 ドキュメントの検索と読み方、UML基礎)

- Python で OAuth を使ってみよう!
• プロジェクト

- MPS HP

- ぶらさぼり(東京メトロオープンデータ活用コンテスト)

- 企業内研修講師

- 世田谷まちづくりファンド (MPS Setagaya 設立)

- エジソンカー作成
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
ぶらサボり
(東京メトロオプンデータコンテスト出展作品)
Python + Django で開発第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
MPS Setagaya 設立!
次回: 2015/8/2 (日)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像削除
Be Active, Be Creative!!
MPS
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像認識 (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
画像認識の流れ
サンプリング 前処理 認識
濃度調整
ひずみ補正
雑音除去
etc.
特徴

抽出
エッジ検出
線分検出
領域分割
etc.
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
必要となる (学べる) 知識と技術
• コンピュータ内での基本的な画像の扱い方
• 数学 

(行列演算、フーリエ変換、etc.)
• パターン認識、学習アルゴリズム 

(ニューラルネット、ベイジアンネットワーク、etc.)
• 上記を統合して実際にプログラミングできる技術
(コンピュータサイエンスに所属する大学3年生程度の知識)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像認識の流れ
サンプリング 前処理 認識
濃度調整
ひずみ補正
雑音除去
etc.
特徴

抽出
エッジ検出
線分検出
領域分割
etc.
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像認識の流れ
サンプリング 前処理 認識
濃度調整
ひずみ補正
雑音除去
etc.
特徴

抽出
エッジ検出
線分検出
領域分割
etc.
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
使用レンジの拡大による
コントラスト強調
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像を見やすくする方法を
考えてみよう! (問題編)
使用している濃度レンジ
使用可能な濃度レンジ
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
使用レンジの拡大による
コントラスト強調
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
使用レンジの拡大による
コントラスト強調
暗かった写真が見やすくなったケロ!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
でも、問題が!!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
RGBの画像は情報が沢山
• Pixel 数: 640 * 360 = 230400
• 各ピクセルにRGBの情報: 230400 * 3 = 691200
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
少ない情報量で画像認識したい
• Python は遅い
• Edison の CPU リソースの有効活用
自立走行するためには画像認識以外にも
いろいろすることあるケロ!!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
グレースケール (Grayscale)
• グレーを使って画像を表現

• ピクセルに格納される情報は一次元
• 一般に次式で RGB から変換

Y = 0.299 * R + 0.587 * G + 0.114 * B
• Y は輝度 (光の強さを表す)
(出典: Wikipedia)
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
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
目次
• Morning Project Samurai (MPS) とは
• 前回の復習
• RGBとグレースケール
• 画像の差分を用いた背景と物体の切り分け
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像の差分ってどんなもの?
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像の差分ってどんなもの?
2つの画像のピクセル毎の輝度差情報を持った画像
輝度値 = f(i, j)

i, j: ピクセルのx座標, y座標
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像の差分
2つの画像のピクセル毎の輝度差情報を持った画像
なにかいるケロ!!
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
画像削除
第32回 (2015/7/24) MPS 定例ミーティング (c) Junya Kaneko
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
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

Más contenido relacionado

La actualidad más candente

大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
Takuya Akiba
 

La actualidad más candente (16)

Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -
Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -
Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -
 
IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料IT エンジニア本大賞 2021 講演資料
IT エンジニア本大賞 2021 講演資料
 
20190509 gnn public
20190509 gnn public20190509 gnn public
20190509 gnn public
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
 
UsingChainerMN
UsingChainerMNUsingChainerMN
UsingChainerMN
 
SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料SakataMoriLab GNN勉強会第一回資料
SakataMoriLab GNN勉強会第一回資料
 
Ssaw08 0603
Ssaw08 0603Ssaw08 0603
Ssaw08 0603
 
Sano hmm 20150512
Sano hmm 20150512Sano hmm 20150512
Sano hmm 20150512
 
グラフデータ分析 入門編
グラフデータ分析 入門編グラフデータ分析 入門編
グラフデータ分析 入門編
 
アルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConferenceアルゴリズムを楽しく!@PiyogrammerConference
アルゴリズムを楽しく!@PiyogrammerConference
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
R+pythonでKAGGLEの2値予測に挑戦!
R+pythonでKAGGLEの2値予測に挑戦! R+pythonでKAGGLEの2値予測に挑戦!
R+pythonでKAGGLEの2値予測に挑戦!
 
クリスマス?
クリスマス?クリスマス?
クリスマス?
 
hivemallを使って4日間で性別推定した話
hivemallを使って4日間で性別推定した話hivemallを使って4日間で性別推定した話
hivemallを使って4日間で性別推定した話
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 
Mlct 20150430v2
Mlct 20150430v2Mlct 20150430v2
Mlct 20150430v2
 

Destacado

Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-
Project Samurai
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用
Yasutomo Kawanishi
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
徹 上野山
 

Destacado (19)

Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
 
Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-
 
Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-
 
2016tensorflow ja001
2016tensorflow ja0012016tensorflow ja001
2016tensorflow ja001
 
第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)第4回MachineLearningのための数学塾資料(浅川)
第4回MachineLearningのための数学塾資料(浅川)
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
 
Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-
 
Rで野球データ解析がしたい ( pitchRxを使う )
Rで野球データ解析がしたい ( pitchRxを使う )Rで野球データ解析がしたい ( pitchRxを使う )
Rで野球データ解析がしたい ( pitchRxを使う )
 
画像処理でのPythonの利用
画像処理でのPythonの利用画像処理でのPythonの利用
画像処理でのPythonの利用
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
 
Python勉強会in 長野 オープニング
Python勉強会in 長野 オープニングPython勉強会in 長野 オープニング
Python勉強会in 長野 オープニング
 
これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本これでBigQueryをドヤ顔で語れる!BigQueryの基本
これでBigQueryをドヤ顔で語れる!BigQueryの基本
 
OpenCVの基礎
OpenCVの基礎OpenCVの基礎
OpenCVの基礎
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話
 
201205016 deformablemodelfitting
201205016 deformablemodelfitting201205016 deformablemodelfitting
201205016 deformablemodelfitting
 
「長野で語るStapyのビジョン」
「長野で語るStapyのビジョン」「長野で語るStapyのビジョン」
「長野で語るStapyのビジョン」
 
キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06キーワード駆動テストチュートリアルハンズアウト.03.06
キーワード駆動テストチュートリアルハンズアウト.03.06
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 

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

SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料
Masayuki Tanaka
 
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
Michiharu Niimi
 

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

SSII2018TS: コンピュテーショナルイルミネーション
SSII2018TS: コンピュテーショナルイルミネーションSSII2018TS: コンピュテーショナルイルミネーション
SSII2018TS: コンピュテーショナルイルミネーション
 
SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第4回
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
 
CVPR 2018 速報とその後 (CVPR 2018 完全読破チャレンジ報告会)
CVPR 2018 速報とその後 (CVPR 2018 完全読破チャレンジ報告会) CVPR 2018 速報とその後 (CVPR 2018 完全読破チャレンジ報告会)
CVPR 2018 速報とその後 (CVPR 2018 完全読破チャレンジ報告会)
 
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
[チュートリアル講演]画像データを対象とする情報ハイディング〜JPEG画像を利用したハイディング〜
 
画像処理入門
画像処理入門画像処理入門
画像処理入門
 
Geotag Data Mining (メタサーベイ )
Geotag Data Mining (メタサーベイ )Geotag Data Mining (メタサーベイ )
Geotag Data Mining (メタサーベイ )
 
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
 

Más de Project Samurai

Más de Project Samurai (18)

数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
 
Mpsy20160423
Mpsy20160423Mpsy20160423
Mpsy20160423
 
Make your Artificial Intelligence
Make your Artificial IntelligenceMake your Artificial Intelligence
Make your Artificial Intelligence
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!
 
JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)
 
JavaScript でパックマン!第6回
JavaScript でパックマン!第6回JavaScript でパックマン!第6回
JavaScript でパックマン!第6回
 
JavaScript で パックマン! 第5回
JavaScript で パックマン! 第5回JavaScript で パックマン! 第5回
JavaScript で パックマン! 第5回
 
JavaScript でパックマン!第4回
JavaScript でパックマン!第4回JavaScript でパックマン!第4回
JavaScript でパックマン!第4回
 
JavaScript でパックマン!第3回
JavaScript でパックマン!第3回JavaScript でパックマン!第3回
JavaScript でパックマン!第3回
 
JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回JavaScript でパックマン! 第2回
JavaScript でパックマン! 第2回
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第1回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第1回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第1回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第1回
 
安全なWebアプリ構築1回
安全なWebアプリ構築1回安全なWebアプリ構築1回
安全なWebアプリ構築1回
 

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