SlideShare a Scribd company logo
2015/11/29 MPS定例ミーティング
Python で画像認識をやってみよう! 第8回
- Scale-space 第7回 -
金子純也
Morning Project Samurai 代表
目次
• Gaussian Convolution (前回の復習)
• DoG (Difference of Gaussian)
• Scale-space の作成
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Gaussian Convolution
画像の平滑化
- 画像中の細かい特徴やノイズの除去

- 数学的には重み付き平均
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
二次元の Gaussian Convolution
(出典: [2])
* =
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化
離散化
(出典: [2])
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化 Gaussian Convolution Step 1
⭐
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化 Gaussian Convolution Step 2
⭐
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化 Gaussian Convolution Step 3
⭐
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化 Gaussian Convolution Step m*n
⭐
m行
n列
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
離散化 Gaussian Convolution の式
m行
n列
s行
t列
* = m行
n列
添字は全て0からスタートするケロ
[] はガウス記号だケロ
G が Mi に収まらない場合について考慮していないケロ
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
高速化離散化 Gaussian Convolution
一次元のGaussian Convolutionを
全ての行に適用した画像
計算量: m * n * s * t → m * n (s + t)
*α(k) = k - [2/s], β(l) - [2/t]
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
高速化離散化 Gaussian Convolution
ステップ1.
一次元のGaussian Convolutionを全ての行に適用
ステップ2.
ステップ1で得た画像に対して、一次元のGaussian
Convolution を全ての列に適用
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
作ってみよう!!
1. 離散化した Gaussian Convolution を用いて

画像を平滑化するプログラムを書いてみよう !



- まずは “lenna image processing” と 

google で検索してテスト用画像をゲット !



- σ の値を任意の値に変更していつでも画像を

平滑化できるようモジュール化してみよう !
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
目次
• Gaussian Convolution (前回の復習)
• DoG (Difference of Gaussian)
• Scale-space の作成
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
DoG (Difference of Gaussian)
スケールの異なるガウシアンカーネルの差分
DoG * =
LoG (Laplacian of Gaussian) と同様の効果
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
キーポイント
• DoG を適用した画像の集合から得られた

極値点 (x, y, σ) の集合にさらにふるいをかけたもの
• SIFT では画像からキーポイントに関する情報を

さらに導出し画像の特徴とする
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
DoG を画像に適用するプログラム
を作ってみよう !
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
ちょっと待った!
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Q: この式を見た感想は?
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
この式のままじゃ、
Scale-space が有効活用できないんですけど。。。
今までの苦労はどうしてくれるケロか !!!
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Scale-space を有効活用した DoG の
適用方法
Convolution の性質:
適用方法の導出:
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Scale-space を有効活用した DoG の
適用方法
Convolution の性質:
適用方法の導出:
Scale-space 中に既に存在する画像 !第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
DoG を適用した画像の求め方
Scale-space 中のG(x, y, kσ) で平滑化した画像と 

G(x, y, σ) で平滑化した画像の差分を取るだけ !!
ー
それを早くいうケロ
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
でも待って!
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
なんでこれで
エッジの抽出や強調が
できるの?
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
LoG (Laplacian of Gaussian)
• 画像からエッジの強調や抽出をするために

使用される
• Gaussian kernel と Laplacian の合わせ技

- 下記作業を一括して行うオペレータ

1. Gaussian Kernel を画像に適用して平滑化

2. その後 Laplacian を用いてエッジの抽出
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Laplacian
ある点における関数の曲がり度合いを表す値

を求めるためのオペレータ
使い方:
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
LoG の式とグラフ
具体的な式の形が気になる人は、
Gaussian Kernel を x と y について
二回微分してみるケロ !
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
LoG 1次元の例
(出典: [2])第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
LoG と DoG の関係
(出典: [1])
DoG は LoG の定数倍
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
DoG を用いる利点
• LoG は 計算量が大きい

- Gaussian Convolution のように x 軸と y 軸に

分けて計算できない
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
作ってみよう!!
• DoG が適用された画像を出力するモジュールを

作ってみよう !!



- Step 1. 

前の演習で作った平滑化モジュールを用いて

平滑化された画像を異なる二つのσについて出力



- Step 2. 

出力された二枚の画像の差分を出力
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
目次
• Gaussian Convolution
• DoG (Difference of Gaussian)
• Scale-space の作成
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
Scale-space and Octave
(出典: [1])第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
SIFTのための
Scale-space 作成時のパラメータ
• σ0: ベースとなるσの値 (1.6)
• 分割数s: 2σ0 となるまでに作る画像の個数 (3)
• スケール増加率k: k = 2^(1/s)
• オクターブ数: n
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
手順
• σ = 1.6, s = 3 として、σ, kσ, (k^2)σ, … (k^5)σ

で平滑化された画像で Scale-space を作成
• できた Scale-space の画像を用いて DoG を適用した

