電気電子情報工学専攻 岩橋政宏
iwahashi@vos.nagaokaut.ac.jp

５．画像の特徴量

全体の概要

5.1 コーナー検出器（ヘシアン、ハリスなど）

5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

画像の局所的な特徴とは？
① 特徴的な点は何処？
・ブロブの中にある・エッジではない・コーナーである② 点の付近の特徴は？

ブロブ
・ネコの耳
・ネコの目
・ミカン

・

・

検出された
コーナーの位置
コーナー付近の線分の特徴

・線分の強さと方向・楕円の大きさと傾き・小さなベクトルで表す
0 30 60 90 ...

角度±°

0 30 60 90 ...

角度±°

特徴ベクトル( 線分の角度と強度の分布 )良い局所特徴とは？

目を同定する特徴ベクトル③ 特徴は区別できる

0 30 60 90 ...

区別できる・回転や拡大しても特徴は同じ
・他の特徴と区別できる

・特定の動物体を追跡する
・瞳や眉の動きで表情を分析
・複数画像からパノラマを生成
・VRやAR、レンダリング

どれもほぼ同じ④ 様々な応用！

耳を同定する特徴ベクトル

0 30 60 90 ...

0 30 60 90 ...

0 30 60 90 ...

① 特徴点はどこ？（まず、ブロブを検出）

輝度値＊・DoG との相関を表す
・白いほど相関が強い（似ている）
・耳や目の位置が検出された

DoG のﾌｨﾙﾀ係数と畳み込む

＝

耳は
この位置
目はこの位置

絶対値

DoG のフィルタ出力
Difference of Gaussian

検出されたブロブ

ブロブの大きさ（スケール）を判定する
DoGの →ﾌｨﾙﾀ係数
サイズ
σ=4目の大きさは
σ=４
耳の大きさはσ=８スケール

DoGの →ﾌｨﾙﾀ係数
サイズ
σ=8

DoGの →ﾌｨﾙﾀ係数
サイズ
σ = 16

ﾌｨﾙﾀ係数との相関の強さ

ブロブのスケール↓
相関の強さが最高となるときのﾌｨﾙﾀ係数のサイズ① 特徴点はどこ？（次に、コーナーを検出）コーナー (耳)DoG filter 出力

２階微分 (縦) Dyy

コーナー (目)ブロブの中に検出されたコーナー
２階微分 (横) Dxx

２階微分 (斜) Dxy

DoG filter の後に２階微分
1= −2 ,
11 0= 0 0−1 0−10
1= 1−2 1

ﾌｨﾙﾀ係数

Dxx

Dyy

Dxy

コーナー

中中

中

縦のエッジ

大00

横のエッジ

0

大0

平坦な部分

000

② 特徴点の近傍の特徴は？（SURF の具体例）

detectSURFFeatures(MATLAB)extractFeatures(MATLAB)

コーナーの例

特徴ベクトル・位置 (177 , 23)・大きさ 4.3
・角度 33.97°

・64次元
・SURF 特徴

・線分の強さと方向を表す
・コンパクトなベクトル検出されたコーナー（81個中の10個を表示）

Bay, H., A. Ess, T. Tuytelaars, and L. Van Gool. “SURF:Speeded Up Robust Features.” Computer
Vision and Image Understanding (CVIU).Vol. 110, No. 3, pp. 346–359, 2008.

勾配の強さ

特徴ベクトルは 勾配 の強さと方向を表す
強さで重みづけされた勾配のヒストグラム

支配的な方向orientation

特徴ベクトル
勾配の方向

輝度の勾配の強さと方向の分布を表すコンパク
トなベクトル

輝度の勾配（エッジと直交）SURFの特徴ベクトル（計算の指針）
局所領域

セルブロックσ＊
畳み込み

全セルのベクトルを結合してノルムを正規化

１つのセルを 5x5個のブロックに分割する

・・・・

64次元

特徴点からの距離に応じて重みづけする=∑=∑=∑
=∑

||

( )
( )

|
( )|＝

特徴ベクトルθだけ回転補正
して 4x4 個のセルに分割する＝支配的な方向orientation =θ
ブロブの大きさscale =σ2σ

横方向の勾配( )縦方向の勾配( )= 1,2, ⋯ , 25

ひとつのセルがもつ特徴ベクトル (4次元)③～④ 特徴を区別して追跡（SURF の応用例）③ 特徴点は区別できる
・鯉が転回しても、水面に浮上しても、特徴ベクトルは殆ど変わらない・他の鯉の特徴ベクトルとは異なる（鯉を区別できる）

frame 01

ブロブ上に検出されたコーナー
frame 01

④ 様々な応用が可能
・特定の鯉を追跡できる・鯉の生態を分析できる
frame 31（動画中で２秒後）同じ特徴ベクトルを対応させる

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

コーナーを検出したい

Laplacian of Gaussian① ２階微分を計算する※ DoG でもOK

LoG Filter のフィルタ係数

=∗=

∗

9 画素

それぞれを画像と畳み込み２階微分 を計算する=

170 画素∗コーナーを検出したい② ヘッセ行列を計算する
２階微分

ヘッセ行列

=
=

−

行列式（ヘシアン）を使いコーナーを検出する−コーナーを検出コーナーを検出したい③ コーナーを判別する

ヘッセ行列 Hコーナー
縦のエッジ
横のエッジ>

ならばコーナーと判定する（α の値は適宜調整）

更には...
・サブピクセル精度で位置推定・コントラストの高い点を選ぶ

Ixx

Iyy

Ixy

コーナー

中

中

中

縦のエッジ

大00

横のエッジ

0

大0

平坦な部分

000

・平坦部では２階微分は０・エッジではとは相加平均 ≫ 相乗平均

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）

補足

5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

LoG filter のフィルタ係数とは？
Laplacian of Gaussian

＝

＊

畳み込み

＝

＊
畳み込み２階微分

LoG
Laplacian of Gaussian=Laplacian

ガウシアン*GaussianLoG を Box Filter で近似して高速に計算

＝

＊

畳み込み

＝

＊
畳み込み

LoGの近似２階微分二値なので高速に計算できる

ガウシアンの近似二値なので高速に計算できる

２階微分（Box Filterによる）
Box Filter（３種類のフィルタ係数）

=

∗=

∗

9 画素

それぞれを画像と畳み込み２階微分 を計算する=

170 画素∗ヘッセ行列（Box Filterによる）
２階微分
ヘッセ行列

=
=

−

行列式（ヘシアン）を使いコーナーを検出する−コーナーを検出行列の要素の総和は０

１階微分
0 0 0
= 0 1 −10 0 00 0 0= −1 1 00 0 00 0 0= −1 0 10 0 0=,,,,,,

0 0 0= 0 1 00 −1 00 −1 0
= 0 1 00 0 00 −1 0
= 0 0 00 1 0,,,

行列の要素の総和は０２階微分、ラプラシアン
２階微分

0= 100 0−2 10 00 1 0= 0 −2 00 1 0
1 0 −1= 0 00−1 01

ラプラシアン∇ =+=+01= 1 −401
1
1
1 −811010111

ヘッセ行列
ヘッセ行列

ガウス曲率

=

ハリスのコーナー検出==, ∈,00

DoG 出力のヘッセ行列=

値が大きいとコーナー↓=

det( )
1+ +コーナネス (cornerness)

= det
− tr

k = 0.04～0.06

コーナネス (cornerness)=det( )tr( )

連続系での定義
１階微分（勾配ベクトル）

∇,

=

lim

=

２階微分

,,

→,,,,( , )

,,,

lim
→,,

ラプラシアン∇,=Δ,=( , )+( , )連続系での定義
ヘッセ行列

,

=ヘシアン

det

=,,,,−,,( , )DoG と LoG は 殆ど同じ
0.14

ガウシアン
Gaussian

0.04=3=40.12
0.1
0.08
0.06

0.02

0-0.01

-10

-50

51015

ラプラシアン
Laplacian

-0.02
-15

61

40.5

200-0.5-2-10-50

510-10-50510

15=

1−( − )
22DoG (Difference of Gaussian)

LoGのﾌｨﾙﾀ係数
Laplacianof Gaussian
10-38

1.5-1-15| ,0.01

0.022Gaussian

0.03

0.040-15

DoGのﾌｨﾙﾀ係数
Differenceof Gaussian (DoG)

15-4-15=−( ||,,)LoG (Laplacian of Gaussian)-10-5051015=∇|,・LoG ≒ DoG・LogもDoGも ﾌｨﾙﾀ係数の平均値は０・LogもDoGも フィルタのDC利得は０（＝平坦部の出力が０）・ﾌｨﾙﾀの出力は、ﾌｨﾙﾀ係数とオブジェクトやブロブとの相関を表す

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

detect Harris Features （ハリスのコーナー検出）・コーナーの位置（＋印）と特徴の強度を検出
・ブロブのスケールは１種類（あらかじめ指定）

スケール =3 の例

・スケールが変わらないブロブに適用
量子化
特徴の強度が上位30個（全325個）縮小

暈しHarris, C., and M. Stephens, "A Combined Corner and Edge Detector," Proceedings of the 4thAlvey Vision Conference, August 1988, pp. 147-151.

detect BRISK Features

Binary Robust Invariant Scalable Keypoints
・コーナーの位置（＋印）と特徴の強度を検出
・ブロブのスケール（円の半径）を検出
・様々なスケールのブロブに対応できる
量子化

