テンプレートマッチング

– 画像から、「標識」など特定の物体を検出する際に、テンプレートマッチングと呼ばれる手法が良く使用される
– 予め指定パターンの画像を用意し、このパターンと画像部分を照らし合わせながら探索する
– 具体的には入力画像の一部分とテンプレート画像の類似度を求め、類似度が最も大きい場所を探索する
– 類似度の計算方法には「SSD」「SAD」「NCC」などがある

### SSD(Sum of Squared Difference)
画素値の差分の二乗和(二乗誤差)で類似度を評価する
この値が宰相になる場所が類似度が高いことになる
SSD(dx, dy) = (w-1)Σx=0 * (h-1)Σy=0(I(dx + x, dy + y)- T(x,y))^2

### SAD(Sum of Absolute Difference)
SADでは、画素値の差分の絶対値の和で類似度を評価する
この場合も、値が最小になる場所が類似度が高くなる
SSD(dx, dy) = (w-1)Σx=0 * (h-1)Σy=0|I(dx + x, dy + y)- T(x,y))|
※SSDに比べ、計算量が少なく、外れ値の影響を受けにくい。ただし、照明の影響を受けやすい

### NCC(Normalized Cross Correlation)
正規化相互相関で類似度を評価する
NCC(dx,dy) = ΣΣ[I(dx + x, dy +y)T(x,y)]/√ΣΣ[I(dx+x,dy+y)]^2√ΣΣ[T(x,y)]^2
最大値1.0に最も近くなった走査位置が類似する
※照明の影響を受けにくいが、計算量が多い
※画像をベクトルとみなして内積を計算する為、ベクトルのながさ(照明)に影響を受けない

SSD,SADは画像のテンプレート画像と入力画像のサイズの違いをどうやって評価しているかわからんな。
(w-1)Σx=0 * (h-1)Σy=0でシグマが二つ並んだ二重和だから、Σでx=0→横幅のmax(w-1)まで、かつ、y=0→縦幅のmax(h-1)まで計算してるって理解で合っている?
SADとSSDはわかるが、NCCの二乗をルートで割ったので割る値を求めているのか良くわからんな。NCCはベクトルだから向きが回転しててもOKってこと?