7. Harrisのコーナー検出
• Harris行列を用いたコーナー検出
H = g( )
2
Ix (x)
Ix Iy (x)
2
Ix Iy (x) Iy (x)
Ix (·):x軸方向の1次微分
⇥
Iy (·):y軸方向の1次微分
第一固有値 : α
第二固有値 : β
g(·):ガウス関数
(1次微分の値をガウス関数で平滑化することにより2次微分の計算の代用となる)
判別式
β
R = det(H)
ktr(H)2
(k = 0.04 ∼ 0.06)
Edge
R
Corner
0 (α, βともに小さい) :フラット
R << 0 (α>>β または β>>α) :エッジ
R >> 0 (α, βともに大きい) :コーナー
Flat
Edge
α
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
!7
8. FAST:
Features from Accelerated Segment Test [Rosten2010]
• 注目画素 p の周辺の円周上の16画素を観測し決定木に
よりコーナーを判定
注目画素 p の輝度値
円周上の輝度値
しきい値
円周上の輝度値が連続してn 個以上が明るい,もしくは暗い点→コーナーと判定
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
37. 非対称な特徴表現とスケール係数の効果の検証
1
SIFT
Matching rate
0.9
Binary vs. Binary (32 bits)
Binary vs. Binary (64 bits)
0.8
Binary vs. Binary (128 bits)
0.7
Binary vs. Real (32 bits)
0.6
Binary vs. Real (64 bits)
0.5
Binary vs. Real (128 bits)
0.4
Binary vs. Real with opt.α(32 bits)
0
500
1000
1500
No. of matches
2000
2500
3000
(d) Iterative Quantization
Binary vs. Real with opt.α(64 bits)
Binary vs. Real with opt.α(128 bits)
性能比較(32bit):SIFT > Binary-Binary > Binary-Real
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
!37
38. 非対称な特徴表現とスケール係数の効果の検証
1
SIFT
Matching rate
0.9
Binary vs. Binary (32 bits)
Binary vs. Binary (64 bits)
0.8
Binary vs. Binary (128 bits)
0.7
Binary vs. Real (32 bits)
0.6
Binary vs. Real (64 bits)
0.5
Binary vs. Real (128 bits)
0.4
Binary vs. Real with opt.α(32 bits)
0
500
1000
1500
No. of matches
2000
(d) Iterative Quantization
2500
3000
Binary vs. Real with opt.α(64 bits)
Binary vs. Real with opt.α(128 bits)
性能比較(32bit):SIFT > Binary-Real+α > Binary-Binary > Binary-Real
スケール係数の最適化の効果あり
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
!38
39. 非対称な特徴表現とスケール係数の効果の検証
1
SIFT
Matching rate
0.9
Binary vs. Binary (32 bits)
Binary vs. Binary (64 bits)
0.8
Binary vs. Binary (128 bits)
0.7
Binary vs. Real (32 bits)
0.6
Binary vs. Real (64 bits)
0.5
Binary vs. Real (128 bits)
0.4
Binary vs. Real with opt.α(32 bits)
0
500
1000
1500
No. of matches
2000
(d) Iterative Quantization
2500
3000
Binary vs. Real with opt.α(64 bits)
Binary vs. Real with opt.α(128 bits)
性能比較:SIFT >> 128bit >> 64bit >> 32bit
ビット長を長くすると性能が向上, 128bitのとき伝送量は1/8に削減
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
!39
45. ド距離の計算
Algorithm 1 分解アルゴリズム
実数ベクトルの分解アルゴリズム [Hare2012] .
り特徴点の対応付け性能を向
.3 高速なユークリッド距離の計算
Require: Algorithm 1 分解アルゴリズム.
実数ベクトル y, 基底数 Nb
1. 初期化 : 実数ベクトル y を残差ベクトル r に代入.
スケールの最適化により特徴点の対応付け性能を向
Require: 実数ベクトル y, 基底数 Nb
しかし,実数ベクトルとバイ
残差ベクトル r
50
実数ベクトル
r = w1. 初期化 : 実数ベクトル y を残差ベクトル r に代入.
上させることができた.しかし,実数ベクトルとバイ
ッド距離を計算するため,ハ
r=w
25
2. w を重み係数 c とバイナリ基底ベクトル m に分解
ナリコード間のユークリッド距離を計算するため,ハ
初期化:
2. w を重み係数 c とバイナリ基底ベクトル m に分解
-10 30 -30 -40 20
for i = 1 to N= do Nb do 0
な計算コストを要する.そこ
for i b 1 to
ミング距離と比べて多大な計算コストを要する.そこ
-25
2.1 残差ベクトル r を {-1,1} に変換
2.1 残差ベクトル r を {-1,1} に変換
で,実数ベクトルを少数の重み係数と基底ベクトルに
の重み係数と基底ベクトルに
-50
mi = sign(r)
m
分解することで,実数ベクトルとバイナリコード間の i = sign(r)
クトルとバイナリコード間の
2.2 残差ベクトル r とバイナリ基底ベクトル mi から重
2.2 残差ベクトルを算出 50
r とバイナリ基底ベクトル mi から重
バイナリ基底ベクトル
ユークリッド距離を高速に求める.以下に分解法を用
み係数 c
に求める.以下に分解法を用
み係数 c を算出 <r,mi2> 25
ci = ||b ||
いたユークリッド距離の算出方法について述べる.
i
<r,mi >
i=1
0
-1 1 -1 -1 1
ci = ||b262
2.3 残差ベクトル r と近似値の差分を計算
算出方法について述べる.
i ||
-25
r←r
2.3 残差ベクトル− ciと近似値の差分を計算
r mi
end for
-50
.3.1 バイナリ-実数ベクトル間の高速なユークリッ ← r − ci mi
r
Nb
return {ci }i=1 , {mi }Nb
i=1
ド距離計算
end for
クトル間の高速なユークリッ
return
バイナリコード b と実数ベクトル yα のユークリッド
距離の 2 乗 d(yα , b) は式 (5) により計算できる.
数ベクトル yα= ||yα − b||2
d(yα , b) のユークリッド
2
{ci }Nb , {mi }Nb
i=1
i=1
ここで, c = (c1 , c2 , · · · , ck )T ∈ Rk は重み係数,M =
{m1 , m2 , · · · , mk } ∈ {−1, 1}L×k は基底ベクトル,k
は基底数を表す.次に,式 (5) の第二項に式 (6) を代入
ここで, c = (c1 , c2 , · · · , ck )T ∈ Rk は重み係数,M =
T
すると式 (7) が得られる.
式 (5) により計算できる. α b + bT b.
= yα yα − 2yT
(5)
{m1 , m2 , · · · , mk } ∈ {−1, 1}L×k は基底ベクトル,k
k
式 (5) の第 1 2
項はクライアント側のバイナリコードの内
yT b ≈ T Mb =
c m b.
(7)
は基底数を表す.次に,式c(5) の第二項に式 (6) を代入
yα − b||2
積であり,b ∈ {−1, 1} であるため,内積の結果は必ず
すると式 (7) が得られる.
(5)
ビット長の値となるため,事前に求められる.第 3 項は
α yα − 2yα b + b b.
T
T
T
サーバ側の実数ベクトルの内積であり,事前に計算し
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
i
α
i
i=1
図 10 に示すように,式 (7) は一見すると計算コストが大
k
きいように見受けられる.例えば,基底数 k = 3,ビッ
!45
46. ド距離の計算
Algorithm 1 分解アルゴリズム
実数ベクトルの分解アルゴリズム [Hare2012] .
り特徴点の対応付け性能を向
Require: 実数ベクトル y, 基底数 Nb
1. 初期化 : 実数ベクトル y を残差ベクトル r に代入.
しかし,実数ベクトルとバイ
残差ベクトル r
50
実数ベクトル
r=w
ッド距離を計算するため,ハ
25
2. w を重み係数 c とバイナリ基底ベクトル m に分解
初期化:
20
ド距離の計算 -10 30 -30 -40 Algorithm 1N do
0
for i = 1 to 分解アルゴリズム.
な計算コストを要する.そこ
b
-25
3 高速なユークリッド距離の計算
り特徴点の対応付け性能を向
Require: Algorithm 1r分解アルゴリズム.
実数ベクトル y, 基底数 Nb
2.1 残差ベクトル を {-1,1} に変換
の重み係数と基底ベクトルに
-50
スケールの最適化により特徴点の対応付け性能を向m Require: 実数ベクトル y, 基底数 Nb
1. 初期化 :sign(r)
実数ベクトル y を残差ベクトル r に代入.
i =
しかし,実数ベクトルとバイ
1. 初期化 :
.
クトルとバイナリコード間の
上させることができた.しかし,実数ベクトルとバイr 残差ベクトル 実数ベクトル y を残差ベクトル r に代入から重
2.2 = w r = w r とバイナリ基底ベクトル mi
50
ッド距離を計算するため,ハ
ナリコード間のユークリッド距離を計算するため,ハ を重み係数 c とバイナリ基底ベクトル m に分解
2. み係数 c2. w を重み係数 c とバイナリ基底ベクトル m に分解
w
に求める.以下に分解法を用
25
を算出
i=1
forNi >
i
-1 1 -1
ミング距離と比べて多大な計算コストを要する.そこc== <r,m= 1 to Nb do 0
for
な計算コストを要する.そこ -1 1 i i 1 to 26b2 do
||bi ||
算出方法について述べる.
-25
2.1 残差ベクトル r を {-1,1} に変換
で,実数ベクトルを少数の重み係数と基底ベクトルに 残差ベクトル r と近似値の差分を計算
2.1
を {-1,1} に変換
2.3
の重み係数と基底ベクトルに
mi = sign(r) -50
分解することで,実数ベクトルとバイナリコード間のmi = sign(r)i
r ← r − ci残差ベクトル r とバイナリ基底ベクトル mi から重
2.2 m
クトルとバイナリコード間の
ユークリッド距離を高速に求める.以下に分解法を用for
み係数 c を算出 50
2.2
バイナリ基底ベクトル end 残差ベクトル r とバイナリ基底ベクトル mi から重
クトル間の高速なユークリッ
c = <r,mi >
に求める.以下に分解法を用
いたユークリッド距離の算出方法について述べる.み係数 c を算出 ||bi ||2Nb 25
Nbi
return {ci }2.3 i残差ベクトル r と近似値の差分を計算
i=2
1
1 -1 -1 -1
i=1> {mi }i=1
8.8 ,
ci = <r,m 2 r − c m 0
||bi r ←
||
算出方法について述べる.
i
i
-25
end for
2.3 残差ベクトル r と近似値の差分を計算
-50
3.1 バイナリ-実数ベクトル間の高速なユークリッ
Nb
数ベクトル yα のユークリッド
b
r ← rreturn {ci }i=1 , {mi }NT
−c m
i=1
ド距離計算
ここで, c = (ci , ci2 , · · · , ck ) ∈ Rk は重み係数,M =
1
end for
式 (5) により計算できる.
クトル間の高速なユークリッ
{m1 , m
m
バイナリコード b と実数ベクトル yα のユークリッド 2 , · · · ,Nb k } ∈ {−1, 1} T は基底ベクトル,k
return {ci }i=1 ,c{mi },Nb , · · · , ck ) ∈ Rk は重み係数,M =
ここで, = (c1 i=1
c2
2
距離の 2 乗 d(yα , b) は式 (5) により計算できる.
は基底数を表す.次に,式 (5) の第二項に式 (6) を代入
yα − b||2
{m1 , m2 , · · · , mk } ∈ {−1, 1}L×k は基底ベクトル,k
L×k
2
T
すると式 (7) が得られる.
は基底数を表す.次に,式 (5) の第二項に式 (6) を代入
d(yα , T
b) のユークリッド
数ベクトル yα+ b||yb. b||2 (5)
yα − 2yα b = T α −
α
ここで, c = (c1 ,(7) , · · · , ck )T ∈ Rk は重み係数,M =
T
T
すると式 c2 が得られる.
= yα yα − 2yα b + bT b.
(5)
式 (5) により計算できる.
!46
k
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
47. ド距離の計算
Algorithm 1 分解アルゴリズム
実数ベクトルの分解アルゴリズム [Hare2012] .
り特徴点の対応付け性能を向
Require: 実数ベクトル y, 基底数 Nb
1. 初期化 : 実数ベクトル y を残差ベクトル r に代入.
しかし,実数ベクトルとバイ
残差ベクトル r
50
実数ベクトル
r=w
ッド距離を計算するため,ハ
25
2. w を重み係数 c とバイナリ基底ベクトル m に分解
初期化:
20
ド距離の計算 -10 30 -30 -40 Algorithm 1N do
0
for i = 1 to 分解アルゴリズム.
な計算コストを要する.そこ
b
-25
り特徴点の対応付け性能を向
Require: 実数ベクトルを {-1,1} に変換
2.1 残差ベクトル r y, 基底数 Nb
の重み係数と基底ベクトルに
-50
1. 初期化 :sign(r)
実数ベクトル y を残差ベクトル r に代入.
mi =
しかし,実数ベクトルとバイ
クトルとバイナリコード間の
r=w
2.2 残差ベクトル r とバイナリ基底ベクトル mi から重
50
ッド距離を計算するため,ハ
2. み係数 c
w を重み係数 c とバイナリ基底ベクトル m に分解
に求める.以下に分解法を用
25
ド距離の計算
Algorithm を算出
126 >do
分解アルゴリズム.
i=1
0
-1 1 -1
for i 1 to Nb
な計算コストを要する.そこ -1 1 ic== <r,mi2
||bi ||
算出方法について述べる.
3 高速なユークリッド距離の計算
Algorithm 1 分解アルゴリズム.
り特徴点の対応付け性能を向
Require: 実数ベクトル y, 基底数 Nb
-25
2.1
を {-1,1} に変換
2.3 残差ベクトル r と近似値の差分を計算
の重み係数と基底ベクトルに
スケールの最適化により特徴点の対応付け性能を向
Require: 実数ベクトル を残差ベクトル r に代入.
-50
1. 初期化 : 実数ベクトル y y, 基底数 Nb
しかし,実数ベクトルとバイ
mi =1. 初期化i: 実数ベクトル y を残差ベクトル r に代入.
r ← r sign(r)
− ci m
上させることができた.しかし,実数ベクトルとバイr = w
クトルとバイナリコード間の
50
r=w
2.2 残差ベクトル r とバイナリ基底ベクトル mi から重
end for
ッド距離を計算するため,ハ
ナリコード間のユークリッド距離を計算するため,ハ を重み係数 c とバイナリ基底ベクトル m に分解
クトル間の高速なユークリッ
2. w
に分解
w
25
に求める.以下に分解法を用
み係数 c2. Nbを重み係数 cbとバイナリ基底ベクトル m
を算出
N
return {cfor8.8 to
ib
i } Ni
ミング距離と比べて多大な計算コストを要する.そこ = 1 <r,m=, 1{mN}i=1 0
for
i=2
な計算コストを要する.そこ -1 -1 ic = to i=1>do i b do
1
1 -1
i
||bi ||残差ベクトル r を {-1,1} に変換
算出方法について述べる.
2.1 2
-25
で,実数ベクトルを少数の重み係数と基底ベクトルに 残差ベクトル r を {-1,1} に変換
2.1 残差ベクトル r と近似値の差分を計算
の重み係数と基底ベクトルに
2.3
mi = sign(r) -50
分解することで,実数ベクトルとバイナリコード間のmi = sign(r)
数ベクトル yα のユークリッド
2.2 m
r ← r − ci残差ベクトル r とバイナリ基底ベクトル mi から重
クトルとバイナリコード間の
ここで, c = み係数ci2を算出 , ck )T ∈ Rk は重み係数,M =
(c1 , c · とバイナリ基底ベクトル mi から重
ユークリッド距離を高速に求める.以下に分解法を用 残差ベクトル, r · ·
50
2.2
バイナリ基底ベクトル
end for
<r,mi >
式に求める.以下に分解法を用
(5) により計算できる.
c =
クトル間の高速なユークリッ
いたユークリッド距離の算出方法について述べる., m , · · · を算出 ||bi ||2
{m1 み係数 c ,Nbi残差ベクトル r251}L×k は基底ベクトル,k
m>} ∈ {−1,と近似値の差分を計算
2
i=3
1 -1 1 -1 1
return= <r,mi2k {mi }Nb 0
}2.3 ,
4.9
i=1
i=1
ci {ci||b r ← r − c m
2
算出方法について述べる.
i ||
i
i
は基底数を表す.次に,式-25 の第二項に式 (6) を代入
(5)
yα − b||2
end for
2.3 残差ベクトル r と近似値の差分を計算
-50
3.1 バイナリ-実数ベクトル間の高速なユークリッ
T
Ty のユークリッド
T
すると式 (7)− ci mi i }Nb , {mi }Nb
が得られる. i=1
r ← rreturn {c i=1
数ベクトル bα+ b b.
− 2yα
(5)
α yα ド距離計算
基底数を増やすと残差が減少
ここで, c = (c1 , c2 , · · · , ck )T ∈ Rk は重み係数,M =
end for
式クトル間の高速なユークリッ
(5) により計算できる.
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
k
!47
61. 人検出の問題では,膨大な数の検出ウィンドウを処理
識別器 特徴量 b と統計的学習手法である
得られた することになるため,多大な計算量を要する.そこで,
B-HOG F (b) は,SVM の重みベクトル w を分解し
B-HOGを用いた線形SVMの近似計算
得られる重み係数 c により線形識別器 F [13]
Hare Machine(SVM)とバイナリ基底ベクトル
Support Vector らによって提案された実数ベクトルの分解法(·)m を用
Nb
を利用してバイナリ型特徴量 b と重み w (9) iのよう
ることで,F (b) ≈ f (b) = i=1 ci m b と近似でき
を学習する.線形 SVM による識別関数は式 の内積計算を
• 重みベクトルwを分解して近似
近似する.
ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D
に表わされる.
‒ wを基底係数cとバイナリ基底ベクトルmに分解
まず,SVM の重みベクトル w を重み c とバイナリ
D
¯
¯
m+ ∈ {0, 1}4.2.1 分解法を用いた線形識別器の近似計算
に分解 (m = m+ − m+ ) することで,
D
基底ベクトル m ∈ {−1, 1} に分解する.線形 SVM F (b) は,
式 (9) の線形 SVM により学習した識別器 の
線形SVM : に示すように線形
(10) F (b) = wT b
(9)
4.2.1 分解法を用いた線形識別器の近似計算 SVM の内積の近似値を計算
識別器 F (b) は,SVM の重みベクトル の内積計算で成り立つ.
バイナリ型特徴量 b と重み w w を分解して
B-HOG
きる. 重みベクトル とバイナリ基底ベクトル m を用い
人検出の問題では,膨大な数の検出ウィンドウを処理
式 (9) の線形 SVM により学習した識別器 F (b) は,
得られる重み係数 c
することになるため,多大な計算量を要する.そこで,
バイナリ型特徴量 b と重み w の内積計算で成り立つ.
Nb
ここで, は特徴量に対する重みを表す.画像中から
w ることで,F (b) ≈ f (b) =
Nb
i=1 ci mi b と近似できる.
Hare らによって提案された実数ベクトルの分解法 [13]
人検出の問題では,膨大な数の検出ウィンドウを処理
物体を検出する際には,検出ウィンドウをラスタスキャ
近似計算 :
f (b) =
ci mi b
ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と
を利用してバイナリ型特徴量 b と重み w の内積計算を
することになるため,多大な計算量を要する.そこで,
i=1
近似する.
¯
m+ ∈ {0, 1}D に分解 (m = m+ − ¯ +
Hare らによって提案された実数ベクトルの分解法 B-HOG 特徴量に
ンし,検出ウィンドウから抽出した [13] m ) することで,式 数
まず, の内積計算を
す
を利用してバイナリ型特徴量 b と重み NbSVM の内積の近似値を計算で
w
(10) に示すように線形SVM の重みベクトル w を重み c とバイナリ
+ D
対する識別器のスコア = を計算し,この値を閾値処 >) サ
基底ベクトル (< {−1, , b > − < m+ , SVM の
近似する.
バイナリ基底ベクトル: im ∈ m 1} に分解する.線形 b
¯
c
F (b)
i
i
きる.
識別器 F
まず,SVM の重みベクトル w を重み (b) は,SVM の重みベクトル w を分解して
基底係数ベクトル: c とバイナリ
i=1
理することで人もしくは背景に判定する.
の
D
得られる重み係数 c の
基底ベクトル m ∈ {−1,基底数 :Nb N
1} に分解する.線形 SVMとバイナリ基底ベクトル m を用い
b
線
このような識別器による人検出では VGA サイズの
f (b) = ることで,を分解して = N
ci w b
識別器 F (b) は,SVM の重みベクトルmiF (b) ≈ f (b) + i=1 ci mi b と近似できる.
b
=
ci (2 < mi , b > −|b|)
ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と
i=1
得られる重み係数 c とバイナリ基底ベクトル m を用い
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
!61
と
62. することになるため,多大な計算量を要する.そこで,
クセル,ブロックの大きさを b と統計的学習手法である
得られた B-HOG 特徴量 2 セルとした場合,1 つ ここで,バイナリ基底ベクトル m を m+ ∈ {0,
ペックの組み込み系ハードウェアで動作らによって提案された実数ベクトルの分解法 [13]
Hare
検出ウィンドウから 3, 360 ビットのバイナリコード m+ ∈ {0, 1}D に分解 (m = m+ − m+ ) すること
¯
¯
4.2.1 分解法を用いた線形識別器の近似計算
port Vector Machine(SVM) により線形識別器 F (·)
分解法を用いた線形SVMの近似計算
ある.そのため,低計算量かつ低メモリ使
を利用してバイナリ型特徴量 b と重み
得られる.符号なし 8 ビット整数型でバイナリコー (10) に示すように線形 SVM w の内積計算を
の内積の近似値を
学習する.線形 SVM による識別関数は式 (9) のよう
式 (9) の線形 SVM により学習した識別器 F (b) は,
ルゴリズムが望まれており,我々は 近似する.
HOG
図 11: B-HOG 特徴量の計算.
を表現した場合,HOG 特徴量と比較してメモリ使用
きる.
バイナリ型特徴量 b
表わされる.
化することで計算コストとメモリ使用量 SVM と重み w の内積計算で成り立つ.
まず, 近似計算 :
の重みベクトル w を重み c とバイナリ
を 1/8 に削減できる.
線形SVM B-HOG 特徴量の計算.
:
人検出の問題では,膨大な数の検出ウィンドウを処理
図 11:
Nb
得られた B-HOG 特徴量 b と統計的学習手
法 [15] を提案した.しかしながら,識別
基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の
f (b) =
ci mi b
F (b) = wT b することになるため,多大な計算量を要する.そこで,
(9) Vector Machine(SVM)
SupportSVM の重みベクトル w により線形識別
ついては未だに解決されていない.そこ F (b) は,
識別器
Hare らによって提案された実数ベクトルの分解法 [13] を分解して
i=1
得られた B-HOG 特徴量 b と統計的学習手法である
を学習する.線形 bSVM による識別関数は式 (9
4.2.1 分解法を用いた線形識別器の近似計算b
N
識別器の計算量を削減するために,識別
得られる重み係数
を利用してバイナリ型特徴量
こで,w は特徴量に対する重みを表す.画像中から F (·) と重み w の内積計算を m を用い
Support Vector Machine(SVM) により線形識別器 c とバイナリ基底ベクトル
¯i
= = Nib(< m+ , b > − < m+ , b >
c
に表わされる.
近似する.
,さらに早期に識別を判定するアルゴリ
ることで,F (b) ≈ f F (b) は, ci mi b と近似できる.
(b)
図 11: B-HOG 特徴量の計算.
i
i=1
式 (9) SVM による識別関数は式 (9) のよう
を学習する.線形 の線形 SVM により学習した識別器
体を検出する際には,検出ウィンドウをラスタスキャ
:実数
i=1
まず,SVM の重みベクトル w を重み c とバイナリ
た人検出法 [16] について述べる. ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と
:バイナリ{1,-1}
Nb
バイナリ型特徴量 b と重み w の内積計算で成り立つ.
に表わされる.
し,検出ウィンドウから抽出した B-HOG 特徴量に B-HOG特徴量の次元数SVM b
F+ = wT
(b)
基底ベクトル m ∈ D
{−1, 1}D に分解する.線形 + + の
+
られた B-HOG 特徴量 b と統計的学習手法である に分解 (m = mc (2 m m することで,式
¯
¯
m
=
G 特徴量と SVM による人検出 識別器 F∈ {0, 1}SVM の重みベクトル w− < ) i , b > −|b|)
人検出の問題では,膨大な数の検出ウィンドウを処理 i を分解して
(b) は,
する識別器のスコア F (b) を計算し,この値を閾値処
i=1
rt Vector Machine(SVM) により線形識別器 F (·)
B-HOG特徴量の次元数 wT b (10) に示すように線形 SVM の内積の近似値を計算で
F (b) =
(9)
ここで,w は特徴量に対する重みを表す.画
of Orientedすることになるため,多大な計算量を要する.そこで,
Gradients(HOG) 特徴量 [14]
得られる重み係数 c とバイナリ基底ベクトル m を用い
することで人もしくは背景に判定する. のよう
Nb
習する.線形 SVM による識別関数は式 (9)F (b) ≈ (10) に含まれるバイナリコードの内積 < 図
図 11: B-HOG 特徴量の計算. きる.
ることで,
式 f (b) = i=1 c mi b
m
物体を検出する際には,検出ウィンドウをラス
ンドウからセルと呼ばれる局所領域毎に
Hare らによって提案された実数ベクトルの分解法 i[13] と近似できる.
このような識別器による人検出では VGA サイズの
ここで,
ここで,バイナリ基底ベクトル
わされる. w は特徴量に対する重みを表す.画像中から m を m+ ∈ {0, 1}D と
は論理積とビットカウントで計算できる.3 章
を利用してバイナリ型特徴量 b D ンし,検出ウィンドウから抽出した B-HOG
方向ヒストグラムを特徴量とする.HOG と重み w の内積計算を
得られた B-HOG 特徴量 b と統計的学習手法である 基底数 Nb
+
像に対して検出ウィンドウを網羅的にラスタスキャ = m+ − m+ ) することで,式 数マージン内
¯
m ∈ {0, 1} に分解 (m c m ¯
物体を検出する際には,検出ウィンドウをラスタスキャ i b
=
i
近似する.T により線形識別器f (b)対する識別器のスコア F (b) を計算し,この値
数のセルで構成されるブロック領域で正F (·) たように論理演算やビットカウントは実数ベク
pport Vector Machine(SVM)
する.関数マ
(10) に示すように線形 i=1 の内積の近似値を計算で
F (b) = w b
(9) SVM
する場合,数万個の検出ウィンドウを処理すること
ンし,検出ウィンドウから抽出した B-HOG 特徴量に
積算より遥かに高速に計算できる.また,SSE4
まず,SVM の重みベクトル
学習する.線形 SVM による識別関数は式 (9) のようを重み c とバイナリ
サンプルは,
め,局所的な照明変化の影響を受けにく w 理することで人もしくは背景に判定する.
きる.
Nb
なる.これら全てのウィンドウから特徴量を抽出し,
対する識別器のスコア F (b) を計算し,この値を閾値処
CPU
表わされる. 特徴量 [15] は,図{−1, 1}D に分解する.線形 SVM の
このような識別器による人検出では VGA サ
で,w は特徴量に対する重みを表す.画像中から に実装されている POPCNT,関数を利用す
.B-HOG 基底ベクトル m ∈ 3000)の
11 に示す
¯i
N=
ci (< m+ , b > − < m+ bの誤差の少な
>)
b
i
特徴量bが高次元数(D=
別器理することで人もしくは背景に判定する.内積 は,きわめて高速に算出可能 線形 SVM の
F (b) のスコアを求める必要があるため,高速な を分解して
f (b) = で非常に高速に処理できる.
識別器 F (b) は,SVM の重みベクトル w
i=1
を検出する際には,検出ウィンドウをラスタスキャci mi b
特徴量を 2 値化したバイナリコードで表 (9) 画像に対して検出ウィンドウを網羅的にラス
とき、内積 b に時間を要する
F (b) = wT
i=1
とで高速な識
このような識別器による人検出では VGA線形 Nb m を用い
サイズの
体検出実現するためには識別処理を高速化する必要SVM の近似計算結果の過程を図 12 に示
得られる重み係数 c B-HOG 特徴量に
とバイナリ基底ベクトル
Nb
ンする場合,数万個の検出ウィンドウを処理す
,検出ウィンドウから抽出した
である.セルと呼ばれる局所領域毎に作
図 13 に提案
=c (< m+i (2> −m+¯ b, > >)
c,
,
(10)
Nb
画像に対して検出ウィンドウを網羅的にラスタスキャb < <i m+ b −|b|) 図 12: 線形 S
ある.w は特徴量に対する重みを表す.画像中から i底数が少ない段階では,おおまかな識別器のス
こで,
ることで,を計算し,この値を閾値処bi と近似できる. i
FHOG 特徴量を 2 = c になる.これら全てのウィンドウから特徴量を
(b) ≈ f (b) = i=1 mi
i
る識別器のスコア F (b)
!62
向ヒストグラムである
ンプルの割合
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
i=1
64. +
+ D に分解する.線形
数
基底ベクトル m ∈ {−1, 1}することで,式 SVM
¯
に分解 (m = m − m )
¯
m ∈ {0, 1}
線形SVMの近似計算法 F (b) は,SVM の重みベクトル w を分解し
識別器
す
(10) に示すように線形 SVM の内積の近似値を計算で
得られる重み係数 c とバイナリ基底ベクトル m を用
サ
きる.
Nb
• 線形SVMの内積を近似計算 (b) ≈ f (b) = i=1 ci mi b と近似でき
ることで,F
の
+
D
+
D
f (b)
=
=
Nb
ここで,バイナリ基底ベクトル m を m
基底バイナリコードの分解
∈ {0, 1}
線
¯ i {0, 1}
¯
m+c∈mi b D に分解 (m = m+ − m+ ) することで,
i=1 に示すように線形 SVM の内積の近似値を計算
と
(10)
Nb
きる.
{ -1 , c (< m+ , b }> − <
1}
{0,1
i
i
Nb
i=1
ビット演算による内積計算ができない
Nb
=
i=1
f (b)
=
¯i
m+ , b >)
ン
ci mi b
す
i=1
ci (2 < m+ ,Nb > −|b|)
i b
=
i=1
(10)
¯i
ci (< m+ , b > − < m+ , b >)
i
し
Nb
式 (10) に含まれるバイナリコードの内積 < m+ , b >
i
=
ci (2 <
m+ , b
i
> −|b|)
は論理積とビットカウントで計算できる.3 章で述べ
i=1
たように論理演算やビットカウントは実数ベクトルの
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
の
期
(
で
+
!64
65. ¯+
m+ ∈
¯
D
数
基底ベクトル m ∈ {−1, 1}D に分解する.線形 数
D に分解 (m = m+ − m+ ) することで,式 SVM
+
¯+
{0, 1}
¯
m ∈ {0, 1} に分解 (m =
) することで,式
線形SVMの近似計算法 F (b) m − m の重みベクトル w を分解し
識別器
は,SVM
す
す
(10) に示すように線形 SVM の内積の近似値を計算で
(10) に示すように線形 SVM の内積の近似値を計算で
得られる重み係数 c とバイナリ基底ベクトル m を用
サ
サ
きる.
Nb
• きる.
線形SVMの内積を近似計算 (b) ≈ f (b) = i=1 ci mi b と近似でき
ることで,F
の
の
+
Nb
ここで,バイナリ基底ベクトル m を m ∈ {0, 1}D
Nb
基底バイナリコードの分解
線
線
f (b) = m+c∈mi b D に分解 (m = m+ − m+ ) することで,
¯
{0, 1}
f (b) = ¯ ci mi b
i
i=1 に示すように線形 SVM の内積の近似値を計算
と
(10)
i=1
と
=
=
Nb
Nb
きる.
i=1
i=1
Nb
Nb
i=1
i=1
+
+
¯i
ci (< m+ , b > − < m+ , b >)
i
i
i
i
Nb
f (b)
=
ci mi b
i=1
の
¯i
=内積 ci (<ノルムb > − < m+ , b >)
m+ ,
i
し
i=1
+
ci (2 < m+ ,Nb > −|b|)
i b
i
i
(10)
+
内積 → 論理積 + ビットカウント
Nb
式 (10) に含まれるバイナリコードの内積 < mi , b >
式 (10) に含まれるバイナリコードの内積+
ノルム → ビットカウント (2 < m , b > −|b|)
=
ci
i
は論理積とビットカウントで計算できる.3 章で述べ
は論理積とビットカウントで計算できる.
i=1
→POPCNT関数を利用して非常に高速な演算が可能
たように論理演算やビットカウントは実数ベクトルの
たように論理演算やビットカウントは実数ベクトルの
画像認識への期待と可能性 / 中部大学工学部情報工学科 藤吉弘亘
ン
す
期
(
で
+
!65