特徴の強度が上位30個（全305個）縮小暈しLeutenegger, S., M. Chli and R. Siegwart. “BRISK: Binary Robust Invariant Scalable Keypoints”,
Proceedings of the IEEE International Conference, ICCV, 2011.

detect ORB Features

Oriented FAST and Rotated BRIEF(Alternative to SIFT or SURF )・コーナーの位置（＋印）と特徴の強度を検出
・ブロブのスケール（円の半径）を検出
・特徴点の支配的な方向を検出
・様々なスケールと回転に対応できる

量子化
特徴の強度が上位30個（全1668個）

縮小

暈し

Rublee, E., V. Rabaud, K. Konolige, and G. Bradski. "ORB: An Efficient Alternative to SIFT orSURF." In Proceedings of the 2011 International Conference on Computer Vision, 2564–2571.
Barcelona, Spain: IEEE, 2011.

detect MSER Features

Maximally Stable Extremal Regions

・アフィン変換にロバストなブロブ領域を検出・アフィン変換、スケール変化、回転に対応可能
・領域を楕円（位置、短軸、長軸、傾き）で表せる全302個#1～40#41～80輝度画像を様々な閾値で二値化。画素同士が連結している領域（セグメント）を抽出。閾値を変えても領域の面積が変化しにくい領域を出力する。

#1～80#1～461#1～345

Nister, D., and H. Stewenius, "Linear Time Maximally Stable Extremal Regions", Lecture Notes
in Computer Science. 10th European Conference on Computer Vision, Marseille, France: 2008,
no. 5303, pp. 183–196.

出典 : MATLAB ヘルプ

出典 : MATLAB ヘルプ

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

勾配方向ヒストグラム (HOG) 特徴の抽出例
Histograms of Oriented Gradients

Cell =128x128 pxl
Block= 2x 2 cellCell =64x64 pxl
Block= 4x 4 cell

Cell =32x32 pxl
Block= 8x 8 cell

[Hog, Vis] = extractHOGFeatures(x,'CellSize',[Cs Cs],'BlockSize',[Bs,Bs],'NumBins',9);N. Dalal and B. Triggs, "Histograms of Oriented Gradients for Human Detection", Proc. IEEE
Conf. Computer Vision and Pattern Recognition, vol. 1, pp. 886-893, 2005.

勾配方向ヒストグラム (HOG) 特徴の抽出例
Histograms of Oriented Gradients

Cell =128x128 pxl
Block= 2x 2 cell

Cell =64x64 pxl
Block= 4x 4 cell

Cell =32x32 pxl
Block= 8x 8 cell

[Hog, Vis] = extractHOGFeatures(x,'CellSize',[Cs Cs],'BlockSize',[Bs,Bs],'NumBins',9);N. Dalal and B. Triggs, "Histograms of Oriented Gradients for Human Detection", Proc. IEEE
Conf. Computer Vision and Pattern Recognition, vol. 1, pp. 886-893, 2005.

HOG 特徴（様々な画像の例）

コーナー検出と併用した方が良さそう

局所的な特徴を捉えている

block( 8x 8 cell )cell (32x32 pixel)

あまり効果がなさそうコーナーの近傍における HOG 特徴の例

MATLAB 関数
corners= detectFASTFeatures(x);strong = selectStrongest(corners,1);

block(4x4 cell)

cell(32x32 pixel)

block(2x2 cell)

HOG は そのままでは 回転に弱い

回転すると...

特徴ベクトルが変わる

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

SURF は回転に強い

Orientation= 164 deg.
回転しても...
Orientation= 200 deg.

特徴ベクトルが変わらない明度不足に強い

ノイズに強い鏡映変換に弱い

回転に強い

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成

frame 01

frame 31特定の鯉を追尾したい・個体を識別して・位置を同定する
・位置の変化で行動を分析

frame 61

frame 91

テンプレート（追跡したい個体の一部）

位置をずらしながらテンプレートとの相関を出力

frame 01
相関が大きい位置 →frame 31→

frame 61→→→？

追尾で迷う!?
？

SURF特徴を使った鯉の追跡

SURF 特徴点のマッチング結果

frame 01

detect SURF Features
frame 01
frame 01

拡大？

frame 31match Features

frame 31SURF 特徴点のマッチング結果

frame 01

frame 31SURF 特徴点のマッチング結果

frame 01

前提条件
・ブロブはDoGで検出できる・特徴点はブロブの中のコーナーである・特徴点は輝度の勾配が強いところ
・勾配の方向の分布を特徴としている

frame 61

SURF 特徴点のマッチング結果

frame 31

frame 61

特徴に基づくパノラマ イメージの繋ぎ合わせ（MATLABの例）

合成されたパノラマ画像

SURF特徴量を検出して対応点を検出する

points1=selectStrongest(detectSURFFeatures(I1),50);[features1, points1] = extractFeatures(G1, points1);indexPairs = matchFeatures(features1, features2, 'Unique', true);対応点が重なるように アフィン変換を算出する