画像で構成される空間を作成
• (k^3) σ の画像を1/4の大きさにダウンサンプリング
• ダウンサンプリングした画像を元に Scale-space

をもう一つ構成する (2nd octave)
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
今後の予定
• 次回:

SIFT による画像の特徴の作成
• 次次回

SIFT で作成した特徴量を用いた物体の認識
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko
参考文献
1. David G. Lowe. 2004. Distinctive Image Features from Scale-Invariant
Keypoints. Int. J. Comput. Vision 60, 2 (November 2004), 91-110.
2. M. Alex O. Vasilescu: http://alumni.media.mit.edu/~maov/classes/
vision09/lect/09_Image_Filtering_Edge_Detection_09.pdf
第39回 (2015/11/28) MPS 定例ミーティング (c) Junya Kaneko

More Related Content

PDF
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
PDF
Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -
PDF
Python で画像処理をしてみよう!
 第3回 - 画像認識 -
PDF
Pythonで画像処理をしてみよう!第4回 - Scale-space 第1回-
PDF
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
PDF
Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -
PDF
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
PDF
プログラミングで少し世界を広げよう(MPS)
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第5回 - Scale-space 第2回 -
Python で画像処理をしてみよう!
 第3回 - 画像認識 -
Pythonで画像処理をしてみよう!第4回 - Scale-space 第1回-
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Pythonで画像処理をやってみよう!第2回 - 動く物体の抜き出し -
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
プログラミングで少し世界を広げよう(MPS)

What's hot (10)

PDF
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
PDF
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
PPTX
明日機械学習に役立つかもしれない数学
PPTX
フラクタル音楽 〜可視化と可聴化の世界〜
PDF
【CVPR 2019】Do Better ImageNet Models Transfer Better?
PDF
IT エンジニア本大賞 2021 講演資料
PPTX
ディープラーニングゼミ応用編2
PDF
アルゴリズムを楽しく!@PiyogrammerConference
PDF
LightGBM: a highly efficient gradient boosting decision tree
PDF
UsingChainerMN
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
明日機械学習に役立つかもしれない数学
フラクタル音楽 〜可視化と可聴化の世界〜
【CVPR 2019】Do Better ImageNet Models Transfer Better?
IT エンジニア本大賞 2021 講演資料
ディープラーニングゼミ応用編2
アルゴリズムを楽しく!@PiyogrammerConference
LightGBM: a highly efficient gradient boosting decision tree
UsingChainerMN
Ad

Viewers also liked (20)

PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
PDF
Python で画像処理をやってみよう! -SIFT 第6回-
PDF
第4回MachineLearningのための数学塾資料(浅川)
PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
PDF
JavaScript でパックマン!第7回 (一旦最終回)
PDF
JavaScript でパックマン!第1回
PDF
Python で画像処理をやってみよう! -SIFT 第5回-
PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
PDF
Mpsy20160423
PDF
primers neural networks
PDF
回帰
PDF
2016tensorflow ja001
PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
PDF
Tensor flowと機械学習に必要な数学を基礎から学ぶ会 lt_20170118
PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
PDF
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
PDF
TensorFlow math ja 05 word2vec
PDF
Python で画像処理をやってみよう! -SIFT 第7回-
PDF
深層学習(ディープラーニング)入門勉強会資料(浅川)
PPTX
Python勉強会in 長野 オープニング
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
Python で画像処理をやってみよう! -SIFT 第6回-
第4回MachineLearningのための数学塾資料(浅川)
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第1回
Python で画像処理をやってみよう! -SIFT 第5回-
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
Mpsy20160423
primers neural networks
回帰
2016tensorflow ja001
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
Tensor flowと機械学習に必要な数学を基礎から学ぶ会 lt_20170118
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
TensorFlow math ja 05 word2vec
Python で画像処理をやってみよう! -SIFT 第7回-
深層学習(ディープラーニング)入門勉強会資料(浅川)
Python勉強会in 長野 オープニング
Ad

Similar to Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 - (9)

PDF
グラフニューラルネットワーク入門
PPTX
"There and Back Again: Revisiting Backpropagation Saliency Methods" (CVPR2020)
PPT
Introduction to R Graphics with ggplot2 #2
PDF
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
PDF
Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image S...
PPTX
全体セミナー20180124 final
PDF
lispmeetup#63 Common Lispでゼロから作るDeep Learning
PDF
Datamining 5th knn
PDF
Limits on Super-Resolution and How to Break them
グラフニューラルネットワーク入門
"There and Back Again: Revisiting Backpropagation Saliency Methods" (CVPR2020)
Introduction to R Graphics with ggplot2 #2
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image S...
全体セミナー20180124 final
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Datamining 5th knn
Limits on Super-Resolution and How to Break them

More from Project Samurai (15)

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

Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -