以下、図を参照して、本発明の実施の形態について説明する。
図1は、画像処理装置11の構成を示すブロック図である。
画像処理装置11は、人物の撮像画像を用いて、画像認識処理を実行し、その人物が登録された人物か否かを判定する処理を実行することができる。
画像処理装置11は、学習モードと認識モードの2つの動作モードで動作する。学習モードとは、学習用の画像を用いて、認識処理を学習し、認識モードにおける認識処理に用いる認識器を生成する処理を実行する。認識モードとは、学習モードによって生成された認識器を用いて画像を認識し、認識対象の画像が、登録された人物の顔を含むものであるか否かを判定する処理を実行する。
画像処理装置11は、画像取得部31、顔検出部32、顔画像変換部33、顔認識処理部34、顔登録データベース35、および、認識結果出力部36から構成されている。
なお、ここでは、画像処理装置11に顔登録データベース35が含まれるものとして説明を続けるが、顔登録データベース35は、図示しないネットワークなどを介して、画像処理装置11に接続されているような構成とすることも可能である。ネットワークなどを介して顔登録データベース35が接続されることにより、複数の画像処理装置11で1つの顔登録データベース35を共有することが可能となる。
画像取得部31は、例えば、カメラなどを含む構成とされ、人を撮像する機能を有するか、または、外部に備えられたカメラ、もしくは、他の装置から、撮像された人の画像を取得する。画像取得部31により取得される画像は、人の顔の部分が少なくとも含まれる画像である。画像取得部31に取得された画像は、顔検出部32に供給される。
画像取得部31は、学習モードにおいては、例えば、撮像画像中の顔の大きさや向きが異なるような学習用画像を、ある人物において複数取得するとともに、その人物の顔の画像を含まない画像を複数取得する。なお、その人物の正面の顔画像の所定の特徴点における特徴量が、学習処理における学習用モデル特徴量として学習に用いられる。
また、画像取得部31は、認識モードにおいては、認識対象となる人物の顔の部分を含む撮像画像を取得する。
顔検出部32は、画像取得部31から供給された画像を解析することにより、人の顔の部分(顔の位置と大きさ)を抽出し、抽出された人の顔の部分の画像(以下、顔画像と称する)を検出する。画像取得部31から供給される画像は、認識対象のユーザの顔を含む画像であるが、例えば、全身像が撮影されているような画像など、顔の画像だけでない場合もある。顔検出部32は、そのような画像から、人の顔の領域を判断し、人の顔の部分に対応する画像を抽出する。検出された顔画像は、顔画像変換部33の顔特徴点検出部51および顔アライメント部52に供給される。
顔画像変換部33は、顔特徴点検出部51、および、顔アライメント部52から構成される。
顔特徴点検出部51は、顔検出部32から供給された顔画像から、後述する顔アライメント部52によるモーフィング処理に用いられるアライメント用特徴点を検出する。アライメント用特徴点は、例えば、目、鼻、口といった人の顔の中の特徴となる部分、すなわち、顔特徴部分であってもよいし、顔特徴部分のみならず、もっと詳細に部分分けして特徴点を検出するようにしても良い。
顔特徴点検出部51は、例えば、AAM(Active Appearance Models)と称される方法などを適用して、特徴位置を検出することが可能である。
顔アライメント部52は、顔検出部32から供給された顔画像、および、顔特徴点検出部51により検出されたアライメント用特徴点を解析することにより、抽出された顔が、どの方向を向いているかを検出し、顔特徴位置が基準位置にくるように、アフィン変換などのモーフィング処理を行う。これにより、例えば正面からみた顔の画像である場合には、左右の目が水平な位置に所定の距離はなれて位置し、左右の目の中間の下方に鼻が位置し、その鼻よりさらに下方に口が位置するようにモーフィング処理が行われ、顔検出部32から供給された顔画像が正面を向いていないものであっても、正面を向いた場合の顔画像と略同様なものに変換される。その結果、画像取得部31により取得された顔画像が正面を向いていない場合であっても識別が可能になる。
顔認識処理部34は、局所特徴計算部71、認識器生成部72、学習データ格納部73、および、顔認識部74を含んで構成される。
抽出された特徴点が基準位置に直された顔画像は、顔認識処理部34の局所特徴計算部71に供給される。局所特徴計算部71は、供給された顔画像の複数の特徴点における局所的な特徴量を計算する。局所特徴量を求めるための特徴点は、顔特徴点検出部51において検出されたアライメント用特徴点と同一であっても良いし、顔特徴点検出部51において検出されたアライメント特徴点とは全く異なる複数の点(例えば、後述する図7においてばつ印で示される複数の点など)であっても良い。局所特徴計算部71は、ガボアフィルタ(Gabor Filter)で構成される。
ここで、ガボアフィルタの処理(ガボアフィルタリング)について説明する。
人間の視覚細胞には、ある特定の方位に対して選択性を持つ細胞が存在することが既に判っている。これは、垂直の線に対して反応する細胞と、水平の線に反応する細胞で構成される。ガボアフィルタリングは、これと同様に、方位選択性を持つ複数のフィルタで構成される空間フィルタである。
ガボアフィルタは、ガボア関数によって空間表現される。ガボア関数g(x,y)は、次の式(1)に示すように、コサイン成分からなるキャリアs(x,y)と、2次元ガウス分析状のエンベローブWr(x,y)とで構成される。
キャリアs(x,y)は、複数関数を用いて、次の式(2)のように表現される。ここで、座標値(u0,v0)は空間周波数を表し、またPはコサイン成分の位相を表す。
式(2)に示すキャリアは、次の式(3)に示すように、実数成分Re(s(x,y))と虚数成分Im(s(x,y))に分離することができる。
一方、2次元ガウス分布からなるエンベローブは、次の式(4)のように表現される。
ここで、座標軸(x0,y0)はこの関数のピークであり、定数a及びbはガウス分布のスケール・パラメータである。また、添字rは、次の式(5)に示すような回転操作を意味する。
従って、上述の式(2)及び式(4)より、ガボアフィルタは、次式に示すような空間関数として表現される。
局所特徴計算部71は、それぞれ異なる方向および周波数の複数のガボアフィルタを用いて、それぞれの特徴量を計算する。局所特徴計算部71は、ここでは、8種類の方向と5通りの周波数を採用して、合計40個のガボアフィルタを用いて、それぞれの特徴点の特徴量を計算する処理を行うものとする。
図2は、40個のガボアフィルタを、スケールおよび方向を基にして並べた場合の一例を示すものである。図2においては、図中、縦軸が周波数方向の変化量を示し、上部ほど周波数は大きく、下部ほど周波数は小さい。そして、図中、横軸がフィルタ方向(角度)の変化量を示し、一番左が0度に対応し、右に行くほど角度が増え、中央部分が90度に対応し、一番右が最も180度に近い角度に対応する。すなわち、図2のフィルタの配列において、一番左の列のフィルタと一番右の列のフィルタとは、角度の変化として連続するフィルタである。
ガボアフィルタのレスポンスは、Giをi番目のガボアフィルタとし、i番目のガボアフィルタの結果(Gabor Feature)をJiとし、入力イメージをIとすると、次式で表される。
すなわち、1つの特徴点に対して、40個のガボアフィルタを用いると、40個の特徴量が得られる。換言すれば、1つの特徴点に対して、40個のパラメータを有する特徴量ベクトルを得ることができる。
局所特徴計算部71により算出された特徴量は、学習モードにおいては、認識器生成部72に供給され、認識モードにおいては、顔認識部74に供給される。
特徴ベクトルを構成するGabor Jetは、様々な周波数及び方向パラメータを持つものが用意されているが、従来のガボアフィルタリングにおいては、それらのパラメータは、全ての特徴点において共通のものが用いられていることが多い。
しかしながら、画像の特徴を求める場合、特に顔画像の特徴を求める場合には、特徴点の位置によって特徴を記述するのに必要な周波数及び方向パラメータは異なるため、それぞれの特徴点では不要なパラメータが存在する可能性がある。
そして、このような不要なパラメータから求められたGabor Featureは、一般的にその特徴点の局所特徴と無相関な値を取る可能性が高いため、それらを含む局所特徴ベクトル間で相関係数を求める場合に、得られる結果に悪影響を及ぼす可能性がある。
また、ある特徴点の局所特徴が複数の独立した要因(例えば、表情、個人性、めがね等)で表現されている場合、Gabor Jetの全てから構成される局所特徴ベクトル間の相関値では、それらの要因の独立な相関を評価することが不可能である。
上述したように、この局所特徴計算部71は、8種類の方向と5通りの周波数を採用して、合計40個のガボアフィルタを用いて、それぞれの特徴点の特徴量を計算することが可能なようになされている。
そこで、局所特徴計算部71は、学習モードにおいて、40個のガボアフィルタにより得られる特徴量のうちの少なくとも一部を含む複数次元の特徴ベクトルの組を局所特徴量として、それぞれの特徴点において、複数種類の組み合わせを生成する。
この組み合わせの中に、40個のガボアフィルタにより得られた特徴量を全て含む組み合わせ、すなわち、40次元の特徴ベクトルが含まれていても良いし、含まれていなくても良いことは、言うまでもない。
換言すれば、局所特徴計算部71は、1つの特徴点に対して、40以下のパラメータを有する複数の特徴量ベクトルを得ることができる。すなわち、1つの顔画像に対して、N個の特徴点における局所特徴量が計算されるようになされている場合、ガボアフィルタの組み合わせがP種類用意されれば、1つの特徴点に対して、P種類の特徴量ベクトルを得ることができ、1つの顔画像に対して、N×Pの特徴量ベクトルを得ることができる。
また、この局所特徴量の組み合わせとして可能なものの総数Tは、次の式(8)で示される数となる。
このように、局所特徴計算部71は、40個のガボアフィルタにより得られた特徴量のうちの一部を、何組か、局所特徴量として組み合わせるが、その組み合わせから、局所特徴量として用いる組み合わせを選択するのは、ランダムな組み合わせであっても良い。しかしながら、式(8)に示されるように、組み合わせの総数Tは、非常に大きな値である。
上述したように、画像の特徴を求める場合、特に顔画像の特徴を求める場合には、特徴点の位置によって特徴を記述するのに必要な周波数及び方向パラメータは異なるため、それぞれの特徴点では不要なパラメータが存在する可能性がある。不要なパラメータではないもの、すなわち、特徴点により必要な周波数帯域および方向は、連続した範囲内にあると仮定することができる。そこで、全ガボアフィルタをスケール、方向毎に並べた図2のような特徴次元から、例えば、図3に示される矩形131、矩形132、矩形133などように、任意の位置、大きさの矩形領域を選択することにより、局所特徴量の組み合わせを決めるものとすると好適である。
このようにして、ガボアフィルタを、スケール、方向毎に並べた特徴次元から任意の位置、大きさの矩形領域を選択するものとすると、その組み合わせは、最高でも、5C2×8P2=560通りとなり、合理的な数での特徴次元選択が可能になる。また、特徴点により必要な周波数帯域および方向が、組み合わせとして選択された矩形領域内にある場合、換言すれば、局所特徴とは無相関なGabor Featureの矩形領域内に含まれない場合には、無相関な特徴量が悪影響を及ぼすことを防ぐことができる。
局所特徴計算部71は、学習モードにおいて、それぞれの特徴点において、40以下のパラメータを有する複数の特徴量ベクトルを、認識器生成部72に供給する。また、局所特徴計算部71は、認識モードにおいては、学習データ格納部73に格納されている認識用特徴量に基づいて、対応する特徴点の対応する局所特徴量を計算し、顔認識部74に供給する。認識用特徴量とは、認識器生成部72において学習により生成された認識器において用いられているのが、いずれの特徴点のどの局所特徴量(ガボアフィルタのどの部分)であるかを示す情報である。
これにより、認識器の生成、および、顔認識時に実行される相関係数の算出を、それぞれの特徴点において、全ての次元を用いた特徴量ベクトルによる1種類の相関係数だけはなく、一部の次元を用いた特徴量ベクトルを含む複数の相関係数について行うことが可能となる。換言すれば、それぞれ異なる次元の複数の特徴量を学習および認識に用いることが可能となる。
認識器生成部72は、学習モードにおいて、局所特徴計算部71により算出された学習用画像の特徴量と、予め保持している学習用モデルの特徴量とを用いて、Adaboostを利用した統計学習処理を実行し、認識モードにおける認識処理に用いる認識器を生成し、生成された認識器と、その認識器に関する情報(相関値と、その認識器の確からしさを示す情報)とを学習データ格納部73に記憶させる。また、認識器生成部72は、認識器の学習の過程で、対象となる顔画像を認識するのに大きく影響するモデル特徴量のみを抽出し、認識器において用いられているのが、いずれの特徴点のどの局所特徴量(ガボアフィルタのどの矩形領域部分)であるかを示す情報である認識用特徴量として、学習データ格納部73に供給して記憶させる。
Adaboostとは、“ランダムよりも少し良い弱い識別器”(WeakLearnerとも称する)を多数組み合わせることで、“強い識別器”を構築できるとする理論であり、1996年に、Freundらによって提案されているものである。認識器生成部72により生成される認識器は、この“ランダムよりも少し良い弱い識別器”(以下、弱認識器とも称する)であり、それぞれの認識機は、自分の前に生成された認識機が不得意とする認識に重みを置くようにして生成される。
そして、認識処理においては、それぞれの弱認識器がどのくらい信頼をおけるかにより、信頼度を求め、それに基づき多数決を行うようになされる。
認識器生成部72の詳細は、図6を用いて後述する。
学習データ格納部73には、認識器生成部72により生成された認識器とその認識器に関する情報、および、認識用特徴量が格納される。
顔認識部74は、認識モードにおいて、学習データ格納部73に格納されている認識器を用いて、局所特徴計算部71により算出された特徴量と、顔登録データベース35に登録されている登録顔画像データを比較、すなわち、相関係数を計算し、登録されている人物と一致するか否かを判断し、判断結果を認識結果出力部36に供給する。すなわち、顔認識部74は、学習データ格納部73に格納されている認識器の信頼度に基づいて、認識器の判定結果の多数決を行い、登録されている人物と一致するか否かの判断を実行する。
顔登録データベース35は、登録されている人物の認識に必要な特徴量の情報が登録されている。すなわち、顔登録データベース35には、登録されている人物の顔画像の全ての特徴点における全てのGabor Jetが登録されていても良いが、少なくとも、認識用特徴量に対応する特徴量の情報が登録されていればよい。
また、顔登録データベース35に登録されている特徴量のデータ(登録顔画像データ)は、図1の画像取得部31乃至局所特徴計算部71の処理が施されることにより、取得され、登録されるデータであっても良いし、画像取得部31乃至局所特徴計算部71の処理が施されて得られるデータと同様のデータであれば、外部から取得されて登録されるデータであってもよい。
認識結果出力部36は、顔認識部74から供給された判断結果を、例えば、ブザー音、テキスト表示、LED点灯などによって外部に通知したり、判断結果を外部の装置に出力する。具体的には、例えば、認識結果出力部36は、例えば、ディスプレイなどを含んで構成されるものとしても良く、判定結果を、メッセージなどの形式で表示するものとしてもよい。
例えば、入力された画像に含まれる顔画像と一致する登録顔画像が、顔登録データベース35に登録されていた場合、一致していると判定された登録顔画像に関連付けられている人の名前などの情報が顔登録データベース35から読み出され、その名前などの情報が、認識結果出力部36に、判定結果として出力されるようにすることができる。
また、入力された画像に含まれる顔画像と一致する登録顔画像が顔登録データベース35に登録されていなかった場合、認識結果出力部36に、登録されていないかったことを示す情報、例えば、「未登録の人物です」といったメッセージが、判定結果として出力されるようにすることができる。
このようにして、画像処理装置11は、特徴量を比較することにより、得られた人の顔画像が登録されている人の顔画像と一致するか否かの識別を行う。
次に、認識器生成部72が有する機能の詳細について説明するのに先立ち、一般的なadaboostの処理について説明する。
1つの学習用画像のN個(Nは正の整数)の特徴点のそれぞれにおいて特徴量が得られるようになされている場合、学習処理においては、それぞれの特徴点の特徴量と、N個の学習用モデル特徴量との相関係数が求められる。
一般的に、adaboostを用いて認識器を生成するのに、M個(Mは正の整数)の学習用画像が用いられる場合、認識器を生成するための特徴量として、M個の学習用画像のそれぞれのN個の特徴量と、それらに対応するN個のモデル特徴量との相関係数が得られる。換言すれば、M個の学習用画像毎に、N個のモデル特徴量のそれぞれに対して得られた相関係数をパラメータとしたN次元の相関ベクトルが、特徴点ごとの特徴量パラメータとして生成されることになる。
例えば、M個の学習用画像のうち、学習用画像PI1,PI2が、認識しようとする対象物体を含む画像であり、学習用画像PI3乃至PIMが、認識しようとする対象物体を含まない画像であるものとして、認識器の生成の具体的な例について説明する。
図4に、学習用画像PI1,PI2が、認識しようとする対象物体を含む画像であり、学習用画像PI3乃至PIMが、認識しようとする対象物体を含まない画像である場合に得られる、相関係数をパラメータとしたN次元のベクトル、すなわち、認識器生成のために用いられる特徴量を示す。図4においては、認識しようとする対象物体を含む画像に対して、図中「+1」と表記し、認識しようとする対象物体を含まない画像に対して、図中「−1」と表記するものとする。
図4に示されるように、学習用画像PI1について(A1,A2,・・・AN)として、学習用画像PI2について(B1,B2,・・・BN)として、学習用画像PI3について(C1,C2,・・・CN)として、そして、以下同様に、学習用画像PIMについて(M1,M2,・・・MN)として、それぞれの特徴点の特徴量が供給された場合、特徴点k=1の特徴量は、グループGr1で示される(A1,B1,C1,・・・M1)であり、同様に、特徴点k=2の特徴量は、グループGr2で示される(A2,B2,C2,・・・M2)であり、・・・特徴点k=Nの特徴量は、グループGrNで示される(AN,BN,CN,・・・MN)となる。すなわち、N個の特徴点それぞれについて、学習用画像PIi毎にM個の特徴量のグループGrkが設定されることになる。
そして、各特徴点において、各学習用画像PIiに設定された重みに応じて特徴量がM個抽選で抽出される。最初の処理においては、いずれの重みWiも等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになるので、ここでは、最初の処理では各特徴点kにおいて、全ての特徴量が選択されるものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
そして、N個の入力特徴量のそれぞれについてサンプリングされたM個の入力特徴量は、昇べきの順、または、降べきの順に並び替えられる。そして、入力特徴量が抽出された学習用画像に認識しようとする対象物体が含まれている画像であるか否かを示す正誤情報、すなわち、図4における(+1)または(−1)に基づいて、昇べきの順、または、降べきの順に並び替えられたN個の入力特徴量のそれぞれについて、ある閾値を設定したとき、その閾値以上と閾値以下で、正誤が正しく分かれるか否か、閾値を変化させながら誤り率を計算し、誤り率が最小となるような閾値設定する。この閾値が、弱認識器として設定される。
具体的には、例えば、特徴点k=1に対応するM個の特徴量が、図5で示されるようにL1,A1,C1,B1,・・・,M1に昇べき、または、降べきの順に並べられ、閾値より小さい範囲では、認識しようとする対象物体がないと認識し、閾値より大きい範囲では、認識しようとする対象物体があると認識する場合、閾値th1が、特徴量A1とC1の間に設定されたときには、図中の点線で囲まれた特徴量A1は、認識しようとする対象物体が含まれた学習用画像の特徴量であり、一方、特徴量C1および特徴量M1は、認識しようとする対象物体が含まれない学習用画像の特徴量であるので、エラーであるとみなされる。
このようにして、学習用画像の正誤情報(認識しようとする対象物体が含まれているか否かの情報)に基づいて、エラーであるとみなされた特徴量が抽出された学習用画像の重みWiが加算されて、誤り率が計算され、N個の弱認識器のうち、誤り率が最小となる弱認識器が選択される。
次に、顔認識処理部34の認識器生成部72の構成および動作について説明する。
図6は、認識器生成部72の構成を示すブロック図である。
認識器生成部72は、相関係数算出部101、学習用モデル特徴量記憶部102、サンプリング部103、重み設定部104、並び替え部105、認識器設定部106、認識器選択部107、および、重み更新部108を含んで構成されている。
相関係数算出部101は、図7に示されるように、学習用画像151と、学習用モデル特徴量記憶部102に記憶されている学習用モデル画像152とにおいて、対応する特徴点の、対応する局所特徴量の組み合わせのGabor Featuresから構成される局所特徴ベクトル間の相関係数を算出する。すなわち、相関係数算出部101は、1つの特徴点において、複数次元の異なる相関係数を算出する。
具体的には、相関係数算出部101は、1つの特徴点において、例えば、8次元、9次元、12次元、16次元など、次元数の異なる局所特徴量の組み合わせにおいて、相関係数を複数算出することができるとともに、同一の次元数であっても、異なる領域の局所特徴量の組み合わせ、換言すれば、異なるガボアフィルタの組み合わせにより求められる局所特徴量により構成される特徴量ベクトルにおいて、相関係数を複数算出することができる。
学習用モデル特徴量記憶部102は、図7に示される学習用モデル画像152が各特徴点において有するGabor Jetsを記憶している。
上述したように、局所特徴計算部71においては、40個のガボアフィルタにより得られた特徴量のうちの少なくとも一部を含む複数次元の局所特徴量を組み合わせた特徴ベクトルが、複数生成される。ここで、例えば、P種類の組み合わせが生成された場合、相関係数算出部101は、N箇所の特徴点の特徴量を用いて相関ベクトルを求める際に、図4を用いて説明した従来の一般的なadaboostが用いられた場合のように、学習用画像およびモデル特徴量の2つの局所特徴ベクトルの全ての次元を用いた相関係数をパラメータとしたN次元のベクトルを生成するのではなく、一部の次元のみを用いた相関係数も含めてパラメータとした、N×P次元の特徴ベクトルを生成することができる。
すなわち、全体のうちの少なくとも一部の次元の特徴ベクトルの組み合わせを複数用いるようにすることにより、顔画像の特徴点を増やすことなく、また、ガボアフィルタによるフィルタリング処理の処理量を増やすことなく、ブースティング処理の次元を増やすことが可能となる。
また、特に顔画像の場合には、特徴点の位置によって特徴を記述するのに必要な周波数及び方向パラメータは異なるため、それぞれの特徴点では、40個のガボアフィルタにより得られた特徴量のうち不要なパラメータが存在する可能性がある。したがって、40個のガボアフィルタにより得られた特徴量のうちの少なくとも一部を含む複数次元の特徴ベクトルの組を局所特徴量として、複数種類の組み合わせが生成され、それぞれの組み合わせを用いた学習の結果得られる認識器の性能は、従来における場合よりも高くなる可能性がある。このとき、全ガボアフィルタをスケール、方向毎に並べた図2のような特徴次元から、例えば、図3を用いて説明した矩形131、矩形132、矩形133などように、任意の位置、大きさの矩形領域を選択することにより、換言すれば、周波数や方向などの性質が連続するガボアフィルタの組み合わせを選択することにより、局所特徴量の組み合わせを決めるものとすると好適である。
例えば、M枚の学習用画像が供給され、局所特徴量として、1つの特徴点においてP通りの局所特徴量の組み合わせが局所特徴計算部71において計算されるようになされており、相関係数算出部101において、N箇所の特徴点のそれぞれにおいて、対応するP通りの組み合わせごとに相関係数が算出された場合、相関係数算出部101からサンプリング部103に供給される特徴量は、図8に示される。
すなわち、学習用画像PI1について(A1-1,A1-2,・・・A1-p,A2-1,A2-2,・・・A2-p,・・・AN-1,AN-2,・・・AN-p)として、N×P個の特徴量が相関係数算出部101からサンプリング部103に供給される。同様に、学習用画像PI2については、(B1-1,B1-2,・・・B1-p,B2-1,B2-2,・・・B2-p,・・・BN-1,BN-2,・・・BN-p)として、学習用画像PI3については、(C1-1,C1-2,・・・C1-p,C2-1,C2-2,・・・C2-p,・・・CN-1,CN-2,・・・CN-p)として、そして、以下同様に、学習用画像PIMについては、(M1-1,M1-2,・・・M1-p,M2-1,M2-2,・・・M2-p,・・・MN-1,MN-2,・・・MN-p)として、それぞれの特徴点の特徴量が相関係数算出部101からサンプリング部103に供給される。
したがって、特徴点k=1の1つ目の局所特徴量の組み合わせにおける特徴量は、グループGr1-1で示される(A1-1,B1-1,C1-1,・・・M1-1)であり、特徴点k=1の2つ目の局所特徴量の組み合わせにおける特徴量は、グループGr1-2で示される(A1-2,B1-2,C1-2,・・・M1-2)であり、以下、同様に、特徴点k=NのP番目の局所特徴量の組み合わせにおける特徴量は、グループGrN-Pで示される(AN-P,BN-P,CN-P,・・・MN-P)となる。すなわち、N個の特徴点それぞれのP種類の局所特徴量の組み合わせについて、学習用画像PIi毎にM個の特徴量のグループが設定されることになる。
サンプリング部103は、重み設定部104により設定される学習用画像単位の重みに応じて、モデル特徴量毎に(すなわち、パラメータ毎に)、M個の入力特徴量をサンプリングし、並び替え部105に供給する。
具体的には、サンプリング部103は、各特徴点の局所特徴量の組み合わせごとに、すなわち、図8における縦のグループごとに、各学習用画像PIiに設定された重みに応じて特徴量をM個抽選で抽出する。最初の処理においては、いずれの重みWiも等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになるので、ここでは、最初の処理では各特徴点kのそれぞれの組み合わせにおいて、全ての特徴量が選択されたものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
並び替え部105は、N×P個の入力特徴量のそれぞれについてサンプリングされたM個の入力特徴量を昇べきの順、または、降べきの順に並び替えて、認識器設定部106に供給する。
認識器設定部106は、入力特徴量が抽出された学習用画像に認識しようとする対象物体が含まれている画像であるか否かを示す正誤情報に基づいて、昇べきの順、または、降べきの順に並び替えられたN×P個の入力特徴量のそれぞれについて、閾値を変化させながら誤り率計算部121を制御して、誤り率を計算させ、誤り率が最小となるように閾値設定する(この閾値が、弱認識器として設定される)。
具体的には、認識器設定部106は、入力特徴量が抽出された学習用画像に認識しようとする対象物体が含まれている画像であるか否かを示す情報に基づいて、それぞれの特徴点における局所特徴量の組み合わせごとに、M個の特徴量のそれぞれについて、閾値を変化させながら誤り率計算部121を制御して、以下の式(9)で示すように誤り率ejkを計算させ、誤り率ejkが最小となるように閾値を設定する。以下、添え字のkは、N個の特徴点のうちのk番目の特徴点に対応するものであることを示し、添え字のjは、P種類の局所特徴量の組み合わせのj番目の組み合わせに対応するものであるとする。ここで、それぞれの特徴点における局所特徴量の組み合わせごとの閾値thjkが、1個の弱認識器fjkとなる。そこで、認識器設定部106は、弱認識器毎の誤り率ejkを認識器選択に供給する。すなわち、それぞれの特徴点における局所特徴量の組み合わせごとについて、N×P個の特徴量に応じたN×P個の弱認識器fjkが設定され、N×P個のそれぞれについて(弱認識器fjkのそれぞれについて)誤り率ejkが求められることになる。ここで、弱認識器fjkは、認識しようとする対象物体を含む場合「+1」を出力し、認識しようとする対象物体を含まない場合「−1」を出力する関数である。
すなわち、図5を用いて説明した場合と同様にして、ある特徴点におけるある局所特徴量の組み合わせに対応する特徴量(得られた相関係数)が、昇べき、または、降べきの順に並べられた場合、設定された閾値thjkの位置と、その閾値に対してどちら側に認識しようとする対象物体が含まれた学習用画像に対応する特徴量と認識しようとする対象物体が含まれない学習用画像に対応する特徴量が並べられているかに基づいて、エラーであるか否かが判定される。
誤り率計算部121は、以下の式(9)で示されるように、学習用画像の正誤情報(認識しようとする対象物体が含まれているか否かの情報)に基づいて、エラーであるとみなされた特徴量が抽出された学習用画像の重みWiを加算し、誤り率ejkを計算する。
ここで、y≠fjkは、エラーとなっている特徴点kの条件を示しており、Ewは、エラーの発生した特徴点kにおける重みが加算されることを示している。
そして、認識器設定部106は、弱認識器毎の誤り率ejkを、認識器選択部107に供給する。すなわち、N×P個の入力特徴量に応じたN×P個の弱認識器が設定され、N×P個のそれぞれについて誤り率が求められることになる。
認識器選択部107は、N×P個の弱認識器fjkのうち、誤り率ejkが最小となる弱認識器fjkを選択する。
認識器選択部107は、N×P個の弱認識器fjkのうち、誤り率ejkが最小となる弱認識器fjkを選択して、学習データ格納部73に記憶させるとともに、弱認識器fjkに対応するモデル特徴量を学習用モデル特徴量記憶部102より読み出し、学習データ格納部73に記憶させる。さらに、認識器選択部107は、選択した弱認識器fjkの誤り率ejkに基づいて、信頼度を計算し、学習データ格納部73に記憶させるとともに、重み更新部108に供給する。
具体的には、認識器選択部107は、選択した弱認識器fjkの最小の誤り率ejkに基づいて、以下の式(10)で示されるように信頼度cjkを計算し、計算結果を重み更新部108に供給する。
重み更新部108は、供給された信頼度cjkに基づいて学習用画像ごとの重みWiを再計算すると共に、重みWiを正規化して更新し、更新結果を重み設定部104に供給する。重み設定部104は、重み更新部108より供給されてくる重みの更新結果に基づいて、学習用画像単位の重みWiを設定する。
具体的には、重み更新部108は、供給された信頼度cjkに基づいて、以下の式(11)で示されるように各学習用画像毎に重みWiを再計算すると共に、全ての重みWiを正規化して更新し、更新結果を重み設定部104に供給する。重み設定部104は、重み更新部108より供給されてくる重みの更新結果に基づいて、学習入力画像ごとの重みWiを設定する。
すなわち、式(11)においては、エラーの発生した特徴量を含む学習用画像の重みWiが大きくなることが示されている。
認識器選択部107は、例えば、Q回目の学習により得られた弱認識器fjkをQ番目の弱認識器fQとして学習データ格納部73に記憶させる(更新させる)。すなわち、認識器選択部107は、以下の式(12)で示されるように、認識器R(x)を更新して、以下の式(13)で示される形式で学習データ格納部73に記憶させる。
R(x)=R(x)+cjk×fjk(x) ・・・(12)
sign(R(x))=sign(R(x)+cjk×fjk) ・・・(13)
すなわち、重み付けされた弱認識器fjkが、既に保持されている認識器R(x)に加算され、新たな認識器R(x)として更新される。また、sign(Y)は、Yが正の場合、認識しようとする対象物体が入力画像中に存在することを示す「+1」を出力し、Yが負の場合、認識しようとする対象物体が入力画像中に存在しないことを示す「−1」を出力する関数である。
そして、認識器選択部107は、弱認識器fjkの特徴点kの局所特徴量の組み合わせに対応するモデル特徴量を学習用モデル特徴量記憶部102より読み出し、学習データ格納部73に記憶させる。
認識器選択部107は、L個の比較的誤り率の低い弱認識器fjkからなる認識器R(x)が学習データ格納部73に記憶されると共に、それぞれの弱認識器fjkで使用されるべき特徴点kの対応する局所特徴量の組み合わせ(相関係数の算出に用いられたガボアフィルタの組み合わせ)のモデル特徴量が学習データ格納部73に記憶される。ここで、Lは、L≦N×Pである。
なお、式(13)の認識器は、L個の弱認識器の多数決により、認識しようとする対象物体の有無を出力する関数であると言える。このようにして、弱認識器を学習処理により重み付けしつつ付加することを繰り返し、認識器を生成する学習処理は、Discrete Adaboost Algorithmと称される処理である。
次に、図9のフローチャートを参照して、画像処理装置11で学習モードにおいて実行される学習処理について説明する。
ステップS31において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS32において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS33において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行い、正面から撮像された場合の顔画像に対応するように変換する。変換された顔画像は、局所特徴計算部71に供給される。
ステップS34において、局所特徴計算部71は、例えば、図2を用いて説明したような、ガボアフィルタ(Gabor Filter)を用いて、局所特徴量を算出する。
ステップS35において、局所特徴計算部71は、ガボアフィルタにより得られた局所特徴量のうちの少なくとも一部を、例えば、図3を用いて説明したように、何組か組み合わせ、認識器生成部72に供給する。組み合わせの方法と生成される組み合わせの数は、実験的または経験的に、予め決められるものであっても良いが、例えば、図3を用いて説明したようにして、周波数帯域および方向が連続するようにして選択するものとすると好適である。
ステップS36において、認識器生成部72の相関係数算出部101は、学習用モデル特徴量記憶部102から、学習モデルの特徴量を読み出して、局所特徴計算部71から供給された局所特徴量と同一の組み合わせの学習モデルの組み合わせとの相関係数を算出する。
ステップS37において、図10を用いて後述する認識器生成処理が実行される。
ステップS38において、認識器生成部72は、ステップS36の処理により生成された認識器を、学習データ格納部73に供給して格納させるとともに、弱認識器に対応するモデル特徴量を学習用モデル特徴量記憶部102より読み出し、学習データ格納部73に記憶させる。さらに、認識器選択部107は、選択した弱認識器の誤り率に基づいて、信頼度を計算し、学習データ格納部73に記憶させ、処理が終了される。
このような処理により、学習モードにおいて、認識器が生成されて学習データ格納部73に格納されるとともに、認識器に対応するモデル特徴量とその認識器の信頼度が、学習データ格納部73に格納される。すなわち、認識器生成に用いられたGabor Featureは、どの特徴点に対するどの組み合わせであるか(例えば、全部で40個ガボアフィルタが用意されていたら、そのうちのいずれのフィルタの組み合わせであるか)を示す認識用特徴量、また、その認識器の確からしさを示す情報が、学習データ格納部73に格納される。
ここで、図10のフローチャートを参照して、図9のステップS37において実行される、認識器生成部72による認識器生成処理について説明する。
ステップS91において、重み設定部104は、例えば、学習用画像毎の重みWiを全て1/Mに初期化すると共に、カウンタQを1に、認識器R(x)を0にそれぞれ初期化する。ここで、iは、複数の学習用入力画像PIiをそれぞれ識別するものであり、1<i<Mである。したがって、ステップS91の処理により、全ての学習用画像PIiは、いずれも正規化された同一の重み(=1/M)に設定されることになる。
ステップS92において、サンプリング部103は、特徴点k(k=1,2,3,・・・N)のそれぞれの局所特徴量の組み合わせごと、すなわち、1枚の学習用画像に対して供給されたN×Pの特徴量(すなわち、相関係数算出部101により算出された相関係数)ごとに、学習用入力画像PIiの重みWiに応じてM個の特徴量を選択し、並び替え部105に供給する。
すなわち、例えば、図8を用いて説明したように、学習用画像PI1について(A1-1,A1-2,・・・A1-p,A2-1,A2-2,・・・A2-p,・・・AN-1,AN-2,・・・AN-p)として、N×Pこの特徴量が相関係数算出部101からサンプリング部103に供給される。同様に、学習用画像PI2については、(B1-1,B1-2,・・・B1-p,B2-1,B2-2,・・・B2-p,・・・BN-1,BN-2,・・・BN-p)として、学習用画像PI3については、(C1-1,C1-2,・・・C1-p,C2-1,C2-2,・・・C2-p,・・・CN-1,CN-2,・・・CN-p)として、そして、以下同様に、学習用画像PIMについては、(M1-1,M1-2,・・・M1-p,M2-1,M2-2,・・・M2-p,・・・MN-1,MN-2,・・・MN-p)として、それぞれの特徴点の特徴量が相関係数算出部101からサンプリング部103に供給される。
そして、この場合、特徴点k=1の1つ目の局所特徴量の組み合わせにおける特徴量は、グループGr1-1で示される(A1-1,B1-1,C1-1,・・・M1-1)であり、同様に、特徴点k=1の2つ目の局所特徴量の組み合わせにおける特徴量は、グループGr1-2で示される(A1-2,B1-2,C1-2,・・・M1-2)であり、以下、同様に、特徴点k=NのP番目の局所特徴量の組み合わせにおける特徴量は、グループGrN-Pで示される(AN-P,BN-P,CN-P,・・・MN-P)となる。
すなわち、各特徴点kのそれぞれの局所特徴量のP種類の組み合わせについて、学習用画像PIiによるM個の特徴量のグループが設定されることになる。
サンプリング部103は、各特徴点kのそれぞれの局所特徴量のP種類の組み合わせごとに、各学習用画像PIiに設定された重みに応じて特徴量をM個抽選で抽出する。最初の処理においては、いずれの重みWiも等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになるので、ここでは、最初の処理では各特徴点kのそれぞれの局所特徴量の組み合わせにおいて、全ての特徴量が選択されたものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
ステップS93において、並び替え部105は、N個の特徴点のそれぞれの局所特徴量の組み合わせごとにサンプリングされたM個の特徴量のグループ毎に、特徴量を昇べきの順、または、降べきの順に並び替えて、認識器設定部106に供給する。
ステップS94において、認識器設定部106は、入力特徴量が抽出された学習用画像に認識しようとする対象物体が含まれている画像であるか否かを示す情報に基づいて、特徴点kのそれぞれのP種類の局所特徴量の組み合わせごとに、M個の特徴量のそれぞれについて、閾値を変化させながら誤り率計算部121を制御して、上述した式(9)で示すように誤り率ejkを計算させ、誤り率ejkが最小となるように閾値を設定する。ここで、特徴点kのそれぞれの局所特徴量の組み合わせごとの閾値thjkが、1個の弱認識器fjkとなる。また、認識器設定部106は、弱認識器毎の誤り率ejkを認識器選択部107に供給する。すなわち、N個存在する特徴点kのそれぞれのP種類の局所特徴量の組み合わせごとについて、すなわち、N×P個の特徴量に応じて、N×P個の弱認識器fjkが設定され、N×P個のそれぞれについて(弱認識器fjkのそれぞれについて)誤り率ejkが求められることになる。ここで、弱認識器fjkは、認識しようとする対象物体を含む場合「+1」を出力し、認識しようとする対象物体を含まない場合「−1」を出力する関数である。
すなわち、図5を用いて説明した場合と同様にして、ある特徴点におけるある局所特徴量の組み合わせに対応する特徴量(得られた相関係数)が、昇べき、または、降べきの順に並べられた場合、設定された閾値thjkの位置と、その閾値に対してどちら側に認識しようとする対象物体が含まれた学習用画像に対応する特徴量と認識しようとする対象物体が含まれない学習用画像に対応する特徴量が並べられているかに基づいて、エラーであるか否かが判定される。誤り率計算部121は、上述した式(9)で示されるように、学習用入力画像の正誤情報(認識しようとする対象物体が含まれているか否かの情報)に基づいて、エラーであるとみなされた特徴量が抽出された学習用入力画像の重みWiを加算し、誤り率ejkを計算する。
ステップS95において、認識器選択部107は、N個の弱認識器fjkのうち、誤り率ejkが最小となる弱認識器fjkを選択する。
ステップS96において、認識器選択部107は、選択した弱認識器の最小の誤り率ejkに基づいて、上述した式(10)で示されるように信頼度cjkを計算し、計算結果を重み更新部108に供給する。
ステップS97において、重み更新部108は、供給された信頼度cjkに基づいて、上述した式(11)で示されるように各学習用入力画像毎に重みWiを再計算するとともに、全ての重みWiを正規化して更新し、更新結果を重み設定部104に供給する。重み設定部104は、重み更新部108より供給されてくる重みの更新結果に基づいて、学習入力画像毎の重みを設定する。
ステップS98において、認識器選択部107は、選択された弱認識器fjkを基に、Q番目の弱認識器fQを学習データ格納部73に記憶させる。換言すれば、認識器選択部107は、学習データ格納部73に記憶されている(Q−1)番目の弱認識器fQ-1を、選択された弱認識器fjkを加えたQ番目の弱認識器fQに更新させる。
すなわち、認識器選択部107は、上述した式(12)で示されるように、認識器R(x)を更新して、上述した式(13)で示される形式で学習データ格納部73に記憶させる。
このようにして、重み付けされた弱認識器fjkが認識器R(x)に加算される。
ステップS99において、認識器選択部107は、弱認識器fjkの特徴点kの対応する局所特徴量の組み合わせにおけるモデル特徴量を、学習用モデル特徴量記憶部102より読み出し、学習データ格納部73に記憶させる。
ステップS100において、認識器選択部107は、カウンタQがLより大きいか否かを判定し、Lよりも大きくないと判定された場合、その処理は、ステップS101に進み、カウンタQが1インクリメントされ、ステップS92に戻る。ステップS100において、カウンタQがLよりも大きいと判定された場合、処理は、終了する。
以上の処理により、L個の比較的誤り率の低い弱認識器fQ(1<Q<L)からなる認識器R(x)が学習データ格納部73に記憶されると共に、それぞれの弱認識器fQで使用されるべき特徴点kのモデル特徴量が学習データ格納部73に記憶される。ここで、Lは、L≦N×Pである。
なお、式(13)の認識器は、L個の弱認識器の多数決により、認識しようとする対象物体の有無を出力する関数であると言える。また、このようにして、弱認識器を学習処理により重み付けしつつ付加することを繰り返し、認識器を生成する学習処理は、Discrete Adaboost Algorithmと称される。
すなわち、以上の認識器生成処理により、誤り率の高い学習用入力画像の学習用入力特徴量の重みが順次大きくなり、誤り率の低い学習用入力特徴量の重みが小さくなるように、モデル特徴量ごとに認識器と誤り率が計算される処理が繰り返されることになる。したがって、繰り返し処理(ステップS92乃至S101の処理)の中で、認識器を設定する際に選択される学習用入力特徴量(ステップS92で選択される学習用入力特徴量)は、徐々に誤り率の高いものが選択されやすくなるので、認識し難い学習用入力特徴量が繰り返されるほどに選択されて学習が繰り返されることになるため、認識し難い学習用入力画像の特徴量がより多く選択されることになり、最終的に高い認識率の認識器を生成することが可能となる。
また、繰り返し処理(ステップS92乃至S101の処理)の中で、認識器選択部107は、常に誤り率の最も低いモデル特徴量に対応する弱認識器を選択することになるので、学習処理の繰り返しにより、常に信頼度の最も高いモデル特徴量についての弱認識器が選択されて認識器に加算されることになり、繰り返されるごとに精度の高い弱認識器が順次加算されることになる。
すなわち、以上の学習処理により、特徴点および組み合わせごとに、特徴量に幾何学的な拘束が付加された特徴量を用いて、誤り率ejkの低いL個の弱認識器fjkからなる認識器R(x)が生成されることになる。その結果として、信頼度の高い弱認識器のみからなる認識器が構成されることになるので、限られた個数の弱認識器で信頼度の高い認識器を構成することが可能となるので、後述する認識処理における演算処理数を低減させつつ、認識精度を向上させることが可能となる。
また、認識器の数を多くすれば(上述したLを大きくすれば)、弱認識器をより多くすることで、認識精度を向上させることが可能となる。一方、認識器の数を少数にしても(上述したLを小さくしても)、選択される弱認識器は、少数ながらも信頼度の高い弱認識器のみを用いた認識処理を実行することができるので、信頼度を維持しつつ認識処理における演算処理数を低減させることが可能となる。すなわち、必要に応じて、学習処理に手間を掛けて認識器の生成個数を多くすることでより高い精度の認識器を生成することも可能であるし、逆に、学習に手間を掛けず生成する認識器の個数を減らして1発学習に近い学習にしても比較的精度の高い認識器を生成することが可能となる。
次に、図11のフローチャートを参照し、画像処理装置11が実行する認識処理1について説明する。
ステップS131において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS132において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS133において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行い、正面から撮像された場合の顔画像に対応するように変換する。変換された顔画像は、局所特徴計算部71に供給される。
ステップS134において、局所特徴計算部71は、例えば、図2を用いて説明したような、ガボアフィルタ(Gabor Filter)を用いて、局所特徴量を算出する。
ステップS135において、局所特徴計算部71は、学習データ格納部73から、認識用特徴量の情報を取得する。
ここで、認識用特徴量の情報は、認識器生成に用いられたGabor Featureは、どの特徴点に対するどの組み合わせであるか(例えば、全部で40個ガボアフィルタが用意されていたら、そのうちのいずれのフィルタの組み合わせのものが、どの特徴点において用いられて認識器に用いられたのであるか)を示す情報である。
例えば、認識器の生成において、全部で40個のガボアフィルタが用意されていた場合に、認識用特徴量に示されたある特徴点の局所特徴量の組み合わせの中に、40個のガボアフィルタにより得られた特徴量を全て含む組み合わせ、すなわち、40次元の特徴ベクトルが含まれていても良いし、含まれていなくても良い。換言すれば、認識用特徴量の情報は、学習によって得られた認識器によっては、40個以下のGabor Featureの複数の組み合わせである場合と、40個未満のGabor Featureの複数の組み合わせである場合とがある。
ステップS136において、局所特徴計算部71は、ガボアフィルタにより得られた局所特徴量と、取得された認識用特徴量の情報に基づいて、例えば、図3を用いて説明したような、認識用特徴量に示された特徴点の局所特徴量の組み合わせを生成し、相関係数算出用情報として、顔認識部74に供給する。
ステップS137において、顔認識部74は、顔登録データベース35から、登録顔の特徴量を読み出す。
ステップS138において、顔認識部74は、学習データ格納部73から認識器を読み出し、特徴量を代入して、計算する。具体的には、顔認識部74は、相関係数算出用情報として局所特徴計算部71から供給された認識用特徴量に示された特徴点の局所特徴量の組み合わせと、顔登録データベース35から読み出された登録顔の特徴量のうちの認識用特徴量に示された特徴点の局所特徴量の組み合わせに対応するものとの相関係数を演算し、得られた相関係数を特徴量として、学習データ格納部73から読み出された認識器に代入して計算する。
すなわち、上述したように、相関係数算出用情報として局所特徴計算部71から供給されてくる特徴量は、学習の際、信頼度の高い弱認識器fjkの計算に必要な特徴量であるので、顔認識部74は、供給されてくる選択された特徴量を各弱認識器fjkに代入して認識器R(x)を計算する。そして、顔認識部74は、各弱認識器fjkの判定結果の重み付けられた投票結果を計算結果として認識結果出力部36に供給する。
ステップS139において、認識結果出力部36は、顔認識部74から供給された計算結果に基づいて、対象物体の有無の認識結果を出力する。すなわち、顔認識部74より供給されてくる計算結果は、上述した式(13)で示される演算結果であるので、認識結果出力部36は、演算結果として「+1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれているという結果を出力し、演算結果として「−1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれていないという結果を出力して、処理が終了される。
以上の処理により、学習処理の過程で、特徴点毎に特徴量に幾何学的な弱い拘束が付加された特徴量が用いられて、生成された誤り率ejkの比較的低いL個の弱認識器fjkからなる認識器R(x)により対象物体の認識処理がなされる。
なお、以上においては、Discrete Adaboost Algorithmに基づいて、学習処理を実行する例について説明してきたが、それ以外のBoosting Algorithmを適用するようにしてもよく、例えば、Gentle Adaboost Algorithmを用いるようにしてもよい。Discrete Adaboost Algorithmと、Gentle Adaboost Algorithmとは、前者の認識器の出力結果が離散変量であるのに対して、後者は、連続変量である点で異なる。しかしながら、前者においては、信頼度が乗じられるため、出力結果は、実質的に連続変量として扱われており、本質的に処理の違いはない。Gentle Adaboost Algorithmを適用した場合、上述した式(11)、および式(13)は、以下の式(14)および式(15)に置き換えられることになるが、処理は同様である。
sign(R(x))=sign(R(x)+fjk) ・・・(15)
すなわち、Gentle Adaboost Algorithmを適用した場合、弱認識器fjkが、それぞれ信頼度を含んだ連続変量の値を出力することになるため、対応した重み付けがなされ、信頼度の計算が省かれることになる。
なお、ここでは、顔画像の認識において、ガボアフィルタおよびブースティングアルゴリズムを用いた場合について説明したが、顔画像以外の画像認識処理で合っても、また、画像認識以外であっても、複数の特徴量からなる特徴量ベクトルを取得し、学習時には、学習用の特徴量ベクトルとの相関係数を算出し、判定処理時には、判定処理用の登録された特徴量ベクトルとの相関係数を算出するような場合において、本発明は適用可能である。
例えば、顔以外の画像の一致不一致を判定する場合や、音声認識処理などにおいても、複数の次元Sの特徴量ベクトルを用いて相関係数を算出する場合、S次元の特徴量ベクトルから得られる1つの相関係数のみで一致不一致を判定するのではなく、S次元の特徴量からS次元以下の複数の特徴量ベクトルを生成し、これを用いて、複数の相関係数を算出することにより、判定の精度を向上させることができる。
また、以上説明したように、学習および判定にブースティングアルゴリズムを用いた場合には、例えば、SVM(support vector machine)を用いた場合と比較して、次元数が増加した場合でも、計算量が爆発的に多くなってしまうようなことが無いため、好適である。
また、特徴量の抽出に、ガボアフィルタを用いた場合、上述したような手法により、局所領域(ある特徴点)の特徴を最も現しているフィルタの周波数や方向を選んで学習することが可能なことから、ブースティングアルゴリズムを用いて、学習および判定を行うことが適している。
以上説明したように、例えば、センサ等の情報取得部により所定の情報、例えば、顔画像などの第1の特徴量が取得され、例えば、図1における顔検出部や顔画像変換部33などのような情報処理手段により、必要に応じて所定の処理が施され、この特徴量と比較される学習用、または、判定用に登録された(または、同様にしてセンサ等の情報取得部により取得された)第2の特徴量と、取得され(、必要に応じて、所定の処理が施され)た第1の特徴量が、同一信号源のものであるか否かが識別される場合に、第1の特徴量の相関ベクトルおよび第2の特徴量の相関ベクトルの全ての次元のみならず、少なくとも一部の次元を用いた相関係数ベクトルを複数種類算出するようにするようにしたので、情報の分類性能を飛躍的に向上させることが可能となる。
40種類のガボアフィルタを全て用いた40次元の特徴ベクトルを用いて1種類だけ相関係数を求めた場合における検出精度を図12に示し、40種類のガボアフィルタのうちの一部を選択し、8次元の異なる複数の組み合わせによる特徴ベクトルを用いて複数の相関係数を求めた場合における検出精度を図13に示す。
図12および図13とも、縦軸が、正しく検出された割合を示し、横軸が、誤検出された割合を示す。すなわち、グラフの変化が急峻なほど、検出精度がよいということになる。
図12および図13に示されるように、40次元の特徴ベクトルを用いて1種類だけ相関係数を求めた場合における検出精度よりも、40種類のガボアフィルタのうちの一部を選択し、8次元の異なる複数の組み合わせによる特徴ベクトルを用いて複数の相関係数を求めた場合における検出精度のほうが良い。すなわち、得られた特徴量の相関ベクトルの全ての次元のみならず、少なくとも一部の次元を用いた相関係数ベクトルを複数種類算出することにより、情報の分類性能を飛躍的に向上させることが可能となる。
ところで、上述した画像処理装置11は、学習モードと認識モードの2つの動作モードで動作し、認識器生成部72により生成された認識器を用いて、認識処理を行うようになされていたが、上述した学習処理装置11の学習モードによって得られた認識処理のための情報、すなわち、認識器と認識用特徴量の情報とを内部に予め記憶しておくことにより、認識器生成部72を備えることなく、認識モードの処理のみを行う画像処理装置を構成することが可能である。
図14は、学習処理によって得られた認識処理のための情報を用いて認識処理を行うことが可能な画像処理装置201の構成を示すブロック図である。
なお、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、画像処理装置201は、顔認識処理部34に代わって顔認識処理部211が設けられている以外は、図1の画像処理装置11と基本的に同様の構成を有するものである。また、顔認識処理部211は、局所特徴計算部71に代わって局所特徴計算部221が備えられ、顔認識部74に代わって顔認識部222が備えられ、学習データ格納部73に代わって、学習データ格納部223が備えられ、認識器生成部72が省略されている。
顔認識処理部211は、認識器生成部72を有していない。しかしながら、学習データ格納部223には、上述した学習処理装置11の学習モードによって得られた認識処理のための情報が、予め記憶されている。
すなわち、学習データ格納部223には、上述した画像処理装置11の認識器生成部72が学習モードにおいて生成した認識器と認識用特徴量の情報とを記憶している。具体的には、上述した学習処理装置11の学習モードによって、局所特徴計算部71により算出された学習用画像の特徴量と、予め保持している学習用モデルの特徴量とを用いて、Adaboostを利用した統計学習処理が実行されることにより生成された認識器、および、その認識器に関する情報(相関値と、その認識器の確からしさを示す情報)、並びに、認識器の学習の過程で抽出された、対象となる顔画像を認識するのに大きく影響するモデル特徴量を示す情報、すなわち、認識器において用いられているのが、いずれの特徴点のどの局所特徴量であるか(ガボアフィルタのいずれのフィルタ方向と周波数との組であるか、もしくは、どの矩形領域部分であるか)を示す情報である認識用特徴量が、学習データ格納部223に記憶されている。
画像処理装置201は、人物の撮像画像を用いて、画像認識処理を実行し、その人物が登録された人物か否かを判定する処理を実行することができる。
画像処理装置201は、学習モードは行わず、学習データ格納部223に格納された認識器と、認識用特徴量の情報とを用いて、画像を認識し、認識対象の画像が、登録された人物の顔を含むものであるか否かを判定する処理を実行する。
なお、ここでも、画像処理装置201に顔登録データベース35が含まれるものとして説明を続けるが、顔登録データベース35は、図示しないネットワークなどを介して、画像処理装置201に接続されているような構成とすることも可能である。ネットワークなどを介して顔登録データベース35が接続されることにより、複数の画像処理装置201で1つの顔登録データベース35を共有することが可能となる。
上述したように、画像取得部31乃至顔画像変換部33は、図1の画像処理装置11と基本的に同様の構成を有するものである。
すなわち、画像取得部31は、例えば、カメラなどを含む構成とされ、人を撮像する機能を有するか、または、外部に備えられたカメラ、もしくは、他の装置から、撮像された人の画像を取得する。画像取得部31に取得された画像は、顔検出部32に供給される。
顔検出部32は、画像取得部31から供給された画像を解析することにより、人の顔の部分(顔の位置と大きさ)を抽出し、抽出された人の顔の部分の画像(以下、顔画像と称する)を検出する。
顔画像変換部33は、顔特徴点検出部51、および、顔アライメント部52から構成される。
顔特徴点検出部51は、顔検出部32から供給された顔画像とから、後述する顔アライメント部52によるモーフィング処理に用いられるアライメント用特徴点を検出する。顔アライメント部52は、顔検出部32から供給された顔画像、および、顔特徴点検出部51により検出されたアライメント用特徴点を解析することにより、抽出された顔が、どの方向を向いているかを検出し、顔特徴位置が基準位置にくるように、アフィン変換などのモーフィング処理を行う。
そして、顔認識処理部211は、局所特徴計算部221、学習データ格納部223、および、顔認識部222を含んで構成される。
抽出された特徴点が基準位置に直された顔画像は、顔認識処理部211の局所特徴計算部221に供給される。局所特徴計算部221は、学習データ格納部223から、認識用特徴量の情報を取得する。そして、局所特徴計算部221は、供給された顔画像の、認識用特徴量に合致する特徴点における局所的な特徴量を計算する。局所特徴計算部221は、ガボアフィルタ(Gabor Filter)で構成される。
局所特徴計算部221は、それぞれ異なる方向および周波数の複数のガボアフィルタを用いて、認識用特徴量に合致する特徴点における特徴量を計算する。局所特徴計算部221は、ここでは、図2を用いて説明した場合と同様に、8種類の方向と5通りの周波数を採用して、合計40個のガボアフィルタのうちの少なくとも一部を用いて、認識用特徴量に合致する特徴点の特徴量を計算する処理を行うものとする。
局所特徴計算部221により算出された特徴量は、顔認識部222に供給される。
顔認識部222は、学習データ格納部223に格納されている認識器を用いて、局所特徴計算部221により算出された認識用特徴量に合致する特徴点における特徴量と、顔登録データベース35に登録されている登録顔画像データを比較、すなわち、相関係数を計算し、登録されている人物と一致するか否かを判断し、判断結果を認識結果出力部36に供給する。すなわち、顔認識部222は、学習データ格納部223に格納されている認識器の信頼度に基づいて、認識器の判定結果の多数決を行い、登録されている人物と一致するか否かの判断を実行する。
顔登録データベース35は、登録されている人物の認識に必要な特徴量の情報が登録されている。すなわち、顔登録データベース35には、登録されている人物の顔画像の全ての特徴点における全てのGabor Jetが登録されていても良いが、少なくとも、認識用特徴量に対応する特徴量の情報が登録されていればよい。
また、顔登録データベース35に登録されている特徴量のデータ(登録顔画像データ)は、図1の画像取得部31乃至局所特徴計算部71、または、図14の画像取得部31乃至局所特徴計算部221の処理が施されることにより、取得され、登録されるデータであっても良いし、図1の画像取得部31乃至局所特徴計算部71、または、図14の画像取得部31乃至局所特徴計算部221の処理が施されて得られるデータと同様のデータであれば、外部から取得されて登録されるデータであってもよい。
認識結果出力部36は、顔認識部222から供給された判断結果を、例えば、ブザー音、テキスト表示、LED点灯などによって外部に通知したり、判断結果を外部の装置に出力する。具体的には、例えば、認識結果出力部36は、例えば、ディスプレイなどを含んで構成されるものとしても良く、判定結果を、メッセージなどの形式で表示するものとしてもよい。
このようにして、画像処理装置201は、特徴量を比較することにより、得られた人の顔画像が登録されている人の顔画像と一致するか否かの識別を行う。
次に、図15のフローチャートを参照し、画像処理装置201が実行する認識処理2について説明する。
ステップS211において、顔検出部32は、画像取得部31により取得された顔画像を含む画像から顔に対応する部分を検出し、検出された顔画像を、顔特徴点検出部51および顔アライメント部52に供給する。
ステップS212において、顔特徴点検出部51は、顔の特徴的な部分(顔特徴位置)、例えば、目、鼻、口といった特徴的な部分を検出する。
ステップS213において、顔アライメント部52は、顔検出部32から供給された顔画像に対して、顔特徴点検出部51により検出された顔特徴点に基づいて、例えば、アフィン変換などによりモーフィング処理を行い、正面から撮像された場合の顔画像に対応するように変換する。変換された顔画像は、局所特徴計算部221に供給される。
ステップS214において、局所特徴計算部221は、学習データ格納部223から、認識用特徴量の情報を取得する。
ここで、認識用特徴量の情報は、認識器生成に用いられたGabor Featureは、どの特徴点に対するどの組み合わせであるか(例えば、全部で40個ガボアフィルタが用意されていたら、そのうちのいずれのフィルタの組み合わせのものが、どの特徴点においてどの認識器に用いられたのであるか)を示す情報である。
ステップS215において、局所特徴計算部221は、例えば、図2を用いて説明したような、ガボアフィルタ(Gabor Filter)を用いて、認識用特徴量の情報に合致する特徴点の局所特徴量を算出する。
ステップS216において、局所特徴計算部221は、ガボアフィルタにより得られた局所特徴量と、取得された認識用特徴量の情報に基づいて、例えば、図3を用いて説明したような、認識用特徴量に示された特徴点の局所特徴量の組み合わせを生成し、相関係数算出用情報として、顔認識部222に供給する。
ステップS217において、顔認識部222は、顔登録データベース35から、登録顔の特徴量を読み出す。
ステップS218において、顔認識部222は、学習データ格納部223から認識器を読み出し、特徴量を代入して、計算する。具体的には、顔認識部222は、相関係数算出用情報として局所特徴計算部221から供給された認識用特徴量に示された特徴点の局所特徴量の組み合わせと、顔登録データベース35から読み出された登録顔の特徴量のうちの認識用特徴量に示された特徴点の局所特徴量の組み合わせに対応するものとの相関係数を演算し、得られた相関係数を特徴量として、学習データ格納部223から読み出された認識器に代入して計算する。
すなわち、上述したように、相関係数算出用情報として局所特徴計算部221から供給されてくる特徴量は、学習の際、信頼度の高い弱認識器fjkの計算に必要な特徴量であるので、顔認識部222は、供給されてくる選択された特徴量を各弱認識器fjkに代入して認識器R(x)を計算する。そして、顔認識部222は、各弱認識器fjkの判定結果の重み付けられた投票結果を計算結果として認識結果出力部36に供給する。
ステップS219において、認識結果出力部36は、顔認識部222から供給された計算結果に基づいて、対象物体の有無の認識結果を出力する。すなわち、顔認識部222より供給されてくる計算結果は、上述した式(13)で示される演算結果であるので、認識結果出力部36は、演算結果として「+1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれているという結果を出力し、演算結果として「−1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれていないという結果を出力して、処理が終了される。
以上の処理により、学習データ格納部223に格納されている認識用特徴量の情報に基づいて、認識処理に必要な特徴量のみが抽出され、学習データ格納部223に格納されている、誤り率ejkの比較的低いL個の弱認識器fjkからなる認識器R(x)により、対象物体の認識処理がなされる。
なお、画像処理装置201においても、Discrete Adaboost Algorithmに基づいて、学習処理を実行する例について説明してきたが、それ以外のBoosting Algorithmを適用するようにしてもよく、例えば、Gentle Adaboost Algorithmを用いるようにしてもよい。Discrete Adaboost Algorithmと、Gentle Adaboost Algorithmとは、前者の認識器の出力結果が離散変量であるのに対して、後者は、連続変量である点で異なる。しかしながら、前者においては、信頼度が乗じられるため、出力結果は、実質的に連続変量として扱われており、本質的に処理の違いはない。Gentle Adaboost Algorithmを適用した場合、上述した式(11)、および式(13)に代わって、上述した式(14)および式(15)が用いられることになるが、処理は同様である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体などからインストールされる。この場合、例えば、図1を用いて説明した画像処理装置11は、図16に示されるようなパーソナルコンピュータ301により構成される。
図16において、CPU(Central Processing Unit)311は、ROM(Read Only Memory)312に記憶されているプログラム、または記憶部318からRAM(Random Access Memory)313にロードされたプログラムにしたがって、各種の処理を実行する。RAM313にはまた、CPU311が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU311、ROM312、およびRAM313は、バス314を介して相互に接続されている。このバス314にはまた、入出力インタフェース315も接続されている。
入出力インタフェース315には、キーボード、マウスなどよりなる入力部316、ディスプレイやスピーカなどよりなる出力部317、ハードディスクなどより構成される記憶部318、モデム、ターミナルアダプタなどより構成される通信部319が接続されている。通信部319は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース315にはまた、必要に応じてドライブ320が接続され、磁気ディスク331、光ディスク332、光磁気ディスク333、もしくは、半導体メモリ334などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部318にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図16に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク331(フロッピディスクを含む)、光ディスク332(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク333(MD(Mini-Disc)(商標)を含む)、もしくは半導体メモリ334などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM312や、記憶部318に含まれるハードディスクなどで構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 画像処理装置, 31 画像取得部, 32 顔検出部, 33 顔画像変換部, 34 顔認識処理部, 35 顔登録データベース, 36 認識結果出力部, 51 顔特徴点検出部, 52 顔アライメント部, 71 局所特徴計算部, 72 認識器生成部, 73 学習データ格納部, 74 顔認識部, 101 相関係数算出部, 102 学習用モデル特徴量記憶部, 103 サンプリング部, 104 重み設定部, 105 並び替え部, 106 認識器設定部, 107 認識器選択部, 108 重み更新部, 121 誤り率計算部, 201 画像処理装置, 211 顔認識処理部, 221 局所特徴計算部, 222 顔認識部, 223 学習データ格納部