以下、添付図面を参照しながら本発明の実施形態を説明する。
<第1の実施形態>
本発明の第1の実施形態として、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを、複数の識別器により識別する方法において用いる複数の識別器の学習方法の例を示す。尚、本実施形態では、この識別器として決定木を用いる。
図1に、本実施形態の識別器学習方法の処理フローチャートを示す。また、図2に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図1及び図2を用いて、本実施形態の識別器学習方法の例について説明する。
学習データ入力ステップ10では、複数の識別器の学習に用いる、多数の学習データを入力する。本実施形態では、多数の学習データとして、多数の人物の顔画像を用いる。具体的には、本実施形態では、人物の顔の領域を切り出した、40×40画素のグレースケール画像を用いる。
以下、このような画像を、単に顔画像と記載する。これらの顔画像は、予め定めた複数の特定の人物の顔画像と、特定の人物以外の任意の人物の顔画像から構成される。本実施形態では、予め定めた特定の人物を、A〜Jまでの10人とし、それらの人物の顔画像に関しては、対応する人物のラベルとともに、図2の学習データ保持部20DBに記録する。特定の人物以外の任意の人物の顔画像については、予め定めた特定の人物ではないというラベルとともに、同じく学習データ保持部20DBに記録する。
本実施形態のデータ処理では、10人の特定の人物に関しては、それぞれ100枚の、様々な状況下で撮影された顔画像を学習データとする。また、特定の人物以外の、任意の人物の顔画像については、同じく様々な状況で撮影された3000枚の顔画像を学習データとし、計4000枚の顔画像を学習データとして用いる。学習データ入力ステップ10での処理は、図2の学習データ入力部20により実行され、このような、計4000枚の顔画像が、それぞれに対応するラベルとともに、学習データ保持部20DBに記録される。
次に、データ選択確率初期化ステップ11において、図2に示した、入力された学習データそれぞれについてのデータ選択確率21dを用意し、それらの値を初期化する処理を行う。データ選択確率21dは、後述するデータ選択ステップ14において参照されるものである。より具体的には、詳細は後述するが、データ選択ステップ14において、学習データからデータを選択する際に、この値に比例した確率でデータを選択する。
このデータ選択確率初期化ステップ11は、図2のデータ選択確率初期化部21により実行され、入力された各学習データそれぞれについて、1つの非負実数値を選択確率として設定する選択確率設定を行う。このデータ選択確率初期化ステップ11は、この実数値の初期化を行う処理であり、本実施形態では、全ての学習データに均等な値を設定する。具体的には、本実施形態では、単純に、この値に1を設定する。尚、本実施形態では、各学習データに均等な値を設定するようにしているが、これに限るものではなく、例えば、予め定めた特定の人物に対応する学習データには、より大きい値を設定する等してもよい。
続いて、決定木学習開始ステップ12において、1本目の決定木の学習を開始する。図2の破線で囲まれた部分が、決定木の学習を行う処理ブロック200である。ここでは、学習データ設定部22が、図2の学習データ保持部20DBに記録されている全学習データである学習データセットを、決定木の最上位ノードに設定する学習データ設定の処理を行う。
次に、ノード選択ステップ13において、決定木の1つのノードを選択する。学習の開始時は、決定木のノードは最上位ノードしか存在しないので、ここで最上位ノードが選択される。それ以降では、後述のデータ分配ステップ17においてリーフノードと判定されたノード以外のノードを選択することになる。このノード選択処理は、図2のノード選択部64により実行される。
続いて、データ選択ステップ14において、ノード選択ステップ13で選択されたノードに設定されている学習データから、少数の学習データを選択する処理を行う。この処理は、図2のデータ選択部24により実行される。データ選択部24は、データ選択確率21dを参照して、選択されたノードに設定されている学習データそれぞれに対応するデータ選択確率に従って、少数の学習データを選択する。本実施形態では、少数の学習データとして、ラベルの異なる2つの学習データを選択する。
そして、データ選択ステップ14において選択された少数の学習データに基づいて、分岐規則決定ステップ15で、図2の分岐規則決定部25により、当該ノードにおける分岐規則を決定する処理を行う。ここでは、選択した少数の学習データが、より良く分割されるように、分離度を基準にして分岐規則を求め、それを当該ノードにおける分岐規則とする。本実施形態の決定木の各ノードでは、画像データのある位置の1つの画素値が、所定画素値より大きいか否かに基づいて分岐する方法を用いる。
そこで、本実施形態では、選択した2つの学習データに関して、同一の画素位置において、最も差分の大きい画素位置を探索し、その位置におけるそれぞれの画素の平均値を求める。そして、差分の最も大きい画素位置における画素値が、求めた平均値より大きいか否かに基づいて分岐する分岐規則を、当該ノードの分岐規則とする。
本実施形態では、このような分岐規則を、より良く分割するような分岐規則として決定するが、本発明はこれに限るものではなく、決定木の分岐方法に応じて任意の方法を用いればよい。例えば、決定木の分岐方法として、画像中の異なる2つの位置x1、x2の画素値を比較し、その画素値の大小によって分岐するような分岐方法を用いる場合、以下の式の基準で、2つの位置を決定するといったようにすればよい。
ここで、I(x)は、位置xにおける画素値を意味し、Iの添え字は、選択された2つの画像を区別するためのものである。このように、決定木に用いる分岐方法や、対象となるデータに応じて、より良く分割するような分岐規則を決定してやればよい。
データ選択確率更新ステップ16では、データ選択ステップ14で選択された少数の学習データに対応するデータ選択確率を更新する処理を行う。この処理は、図2のデータ選択確率更新部26により実行され、データ選択確率21dに記録されている、データ選択部24で選択した学習データに対応するデータ選択確率を更新する。ここでは、データ選択ステップ14で選択された学習データが、以降のデータ選択ステップ14での処理において選択されにくくなるように、選択された学習データに対応するデータ選択確率を小さくする処理を行う。具体的には、本実施形態では、対応するデータ選択確率に1以下の値(例えば、0.1等)を乗じることにより更新する。
次に、データ分配ステップ17において、分岐規則決定ステップ15で決定した分岐規則に基づいて、当該ノードに設定されている学習データの集合の分割を行い、分割した学習データの部分集合それぞれを、下位のノードに設定する処理を行う。この処理は、図2のデータ分配部27で実行される。本実施形態においては、2つに分岐する分岐規則を、決定木の分岐規則として用いるので、当該ノードに設定されている学習データは、2つの学習データに分割される。
この分割された学習データそれぞれに対して新たなノードを生成し、各ノードに、それぞれの学習データを設定する。この時、下位の各ノードに設定された学習データが、全て同じラベルのデータであるか否かを判定し、学習データのラベルが全て同じであったら、そのノードをリーフノードと判定する。ここでリーフノードと判定されたノードについては、これ以上の分割を行わない。そのため、このリーフノードについては、前述のように、ノード選択ステップ13において選択をしないようにする。
そして、全ノード終了判定13eにおいて、リーフノード以外のノードが全て選択されたか否かを判定し、まだリーフノード以外のノードが残っているならば、上記ノード選択ステップ13からデータ分配ステップ17の処理を繰り返し実行する。このような処理を繰り返し行い、リーフノード以外の全てのノードが選択されたと判定された段階で、1本の決定木の学習処理が終了となる。
1本の決定木の学習処理終了後、決定木データ出力ステップ18において、学習が終了した決定木のデータを外部に出力する処理を行う。この処理は、図2の決定木データ出力部28により実行され、分岐規則決定部25で決定された、各ノードにおける分岐規則、及び、リーフノードに設定された学習データのラベル情報の記録を行う。
決定木データ出力ステップ18での処理終了後、予め定めた所定の本数の決定木の学習が行われるまで、決定木学習開始ステップ12に戻り、決定木の学習処理を繰り返し実行する。複数の決定木の学習処理を行い、所定の本数の決定木が生成された段階、つまり、所定数学習判定12eにおいて、所定数の決定木が生成されたと判断された段階で、本実施形態の識別器の学習方法の処理が終了となる。決定木の本数は、問題依存ではあるが、十分に多いことが望ましく、本実施形態では、500本の決定木の学習を行い、500本分の決定木データが外部に出力されることとする。
上記説明した方法で決定木を学習することにより、異なるラベルの学習データをより良く分割する基準で分岐規則を決定するため、非特許文献2のRandomized Trees等と比較して、1つ1つの決定木の性能を高めることができる。特に、リーフノードに近い下位ノードでは、ノードに残った学習データの数は少なくなり、且つ、類似しているデータである可能性が高いが、その中の異なるラベルのデータを好適に分割する基準で分岐規則を決定するため、決定木の性能を高めることができる。また、学習データそれぞれに対してデータ選択確率を用意しておき、選択された回数に応じて、データ選択確率を小さくすることで、多様に学習データが選択される。
そのため、選択された学習データを用いて決定した分岐規則は、高い多様性を持っており、その結果、複数の決定木の多様性も実現することができる。特に、最上位ノードに近い上位のノードでは、選択される候補となる学習データの数が多いため、より多様に学習データが選択される。そのため、決定される分岐規則も高い多様性を持ち、その結果、下位のノードに設定される学習データの組み合わせも多様になり、これによって、決定木の多様性が実現できる。このように、本実施形態の識別器学習方法では、複数の識別器の多様性を確保しながら、1つ1つの識別器の性能も高めることができ、そのため、この複数の識別器を用いたデータ識別方法において、高い識別性能を実現できる可能性が高くなる。
この複数の識別器を用いて、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別するパターン識別方法の例を示す。
図3に、本実施形態のパターン識別方法の処理フローを示す。また、図4に、本実施形態のパターン識別方法の処理ブロック図を示す。以下、図3及び図4を用いて、本実施形態のパターン識別方法の例について説明する。
まず、決定木データ入力ステップ30において、上記方法で学習した決定木のデータを入力する処理を行う。この処理は、図4の決定木データ入力部40により行われ、上記説明した、図2の決定木データ出力部28で出力された決定木データを入力し、それを決定木データ保持部40DBに記録する処理を行う。
続いて、データ入力ステップ31で、識別対象データである入力データとして、決定木の学習に用いた画像と同様な、顔画像データを入力する。この処理は、図4のデータ入力部41で行われ、本実施形態では、前述のように、顔画像として、人物の顔の領域を切り出した、40×40画素のグレースケール画像を入力する。
そして、決定木識別結果算出ステップ32で、1本目の決定木を用い、データ入力ステップ31で入力された入力データに対する識別処理を行う。ここでの処理は、図4の決定木結果算出部42により実行され、決定木データ保持部40DBに記録されている1本の決定木を選択し、その最上位ノードに対応する分岐規則による入力データ分岐から始めて、決定木による探索処理を行う。そして、最終的に到達したリーフノードに対応したラベルを、当該決定木の識別結果とする。
決定木識別結果記録ステップ33では、決定木識別結果算出ステップ32で求めた決定木の識別結果、つまり、最終的に到達したリーフノードに対応したラベル情報を記録する。ここでは、図4の決定木識別結果算出部42により求めたラベルを、決定器識別結果43dに累積的に記録する処理を行う。例えば、本実施形態ならば、決定木識別結果算出部42の識別結果が、予め定めた特定の人物の1人であるAに対応するラベルであったならば、Aである可能性に1つ投票を行う。また、例えば、決定器識別結果算出部42の識別結果が、予め定めた特徴の人物以外であるというラベルであったならば、特定の人物以外である可能性に1つ投票するというような処理を行う。
このような、1つの決定木での決定木識別結果算出ステップ32、及び、決定木識別結果記録ステップ33の処理を、決定木データ保持部40DBに記録されている全ての決定木について繰り返し実行する。そして、全決定木終了判定32eにおいて、全決定木での上記処理が終了した段階で、次の識別結果統合ステップ34の処理に進む。
識別結果統合ステップ34では、複数の決定木による識別結果を統合して、最終的な識別結果を算出する処理を行う。この処理は、図4の識別結果統合部44により実行され、本実施形態では、単純に、最も多くの投票を集めた識別結果を、最終的な識別結果とする。つまり、例えば、多数の決定木による識別結果において、Bである可能性に、最も多くの投票がなされた場合、入力された入力データは、Bの顔画像であるという識別結果とする。そして、最後に、識別結果出力ステップ35において、識別結果統合ステップ34において算出した最終的な識別結果を、外部に出力する。この処理は、図4の識別結果出力部45により行われる。
以上の処理により、上記説明した複数の決定木を用い、入力された顔画像データが、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別することが可能になる。このように、1つ1つの識別器での識別結果に対する信頼度が低くても、多数の多様な識別器での結果を統合することにより、高い識別性能を実現できる可能性が高くなる。本発明では、多数の識別器の多様性を確保しつつ、1つ1つの識別器の性能が、非特許文献2のRandomized Trees等と比べて向上できる可能性が高く、その結果、最終的な識別性能も、向上する可能性が高くなる。
尚、本実施形態では、上記のように決定木の学習を行ったが、一般的な決定木に適用可能な、深さの制限や、枝刈り等を行っても構わない。この場合、リーフノードに異なるラベルの学習データが残る場合があるが、その場合、学習時にその比率を記録しておき、識別時には、その比率に応じた投票を行う等すればよい。
また、決定木の分岐規則を決定する際に、2つの学習データを選択して、それに基づいて分岐規則を決定したが、選択する学習データは、2つに限るものではなく、その他の個数でも構わない。例えば、1つの学習データと、それとは異なるラベルの3つの学習データの、計4つのデータを選択し、1つの学習データと、残りの3つの学習データをより良く分割するように分岐規則を決定してもよい。
更に、本実施形態では、二分木の例を示したが、一般的にはn分木の決定木に適用可能であり、この場合、例えば、ラベルの異なる3つの学習データを選択し、それぞれがより良く分割されるような3分割の分岐規則を決定するようにしてもよい。
また、本実施形態の識別時には、単純に、最も投票が多かった識別結果を、最終的な識別結果としたが、学習データにラベルごとのデータの偏りがある場合、その偏りに従った誤判定をしてしまう可能性がある。そのため、例えば、各ラベルに対応する投票数に、それぞれに対応する所定の係数を乗じ、その後の値の大小に基づいて、最終的な識別結果を算出するというようにしてもよい。ここでの所定の係数は、例えば、ラベルごとのデータ数に応じて決める、または、学習データとは別の検定データを用意しておき、その検定データでの識別性能が高くなるように、それぞれの係数を決めてやるというようにすればよい。
<第2の実施形態>
本発明の第2の実施形態では、特定の物体を山積みにした状態を撮像し、撮像した画像に基づいて、山積み状態の各物体の概略位置・姿勢を推定するパターン識別方法における、撮像及び前処理のパラメータの評価を行う識別器の学習方法の例を示す。本実施形態でも、この識別器として、決定木を用いる。
まず、本実施形態におけるパラメータ評価を行う目的と概要について説明する。特定の物体を山積みにした状態を撮像し、撮像した画像に基づいて、山積み状態の各物体の概略位置・姿勢を推定するパターン識別方法としては、例えば、特許文献2の手法等が開示されている。
一般的に、このようなパターン識別方法では、パラメータを対象の物体ごとに適切に設定することにより、識別性能を向上させることができる。そのようなパラメータとしては、例えば、露光時間といった撮像時のパラメータや、前処理としてのエッジ抽出におけるフィルタサイズといった前処理のパラメータがある。本実施形態では、この識別方法が出力すべき正しい結果、つまり、撮像された山積み状態の各物体の概略位置・姿勢の正解値を用意せずに、撮像や、前処理のパラメータの評価を行うための複数の決定木を学習する。そして、この複数の決定木を用いた評価結果に基づいて、撮像や前処理の適切なパラメータを設定することを目的としている。
具体的には、まず、実際に、様々なパラメータで撮像や前処理を行い、その結果として得られる、それぞれのパラメータについての中間データである前処理後画像を生成する。次に、それぞれの前処理後画像について、予め定めた複数の特徴量を抽出して特徴データを生成する。そして、複数の特徴データに基づいて識別性能を予測するように学習した複数の決定木を用い、各前処理後画像について抽出した複数の特徴データにより、それぞれについての識別性能を予測する。
つまり、各パラメータに従って生成された前処理後画像から抽出した複数の特徴量に基づき、識別性能の予測を行う。そして、この予測した識別性能を、各パラメータの評価値とし、評価値が、最も高いパラメータを、この対象物体における適切なパラメータとして設定することを目的としている。このように、本実施形態では、各パラメータそれぞれについて得られる特徴量を説明変数、対応する識別性能の予測値を目的変数として出力する回帰モデルとしての複数の決定木の学習を行う。
説明のため、まず、本実施形態における識別器学習方法により学習した識別器を用いて、適切なパラメータを選択するパラメータ選択方法について説明する。図9に、本実施形態における、パラメータ選択方法の処理フローを示す。また、図10に、本実施形態における、パラメータ選択方法の処理ブロック図を示す。以下、図9及び図10を用いて、本実施形態の識別器学習方法により学習した識別器を用いたパラメータ選択方法について説明する。
決定木データ入力ステップ90は、後述の評価値推定ステップ95において、識別性能の予測値を算出するための決定木データを入力する。この処理は、図10の決定木データ入力部100により行われ、ここでは、予め生成された決定木データを入力する処理を行う。決定木データの詳細と、その学習方法に関しては、後に詳細に説明する。
パラメータ設定部101は、パラメータ候補保持部101DBに予め記録されている種々のパラメータを、パラメータ候補保持部101DBから読み出し、撮像部102及び前処理部103に、それぞれ設定する。パラメータ候補保持部101DBには、撮像部102、前処理部103に設定する種々のパラメータが、それぞれ記録されている。
撮像部102に設定するパラメータの項目としては、例えば、露光時間やアンプのゲインといった項目が挙げられ、それぞれの項目について、パラメータの値の候補が記録されている。具体的には、露光時間であれば、例えば、1ms、2ms、4ms、・・・、500msというような、露光時間として設定するパラメータの候補が記録されている。
本実施形態では、露光時間に関してNt個のパラメータの候補があり、アンプのゲインに関してNg個のパラメータの候補が予め記録されているとする。パラメータ設定部101では、これらの候補を読み出し、候補の全組み合わせ(即ち、本実施形態では、Nt×Ng個)を、順に撮像部102に設定する処理を行う。ここでの処理は、図9の撮像パラメータ設定ステップ910に対応する。撮像パラメータの設定後、撮像ステップ92において、撮像部102により、特定の物体を山積みにした状態を設定されたパラメータに基づいて撮像し、撮像した画像を、前処理部103に送る処理を行う。
続いて、前処理パラメータ設定ステップ911において、パラメータ設定部101が、撮像部102と同様に、前処理部103に対してパラメータを設定する処理を行う。前処理部103に設定するパラメータの項目としては、例えば、ノイズ除去のための平滑化フィルタのフィルタサイズや、γ補正のための係数といった項目が挙げられる。また、連続値として設定する項目だけでなく、例えば、バイアス補正を行うか否か、といった2値的な項目があってもよい。また、エッジ抽出処理として、Sobelフィルタ、Prewittフィルタ、Laplacianフィルタのいずれを使うか、といった多値的な項目があってもよい。
更に、例えば、平滑化フィルタ、γ補正、及び、エッジ抽出処理の順序を、どのような順序で行うか、といった項目も含むことができる。本実施形態では、様々な項目に関するパラメータの候補の全組み合わせとして、Np個の組み合わせがあるとし、それを順に前処理部103に設定する処理を行う。前処理パラメータの設定後、前処理ステップ93において、撮像部102より送られてきた画像に対して、設定されたパラメータに基づく前処理を、前処理部103にて実施し、前処理後画像103dを生成する処理を行う。
次に、特徴抽出ステップ94で、前処理後画像103dに基づいて、予め定められた複数の特徴量を抽出する処理を行う。ここでの処理は、図10の特徴抽出部104により行われる。特徴量としては、様々なものが挙げられる。本実施形態では、前処理後画像の輝度値の平均値、分散、歪度、尖度、最頻値、エントロピーや、下記の文献に記載されたCo‐occurrence Matrixを用いたテクスチャー特徴量など、f個の特徴量を用いる。
Robert M.Haralick,K.Shanmugam,and Itshak Dinstein,“Texture Features for Image Classification”,IEEE Transactions on System,Man and Cybernatic,Vol.6,pp.610−621,1973
特徴抽出部104では、このような特徴量を前処理後画像103dから抽出し、特徴データとして、それらを順に並べた特徴ベクトル104dを生成する処理を行う。本実施形態では、このように、前処理後画像103dから、画像のマクロな性質を表す特徴量を抽出するが、画像の性質を表現するような特徴量であれば、その他の特徴量でも構わない。
評価値推定ステップ95では、決定木データ入力ステップ90において入力された複数の決定木データを用い、特徴抽出部104で生成した特徴ベクトル104dに基づいて、パラメータ設定部101により設定されたパラメータの評価値を求める処理を行う。この決定木データは、前処理画像から抽出したf個の特徴量を並べた特徴ベクトルを説明変数とし、その前処理後画像に対して識別処理を実行した際の識別性能を目的変数とした回帰モデルである。
ここで、本実施形態における決定木の詳細、及び、その学習を行うための学習データ生成方法について説明する。図11に、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理フローを示す。また、図12に、本実施形態における識別器の学習、及びその学習に用いる学習データ生成方法の処理ブロック図を示す。
以下、図11及び図12を用いて、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法について説明する。尚、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理部の構成は、図10に示した、本実施形態におけるパラメータ選択方法の処理部の構成と同様の部分が多数ある。そのため、同様の部分については、詳細な説明を省略し、差異の部分について詳細に説明する。
前述のように、本実施形態における識別器は、前処理後画像から抽出した複数の特徴量を並べた特徴ベクトルに基づき、その前処理後画像を利用した識別方法における識別性能を予測する回帰モデルである。この回帰モデルの学習には、入力である特徴ベクトル(説明変数)と、それに対応した出力である識別性能(目的変数)を組とした、モデル生成用のデータを多数用いる。そのため、まず、様々な物体を用い、説明変数と目的変数を組としたデータを生成し、それらを用いて、識別器を学習する。ここで、この識別器として、第1の実施形態と同様に、本実施形態でも決定木を用いる。
目的変数、つまり、識別性能を求めるためには、前述のように、識別方法が出力すべき正解値を用意しておく必要がある。そのため、ここでは、様々な物体について、その物体を山積みの状態にしたものを用意し、それを撮像した画像における、山積み状態の各物体の概略位置・姿勢を正解値として用意する。ここで用意した正解値を、図12の正解値入力部120により入力し、正解値データ120dとして保持しておく。この物体を山積みの状態にしたもの、及び、対応する正解値を用意する工程が、図11の識別対象設定ステップ110に対応する。
各物体の概略位置・姿勢の正解値は、例えば、山積み状態の物体を撮像した画像において、各物体上の、複数の所定の箇所の、画像内での位置を指定することにより求めることができる。ここで行う正解値の用意は、コストの大きい作業ではあるが、予め生成しておく識別性能推定モデルの生成段階でのみ必要であり、この段階でいくつかの事例に対して実施すればよい。つまり、一旦、決定木の学習を行えば、新たな対象に対しては、個別に正解値の用意をする必要はなく、正解値の用意というコストは抑えることができる。
尚、ここで用いる様々な物体の中には、本実施形態において、パラメータの評価を行う対象の物体は含まれていない。もし、ここで用いる様々な物体の中に、本実施形態において、パラメータの評価を行う対象の物体が含まれているならば、ここで用意した各物体の概略位置・姿勢の正解値を用いて、実際の識別性能を推定してパラメータを評価すればよい。
1つの山積み状態、及び、その正解値を用意した後、その1つの山積み状態について、多数の説明変数、つまり、前処理後画像から抽出した特徴ベクトルと、それぞれに対応する目的変数、つまり、識別性能を求める処理を行う。
図11の撮像パラメータ設定ステップ1110から、前処理ステップ113、及び、特徴抽出ステップ114での処理は、図9の撮像パラメータ設定ステップ910から、特徴抽出ステップ94までの処理と同様の処理である。つまり、まず、パラメータ設定部121が、パラメータ候補保持部121DBからパラメータの候補を読み出して、撮像部122に設定する(図11の撮像パラメータ設定ステップ1110)。そして、撮像部122が、用意した山積み状態を撮像する(図11の撮像ステップ112)。次いで、同様に、前処理部123にパラメータの候補を設定し(図11の前処理パラメータ設定ステップ1111)、前処理部123が、撮像された画像に対する前処理を行って(図11の前処理ステップ123)、モデル生成用前処理後画像123dを生成する。
このモデル生成用前処理画像123dは、決定木学習用のデータを生成するために用いるモデル生成用中間データとしての前処理後画像を意味する。そして、特徴抽出部124が、モデル生成用前処理画像123dに対して、予め定められた複数の特徴量を抽出し、それらを並べたモデル生成用特徴ベクトル124dを生成する(図11の特徴抽出ステップ114)。このモデル生成用特徴ベクトル124dが、決定木の学習において、説明変数として利用する特徴ベクトルである。
識別処理ステップ115では、識別処理部125により、モデル生成用前処理後画像123dに対して識別処理を行い、その識別結果と、用意した正解値データ120dとを比較することにより、識別性能125dを求める処理を行う。本実施形態では、ここでの識別方法として、特許文献2に記載のパターン識別方法を用い、物体の概略位置・姿勢の候補を、識別信頼度の高い順に複数求める処理を行う。そして、正解値データ120dに存在する正解値との誤差が、所定の誤差以内(例えば、位置ずれ数画素以内、且つ、姿勢ずれが数度以内)である候補を識別成功と考え、候補の個数ごとに、適合率(Precision)と再現率(Recall)を算出する。最後に、再現率ごとの適合率の平均である、平均適合率(Average Precision)を求め、これを識別性能125dとする。
図11の撮像パラメータ設定ステップ1110から、特徴抽出ステップ114、及び、識別処理ステップ115までの処理により、1つの山積み状態について、1つのモデル生成用特徴ベクトル(説明変数)と、1つの識別性能(目的変数)が得られる。そして、得られたモデル生成用ベクトルと識別性能を1組としたデータを、決定木学習部126に送信する。このデータは前述のように、決定木の学習に用いられる。
上記、撮像パラメータ設定ステップ1110から、特徴抽出ステップ114、及び、識別処理ステップ115までの処理を、候補となるパラメータごとに繰り返し実行する。そうして、用意した1つの山積み状態について、複数のモデル生成用ベクトルと識別性能の組を生成する。この繰り返し処理は、図11の全前処理パラメータ候補選択終了条件1111e、及び、全撮像パラメータ候補選択終了条件1110eが双方とも満たされるまで実行される。撮像のパラメータの候補がNc通りで、前処理のパラメータの候補がNp通りであれば、1つの山積み状態について、Nc×Np組の、モデル生成用ベクトルと識別性能の組が生成されることになる。
これらのモデル生成用特徴ベクトルと、識別性能を組としたデータは、全て、決定木学習部126に送信される。これにより、用意した1つの山積み状態についての処理が終了となる。上記1つの山積み状態についての処理を、予め定めた所定数の物体に関する山積み状態に対して行う。予め定めた所定数、つまり、処理を実行する山積み状態の数は、多いことが望ましいが、10から20程度でも構わない。所定数の物体に関する山積み状態に対する処理終了後、つまり、図11の全識別対象設定終了条件110eが満たされた場合、決定木学習ステップ116の処理に進む。
決定木学習ステップ116では、複数組のモデル生成用特徴ベクトルと識別性能を組としたデータに基づいて、回帰モデルである多数の決定木を学習する処理を行う。この処理は、図12の決定木学習部126により実行される。ここまでの処理により、例えば、山積み状態数がNy、撮像のパラメータ候補数がNc、前処理のパラメータ候補数がNpであるとすると、Ny×Nc×Np組の、モデル生成用特徴ベクトルと識別性能の組が得られている。もし、Ny=20、Nc=30、Np=4000ならば、20×30×4000=2400000組のデータが得られていることになる。決定木学習部126では、このような多数組のデータを用い、モデル生成用特徴ベクトルを説明変数、識別性能を目的変数とした回帰モデルとして、多数の決定木を生成する。
図5に、本実施形態の識別器学習方法の処理フローを示す。また、図6に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図5、及び、図6を用いて、本実施形態の識別器学習方法の例について説明する。尚、本実施形態の識別器学習方法における処理の内、第1の実施形態における識別器学習方法と同様の処理に関しては、適宜、説明を省略する。また、図11の決定木学習ステップ116までの処理により、多数組のモデル生成用特徴ベクトルと識別性能の組が、決定木学習部126に入力されており、これらは、図6の学習データ保持部60DBに記録されているとする。
まず、正規化係数算出ステップ51では、正規化係数算出部61により、学習データ保持部60DBに記録されている全モデル生成用特徴ベクトルの、各ベクトルの要素の標準偏差を求める。そして、各標準偏差の逆数を、対応するベクトルの要素の正規化係数61dとして算出する処理を行う。ここで求めた正規化係数61dは、後述の分岐規則決定ステップ56において、決定木の分岐規則決定のために用いられる。
次に、データ選択確率設定ステップ52において、図6に示した、入力された学習データそれぞれについてのデータ選択確率62dを用意し、それらの値を設定する処理を行う。データ選択確率62dは、後述の、データ選択ステップ55において参照されるもので、第1の実施形態と同様、学習データからデータを選択する際に、この値に比例した確率でデータを選択する。このデータ選択確率設定ステップ52は、図6のデータ選択確率初期化部62により実行され、入力された各学習データそれぞれについて、それぞれのデータに応じた1つの非負実数値を設定する。
本実施形態では、第1の実施形態とは異なり、全学習データに対して均等な確率を設定するのではなく、選択されることが好ましい重要度の高いデータに対して相対的に大きなデータ選択確率を設定する。具体的には、本実施形態では、学習データを構成するモデル生成用特徴ベクトルと識別性能の内、識別性能が高い、若しくは、低いものに関して、高いデータ選択確率を設定する。これは、中庸な識別性能である結果よりも、性能が高くなる場合、若しくは、低くなる場合の推定性能を高めることを重視するためである。このように、データ選択確率は、学習する決定木の目的に応じて設定することが可能である。
また、本実施形態では、学習に用いる学習データが非常に多く存在するため、第1の実施形態とは異なり、決定木の学習途中で、このデータ選択確率の更新を行わない。なぜなら、非常に多くの学習データが存在する場合、各学習データが選択される確率がそもそも低く、データ選択確率の更新を行わなくても、多様な学習データが選択されるからである。
続いて、決定木学習開始ステップ53において、1本目の決定木の学習を開始する。図6の破線で囲まれた部分が、決定木の学習を行う処理ブロック600であり、ここでは、第1の実施形態と同様に、学習データ設定部63により、学習データ保持部60DBに記録されている全学習データを、決定木の最上位ノードに設定する処理を行う。
次に、ノード選択ステップ54では、図6のノード選択部64により、第1の実施形態と同様に、リーフノードと判定された以外の決定木の1つのノードを選択する。また、データ選択ステップ55でも、第1の実施形態と同様、選択されたノードに設定されている学習データから、データ選択確率62dの確率に従って、少数の学習データを選択する処理を行う。本実施形態は、第1の実施形態とは異なり、第1の実施形態におけるラベルに対応するものは、連続値である識別性能である。本実施形態においても、ここで2つの学習データを選択するが、ラベルが異なるという基準ではなく、目的変数である識別性能が、予め定めた所定値(例えば0.05等)以上異なるデータを選択する。
そして、データ選択ステップ55において選択された少数の学習データに基づいて、分岐規則決定ステップ56で、当該ノードにおける分岐規則を決定する処理を行う。ここでの処理は、図6の分岐規則決定部66により行われ、正規化係数算出部61で求めた正規化係数61dを参照して、選択した少数の学習データが、より良く分割されるような分岐規則を求め、それを当該ノードにおける分岐規則とする。本実施形態の決定木の各ノードでは、第1の実施形態と同様に、説明変数である特徴ベクトルの、ある1つの要素が、所定値より大きいか、小さいかに基づいて分岐する方法を用いる。
そこで、本実施形態では、選択した2つの学習データそれぞれの説明変数である特徴ベクトルの各要素の値を、正規化係数61dの対応する値を乗じた値について、同一の要素における差が最も大きい要素を探索する。そして、その要素におけるそれぞれの値の平均値を求める。そして、最も差の大きい要素における値が、求めた平均値より大きいか否かに基づいて分岐する分岐規則を、当該ノードの分岐規則とする。本実施形態における特徴ベクトルの各要素は、平均や分散等、異なるレンジを持つ値であるため、直接、値の差に基づいて分岐規則を決定してしまうと、レンジの大きい要素が選択されてしまいがちになる。
そこで、上記のように、各要素に関する標準偏差に基づいて値を正規化することにより、このようなレンジの違いを吸収する。本実施形態では、このような方法で分岐規則を決定するが、第1の実施形態と同様、本発明はこれに限るものではなく、性質の異なる学習データが好適に分割されるような方法で決定すれば、その他の方法でも構わない。
次に、データ分配ステップ57において、第1の実施形態と同様に、分岐規則決定ステップ56で決定した分岐規則に基づいて、当該ノードに設定されている学習データの分割を行い、分割した学習データそれぞれを、下位のノードに設定する処理を行う。この処理は、図6のデータ分配部57で実行される。第1の実施形態では、下位のノードに設定された学習データが、全て同じラベルであった場合に、そのノードをリーフノードと判定した。本実施形態では、前述のように、第1の実施形態におけるラベルに対応するものは、連続値である識別性能である。
そこで、ラベルが全て同一であるという基準ではなく、ノードに設定された学習データの全組み合わせの中で、最も大きい識別性能の差が、予め定めた所定値以下であるかどうかにより、リーフノードであるか否かを判定する。ここで用いる所定値としては、データ選択ステップ55におけるデータ選択の基準に用いた所定値と同様の値を用いる等すればよい。
そして、第1の実施形態と同様、全ノード終了判定54eにおいて、リーフノード以外のノードが全て選択されるまで、上記ノード選択ステップ54からデータ分配ステップ57の処理を繰り返し実行する。このような処理を繰り返し行い、リーフノード以外の全てのノードが選択されたと判定された段階で、1本の決定木の学習処理が終了となる。
1本の決定木の学習処理終了後、決定木データ出力ステップ58において、学習が終了した決定木のデータを外部に出力する処理を行う。この処理は、図6の決定木データ出力部68により実行され、分岐規則決定部66で決定された、各ノードにおける分岐規則、及び、各リーフノードに対応する目的変数の値の記録を行う。ここで、本実施形態では、各リーフノードに対応する目標変数の値には、各リーフノードに残された学習データそれぞれに対応する識別性能の平均値を用いる。
本実施形態では、このように、リーフノードに対応する目的変数の値として、リーフノードに残された学習データの識別性能の平均値を用いるが、本発明における決定木学習方法は、これに限るものではない。例えば、平均値ではなく、中央値を用いてもよいし、また、平均値や中央値のように、統合した値を用いるのではなく、リーフノードに残った各学習データそれぞれに対応する複数の識別性能を、全て記録するようにしても構わない。
決定木出力ステップ58での処理終了後、第1の実施形態と同様に、予め定めた所定の本数の決定木の学習が行われるまで、決定木学習開始ステップ53に戻り、決定木の学習処理を繰り返し実行する。そして、所定の本数の決定木が生成された段階、つまり、所定数学習判定53eにおいて、所定数の決定木が生成されたと判断された段階で、本実施形態の識別器の学習方法の処理が終了となる。本実施形態でも、決定木の本数は、十分に多いことが望ましいので、本実施形態では、500本の決定木の学習を行い、500本分の決定木データが外部に出力されることになる。
このように学習した複数の決定木が、本実施形態におけるパラメータ選択方法において、設定されたパラメータの評価値を求めるための決定木となる。この処理は、図11の決定木学習ステップ116に対応し、この処理により、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理が終了となる。
上記説明した方法で学習した決定木は、多数組のモデル生成用特徴ベクトルと、それに対応する識別性能の事例に基づいて生成している。このため、抽出した特徴データの条件等に基づき、ルールベースでパラメータを評価するといった手法と比較して、より適切なパラメータの評価を行える可能性が高い。
図9の評価値推定ステップ95では、評価値推定部105により、上記方法により予め生成しておいた複数の決定木を用い、特徴抽出部104で生成した特徴ベクトル104dに基づき、識別性能の推定値を求める処理を行う。ここで学習した複数の決定木を用いた識別性能の推定値を求める処理は、基本的には、第1の実施形態と同様である。ただし、各決定木の結果を統合する部分が少々異なるので、その部分について説明する。第1の実施形態では、各決定木の識別結果は、いずれの人物の顔画像であるかというラベルであった。これに対して、本実施形態では、連続値である識別性能の推定値であるので、第1の実施形態と同様の、投票による結果の統合は、単純にはできない。
そこで、ここでは、単純に、各決定木の結果である識別性能の推定値の平均値を、最終的な推定値として用いる。そして、求めた識別性能の推定値を、パラメータ設定部101により設定されたパラメータの評価値とみなす。これにより、パラメータ設定部101により設定した、撮像、及び、前処理のパラメータの評価値が得られることになり、この評価値を用いて撮像等のパラメータを選択することで、パターン識別において好適なパラメータを選択することが可能になる。
尚、本実施形態では、上記のように、各決定木の結果の平均値を、最終的な推定値として用いたが、本発明はこれに限るものではなく、例えば、各決定木の結果の中央値を用いてもよい。また、第1の実施形態と同様の投票に基づく方法として、各決定木の結果を、適当な量子化レベル(例えば、0.05ごと等)で量子化し、量子化された各区分に対する投票を行って、投票数が最大であった区分に対応する値を、最終的な結果としてもよい。
また、前述のように、決定木のリーフノードに対応する値として、リーフノードに残された学習データそれぞれに対応する識別結果を統合した値に限らない。各学習データそれぞれに対応する複数の識別性能を、全て記録した場合は、例えば、重み付き投票等で最終的な結果を求めてもよい。具体的には、リーフノードに残されていた学習データの数がk個であったならば、それぞれの識別性能を量子化し、対応する区分に、1/kの値で投票を行い、全ての投票結果を集計して、最大の投票値であった区分に対応する値を最終的な結果としてもよい。
このように、本発明の識別器学習方法は、離散的なラベルの識別だけでなく、入力データを目的変数とし、所望の目的変数を求める回帰モデルの学習方法としても適用可能である。また、学習データが非常に多い時には、データ選択確率の更新を行わなくても、確率的に、多様なデータが選択され、その結果、多様な識別器が生成されることなり、その結果、複数の識別器を用いることで、良好な推定性能を実現できる可能性が高くなる。本実施形態のように、データ選択確率の更新を行わない場合は、各識別器の学習を並列に実行することが可能になり、識別器学習の処理時間を高速化することも可能となる。
<第3の実施形態>
本発明の第3の実施形態では、第1の実施形態と同様に、人物の顔画像を入力する。そして、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを、複数の識別器により識別する方法において用いる複数の識別器の学習方法を示す。
本実施形態では、他の実施形態と異なり、いわゆる決定木ではなく、決定木を簡略化した、多段型の識別器である、下記文献に開示のFern型識別器を用いる。Fern型識別器とは、複数の要素識別器を直列に並べた識別器である。Fern型識別器では、一般に、比較的単純な、2値の要素識別器が用いられる。つまり、何らかの単純な識別規則に基づきデータを識別して、{0、1}の一方を結果として出力するような要素識別器を用いるのが一般的である。
Mustafa Ozuysal,Michael Calonder,Vincent Lepetit and Pascal Fua,“Fast Keypoint Recognition using Random Ferns”,IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol.32, No.3,pp.448−461,March 2010
図7に、本実施形態の識別器学習方法の処理フローを示す。また、図8に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図7、及び、図8を用いて、本実施形態の識別器学習方法の例について説明する。尚、本実施形態において、第1の実施形態と同様の部分については、適宜、説明を省略する。
学習データ入力ステップ70は、第1の実施形態における学習データ入力ステップ10と同様の処理であり、複数のFern型識別器の学習に用いる、多数の学習データを入力する。本実施形態でも、多数の学習データとして、第1の実施形態と同様の、多数の人物の顔画像を用いる。学習データ入力ステップ70での処理は、図8の学習データ入力部80により実行され、第1の実施形態と同様の学習データが、学習データ保持部80DBに記録される。
次に、データ組合せ選択確率初期化ステップ71において、図8に示した、入力された学習データそれぞれの組み合わせについてのデータ選択確率810dを用意し、それらの値を初期化する処理を行う。データ組合せ選択確率810dは、第1の実施形態におけるデータ選択確率21dと類似したものであるが、各学習データ個別の選択確率ではなく、2つの学習データの組み合わせに関する選択確率を示すものである。このデータ組合せ選択確率初期化ステップ71は、図8のデータ組合せ選択確率初期化部81により実行され、入力された学習データ全ての、2つの学習データの組み合わせそれぞれについて、1つの非負実数値を設定する。このデータ組合せ選択確率初期化ステップ71は、この実数値の初期化を行う処理であり、本実施形態では、全ての学習データの組み合わせに対して、0、または、1の値を設定する。
具体的には、同じラベルである2つの学習データの組み合わせについては0を設定し、それ以外の組み合わせについては1と設定する。このような値を設定することにより、同一のラベルであるデータの組み合わせが選択されないようになる。尚、本実施形態でも、第1の実施形態と同様、異なるラベルの学習データの組み合わせについて、均等な値を設定するようにしているが、これに限るものではない。例えば、予め定めた所定のラベルの組み合わせである学習データには、より大きい値を設定する等してもよい。具体的には、本実施形態であれば,特定の人物に対応するラベル間の組み合わせについては、より大きい値を設定する等してもよい。
続いて、Fern学習開始ステップ72において、1つ目のFern型識別器の学習を開始する。図8の破線で囲まれた部分が、Fern型識別器の学習を行う処理ブロック800である。この処理では、当該Fern型識別器の学習用に、データ組合せ選択確率810dの、現時点のコピーである、単一Fern用選択確率811dを生成する処理を行う。この単一Fern用選択確率811dは、後述の、データ選択部83での処理である、データ選択ステップ73において用いられる。
続いて、データ選択ステップ73において、Fern学習開始ステップ72において生成した、単一Fern用選択確率811dに基づいて、図8のデータ選択部83により、2つの学習データの組み合わせを選択する処理を行う。この処理では、単一Fern用選択確率811dに記録されている2つの学習データの組み合わせに関する選択確率に比例した確率で、学習データ保持部80DBに記録されている学習データから、2つの学習データの組み合わせを選択する。
そして、データ選択ステップ74において選択された2つの学習データに基づいて、識別規則決定ステップ74で、Fern型識別器の1つの識別規則を決定する処理を行う。ここでの処理は、図8の識別規則決定部84により行われ、選択した2つの学習データが、より良く分割されるような識別規則を求め、それをFern型識別器の1つの識別規則とする。本実施形態のFern型識別器の要素識別器としては、第1の実施形態の決定木の各ノードにおける分岐方法と同様のものを用いる。即ち、画像データのある位置の1つの画素値が、所定画素値より大きいか、小さいかに基づいて、{0、1}の識別を行う方法を用いる。
そこで、本実施形態でも、第1の実施形態と同様、選択した2つの学習データそれぞれの、同一の画素位置において、最も差分の大きい画素位置を探索し、その位置におけるそれぞれの画素の平均値を求める。そして、差分の最も大きい画素位置における画素値が、求めた平均値より大きいか否かに基づいて識別を行う識別規則を、Fern型識別器の1つの識別規則とする。本実施形態でも、このような基準で識別規則を決定するが、本発明はこれに限るものではなく、第1の実施形態の説明において述べたのと同様に、任意の基準を用いて決定すればよい。
次に、データ識別ステップ75において、全学習データに対し、識別規則決定ステップ74で決定した識別規則を用いた識別を行う。この処理は、図8のデータ識別部85で実行され、全ての学習データそれぞれに対して、{0、1}いずれかの識別結果を求める。ここで求めた、各学習データに対する識別結果は、次のデータ組合せ選択確率更新ステップ76、及び、Fernデータ出力ステップ77において用いられる。
データ選択確率更新ステップ76では、データ組合せ選択確率810d、及び、単一Fern用選択確率811dを更新する処理を行う。この処理は、データ選択ステップ73で選択された学習データの組み合わせ、及び、データ識別ステップ75で求めた、各学習データに対する識別結果に基づく。
ここでの処理は、図8のデータ組合せ選択確率更新部86で実行され、まず、データ選択ステップ73で選択された学習データの組み合わせに対応する、データ組合せ選択確率810dの値を小さくする処理を行う。これにより、以降のFern型識別器の学習において、同じ組み合わせの学習データが選択されにくくなる。本実施形態でも、第1の実施形態と同様に、対応するデータ組合せ選択確率に1以下の値を乗じることにより更新する。
次に、データ識別ステップ75で求めた、各学習データに対する識別結果に基づき、同一の識別結果であった学習データの全ての組み合わせについて、それぞれに対応する単一Fern用選択確率811dの値を0に設定する。これにより、Fern型識別器内の、少なくとも1つの識別規則によって、異なる識別結果となった学習データの組み合わせは、当該Fern型識別器の学習においては、選択されないようになる。尚、データ選択ステップ73で選択された学習データの組み合わせについては、識別規則決定ステップ74において、必ず異なる識別結果となるように、識別規則を決定しているため、対応する単一Fern用選択確率811dの値は、ここで必ず0に設定される。そのため、当該Fern型識別器の学習において、同じ学習データの組み合わせが選択されることはなくなる。
そして、所定識別規則数終了判定73eにおいて、予め定めた所定個数(例えば10個)の識別規則を生成したかに基づき、所定個数に達していなければ、上記データ選択ステップ73からデータ組合せ選択確率更新ステップ76の処理を繰り返し実行する。このような処理を所定個数分だけ繰り返し行い、所定個数の識別規則を生成した段階で、1つのFern型識別器の学習処理が終了となる。1つのFern型識別器の識別規則の所定個数は、基本的には任意の数でよく、用いる学習データの数等に応じて予め定めておけばよく、本実施形態では10個としている。
1つのFern型識別器の学習処理終了後、Fernデータ出力ステップ77において、学習が終了したFern型識別器のデータを外部に出力する処理を行う。この処理は、図8のFernデータ出力部87により実行され、以下の2つの情報の記録を行う。1つは、識別規則決定部84で決定された所定個数分の識別規則である。もう1つは、当該Fern型識別器の全識別規則による結果の組み合わせそれぞれにおけるラベル確率分布である。ここで出力する、全識別規則による結果の組み合わせそれぞれにおけるラベル確率分布について、具体的に、本実施形態の場合について説明する。
本実施形態では、10個の識別規則を用い、各識別規則について{0、1}の2通りの結果が存在するので、結果の全組み合わせは、210=1024通りの組み合わせが存在する。そのため、この1024通り全てについて、ラベル確率分布を記録することになる。このラベル確率分布は、Fern型識別器の学習時に、データ識別ステップ75において求めた、各学習データに対する識別結果に基づいて生成する。
つまり、例えば、10個の識別規則による識別結果が全て0であるものに対応するラベル確率分布は、全学習データの内、全ての識別結果が0であった学習データのラベル情報に基づいて生成する。ここで、ある識別結果の組み合わせS(Sは10個の{0、1}を並べた10bitの値)であった、各ラベルに対応する学習データの個数が、以下の表に示すような結果になっていたとする。
この場合、この識別結果の組み合わせSに対するラベル確率分布は、A:3/24=0.125、B:0、・・・、J:1/24=0.4166・・、特定の人物以外:0.625、というように生成される。このような、ラベルごとの確率であるラベル確率分布を、識別結果の全組み合わせについて生成し、それを外部に出力することになる。
尚、Fern型識別器では、対応する学習データが1つも存在しないような識別結果の組み合わせも存在する。そのような場合、本実施形態では、そのような識別結果の組み合わせに対応するラベル確率分布として、特定の人物以外の確率を1とし、それ以外が0であるようなラベル確率分布を生成する。本実施形態では、対応する学習データが1つも存在しない場合、このようなラベル確率分布とするが、これに限るものではなく、例えば、全ての確率を0とするようなラベル確率分布でも構わない。
Fernデータ出力ステップ77での処理終了後、予め定めた所定数のFern型識別器の学習が行われるまで、Fern学習開始ステップ72に戻り、Fern型識別器の学習処理を繰り返し実行する。複数のFern型識別器の学習処理を行い、所定数のFern型識別器が生成された段階、つまり、所定数学習判定72eにおいて、所定数のFern型識別器が生成されたと判断された段階で、本実施形態の複数の識別器の学習方法の処理が終了となる。Fern型識別器の数は、これも十分に多いことが望ましい。Fern型識別器は、一般的に、他の実施形態で用いた決定木と比較して、性能が低い可能性があるので、本実施形態では、1000個のFern型識別器の学習を行い、1000個分のFern型識別器のデータが外部に出力されることになる。
上記説明した方法によりFern型識別器を学習することにより、第1の実施形態と同様に、異なるラベルの学習データをより良く分割する基準で識別規則を決定する。このため、上記文献のFern型識別器等と比較して、1つ1つのFern型識別器の性能を高めることができる。また、学習データの組み合わせそれぞれに対してデータ組合せ選択確率を用意しておき、選択された回数に応じて、データ組合せ選択確率を小さくすることで、多様に学習データが選択される。そのため、第1の実施形態と同様に、選択された学習データを用いて決定した識別規則に、高い多様性を持たせることができ、その結果、複数のFern型識別器の多様性も実現することができる。このように、本実施形態の識別器学習方法でも、他の実施形態と同様、複数の識別器の多様性を確保しながら、1つ1つの識別器の性能も高めることができる。そのため、この複数の識別器を用いたパターン識別方法において、高い識別性能を実現できる可能性が高くなる。
この複数のFern型識別器を用いて、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別するパターン識別方法の例を示す。本実施形態のパターン識別方法の基本的な処理は、第1の実施形態におけるパターン識別方法と同様であり、第1の実施形態のパターン識別方法における、決定木を用いた識別、及び、その結果の統合部分のみが異なるので、その部分のみ説明する。
第1の実施形態におけるパターン識別方法では、決定木を用いた識別を行ったが、本実施形態におけるパターン識別方法では、Fern型識別器を用いた識別を行う。具体的には、入力データに対して、Fern型識別器の各識別規則による識別結果を求め、その識別結果の組み合わせに基づき、対応するラベル確率分布を、当該Fern型識別器の結果として求める。この処理を、複数のFern型識別器それぞれについて実施し、全Fern型識別器の結果を求める。
第1の実施形態では、各決定木の結果は1つのラベルであり、その投票により結果を統合し、それを最終的な出力とした。本実施形態では、ラベル確率分布が1つのFern型識別器の結果であるので、そのラベル確率分布に応じた重み付き投票により結果を統合する。つまり、単純に、Fern型識別器の結果として得られたラベル確率分布の各ラベルの確率値を、それぞれのラベルに投票し、最も高い値となったラベルを、最終的な結果とする。このような処理により、上記説明した複数のFern型識別器を用い、入力された顔画像データが、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別することが可能になる。
このように、本発明の識別器学習方法は、決定木に限らず、本実施形態のFern型識別器のような多段型識別器等、その他の識別器にも適用可能である。また、他の実施形態のように、1つの学習データに対して、1つの選択確率を設定するような方法だけでなく、本実施形態のように、データの組み合わせに対して選択確率を設定することも可能である。
<その他の実施形態>
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。