• 検索結果がありません。

ディジタルメディア処理 2

N/A
N/A
Protected

Academic year: 2021

シェア "ディジタルメディア処理 2"

Copied!
42
0
0

読み込み中.... (全文を見る)

全文

(1)

ディジタルメディア処理 2

担当 : 井尻 敬

(2)

Contents

00. 序論 : イントロダクション

01.  特徴検出 1 : テンプレートマッチング、コーナー・エッジ検出 02. 特徴検出 2 : DoG 特徴量, SIFT 特徴量,ハフ変換

03.  領域分割 : 領域分割とは,閾値法,領域拡張法,グラフカット法 , etc 04.  パターン認識基礎 1 : パターン認識概論,サポートベクタマシン

05.  パターン認識基礎 2 : ニューラルネットワーク、深層学習 06.  パターン認識基礎 3 : 主成分分析 , オートエンコーダ

07.  プログラミング演習 1 : zoom 実施 ※ 講義時間中 zoom を開設, TA に自由に質問可

08.  プログラミング演習 2 : zoom 実施 ※ 提出済み課題について,井尻に説明する時間を設ける 09. プログラミング演習 3 : zoom 実施

10.  プログラミング演習 4 : zoom 実施 11.  プログラミング演習 5 : zoom 実施 12. 筆記試験

(3)

特徴点検出

• (復習)ガウシアンフィルタとその性質

• 特徴点とは

• SIFT 特徴

• Hough 変換

(4)

復習 : ガウシアンフィルタとその性質

復習

(5)

線形フィルタの例

ぼかす 鮮鋭化

復習

1/16 2/16 1/16

2/16 4/16 2/16

1/16 2/16 1/16

0 -1

0

-1 5 -1

0 -1

0

(6)

(i,j) (i,j)

2 h + 1

 

2 h + 1

 

線形フィルタとは

出力画素値を周囲画素の重み付和で計算するフィルタ

( , ) = ∑

= − h h

∑ =−h h

h ( , ) ( + , + )

 

I’ (i,j) 出力画像

h(i,j)

フィルタ I(i,j)

入力画像

復習

(7)

( � ∗ � ) ( ) = ∫

−∞

( ) ( ) ��

 

連続 :

( �∗ � ) ( ) =

�= −∞

( ) ( )

離散   :

『 * 』を畳み込み積分( Convolution) と呼び,以下の性質が成り立つ 交換 : = 

結合 : = 分配 : 微分 : 

フーリエ変換 :

 

線形フィルタ( convolution ) 復習

(8)

畳み込み積分のフーリエ変換 :

  復習

(9)

畳み込み積分のフーリエ変換 :

 

*

σ=6

   

×

σ=1/6

( )

    ( )

1

 

復習

(10)

ガウシアンフィルタとは

σ ( )= 1

2 � � 2

2

2

2

  σ ( , ) = 1

2 � � 2

2

+

2

2

2

 

1D

=1

  2D

=1

 

ガウス関数により畳み込むフィルタのこと

画像を平滑化する効果がある(ローパスフィルタ)

画像処理において様々な場面で活躍する

復習

(11)

ガウシアンのフーリエ変換はガウシアン

標準偏差 σ のガウス関数

をフーリエ変換すると標準偏差が逆 数のガウシアンになる

または

•  

  =3.0

=1/3.0

 

復習

(12)

2つの異なるガウシアンフィルタを用意する これらのフーリエ変換は以下の通り

関数に,フィルタを順番に適用する

•  

とを連続して畳み込むのは

を一度だけ畳み込むことと等しい

 

  =5 ( )

  �= 3 ( )

�= 4 ( )

 

復習

(13)

まとめ : ガウシアンフィルタとその性質

• 画像処理において頻繁に利用されるガウシアンフィルタの性質 を紹介した

• ガウス関数のフーリエ変換はガウス関数

• 複数のガウシアンフィルタ適用は,一つのガウシアンフィルタ で表せる

•  

σ ( )= 1

2 � � 2

2

2

2

  σ ( , ) = 1

2 � � 2

2

+

2

2

2

 

(14)

特徴点とは

(15)

特徴抽出とマッチング

画像内から特徴的な場所を検出し似た 特徴を持つ場所と対応付けしたい

 パノラマ合成,ステレオ視,物体認 識, VR (位置あわせ), etc

画像内から特徴的な点を検出する

検出した点の局所的な特徴を計算機が 処理できる形で記述したい

+ 局所特徴を多次元ベクトルで表現

+ 平行移動 / 拡大 / 回転に強い記述が理想

(平行移動・拡大縮小・回転があっても特徴

量が変化しない)

(16)

特徴ベクトルとか言われてもしっくりこないという人のために…

• 画像 2 枚から特徴的な点を沢山抽出できた としてどれとどれが似ているかを知りたい

