(57)【特許請求の範囲】
【請求項１】
２次元デジタルデータに対して、
Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター手段と、前記第１の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター手段と、を有する第１の演算手段と、
Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター手段と、前記第３の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター手段と、を有する第２の演算手段と、
前記第１の演算手段の演算結果と前記第２の演算手段の演算結果との和又は差を求める加減算手段と、
を有することを特徴とする、２次元デジタルフィルターシステム。
【請求項２】
前記第１の１次元フィルター手段が演算時に用いる第１のフィルター係数と、前記第３の１次元フィルター手段が演算時に用いる第３のフィルター係数と、が異なり、
前記第２の１次元フィルター手段が演算時に用いる第２のフィルター係数と、前記第４の１次元フィルター手段が演算時に用いる第４のフィルター係数と、が異なることを特徴とする、請求項１記載の２次元デジタルフィルターシステム。
【請求項３】
前記第１のフィルター係数h11、前記第２のフィルター係数h21、前記第３のフィルター係数h12、前記第４のフィルター係数h22が、h11(x)*h21(y) - h12 (x)*h22(y)もしくはh11(x)*h21(y) + h12(x)*h22(y)がx-y平面上で傾いた方向性を有するパターンであるように設定されていることを特徴とする、請求項１又は２記載の２次元デジタルフィルターシステム。
【請求項４】
前記第１のフィルター係数h11、前記第２のフィルター係数h21、前記第３のフィルター係数h12、前記第４のフィルター係数h22が、下記式によって求められることを特徴とする、請求項１ないし３のいずれか１項に記載の２次元デジタルフィルターシステム。
【数１】
0005120079.tif 000011
［ただし、Reは実部を、Imは虚部を表す。］
【請求項５】
前記式において、
曲線  g1 (x)+g2 (y)=一定、が領域  １≦x≦m, 1≦y≦m  (mはフィルターのサイズ)においてほぼ一定の傾きを有することを特徴とする、請求項４記載の２次元デジタルフィルターシステム。
【請求項６】
２次元デジタルデータに対して、
Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター工程と、前記第１の１次元フィルター工程の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター工程と、を含む第１の演算工程と、
Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター工程と、前記第３の１次元フィルター工程の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター工程と、を含む第２の演算工程と、
前記第１の演算工程の演算結果と前記第２の演算工程の演算結果との和又は差を求める加減算工程と、
を含むことを特徴とする、２次元デジタルフィルタリング方法。
【請求項７】
デジタル信号処理装置を、
２次元デジタルデータに対して、
Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター手段と、前記第１の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター手段と、を有する第１の演算手段と、
Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター手段と、前記第３の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター手段と、を有する第２の演算手段と、
前記第１の演算手段の演算結果と前記第２の演算手段の演算結果との和又は差を求める加減算手段と、
を有する２次元デジタルフィルターシステムとして機能させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元デジタルフィルターシステム、２次元デジタルフィルタリング方法及びプログラムに関し、より詳細には方向性特徴を検出する２次元デジタルフィルターないしデジタル信号処理装置に関する。
【背景技術】
【０００２】
一般に信号処理装置ではさまざまな処理を行う際に高速処理が可能なフィルターを必要とする。信号がデジタル化されている場合、これはデジタルフィルターによって実現されている。１次元畳み込み演算処理を行うデジタルフィルター（FIRデジタルフィルター）は図４に示すような構成により実現されている。
【０００３】
図４のフィルターでは入力端子と出力端子との間に複数の遅延素子(11-a〜1m-a)が直列に接続されており、各接続点に設けられたタップから、それぞれ所定のフィルター係数を乗算する乗算器(11-b〜1m-b)が接続されている。そして、各乗算器の出力が加算器（11-c、12-c、・・・）によって加算されて出力端子へと出力される構成を取っている。入力端子から１次元の入力信号を順次入力すると、遅延素子の数で決まる一定の遅延サイクルの後、出力端子からフィルター出力が順次出力される。このフィルターでは次式のような畳み込み演算が実行されることになる。
【０００４】
【数１】
0005120079.tif 000002
【０００５】
ここでI1は入力信号、h1はフィルター係数、O1は出力信号を表している。特許文献１にはこのような１次元デジタルフィルターの計算ステップ量を削減できる方式が記載されている。
【０００６】
他方、信号が画像等の２次元デジタル信号である場合にはそのフィルタリング処理のためには２次元のデジタルフィルターが必要とされるが、一般に２次元のデジタルフィルターは１次元の場合と比較すると構成が格段に複雑になる。そこで、フィルター係数が「セパラブル」な場合には１次元フィルター処理を２回行うことによってこれを実現する方法が広く採用されている。２次元デジタルフィルターのフィルター係数h(x,y)がh(x,y) = h1(x)*h2(y)と積で表されるとき「セパラブル」（separable、分離可能型）であるという。このとき２次元畳み込み演算は次式に示すように２回（X方向、Y方向それぞれ１回）の１次元畳み込み演算によって効率的に計算することができる。
【０００７】
【数２】
0005120079.tif 000003
【０００８】
ここでIは入力信号、hはフィルター係数、Oは出力信号を表している。ここで入力信号Iが画像であり、２次元のフィルター係数h(x,y)のサイズがｍｘｍだとすると、これを用いた２次元の畳み込み演算処理を行うためには画像の各画素ごとにｍｘｍ回の乗算が必要になる。他方、これが２回の１次元畳み込み演算でできれば必要な乗算は各画素ごとに２ｘｍ回ですみ（ｍが大きい場合には）非常に効率的になる。またこのようなフィルターは簡単な構成によって実装ができる。例えば特許文献２には図５に示したような、１次元フィルター処理を２回行う構成によるセパラブルな２次元デジタルフィルターが説明されている。
【０００９】
図５のフィルターではまずフィルターX（2-1）がフィルター係数h1を用いてX方向の１次元畳み込み演算を行い、その結果をバッファー(2-2)に格納する。次にフィルターY（2-3）がバッファーに格納されたフィルターXの出力結果に対してフィルター係数h2を用いてY方向の１次元畳み込み演算を行う。このようしてh(x,y) = h1(x)*h2(y)をフィルター係数とする２次元畳み込み演算が１次元フィルターの組み合わせによって実現されている。特許文献２には複数のセパラブルな２次元デジタルフィルターを効率的に構成する方法が記載されている。
【００１０】
他方、方向性を持つフィルター係数を用いた２次元の畳み込み演算処理によって画像中から方向特徴を抽出できることも良く知られているが、一般に傾いた方向性を持つフィルター係数はセパラブルではないので、より複雑な構成の２次元デジタルフィルターで実装したり、あるいは並列型の画像処理プロセッサーを用いてこれを高速に計算することが行われている。例えば、非特許文献１にはSIMD（Single Instruction Multiple Data）型の画像処理プロセッサーが記載されている。
【００１１】
【特許文献１】特開平０６−０１３８４５号公報
【特許文献２】特開平０５−２５８０５４号公報
【非特許文献１】S. Kyo, T. Koga, K. Sakurai, and S. Okazaki, A Robust Vehicle Detecting and Tracking System for Wet Weather Conditions using the IMAP-VISION Image Processing Board, IEEE/IEEJ/JSAI International Conference on Intelligent Transportation Systems (ITSC'99), pp.423--428, Oct., 1999, Tokyo, Japan.
【発明の開示】
【発明が解決しようとする課題】
【００１２】
２次元デジタルフィルターにおける従来技術の問題点は、傾いた方向特徴を抽出できるフィルターが、効率的・簡単な構成を持つ１次元フィルターの組み合わせで実現できないことである。その理由は、傾いた方向性を持つ２次元フィルター係数はセパラブルとはならないため、セパラブルフィルター実装の通常の方法が適用できないためである。
【００１３】
そこで本発明は、上記実情に鑑み、１次元デジタルフィルターの組み合わせによる効率的・簡単な構成によって方向性特徴を抽出できる２次元デジタルフィルターを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために本発明は、以下の特徴を有することとする。
【００１５】
本発明に係る２次元デジタルフィルターシステムは、２次元デジタルデータに対して、Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター手段と、前記第１の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター手段と、を有する第１の演算手段と、Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター手段と、前記第３の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター手段と、を有する第２の演算手段と、前記第１の演算手段の演算結果と前記第２の演算手段の演算結果との和又は差を求める加減算手段と、を有することを特徴とする。
【００１６】
本発明に係る２次元デジタルフィルタリング方法は、２次元デジタルデータに対して、Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター工程と、前記第１の１次元フィルター工程の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター工程と、を含む第１の演算工程と、Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター工程と、前記第３の１次元フィルター工程の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター工程と、を含む第２の演算工程と、前記第１の演算工程の演算結果と前記第２の演算工程の演算結果との和又は差を求める加減算工程と、を含むことを特徴とする。
【００１７】
本発明に係るプログラムは、デジタル信号処理装置を、２次元デジタルデータに対して、Ｘ方向の１次元畳み込み演算を行う第１の１次元フィルター手段と、前記第１の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第２の１次元フィルター手段と、を有する第１の演算手段と、Ｘ方向の１次元畳み込み演算を行う第３の１次元フィルター手段と、前記第３の１次元フィルター手段の演算結果に対してＹ方向の１次元畳み込み演算を行う第４の１次元フィルター手段と、を有する第２の演算手段と、前記第１の演算手段の演算結果と前記第２の演算手段の演算結果との和又は差を求める加減算手段と、を有する２次元デジタルフィルターシステムとして機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、１次元デジタルフィルターの組み合わせによる効率的・簡単な構成によって方向性特徴を抽出できる２次元デジタルフィルターを提供することが可能となる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明を実施形態により詳細に説明する。
【００２０】
以下に示す本実施形態の構成の目的は、１次元デジタルフィルターの組み合わせによる効率的・簡単な構成によって方向性特徴を抽出できる２次元デジタルフィルターを提供することにある。当該目的を達成するため、本実施形態に係る２次元デジタルフィルターは、フィルター係数h(x,y)を複素数の範囲にまで拡張すると傾いた方向性を持ち、かつセパラブルなフィルター係数が構成できることに着目し、これを利用して１次元フィルターの組み合わせによって方向性特徴が抽出できる畳み込み演算を行う。このため本実施形態は、X方向、Y方向の２つの１次元デジタルフィルターからなる第１の２次元畳み込み演算実行手段と、やはりX方向、Y方向の２つの１次元デジタルフィルターからなる第２の２次元畳み込み演算実行手段と、これらによって得られた２次元畳み込み演算結果を加算、あるいは減算して出力を算出する加算器あるいは減算器とを含んで構成される。
【００２１】
上記構成を特徴とするため、本実施形態は、１次元フィルター処理を４回行うだけの簡単な構成によって方向性特徴の抽出が可能になる。その理由は、方向性特徴を抽出するフィルター係数を実部（もしくは虚部）に持つ複素数のフィルター係数を構成し、第１および第２の２次元畳み込み演算実行手段が、この複素数のフィルター係数による畳み込み演算の実部、虚部の演算を分担して行うことによって、傾いた方向性を有しかつセパラブルな複素数フィルター係数による畳み込み演算を実行するからである。以下、本実施形態の構成と動作について図面を参照しながら説明する。
【００２２】
図１を参照すると、本実施形態は２次元デジタル信号の入力を受けてこれに対して畳み込み演算を行う第１の２次元畳み込み演算実行手段(3-a)と、同じ入力に対して別のフィルター係数を用いて畳み込み演算を行う第２の２次元畳み込み演算実行手段(3-b)と、これらによって得られた演算結果を加算、あるいは減算して出力を算出する加算器／減算器(3-c)とを含んで構成される。また、第１および第２の２次元畳み込み演算実行手段は、それぞれX方向の１次元畳み込み演算を行う１次元デジタルフィルター(3-a-1, 3-b-1)と、その出力を保存するバッファー(3-a-2, 3-b-2)と、Y方向の１次元畳み込み演算を行う１次元デジタルフィルター(3-a-3, 3-b-3)とを含んで構成される。
【００２３】
次に、図１を参照して本実施形態の動作について詳細に説明する。
【００２４】
まず、第１の２次元畳み込み演算実行手段(3-a)を構成するフィルターX1(3-a-1)は入力される２次元デジタル信号に対してフィルター係数h11(3-a-4)を用いてX方向の１次元畳み込み演算を行い、その出力をバッファー１(3-a-2)に格納する。次にフィルターY1(3-a-3)はバッファー１に格納されたフィルターX1の出力データに対してフィルター係数h21(3-a-5)を用いてY方向の１次元畳み込み演算を行う。以上の動作と同時に第２の２次元畳み込み演算実行手段(3-b)もそれを構成するフィルターX2(3-b-1)、バッファー２(3-b-2)およびフィルターY2(3-b-3)によって同様の処理を実行する。ただしこれは3-aとは異なるフィルター係数h12,h22(3-b-4,3-b-5)を用いて畳み込み演算処理を行う。ここで各フィルター係数h11，h21, h12, h22は以下に述べる方法によって決定されているが、これらはプログラム可能であり処理の内容に応じて置き換えられるようになっている。
【００２５】
次に加算／減算器(3-c)は第１の２次元畳み込み演算実行手段(3-a)の出力から第２の２次元畳み込み演算実行手段(3-b)の出力を引き、その結果を出力する。この加算／減算器の動作は外部からの信号によって加算器にも切り替えられるようになっており処理の内容に応じて加算器、減算器いずれかに切り替えて処理を行う。
【００２６】
次に各フィルター(3-a-1,3-a-3,3-b-1,3-b-3)のフィルター係数について説明する。２次元のフィルター係数h(x,y)が、例えば図２に示したように、傾いた方向性を持つパターンである場合これはセパラブルではない。すなわちh(x,y)=h1(x)*h2(y)のように積に分解することはできない。
【００２７】
ここで「傾いた方向性を持つパターン」について補足説明を行う。まず、特定の方向に沿って見ると変化はなだらかであるがそれと直交する方向に沿っては激しい変化があるようなパターンを以下では「方向性を持つパターン」と呼ぶことにする（図２参照。図２で、白いバーの方向に沿っては値は一定であるが、これに直交する方向に沿っては（白いバーの境界において）激しい変化がある）。このような方向性を持つパターンh(x,y)が傾いている場合（すなわちパターンの方向がｘ軸方向ともｙ軸方向とも一致しない場合）これをh(x,y)=h1(x)*h2(y)のように積に分解することはできない。
【００２８】
しかし、h(x,y)が複素数であることを許すとh(x,y)= h1(x)*h2(y)のように積に分解でき、かつh(x,y)の実部（もしくは虚部）が傾いた方向性を持つパターンになるようにh(x,y)を設定することができる。具体的には
【００２９】
【数３】
0005120079.tif 000004
【００３０】
と表される場合（iは虚数単位を表す）、f1,f2,g1,g2がどのような関数であってもこれはセパラブルになる。すなわち
【００３１】
【数４】
0005120079.tif 000005
【００３２】
が成り立つ。また、このときh(x,y)の実部は
【００３３】
【数５】
0005120079.tif 000006
【００３４】
であるから（Reは実部を表す）、関数g1 (x)およびg2 (y)を適切に選ぶことによってこれを傾いた方向性を持つパターンにすることができる。例えばk1,k2を定数としてg1 (x)=k1*x，g2 (y)=k2*yのように設定するとh(x,y)の実部はベクトル(k1,k2)に直交する方向性を有するパターンになる。さらに例えばf1 (x)=−(x-m/2)2/(2σ2), f2 (y)=−(y-m/2)2/(2σ2)のように設定するとh(x,y)はGabor関数として知られている関数になり、その実部は図３に示したような方向性を有するパターンになる（mはフィルターのサイズ、σはあらかじめ定めるパラメータ）。他方（5）式はh1(x)*h2(y)の実部でもあるから
【００３５】
【数６】
0005120079.tif 000007
【００３６】
と計算され（Reは実部を、Imは虚部を表す）、２つのセパラブルなフィルター係数の差で表される。従ってh(x,y)の実部をフィルター係数とする２次元デジタルフィルターは、２つのセパラブルフィルターから構成できることになる。具体的には図１において各１次元フィルターのフィルター係数を
【００３７】
【数７】
0005120079.tif 000008
【００３８】
のごとく設定し、第１の２次元畳み込み演算実行手段(3-a)の出力から第２の２次元畳み込み演算実行手段(3-b)の出力を引くことによってh(x,y)の実部をフィルター係数とする２次元デジタルフィルターによる畳み込み演算と等価な演算処理が実現できることになる。すなわち方向性特徴を抽出できる２次元デジタルフィルターが４コの１次元デジタルフィルターの組み合わせによって構成できることになる。繰り返すと、h11(x)、h21(y)、h12(x)、h22(y)をそれぞれ（７）式のように設定し、（７）式のg1(x)およびg2(y)を適切に選べば、例えばg1(x)=k1*x，g2(y)=k2*yのように設定すれば、h11(x)*h21(y) - h12(x)*h22(y)を傾いた方向性を持つパターンにすることができるが、これをフィルター係数として持つ２次元デジタルフィルターは２つのセパラブルな２次元デジタルフィルター（それぞれh11(x)*h21(y)、および h12(x)*h22(y)をフィルター係数とする２次元デジタルフィルター）の組み合わせによって構成できることになる。
【００３９】
h11(x)*h21(y) - h12(x)*h22(y)を傾いた方向性を持つパターンにする方法は上記だけには限らない。より一般的には、曲線、g1(x)+g2 (y)=一定、が領域、１≦x≦m, 1≦y≦m 、(mはフィルターのサイズ)においてほぼ一定の傾きを有するように（７）式のg1(x)およびg2(y)を設定してやればよい。例えばg1(x)=k1*(x-m/2)3，g2(y)=k2*(y-m/2)3のごとく定めてもよい。
【００４０】
これらのフィルターのフィルター係数を具体的に決める関数f1,f2,g1,g2は応用の用途に応じて変更が可能である。
【００４１】
また、やはり応用の用途に応じてh(x,y)の虚部（これも方向性を持つパターンにできることに注意）をフィルター係数とする２次元フィルターの出力も同時に求めたい場合には
【００４２】
【数８】
0005120079.tif 000009
【００４３】
であるから、上述の演算処理（h(x,y)の実部をフィルター係数とする２次元畳み込み演算処理）が終わった後に、フィルター係数のうちh21,h22を
【００４４】
【数９】
0005120079.tif 000010
【００４５】
に置き換えてこれに対応する１次元フィルターの演算処理を１次元フィルター(3-a-3、3-b-3)で行い、加算／減算器(3-c)を加算器に切り替え、これらの出力を加算すれば計算ができる。
【００４６】
以上、本発明の好適な実施の形態について説明したが、本発明はこれに限定されるものではなく、要旨を逸脱しない範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明による実施形態の２次元デジタルフィルターを示す図である。
【図２】本発明による実施形態における、傾いた方位を持つフィルター係数の例を示す図である（白が１、黒が０を表す）。
【図３】本発明による実施形態における、Gabor関数の実部で表されるフィルター係数の例を示す図である（フィルター係数の値を明度で示してある）。
【図４】従来技術の１次元の畳み込み演算を行うデジタルフィルターを示す図である。
【図５】従来技術のセパラブルな２次元の畳み込み演算を行うデジタルフィルターを示す図である。
【符号の説明】
【００４８】
11-a〜1m-a    遅延素子
11-b〜1m-b    乗算器
11-c, 12-c,...    加算器
2-1    １次元フィルター
2-2    バッファー
2-3    １次元フィルター
2-4〜2-5    フィルター係数
3-a/3-b    ２次元畳み込み演算実行手段
3-a-1/3-a-3/3-b-1/3-b-3    １次元フィルター
3-a-2/3-b-2    バッファー
3-a-4/3-a-5/3-b-4/3-b-5    フィルター係数
3-c    加算/減算器
【図１】
0005120079.tif 000012
【図２】
0005120079.tif 000013
【図３】
0005120079.tif 000014
【図４】
0005120079.tif 000015
【図５】
0005120079.tif 000016