アフィン変換tforms =1.42-0.09-363.29

0.25
1.36-103.75

001

平行移動と台形補正= imwarp(I,tforms)

合成されたパノラマ画像

MATLAB ー Computer Vision Toolbox
https://jp.mathworks.com/help/vision/referencelist.html?type=function&s_tid=CRUX_topnav

５．画像の特徴量

5.1 コーナー検出器（ヘシアン、ハリスなど）
5.2 局所特徴の記述子（Harris、MSER、SURF、HOG ）5.3 鯉の追跡、パノラマ画像の生成
5.4 画像間のマッチング（ノルム、相関、ロバスト性）

テンプレート・マッチング（２乗誤差による）
入力画像

完全に一致した位置↓

マッチングの結果 A
テンプレート Aマッチングの結果 B
テンプレート B（180°回転）← 結果 A

ﾃﾝﾌﾟﾚｰﾄ・ﾏｯﾁﾝｸﾞ（L2ノルム と L1ノルム の比較）
誤差の２乗和によるマッチング（L2ノルム）誤差 ei,j が最小となる位置 (i, j) を検出する,※ 図では縦軸が１のとき誤差が最小=,ℎ , −,差の絶対値和によるマッチング（L1ノルム）,=,ℎ , −,↑MPEG の動き補償
Motion Compensation

相関を畳み込みで計算する

このパターンがどの位置にあるか？

左右を反転させて，平均値を引いてからフィルタ処理する

x0=[ 1h0 = [ 32112333 ]1]

y0=conv(x0,h0)=[ 356914171893]

h1 = [ 10 -1]= h0 -mean(h0)y1=conv(x0,h1)=[ 1101210-3-3]

この位置にあるx0 と h1 の相関が最大

フィルタ係数と信号の相関,=ℎ , −,フィルタ係数と信号の畳み込み,=,

入力信号： ,ﾌｨﾙﾀ係数：ℎ ,−,,=ℎならば,=,,−相関を畳み込みで計算する
フィルタ係数と信号の相関
,

=

=

=
==

ℎ ,

ℎ , −,ℎ ,,,−,−←,,−ℎ , +=,＝反転して平均値分離したフィルタ係数と信号の畳み込み

1ℎ , =0相関を調べる（フィルタ係数との畳み込みによる）
入力画像

完全に一致した位置↓

マッチングの結果 A
テンプレート A

完全に一致した位置↓

フィルタ処理（畳み込み）の結果 C
フィルタ係数（180°回転、平均は０）ー 結果 Aー 結果 C

相関はﾃﾝﾌﾟﾚｰﾄ･ﾏｯﾁﾝｸﾞよりもロバスト（明るさに対して）
明るさ 100%

70%

40%

10%

入力画像

完全に一致した位置↓マッチングの結果 A
テンプレート A

完全に一致した位置↓↑検出は可能

フィルタ処理（畳み込み）の結果 C
フィルタ係数（180°回転、平均は０）

結果 C →← 結果 A

相関はﾃﾝﾌﾟﾚｰﾄ･ﾏｯﾁﾝｸﾞよりもロバスト（大きさに対して）
大きさ 100%

95%

90%

85%

入力画像

マッチングの結果 A
テンプレート A
フィルタ処理（畳み込み）の結果 C
フィルタ係数（180°回転、平均は０）

結果 C →← 結果 A

相関はﾃﾝﾌﾟﾚｰﾄ･ﾏｯﾁﾝｸﾞよりもロバスト（ボケに対して）ボケの度合いが大きい

→

入力画像

マッチングの結果 A
テンプレート A
フィルタ処理（畳み込み）の結果 C
フィルタ係数（180°回転、平均は０）
画像を暈す（ガウスフィルタをかける）と位置ズレに対して寛容になる相関はﾃﾝﾌﾟﾚｰﾄ･ﾏｯﾁﾝｸﾞよりもロバスト（鮮鋭化に対して）鮮鋭化の度合いが大きい

→

入力画像

マッチングの結果 A
テンプレート A
フィルタ処理（畳み込み）の結果 C
フィルタ係数

結果 C →（180°回転、平均は０）← 結果 A

画像を鮮鋭化する（ハイパスフィルタをかける）と位置ズレに対して敏感になる（参考）特徴ベクトル間のマッチングを調べる尺度

ﾋｽﾄｸﾞﾗﾑ・ｲﾝﾀｰｾｸｼｮﾝ・カーネル∈min( ,)

カイ2乗カーネル∈

2+その他、ハミング距離、
L2ノルム、L1ノルム など

へリンジャー・カーネル∈

カルバック・ライブラー情報量∈log

・ と は正定値（ヒストグラム特徴など）
・ と は確率分布