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

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