顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラム
【課題】ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なう。
【解決手段】入力した顔画像内のフィルタの適用場所に応じてフィルタの種類や数を任意に設定して、さまざまな認識の認識率を向上する。また、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用してROMデータを削減し、ハードウェア規模の縮小を図る。
【解決手段】入力した顔画像内のフィルタの適用場所に応じてフィルタの種類や数を任意に設定して、さまざまな認識の認識率を向上する。また、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用してROMデータを削減し、ハードウェア規模の縮小を図る。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影画像などに含まれる顔画像を認識する顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに係り、特に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を抽出する顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なう顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに係り、特に、ハードウェア規模や演算負荷の増加を招来することなく十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なう顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに関する。
【背景技術】
【0003】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【0004】
顔認識システムは、CCDカメラなどによる撮像画像から顔パターンを抽出する顔抽出処理と、抽出された顔パターンを基に顔を認識する顔認識で構成される。顔パターンを抽出する(顔画像の特徴量を抽出する)顔抽出処理若しくは顔認識処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、顔画像の特徴量を抽出する「ガボア・フィルタリング(Gabor Filtering)」を適用することができる(例えば、特許文献1を参照のこと)。
【0005】
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判明されている。これは、垂直の線に対して発火する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタは、これと同様に、方向選択性を持つ複数のフィルタで構成される空間フィルタである。
【0006】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。フィルタ窓の大きさは例えば24×24固定とする。また、周波数fを5種類、角度θを8方向とすると、40種類のガボア・フィルタが構成される。
【0007】
ガボア・フィルタの演算は、ガボア・フィルタを適用する画素とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部と周波数応答がサイン関数からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して1個のスカラ値からなるガボア・フィルタ結果を求めることができる。このような演算を、周波数fと角度θを切り替えながら最大40種類のガボア・フィルタを適用し、得られた最大40個のスカラ値の組を「ガボア・ジェット」と呼ぶ。顔画像データ上で水平方向及び垂直方向に一定間隔で検出される特徴量抽出位置毎に、局所特徴量としてガボア・ジェットが求められる。ガボア・ジェットは、特徴量抽出位置のある程度の位置のずれや変形に対して、不変であるという特徴を有している。
【0008】
登録顔画像に関しては、あらかじめ特徴量抽出位置毎のガボア・ジェットが算出されている。そして、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルが求められる。続いて、サポート・ベクタ・マシーン(SVM)によるクラス判定を行なって、入力顔画像と登録顔画像の認識を行なう。サポート・ベクタ・マシーンは、類似度ベクトルの境界面の値を、例えば、+1又は−1と判定する境界面(値が0である位置の面)からの距離を算出し、intra−personal class又はextra−personal classのいずれに属するかを判断する。intra−personal classに属すると判断される類似度ベクトルが存在しない場合には、未登録の人物の顔が入力されたと判断される(例えば、非特許文献1を参照のこと)。また、1つのサポート・ベクタ・マシーンが多くの顔画像を学習(すなわち登録)することで、新たに入力された顔画像が登録されている(学習済みの)顔画像と一致するのか(intra−personal classに属するのか)、又は、一致しないのか(extra−personal classに属するのか)を判定することができる(例えば、特許文献2、特許文献3を参照のこと)。サポート・ベクタ・マシーンは、パターン認識の分野で最も学習汎化能力が高いと当業界では評価されている。
【0009】
上述したように、ガボア・フィルタリングでは、周波数応答に用いるガボア関数の周波数fと角度θを切り替えながら最大40種類のガボア・フィルタを適用して演算を行なう。このように多数のフィルタ係数をガボア・フィルタ演算の度に逐次用意することは計算機にとって演算負荷が高く、処理時間が長くなってしまう。ここで、フィルタ係数の種類や数を固定(制限)することで、演算負荷は軽減されるが、この場合は十分な認識性能が得られなくなってしまう。
【0010】
また、ガボア・フィルタのすべてのフィルタ係数を単純にROM(Read Only Memory)データとして格納すると、ハードウェア規模が増大してしまう。例えば、医用画像の処理にガボア・フィルタを用いる場合など(例えば、特許文献4を参照のこと)、比較的高価な装置を用いることが許容されている場合においては、ハードウェア規模や演算負荷の問題は無視し得るであろう。他方、小型・携行型のデジタルカメラにおいても、顔認識技術を搭載することにより、人物撮影における合焦時間の短縮を図る、主要被写体が最適露出となるようにダイナミックレンジ圧縮処理を行なう、といったさまざまなアプリケーションが可能となるが、ガボア・フィルタリングを実施する際のハードウェア規模や演算負荷の問題が重大なネックとなる。
【0011】
【特許文献1】特開2006−4041号公報
【特許文献2】特再WO03/019475号公報
【特許文献3】特開2006−4003号公報
【特許文献4】特開2005−21334号公報
【非特許文献1】B.sholkopf外著“Advance in Kernel Support Vector Learning”(The MIT Press、1999.)
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を好適に抽出することができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【0013】
本発明のさらなる目的は、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【0014】
本発明のさらなる目的は、ハードウェア規模や演算負荷の増加を招来することなく十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0015】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、入力顔画像と登録顔画像の認識を行なう顔認識装置であって、
認識処理の対象となる顔画像を入力する顔画像入力手段と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手段と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手段と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段を備え、該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識装置である。
【0016】
顔抽出処理若しくは顔認識処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタで顔画像の特徴量を抽出するガボア・フィルタリングを適用することができる。ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを抽出することができる。
【0017】
入力顔画像のある特徴量抽出位置において、応答関数の周波数と角度を切り替えながらガボア・フィルタの演算を行なうことで、フィルタの種類に応じた個数のスカラ値からなるガボア・フィルタ結果すなわちガボア・ジェットが得られる。そして、特徴量抽出位置毎に入力顔画像と登録顔画像のガボア・ジェットの類似度を算出して、類似度の集合である類似度ベクトルが求められ、この類似度ベクトルを基に入力顔画像と登録顔画像の一致判定を行なうことができる。
【0018】
ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを好適に抽出することができるので、顔認識に限らず、パターン認識やその他のさまざまな画像処理に適用することができる。
【0019】
しかしながら、多数のガボア・フィルタ係数をガボア・フィルタ演算の度に逐次用意することは計算機にとって演算負荷が高く、処理時間が長くなってしまう。また、ガボア・フィルタのフィルタ係数を単純にROMデータとして格納すると、ハードウェア規模が増大してしまうという問題がある。
【0020】
そこで、本発明に係る顔認識装置では、ガボア・フィルタが窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とすることに着目して、ガボア・フィルタ係数を格納するROMデータの削減を図っている。前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを備えており、ガボア・フィルタ係数算出手段は、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するように構成されている。
【0021】
すなわち、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して扱うことによって、ガボア・フィルタのすべてのフィルタ係数を単純にROMデータとして格納する場合よりも、ハードウェア規模を削減することができる。また、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算することで、ガボア・フィルタ係数を容易に求めることができるので、演算負荷は高くない。
【0022】
さらに、本発明に係る顔認識装置では、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現している。
【0023】
前記ガボア・フィルタ適用手段は、8方向の角度からなるガボア・フィルタを適用するために、サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備える。
【0024】
また、0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角に関しては、サイン関数並びにコサイン関数の周期性がないため、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度63度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度63度117度153度コサインROMを備える。
【0025】
また、前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納するようにする。
【0026】
この場合、特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段を備え、前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求めることができる。
【0027】
したがって、本発明によれば、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現することができる。
【0028】
また、本発明に係る顔認識装置は、各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段をさらに備えていても良い。
【0029】
このような場合、入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。この結果、顔認識、笑顔認識、性別認識など、さまざまな認識の認識率を向上することができる。また、フィルタの種類や数を固定した場合(すべての特徴量抽出位置で全フィルタを適用する場合)よりも処理時間を短縮することができる。
【0030】
また、本発明の第2の側面は、入力顔画像と登録顔画像の認識を行なうための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
認識処理の対象となる顔画像を入力する顔画像入力手順と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手順と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手順と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手順を実行させ、
前記ガボア・フィルタ適用手順では、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手順を実行して、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とするコンピュータ・プログラムである。
【0031】
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータにインストールすることによって、コンピュータ上では協働的作用が発揮され、本発明の第1の側面に係る顔認識装置と同様の作用効果を得ることができる。
【発明の効果】
【0032】
本発明によれば、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を好適に抽出することができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0033】
また、本発明によれば、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0034】
また、本発明によれば、ハードウェア規模や演算負荷の増加を招来することなく、十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0035】
本発明に係る顔認識装置は、ガボア・フィルタが窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とすることに着目して、ガボア・フィルタ係数を格納するROMデータの削減を図っている。すなわち、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して、さらにガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現することができる。
【0036】
また、本発明に係る顔認識装置によれば、入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。この結果、顔認識、笑顔認識、性別認識など、さまざまな認識の認識率を向上することができる。また、フィルタの種類や数を固定した場合(すべての特徴量抽出位置で全フィルタを適用する場合)よりも処理時間を短縮することができる。
【0037】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【0038】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0039】
顔認識システムは、入力画像から顔画像を抽出する顔抽出処理と、抽出された顔画像を認識する顔認識で構成されることは既に述べた通りである。ここでは、まず顔検出と顔認識について改めて定義しておく。
【0040】
顔検出は、ある1枚の画像(1枚の写真や動画像の1ピクチャ(フィールド又はフレーム)に当たる)に対して、人物顔を検出しその位置と大きさを求める処理である。1枚の画において複数の顔が存在することがある。一方、顔認識とは検出されたある1個の顔が以前に登録された顔と同一人物かを識別することを言う。
【0041】
図1には、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示している。図示のシステム1は、画縮小器11と、顔検出器12と、両目位置検出器13と、顔認識器14と、複数枚の画像を蓄えるメモリ(SDRAM)15で構成される。また、顔検出器12と、両目位置検出器13と、顔認識器14内部にローカル・メモリ(SDRAM)を備えている。本システム1への入力は画像であり、本システム1からの出力(Yes/No)は同一人物か否かを示すフラグである。
【0042】
画縮小器11では、入力画像に対し水平及び垂直の各方向にそれぞれ1/2にした縮小画像を作成し、原入力画像とともにSDRAM(Synchronous DRAM)15に格納する。図1に示す例では、入力画像を画1、入力画像に対し水平及び垂直方向にそれぞれ1/2にした縮小画像を画1/2、入力画像に対し水平及び垂直方向にそれぞれ1/4にした縮小画像を画1/4として、これら3枚の画像を作成して、SDRAM15に格納する。
【0043】
縮小画像を作成する際、演算精度を考慮すると、入力画像から直接それぞれの縮小画像を作成する方法が望ましい。但し、ハードウェアの規模を考慮して、1/2縮小を順番に施す方法、つまり、始めに入力画像(画1)から画1/2を作成し、次に作成された画1/2から画1/4を作成する方法で実現するようにしてもよい。
【0044】
顔検出器12では、入力画像とSDRAM15に格納されているすべての縮小画像に対して顔を検出し、検出された顔の大きさと顔の位置を求める。顔の位置の検出に関しては、画像全体を検出することで処理速度を考慮しなければ容易に実現可能である。一方、いろいろな大きさの顔の検出に関しては、画像の解像度と検出顔の大きさの相対関係の問題で、画像の解像度を固定にする方法(すなわち、入力画像に対していろいろな大きさの顔検出器を用意する方法)と、検出顔の大きさを固定にする方法(検出できる顔の大きさが固定された1つの顔検出器を用い、入力画像をいろいろな解像度に縮小して検出する方法)が考えられるが、後者の方法が現実的である。したがって、図1に示すように、顔検出器12では、画縮小器11で作成された画1、画1/2、画1/4の各縮小画像に対して、24×24画素内に顔が存在するか否かを識別する。
【0045】
なお、縮小率の刻みが1/2、1/4では粗過ぎて精度が不十分である場合には、例えば画縮小器11で画7/8、画6/8、画5/8の縮小率の画像をさらに作成し、顔検出器12でそれぞれの縮小率の画像に対しても顔検出を行なうようにすれば良い。
【0046】
顔検出の特徴抽出として2点画素差分方式を適用することができる。これは、24×24画素内において顔の特徴を抽出し易い2点の画素の差分をさまざまな2点で行なう方式である。また、識別器演算としてadaboostアルゴリズムを用いることができる。
【0047】
両目位置検出器13では、両目位置検出は、顔画像を顔認識するための準備として、顔検出器12によって検出された顔に対して解像度を上げた画像の顔を正規化するために、左右の目の位置を特定する。すなわち、両目位置を検出して、顔検出によって得られた顔の大きさ、顔の位置から、その顔画像の解像度を上げた顔の大きさ、顔の位置、顔の角度を求める。
【0048】
顔検出器12では24×24画素の解像度で顔検出が行なわれ、顔認識器14では60×66画素の解像度で顔認識が行なわれる。言い換えると、顔認識器14に必要な解像度は、顔検出器12のそれより精度を要求される。そこで、顔検出器で検出された顔が画1/2とすると、それよりも解像度の高い画1の同等の顔が存在する場所で且つ目が存在する顔の上部で左右の目を検出する。
【0049】
両目位置検出の特徴抽出として2点画素差分方式を適用することができる。2点画素差分方式の適用範囲も24×24画素であり、顔検出器12と同じであるので、顔検出器12と同一のハードウェアで処理時間をシリアルにして実現することができる。
【0050】
顔認識器14では、両目位置検出器13によって左右の目位置が特定された顔画像から顔の大きさ、位置、角度を求め、それらに応じて顔を正規化して60×66画素の内部のSRAMに一旦蓄えて、登録画像と一致するか否かを調べる。
【0051】
本実施形態では、顔認識器14は、顔認識の特徴抽出としてガボア・フィルタリングを適用する。また、識別器演算としてgentleboostを用いる。正規化された顔画像にガボア・フィルタを適用して得られた結果と、以前に登録された画像にガボア・フィルタを適用して得られた結果との類似度を求める。そして、求められた類似度に対してgentleboostを施すことによって、登録画と一致したか否か識別する。
【0052】
図2には、顔認識器14の構成例を示している。図示の顔認識器14は、顔画像入力部141と、ガボア・フィルタ適用部142と、類似度算出部143と、一致判定部144を備えている。
【0053】
顔画像入力部141は、初めに、両目位置検出で検出された両目位置から顔認識に必要である解像度に相当する顔画像を、SDRAM15から、顔認識器14にローカルのSRAM1に転送する。次いで、両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、SRAM1にある顔画像を正規化して、顔認識に必要な顔画像を作成して、顔認識器14にローカルのSRAM2に格納する。つまり、顔画像入力部141では、両目位置情報からSRAM2の固定した座標に右目、左目の位置を合わせるように、SRAM1の顔画像を縮小、シフト、回転変換して顔認識に必要な顔画像をSRAM2に作成する(図3を参照のこと)。
【0054】
ガボア・フィルタ適用部142は、画像入力部141において正規化された顔画像に対してガボア・フィルタを適用する。
【0055】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。本実施形態では、フィルタ窓は、図4Aに示すように24×24画素固定とする。そして、図4Bに示すような特定の周波数成分のサイン関数又はコサイン関数からなる応答関数にフィルタ窓をかけると、図4Cに示すようなガボア・フィルタを作成することができる。また、例えば、0度、22.5度、45度、67.5度、90度、112.5度、135度、157.5度と22.5度ずつずらした8方向のサイン関数又はコサイン関数からなる応答関数に対してそれぞれフィルタ窓をかけると、図4Dに示すように8通りのガボア・フィルタを作成することができる。さらに、低周波域から高周波域に至る5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけることで、図4Eに示すように合計で40種類のガボア・フィルタが構成される。ガボア・フィルタ(ガボア・カーネルK(x,y))は、以下の演算式で表される。
【0056】
【数1】
【0057】
ガボア・フィルタの演算は、ガボア・フィルタGi(x,y)を適用する画素I(x,y)とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部Re(x,y)と周波数応答がサイン関数Im(x,y)からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して、1個のスカラ値からなるガボア・フィルタ結果Ji(x,y)を求めることができる。但し、(x,y)は特徴量抽出位置の画素位置を示し、iは上述した40通りのガボア・フィルタのうちi番目であることを示す。
【0058】
【数2】
【0059】
画像の特徴量抽出位置(x,y)において最大40種類のガボア・フィルタを適用して得られた最大40スカラ値の組{J1,J2,…,J40}をガボア・ジェットと呼ぶ。
【0060】
類似度算出部143は、入力画像について算出されたガボア・ジェットGSと登録画像のガボア・ジェットGRに正規化相関演算を行ない、特徴量抽出位置毎の類似度dを求める。
【0061】
【数3】
【0062】
本実施形態では、正規化された60×66画素の顔画像のうち、特徴量が抽出し易い82箇所の特徴量抽出位置(図5を参照のこと)において、正規化相関演算を行ない、類似度を求める。この結果、d0、d1、…、d81の82箇所の各特徴量抽出位置で求められた正規化相関演算結果を要素とする類似度ベクトルDが得られる。
【0063】
【数4】
【0064】
なお、上記では「最大40種類」のガボア・フィルタを適用することを記述したが、これは82箇所のすべての特徴量抽出位置において40種類すべてのガボア・フィルタを適用する必要はないことを意味する。何種類のガボア・フィルタを適用するかは、類似度を抽出する特徴量抽出位置の場所に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる。
【0065】
一致判定部144は、入力画と登録画間の類似度ベクトルに基づいて、両画像の一致を判定する。本実施形態では、識別器演算としてgentleboostを用いる。ここでは、以下の演算式を用いてgentleboostを算出する。但し、同式中のa、q、bは辞書としてあらかじめ登録されているものとする。
【0066】
【数5】
【0067】
そして、以下の判別式に従って、入力画が登録画と一致するかどうかを判定する。
【0068】
【数6】
【0069】
なお、本実施形態では、一致判定にgentleboostを用いているが、本発明の要旨は必ずしもこれに限定されるものではない。例えば、サポート・ベクタ・マシーンを用いて類似ベクトルの境界面の値をクラス判定して、顔画像の一致を判定するようにしてもよい。
【0070】
図6には、ガボア・フィルタ適用部142の構成例を示している。図示のガボア・フィルタ適用部142は、制御信号発生部から供給される制御信号に従って動作する。図7には、制御信号発生部の内部構成を示している。また、図8には、この制御信号発生部が出力する制御信号を図解している。
【0071】
図7に示すように、制御信号発生部は、特徴量抽出位置を指定する特徴量抽出位置カウンタ、特徴量抽出位置毎のフィルタの種類を指定するフィルタ種類カウンタ、24×24画素からなるフィルタ窓のY及びXを指定する窓Yカウンタ並びに窓Xカウンタを備えている。
【0072】
図5に示したように、1画像(すなわち1つの顔)に対して82箇所でそれぞれ特徴量を抽出するため、特徴量抽出位置カウンタは、特徴量抽出位置を示すための0〜81のカウンタである。特徴両抽出位置の場所に応じて、適用されるガボア・フィルタの種類と数が異なる。また、図6に示したガボア・フィルタ適用部142では4並列でフィルタ演算を行なう。
【0073】
図8に示す例では、特徴量抽出位置0(pos0)において4×7=28種類のガボア・フィルタを適用し、特徴量抽出位置1(pos1)において4×3=12種類のガボア・フィルタを適用する。入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。何種類のガボア・フィルタを適用するかは、特徴量抽出位置の場所{d0、d1、…d81}に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる(前述)。ここで、フィルタの種類は最大で40、フィルタ演算の並列数は4であることから、フィルタ種類カウンタは0〜9のカウンタである。
【0074】
1個のガボア・フィルタに対しては(4並列なので合計4個)、0〜23のy方向のカウンタ(窓Y)と0〜23のx方向のカウンタ(窓X)を用意し(図9を参照のこと)、処理時間は24×24=576クロック(固定クロック時間)となる。
【0075】
本実施形態では、40(=8方向×5通りの周波数)種類のガボア・フィルタが使用される。ガボア・フィルタの係数は、ガウス関数により演算されたフィルタ窓(24×24)と、コサイン関数からなる実部並びにサイン関数からなる虚部により演算され、ハードウェアとしてROMを用いて実現することができる。ここで、すべてのフィルタ係数をROMに格納する場合、係数のビット長を16ビットと仮定すると、24×24×40×2×16=720Kビットと大容量になる。そこで、以下では、ROMに格納すべき係数のデータ量削減について考察する。
【0076】
ガボア・フィルタ係数は、ガウス関数により演算されたフィルタ窓の値と、サイン関数及びコサイン関数によりそれぞれ演算された応答関数の値の乗算で求められる。したがって、ガウス関数により演算されたフィルタ窓の値、サイン関数により演算された値、並びにコサイン関数により演算された値をそれぞれROMに格納して用意し、乗算器を使って乗算を行なうことで、ガボア・フィルタ係数を求めることができる。これによって、40種類のガボア・フィルタの係数をすべて格納する場合に比べ、ROMデータのサイズを削減することができる。
【0077】
また、ガウス関数がピークを中心に対称的であることや、サイン関数及びコサイン関数が周期関数であること、すなわち同じ値が繰り返し出現するという冗長性に着目して、ガウス関数により演算されたフィルタ窓の値、サイン関数により演算された値、並びにコサイン関数により演算された値を格納するそれぞれのROMのサイズをさらに削減することができる。
【0078】
まず、フィルタ窓の冗長性について考えてみる。図10A及び図10Bには、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示している。図4Aからも分るように、(0,0)にピークを持ち、ピークから離れるに従って0に近づくが、(0,0)に対し点対称となる。そして、図10からも分るように、ガウス関数により演算された24×24(=576ワード)のフィルタ窓では78ワードが複数の窓位置XYで繰り返し出現するから、図10A中において太枠で示した78ワードのみが必要なデータとなる。
【0079】
また、サイン関数とコサイン関数により演算された値は、0度と90度、45度と135度、並びに、27度と63度と117度と153度では、それぞれ同じ値となるから、サイン関数とコサイン関数の周期性を考慮して、サイン関数とコサイン関数により演算される応答関数に必要なROMデータのサイズを削減することができる。
【0080】
図11A及び図11Bには、サイン関数により演算された0度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図12A及び図12Bには、コサイン関数により演算された0度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。0度のXとYを入れ替えると90度の関係となるという、サイン関数とコサイン関数の周期性を考慮すると、12ワードが複数の窓位置XYで繰り返し出現するから、図12A中において太枠で示した12ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0081】
図13A及び図13Bには、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示し、図13C及び図13Dには、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図14A及び図14Bには、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示し、図14C及び図14Dには、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。サイン関数とコサイン関数の周期性を考慮すると、24ワードが複数の窓位置XYで繰り返し出現するから、図13A及び図14A中に太枠で示した合計24ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0082】
サイン関数及びコサイン関数からなる応答関数の残りの4方向に関しては、当初、0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度を想定していた(図4Cを参照のこと)。ところが、これらの想定角度では、サイン関数並びにコサイン関数の周期性が見出せず、上記と同様のデータ削減を行なうことができない。そこで、これらの想定角の近傍で、サイン関数とコサイン関数の周期性を考慮してデータを削減することができる、27度、63度、117度、153度の角度に近似して、これら4方向に対してサイン関数及びコサイン関数からなる応答関数で代用することにした。
【0083】
27度、63度、117度、153度の角度はそれぞれ下式で求めることができ、サイン関数とコサイン関数の間で周期性があることを理解できよう。
【0084】
【数7】
【0085】
図15A及び図15Bには、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図16A及び図16Bには、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。サイン関数とコサイン関数の周期性を考慮すると、35ワードが複数の窓位置XYで繰り返し出現するから、図15A及び図16Aに太枠で示したそれぞれ35ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0086】
このようにして、ガボア・フィルタを構成するフィルタ窓、及び8方向の応答関数に必要なデータを以下のように削減することができる。
【0087】
(1)ガウス関数により演算される24×24固定のフィルタ窓に必要なROMデータを78ワードとする。
(2)サイン関数及びコサイン関数により演算された0度と90度の方向に対する応答関数を構成するために必要なROMデータを12ワードとする。
(3)サイン関数及びコサイン関数により演算された45度と135度の方向に対する応答関数を構成するために必要なROMデータを24ワードとする。
(4)応答関数の残りの4方向となる22.5度、67.5度、112.5度、157.5度の各想定角に関してはサイン関数並びにコサイン関数の周期性が見出せないことから、サイン関数とコサイン関数の周期性のある27度、63度、117度、153度の角度に近似した応答関数で代用することで、これらの方向に対する応答関数を構成するために必要なROMデータをそれぞれ35ワードとする。
【0088】
これらの必要最小限となるワード数のROMデータをそれぞれガウスROM、0度及び90度サインROM、0度及び90度コサインROM、45度及び135度サインROM、45度及び135度コサインROM、27度63度117度153度サインROM、27度63度117度153度コサインROMに格納する。そして、アドレス作成部において、制御信号発生部の窓Yカウンタ並びに窓Xカウンタから出力される窓Y及び窓Xの制御信号を変換して、これらの各ROMのアドレスを作成することによって、ガウス関数から演算された値、並びに、サイン関数及びコサイン関数から演算された値を読み出すことができる。
【0089】
ガウスROM用アドレス作成部は、例えば図17に示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号からガウスROM上の該当アドレスを早見することができる。
【0090】
また、0度及び90度サインROM用アドレス作成部は、例えば図18A及び図18Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された0度及び90度方向の応答関数の値を格納した0度及び90度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、0度及び90度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から0度及び90度サインROM上の該当アドレスに変換することができる。
【0091】
【数8】
【0092】
また、0度及び90度コサインROMアドレス作成部は、例えば図19A及び図19Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された0度及び90度方向の応答関数の値を格納した0度及び90度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、0度及び90度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から0度及び90度コサインROM上の該当アドレスに変換することができる。
【0093】
【数9】
【0094】
また、45度及び135度サインROMアドレス作成部は、例えば図20A及び図20Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された45度及び135度方向の応答関数の値を格納した45度及び135度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、45度及び135度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から45度及び135度サインROM上の該当アドレスに変換することができる。
【0095】
【数10】
【0096】
また、45度及び135度コサインROMアドレス作成部は、例えば図21A及び図21Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された45度及び135度方向の応答関数の値を格納した45度及び135度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、45度及び135度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から45度及び135度コサインROM上の該当アドレスに変換することができる。
【0097】
【数11】
【0098】
また、27度63度117度153度サインROMアドレス作成部は、例えば図22A〜図22Dに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された27度、63度、117度、153度の各方向の応答関数の値を格納した27度63度117度153度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、27度63度117度153度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から27度63度117度153度サインROM上の該当アドレスに変換することができる。
【0099】
【数12】
【0100】
また、27度63度117度153度コサインROMアドレス作成部は、例えば図23A〜図23Dに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された27度、63度、117度、153度の各方向の応答関数の値を格納した27度63度117度153度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、27度63度117度153度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から27度63度117度153度コサインROM上の該当アドレスに変換することができる。
【0101】
【数13】
【0102】
ここで、サイン関数により演算された値のアドレス割り当てとコサイン関数により演算された値のアドレス割り当てのROMのアドレスへの変換式は同じである。
【0103】
上述したように、82箇所のすべての特徴量抽出位置において40種類すべてのガボア・フィルタを適用する必要はなく、何種類のガボア・フィルタを適用するかは、特徴量抽出位置の場所{d0,d1,…,d81}に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる。このような操作を実現するために、ガボア・フィルタ適用部142内には、フィルタ種別SRAMとセレクタが配設される。まず、入力画のすべての特徴量抽出位置{d0,d1,…,d81}において、それぞれ適用されるフィルタの種類をフィルタ種別SRAMに書き込む。すなわち、
【0104】
特徴量抽出位置0(pos0)では、pos00,pos01,…,pos027,
特徴量抽出位置1(pos1)では、pos10,pos11,…,pos011,
【0105】
制御信号発生部から入力される特徴量抽出位置のアドレスに応じて、該当位置において適用されるフィルタの位置がフィルタ種別SRAMから読み出される。そして、セレクタは、当該特徴量抽出位置において必要なフィルタ係数(サイン関数及びコサイン関数から演算された応答関数)を上述した各係数格納ROMから選択して、後段のフィルタ演算部に渡す。
【0106】
図6に示したガボア・フィルタ適用部142では、フィルタ演算部は4並列で構成されている。但し、並列数は4個に限定される訳ではなく、フィルタ適用数や処理速度、ハードウェア規模を考慮して決定される設計事項である。
【0107】
フィルタ演算部では、SDRAM15から画像SRAMに取り込まれた処理対象画像(入力画)に対して、ガボア・フィルタを適用する。具体的には、特徴量抽出位置に応じてセレクタで選択されたサインROM及びコサインROMから得られた値と、ガウスROMから得られた値を乗算して各ガウス・フィルタ係数を算出し、24×24の各ガウス・フィルタ係数と処理対象画像の24×24画素との畳み込み演算を行ない、それぞれの結果を合成する。本実施形態では、合成を絶対値和で近似している。合成の精度が必要な場合には、両者の2乗和のルート演算を行なう。
【0108】
なお、図6に示したガボア・フィルタ適用部142の構成では、フィルタ種別の選択肢が限定されてしまうという問題がある。何故ならば、サイン関数及びコサイン関数により演算して得た応答関数に関して、27度と63度と117度と153度(ある周波数に限定する)でROMデータを共有しているため、これらの演算をフィルタ演算の並列化を利用して同時実行することができないからである。したがって、この4種のフィルタしか適用しない場合は4並列化の中で3並列分のハードウェア資源が無駄になる。
【0109】
この問題を解決するために、図24に示すように、それぞれの角度のROMデータを独立に割り当てた構成としてもよい。これにより、ROMデータの容量は大きくなるが、任意のフィルタ種類構成を最小の時間で処理可能に実現することができる。
【産業上の利用可能性】
【0110】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0111】
本明細書では、顔認識装置に適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。ガボア・フィルタは、人間の視覚細胞にはある特定の方位に対して選択性を持つ細胞が存在するということに着眼し、方向選択性を持つ複数のフィルタで構成される空間フィルタであり、具体的には窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを抽出することができる。本発明は、ガボア・フィルタを用いてパターン認識やその他のさまざまな画像処理を行なう装置に好適に適用することができる。
【0112】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【図面の簡単な説明】
【0113】
【図1】図1は、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示した図である。
【図2】図2は、顔認識器14の構成例を示した図である。
【図3】図3は、検出された顔画像を、縮小、シフト、回転変換して顔認識に必要な顔画像に正規化する様子を示した図である。
【図4A】図4Aは、24×24画素固定で構成されるガウス関数からなるフィルタ窓を示した図である。
【図4B】図4Bは、サイン関数又はコサイン関数からなる応答関数を示した図である。
【図4C】図4Cは、図4Bに示した応答関数に図4Aに示したフィルタ窓をかけて得られるガボア・フィルタを示した図である。
【図4D】図4Dは、22.5度ずつずらした8方向の応答関数についてそれぞれフィルタ窓をかけて得られる8通りのガボア・フィルタを示した図である。
【図4E】図4Eは、5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけて得られる40種類のガボア・フィルタを示した図である。
【図5】図5は、正規化された60×66画素の顔画像に設けられた82箇所の特徴量抽出位置を示した図である。
【図6】図6は、ガボア・フィルタ適用部142の構成例を示した図である。
【図7】図7は、制御信号発生部の内部構成を示した図である。
【図8】図8は、図7に示した制御信号発生部が出力する制御信号を示した図である。
【図9】図9は、フィルタ窓の構成を示した図である。
【図10A】図10Aは、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示した図である。
【図10B】図10Bは、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示した図である。
【図11A】図11Aは、サイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図11B】図11Bは、サイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図12A】図12Aは、コサイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図12B】図12Bは、コサイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13A】図13Aは、サイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13B】図13Bは、サイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13C】図13Cは、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13D】図13Dは、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14A】図14Aは、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14B】図14Bは、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14C】図14Cは、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14D】図14Dは、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図15A】図15Aは、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図15B】図15Bは、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図16A】図16Aは、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図16B】図16Bは、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図17】図17は、窓Y及び窓Xの制御信号からガウスROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図18A】図18Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された0度方向の応答関数の値を格納した0度サイン及び90度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図18B】図18Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された90度方向の応答関数の値を格納した0度及び90度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図19A】図19Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された0度方向の応答関数の値を格納した0度及び90度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図19B】図19Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された90度方向の応答関数の値を格納した0度及び90度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図20A】図20Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された45度方向の応答関数の値を格納した45度及び135度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図20B】図20Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された135度方向の応答関数の値を格納した45度及び135度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図21A】図21Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された45度方向の応答関数の値を格納した45度及び135度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図21B】図21Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された135度方向の応答関数の値を格納した45度及び135度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22A】図22Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された27度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22B】図22Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された63度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22C】図22Cは、窓Y及び窓Xの制御信号から、サイン関数により演算された117度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22D】図22Dは、窓Y及び窓Xの制御信号から、サイン関数により演算された153度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23A】図23Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された27度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23B】図23Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された63度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23C】図23Cは、窓Y及び窓Xの制御信号から、コサイン関数により演算された117度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23D】図23Dは、窓Y及び窓Xの制御信号から、コサイン関数により演算された153度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図24】図24は、ガボア・フィルタ適用部142の変形例を示した図である。
【符号の説明】
【0114】
1…顔認識システム
11…画縮小器
12…顔検出器
13…両目位置検出器
14…顔認識器
15…メモリ
141…顔画像入力部
142…ガボア・フィルタ適用部
143…類似度算出部
144…一致判定部
【技術分野】
【0001】
本発明は、撮影画像などに含まれる顔画像を認識する顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに係り、特に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を抽出する顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なう顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに係り、特に、ハードウェア規模や演算負荷の増加を招来することなく十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なう顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムに関する。
【背景技術】
【0003】
顔認識の技術は、ユーザに負担をかけない個人認証システムをはじめとして、性別の識別など、マンマシン・インターフェースに幅広く適用が可能である。初期は横顔を使った認識技術も検討されたが、現在は、正面画像の認識技術が中心となっている。
【0004】
顔認識システムは、CCDカメラなどによる撮像画像から顔パターンを抽出する顔抽出処理と、抽出された顔パターンを基に顔を認識する顔認識で構成される。顔パターンを抽出する(顔画像の特徴量を抽出する)顔抽出処理若しくは顔認識処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタを用いることにより、顔画像の特徴量を抽出する「ガボア・フィルタリング(Gabor Filtering)」を適用することができる(例えば、特許文献1を参照のこと)。
【0005】
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判明されている。これは、垂直の線に対して発火する細胞と、水平の線に反応する細胞で構成される。ガボア・フィルタは、これと同様に、方向選択性を持つ複数のフィルタで構成される空間フィルタである。
【0006】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。フィルタ窓の大きさは例えば24×24固定とする。また、周波数fを5種類、角度θを8方向とすると、40種類のガボア・フィルタが構成される。
【0007】
ガボア・フィルタの演算は、ガボア・フィルタを適用する画素とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部と周波数応答がサイン関数からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して1個のスカラ値からなるガボア・フィルタ結果を求めることができる。このような演算を、周波数fと角度θを切り替えながら最大40種類のガボア・フィルタを適用し、得られた最大40個のスカラ値の組を「ガボア・ジェット」と呼ぶ。顔画像データ上で水平方向及び垂直方向に一定間隔で検出される特徴量抽出位置毎に、局所特徴量としてガボア・ジェットが求められる。ガボア・ジェットは、特徴量抽出位置のある程度の位置のずれや変形に対して、不変であるという特徴を有している。
【0008】
登録顔画像に関しては、あらかじめ特徴量抽出位置毎のガボア・ジェットが算出されている。そして、同じ特徴量抽出位置における入力顔のガボア・ジェットと登録顔のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合である類似度ベクトルが求められる。続いて、サポート・ベクタ・マシーン(SVM)によるクラス判定を行なって、入力顔画像と登録顔画像の認識を行なう。サポート・ベクタ・マシーンは、類似度ベクトルの境界面の値を、例えば、+1又は−1と判定する境界面(値が0である位置の面)からの距離を算出し、intra−personal class又はextra−personal classのいずれに属するかを判断する。intra−personal classに属すると判断される類似度ベクトルが存在しない場合には、未登録の人物の顔が入力されたと判断される(例えば、非特許文献1を参照のこと)。また、1つのサポート・ベクタ・マシーンが多くの顔画像を学習(すなわち登録)することで、新たに入力された顔画像が登録されている(学習済みの)顔画像と一致するのか(intra−personal classに属するのか)、又は、一致しないのか(extra−personal classに属するのか)を判定することができる(例えば、特許文献2、特許文献3を参照のこと)。サポート・ベクタ・マシーンは、パターン認識の分野で最も学習汎化能力が高いと当業界では評価されている。
【0009】
上述したように、ガボア・フィルタリングでは、周波数応答に用いるガボア関数の周波数fと角度θを切り替えながら最大40種類のガボア・フィルタを適用して演算を行なう。このように多数のフィルタ係数をガボア・フィルタ演算の度に逐次用意することは計算機にとって演算負荷が高く、処理時間が長くなってしまう。ここで、フィルタ係数の種類や数を固定(制限)することで、演算負荷は軽減されるが、この場合は十分な認識性能が得られなくなってしまう。
【0010】
また、ガボア・フィルタのすべてのフィルタ係数を単純にROM(Read Only Memory)データとして格納すると、ハードウェア規模が増大してしまう。例えば、医用画像の処理にガボア・フィルタを用いる場合など(例えば、特許文献4を参照のこと)、比較的高価な装置を用いることが許容されている場合においては、ハードウェア規模や演算負荷の問題は無視し得るであろう。他方、小型・携行型のデジタルカメラにおいても、顔認識技術を搭載することにより、人物撮影における合焦時間の短縮を図る、主要被写体が最適露出となるようにダイナミックレンジ圧縮処理を行なう、といったさまざまなアプリケーションが可能となるが、ガボア・フィルタリングを実施する際のハードウェア規模や演算負荷の問題が重大なネックとなる。
【0011】
【特許文献1】特開2006−4041号公報
【特許文献2】特再WO03/019475号公報
【特許文献3】特開2006−4003号公報
【特許文献4】特開2005−21334号公報
【非特許文献1】B.sholkopf外著“Advance in Kernel Support Vector Learning”(The MIT Press、1999.)
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を好適に抽出することができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【0013】
本発明のさらなる目的は、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【0014】
本発明のさらなる目的は、ハードウェア規模や演算負荷の増加を招来することなく十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0015】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、入力顔画像と登録顔画像の認識を行なう顔認識装置であって、
認識処理の対象となる顔画像を入力する顔画像入力手段と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手段と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手段と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段を備え、該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識装置である。
【0016】
顔抽出処理若しくは顔認識処理には、例えば、方位選択性を持ち周波数成分の異なる複数のフィルタで顔画像の特徴量を抽出するガボア・フィルタリングを適用することができる。ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを抽出することができる。
【0017】
入力顔画像のある特徴量抽出位置において、応答関数の周波数と角度を切り替えながらガボア・フィルタの演算を行なうことで、フィルタの種類に応じた個数のスカラ値からなるガボア・フィルタ結果すなわちガボア・ジェットが得られる。そして、特徴量抽出位置毎に入力顔画像と登録顔画像のガボア・ジェットの類似度を算出して、類似度の集合である類似度ベクトルが求められ、この類似度ベクトルを基に入力顔画像と登録顔画像の一致判定を行なうことができる。
【0018】
ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを好適に抽出することができるので、顔認識に限らず、パターン認識やその他のさまざまな画像処理に適用することができる。
【0019】
しかしながら、多数のガボア・フィルタ係数をガボア・フィルタ演算の度に逐次用意することは計算機にとって演算負荷が高く、処理時間が長くなってしまう。また、ガボア・フィルタのフィルタ係数を単純にROMデータとして格納すると、ハードウェア規模が増大してしまうという問題がある。
【0020】
そこで、本発明に係る顔認識装置では、ガボア・フィルタが窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とすることに着目して、ガボア・フィルタ係数を格納するROMデータの削減を図っている。前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを備えており、ガボア・フィルタ係数算出手段は、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するように構成されている。
【0021】
すなわち、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して扱うことによって、ガボア・フィルタのすべてのフィルタ係数を単純にROMデータとして格納する場合よりも、ハードウェア規模を削減することができる。また、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算することで、ガボア・フィルタ係数を容易に求めることができるので、演算負荷は高くない。
【0022】
さらに、本発明に係る顔認識装置では、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現している。
【0023】
前記ガボア・フィルタ適用手段は、8方向の角度からなるガボア・フィルタを適用するために、サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備える。
【0024】
また、0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角に関しては、サイン関数並びにコサイン関数の周期性がないため、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度63度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度63度117度153度コサインROMを備える。
【0025】
また、前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納するようにする。
【0026】
この場合、特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段を備え、前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求めることができる。
【0027】
したがって、本発明によれば、ガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現することができる。
【0028】
また、本発明に係る顔認識装置は、各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段をさらに備えていても良い。
【0029】
このような場合、入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。この結果、顔認識、笑顔認識、性別認識など、さまざまな認識の認識率を向上することができる。また、フィルタの種類や数を固定した場合(すべての特徴量抽出位置で全フィルタを適用する場合)よりも処理時間を短縮することができる。
【0030】
また、本発明の第2の側面は、入力顔画像と登録顔画像の認識を行なうための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
認識処理の対象となる顔画像を入力する顔画像入力手順と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手順と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手順と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手順を実行させ、
前記ガボア・フィルタ適用手順では、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手順を実行して、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とするコンピュータ・プログラムである。
【0031】
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータにインストールすることによって、コンピュータ上では協働的作用が発揮され、本発明の第1の側面に係る顔認識装置と同様の作用効果を得ることができる。
【発明の効果】
【0032】
本発明によれば、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタを用いて顔画像の特徴量を好適に抽出することができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0033】
また、本発明によれば、ガボア・フィルタ係数の種類や数を固定することなく、十分な性能で顔画像の認識を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0034】
また、本発明によれば、ハードウェア規模や演算負荷の増加を招来することなく、十分な性能でガボア・フィルタを利用した顔画像の認識処理を行なうことができる、優れた顔認識装置及び顔認識方法、ガボア・フィルタ適用装置、並びにコンピュータ・プログラムを提供することができる。
【0035】
本発明に係る顔認識装置は、ガボア・フィルタが窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とすることに着目して、ガボア・フィルタ係数を格納するROMデータの削減を図っている。すなわち、フィルタ係数をガウス関数により演算された値とサイン関数又はコサイン関数により演算された値に分割して、さらにガウス関数の特性、サイン関数とコサイン関数の周期性を利用して、冗長性を排して最小限のデータのみをROMに格納することで、ハードウェア規模の縮小を実現することができる。
【0036】
また、本発明に係る顔認識装置によれば、入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。この結果、顔認識、笑顔認識、性別認識など、さまざまな認識の認識率を向上することができる。また、フィルタの種類や数を固定した場合(すべての特徴量抽出位置で全フィルタを適用する場合)よりも処理時間を短縮することができる。
【0037】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【0038】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0039】
顔認識システムは、入力画像から顔画像を抽出する顔抽出処理と、抽出された顔画像を認識する顔認識で構成されることは既に述べた通りである。ここでは、まず顔検出と顔認識について改めて定義しておく。
【0040】
顔検出は、ある1枚の画像(1枚の写真や動画像の1ピクチャ(フィールド又はフレーム)に当たる)に対して、人物顔を検出しその位置と大きさを求める処理である。1枚の画において複数の顔が存在することがある。一方、顔認識とは検出されたある1個の顔が以前に登録された顔と同一人物かを識別することを言う。
【0041】
図1には、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示している。図示のシステム1は、画縮小器11と、顔検出器12と、両目位置検出器13と、顔認識器14と、複数枚の画像を蓄えるメモリ(SDRAM)15で構成される。また、顔検出器12と、両目位置検出器13と、顔認識器14内部にローカル・メモリ(SDRAM)を備えている。本システム1への入力は画像であり、本システム1からの出力(Yes/No)は同一人物か否かを示すフラグである。
【0042】
画縮小器11では、入力画像に対し水平及び垂直の各方向にそれぞれ1/2にした縮小画像を作成し、原入力画像とともにSDRAM(Synchronous DRAM)15に格納する。図1に示す例では、入力画像を画1、入力画像に対し水平及び垂直方向にそれぞれ1/2にした縮小画像を画1/2、入力画像に対し水平及び垂直方向にそれぞれ1/4にした縮小画像を画1/4として、これら3枚の画像を作成して、SDRAM15に格納する。
【0043】
縮小画像を作成する際、演算精度を考慮すると、入力画像から直接それぞれの縮小画像を作成する方法が望ましい。但し、ハードウェアの規模を考慮して、1/2縮小を順番に施す方法、つまり、始めに入力画像(画1)から画1/2を作成し、次に作成された画1/2から画1/4を作成する方法で実現するようにしてもよい。
【0044】
顔検出器12では、入力画像とSDRAM15に格納されているすべての縮小画像に対して顔を検出し、検出された顔の大きさと顔の位置を求める。顔の位置の検出に関しては、画像全体を検出することで処理速度を考慮しなければ容易に実現可能である。一方、いろいろな大きさの顔の検出に関しては、画像の解像度と検出顔の大きさの相対関係の問題で、画像の解像度を固定にする方法(すなわち、入力画像に対していろいろな大きさの顔検出器を用意する方法)と、検出顔の大きさを固定にする方法(検出できる顔の大きさが固定された1つの顔検出器を用い、入力画像をいろいろな解像度に縮小して検出する方法)が考えられるが、後者の方法が現実的である。したがって、図1に示すように、顔検出器12では、画縮小器11で作成された画1、画1/2、画1/4の各縮小画像に対して、24×24画素内に顔が存在するか否かを識別する。
【0045】
なお、縮小率の刻みが1/2、1/4では粗過ぎて精度が不十分である場合には、例えば画縮小器11で画7/8、画6/8、画5/8の縮小率の画像をさらに作成し、顔検出器12でそれぞれの縮小率の画像に対しても顔検出を行なうようにすれば良い。
【0046】
顔検出の特徴抽出として2点画素差分方式を適用することができる。これは、24×24画素内において顔の特徴を抽出し易い2点の画素の差分をさまざまな2点で行なう方式である。また、識別器演算としてadaboostアルゴリズムを用いることができる。
【0047】
両目位置検出器13では、両目位置検出は、顔画像を顔認識するための準備として、顔検出器12によって検出された顔に対して解像度を上げた画像の顔を正規化するために、左右の目の位置を特定する。すなわち、両目位置を検出して、顔検出によって得られた顔の大きさ、顔の位置から、その顔画像の解像度を上げた顔の大きさ、顔の位置、顔の角度を求める。
【0048】
顔検出器12では24×24画素の解像度で顔検出が行なわれ、顔認識器14では60×66画素の解像度で顔認識が行なわれる。言い換えると、顔認識器14に必要な解像度は、顔検出器12のそれより精度を要求される。そこで、顔検出器で検出された顔が画1/2とすると、それよりも解像度の高い画1の同等の顔が存在する場所で且つ目が存在する顔の上部で左右の目を検出する。
【0049】
両目位置検出の特徴抽出として2点画素差分方式を適用することができる。2点画素差分方式の適用範囲も24×24画素であり、顔検出器12と同じであるので、顔検出器12と同一のハードウェアで処理時間をシリアルにして実現することができる。
【0050】
顔認識器14では、両目位置検出器13によって左右の目位置が特定された顔画像から顔の大きさ、位置、角度を求め、それらに応じて顔を正規化して60×66画素の内部のSRAMに一旦蓄えて、登録画像と一致するか否かを調べる。
【0051】
本実施形態では、顔認識器14は、顔認識の特徴抽出としてガボア・フィルタリングを適用する。また、識別器演算としてgentleboostを用いる。正規化された顔画像にガボア・フィルタを適用して得られた結果と、以前に登録された画像にガボア・フィルタを適用して得られた結果との類似度を求める。そして、求められた類似度に対してgentleboostを施すことによって、登録画と一致したか否か識別する。
【0052】
図2には、顔認識器14の構成例を示している。図示の顔認識器14は、顔画像入力部141と、ガボア・フィルタ適用部142と、類似度算出部143と、一致判定部144を備えている。
【0053】
顔画像入力部141は、初めに、両目位置検出で検出された両目位置から顔認識に必要である解像度に相当する顔画像を、SDRAM15から、顔認識器14にローカルのSRAM1に転送する。次いで、両目位置情報から顔の大きさ、顔の位置、顔の角度を求め、SRAM1にある顔画像を正規化して、顔認識に必要な顔画像を作成して、顔認識器14にローカルのSRAM2に格納する。つまり、顔画像入力部141では、両目位置情報からSRAM2の固定した座標に右目、左目の位置を合わせるように、SRAM1の顔画像を縮小、シフト、回転変換して顔認識に必要な顔画像をSRAM2に作成する(図3を参照のこと)。
【0054】
ガボア・フィルタ適用部142は、画像入力部141において正規化された顔画像に対してガボア・フィルタを適用する。
【0055】
ガボア・フィルタは、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。本実施形態では、フィルタ窓は、図4Aに示すように24×24画素固定とする。そして、図4Bに示すような特定の周波数成分のサイン関数又はコサイン関数からなる応答関数にフィルタ窓をかけると、図4Cに示すようなガボア・フィルタを作成することができる。また、例えば、0度、22.5度、45度、67.5度、90度、112.5度、135度、157.5度と22.5度ずつずらした8方向のサイン関数又はコサイン関数からなる応答関数に対してそれぞれフィルタ窓をかけると、図4Dに示すように8通りのガボア・フィルタを作成することができる。さらに、低周波域から高周波域に至る5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけることで、図4Eに示すように合計で40種類のガボア・フィルタが構成される。ガボア・フィルタ(ガボア・カーネルK(x,y))は、以下の演算式で表される。
【0056】
【数1】
【0057】
ガボア・フィルタの演算は、ガボア・フィルタGi(x,y)を適用する画素I(x,y)とガボア・フィルタの係数との畳み込みである。ガボア・フィルタの係数は、周波数応答がコサイン関数からなる実部Re(x,y)と周波数応答がサイン関数Im(x,y)からなる虚部に分離することができ、それぞれに畳み込み演算を実施し、それぞれの成分を合成して、1個のスカラ値からなるガボア・フィルタ結果Ji(x,y)を求めることができる。但し、(x,y)は特徴量抽出位置の画素位置を示し、iは上述した40通りのガボア・フィルタのうちi番目であることを示す。
【0058】
【数2】
【0059】
画像の特徴量抽出位置(x,y)において最大40種類のガボア・フィルタを適用して得られた最大40スカラ値の組{J1,J2,…,J40}をガボア・ジェットと呼ぶ。
【0060】
類似度算出部143は、入力画像について算出されたガボア・ジェットGSと登録画像のガボア・ジェットGRに正規化相関演算を行ない、特徴量抽出位置毎の類似度dを求める。
【0061】
【数3】
【0062】
本実施形態では、正規化された60×66画素の顔画像のうち、特徴量が抽出し易い82箇所の特徴量抽出位置(図5を参照のこと)において、正規化相関演算を行ない、類似度を求める。この結果、d0、d1、…、d81の82箇所の各特徴量抽出位置で求められた正規化相関演算結果を要素とする類似度ベクトルDが得られる。
【0063】
【数4】
【0064】
なお、上記では「最大40種類」のガボア・フィルタを適用することを記述したが、これは82箇所のすべての特徴量抽出位置において40種類すべてのガボア・フィルタを適用する必要はないことを意味する。何種類のガボア・フィルタを適用するかは、類似度を抽出する特徴量抽出位置の場所に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる。
【0065】
一致判定部144は、入力画と登録画間の類似度ベクトルに基づいて、両画像の一致を判定する。本実施形態では、識別器演算としてgentleboostを用いる。ここでは、以下の演算式を用いてgentleboostを算出する。但し、同式中のa、q、bは辞書としてあらかじめ登録されているものとする。
【0066】
【数5】
【0067】
そして、以下の判別式に従って、入力画が登録画と一致するかどうかを判定する。
【0068】
【数6】
【0069】
なお、本実施形態では、一致判定にgentleboostを用いているが、本発明の要旨は必ずしもこれに限定されるものではない。例えば、サポート・ベクタ・マシーンを用いて類似ベクトルの境界面の値をクラス判定して、顔画像の一致を判定するようにしてもよい。
【0070】
図6には、ガボア・フィルタ適用部142の構成例を示している。図示のガボア・フィルタ適用部142は、制御信号発生部から供給される制御信号に従って動作する。図7には、制御信号発生部の内部構成を示している。また、図8には、この制御信号発生部が出力する制御信号を図解している。
【0071】
図7に示すように、制御信号発生部は、特徴量抽出位置を指定する特徴量抽出位置カウンタ、特徴量抽出位置毎のフィルタの種類を指定するフィルタ種類カウンタ、24×24画素からなるフィルタ窓のY及びXを指定する窓Yカウンタ並びに窓Xカウンタを備えている。
【0072】
図5に示したように、1画像(すなわち1つの顔)に対して82箇所でそれぞれ特徴量を抽出するため、特徴量抽出位置カウンタは、特徴量抽出位置を示すための0〜81のカウンタである。特徴両抽出位置の場所に応じて、適用されるガボア・フィルタの種類と数が異なる。また、図6に示したガボア・フィルタ適用部142では4並列でフィルタ演算を行なう。
【0073】
図8に示す例では、特徴量抽出位置0(pos0)において4×7=28種類のガボア・フィルタを適用し、特徴量抽出位置1(pos1)において4×3=12種類のガボア・フィルタを適用する。入力した顔画像内のフィルタの適用場所(特徴量抽出位置の位置)に応じてフィルタの種類や数を任意に設定することができる。何種類のガボア・フィルタを適用するかは、特徴量抽出位置の場所{d0、d1、…d81}に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる(前述)。ここで、フィルタの種類は最大で40、フィルタ演算の並列数は4であることから、フィルタ種類カウンタは0〜9のカウンタである。
【0074】
1個のガボア・フィルタに対しては(4並列なので合計4個)、0〜23のy方向のカウンタ(窓Y)と0〜23のx方向のカウンタ(窓X)を用意し(図9を参照のこと)、処理時間は24×24=576クロック(固定クロック時間)となる。
【0075】
本実施形態では、40(=8方向×5通りの周波数)種類のガボア・フィルタが使用される。ガボア・フィルタの係数は、ガウス関数により演算されたフィルタ窓(24×24)と、コサイン関数からなる実部並びにサイン関数からなる虚部により演算され、ハードウェアとしてROMを用いて実現することができる。ここで、すべてのフィルタ係数をROMに格納する場合、係数のビット長を16ビットと仮定すると、24×24×40×2×16=720Kビットと大容量になる。そこで、以下では、ROMに格納すべき係数のデータ量削減について考察する。
【0076】
ガボア・フィルタ係数は、ガウス関数により演算されたフィルタ窓の値と、サイン関数及びコサイン関数によりそれぞれ演算された応答関数の値の乗算で求められる。したがって、ガウス関数により演算されたフィルタ窓の値、サイン関数により演算された値、並びにコサイン関数により演算された値をそれぞれROMに格納して用意し、乗算器を使って乗算を行なうことで、ガボア・フィルタ係数を求めることができる。これによって、40種類のガボア・フィルタの係数をすべて格納する場合に比べ、ROMデータのサイズを削減することができる。
【0077】
また、ガウス関数がピークを中心に対称的であることや、サイン関数及びコサイン関数が周期関数であること、すなわち同じ値が繰り返し出現するという冗長性に着目して、ガウス関数により演算されたフィルタ窓の値、サイン関数により演算された値、並びにコサイン関数により演算された値を格納するそれぞれのROMのサイズをさらに削減することができる。
【0078】
まず、フィルタ窓の冗長性について考えてみる。図10A及び図10Bには、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示している。図4Aからも分るように、(0,0)にピークを持ち、ピークから離れるに従って0に近づくが、(0,0)に対し点対称となる。そして、図10からも分るように、ガウス関数により演算された24×24(=576ワード)のフィルタ窓では78ワードが複数の窓位置XYで繰り返し出現するから、図10A中において太枠で示した78ワードのみが必要なデータとなる。
【0079】
また、サイン関数とコサイン関数により演算された値は、0度と90度、45度と135度、並びに、27度と63度と117度と153度では、それぞれ同じ値となるから、サイン関数とコサイン関数の周期性を考慮して、サイン関数とコサイン関数により演算される応答関数に必要なROMデータのサイズを削減することができる。
【0080】
図11A及び図11Bには、サイン関数により演算された0度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図12A及び図12Bには、コサイン関数により演算された0度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。0度のXとYを入れ替えると90度の関係となるという、サイン関数とコサイン関数の周期性を考慮すると、12ワードが複数の窓位置XYで繰り返し出現するから、図12A中において太枠で示した12ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0081】
図13A及び図13Bには、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示し、図13C及び図13Dには、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図14A及び図14Bには、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示し、図14C及び図14Dには、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。サイン関数とコサイン関数の周期性を考慮すると、24ワードが複数の窓位置XYで繰り返し出現するから、図13A及び図14A中に太枠で示した合計24ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0082】
サイン関数及びコサイン関数からなる応答関数の残りの4方向に関しては、当初、0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度を想定していた(図4Cを参照のこと)。ところが、これらの想定角度では、サイン関数並びにコサイン関数の周期性が見出せず、上記と同様のデータ削減を行なうことができない。そこで、これらの想定角の近傍で、サイン関数とコサイン関数の周期性を考慮してデータを削減することができる、27度、63度、117度、153度の角度に近似して、これら4方向に対してサイン関数及びコサイン関数からなる応答関数で代用することにした。
【0083】
27度、63度、117度、153度の角度はそれぞれ下式で求めることができ、サイン関数とコサイン関数の間で周期性があることを理解できよう。
【0084】
【数7】
【0085】
図15A及び図15Bには、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。また、図16A及び図16Bには、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示している。サイン関数とコサイン関数の周期性を考慮すると、35ワードが複数の窓位置XYで繰り返し出現するから、図15A及び図16Aに太枠で示したそれぞれ35ワードのみが当該角度の応答関数を構成するために必要なデータとなる。
【0086】
このようにして、ガボア・フィルタを構成するフィルタ窓、及び8方向の応答関数に必要なデータを以下のように削減することができる。
【0087】
(1)ガウス関数により演算される24×24固定のフィルタ窓に必要なROMデータを78ワードとする。
(2)サイン関数及びコサイン関数により演算された0度と90度の方向に対する応答関数を構成するために必要なROMデータを12ワードとする。
(3)サイン関数及びコサイン関数により演算された45度と135度の方向に対する応答関数を構成するために必要なROMデータを24ワードとする。
(4)応答関数の残りの4方向となる22.5度、67.5度、112.5度、157.5度の各想定角に関してはサイン関数並びにコサイン関数の周期性が見出せないことから、サイン関数とコサイン関数の周期性のある27度、63度、117度、153度の角度に近似した応答関数で代用することで、これらの方向に対する応答関数を構成するために必要なROMデータをそれぞれ35ワードとする。
【0088】
これらの必要最小限となるワード数のROMデータをそれぞれガウスROM、0度及び90度サインROM、0度及び90度コサインROM、45度及び135度サインROM、45度及び135度コサインROM、27度63度117度153度サインROM、27度63度117度153度コサインROMに格納する。そして、アドレス作成部において、制御信号発生部の窓Yカウンタ並びに窓Xカウンタから出力される窓Y及び窓Xの制御信号を変換して、これらの各ROMのアドレスを作成することによって、ガウス関数から演算された値、並びに、サイン関数及びコサイン関数から演算された値を読み出すことができる。
【0089】
ガウスROM用アドレス作成部は、例えば図17に示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号からガウスROM上の該当アドレスを早見することができる。
【0090】
また、0度及び90度サインROM用アドレス作成部は、例えば図18A及び図18Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された0度及び90度方向の応答関数の値を格納した0度及び90度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、0度及び90度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から0度及び90度サインROM上の該当アドレスに変換することができる。
【0091】
【数8】
【0092】
また、0度及び90度コサインROMアドレス作成部は、例えば図19A及び図19Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された0度及び90度方向の応答関数の値を格納した0度及び90度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、0度及び90度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から0度及び90度コサインROM上の該当アドレスに変換することができる。
【0093】
【数9】
【0094】
また、45度及び135度サインROMアドレス作成部は、例えば図20A及び図20Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された45度及び135度方向の応答関数の値を格納した45度及び135度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、45度及び135度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から45度及び135度サインROM上の該当アドレスに変換することができる。
【0095】
【数10】
【0096】
また、45度及び135度コサインROMアドレス作成部は、例えば図21A及び図21Bに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された45度及び135度方向の応答関数の値を格納した45度及び135度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、45度及び135度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から45度及び135度コサインROM上の該当アドレスに変換することができる。
【0097】
【数11】
【0098】
また、27度63度117度153度サインROMアドレス作成部は、例えば図22A〜図22Dに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、サイン関数により演算された27度、63度、117度、153度の各方向の応答関数の値を格納した27度63度117度153度サインROM上の該当アドレスをそれぞれ早見することができる。あるいは、27度63度117度153度サインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から27度63度117度153度サインROM上の該当アドレスに変換することができる。
【0099】
【数12】
【0100】
また、27度63度117度153度コサインROMアドレス作成部は、例えば図23A〜図23Dに示すアドレス変換テーブルを参照することによって、窓Y及び窓Xの制御信号から、コサイン関数により演算された27度、63度、117度、153度の各方向の応答関数の値を格納した27度63度117度153度コサインROM上の該当アドレスをそれぞれ早見することができる。あるいは、27度63度117度153度コサインROM用アドレス作成部は、次式に従って窓Y及び窓Xの制御信号から27度63度117度153度コサインROM上の該当アドレスに変換することができる。
【0101】
【数13】
【0102】
ここで、サイン関数により演算された値のアドレス割り当てとコサイン関数により演算された値のアドレス割り当てのROMのアドレスへの変換式は同じである。
【0103】
上述したように、82箇所のすべての特徴量抽出位置において40種類すべてのガボア・フィルタを適用する必要はなく、何種類のガボア・フィルタを適用するかは、特徴量抽出位置の場所{d0,d1,…,d81}に依存し、場所に応じてガボア・フィルタの種類とその数(ガボア・ジェットの要素数)が異なる。このような操作を実現するために、ガボア・フィルタ適用部142内には、フィルタ種別SRAMとセレクタが配設される。まず、入力画のすべての特徴量抽出位置{d0,d1,…,d81}において、それぞれ適用されるフィルタの種類をフィルタ種別SRAMに書き込む。すなわち、
【0104】
特徴量抽出位置0(pos0)では、pos00,pos01,…,pos027,
特徴量抽出位置1(pos1)では、pos10,pos11,…,pos011,
【0105】
制御信号発生部から入力される特徴量抽出位置のアドレスに応じて、該当位置において適用されるフィルタの位置がフィルタ種別SRAMから読み出される。そして、セレクタは、当該特徴量抽出位置において必要なフィルタ係数(サイン関数及びコサイン関数から演算された応答関数)を上述した各係数格納ROMから選択して、後段のフィルタ演算部に渡す。
【0106】
図6に示したガボア・フィルタ適用部142では、フィルタ演算部は4並列で構成されている。但し、並列数は4個に限定される訳ではなく、フィルタ適用数や処理速度、ハードウェア規模を考慮して決定される設計事項である。
【0107】
フィルタ演算部では、SDRAM15から画像SRAMに取り込まれた処理対象画像(入力画)に対して、ガボア・フィルタを適用する。具体的には、特徴量抽出位置に応じてセレクタで選択されたサインROM及びコサインROMから得られた値と、ガウスROMから得られた値を乗算して各ガウス・フィルタ係数を算出し、24×24の各ガウス・フィルタ係数と処理対象画像の24×24画素との畳み込み演算を行ない、それぞれの結果を合成する。本実施形態では、合成を絶対値和で近似している。合成の精度が必要な場合には、両者の2乗和のルート演算を行なう。
【0108】
なお、図6に示したガボア・フィルタ適用部142の構成では、フィルタ種別の選択肢が限定されてしまうという問題がある。何故ならば、サイン関数及びコサイン関数により演算して得た応答関数に関して、27度と63度と117度と153度(ある周波数に限定する)でROMデータを共有しているため、これらの演算をフィルタ演算の並列化を利用して同時実行することができないからである。したがって、この4種のフィルタしか適用しない場合は4並列化の中で3並列分のハードウェア資源が無駄になる。
【0109】
この問題を解決するために、図24に示すように、それぞれの角度のROMデータを独立に割り当てた構成としてもよい。これにより、ROMデータの容量は大きくなるが、任意のフィルタ種類構成を最小の時間で処理可能に実現することができる。
【産業上の利用可能性】
【0110】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0111】
本明細書では、顔認識装置に適用した実施形態を中心に説明してきたが、本発明の要旨はこれに限定されるものではない。ガボア・フィルタは、人間の視覚細胞にはある特定の方位に対して選択性を持つ細胞が存在するということに着眼し、方向選択性を持つ複数のフィルタで構成される空間フィルタであり、具体的には窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現される。ガボア・フィルタで画像を畳み込むことで、ガボア・フィルタと方向の一致する輪郭線だけを抽出することができる。本発明は、ガボア・フィルタを用いてパターン認識やその他のさまざまな画像処理を行なう装置に好適に適用することができる。
【0112】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【図面の簡単な説明】
【0113】
【図1】図1は、本発明の一実施形態に係る顔認識システムの全体構成を模式的に示した図である。
【図2】図2は、顔認識器14の構成例を示した図である。
【図3】図3は、検出された顔画像を、縮小、シフト、回転変換して顔認識に必要な顔画像に正規化する様子を示した図である。
【図4A】図4Aは、24×24画素固定で構成されるガウス関数からなるフィルタ窓を示した図である。
【図4B】図4Bは、サイン関数又はコサイン関数からなる応答関数を示した図である。
【図4C】図4Cは、図4Bに示した応答関数に図4Aに示したフィルタ窓をかけて得られるガボア・フィルタを示した図である。
【図4D】図4Dは、22.5度ずつずらした8方向の応答関数についてそれぞれフィルタ窓をかけて得られる8通りのガボア・フィルタを示した図である。
【図4E】図4Eは、5種類の周波数fの応答関数について、同様に8方向の角度θでフィルタ窓をかけて得られる40種類のガボア・フィルタを示した図である。
【図5】図5は、正規化された60×66画素の顔画像に設けられた82箇所の特徴量抽出位置を示した図である。
【図6】図6は、ガボア・フィルタ適用部142の構成例を示した図である。
【図7】図7は、制御信号発生部の内部構成を示した図である。
【図8】図8は、図7に示した制御信号発生部が出力する制御信号を示した図である。
【図9】図9は、フィルタ窓の構成を示した図である。
【図10A】図10Aは、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示した図である。
【図10B】図10Bは、ガウス関数により演算される24×24固定のフィルタ窓の位置XY毎の値を示した図である。
【図11A】図11Aは、サイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図11B】図11Bは、サイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図12A】図12Aは、コサイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図12B】図12Bは、コサイン関数により演算された0度と90度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13A】図13Aは、サイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13B】図13Bは、サイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13C】図13Cは、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図13D】図13Dは、サイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14A】図14Aは、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14B】図14Bは、コサイン関数により演算された45度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14C】図14Cは、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図14D】図14Dは、コサイン関数により演算された135度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図15A】図15Aは、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図15B】図15Bは、サイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図16A】図16Aは、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図16B】図16Bは、コサイン関数により演算された27度の方向に対する応答関数の24×24の各窓位置XYにおける値を示した図である。
【図17】図17は、窓Y及び窓Xの制御信号からガウスROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図18A】図18Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された0度方向の応答関数の値を格納した0度サイン及び90度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図18B】図18Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された90度方向の応答関数の値を格納した0度及び90度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図19A】図19Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された0度方向の応答関数の値を格納した0度及び90度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図19B】図19Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された90度方向の応答関数の値を格納した0度及び90度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図20A】図20Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された45度方向の応答関数の値を格納した45度及び135度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図20B】図20Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された135度方向の応答関数の値を格納した45度及び135度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図21A】図21Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された45度方向の応答関数の値を格納した45度及び135度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図21B】図21Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された135度方向の応答関数の値を格納した45度及び135度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22A】図22Aは、窓Y及び窓Xの制御信号から、サイン関数により演算された27度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22B】図22Bは、窓Y及び窓Xの制御信号から、サイン関数により演算された63度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22C】図22Cは、窓Y及び窓Xの制御信号から、サイン関数により演算された117度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図22D】図22Dは、窓Y及び窓Xの制御信号から、サイン関数により演算された153度方向の応答関数の値を格納した27度63度117度153度サインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23A】図23Aは、窓Y及び窓Xの制御信号から、コサイン関数により演算された27度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23B】図23Bは、窓Y及び窓Xの制御信号から、コサイン関数により演算された63度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23C】図23Cは、窓Y及び窓Xの制御信号から、コサイン関数により演算された117度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図23D】図23Dは、窓Y及び窓Xの制御信号から、コサイン関数により演算された153度方向の応答関数の値を格納した27度63度117度153度コサインROMのアドレスを早見するためのアドレス変換テーブルの構成例を示した図である。
【図24】図24は、ガボア・フィルタ適用部142の変形例を示した図である。
【符号の説明】
【0114】
1…顔認識システム
11…画縮小器
12…顔検出器
13…両目位置検出器
14…顔認識器
15…メモリ
141…顔画像入力部
142…ガボア・フィルタ適用部
143…類似度算出部
144…一致判定部
【特許請求の範囲】
【請求項1】
入力顔画像と登録顔画像の認識を行なう顔認識装置であって、
認識処理の対象となる顔画像を入力する顔画像入力手段と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手段と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手段と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段を備え、該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識装置。
【請求項2】
前記フィルタ窓ROM、前記のフィルタの角度毎のサインROM及びコサインROMは、ガウス関数の特性、並びにサイン関数とコサイン関数の周期性に基づいて、冗長性のない最小限のROMデータを格納し、
特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段をさらに備え、
前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求める、
ことを特徴とする請求項1に記載の顔認識装置。
【請求項3】
前記ガボア・フィルタ適用手段は、8方向の角度からなるガボア・フィルタを適用するために、
サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備えるとともに、
0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角を、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度コサインROMを備え、
前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納する、
ことを特徴とする請求項2に記載の顔認識装置。
【請求項4】
各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、
特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段と、
をさらに備えることを特徴とする請求項2に記載の顔認識装置。
【請求項5】
入力顔画像と登録顔画像の認識を行なう顔認識方法であって、
認識処理の対象となる顔画像を入力する顔画像入力ステップと、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用ステップと、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算ステップと、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを備え、
前記ガボア・フィルタ適用ステップでは、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出ステップを備え、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識方法。
【請求項6】
窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と空間データとの畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用装置であって、
ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、
サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、
コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、
前記の各ROMから読み出される、ガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値とを乗算して、ガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段と、
該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数によって畳み込み演算を行なう畳み込み演算手段と、
を具備することを特徴とするガボア・フィルタ適用装置。
【請求項7】
前記フィルタ窓ROM、前記のフィルタの角度毎のサインROM及びコサインROMは、ガウス関数の特性、並びにサイン関数とコサイン関数の周期性に基づいて、冗長性のない最小限のROMデータを格納し、
空間データの処理対象となる特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段をさらに備え、
前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求める、
ことを特徴とする請求項6に記載のガボア・フィルタ適用装置。
【請求項8】
サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備えるとともに、
0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角を、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度コサインROMを備え、
前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納する、
ことを特徴とする請求項7に記載のガボア・フィルタ適用装置。
【請求項9】
各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、
特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段と、
をさらに備えることを特徴とする請求項7に記載のガボア・フィルタ適用装置。
【請求項10】
入力顔画像と登録顔画像の認識を行なうための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
認識処理の対象となる顔画像を入力する顔画像入力手順と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手順と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手順と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手順を実行させ、
前記ガボア・フィルタ適用手順では、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手順を実行して、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とするコンピュータ・プログラム。
【請求項1】
入力顔画像と登録顔画像の認識を行なう顔認識装置であって、
認識処理の対象となる顔画像を入力する顔画像入力手段と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手段と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手段と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手段を備え、
前記ガボア・フィルタ適用手段は、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段を備え、該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識装置。
【請求項2】
前記フィルタ窓ROM、前記のフィルタの角度毎のサインROM及びコサインROMは、ガウス関数の特性、並びにサイン関数とコサイン関数の周期性に基づいて、冗長性のない最小限のROMデータを格納し、
特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段をさらに備え、
前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求める、
ことを特徴とする請求項1に記載の顔認識装置。
【請求項3】
前記ガボア・フィルタ適用手段は、8方向の角度からなるガボア・フィルタを適用するために、
サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備えるとともに、
0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角を、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度コサインROMを備え、
前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納する、
ことを特徴とする請求項2に記載の顔認識装置。
【請求項4】
各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、
特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段と、
をさらに備えることを特徴とする請求項2に記載の顔認識装置。
【請求項5】
入力顔画像と登録顔画像の認識を行なう顔認識方法であって、
認識処理の対象となる顔画像を入力する顔画像入力ステップと、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用ステップと、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算ステップと、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定ステップを備え、
前記ガボア・フィルタ適用ステップでは、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出ステップを備え、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とする顔認識方法。
【請求項6】
窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と空間データとの畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用装置であって、
ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、
サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、
コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMと、
前記の各ROMから読み出される、ガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値とを乗算して、ガボア・フィルタ係数を算出するガボア・フィルタ係数算出手段と、
該ガボア・フィルタ係数算出手段によって算出されたガボア・フィルタ係数によって畳み込み演算を行なう畳み込み演算手段と、
を具備することを特徴とするガボア・フィルタ適用装置。
【請求項7】
前記フィルタ窓ROM、前記のフィルタの角度毎のサインROM及びコサインROMは、ガウス関数の特性、並びにサイン関数とコサイン関数の周期性に基づいて、冗長性のない最小限のROMデータを格納し、
空間データの処理対象となる特徴量抽出位置を前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROM上のアドレスに変換するアドレス変換手段をさらに備え、
前記ガボア・フィルタ係数算出手段は、前記アドレス変換手段によって特徴量抽出位置から変換されたアドレスに従って、前記フィルタ窓ROM、フィルタの角度毎のサインROM及びコサインROMからフィルタ窓の値並びにフィルタの角度毎の応答関数の値を読み出し、これらを乗算して該当する特徴量抽出位置におけるガボア・フィルタ係数を求める、
ことを特徴とする請求項6に記載のガボア・フィルタ適用装置。
【請求項8】
サイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度サインROMと、コサイン関数により演算された0度と90度の方向に対する応答関数の値を格納する0度及び90度コサインROMと、サイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度サインROMと、コサイン関数により演算された45度と135度の方向に対する応答関数の値を格納する45度及び135度コサインROMを備えるとともに、
0度と45度、45度と90度、90度と135度、135度と180度それぞれの中心角である22.5度、67.5度、112.5度、157.5度の各想定角を、サイン関数とコサイン関数の周期性を持つ近傍の27度、63度、117度、153度の角度に近似して、サイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度サインROMと、コサイン関数により演算された27度、63度、117度、153度の方向に対する応答関数の値を格納する27度67度117度153度コサインROMを備え、
前記の各ROMは、それぞれの角度のサイン関数又はコサイン関数から得られた値から重複を排除して、最小限のワード数からなるROMデータを格納する、
ことを特徴とする請求項7に記載のガボア・フィルタ適用装置。
【請求項9】
各特徴量抽出位置において適用されるフィルタの種類を記録するフィルタ種別記録手段と、
特徴量抽出位置毎に前記フィルタ種別記録手段における記録内容に従って前記の各ROMから該当するフィルタ係数を構成するためのフィルタ窓の値及び応答関数の値を選択的に読み出して前記ガボア・フィルタ係数算出手段に渡す選択手段と、
をさらに備えることを特徴とする請求項7に記載のガボア・フィルタ適用装置。
【請求項10】
入力顔画像と登録顔画像の認識を行なうための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータに対し、
認識処理の対象となる顔画像を入力する顔画像入力手順と、
前記の入力画像の特徴量抽出位置毎に、窓にガウス関数、周波数応答にサイン関数又はコサイン関数を基底とするガボア関数によって空間表現されるガボア・フィルタの応答関数の周波数と角度を切り替えながら、該ガボア・フィルタ係数と画素の畳み込み演算を行なって、フィルタの種類に応じた個数のスカラ値からなるガボア・ジェットを求めるガボア・フィルタ適用手順と、
特徴量抽出位置毎に、入力顔画像のガボア・ジェットと登録顔画像のガボア・ジェットの類似度を演算し、複数の特徴量抽出位置における類似度の集合からなる類似度ベクトルを求める類似度演算手順と、
該類似度ベクトルを基に入力顔画像と登録顔画像が一致するか否かを判定する一致判定手順を実行させ、
前記ガボア・フィルタ適用手順では、ガウス関数を演算して得られるフィルタ窓の値を格納するフィルタ窓ROMと、サイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のサインROMと、コサイン関数を演算して得られる応答関数の値を格納するフィルタの角度毎のコサインROMを用い、これらのROMから読み出されるガウス関数を演算して得られる値とサイン関数並びにコサイン関数を演算して得られる値を乗算してガボア・フィルタ係数を算出するガボア・フィルタ係数算出手順を実行して、該算出されたガボア・フィルタ係数による前記の入力顔画像の畳み込み演算を行なう、
ことを特徴とするコンピュータ・プログラム。
【図1】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12A】
【図12B】
【図13A】
【図13B】
【図13C】
【図13D】
【図14A】
【図14B】
【図14C】
【図14D】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【図18A】
【図18B】
【図19A】
【図19B】
【図20A】
【図20B】
【図21A】
【図21B】
【図22A】
【図22B】
【図22C】
【図22D】
【図23A】
【図23B】
【図23C】
【図23D】
【図24】
【図4A】
【図4B】
【図4C】
【図4D】
【図4E】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12A】
【図12B】
【図13A】
【図13B】
【図13C】
【図13D】
【図14A】
【図14B】
【図14C】
【図14D】
【図15A】
【図15B】
【図16A】
【図16B】
【図17】
【図18A】
【図18B】
【図19A】
【図19B】
【図20A】
【図20B】
【図21A】
【図21B】
【図22A】
【図22B】
【図22C】
【図22D】
【図23A】
【図23B】
【図23C】
【図23D】
【図24】
【図4A】
【図4B】
【図4C】
【図4D】
【図4E】
【公開番号】特開2008−152530(P2008−152530A)
【公開日】平成20年7月3日(2008.7.3)
【国際特許分類】
【出願番号】特願2006−339748(P2006−339748)
【出願日】平成18年12月18日(2006.12.18)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成20年7月3日(2008.7.3)
【国際特許分類】
【出願日】平成18年12月18日(2006.12.18)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]