(57)【要約】【課題】  高い検出性能のパターン検出器を現実的な学習時間で構築できるようにしたパターン検出器の学習装置、学習方法及びプログラムを提供する。【解決手段】  複数の弱判別器から構成され、複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置であって、特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得し、当該取得した学習用データから特定パターンを検出させることにより複数の弱判別器を学習させ、当該学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択するとともに、当該選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と複数の弱判別器の性能との比較に基づき複数の弱判別器を１つに合成する。【選択図】  図１
2010009518.tif 000002
【特許請求の範囲】
【請求項１】
複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置であって、
前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得手段と、
前記取得手段により取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を学習させる学習手段と、
前記学習手段による学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択手段と、
前記選択手段により選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成手段と
を具備することを特徴とするパターン検出器の学習装置。
【請求項２】
前記選択手段は、
弱判別器間の類似度を含む情報に基づいて合成対象となる弱判別器を選択する
ことを特徴とする請求項１記載のパターン検出器の学習装置。
【請求項３】
前記弱判別器間の類似度は、
前記弱判別器各々のフィルタ構造のミンコフスキー距離、ハウスドルフ距離、又はユークリッド距離の少なくともいずれかに基づく
ことを特徴とする請求項２記載のパターン検出器の学習装置。
【請求項４】
前記弱判別器間の類似度は、
前記弱判別器各々のフィルタ構造をベクトル表現したときの、ベクトル間の内積、ベクトル間のユークリッド距離、又はベクトル間のミンコフスキー距離の少なくともいずれかに基づく
ことを特徴とする請求項２記載のパターン検出器の学習装置。
【請求項５】
弱判別器の検出性能を示す特性評価値に係わる統計情報を保持する統計情報保持手段
を更に具備し、
前記選択手段は、
前記統計情報保持手段により保持された弱判別器の特性評価値を含む情報に基づいて合成対象となる弱判別器を選択する
ことを特徴とする請求項１又は２記載のパターン検出器の学習装置。
【請求項６】
前記学習手段は、
前記学習用データに対して重み付けする重み付け手段
を具備し、
前記重み付け手段により付与された重みに基づいて複数の学習用データの中から選択した学習用データを用いて前記複数の弱判別器を順番に学習させ、前記重み付け手段により各弱判別器が学習を終える度にその学習結果に基づき前記学習用データに付与する重みを更新する
ことを特徴とする請求項１乃至５のいずれか１項に記載のパターン検出器の学習装置。
【請求項７】
前記合成手段は、
前記選択手段により選択された合成対象となる複数の弱判別器と該選択された弱判別器の学習の順番により生じる弱判別器間の依存関係を維持しつつ、前記弱判別器の合成を行なう
ことを特徴とする請求項６記載のパターン検出器の学習装置。
【請求項８】
前記合成手段は、
前記弱判別器間の依存関係を維持するために、前記選択手段により選択された複数の弱判別器のうち、最後に学習した弱判別器の学習結果に基づき更新された学習用データに付与された重みと、合成後の弱判別器の学習結果に基づき更新される学習用データの重みとの差が所定範囲内に収まる場合に前記合成を行なう
ことを特徴とする請求項７記載のパターン検出器の学習装置。
【請求項９】
前記合成手段は、
前記弱判別器間の依存関係を維持するために、前記選択手段により選択された複数の弱判別器のうち、最後に学習した弱判別器の学習結果に基づき更新された学習用データに付与された重みと、合成後の弱判別器の学習結果に基づき更新される学習用データの重みとをベクトルとして表現し、該表現された重み付けベクトル間の類似度が所定の値より大きくなる場合に前記合成を行なう
ことを特徴とする請求項７記載のパターン検出器の学習装置。
【請求項１０】
前記重み付けベクトル間の類似度は、
ベクトルの内積、又はユークリッド距離の少なくともいずれかに基づく
ことを特徴とする請求項９記載のパターン検出器の学習装置。
【請求項１１】
前記合成手段は、
合成後の弱判別器の特性評価値が前記選択手段により選択された合成対象となる複数の弱判別器の特性評価値を累積した累積特性評価値を上回る場合に前記合成を行なう
ことを特徴とする請求項１乃至１０のいずれか１項に記載のパターン検出器の学習装置。
【請求項１２】
前記合成手段は、
合成後の弱判別器をフィルタ構造を初期化する初期化手段
を具備し、
前記初期化手段は、
前記選択手段により選択された合成対象となる複数の弱判別器のフィルタ構造を重ね合わせることにより前記合成後の弱判別器のフィルタ構造を初期化する
ことを特徴とする請求項１乃至１１のいずれか１項に記載のパターン検出器の学習装置。
【請求項１３】
前記初期化手段は、
前記選択手段により選択された弱判別器の特性評価値と、学習に用いた学習用データの重みに基づく学習結果とを考慮して前記複数の弱判別器のフィルタ構造を重ね合わせる
ことを特徴とする請求項１２記載のパターン検出器の学習装置。
【請求項１４】
前記初期化手段は、
前記選択手段により選択された合成対象となる複数の弱判別器のフィルタ構造をベクトル表現し、主成分分析、独立成分分析の少なくともいずれかの処理を行なうことにより前記合成後の弱判別器のフィルタ構造を初期化する
ことを特徴とする、請求項１２記載のパターン検出器の学習装置。
【請求項１５】
前記合成手段は、
前記合成後の弱判別器のフィルタ構造を更新する更新手段
を具備することを特徴とする請求項１乃至１４のいずれか１項に記載のパターン検出器の学習装置。
【請求項１６】
前記更新手段は、
マルコフ連鎖モンテカルロ法を用いて前記更新を行なう
ことを特徴とする請求項１５記載のパターン検出器の学習装置。
【請求項１７】
前記更新手段は、
前記弱判別器の状態を該弱判別器のフィルタ構造として、該弱判別器の状態をベクトル要素とする評価関数を用いてマルコフ連鎖モンテカルロ法により該弱判別器の状態を更新する
ことを特徴とする請求項１６記載のパターン検出器の学習装置。
【請求項１８】
前記弱判別器の特性評価値は、
前記学習手段により弱判別器に学習用データを用いて学習させたときの、特定パターンの検出率、特定パターンの検出速度、又は打ち切り率の少なくとも１つに基づく
ことを特徴とする請求項１乃至１７のいずれか１項に記載のパターン検出器の学習装置。
【請求項１９】
前記弱判別器の特性評価値は、
少なくとも前記弱判別器のフィルタ構造の複雑度に基づく
ことを特徴とする請求項１乃至１８のいずれか１項に記載のパターン検出器の学習装置。
【請求項２０】
複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習方法であって、
前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得工程と、
前記取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を順番に学習させる学習工程と、
前記学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択工程と、
前記選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成工程と
含むことを特徴とするパターン検出器の学習方法。
【請求項２１】
複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置に内蔵されたコンピュータを、
前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得手段、
前記取得手段により取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を順番に学習させる学習手段、
前記学習手段による学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択手段、
前記選択手段により選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置、学習方法及びプログラムに関する。
【背景技術】
【０００２】
従来、入力されたデータから特定パターン（例えば、文字や人間の顔など）を検出するパターン検出手法が提案されている。また、処理の高速化や検出精度の向上を目的とした手法も数多く提案されている。
【０００３】
このような技術に関連して、非特許文献１では、短時間で演算が可能な弱判別器を多数カスケード接続し、Ａｄａｂｏｏｓｔに代表される集団学習（アンサンブル学習）法と組み合わせてパターン検出を行なう技術が提案されている。非特許文献１の弱判別器は、Ｈａａｒ基底に基づいた矩形フィルタと呼ばれる、矩形内領域の平均輝度値の差を求めるフィルタを内部に持つ。そして、この矩形フィルタによって求めた矩形領域内の平均輝度差を特徴量として、所定の閾値と比較することにより対象が検出すべきパターンであるか判定する。
【０００４】
最終的なパターン検出器は、上述した弱判別器を多数組み合わせて構成される。非特許文献１では、複数の弱判別器出力の重み付き総和をその出力としている。その構成方法には、アンサンブル学習（集団学習）と呼ばれる学習アルゴリズムが用いられる。アンサンブル学習の代表的なアルゴリズムがＡｄａｂｏｏｓｔである。Ａｄａｂｏｏｓｔは、学習用サンプルに重みを設定し、１つの弱判別器の学習が終わると、次の弱判別器の学習を行なう。この次の弱判別器の学習では、前の弱判別器では判別が難しかったサンプルの重みが大きくなるように、データの重みを逐次更新していく。また、各弱判別器には、それぞれその判別能力を示す信頼度が定義されている。この信頼度は、例えば、学習時における学習用サンプルに対する誤り率などに基づき決定される。
【非特許文献１】Viola & Jones (2001) "Rapid Object Detection using a Boosted Cascade of Simple Features", Computer Vision and Pattern Recognition.
【非特許文献２】C. Huang, H. Ai, Y. Li, S. Lao (2006) "Learning Sparse Features in Granular Space for Multi-View Face Detection", Proceedings of the IEEE International Conference of Automatic Face and Gesture Recognition, pp. 401-406.
【特許文献１】特開２００５−４４３３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のような、多数の弱判別器により構成されるパターン検出器を構築する場合、その学習に膨大な時間がかかってしまう。上述した通り、弱判別器が学習する際には、学習用サンプルに対してパターン検出を行ない、その検出性能を評価するプロセスが存在する。高性能な検出器を構築しようとすると、弱判別器の表現を複雑にする必要があり、評価する弱判別器候補の数が膨大になる。従って、上記プロセスを繰り返す回数も膨大となってしまう。
【０００６】
このような問題に対して、特許文献１では、予め用意した弱判別器候補を評価しておき、その中で高い性能を示した候補の中から、いくつかを所定の方法で更新し、最も高い性能を示したものを弱判別器として採用する方法が提案される。
【０００７】
また、非特許文献２では、弱判別器の初期候補として、Ｈａａｒ基底を与えている。これに３種類（展開、付加、消滅）の規定された発展演算子を定義し、これを弱判別器に作用させることで弱判別器を発展させている。すなわち、非特許文献２では、評価関数として、検出性能と弱判別器の複雑度を考慮した関数とを採用し、検出性能だけでなく、検出時間をも考慮した上で総合的に高い性能を示す弱判別器を探索する方法が提案される。
【０００８】
本発明は、上記課題に鑑みてなされたものであり、高い検出性能のパターン検出器を現実的な学習時間で構築できるようにしたパターン検出器の学習装置、学習方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の一態様は、複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置であって、前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得手段と、前記取得手段により取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を学習させる学習手段と、前記学習手段による学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択手段と、前記選択手段により選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成手段とを具備することを特徴とする。
【００１０】
また、本発明の一態様は、複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習方法であって、前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得工程と、前記取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を順番に学習させる学習工程と、前記学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択工程と、前記選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成工程と含むことを特徴とする。
【００１１】
また、本発明の一態様によるプログラムは、複数の弱判別器から構成され、該複数の弱判別器による判別により入力データから特定パターンを検出するパターン検出器の学習装置に内蔵されたコンピュータを、前記特定パターンを含むか否かが既知であるデータから構成される複数の学習用データを取得する取得手段、前記取得手段により取得された学習用データから前記特定パターンを検出させることにより前記複数の弱判別器を順番に学習させる学習手段、前記学習手段による学習が済んだ弱判別器の中から合成対象となる複数の弱判別器を選択する選択手段、前記選択手段により選択された複数の弱判別器を合成した場合の合成後の弱判別器の性能と該複数の弱判別器の性能との比較に基づき該複数の弱判別器を１つに合成する合成手段として機能させる。
【発明の効果】
【００１２】
本発明によれば、弱判別器の取り得る表現を複雑にしても、弱判別器の学習を高速に行なえる。これにより、高い検出性能のパターン検出器を現実的な学習時間で構築できることになる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明に係わるパターン検出器の学習装置、学習方法及びプログラムの実施形態について添付図面を参照して詳細に説明する。
【００１４】
（実施形態１）
図１は、本実施形態に係わるパターン検出器の学習装置１００の構成の一例を示すブロック図である。
【００１５】
パターン検出器は、１又は複数の弱判別器から構成される。弱判別器各々は、入力データから特定パターン（例えば、文字や人間の顔など）を検出する。特定パターンの検出は、例えば、入力データの所定領域から特徴量を抽出し、当該抽出した特徴量に基づき当該所定領域が検出すべき特定パターンであるか判定することにより行なわれる。
【００１６】
ここで、学習装置１００は、学習用データを用いて弱判別器を学習させ、その結果として１又は複数の弱判別器から構成されるパターン検出器を構築する。学習装置１００は、学習用データ取得部１、学習部２、選択部３、合成部４、性能評価部５、統計情報保持部６を含んで構成される。また、学習装置１００には、学習の状態をモニタリングするためのモニタリング部７、各構成要素の制御・データ接続を行なうためのバス８を含む。学習用データ取得部１、学習部２、選択部３、合成部４、性能評価部５、統計情報保持部６は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）等の専用回路群で構成される。また、これら構成要素は、例えば、プロセッサ（リコンフィギュラブルプロセッサ、ＤＳＰ（Digital Signal Processor）、ＣＰＵなど）で構成されてもよい。更に、単一の専用回路や汎用回路（例えば、ＣＰＵ）により実行されるプログラムとして実現されてもよい。
【００１７】
学習用データ取得部１は、学習用データ（学習用サンプル、評価サンプル）を取得する。学習用データには、例えば、検出すべき特定パターンであるか否か等を示すラベルが予め付与されている。すなわち、学習用データは、特定パターンを含むか否かが既知であるデータから構成される。学習用データ取得部１は、例えば、不図示であるＨＤＤ（Hard Disk Drive）やＤＶＤ、ＣＤ−ＲＯＭ等の光学メディアなどのメモリ上から学習用データを読み出し、所定のタイミングで学習用データを必要とする構成要素に供給する。
【００１８】
学習部２は、弱判別器に学習を行なわせる。ここで言う、弱判別器は、非特許文献１に記載されているようなＨａａｒ基底をベースとするタイプの弱判別器でもよいし、より複雑な表現や内部状態値を持つものであってもよい。
【００１９】
選択部３は、複数の弱判別器の中から合成の対象となる弱判別器を選択する。選択基準の詳細及びその処理の詳細については後述する。
【００２０】
合成部４は、選択部３によって選択された複数の弱判別器を１つの弱判別器に合成する。合成の詳細及びその処理の詳細については後述する。
【００２１】
性能評価部５は、弱判別器の性能評価を行なう。性能評価部５は、例えば、弱判別器と学習用サンプルとを学習部２から受け取り、弱判別器単体又は既に学習済みの弱判別器と接続した状態における弱判別器の性能評価を行なう。この性能評価では、例えば、合成部４によって合成された新規弱判別器単体の性能評価も行なわれる。また更に、複数の弱判別器から構成される検出器全体としての性能評価も行なわれる。
【００２２】
ここで、性能評価の基準としては、評価データに対する検出率や誤検出率、検出時間などの他、打ち切り率が挙げられる。打ち切り率は、顔でないサンプルに対して途中で演算を打ち切った回数や、顔であるサンプルに対して途中で演算を打ち切って顔であると判定するまでの回数から求められる。この打ち切り率の評価は、例えば、後述する弱判別器の合成処理に際して参照される。
【００２３】
学習済みの弱判別器単体の性能評価には、学習用データ取得部１により読み出された学習用サンプルを用いる。学習用サンプルを評価する場合、検出性能は、単純な検出率ではなく、学習用サンプルに対して予め与えられている重みを用いて重み付き検出率を求めるようにしてもよい。このようにすることで検出が難しい（重み付けが大きい）サンプルを重視した検出性能評価を行なうことができる。同様に、検出時間についても、学習用サンプルごとの重み係数を用いた重み付け検出時間を求めるようにしてもよい。また、性能評価専用の評価用サンプルを用意してもよい。評価用サンプルは、学習用サンプルと同様に、予め検出対象であるか否かのラベル付けが施されている。
【００２４】
統計情報保持部６は、学習部２及び合成部４で生成された弱判別器の統計情報を取得しその結果を保持する。統計情報や取得処理については後述する。
【００２５】
モニタリング部７は、学習の予想終了時刻などを示す進行状態や、その時点での検出性能などを示すステータス等を含む情報の表示を行なう。モニタリング部７は、例えば、ＣＲＴ（Cathode Ray Tube）やＴＦＴ（Ｔｈin Film Transistor）液晶などのモニタで構成される。また、接続バス８は、上述した構成要素間の制御・データ接続を行なうためのバスである。
【００２６】
以上が、学習装置１００の構成の一例についての説明である。なお、上記説明した、学習装置１００には、１又は複数のコンピュータが組み込まれている。コンピュータには、ＣＰＵ等の主制御手段、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）等の記憶手段が具備される。また、コンピュータにはその他、キーボード、マウス、ディスプレイ又はタッチパネル等の入出力手段、ネットワークカード等の通信手段等も具備される。なお、これら各構成手段は、バス等により接続され、主制御手段が記憶手段に記憶されたプログラムを実行することで制御される。
【００２７】
＜全体フロー＞
図２は、図１に示す学習装置１００における全体処理の一例を示すフロー図である。図２を参照しながら、学習装置１００が学習用データから特定パターンを検出する検出器を構築する際の処理の流れについて説明する。なお、以下では、学習用データが画像であり、検出する特定パターンが人物の顔である場合を例に挙げて説明する。
【００２８】
学習装置１００は、まず、学習用データの重みを初期化する（ステップＳ００）。重みの初期値は、例えば、全ての学習用データが均等に選択されるように、一様な値を割り当ててやればよい。また、検出が困難だと思われる学習用データを予め選別しておいて、初期化段階ではこれらが選択される確率が低くなるようにしておいてもよい。学習用データは、複数のデータから構成され、そのデータには、特定パターンを含むデータもあれば、含まないデータもある。より具体的には、人物の顔（正解データ）や、人物の顔以外のデータ（非正解データ）を含む複数のデータである。学習用データにはそれぞれ、予め顔であるか否か（正解・不正解）のラベル付けがなされている。なお、ラベルには、その属性を示す値、例えば、大きさや向きなどの情報が保持されていてもよい。
【００２９】
続いて、学習装置１００は、弱判別器学習処理を行なう（ステップＳ０１）。ここで、弱判別器の候補選択から弱判別器の閾値決定までの一連の処理が行なわれ、１つの弱判別器が学習・生成されることになる。なお、弱判別器の学習には、公知の技術を用いればよいため、ここでは詳しい説明については省略する。例えば、非特許文献１や非特許文献２に記載されているような、Ａｄａｂｏｏｓｔを用いた弱判別器学習方法に従って学習を行えばよい。
【００３０】
弱判別器の学習、生成が済むと、学習装置１００は、当該生成された弱判別器の性能評価を行なう（ステップＳ０２）。具体的には、既に学習済みの弱判別器に当該生成された弱判別器を接続した場合における特性評価値を性能評価値として求める。この処理では、例えば、弱判別器に学習用データを検出させ、その検出結果に基づいて弱判別器の評価を行なう。この評価では、学習用データの正解・不正解ラベルに基づいて顔画像に対する正解率や非顔画像に対する誤検出率の評価を行なうことになる。評価に用いるサンプルは、学習用データを用いてもよいが、予め用意したラベル付けされた評価用データセットを用いてもよい。また、正解率・誤検出率の他に、検出時間（検出速度）の評価を行なってもよい。更に、顔でないサンプルに対して顔でないとして演算を打ち切る割合（打ち切り率）を評価の基準としてもよい。反対に、顔サンプルに対して顔であるとして以後の演算を打ち切る、打ち切り率を評価に加えてもよい。なお、複数の弱判別器を接続した性能だけでなく、ステップＳ０１で新たに生成された弱判別器単体の性能を評価するようにしてもよい。この場合には、学習用サンプルではなく、評価用サンプルを用いるようにするとよい。
【００３１】
弱判別器の性能評価が終わると、学習装置１００は、ステップＳ０１で生成された弱判別器の統計情報を取得する（ステップＳ０３）。具体的には、ステップＳ０２で取得した弱判別器の検出性能を示す特性評価値に係わる統計的な情報を取得する。統計的な情報としては、例えば、評価サンプルに対する重み付き誤り率や、平均的な検出時間とその分散度合いなどを取得する。また、弱判別器のフィルタ構造や閾値等のパラメータ群などの弱判別器自体に関する情報を取得してもよい。この他、弱判別器の学習に用いた学習用データの重み付けベクトルや、選択された弱判別器以外で性能が高かった上位数個の弱判別器候補の弱判別器構造情報などを取得してもよい。なお、弱判別器の構造情報についての具体的な説明については後述する。学習装置１００では、これら取得した情報を統計情報保持部６に保持する。
【００３２】
続いて、学習装置１００は、ステップＳ０１で生成された弱判別器の性能が所定条件を満たしているか判定を行なう（ステップＳ０４）。所定条件を満たしていない場合には（ステップＳ０４でＮｏ）、ステップＳ０１に戻り、新しい弱判別器の学習を繰り返す。なお、所定条件としては、例えば、生成された弱判別器の個数が所定数に達したか否か、学習用サンプル又は評価用サンプルに対する検出性能が所定の基準に達したか否か、などが挙げられる。
【００３３】
ここで、ステップＳ０４における所定条件を満たしている場合（ステップＳ０４でＹｅｓ）、学習装置１００は、新しい弱判別器の学習を終了する。そして、合成対象となる弱判別器を複数選択し（ステップＳ０５）、その選択した弱判別器を合成する（ステップＳ０６）。この弱判別器の合成処理では、複数の弱判別器が、所定の条件の下、１又は所定個数以下の弱判別器にまとめられる。なお、具体的な合成処理の手順等については後述する。
【００３４】
合成処理が済むと、学習装置１００は、所定条件を満たすか否かの判定を行なう（ステップＳ０７）。所定条件としては、例えば、弱判別器の個数や、新たに合成された弱判別器と既存の合成・接続された検出器とを接続した場合の全体としての検出器の性能が、所定値に達しているかどうか、などが挙げられる。所定条件を満たしていない場合には（ステップＳ０７でＮｏ）、ステップＳ０５の弱判別器選択処理に戻り、弱判別器の選択、合成のプロセスを繰り返す。所定条件を満たしている場合（ステップＳ０７でＹｅｓ）、学習装置１００は、この処理を終了する。以上が、本実施形態に係わる学習装置１００における全体処理フローである。
【００３５】
＜弱判別器学習処理＞
ここでは、図２に示すステップＳ０１における弱判別器学習処理について説明する。なお、ここで説明する処理は、概ね公知の技術であるため、本実施形態に関連する部分以外についての説明は適宜省略する。図３は、学習部２の構成の一例を示すブロック図である。
【００３６】
学習部２は、候補保持部２１、候補選択部２２、学習用データ保持部２３、信頼度算出部２４、打ち切り閾値算出部２５、学習用データ重み更新部２６を含んで構成される。
【００３７】
候補保持部２１は、弱判別器の候補を保持する。すなわち、弱判別器のフィルタ構造を保持している。非特許文献１に記載されているようなＨａａｒ基底によるフィルタ構造や、非特許文献２に記載されているような、より高次元で複雑なフィルタ構造を複数保持する場合もある。なお、それらの組み合わせでもよい。また、予め用意されたフィルタ構造を保持するのではなく、フィルタ候補の問い合わせを受けて、動的にフィルタ構造を生成してもよい。フィルタ構造の生成は、例えば、非特許文献２に記載される方法を採用してもよいし、ランダムに生成するようにしてもよい。
【００３８】
候補選択部２２は、候補保持部２１に保持された弱判別器の候補の中から弱判別器の候補を選択する。学習用データ保持部２３は、学習用データ重み更新部２６によって重み付けされた学習用データを保持する。学習用データ保持部２３は、この保持した学習用データを重みデータとともに候補選択部２２に転送する。
【００３９】
信頼度算出部２４は、後述する性能評価部５及び統計情報保持部６からの出力を受け取り、弱判別器の信頼度、すなわち、複数の弱判別器を接続した場合における弱判別器の信頼度を算出する。
【００４０】
打ち切り閾値算出部２５は、弱判別器の打ち切り閾値、すなわち、弱判別器に処理を実行させずに途中で演算を打ち切るための閾値を算出する。また、学習用データ重み更新部２６は、信頼度算出部２４により算出された弱判別器の信頼度をもとに、学習用データの重み付けを更新する。
【００４１】
図４は、図２に示すステップＳ０１における弱判別器学習処理の一例を示すフロー図である。この処理は主に、学習部２で行なわれる。
【００４２】
学習装置１００は、学習部２において、まず、学習用データ取得部１から学習用データを取得（受け取る）する（ステップＳ１０）。学習用データは、予め所定の重み付けがなされている。なお、弱判別器の最初の学習時には、その重み付けは一様分布にするとよい。すなわち、次の（数式１）で与えられる重み付けを与えてやる。
【００４３】
【数１】
2010009518.tif 000003
【００４４】
ここで、学習用データの重みＷ１（ｎ）は、ｉ＝１番目の弱判別器に対する学習用データＤｎ（＝Ｄ１・・・ＤＮ）の重み付けを表す。Ｎは全ての学習用データの数である。
【００４５】
続いて、学習装置１００は、候補選択部２２において、弱判別器の候補を選択する（ステップＳ１１）。ここで、弱判別器の具体的なフィルタ構造やフィルタ出力値に対する閾値が決定される。また、次の（数式２）によって計算されるｉ番目の弱判別器の重み付き誤り率も算出される。
【００４６】
【数２】
2010009518.tif 000004
【００４７】
（数式２）の不正解サンプルとは、弱判別器が、判定を誤ったデータのことを意味する。（数式２）によれば、重み付き誤り率εｉは、学習用データのうち、弱判別器の判定が誤っていたものの学習用データの重みＷｉ（ｎ）のみを足し合わせる。従って、学習用データのうち、重みの大きい学習用データの判定を間違えると、重み付き誤り率εｉの値が大きくなる。
【００４８】
弱判別器の候補の選択が済むと、学習装置１００は、信頼度算出部２４において、ステップＳ１１で選択された弱判別器の重み付き誤り率から弱判別器の信頼度を算出する（ステップＳ１２）。弱判別器の信頼度は、（数式３）によって算出される。
【００４９】
【数３】
2010009518.tif 000005
【００５０】
（数式３）によれば、重み付き誤り率が小さければ小さいほど、その弱判別器の信頼度が大きくなることがわかる。
【００５１】
次に、学習装置１００は、打ち切り閾値算出部２５において、打ち切り閾値Ｃｉを算出する（ステップＳ１３）。例えば、学習用データのうち、検出対象データ（この場合は、顔データ）に対する全フィルタ出力値と、弱判別器のフィルタ出力値の閾値とのうち、最も小さい値を打ち切り閾値Ｃｉとして算出する。このようにすることによって、少なくとも検出対象データ（顔データ）に対する演算が打ち切られることのないようにできる。また、重みの大きな学習用データが打ち切られないように打ち切り閾値を設定するようにしてもよい。すなわち、全ての検出対象データに対してフィルタ出力値の最小値を求めるのではなく、重み付けがある値より大きい学習用データに対してだけフィルタ出力値の最小値を求めるようにすればよい。
【００５２】
次に、学習装置１００は、学習用データ重み更新部２６において、学習用データの重み付けを更新する（ステップＳ１４）。ステップＳ１２で求めた弱判別器の信頼度を用いて、（数式４）によって、次の弱判別器を求める際に必要な学習用データの重み付けを求めることができる。
【００５３】
【数４】
2010009518.tif 000006
【００５４】
ここで、Ｚｉは、以下の（数式５）で与えられる規格化因子である。
【００５５】
【数５】
2010009518.tif 000007
【００５６】
和はそれぞれ、弱判別器による判定結果が正解、不正解である学習用データに対して別々にとる。（数式４）によれば、不正解であった学習用データの重みが、次の弱判別器の学習用データでは、大きくなることが分かる。また、現在の弱判別器の信頼度が大きいほど、重み付けはより小さくなることが分かる。
【００５７】
ここで、図５を用いて、図４に示すステップＳ１１における弱判別器候補選択処理について説明する。
【００５８】
学習装置１００は、候補選択部２２において、まず、弱判別器の候補、より具体的には、フィルタ候補の選択を行なう（ステップＳ２０）。フィルタ候補は、候補保持部２１からランダムに取得すればよい。また、既に学習済みの弱判別器で選択されたフィルタを重複して選択しないように、該当するフィルタを予め候補から除いた中から選ぶようにしてもよい。候補保持部２１には、予め構成可能な全ての組み合わせについてフィルタを用意しておいてもよいが、数が非常に膨大になるので、ある程度絞り込んだものを保持しておくとよい。絞り込む際の基準としては、例えば、非特許文献２に記載されているような、フィルタ構造の距離を利用することができる。すなわち、所定の距離より近いフィルタが同時に選ばれないようにすることによって、調査対象となる弱判別器のフィルタを大幅に減らすことができる。また、後段の処理でフィルタの合成処理を行なうため、ここで探索するフィルタ候補は比較的単純なものを対象としてもよい。比較的単純なフィルタ構造に限定することによって、探索するフィルタの数を大幅に減らすことが可能になる。フィルタ構造の単純さの定義は、公知の技術を使うことができる。単純に矩形の数によって定義してもよいし、特許文献２に記載されているような定義を用いてもよい。
【００５９】
次に、学習装置１００は、候補選択部２２において、ステップＳ２０で選択されたフィルタを用いて、全学習用データにおけるフィルタの出力値（以下、特徴量と呼ぶ）を算出する（ステップＳ２１）。この特徴量の算出は、例えば、非特許文献１や特許文献１に記載されている方法を用いればよい。
【００６０】
続いて、学習装置１００は、候補選択部２２において、ステップＳ２１で算出した特徴量と学習用データの重み付けとからヒストグラムを求める（ステップＳ２２）。ここでは説明を簡単にするため、特徴量が１次元である場合について説明する。ヒストグラムは、一方の軸が特徴量、すなわち学習用データに対するフィルタ出力値であり、もう一方の軸は、学習用データの重みを加算した値になる。これらを検出対象データ（顔データ）と非検出対象データ（非顔データ）とで別々にして累積重みを算出する。
【００６１】
図６は、ヒストグラムの一例を表した模式図である。横軸がフィルタの出力値で縦軸が累積重みである。図中３２の曲線が顔データの累積重みの分布を表し、同様に図中３３は非顔データの累積重みの分布を表している。仮に図中３４のように閾値Ｔｈを定めると、重み付き誤り率は図中３５の斜線領域の面積に等しくなる。閾値Ｔｈをさまざまに動かして図中３５の斜線領域の面積が最も小さくなる閾値Ｔｈを求める。同時に、閾値を決定した際の重み付き誤り率を記憶・保持しておく。以上のように、特徴量と学習用データの重みについてのヒストグラムに基づいてフィルタ出力値に対する閾値を算出することができる。
【００６２】
閾値を決定した後、学習装置１００は、候補選択部２２において、所定条件を満たしているか判定する（ステップＳ２４）。ここで、所定条件とは、探索したフィルタ候補の数が所定の数に達したか、予め設定した重み付き誤り率を達成したか、などが挙げられる。
【００６３】
フィルタ候補の探索が終わった後、それらの中から最も優れた性能を示す弱判別器を選別する（ステップＳ２５）。例えば、最も低い重み付き誤り率を達成した弱判別器を選べばよい。また、重み付き誤り率とともに、弱判別器のフィルタ構造の単純さを評価に取り入れた評価関数を定義し、その評価関数が最もよい値となる弱判別器を選択してもよい。
【００６４】
＜弱判別器選択処理＞
ここでは、図２に示すステップＳ０５における弱判別器選択処理について説明する。弱判別器選択処理では、所定の条件に基づいて合成の対象となる弱判別器を選択する処理が行なわれる。
【００６５】
図７は、選択部３の構成の一例を示すブロック図である。選択部３は、統計情報バッファ４１、類似度基準選択部４２、性能基準選択部４３、統合判定部４４を含んで構成される。
【００６６】
統計情報バッファ４１は、統計情報保持部６から弱判別器の統計情報を取得し、それを一時的に保持しておくメモリ領域である。類似度基準選択部４２は、弱判別器間の類似度を算出し、その結果に基づいて弱判別器を選択する。性能基準選択部４３は、弱判別器の特性評価値、すなわち、性能に基づいて弱判別器を選択する。統合判定部４４は、類似度基準選択部４２及び性能基準選択部４３の結果を統合して合成対象となる弱判別器を最終的に選択する。
【００６７】
図８は、図２に示すステップＳ０５における弱判別器選択処理の一例を示すフロー図である。この処理は主に、選択部３で行なわれる。
【００６８】
学習装置１００は、選択部３において、始めに、統計情報バッファ４１から弱判別器の統計情報を取得する（ステップＳ３０）。次に、類似度及び性能の算出対象となる弱判別器を選択する（ステップＳ３１）。これは、学習済みの弱判別器を選べばよい。そして、学習装置１００は、類似度基準選択部４２において、ステップＳ３１で選択した弱判別器と、他の学習済み弱判別器との全ての組み合わせについて類似度を算出する（ステップＳ３２）。
【００６９】
ここで、弱判別器間の類似度は、次のようにして求める。図９は、弱判別器フィルタ構造の模式図である。図９のフィルタは、１２×１２の２次元格子で表現されている。例えば、黒く塗りつぶされている格子は、フィルタ係数が−１、斜線部は＋１、それ以外は０であるとする。この２次元格子で表現されるフィルタを１次元ベクトルとして表現することにより、弱判別器フィルタ間の類似度を２つのベクトル間の内積として定義することができる。また、同様に２つのベクトル間のユークリッド距離として定義することもできる。更に一般的な距離として、ミンコフスキー距離を定義として用いてもよい。また、非特許文献２に記載されているような、ハウスドルフ距離を定義として用いてもよい。
【００７０】
続いて、学習装置１００は、性能基準選択部４３において、ステップＳ３１で選択した弱判別器の特性評価値、すなわち、性能を取得する（ステップＳ３３）。ここで取得する弱判別器の性能は、例えば、学習用データに対する重み付き誤り率や、打ち切り率、などが挙げられる。また、検出時間（処理時間）を用いてもよいし、処理時間を計測せずに弱判別器のフィルタ構造を用いてもよい。弱判別器のフィルタ構造が複雑になると、検出にかかる処理時間が増加するので、フィルタ構造の複雑化は処理時間の増加と同等の意味を持つ。フィルタ構造は、検出時間と異なり処理系に依存しないので、学習を行なう処理系と検出を行なう処理系とが異なる場合などに有効である。フィルタ構造に基づいて処理時間を見積もるには、フィルタ構造の単純さの概念を利用すればよい。上述したように、非特許文献２に記載されているような、フィルタ構造の複雑度を数値化する定義を用いて演算にかかる処理時間を見積もる。典型的には、矩形フィルタと画像の演算とを行なう際に、画像上の画素何点を参照する必要があるか調べ、その参照点の数をフィルタ構造の単純さの目安とすることができる。
【００７１】
続いて、学習装置１００は、全ての学習済み弱判別器について、他の弱判別器との類似度と性能の取得とを終えたか判定する（ステップＳ３４）。未完了であれば（ステップＳ３４でＮｏ）、ステップＳ３１の処理に戻る。全ての弱判別器について類似度と性能の取得とを終えている場合（ステップＳ３４でＹｅｓ）、学習装置１００は、統合判定部４４において、合成対象となる弱判別器を判定し、弱判別器の選択を行なう（ステップＳ３５）。具体的には、学習済み弱判別器の中で、単体の弱判別器としての性能が低いものや、フィルタ構造が類似している弱判別器が連続している弱判別器群、又は近傍に存在しているような弱判別器群を選択する。単体の性能が低い弱判別器は、その前後の弱判別器と共に合成対象として選択してもよい。更に、前後の弱判別器だけでなく、性能に応じて更に多くの弱判別器を選択してもよい。この場合、性能と合成する弱判別器の対象範囲との関係は、予めテーブルに保持しておくとよい。例えば、最も低い性能を持つ弱判別器の単体性能に比例して合成範囲を決定する。すなわち、弱判別器の単体性能が低い場合には、合成する弱判別器の数を少なくする。これは、単体の性能が低い場合、少ない数の弱判別器と合成しても、十分な改善が期待されるからである。また、本実施形態の構成とは異なるが、合成する弱判別器の範囲を何種類か用意し、実際の合成処理をその種類の回数だけ行なうことによって、その中から最もよい結果が得られるようにしてもよい。弱判別器の単体性能を合成の基準にすることによって、単体性能が低い弱判別器が合成対象として選択され、その前後の弱判別器との合成が促進され、より高性能な弱判別器を作り出される可能性が高まる。
【００７２】
弱判別器のフィルタ構造による選択は、上述したように、類似した構造をもつ弱判別器を選択することによって冗長な弱判別器を減らし、検出器全体の効率を向上させる効果が期待できる。また逆に、弱判別器のフィルタ構造が、互いに類似しない弱判別器を複数選択してもよい。このようにすることで、より有効なフィルタ構造を持つ１つの弱判別器に合成できる場合がある。
【００７３】
＜弱判別器合成処理＞
ここでは、図２に示すステップＳ０６における弱判別器合成処理について説明する。
【００７４】
図１０は、合成部４の構成の一例を示すブロック図である。合成部４は、合成対象統計情報バッファ５１、合成条件生成部５２、フィルタ初期化部５３、フィルタ更新部５４を含んで構成される。
【００７５】
合成対象統計情報バッファ５１は、選択部３により選択された弱判別器の統計情報を一時的に格納するためのメモリ領域である。合成条件生成部５２は、合成後の弱判別器が満たすべき条件を生成する。フィルタ初期化部５３は、合成後の弱判別器のフィルタを初期化する。フィルタ更新部５４は、合成後の弱判別器の状態を更新して、合成条件生成部５２で生成された弱判別器の満たすべき条件を満足する弱判別器を生成する。
【００７６】
図１１は、図２に示すステップＳ０６における弱判別器合成処理の一例を示すフロー図である。この処理は主に、合成部４で行なわれる。
【００７７】
学習装置１００は、合成部４において、始めに、合成対象統計情報バッファ５１から弱判別器の統計情報を取得する（ステップＳ４０）。続いて、学習装置１００は、合成条件生成部５２において、弱判別器の統計情報に基づいて合成後の弱判別器が満たすべき条件を生成する（ステップＳ４１）。ここで、合成後の弱判別器が満たすべき条件とは、第１の条件として、合成後の弱判別器の性能が、合成前の複数の弱判別器候補による累積性能、すなわち、これら複数の弱判別器の特性評価値を累積した累積特性評価値を上回ることである。なお、弱判別器の性能とは、学習用サンプル又は評価用サンプルに対する正解率や、検出時間などの処理時間、更には非検出対象データ（この場合、非顔データ）に対して演算を途中で打ち切る、打ち切り率を含む。また、前述のように、学習を行なう装置（学習器）と検出を行なう装置（検出器）とが同一でない場合を考慮して、処理時間の変わりに、弱判別器のフィルタの複雑度を性能の指標として用いてもよい。また、第２の条件として、合成候補となる弱判別器とその他の弱判別器との依存関係を合成後の弱判別器が同様に満たすことである。より具体的には、合成前の弱判別器の学習用データに対する重み付けである。上述したように、Ａｄａｂｏｏｓｔの枠組みで学習を行なう場合、弱判別器は、前段（前）の弱判別器と依存した関係にある。前段の弱判別器が検出できなかった、若しくは誤検出した画像の重み付けが大きくなって、次の弱判別器の学習が行われる。よって各弱判別器は、それぞれ前段の弱判別器に依存することになる。弱判別器の合成を行なう場合には、この弱判別器同士の依存関係を維持するようにしなければ、検出器全体としての整合性が失われてしまう。そこで、弱判別器合成を実行する際の拘束条件として、弱判別器間の依存関係、すなわち、学習用データの重み付けを維持する、という条件を満たすようにする。更に具体的には、複数の選択された合成候補弱判別器のうち、最も後段（後）の順番に位置する弱判別器の学習結果による学習用データの重み付けと、合成後の弱判別器の学習用データの重み付けとが略一致、すなわち、両者の差が所定範囲内に収まることである。
【００７８】
第２の条件は、具体的には、以下のように表現できる。学習用データに対する重み付けを１次元のベクトルとして表現し、合成前後の弱判別器による学習用データへの重み付けを比較した場合に、両者の差が所定範囲内に収まることである。これは、次の（数式６）のように表すことができる。
【００７９】
【数６】
2010009518.tif 000008
【００８０】
ここで、εは所定の正の値であるとする。左辺は、２つの重み付けベクトル間の距離を表す。この距離の定義には、所謂ユークリッド距離若しくは、より一般的なミンコフスキー距離を用いてもよい。また、距離ではなく、内積による重み付けベクトル間の類似度を一致の尺度に用いてもよい。
【００８１】
なお、ここでは、弱判別器の学習にＡｄａｂｏｏｓｔの枠組みを用いた場合を説明しているが、その枠組みに入らない場合や、合成処理においてその枠組みを維持しない場合も考えられる。すなわち、合成処理において、弱判別器間の依存関係を維持しないようにする方法も考えられる。これは、第１の条件のみを満たし、第２の条件を満たさない場合である。この場合、弱判別器間の依存関係は維持されないが、検出器全体としての性能は向上するので、結果的には望ましい検出器を構成することができる。
【００８２】
また、第２の条件を満たすように合成処理を行なう場合でも、必ずしも厳密に依存関係が維持されなくても、全体としての検出性能が向上すれば、本来の目的は達せられる。従って、第２の条件を緩めた構成をとってもよい。この場合、例えば、学習用データのうち、顔データのみの重み付けを略一致させる（非顔データは評価しない）などの簡略化が考えられる。また、予め学習前に重要とした評価データのみの重み付けを略一致させるようにしてもよい。
【００８３】
さて、処理フローの説明に戻る。合成条件の生成後、学習装置１００は、フィルタ初期化部５３において、合成候補となる弱判別器の初期化を行なう（ステップＳ４２）。初期化は主に、弱判別器のフィルタ構造と閾値について行われる。合成候補の弱判別器のフィルタ構造の初期値を決めて、ステップＳ４１で得られた合成条件を満たす弱判別器を得る。フィルタの初期値は、完全にランダムでもよいが、例えば、合成候補となる弱判別器のフィルタ構造を重ね合わせたものを配置してもよい。
【００８４】
図１２は、フィルタ構造の重ね合わせの一例を模式的に示したものである。合成候補弱判別器のフィルタ構造６１、６２、６３を単純に重ね合わせた場合に得られるのが６４のフィルタ構造である。このように合成候補である弱判別器のフィルタ構造を反映した初期値を合成後の弱判別器に適用することによって、後述する弱判別器更新処理において、より好適な合成弱判別器を得られる場合がある。また、単純な重ね合わせではなく、合成候補の弱判別器の性能によって重み付けされた重ね合わせを行ってもよい。具体的には、図１２に示す６１、６２、６３の合成候補弱判別器のフィルタ構造において、６２の性能が低かった場合に、６２のフィルタ構造を初期値に反映させないようにする、などである。また、図１２には現れないが、合成候補弱判別器のフィルタ構造が競合するような位置関係にある場合に、弱判別器の性能によって初期配置を決定してもよい。具体的には、同じ領域に矩形フィルタがある場合などである。この場合、該当する弱判別器の性能（例えば、特性評価値）に基づいてどちらのフィルタ構造を優先して初期値に反映させるか決定する。なお、学習に用いた学習用データに付与された重みに基づく弱判別器の学習結果（例えば、重みの大きな学習用データからの検出を誤っている等）を考慮して優先させるフィルタ構造を決定してもよい。閾値の初期化は、フィルタ構造の初期化が済んだ後、Ａｄａｂｏｏｓｔの学習で説明したのと同様の手順で決定することができる。
【００８５】
合成弱判別器のフィルタ構造の初期化に、主成分分析や独立成分分析を用いることもできる。例えば、合成候補である複数の弱判別器のフィルタ構造をベクトル表現して得られる、分散共分散行列の主成分（最大固有値に対応する固有ベクトル）を初期値とすることができる。同様にフィルタ構造に対して独立成分分析を行ない、その独立成分のいずれか、又はその所定数の重ね合わせを初期値とすることもできる。
【００８６】
処理フローの説明に戻り、続いて、学習装置１００は、初期化後の合成弱判別器の性能を評価する（ステップＳ４３）。ここで、性能評価は、後段の弱判別器更新処理で使用される学習用サンプルを用いてもよいし、性能評価専用の評価用サンプルを用いてもよい。このステップＳ４３における処理では、ステップＳ４１で得られた合成条件を判定するのに必要となる性能情報の算出を行なう。例えば、検出率や処理時間などである。また、学習器と検出器とが異なる場合を考えて、フィルタ構造の複雑度を検出時間の代わりに評価するようにすることも考えられる。
【００８７】
続いて、学習装置１００は、ステップＳ４３で得られた性能情報をもとに、合成条件を満足するか判定を行なう（ステップＳ４４）。条件を満足する場合（ステップＳ４４でＹｅｓ）、合成処理を終了する。条件を満足しない場合（ステップＳ４４でＮｏ）、学習装置１００は、フィルタ更新部５４において、弱判別器状態更新処理を行なう。以下、弱判別器状態更新処理が行われた後、性能評価、条件判定が、所定条件を満たすまで繰り返し実行される。
【００８８】
なお、条件によっては、弱判別器の合成が上手く行かず、繰り返し処理が終了しない可能性がある。そのような場合には、予め所定の繰り返し上限回数を設定しておいて、繰り返しがその回数に達したら合成処理を中断し、その時点で最も条件に近かった合成弱判別器候補を合成対象として選択すればよい。また、合成処理を中断して再び通常の弱判別器の学習処理に戻るようにしてもよい。例えば、通常の弱判別器が生成された後、新たにその弱判別器を候補に加えて合成対象の再選択を行った後、再び合成弱判別器の処理を行なうようにする。新たな合成対象が追加、又は以前の合成時のものと置き換えられることによって、弱判別器の合成処理が上手くいく場合がある。
【００８９】
ここで、図１３を用いて、図１１に示すステップＳ４５における弱判別器更新処理について説明する。なお、弱判別器状態更新処理は、矩形フィルタ構造の更新を合成条件を満たすようにするための処理であり、一般的な最適化と問題は同じである。従って目的を達するのであれば、公知の技術を用いてもよい。例えば、非特許文献２に記載されているような、グラニューと呼ばれる矩形フィルタの構成要素を導入し、ヒューリスティックな探索方法により、最適なフィルタ構造を見つけるようにしてもよい。同様に、合成条件を評価値する評価関数を導入することによって、合成フィルタ構造の最適構造探索に、一般的な最適化手法を適用してもよい。以下では、弱判別器状態更新処理に最適化手法の一つであるマルコフ連鎖モンテカルロ法を適用した場合について説明する。
【００９０】
図１３は、マルコフ連鎖モンテカルロ法を適用した場合における弱判別器状態更新処理の一例を示すフロー図である。
【００９１】
学習装置１００は、フィルタ更新部５４において、矩形フィルタ構造の更新を行なう（ステップＳ５０）。矩形フィルタの更新方法としては、いくつか挙げられるが、典型的には、ランダムな更新方法を用いることができる。以下、具体的に説明する。
【００９２】
学習装置１００は、フィルタ更新部５４において、上記図９に示したような、弱判別器の矩形フィルタから更新対象となるフィルタの位置を選択する。この選択もランダムでよい。図９の場合、１２×１２の格子の中から更新すべき位置をランダムに選択する。
【００９３】
更新位置を選択した後、学習装置１００は、フィルタ更新部５４において、その位置の矩形フィルタの値を更新する。フィルタの採り得る値が２値である場合は、単純にもう一方の値に設定すればよい。フィルタが３値以上の整数値をとりえる場合には、ランダムに更新する。例えば、フィルタがＮ値を取り得て、更新前のフィルタの値がｎである場合、ｎ以外の、Ｎ−１通りの値の中から更新後の値をランダムに選択する。フィルタの値が整数値ではなく、実数値である場合も同様に乱数を用いた更新方法を適用できる。この場合には、フィルタの上限値と下限値の間の一様乱数を発生させて、更新後のフィルタの値として採用すればよい。なお、フィルタの更新をより大きな粒度で行なってもよい。すなわち、ランダムに選択された更新位置の近傍にあるフィルタの値も同時に更新するようにしてもよい。この際、同時に更新するフィルタの範囲は任意であるが、弱判別器性能評価の結果を反映させるようにしてもよい。すなわち、性能がある程度高い場合は、同時に更新するフィルタの範囲を小さくし、性能が低い場合には、同時に更新するフィルタの範囲を大きくする。
【００９４】
次に、学習装置１００は、フィルタ更新部５４において、弱判別器の状態をベクトル要素とする評価関数Ｅを計算する（ステップＳ５１）。ここでは、直前の弱判別器状態（Ｅ１とする）と現在の弱判別器状態（Ｅ２とする）とについて計算を行なう。評価関数Ｅは、合成条件によって、適宜その定義を変えることが必要であるが、典型的には以下の（数式７）で与えられる。
【００９５】
【数７】
2010009518.tif 000009
【００９６】
ここで、Ｃは性能評価部５の評価結果である検出時間の逆数であり、Ｐは性能評価部５の評価結果である検出性能である。具体的には、学習用サンプルや評価用サンプルに対する重み付き誤り率である。α、βはそれぞれ０以上の値をとる係数であり、所定の値を用いる。この際、α又はβのうち、いずれかが０であってもよいが、同時に０になることはない。Ｃ及びＰは、弱判別器の性能を表している（これらは、正の値しかとりえない）。これらが、それぞれ正の係数α、βを乗じてＥから減じられているので、検出時間の逆数Ｃが大きいほど（検出時間が短いほど）、また、検出性能Ｐが高いほど（大きいほど）、Ｅの値は小さくなる。すなわち、弱判別器の検出性能が高く、また検出時間が短いほど、Ｅの値を小さくすることができる。
【００９７】
次に、学習装置１００は、フィルタ更新部５４において、このＥの値が直前の状態と現在の状態とでどちらが小さくなるか判定する（ステップＳ５２）。現在の弱判別器の状態が直前の状態よりもＥの値を小さくしている場合（ステップＳ５２でＹｅｓ）、現在の弱判別器状態が選択される。反対に、現在の弱判別器の状態が直前よりもＥの値を大きくしてしまう場合（ステップＳ５２でＮｏ）、直前の状態ではなく、現在の状態を一定の確率で選択するための遷移確率Ｔを計算する（ステップＳ５３）。遷移確率Ｔは以下の（数式８）で与えられる。
【００９８】
【数８】
2010009518.tif 000010
【００９９】
ここで、Ｅ１は直前の状態での評価関数の値、Ｅ２は現在の状態での評価関数の値を表す。また、ｔは弱判別器の状態遷移をコントロールするパラメータであり０より大きい任意の値をとる。
【０１００】
続いて、学習装置１００は、フィルタ更新部５４において、範囲が［０，１］の一様乱数Ｘを取得し（ステップＳ５４）、ステップＳ５３で求めた遷移確率ＴとステップＳ５４で取得した一様乱数Ｘの値とを比較する（ステップＳ５５）。この結果、Ｔの値がＸよりも大きければ（ステップＳ５５でＹｅｓ）、現在の弱判別器状態を選択する（ステップＳ５６）。一方、Ｔの値がＸよりも小さいか、同じであれば（ステップＳ５５でＮｏ）、直前の弱判別器状態を選択する（ステップＳ５７）。最後に、直前と現在のどちらの弱判別器状態を選択するか結果を出力する（ステップＳ５８）。
【０１０１】
以上のようにすることで、直前の弱判別器状態よりも評価関数Ｅの値が悪い弱判別器状態を一定の割合で受け入れることになる。割合をコントロールするパラメータｔは、値が大きいと、評価関数Ｅが直前の状態よりも悪い場合であっても、現在の状態を受け入れる確率が高くなり、状態遷移が起き易くなる。反対に、ｔの値が小さいと、評価関数Ｅの値が直前の状態よりも悪い場合、状態遷移が起こりにくくなる。評価関数Ｅの値が大きい場合でも、ある程度状態変化を受け入れることによって、評価関数Ｅの値がローカルミニマムから脱出する機会を持つことができる。
【０１０２】
また、ｔの値を順次変化させながら、最適な弱判別器を探すようにしてもよい。典型的には、始めにｔの値を大きくしておいて、徐々にｔの値を小さくしていきながら、評価を繰り返すようにする。これは、所謂シミュレーテッドアニーリング（焼き鈍し法）といわれる手法であり、最適値探索問題に有効であることが知られている。
【０１０３】
なお、図１３の説明では、弱判別器の更新方法として、モンテカルロ法を用いる場合について説明してきたが、この処理は特定の最適化手法に限定されず、フィルタ構造の探索問題にさまざまな最適化手法を適用できる。
【０１０４】
以上説明したように実施形態１によれば、比較的単純なフィルタ構造を持つ弱判別器を学習させた後、それらを合成させて複雑なフィルタ構造を持つ弱判別器を生成する。これにより、学習の初期から複雑なフィルタ構造を持つ弱判別器を探索する必要がなくなるため、学習時間を大幅に短縮することができる。なお、学習時間の短縮は、弱判別器合成のアルゴリズムの工夫により、大幅に行なうこともできる。
【０１０５】
また、実施形態１によれば、合成後の弱判別器が満たすべき条件（特に第１の条件）の元、弱判別器の合成処理を行なう。これにより、合成前よりも検出器全体としての性能（例えば、検出率や検出時間）を向上させられる。
【０１０６】
（実施形態２）
次に、実施形態２について説明する。実施形態２においては、通常の弱判別器の学習時に弱判別器の合成を取り入れて、有効な弱判別器を探索する場合について説明する。実施形態２では、上述した実施形態１と比べて、弱判別器学習処理と弱判別器合成処理との関係が異なる。具体的には、実施形態１では、所定の弱判別器数になった、又は検出器全体としての性能が目標に達した、など弱判別器の学習が一通り終了した時点で合成候補の弱判別器を選択し、合成処理を行っていた。これに対して、実施形態２では、弱判別器の学習の終了後、所定のタイミングで弱判別器を選択し合成処理を行なう。
【０１０７】
なお、重複を避けるため、以下の説明において、実施形態１と同じ部分についての説明は省略する。実施形態２に係わる学習装置１００の構成は、実施形態１を説明した図１と同様である。
【０１０８】
＜全体フロー＞
図１４は、実施形態２に係わる学習装置１００における全体処理の一例を示すフロー図である。
【０１０９】
学習装置１００は、まず、学習用データの重みを初期化する（ステップＳ６０）。次に、学習装置１００は、弱判別器の学習処理を実施する（ステップＳ６１）。そして、弱判別器の性能を評価し（ステップＳ６２）、弱判別器の構造や性能などの統計情報を取得・保持する（ステップＳ６３）。
【０１１０】
続いて、学習装置１００は、所定の条件に基づいて弱判別器の合成の実施有無を判定する（ステップＳ６４）。所定条件を満足する場合（ステップＳ６４でＹｅｓ）、学習装置１００は、弱判別器の学習を中断し、弱判別器合成処理に移る。所定条件を満たさない場合（ステップＳ６４でＮｏ）、学習装置１００は、弱判別器の学習を続けるか判定を行なう（ステップＳ６５）。学習の終了条件は、実施形態１同様に、所定の個数の弱判別器が生成されたか、複数の弱判別器から構成される検出器全体としての性能が目標とする性能に達したか、などである。終了条件を満足する場合（ステップＳ６５でＹｅｓ）、学習装置１００は、この処理を終了する。終了条件を満たさない場合（ステップＳ６５でＮｏ）、学習装置１００は、ステップＳ６１に戻って、後段の弱判別器の学習を続ける。
【０１１１】
ここで、ステップＳ６４における所定条件を満たさない場合としては、例えば、既に学習済みの弱判別器が所定の性能に達していない場合や、弱判別器の複雑度が一定の水準より下回っている場合などがある。この判定は、１つ乃至複数の弱判別器に対して行われる。
【０１１２】
なお、性能とは独立して、一定数の弱判別器が生成されるごとに、合成を行なうようにしてもよい。この場合、合成を行なう弱判別器の個数が一定になるので、弱判別器合成を行なうアルゴリズムをあまり複雑にしなくてもよいメリットがある。
【０１１３】
また、学習済み弱判別器の個数に応じて、合成を行なうタイミングを変えるようにしてもよい。すなわち、後段の弱判別器ほどまとめて合成を行なうようにする。一般に、弱判別器の合成を行なうと、矩形フィルタの構造が複雑になるので、処理時間が増える傾向がある。より多くの弱判別器を１つの弱判別器で表現しようとすると、更に複雑度は増大する傾向がある。そのため、カスケード接続型の検出器を構成した場合、前段の方に複雑な弱判別器が存在すると、全体としての検出時間が増大する可能性が高くなる。この問題を回避するためには、例えば、カスケード接続の前方の弱判別器は合成を行わずにシンプルな構造とし、後方にある弱判別器は前方にある弱判別器よりも頻繁に合成を行って、複雑であっても性能の高い弱判別器を設けるようにする。どの段階で弱判別器の合成を行なうかは、例えば、予めテーブルに保持しておき、それを参照するようにすればよい。更に好適には、弱判別器の学習時に、打ち切り率や検出時間などの検出器の性能を見積もることによって、合成を行って複雑な弱判別器が生成されても、全体の処理時間が少なくなるようなポイントを動的に探索するような処理を取り入れてもよい。このような探索問題には、公知の最適化アルゴリズムを適用できる。
【０１１４】
さて、処理フローの説明に戻り、ステップＳ６４において、合成条件を満足した場合には（ステップＳ６４でＹｅｓ）、学習装置１００は、合成対象となる弱判別器を選択し（ステップＳ６６）、当該選択した弱判別器を合成する（ステップＳ６７）。なお、実施形態２では、実施形態１と異なり、合成時に弱判別器間の依存関係を維持する必要がない。そのため、合成を行なう際の制約条件にそれを含める必要がないので、一般的に合成を行ない易くし、また学習時間の短縮に寄与することになる。
【０１１５】
弱判別器合成処理の後、学習装置１００は、終了条件を満たすか判定を行なう（ステップＳ６８）。これは、ステップＳ６５と同様の判定であり、検出器全体が十分な性能を達したかなどの判定が行なわれる。条件を満足した場合（ステップＳ６８でＹｅｓ）、学習装置１００は、学習処理を終了する。条件を満たさない場合（ステップＳ６８でＮｏ）、学習装置１００は、ステップＳ６１の処理に戻り、弱判別器の学習を続ける。
【０１１６】
以上説明したように実施形態２によれば、合成に際しその合成対象となる弱判別器よりも後段にある弱判別器の学習は未だ済んでいない。これにより、実施形態１のように、合成時に依存関係を維持する必要がなくなる。
【０１１７】
以上が本発明の代表的な実施形態の一例であるが、本発明は、上記及び図面に示す実施形態に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【０１１８】
なお、本発明は、例えば、システム、装置、方法、プログラム若しくは記録媒体等としての実施態様を採ることもできる。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１１９】
また、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置に内蔵されたコンピュータが該供給されたプログラムコードを読み出して実行することにより実施形態の機能が達成される場合をも含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【０１２０】
したがって、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳ（Operating System）に供給するスクリプトデータ等の形態であってもよい。
【０１２１】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【０１２２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【０１２４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部又は全部を行ない、その処理によって前述した実施形態の機能が実現される。
【０１２５】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ（Central Processing Unit）などが実際の処理の一部又は全部を行なう。
【図面の簡単な説明】
【０１２６】
【図１】本実施形態に係わるパターン検出器の学習装置１００の構成の一例を示すブロック図である。
【図２】図１に示す学習装置１００における全体処理の一例を示すフロー図である。
【図３】図１に示す学習部２の構成の一例を示すブロック図である。
【図４】図２に示すステップＳ０１における弱判別器学習処理の一例を示すフロー図である。
【図５】図４に示すステップＳ１１における弱判別器候補選択処理の一例を示すフロー図である。
【図６】弱判別器学習時における顔データと非顔データのヒストグラムの一例を表した模式図である。
【図７】図１に示す選択部３の構成の一例を示すブロック図である。
【図８】図２に示すステップＳ０５における弱判別器選択処理の一例を示すフロー図である。
【図９】弱判別器フィルタ構造の一例を示す模式図である。
【図１０】図１に示す合成部４の構成の一例を示すブロック図である。
【図１１】図２に示すステップＳ０６における弱判別器合成処理の一例を示すフロー図である。
【図１２】フィルタ構造の重ね合わせの一例を示す模式図である。
【図１３】図１１に示すステップＳ４５における弱判別器更新処理の一例を示すフロー図である。
【図１４】実施形態２に係わる学習装置１００における全体処理の一例を示すフロー図である。
【符号の説明】
【０１２７】
１    学習用データ取得部
２    学習部
３    選択部
４    合成部
５    性能評価部
６    統計情報保持部
７    モニタリング部
８    接続バス
２１    候補保持部
２２    候補選択部
２３    学習用データ保持部
２４    信頼度算出部
２５    打ち切り閾値算出部
２６    学習用データ重み更新部
４１    統計情報バッファ
４２    類似度基準選択部
４３    性能基準選択部
４４    統合判定部
５１    合成対象統計情報バッファ
５２    合成条件生成部
５３    フィルタ初期化部
５４    フィルタ更新部
【図１】
2010009518.tif 000011
【図２】
2010009518.tif 000012
【図３】
2010009518.tif 000013
【図４】
2010009518.tif 000014
【図５】
2010009518.tif 000015
【図６】
2010009518.tif 000016
【図７】
2010009518.tif 000017
【図８】
2010009518.tif 000018
【図９】
2010009518.tif 000019
【図１０】
2010009518.tif 000020
【図１１】
2010009518.tif 000021
【図１２】
2010009518.tif 000022
【図１３】
2010009518.tif 000023
【図１４】
2010009518.tif 000024