• つまり,どれとどれが似た局所画像を持つ か知りたい

 検出した特徴点の周囲の情報を,比較でき る形(数値データ)に変換したい

       !!! 特徴ベクトル !!!

     • 撮影条件によって対象は回転・拡大縮小・平行移動 するので,画像が回転・拡大縮小・平行移動しても 似た特徴ベクトルを生成できる手法がほしい

  この条件を満たす SIFT が良く用いられてきた

(17)

SIFT 特徴

Scale Invariant Feature Transform

• 有名&頻繁に利用される特徴量のひとつ

• 周囲の特徴を 128 次元ベクトルで表現

• 平行移動・回転・拡大縮小に堅固

• 平行移動・回転・拡大縮小があっても似た特 徴ベクトルを出力できる

• 特徴ベクトルにすると局所領域の相違度 を計算できる

※ は特徴ベクトルの要素

※ これは相違度の一例

•  

SIFT.py

各点が 128 次

元の特徴ベク

トルを持つ

(18)

SIFT 特徴

(19)
(20)

DoG : Difference of Gaussian DoG.py

局所的に輝度値が高い・低い点やエッジ,コーナーなどが検出される その特徴点が現れたスケールも同時に得られる

(どの解像度でその点が特徴的だったかが分かる)

21

(21)

SIFT 特徴

1. 特徴点検出

DoG の極大・極小を特徴点とする

Harris 行列を用いてエッジ点は除去

閾値処理でノイズ(極大値が小さい点)も除去

2. 方向検出

発見した各特徴点において、 DoG の層に対応するガウシア ンフィルタのかかった画像を利用し

勾配ヒストグラムを生成(方向を 36 分割し,強度を中心か らの距離で重み付け)

ヒストグラムを正規化し強度が 0.8 以上の方向を検出 ( 数検出される複数の特徴量を生成)

3. 特徴ベクトル計算

検出した方向に沿った局所窓を配置

領域を 4x4 分割し,各領域内で勾配ヒストグラムを 計算する

勾配ヒストグラムを特徴ベクトルとする

勾配は 8方向に量子化

4*4*8 = 128 次元ベクトルに

得られた特徴ベクトルを正規化(ベクトルの総和で割る)

方向ヒストグラム(イメージ)

0 20 40 60 80 100

120 140

160 180

200 220

240 260

280 300

320 340 0

0.2 0.4 0.6 0.8 1 1.2

各セルにおいて8方向に量子化した 勾配ヒストグラムを計算

(22)

SIFT 特徴点の例

(23)

1 4 7

10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103

106 109

112 115

118 121

124 127 0

20 40 60 80 100 120 140 160

文字

N

SIFT

特徴

book1 book2 book3

(24)

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103

106 109

112 115

118 121

124 127 0

20 40 60 80 100 120 140 160

画 の   SIFT 特徴

book1 book3 book4

(25)

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103

106 109

112 115

118 121

124 127 0

20 40 60 80 100 120 140

ル の

  SIFT

特徴

book1 book3

(26)

1. 特徴点検出

DoG の極大・極小を特徴点とする

Harris 行列を用いてエッジ点は除去

閾値処理でノイズ(極大値が小さい点)も除去

2. 方向検出

発見した特徴点においてそのサイズに合わせた局 所領域を考える(追記しました)

勾配ヒストグラムを生成(方向を 36 分割し,強度 を中心からの距離で重み付け)

ヒストグラムを正規化し強度が 0.8 以上の方向を 検出 ( 複数検出される複数の特徴量を生成 )

3. 特徴ベクトル計算

• 検出した方向に沿って局所領域を回転

• 領域を 4x4 分割し,各領域内で勾配ヒストグ ラムを計算する

• 勾配ヒストグラムを特徴ベクトルとする

勾配は 8方向に量子化

4*4*8 = 128 次元ベクトルに

• 得られた特徴ベクトルを正規化

(ベクトルの総

和で割る)

※ 手順を覚えてほしいわけではなくて、

このように設計した特徴ベクトルが,なぜ拡大縮小と回 転に対して不変(変化しにくい)となるかを説明できる ようになってほしい

質問 :

SIFT 特徴は

なぜ拡大・回転について不変なのか ?

27

(27)

SIFT 特徴(実装)

# SIFT.py

