以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係る画像処理装置11の構成例を示すブロック図である。
画像処理装置11は、人物の撮像画像を用いて、画像認識処理を実行し、その人物が登録された人物か否かを判定する処理を実行することができる。
画像処理装置11は、後述するガボアフィルタによる処理を施すことによって画像を認識し、認識対象の画像が、登録された人物の顔を含むものであるか否かを判定する処理を実行する。
画像処理装置11は、画像取得部31、顔検出部32、顔画像変換部33、顔認識処理部34、顔登録データベース35、および、認識結果出力部36から構成されている。
なお、ここでは、画像処理装置11に顔登録データベース35が含まれるものとして説明するが、顔登録データベース35は、例えば、図示せぬネットワークなどを介して、画像処理装置11に接続されているような構成とすることも可能である。ネットワークなどを介して顔登録データベース35が接続されることにより、複数の画像処理装置11で1つの顔登録データベース35を共有することが可能となる。
画像取得部31は、例えば、カメラなどを含む構成とされ、人を撮像する機能を有するか、または、外部に備えられたカメラ、もしくは、他の装置から、撮像された人の画像を取得する。また、画像取得部31は、認識対象となる人物の顔の部分を含む撮像画像を取得する。画像取得部31により取得される画像は、人の顔の部分が少なくとも含まれる画像である。画像取得部31に取得された画像は、顔検出部32に供給される。
顔検出部32は、画像取得部31から供給された画像を解析することにより、人の顔の部分(顔の位置と大きさ)を抽出し、抽出された人の顔の部分の画像(以下、顔画像と称する)を検出する。画像取得部31から供給される画像は、認識対象のユーザの顔を含む画像であるが、例えば、全身像が撮影されているような画像など、顔の画像だけでない場合もある。顔検出部32は、そのような画像から、人の顔の領域を判断し、人の顔の部分に対応する画像を抽出する。検出された顔画像は、顔画像変換部33の顔特徴点検出部51および顔アライメント部52に供給される。
顔画像変換部33は、顔特徴点検出部51、および、顔アライメント部52から構成される。
顔特徴点検出部51は、顔検出部32から供給された顔画像とから、後述する顔アライメント部52によるモーフィング処理に用いられるアライメント用特徴点を検出する。アライメント用特徴点は、例えば、目、鼻、口といった人の顔の中のでも特徴となる部分、すなわち、顔特徴部分であってもよいし、顔特徴部分のみならず、もっと詳細に部分分けして特徴点を検出するようにしても良い。
顔特徴点検出部51は、例えば、AAM(Active Appearance Models)と称される方法などを適用して、特徴位置を検出することが可能である。
顔アライメント部52は、顔検出部32から供給された顔画像、および、顔特徴点検出部51により検出されたアライメント用特徴点を解析することにより、抽出された顔が、どの方向を向いているかを検出する。そして、顔アライメント部52は、顔特徴位置が基準位置にくるように、アフィン変換などのモーフィング処理を行う。これにより、例えば正面からみた顔の画像である場合には、左右の目が水平な位置に所定の距離はなれて位置し、左右の目の中間の下方に鼻が位置し、その鼻よりさらに下方に口が位置するようにモーフィング処理が行われる。従って、顔検出部32から供給された顔画像が正面を向いていないものであっても、正面を向いた場合の顔画像と略同様なものに変換されるのである。その結果、画像取得部31により取得された顔画像が正面を向いていない場合であっても識別が可能になる。
顔認識処理部34は、局所特徴計算部71、および顔認識部74を含んで構成される。
抽出された特徴点が基準位置に直された顔画像は、顔認識処理部34の局所特徴計算部71に供給される。局所特徴計算部71は、供給された顔画像の複数の特徴点における局所的な特徴量を計算する。局所特徴量を求めるための特徴点は、顔特徴点検出部51において検出されたアライメント用特徴点と同一であっても良いし、顔特徴点検出部51において検出されたアライメント特徴点とは全く異なる複数の点であっても良い。局所特徴計算部71は、ガボアフィルタ(Gabor Filter)で構成される。
ここで、ガボアフィルタの処理(ガボアフィルタリング)について説明する。最初に、従来のガボアフィルタの処理について説明する。
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して反応する細胞と、水平の線に反応する細胞で構成される。ガボアフィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
ガボアフィルタは、ガボア関数によって空間表現される。ガボア関数は、次の式(1)により表される。
式(1)において、ベクトル記号が付されたxは、入力画像の特徴点の座標位置を表す要素(x,y)からなる2次元のベクトルとされる。なお、特徴点の座標位置は、例えば、顔特徴点検出部51において検出されたアライメント用特徴点の座標位置とされる。
また、式(1)においてσは、ガボア関数の形状、すなわちガボアフィルタの形状を決めるパラメータとされる。
さらに、式(1)におけるkjは、周波数パラメータ、方向パラメータから定まる局所特徴量を表すものであって、実際には要素(kjx,kjy)を有する2次元ベクトルであり、式(2)により表される。
従って、式(1)に示されるガボア関数は、コサイン(またはサイン)成分からなるキャリアに2次元ガウス分析状のエンベローブ(ガウス窓関数)が乗じられることで構成されるものである。
なお、kνは、ガボアフィルタの周波数に対応する値とされ、周波数パラメータνにより変化する。また、φμは、ガボアフィルタの方向に対応する値とされ、方向パラメータμにより変化する。
例えば、周波数パラメータνを5通り設定し、方向パラメータμを8通り設定することにより、40(=5×8)個のガボアフィルタが得られることになる。式(1)、式(2)におけるパラメータjは、上述した40個のガボアフィルタのいずれかを特定するものであり、式(3)により表される。
ガボアフィルタの処理における特徴量の計算においては、それぞれ異なる方向および周波数の複数のガボアフィルタを用いて、それぞれの特徴量を計算する。ここでは、8種類の方向と5通りの周波数を採用して、合計40個のガボアフィルタを用いて、それぞれの特徴点の特徴量を計算する処理を行うものとする。
なお、式(1)の演算結果は、後述する式(4)により特徴量ベクトル(Gabor Jet)を得るときに必要となるので、例えば、予め演算されてメモリなどに保存されるようにしてもよい。すなわち、1つの特徴点を中心とする所定の範囲内の画素のそれぞれについて、式(1)の演算結果をメモリなどに保存するようにしてもよい。
例えば、式(1)において、ベクトル記号が付されたxを、(x-32,y-32)乃至(x+32,y+32)のそれぞれに置き換えて得られた演算結果のそれぞれを、予めメモリなどに保存しておくようにしてもよい。このようにすることで、後述する式(4)での積分の演算を高速に行うことができる。
図2は、40個のガボアフィルタを、スケールおよび方向を基にして並べた場合の一例を示すものである。なお、このガボアフィルタは、従来のガボアフィルタであり、本発明のガボアフィルタについては、図9を参照して後述する。図2の中の40個の個矩形のそれぞれが、ガボアフィルタを可視化したものとされる。ここでは、図中それぞれの矩形の面積に対応する画像の画素位置に乗じられるガボアフィルタのフィルタ係数を色分けすることでガボアフィルタを可視化している。図中白く見える部分は、フィルタ係数値が高い部分であり、図中黒く見える部分は、フィルタ係数値の低い部分である。
図2においては、図中、縦軸が周波数方向の変化量を示し、上部ほど周波数は大きく(高く)、下部ほど周波数は小さい(低い)。そして、図中、横軸がフィルタ方向(角度)の変化量を示し、一番左が0度に対応し、右に行くほど角度が増え、中央部分が90度に対応し、一番右が最も180度に近い角度に対応する。すなわち、図2のフィルタの配列において、一番左の列のフィルタと一番右の列のフィルタとは、角度の変化として連続するフィルタである。
上述した周波数パラメータνにより図2の縦軸上の位置が特定され、方向パラメータμにより図2の横軸上の位置が特定されることになる。
例えば、人間の顔の中で、目の付近の特徴量を計算する処理には、周波数が大きく、角度が0度、180度付近となるフィルタが適している。また、例えば、人間の顔の中で、鼻の付近の特徴量を計算する処理には、周波数が小さく、角度が90度付近となるフィルタが適している。
ガボアフィルタのレスポンスは、j番目のガボアフィルタの結果(Gabor Feature)をJjとし、入力画像の濃淡値をIとすると、式(4)で表される。なお、式(4)においては、特徴点がベクトル記号の付されたxiとして表され、例えばiは、1からMまでの整数とされる。
すなわち、式(4)では、特徴点の周辺の所定の範囲(例えば、特徴点の画素から垂直および水平方向に±32画素の範囲)を積分区間とする畳み込み積分が行なわれるのである。1つの特徴点に対して、40個のガボアフィルタを用いると、40個の特徴量が得られる。換言すれば、1つの特徴点に対して、40個のパラメータ(要素)を有する特徴量ベクトル(Gabor Jet)を得ることができる。
なお、上述したように、例えば、式(1)において、ベクトル記号が付されたxを、(x-32,y-32)乃至(x+32,y+32)のそれぞれに置き換えて得られた演算結果のそれぞれを、予めメモリに保存しておけば、式(4)での積分の演算を高速に行うことができる。
ところで、式(1)を参照して上述したガボア関数は、DC-Free特性を満たすようになされている。DC-Free特性を持つ画像の特徴量とは、画像のDC成分に影響されない特徴量のことである。このような特徴量を用いると、例えば、同じ被写体をカメラのホワイトバランスや絞りなどを変えて撮像した画像Aと画像Bがある場合、画像Aと画像Bが同一の被写体の画像であることを認識できるようにする特性が向上する。すなわち、DC-Free特性を有するガボアフィルタは、画像の色味、撮像時の光量などに影響されにくい特徴を抽出することができるのである。
式(1)においては、「−exp(-σ2/2)」という項が含まれることにより、式(1)がDC-Free特性を満たすようになされている。上述したように、式(1)においてパラメータσは、ガボアフィルタの形状を決めるパラメータとされ、従来のガボアフィルタの処理では、Gabor Jetを計算する際、パラメータjの値に係らず共通の値を用いていた。すなわち、上述した式(4)において、パラメータjを変化させることにより40個のガボアフィルタに対応する40個の特徴量が演算されるが、それら40の演算においてパラメータσの値は全て同じ値を用いていた。
例えば、文献「Face Recognition by Elastic Bunch Graph Matching,von der Malsburg」などに開示されている方式においては、パラメータσ=2πとされている。
また、上述したように、式(1)は、コサイン(またはサイン)成分からなるキャリアにガウス窓関数が乗じられることで構成されている。式(1)における「(kj 2/σ2)exp(−(kj 2x2/2σ2))」は、ガウス窓関数であり、このガウス窓関数の幅はσ/kとして求めることができる。すなわち、式(1)におけるガウス窓関数の幅はガボアフィルタの周波数に反比例する。
このガウス窓関数の幅が大きい場合、式(4)に示される特徴量ベクトルの演算において、大きな積分区間を取る必要がある。
例えば、図3に示されるようなコサイン(またはサイン)成分からなるキャリアに、図4に示されるようなガウス窓関数が乗じられる場合を考える。なお、図3と図4において、図中横軸が、例えば、画素位置に対応し、図中縦軸が、例えば、フィルタの係数値に対応する。
図3に示される波形の周波数は、上述したガボアフィルタの周波数に対応する。ガウス窓関数の幅は、図4にwとして示されている。この場合、ガボアフィルタの特性は、図5に示される波形により表されることになる。図5においては、図中中央のガウス窓関数の値が高くなる部分において振幅が大きく、図中左右両端付近のガウス窓関数の値が低くなる部分において振幅が小さくなる波形が示されている。
図2に示されるガボアフィルタにおいては、40個のフィルタの全てにおいて画素の色が白から黒に変化する4つの波(縞)を観察することができる。このように、ガボアフィルタは、ガウス窓関数の減衰に応じて振幅が変化する波形に対応する形状となるのである。
いま、図3より周波数の低い図6に示されるようなコサイン(またはサイン)成分からなるキャリアを考える。上述したように、式(1)におけるガウス窓関数の幅はガボアフィルタの周波数に反比例するから、図6のキャリアの周波数に対応するガウス窓関数は、図7に示されるように、幅wの大きいものとなる。従って、ガボアフィルタの周波数が低い場合、図中横軸を充分に大きくとらないと、ガウス窓関数の減衰に応じて振幅が変化する波形を観察することができない。つまり、周波数が低い場合、図7に示されるように、図中横軸(例えば、画素位置)を大きくとらないと、ガウス窓関数が充分に減衰しない。
従って、ガボアフィルタの周波数が低い場合、入力画像の面積も充分に大きいものとしなければ、適切に特徴量を得ることができないのである。
すなわち、従来のガボアフィルタでは、低周波な部分(例えば、人の顔の中の鼻の部分など)の特徴量を計算する際には、式(4)の演算において、特徴点の周辺の多数の画素を用いる必要がある。すなわち、式(4)の演算における積分区間を大きくする必要がある。
しかしながら、式(4)により特徴量ベクトルを演算するにあたり、上述のように大きな積分区間を必要とする畳み込み演算を行う際には以下のような問題点がある。
第1に、式(4)の積分区間に対応して十分大きな面積の入力画像を用意する必要がある。例えば、図2に示されるフィルタにおいて、真にDC-Free特性を満たすようにするためには、周波数の低い(小さい)図中下側のフィルタの面積をより大きいものとする必要がある。
第2に、例えば、式(1)をあらかじめ計算してメモリに保存しておく場合、大きなメモリ領域を必要とする。すなわち、真にDC-Free特性を満たすようにするためには、周波数の低いフィルタの面積をより大きいものとする必要があるので、当然に積分区間も大きくなる。その結果、例えば、式(4)において、添え字のjが周波数の低いガボアフィルタを表すものである場合、より多数の演算結果をメモリに保存しておかなければ、式(4)での積分の演算を高速に行うことができない。
例えば、式(4)において、添え字のjが周波数の高いガボアフィルタを表すものである場合、式(1)のベクトル記号が付されたxを、例えば、(x-32,y-32)乃至(x+32,y+32)のそれぞれに置き換えて得られた演算結果のそれぞれを、予めメモリに保存しておけばよい。しかし、添え字のjが周波数の低いガボアフィルタの場合、式(1)のベクトル記号が付されたxを、例えば、(x-160,y-160)乃至(x+160,y+160)のそれぞれに置き換えて得られた演算結果のそれぞれを保存しておかなければ、式(4)での積分の演算を高速に行うことができない。
第3に、積分区間が大きいので、例えば、顔と背景の境界付近の特徴量抽出する際には、背景の領域の特徴量が多く含まれてしまう。
第4に、式(4)の演算の計算量が入力画像の面積に比例して増加する。すなわち、第2の問題点においても述べたように、積分区間が大きくなると、演算量も増加するのである。
このような問題点があるため、従来のガボアフィルタの処理において、実際に計算する際にはDC-Free特性が満たされないことを許容した上で、積分区間を制限して畳み込み演算をすることが多い。例えば、本来、低い周波数のガボアフィルタには、十分大きな面積の入力画像を用意する必要があるが、実際には、高い周波数のガボアフィルタの入力画像と面積が変わらない入力画像が用いられている。しかし、このような場合には照明変化に対するロバスト性が低下することになる。
そこで、本発明においては、積分区間を制限してもDC-Free特性を満たすことができるようにする。
上述したように従来のガボアフィルタの処理においては、式(1)においてパラメータσの値を一定(例えば、2π)としていたが、本発明においては、パラメータσの値を可変とする。本発明では、パラメータσの値を、周波数パラメータνの関数で表すものとし、式(5)により求めるものとする。
式(5)において、ν0は、式(4)の演算における積分区間によって決まる定数とされる。
本発明のガボアフィルタの処理では、上述した式(1)に替えて、式(6)を採用する。なお、式(6)は、式(1)に、式(2)と式(5)を代入することにより得られるものである。
なお、式(1)は、パラメータσの値によらずDC-Free特性を満たすため、式(6)もDC-free特性を満たすことになる。
式(6)においては、ガウス窓関数の幅が2の(-(ν-ν0)/2)乗となり、ガボアフィルタの周波数によらず、一定幅となる。従って、積分区間内でガウス窓関数を十分減衰させるようにν0を適切な値に設定すれば、任意の積分区間で周波数の大きさによらずDC-free特性を満たすガボアフィルタを構成することが可能となる。
本発明では、式(6)で示されるψj(x)を、式(4)の演算に用いることにする。そして、本発明を適用した画像処理装置11の局所特徴計算部71は、式(6)で示されるψj(x)を、式(4)の演算に用いて得られる特徴量を出力する。従って、例えば、式(4)での積分の演算を高速に行うようにするために、1つの特徴点を中心とし、積分区間に対応する所定の範囲内の画素のそれぞれについて、式(6)の演算結果をメモリなどに保存するようにしてもよい。積分区間は、例えば、画像処理装置11のユーザが任意に設定することが可能であり、設定された積分区間に対応して、上述した式(5)、式(6)の定数ν0の値が決まることになる。
図8と図9は、従来のガボアフィルタと、本発明を適用したガボアフィルタとの違いを説明する図である。ここでは、8種類の方向と5通りの周波数のコサイン・サインのフィルタを採用して、合計80個のガボアフィルタが用意されている場合を例として説明する。図8と図9においては、図中80(=8×10)個の矩形のそれぞれが、ガボアフィルタを表している。
図8は、従来のガボアフィルタの例を示す図であり、図9は、本発明を適用したガボアフィルタの例を示す図である。ここでは、図中それぞれの矩形の面積に対応する画像の画素位置に乗じられるガボアフィルタのフィルタ係数を色分けすることでガボアフィルタを可視化している。図中白く見える部分は、フィルタ係数値が高い部分であり、図中黒く見える部分は、フィルタ係数値の低い部分である。
また、図8と図9においては、図中、縦軸が周波数方向の変化量を示し、上部ほど周波数は大きく、下部ほど周波数は小さい。そして、図中、横軸がフィルタ方向(角度)の変化量を示し、一番左が0度に対応し、右に行くほど角度が増え、中央部分が90度に対応し、一番右が最も180度に近い角度に対応する。
図8の場合、図中下側の周波数の低いガボアフィルタにおいては、画素の色が白から黒に変化する波が、矩形の領域からはみ出している。一方、図9の場合、図中下側の周波数の低いガボアフィルタにおいても、画素の色が白から黒に変化する波が、矩形の領域からはみ出していない。このように、本発明を適用した図9のガボアフィルタは、DC-Free特性を満たすとともに、低い周波数でも積分区間を大きくとる必要がないのである。
図1に戻って、局所特徴計算部71により算出された特徴量は、顔認識部74に供給される。
顔認識部74は、局所特徴計算部71により算出された特徴量ベクトルと、顔登録データベース35に登録されている登録顔画像データを比較、すなわち、相関係数を計算し、登録されている人物と一致するか否かを判断し、判断結果を認識結果出力部36に供給する。
顔登録データベース35は、登録されている人物の認識に必要な特徴量の情報が登録されている。すなわち、顔登録データベース35には、登録されている人物の顔画像の特徴点における全てのGabor Jetが登録される。
顔登録データベース35に登録されている特徴量のデータ(登録顔画像データ)は、図1の画像取得部31乃至局所特徴計算部71の処理が施されることにより、取得され、登録されるデータとされる。あるいはまた、画像取得部31乃至局所特徴計算部71の処理が施されて得られるデータと同様のデータであれば、外部から取得されて登録されるデータであってもよい。
認識結果出力部36は、顔認識部74から供給された判断結果を、例えば、ブザー音、テキスト表示、LED点灯などによって外部に通知したり、判断結果を外部の装置に出力する。具体的には、例えば、認識結果出力部36は、例えば、ディスプレイなどを含んで構成されるものとしても良く、判定結果を、メッセージなどの形式で表示するものとしてもよい。
例えば、入力された画像に含まれる顔画像と一致する登録顔画像が、顔登録データベース35に登録されていた場合、その顔画像の人物の名前などの情報が出力されるようにすることができる。例えば、一致していると判定された登録顔画像に関連付けられている人の名前などの情報が顔登録データベース35から読み出され、その名前などの情報が、認識結果出力部36に、判定結果として出力される。
また、入力された画像に含まれる顔画像と一致する登録顔画像が顔登録データベース35に登録されていなかった場合、認識結果出力部36に、登録されていないかったことを示す情報が出力されるようにすることができる。例えば、「未登録の人物です」といったメッセージが、判定結果として出力される。
このようにして、画像処理装置11は、特徴量を比較することにより、得られた人の顔画像が登録されている人の顔画像と一致するか否かの識別を行う。
次に、図10のフローチャートを参照して、本発明の画像処理装置11による認識処理の例について説明する。
ステップS101において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS102において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS103において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行い、正面から撮像された場合の顔画像に対応するように変換する。変換された顔画像は、局所特徴計算部71に供給される。
ステップS104において、局所特徴計算部71は、例えば、図9を参照して上述したような、ガボアフィルタ(Gabor Filter)を用いて、局所特徴量を算出する。このとき、上述したように、本発明では、式(6)で示されるガボアカーネルを、式(4)の演算に用いて特徴量ベクトルが演算される。
ステップS105において、顔認識部74は、顔登録データベース35から、登録顔の特徴量を読み出す。
ステップS106において、顔認識部74は、相関係数を計算する。このとき、顔認識部74は、局所特徴計算部71から供給された特徴量ベクトルと、顔登録データベース35から読み出された登録顔の特徴量ベクトルとの相関係数を計算する。
ステップS107において、認識結果出力部36は、顔認識部74から供給された計算結果に基づいて、対象物体の有無の認識結果を出力する。例えば、認識しようとする対象物体(例えば、顔登録データベース35から読み出された登録顔)が入力画像に含まれているか否かを表す認識結果が出力される。
ところで、特徴量ベクトルを構成するGabor Jetは、様々な周波数及び方向パラメータを持つものが用意されている。しかし、特に顔画像の特徴を求める場合には、特徴点の位置によって特徴を記述するのに必要な周波数及び方向パラメータは異なるため、それぞれの特徴点では不要なパラメータが存在する可能性がある。
そして、このような不要なパラメータから求められたGabor Featureは、一般的にその特徴点の局所特徴と無相関な値を取る可能性が高いため、それらを含む特徴量ベクトル間で相関係数を求める場合に、得られる結果に悪影響を及ぼす可能性がある。
また、ある特徴点の局所特徴が複数の独立した要因(例えば、表情、個人性、めがね等)で表現されている場合、Gabor Jetの全てから構成される特徴量ベクトル間の相関値では、それらの要因の独立な相関を評価することが不可能である。
不要なパラメータではないもの、すなわち、特徴点により必要な周波数帯域および方向は、連続した範囲内にあると仮定することができる。そこで、全ガボアフィルタをスケール、方向毎に並べた図2のような特徴次元から、例えば、図11に示される矩形131、矩形132、矩形133などように、任意の位置、大きさの矩形領域が選択されるようにしてもよい。このように、例えば、特徴点に応じて特徴量ベクトルの要素(以下、適宜局所特徴量という)の組み合わせが決められるようにすると、顔画像の特徴を求めるにあたって好適である。
このようにして、ガボアフィルタを、スケール、方向毎に並べた特徴次元から任意の位置、大きさの矩形領域を選択するものとすると、その組み合わせは、最高でも、5C2×8P2=560通りとなり、合理的な数での特徴次元選択が可能になる。また、特徴点により必要な周波数帯域および方向が、組み合わせとして選択された矩形領域内にある場合、換言すれば、局所特徴とは無相関なGabor Featureの矩形領域内に含まれない場合には、無相関な特徴量が悪影響を及ぼすことを防ぐことができる。
従って、実際の顔画像の認識処理においては、個々の特徴点について、例えば、40個のガボアフィルタを用いて算出された全ての局所特徴量について相関係数を計算するのではなく、特徴点に応じて局所特徴量の組み合わせが決められるようにすることが好ましい。
このように、特徴点に応じて局所特徴量の組み合わせが決められるようにする場合、画像処理装置11を、例えば、図12に示されるように構成すればよい。図12は、本発明の画像処理装置11の別の構成例を示すブロック図である。図12は、例えば、図9を参照して上述したガボアフィルタを用いて特徴量ベクトルを算出し、かつ特徴点に応じて局所特徴量の組み合わせが決められるようにする画像処理装置の一例を示すものである。同図において、図1に対応する部分には、それぞれ同一の符号が付されている。
図12における画像取得部31乃至顔画像変換部33は、それぞれ図1を参照して上述したものと同様なので、詳細な説明は省略する。
図12の構成において、画像処理装置11は、学習モードと認識モードの2つの動作モードで動作する。学習モードとは、学習用の画像を用いて、認識処理を学習し、認識モードにおける認識処理に用いる認識器を生成する処理を実行する。認識モードとは、学習モードによって生成された認識器を用いて画像を認識し、認識対象の画像が、登録された人物の顔を含むものであるか否かを判定する処理を実行する。
また、図12の場合、顔認識処理部34は、局所特徴計算部71、認識器生成部72、学習データ格納部73、および、顔認識部74を含んで構成されている。
図12の場合、局所特徴計算部71により計算された特徴量ベクトルは、学習モードにおいては、認識器生成部72に供給され、認識モードにおいては、顔認識部74に供給されるようになされている。
図12の場合、局所特徴計算部71は、学習モードにおいて、40個のガボアフィルタにより得られる特徴量のうちの少なくとも一部を含む複数次元の特徴ベクトルの組を局所特徴量として、それぞれの特徴点において、複数種類の組み合わせを生成する。
この組み合わせの中に、40個のガボアフィルタにより得られた特徴量を全て含む組み合わせ、すなわち、40次元の特徴ベクトルが含まれていても良いし、含まれていなくても良いことは、言うまでもない。
換言すれば、局所特徴計算部71は、1つの特徴点に対して、40以下のパラメータを有する複数の特徴量ベクトルを得ることができる。例えば、1つの顔画像に対して、N個の特徴点における局所特徴量が計算されるようになされているものとする。また、ガボアフィルタの組み合わせがP種類用意されているものとする。この場合、1つの特徴点に対して、P種類の特徴量ベクトルを得ることができ、1つの顔画像に対して、N×Pの特徴量ベクトルを得ることができる。
このように、局所特徴計算部71は、40個のガボアフィルタにより得られた特徴量のうちの一部を、何組か、局所特徴量として組み合わせる。しかし、その組み合わせから、局所特徴量として用いる組み合わせを選択するのは、ランダムな組み合わせであっても良いが、組み合わせの総数は、非常に大きな値である
そこで、局所特徴計算部71は、図2のようなガボアフィルタから、例えば、図11に示される矩形131、矩形132、矩形133などように、任意の位置、大きさの矩形領域を選択することにより、局所特徴量の組み合わせを決めるものとする。なお、ここでは、説明を簡単にするために、図2のガボアフィルタから図11に示される矩形領域が選択されると説明したが、実際には、図9を参照して上述したガボアフィルタから、任意の位置、大きさの矩形領域が選択されることになる。
局所特徴計算部71は、学習モードにおいて、それぞれの特徴点において、40以下のパラメータを有する複数の特徴量ベクトルを、認識器生成部72に供給する。また、局所特徴計算部71は、認識モードにおいては、学習データ格納部73に格納されている認識用特徴量に基づいて、対応する特徴点の対応する局所特徴量を計算し、顔認識部74に供給する。認識用特徴量とは、認識器生成部72において学習により生成された認識器において用いられているのが、いずれの特徴点のどの局所特徴量(ガボアフィルタのどの部分)であるかを示す情報である。
これにより、認識器の生成、および、顔認識時に実行される相関係数の算出を、それぞれの特徴点において、全ての次元を用いた特徴量ベクトルによる1種類の相関係数だけはなく、一部の次元を用いた特徴量ベクトルを含む複数の相関係数について行うことが可能となる。換言すれば、それぞれ異なる次元の複数の特徴量を学習および認識に用いることが可能となる。
認識器生成部72は、学習モードにおいて、局所特徴計算部71により算出された学習用画像の特徴量と、予め保持している学習用モデルの特徴量とを用いて、Adaboostを利用した統計学習処理を実行し、認識モードにおける認識処理に用いる認識器を生成する。そして、認識器生成部72は、生成された認識器と、その認識器に関する情報(相関値と、その認識器の確からしさを示す情報)とを学習データ格納部73に記憶させる。また、認識器生成部72は、認識器の学習の過程で、対象となる顔画像を認識するのに大きく影響するモデル特徴量のみを抽出する。そして、認識器生成部72は、認識器において用いられているのが、いずれの特徴点のどの局所特徴量(ガボアフィルタのどの矩形領域部分)であるかを示す情報である認識用特徴量として、学習データ格納部73に供給して記憶させる。
Adaboostとは、“ランダムよりも少し良い弱い識別器”(WeakLearnerとも称する)を多数組み合わせることで、“強い識別器”を構築できるとする理論であり、1996年に、Freundらによって提案されているものである。認識器生成部72により生成される認識器は、この“ランダムよりも少し良い弱い識別器”であり、それぞれの認識機は、自分の前に生成された認識機が不得意とする認識に重みを置くようにして生成される。
そして、認識処理においては、それぞれの弱認識器がどのくらい信頼をおけるかにより、信頼度を求め、それに基づき多数決を行うようになされる。
学習データ格納部73には、認識器生成部72により生成された認識器とその認識器に関する情報、および、認識用特徴量が格納される。
図12の場合、顔認識部74は、認識モードにおいて、学習データ格納部73に格納されている認識器を用いて、局所特徴計算部71により算出された特徴量と、顔登録データベース35に登録されている登録顔画像データを比較する。例えば、特徴量と登録顔画像データとの相関係数を計算し、登録されている人物と一致するか否かを判断し、判断結果を認識結果出力部36に供給する。すなわち、顔認識部74は、学習データ格納部73に格納されている認識器の信頼度に基づいて、認識器の判定結果の多数決を行い、登録されている人物と一致するか否かの判断を実行する。
図12の場合、顔登録データベース35は、登録されている人物の認識に必要な特徴量の情報が登録されている。すなわち、顔登録データベース35には、登録されている人物の顔画像の全ての特徴点における全てのGabor Jetが登録されていても良いが、少なくとも、認識用特徴量に対応する特徴量の情報が登録されていればよい。
顔登録データベース35に登録されている特徴量のデータ(登録顔画像データ)は、図1の画像取得部31乃至局所特徴計算部71の処理が施されることにより、取得され、登録されるデータとされる。あるいはまた、画像取得部31乃至局所特徴計算部71の処理が施されて得られるデータと同様のデータであれば、外部から取得されて登録されるデータであってもよい。
認識結果出力部36は、顔認識部74から供給された判断結果を、例えば、ブザー音、テキスト表示、LED点灯などによって外部に通知したり、判断結果を外部の装置に出力する。具体的には、例えば、認識結果出力部36は、例えば、ディスプレイなどを含んで構成されるものとしても良く、判定結果を、メッセージなどの形式で表示するものとしてもよい。
例えば、入力された画像に含まれる顔画像と一致する登録顔画像が、顔登録データベース35に登録されていた場合、その顔画像の人物の名前などの情報が出力されるようにすることができる。例えば、一致していると判定された登録顔画像に関連付けられている人の名前などの情報が顔登録データベース35から読み出され、その名前などの情報が、認識結果出力部36に、判定結果として出力される。
また、入力された画像に含まれる顔画像と一致する登録顔画像が顔登録データベース35に登録されていなかった場合、認識結果出力部36に、登録されていないかったことを示す情報が出力されるようにすることができる。例えば、「未登録の人物です」といったメッセージが、判定結果として出力される。
画像処理装置11は、このように構成されるようにしてもよい。
なお、Adaboostを利用した統計学習処理を実行し、認識モードにおける認識処理に用いる認識器を生成する画像処理装置については、例えば、特開2008-165731に詳細に開示されている。
次に、図13のフローチャートを参照して、画像処理装置11を図12のように構成した場合、画像処理装置11で学習モードにおいて実行される学習処理について説明する。
ステップS131において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS132において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS133において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行う。これにより、正面から撮像された場合の顔画像に対応するように変換される。変換された顔画像は、局所特徴計算部71に供給される。
ステップS134において、局所特徴計算部71は、例えば、図9を参照して上述したような、ガボアフィルタ(Gabor Filter)を用いて、局所特徴量を算出する。
ステップS135において、局所特徴計算部71は、ガボアフィルタにより得られた局所特徴量のうちの少なくとも一部を、例えば、図11を用いて説明したように、何組か組み合わせ、認識器生成部72に供給する。組み合わせの方法と生成される組み合わせの数は、実験的または経験的に、予め決められるものであっても良いが、例えば、図11を用いて説明したようにして、周波数帯域および方向が連続するようにして選択するものとすると好適である。
ステップS136において、認識器生成部72の相関係数算出部101は、学習用モデル特徴量記憶部102から、学習モデルの特徴量を読み出し、局所特徴計算部71から供給された局所特徴量と同一の組み合わせの学習モデルの組み合わせとの相関係数を算出する。
ステップS137において、認識器生成部72は、認識器を生成する。
ステップS138において、認識器生成部72は、ステップS137の処理により生成された認識器を登録する。このとき、例えば、生成された認識器と、その認識器に関する情報(相関値と、その認識器の確からしさを示す情報)とが学習データ格納部73に記憶される。
このような処理により、学習モードにおいて、認識器が生成されて学習データ格納部73に格納されるとともに、認識器に対応するモデル特徴量とその認識器の信頼度が、学習データ格納部73に格納される。すなわち、認識器生成に用いられたGabor Featureは、どの特徴点に対するどの組み合わせであるか(例えば、全部で40個ガボアフィルタが用意されていたら、そのうちのいずれのフィルタの組み合わせであるか)を示す認識用特徴量、また、その認識器の確からしさを示す情報が、学習データ格納部73に格納される。
次に、図14のフローチャートを参照して、画像処理装置11を図12のように構成した場合、認識モードにおいて画像処理装置11が実行する認識処理について説明する。
ステップS171において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS172において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS173において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行う。
ステップS174において、局所特徴計算部71は、例えば、図9を用いて説明したような、ガボアフィルタ(Gabor Filter)を用いて、局所特徴量を算出する。
ステップS175において、局所特徴計算部71は、学習データ格納部73から、認識用特徴量の情報を取得する。
ここで、認識用特徴量の情報は、認識器生成に用いられたGabor Featureは、どの特徴点に対するどの組み合わせであるか(例えば、全部で40個ガボアフィルタが用意されていたら、そのうちのいずれのフィルタの組み合わせのものが、どの特徴点において用いられて認識器に用いられたのであるか)を示す情報である。
ステップS176において、局所特徴計算部71は、ガボアフィルタにより得られた局所特徴量と、取得された認識用特徴量の情報に基づいて、認識用特徴量に示された特徴点の局所特徴量の組み合わせを生成し、相関係数算出用情報として、顔認識部74に供給する。
ステップS177において、顔認識部74は、顔登録データベース35から、登録顔の特徴量を読み出す。
ステップS178において、顔認識部74は、学習データ格納部73から認識器を読み出し、特徴量を代入して、計算する。顔認識部74は、相関係数算出用情報として局所特徴計算部71から供給された認識用特徴量に示された特徴点の局所特徴量の組み合わせと、顔登録データベース35から読み出された登録顔の特徴量のうちの認識用特徴量に示された特徴点の局所特徴量の組み合わせに対応するものとの相関係数を演算する。そして、顔認識部74は、得られた相関係数を特徴量として、学習データ格納部73から読み出された認識器に代入して計算する。
ステップS179において、認識結果出力部36は、顔認識部74から供給された計算結果に基づいて、対象物体の有無の認識結果を出力する。
このようにすることで、特徴点に応じて局所特徴量の組み合わせが決められるようにすることができ、それぞれ異なる次元の複数の特徴量を学習および認識に用いることが可能となる。
なお、特徴点に応じて局所特徴量の組み合わせが決められるようにすることができるようにする画像処理装置11の構成は、図12に示したものに限られるものではなく、他の構成が適用されるようにしてもよい。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図15に示されるような汎用のパーソナルコンピュータ700などに、ネットワークや記録媒体からインストールされる。
図15において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア711などからなる記録媒体からインストールされる。
なお、この記録媒体は、図15に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部708に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。