ガボールフィルタ

提供: testwiki
ナビゲーションに移動 検索に移動
2次元ガボールフィルタを漢字に作用させた例。左上から時計回りに原画像、搬送波の方向を45°づつ順に変えた4つのフィルタの作用結果、及びそれら4つのフィルタ結果を重ね合わせた図を表す。

ガボールフィルタテンプレート:Lang-en-short)は、画像処理のテクスチャー解析等に用いられる線型フィルタの一種。(2次元のガボールフィルタでは)画像の各点周りの局所領域において、方向毎に特定の周波数成分を抽出することができる。 虹彩認識指紋認証にも応用されている他、哺乳類の脳の一次視覚野にある単純型細胞の活動をモデル化できることが示されている。名称はガーボル・デーネシュに因む[1]


定義

2次元ガボールフィルタのインパルス応答の例

細部が異なる種々の定義があるが、基本的にはガウス関数(ガウシアンエンベロープとも呼ばれる)と三角関数搬送波とも呼ばれる)の積として定義される[2][3][4]𝒙n(n=1,2)の函数であるガボールフィルタgは、wガウス関数s三角関数として

テンプレート:Indent

と定義される。 ここでK はガウシアンエンベロープの強度のスケール、A はガウシアンエンベロープのスケールや方向を指定する線形変換、𝒖は搬送波の(空間)周波数と方向を表す波数ベクトル、P は位相オフセットを表す。 wsの具体的な形は、1次元の場合、通常スケールパラメータσにより

テンプレート:Indent テンプレート:Indent

2次元の場合は、ガウシアンエンベロープの方向θと軸毎のスケールパラメータσx,σyにより

テンプレート:Indent テンプレート:Indent

と表す。ここで(x,y)=(x,y)A(θ,σx,σy)で、

テンプレート:Indent

である。実部と虚部に分けた形[4]や、更にガウシアンエンベロープの方向と波数ベクトルの方向とを一致させた形(𝒖=(f/σx)(cosθ,sinθ))も用いられる:

テンプレート:Indent テンプレート:Indent


応用

画像処理では通常、異なる周波数、検出方向のガボールフィルタで構成されるフィルタバンクの形でよく利用される(これを画像に畳み込んで得られる出力をガボール空間という)。具体的事例は以下:

  • 髪型のモデリング[6]
  • 脊椎の骨梁(trabecular bone)における方向性の分布の分析[7]
  • スキャンした文書の中のテキスト部分の抽出(一般にテキスト部分が、画像部分に比べ相対的に高周波数成分が多いことを利用している)[11][12][13][14]
  • シーンを記述する低次元の大域特徴[2][15]

ガボールフィルタはガボールウェーブレットと直接関係しており、ガボールフィルタに回転や膨張を加えることで設計されるが、拡大は非常に時間がかかるため、ガボールウェーブレットでは適用されないテンプレート:要出典

実装例

function gb=gabor_fn(sigma_x,sigma_y,theta,lambda,psi,gamma)

sz_x=fix(6*sigma_x);
if mod(sz_x,2)==0, sz_x=sz_x+1;end
	

sz_y=fix(6*sigma_y);
if mod(sz_y,2)==0, sz_y=sz_y+1;end

[x y]=meshgrid(-fix(sz_x/2):fix(sz_x/2),fix(-sz_y/2):fix(sz_y/2));

% Rotation 
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb=exp(-.5*(x_theta.^2/sigma_x^2+gamma^2*y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

脚注

テンプレート:Reflist


関連項目

外部リンク


テンプレート:Math-stub