img1 = cv2.imread(“ 画像名 .bmp", 0) sift = cv2.xfeatures2d.SIFT_create()

key1, des1 = sift.detectAndCompute (img1, None )

Python & openCV 環境だと上記の 3 行で SIFT 特徴を検出できます

※key1 は特徴点の位置を保持する配列

※des1 は特徴点の特徴ベクトルを保持する配列

※ 『 xfeatures2d.SIFT_create 』を書き換えると色々な特徴量を試せます 最近は C++ で全部書くのは流行らないみたい.

良い時代ですね。。。

(28)

まとめ : SIFT 特徴

• 特徴ベクトルとは何かを解説した

• 検出された特徴点同士を比較するため,特徴点

周囲の局所領域をベクトルの形で表すもの.

• 特徴ベクトルは, SIFT ,

BRIEF, ORB, SURF,

AKAZE など,沢山の種類がある

• 特徴ベクトルは目的や対象画像の依存してよい

ものを選択すべき

• SIFT 特徴

• DoG の極値を特徴点として検出

• 特徴点のスケールに応じた局所領域を考慮

• 特徴点周囲の勾配方向に沿って局所窓を回転

• 局所窓を 4 分割し,各領域の勾配ヒストグラム

を特徴ベクトルとする

(29)

Hough 変換

(30)

Hough 変換とは

• 画像中から直線や円を検出する手法

• 直線や円の一部が破損・劣化してい ても検出可能

Hough.py

(31)

xy 空間と ab 空間

xy 空間における直線は 『 』と表せる

直線の傾き を横軸・ y 切片 を縦軸にとる ab 空間を考える

•  

x y

a b

2

    ( 1 2 / 2 )

直線は点に

xy 空間 ab パラメータ 空間

(32)

xy 空間と ab 空間

x y

a b

点を通る直線群

 

(2,3) を通る直線群は

パラメータ空間では 直線 : に

 

xy 空間 ab パラメータ 空間

( 2 3 )

 

より  

 

 

(33)

xy 空間と ab 空間

x y

a b

直線 上の点群 を通る直線群

 

上の点群

を通る直線群は  

と表せる

 

xy 空間 ab パラメータ 空間 2

 

を通る点群は と表せる.

この点を通る直線群は より

 

を通る直線群になる

 

SKIP

不要

(34)

xy 空間と ab 空間

直線の傾きを横軸, y 切片を縦軸にとる ab 空間を考えると…

• 直線  点に

• 点を通る直線群  直線に

• 直線 上の点群を通る直線群 点

•  

SKIP

不要

(35)

Hough 変換

入力 : 画像

出力 : エッジを通る直線群 1. 画像をエッジ画像へ変換

2. 全てのエッジ画素について…

• エッジ画素を通る直線群は ab 空間で直線に

• ab 空間を小さなセルに分割し、その直線上 のセルの値を 1 プラスする(投票)

3. 閾値より大きな ab 空間のセルを検索 し,そのセルの現す直線を出力

• 直線は複数発見される

a b

ab

空間

実装時はセルの配列で 表現される

a b

閾値より多くの投票を 受けたセルを検索

36

(36)

• 先のアルゴリズムの問題点

傾き

a

と切片

b

のとりうる範囲は [-∞, ∞] である

任意の直線を検出するには,無限に広い ab 空間に投票する必要が…

• 解決法 : 直線を 『』と表す

は直線の傾きに対応,は原点から直線の符号付距離を表す

との値の範囲は, ( A は画像の対角線長)

•  

x y

ρ θ

 

 

直線

-

空間では点になる

 

(   0 , 0 )

(37)

捕捉 :  

• この直線は,点を通り,傾き の直線となる

• つまり,半径 ρ の円に接する直線となる

•  

θ ρ

x

y (   cos , sin )

θ ρ

x y

WxH の画像内に 入る範囲で

ρθ を動かす

(38)

直線を 『』と表すと…

•  

x y

点を通る直線群

 

(2,3) を通る直線群は

空間では  

という正弦波になる

 

xy 空間

( 2 3 )

 

    

 

 

 

(39)

Hough 変換

入力 : 画像

出力 : エッジを通る直線群 1. 画像をエッジ画像へ変換

2. 全てのエッジ画素について…

エッジ画素を通る直線群は ρθ 空間で正弦波 に

ρθ 空間を小さなセルに分割し、その正弦波 上のセルの値を 1 プラスする(投票)

3. 閾値より大きな ρθ- 空間のセルを 検索し,そのセルの現す直線を出 力

• 直線は複数発見される

 

 

 

 

(40)

Hough 変換で円を検出する

• 直線とほぼ同じ方法で検出可能

(41)

まとめ : Hough 変換

• 画像中の直線や円を検出する手法

0. 直線(または円)を数式で表現する 1. 入力画像からエッジ画像を計算

2. 全てのエッジ画素について…

パラメータ空間の対応セルの値をプラス 1 する

(直線検出なら

ρθ 空間の正弦波を考える)

3. パラメータ空間において値の大きなセルを検索   そのセルが対応する直線を出力

 

 

参照

関連したドキュメント

 撮影対象が幅約 0.4 ㎜[魚水 2018 ]と細い撚糸によ る文様であるため、拡大して撮影する必要がある。そ こで撮影にはマクロレンズ LAOWA

私たちの行動には 5W1H

、術後生命予後が良好であり(平均42.0±31.7ケ月),多

今回completionpneumonectomyを施行したが,再

大学は職能人の育成と知の創成を責務とし ている。即ち,教育と研究が大学の両輪であ

ベクトル計算と解析幾何 移動,移動の加法 移動と実数との乗法 ベクトル空間の概念 平面における基底と座標系

ポンプの回転方向が逆である 回転部分が片当たりしている 回転部分に異物がかみ込んでいる

自分は超能力を持っていて他人の行動を左右で きると信じている。そして、例えば、たまたま