(57)【要約】【課題】  顔画像を少ない演算量で迅速に判定できるようにする。【解決手段】  ノード２２１−ｉ−ｊ−ｋ−ｌがツリー構造に階層的に配置される。各ノードには、所定の数の弱判別器２１−ｉ−ｊ−ｋ−ｌが配置される。末端のノードには、１つのラベルに対応する顔画像を学習させる。上位のノードには、下位のノードが学習する全てのラベルの学習サンプルを学習させる。判定対象としてのウィンドウ画像が入力されたとき、上位のノードから下位のノードに向かって、識別処理が順次行われる。ウィンドウ画像が人の顔の画像ではないと判定されたとき、それより下位のノードでの識別は行われず、兄弟ノードでの識別に移行する。本発明は、ロボットにおいて人の顔を識別するのに適用できる。【選択図】図１９
2005284487.tif 000002
【特許請求の範囲】
【請求項１】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習する複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習する複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習する複数の弱判別器よりなる第２の下位ノードと
を備えることを特徴とする情報処理装置。
【請求項２】
前記学習は、最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって順次行われ、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて行われる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記上位ノードは一定の数の前記弱判別器を有し、
末端の前記第１および第２の下位ノードは、前記一定の数と等しいか、またはそれより少ない数の前記弱判別器を有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記上位ノード並びに前記第１および第２の下位ノードは、それぞれ、
データ重みを利用して前記弱判別器を選択する選択手段と、
選択された前記弱判別器による学習サンプルの判別結果を、信頼度により重み付けして累積和を演算する累積和演算手段と、
学習した前記弱判別器を利用して識別処理を行う場合に使用される基準値を、前記累積和に基づいて演算する基準値演算手段と、
前記学習サンプルに基づいて前記データ重みを演算する重み演算手段と、
前記重み演算手段により演算された前記データ重みを保存し、前記選択手段による次の前記弱判別器の選択に反映する反映手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記弱判別器は、前記学習サンプルの画像データの２画素の値の差と閾値との差に基づいて前記判別結果を演算する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップと
を含むことを特徴とする情報処理方法。
【請求項７】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードと
を備え、
前記第１および第２の下位ノードは、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行い、
最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて識別処理を行う
ことを特徴とする情報処理装置。
【請求項１０】
前記弱判別器は、前記学習サンプルの画像データの２画素の値の差と閾値との差に基づいて前記判別結果を演算する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードと
を備える情報処理装置の情報処理方法であって、
前記下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて識別処理を行うステップと
を含むことを特徴とする情報処理方法。
【請求項１２】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードと
を備える情報処理装置のプログラムであって、
前記第１および第２の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて識別処理を行うステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１３】
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードと
を備える情報処理装置のプログラムであって、
前記第１および第２の下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップと、
最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて識別処理を行うステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、少ない演算量で、高速に顔画像などの対象物を検出することができるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
従来、複雑な画像シーンの中から動きを使わないで画像信号の濃淡パターンのみを使った顔検出手法は数多く提案されている。例えば下記特許文献１に記載の顔検出器は、ハール（Haar）基底のようなフィルタを弱判別器（弱学習機）（weak learner）に用いたアダブースト（AdaBoost）を使用したもので、後述する積分画像（インテグラルイメージ：Integral image）とよばれる画像と矩形特徴（rectangle feature）とを使用することで、高速に弱仮説（weak hypothesis）を計算することができる。
【０００３】
図１は、特許文献１に記載の矩形特徴を示す模式図である。図１に示されるように、特許文献１に記載の技術においては、入力画像１４２Ａ乃至１４２Ｄにおいて、同一サイズの隣り合う矩形領域の輝度値の総和が求められ、一方の矩形領域の輝度値の総和と他方の矩形領域の輝度値の総和との差を出力するようなフィルタ（弱仮説）が複数用意される。例えば、入力画像１４２Ａにおいては、矩形領域（rectangular box）１５４Ａ−１の輝度値の総和から、影を付けて示す矩形領域１５４Ａ−２の輝度値の総和を減算するフィルタ１５４Ａが構成されている。このような２つの矩形領域からなるフィルタを２矩形特徴（2 rectangle feature）という。
【０００４】
また、入力画像１４２Ｃにおいては、１つの矩形領域が３分割された３つの矩形領域１５４Ｃ−１乃至１５４Ｃ−３からなり、矩形領域１５４Ｃ−１、１５４Ｃ−３の輝度値の総和から影を付けて示す中央の矩形領域１５４Ｃ−２の輝度値の総和を減算するフィルタ１５４Ｃが構成されている。このような３つの矩形領域からなるフィルタを３矩形特徴（3 rectangle feature）という。更に、入力画像１４２Ｄにおいては、１つの矩形領域が上下左右に分割された４つの矩形領域１５４Ｄ−１乃至１５４Ｄ−４からなり、矩形領域１５４Ｄ−１、１５４Ｄ−３の輝度値の総和から、影を付けて示す矩形領域１５４Ｄ−２、１５４Ｄ−４の輝度値の総和を減算するフィルタ１５４Ｄが構成されている。このような４つの矩形領域からなるフィルタを４矩形特徴（4 rectangle feature）という。
【０００５】
例えば、図２に示される顔画像を、図１に示される例えば矩形特徴１５４Ｂを使用して顔であることを判定する場合について説明する。２矩形特徴１５４Ｂは、１つの矩形領域が上下（垂直方向）に２分割された２つの矩形領域１５４Ｂ−１、１５４Ｂ−２からなり、矩形領域１５４Ｂ−２の輝度値の総和から、影を付けて示す矩形領域１５４Ｂ−１の輝度値の総和が減算される。人間の顔（対象物）１３８は、頬の領域より眼の領域の方が輝度値が低いことを利用すると、矩形特徴１５４Ｂの出力値から入力画像が顔か否か（正解または不正解）をある程度の確率で推定することができる。これがアダブーストにおける弱判別器の１つとして利用され。
【０００６】
検出時において、入力画像に含まれる様々な大きさの顔領域を検出するため、様々なサイズの領域（以下、探索ウィンドウという。）を切り出して顔か否かを判定する必要がある。しかしながら例えば３２０×２４０画素からなる入力画像には、およそ５００００種類のサイズの顔領域（探索ウィンドウ）が含まれており、これら全てのウィンドウサイズについての演算を行うと極めて時間がかかる。そこで、特許文献１においては、積分画像とよばれる画像が使用される。積分画像とは、図３に示されるように、入力画像１４４において、（ｘ、ｙ）番目の画素１６２が、下記式（１）に示されるように、その画素１６２より左上の画素の輝度値の総和になっている画像である。即ち、画素１６２の値は、画素１６２の左上の矩形領域１６０に含まれる画素の輝度値の総和となっている。以下、各画素値が下記式（１）に示す値の画像を積分画像という。
【０００７】
【数１】
2005284487.tif 000003
【０００８】
この積分画像を使用すると、任意の大きさの矩形領域の演算を高速に行うことができる。すなわち、図４に示されるように、左上の矩形領域１７０、矩形領域１７０の右横、下、右下のそれぞれの領域を矩形領域１７２、１７４、１７６とし、矩形領域１７６の４頂点を左上から時計周りにｐ１，ｐ２，ｐ３，ｐ４とし、その積分画像をＰ１，Ｐ２，Ｐ３，Ｐ４とする。Ｐ１は矩形領域１７０の輝度値の総和Ａ（Ｐ１＝Ａ）、Ｐ２はＡ＋矩形領域１７２の輝度値の総和Ｂ（Ｐ２＝Ａ＋Ｂ）、Ｐ３はＡ＋矩形領域１７４の輝度値の総和Ｃ（Ｐ３＝Ａ＋Ｃ）、Ｐ４はＡ＋Ｂ＋Ｃ＋矩形領域１７６の輝度値の総和Ｄ（Ｐ４＝Ａ＋Ｂ＋Ｃ＋Ｄ）となっている。このとき、矩形領域１７６の輝度値の総和Ｄは、Ｐ４−（Ｐ２＋Ｐ３）−Ｐ１として算出することができ、矩形領域の四隅の画素値を加減算することで矩形領域の輝度値の総和を高速に算出することができる。通常、入力画像をスケール変換し、スケール変換された各画像から、学習に使用する学習サンプルと同一サイズのウィンドウ（探索ウィンドウ）を切り出すことで、異なるサイズの探索ウィンドウを探索することが可能になる。しかしながら上述したように、全てのサイズの探索ウィンドウを設定可能なように入力画像をスケール変換すると極めて演算量が膨大になってしまう。そこで、特許文献１に記載の技術においては、矩形領域の輝度値の総和の演算を高速に行うことができる積分画像を用い、矩形特徴を使用することにより演算量が低減される。
【０００９】
【特許文献１】米国特許出願公開第２００２／０１０２０２４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記特許文献１に記載の顔検出器は、学習時に使用した学習サンプルのサイズの整数倍の大きさの対象物体しか検出することができない。これは、上記特許文献１が入力画像をスケール変換することで探索ウィンドウの大きさを変更するのではなく、入力画像を積分画像に変換し、これを利用して異なる探索ウィンドウの顔領域を検出するためである。すなわち、積分画像はピクセル単位に離散化されているため、例えば２０×２０のウィンドウサイズを使用する場合、３０×３０のサイズを探索ウィンドウに設定することができず、従ってこのウィンドウサイズの顔検出を行うことができない。
【００１１】
また、上記矩形特徴として、演算の高速化のため隣り合った矩形領域間の輝度値の差分のみを利用している。そのため、離れた矩形領域間の輝度変化をとらえることができず、物体検出の性能に制限がある。
【００１２】
例えば積分画像をスケール変換すれば任意のサイズのウィンドウの探索が可能になり、また離れた位置の矩形領域間の輝度値の差分を利用することも可能ではあるが、積分画像をスケール変換すると演算量が増大し、積分画像を使用して処理を高速化する効果を相殺することになり、また離れた矩形領域間の輝度値の差分をも含めようとするとフィルタの種類が膨大になり、同じく処理量が増大してしまう。
【００１３】
本発明は、このような状況に鑑みて提案されたものであり、集団学習により対象とする物体を検出する際に、学習時および検出時の演算処理を少なくし、より高速化できるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の第１の情報処理装置は、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習する複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを学習する複数の弱判別器よりなる第１の下位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを学習する複数の弱判別器よりなる第２の下位ノードとを備えることを特徴とする。
【００１５】
前記学習は、最も上位の１つの上位ノードから、１つの末端の第１または第２の下位ノードに向かって順次行われ、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて行われるようにすることができる。
【００１６】
前記上位ノードは一定の数の弱判別器を有し、末端の第１および第２の下位ノードは、一定の数と等しいか、またはそれより少ない数の弱判別器を有するようにすることができる。
【００１７】
前記上位ノード並びに第１および第２の下位ノードは、それぞれ、データ重みを利用して弱判別器を選択する選択手段と、選択された弱判別器による学習サンプルの判別結果を、信頼度により重み付けして累積和を演算する累積和演算手段と、学習した弱判別器を利用して識別処理を行う場合に使用される基準値を、累積和に基づいて演算する基準値演算手段と、学習サンプルに基づいてデータ重みを演算する重み演算手段と、重み演算手段により演算されたデータ重みを保存し、選択手段による次の弱判別器の選択に反映する反映手段とを備えるようにすることができる。
【００１８】
前記弱判別器は、学習サンプルの画像データの２画素の値の差と閾値との差に基づいて判別結果を演算するようにすることができる。
【００１９】
本発明の第１の情報処理方法は、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップとを含むことを特徴とする。
【００２０】
本発明の第１の記録媒体のプログラムは、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップとを含むことを特徴とする。
【００２１】
本発明の第１のプログラムは、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを複数の弱判別器よりなる上位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを複数の弱判別器よりなる第１の下位ノードにより学習するステップと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを複数の弱判別器よりなる第２の下位ノードにより学習するステップとをコンピュータに実行させることを特徴とする。
【００２２】
本発明の第２の情報処理装置は、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードとを備え、第１および第２の下位ノードは、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行い、最も上位の１つの上位ノードから、１つの末端の第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて識別処理を行うことを特徴とする。
【００２３】
前記弱判別器は、学習サンプルの画像データの２画素の値の差と閾値との差に基づいて判別結果を演算するようにすることができる。
【００２４】
本発明の第２の情報処理方法は、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードとを備える情報処理装置の情報処理方法であって、下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の１つの上位ノードから、１つの末端の第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて識別処理を行うステップとを含むことを特徴とする。
【００２５】
本発明の第２の記録媒体のプログラムは、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードとを備える情報処理装置のプログラムであって、第１および第２の下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の１つの上位ノードから、１つの末端の第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて識別処理を行うステップとを含むことを特徴とする。
【００２６】
本発明の第２のプログラムは、複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、上位ノードの判別結果に基づいて、第１の範囲の一部であって、第２の範囲と異なる範囲である第３の範囲の第３のラベルの学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードとを備える情報処理装置のプログラムであって、第１および第２の下位ノードが、入力された信号に対して、上位ノードの判別結果に基づいて識別処理を行うステップと、最も上位の１つの上位ノードから、１つの末端の第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて識別処理を行うステップとをコンピュータに実行させることを特徴とする。
【００２７】
本発明においては、第１の範囲の第１のラベルの学習サンプルが、上位ノードにより学習され、上位ノードの判別結果に基づいて、第１の範囲の一部である第２の範囲の第２のラベルの学習サンプルが第１の下位ノードにより学習され、第３の範囲の第３のラベルの学習サンプルが第２の下位ノードにより学習される。
【００２８】
さらに本発明においては、下位ノードは、上位ノードの判別結果に基づいて識別処理を行い、最も上位の１つの上位ノードから１つの末端の第１または第２の下位ノードに向かってノード単位で識別処理が順次行われ、末端の第１または第２の下位ノードに達したとき、並列する他の第１または第２の下位ノードについて識別処理が行われる。
【発明の効果】
【００２９】
本発明によれば、リアルタイムで顔検出することができる。特に、本発明によれば、学習または検出処理を、少ない演算量とし、高速化することができる。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００３１】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００３２】
［請求項１］
複数のラベル（例えば、図１７のラベル１乃至１５）に区分された学習サンプルのうち、第１の範囲の第１のラベル（例えば、図１７のラベル１乃至１５）の学習サンプルを学習する複数の弱判別器（例えば、図２４の弱判別器２１−１1乃至２１−１100）よりなる上位ノード（例えば、図２４のノード２２１−１）と、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベル（例えば、図１７のラベル１乃至５）の前記学習サンプルを学習する複数の弱判別器（例えば、図２４の弱判別器２１−１−１1乃至２１−１−１100）よりなる第１の下位ノード（例えば、図２４のノード２２１−１−１）と、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベル（例えば、図１７のラベル６，８，１０，１２，１４）の前記学習サンプルを学習する複数の弱判別器（例えば、図２４の弱判別器２１−１−２1乃至２１−１−２100）よりなる第２の下位ノード（例えば、図２４のノード２２１−１−２）と
を備えることを特徴とする情報処理装置（例えば、図５の対象物検出装置１）。
【００３３】
［請求項２］
前記学習は、最も上位の１つの前記上位ノード（例えば、図２５のノード２２１−１）から、１つの末端の前記第１または第２の下位ノード（例えば、図２５のノード２２１−１−１−１−１）に向かって順次行われ、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノード（例えば、図２５の兄弟ノードとしてのノード２２１−１−１−１−２）について行われる
ことを特徴とする請求項１に記載の情報処理装置。
【００３４】
［請求項３］
前記上位ノード（例えば、図２４のノード２２１−１−１−１）は一定の数（例えば、１００個）の前記弱判別器を有し、
末端の前記第１および第２の下位ノード（例えば、図２４のノード２２１−１−１−１−１）は、前記一定の数と等しい（例えば、１００個）か、またはそれより少ない数（例えば、図２４のＬ１個）の前記弱判別器を有する
ことを特徴とする請求項１に記載の情報処理装置。
【００３５】
［請求項４］
前記上位ノード並びに前記第１および第２の下位ノードは、それぞれ、
データ重み（例えば、式（１１）の重みＤt）を利用して前記弱判別器を選択する選択手段（例えば、図２９の弱判別器選択部３３３）と、
選択された前記弱判別器による学習サンプルの判別結果（例えば、ｆ（ｘ））を、信頼度（例えば、式（１０）の重みαt）により重み付けして累積和（例えば、式（７）のＦ（ｘ））を演算する累積和演算手段（例えば、図２９の重み付き多数決演算部３３６）と、
学習した前記弱判別器を利用して識別処理を行う場合に使用される基準値（例えば、式（８）の打ち切り閾値ＲM）を、前記累積和に基づいて演算する基準値演算手段（例えば、図２９の閾値演算部３３７）と、
前記学習サンプルに基づいて前記データ重みを演算する重み演算手段（例えば、図２９のデータ重み更新部３３５）と、
前記重み演算手段により演算された前記データ重みを保存し、前記選択手段による次の前記弱判別器の選択に反映する反映手段（例えば、図２９の保存部３３９）と
を備えることを特徴とする請求項１に記載の情報処理装置。
【００３６】
［請求項５］
前記弱判別器は、前記学習サンプルの画像データの２画素の値（例えば、Ｉ１，Ｉ２）の差（例えば、式（２）のピクセル間差分特徴ｄ）と閾値（例えば、図３２のステップＳ７４における弱仮説ｆ（ｘ）の閾値Ｔｈ）との差に基づいて前記判別結果（例えば、図３２のステップＳ７４における弱仮説ｆ（ｘ））を演算する
ことを特徴とする請求項１に記載の情報処理装置。
【００３７】
［請求項６］
複数のラベル（例えば、図１７のラベル１乃至１５）に区分された学習サンプルのうち、第１の範囲の第１のラベル（例えば、図１７のラベル１乃至１５）の学習サンプルを複数の弱判別器（例えば、図２４の弱判別器２１−１1乃至２１−１100）よりなる上位ノード（例えば、図２４のノード２２１−１）により学習するステップと、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベル（例えば、図１７のラベル１乃至５）の前記学習サンプルを複数の弱判別器（例えば、図２４の弱判別器２１−１−１1乃至２１−１−１100）よりなる第１の下位ノード（例えば、図２４のノード２２１−１−１）により学習するステップと、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベル（例えば、図１８のラベル６，８，１０，１２，１４）の前記学習サンプルを複数の弱判別器（例えば、図２４の弱判別器２１−１−２1乃至２１−１−２100）よりなる第２の下位ノード（例えば、図２４のノード２２１−１−２）により学習するステップと
を含むことを特徴とする情報処理方法。
【００３８】
［請求項９］
複数のラベル（例えば、図１７のラベル１乃至１５）に区分された学習サンプルのうち、第１の範囲の第１のラベル（例えば、図１７のラベル１乃至１５）の学習サンプルを学習した複数の弱判別器（例えば、図２４の弱判別器２１−１1乃至２１−１100）よりなる上位ノード（例えば、図２４のノード２２１−１）と、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベル（例えば、図１７のラベル１乃至５）の前記学習サンプルを学習した複数の弱判別器（例えば、図２４の弱判別器２１−１−１1乃至２１−１−１100）よりなる第１の下位ノード（例えば、図２４のノード２２１−１−１）と、
前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベル（例えば、図１７のラベル６，８，１０，１２，１４）の前記学習サンプルを学習した複数の弱判別器（例えば、図２４の弱判別器２１−１−２1乃至２１−１−２100）よりなる第２の下位ノード（例えば、図２４のノード２２１−１−２）と
を備え、
前記第１および第２の下位ノード（例えば、図２４のノード２２１−１−１, ２２１−１−２）は、入力された信号に対して、前記上位ノード（例えば、図２４のノード２２１−１）の判別結果に基づいて識別処理を行い（例えば、図３６のステップＳ１３２の処理）、
最も上位の１つの前記上位ノード（例えば、図２４のノード２２１−１）から、１つの末端の前記第１または第２の下位ノード（例えば、図２４のノード２２１−１−１−１−１）に向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノード（例えば、図２４の兄弟ノードとしてのノード２２１−１−１−１−２）について識別処理を行う（例えば、図３６のステップＳ１３８の処理の後のステップＳ１３２乃至Ｓ１３６の処理）
ことを特徴とする情報処理装置（例えば、図５の対象物検出装置１）。
【００３９】
［請求項１１］
複数のラベルに区分された学習サンプルのうち、第１の範囲の第１のラベルの学習サンプルを学習した複数の弱判別器よりなる上位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部である第２の範囲の第２のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第１の下位ノードと、
前記上位ノードの判別結果に基づいて、前記第１の範囲の一部であって、前記第２の範囲と異なる範囲である第３の範囲の第３のラベルの前記学習サンプルを学習した複数の弱判別器よりなる第２の下位ノードと
を備える情報処理装置の情報処理方法であって、
前記下位ノードが、入力された信号に対して、前記上位ノードの判別結果に基づいて識別処理を行うステップ（例えば、図３６のステップＳ１３２）と、
最も上位の１つの前記上位ノードから、１つの末端の前記第１または第２の下位ノードに向かって、ノード単位で順次識別処理を行い、末端の前記第１または第２の下位ノードに達したとき、並列する他の前記第１または第２の下位ノードについて識別処理を行うステップ（例えば、図３６のステップＳ１３８の処理の後のステップＳ１３２乃至Ｓ１３６）と
を含むことを特徴とする情報処理方法。
【００４０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、アンサンブル学習（集団学習）を利用して画像から対象物を検出する情報処理装置を対象物検出装置に適用したものである。
【００４１】
集団学習によって得られる学習機械は、多数の弱仮説と、これらを組み合わせる結合機（combiner）とからなる。入力によらず、固定した重みで弱仮説の出力を統合する結合機の一例としてブースティングがある。ブースティングにおいては、前に生成した弱仮説の学習結果を使用して、間違いが発生した学習サンプル（例題）の重みを増すように、学習サンプルが従う分布が加工され、この分布に基づき新たな弱仮説の学習が行われる。これにより不正解が多く対象物として判別が難しい学習サンプルの重みが相対的に上昇し、結果的に重みが大きい、即ち判別が難しい学習サンプルを正解させるような弱判別器が逐次選択される。この場合、学習における弱仮説の生成は逐次的に行われ、後から生成された弱仮説はその前に生成された弱仮説に依存することになる。
【００４２】
対象物を検出する際には、上述のようにして学習により逐次生成された多数の弱仮説の判別結果が使用される。例えばAdaBoost（アダブースト）の場合は、この学習により生成された弱仮説（以下、弱判別器という。）全ての判別結果（対象物であれば１、非対象物であれば−１）が結合機に供給され、結合機は、全判別結果に対して、対応する弱判別器毎に学習時に算出された信頼度を重み付け加算し、その重み付き多数決の結果を出力し、結合機の出力値を評価することで、入力された画像が対象物か否かを選択する。
【００４３】
弱判別器は、なんらかの特徴量を使用して、対象物かまたは非対象物であるかの判定を行うものである。なお、後述するように、弱判別器の出力は対象物か否かを確定的に出力してもよく、対象物らしさを確率密度などで確率的に出力してもよい。本実施の形態においては、２つのピクセル間の輝度値の差という極めて簡単な特徴量（以下、ピクセル間差分特徴という。）を使用して対象物か否かを判別する弱判別器を使用した集団学習装置を利用することで、対象物の検出処理を高速化する。
【００４４】
（１）対象物検出装置
図５は、本実施の形態における対象物検出装置の処理機能を示す機能ブロック図である。図５に示されるように、対象物検出装置１は、対象物検出装置１への入力画像として濃淡画像（輝度画像）を出力する画像出力部２、入力画像の拡大または縮小、すなわちスケーリングを行うスケーリング部３、スケーリングされた入力画像を、所定サイズのウィンドウで、例えば左上から右下に向けて順次スキャンして、ウィンドウ内の画像をウィンドウ画像として出力する走査部４、並びに走査部４にて順次スキャンされた各ウィンドウ画像が対象物か非対象物かを判別する判別器５を有し、与えられる画像（入力画像）の中から対象物体の領域を示す対象物の位置および大きさを出力する。
【００４５】
すなわち、スケーリング部３は、入力画像を指定された全てのスケールに拡大または縮小したスケーリング画像を出力する。走査部４は、各スケーリング画像について、検出したい対象物の大きさとなるウィンドウを順次スキャンしてウィンドウ画像を切り出し、判別器５は、各ウィンドウ画像が顔か否かを判別する。
【００４６】
判別器５は、集団学習により判別器５を構成する複数の弱判別器の集団学習を実行する集団学習機６の学習結果を参照して、現在のウィンドウ画像が、例えば顔画像などの対象物であるか、または非対象物（顔画像以外の画像）であるかを判別する。
【００４７】
また、対象物検出装置１は、入力画像から複数の対象物が検出された場合は、複数の領域情報を出力する。更に、複数の領域情報のうち領域が重なりあっている領域が存在する場合は、後述する方法で最も対象物とされる評価が高い領域を選択する処理も行うことができる。
【００４８】
画像出力部２から出力された画像（濃淡画像）は、先ずスケーリング部３に入る。スケーリング部３では、バイリニア補完を用いた画像の縮小が行われる。本実施の形態においては、スケーリング部３で最初に複数の縮小画像を生成するのではなく、必要とされる画像を走査部４に対して出力し、その画像の処理を終えた後で、次の更に小さな縮小画像を生成するという処理が繰り返される。
【００４９】
すなわち、図６に示されるように、スケーリング部３は、先ず、入力画像１０Ａをそのまま走査部４へ出力する。そして、スケーリング部３は、入力画像１０Ａについて走査部４および判別器５の処理が終了するのを待った後、入力画像１０Ａのサイズを縮小した入力画像１０Ｂを生成する。さらに、スケーリング部３は、この入力画像１０Ｂにおける走査部４および判別器５の処理が終了するのを待って、入力画像１０Ｂのサイズを更に縮小した入力画像１０Ｃを走査部４に出力するというように、より小さく縮小した縮小画像１０Ｄ、１０Ｅなどを順次生成していき、縮小画像の画像サイズが、走査部４にて走査するウィンドウサイズより小さくなった時点で処理を終了する。この処理の終了をまって、画像出力部２は、次の入力画像をスケーリング部３に出力する。
【００５０】
走査部４では、図７に示されるように、与えられた例えば画像１０Ａに対して、後段の判別器５が受け付けるウィンドウサイズと同じ大きさのウィンドウ１１を画像（画面）の全体に対して順次当てはめていき、各位置におけるウィンドウ１１内の画像（以下、切り取り画像またはウィンドウ画像という）を判別器５に出力する。
【００５１】
ウィンドウ１１の走査は、図８に示されるように、１画素単位で行われる。すなわち、所定の位置におけるウィンドウ１１内の切り取り画像が走査部４から出力された後、次の走査においては、ウィンドウ１１が１画素分右方向に移動され、その位置におけるウィンドウ１１内の切り取り画像が判別器５に供給される。
【００５２】
なお、ウィンドウサイズは一定であるが、上述したように、スケーリング部３により入力画像が順次縮小され、入力画像の画像サイズが様々なスケールに変換されるため、任意の大きさの対象物体を検出することが可能となる。
【００５３】
すなわち、入力画像上の顔の大きさが、どのような大きさであったとしても、画像サイズが順次縮小されることで、いつかはウィンドウサイズとほぼ同じ大きさの画像となる。その結果、そのウィンドウ１１内の画像が、人の顔の画像であるか否かを検出することができる。
【００５４】
判別器５は、前段から与えられた切り取り画像が、例えば顔などの対象物体であるか否かを判定する。判別器５は、図９に示されるように、アンサンブル学習（Ensemble learning）により得られた複数の弱判別器２１ｉ（ｉ＝１，２，３，・・・，Ｋ）と、これらの出力（判別結果）に、それぞれ対応する重みαｉ（ｉ＝１，２，３，・・・，Ｋ）を乗算し、重み付き多数決F(x)を求める加算器２２とを有する。
【００５５】
弱判別器２１１乃至２１Ｋは、それぞれウィンドウ１１内の画素のうちの任意の位置の２つの画素に基づき、そのウィンドウ１１内の画像が、人の顔の画像であるか否かを判別する。Ｋは、ウィンドウ１１内の画像から抽出可能な２個の画素の組み合わせの数に対応する。
【００５６】
判別器５においては、入力されるウィンドウ画像に対し、各弱判別器２１ｉが対象物である否かの推定値f(x)を逐次出力し、加算器２２が重み付き多数決F(x)を算出して出力する。この重み付き多数決F(x)の値に応じ、図示せぬ判定手段が、ウィンドウ画像が対象物か否かを最終的に判定する。
【００５７】
集団学習機６は、後述する方法にて、弱判別器２１ｉと、それらの出力（推定値）に乗算する重みを集団学習により予め学習する。集団学習としては、複数の判別器の結果を多数決にて求めることができるものであれば、具体的にはどんな手法でも適用可能である。例えば、データの重み付けを行って重み付き多数決行うアダブースト（AdaBoost）などのブースティングを用いた集団学習を適用することができる。
【００５８】
判別器５を構成する各弱判別器２１ｉは、判別のための特徴量として、２つの画素間の輝度値の差分（ピクセル間差分特徴）を使用する。そして、各弱判別器２１ｉは、対象物か非対象物であるかのラベリングが予め施された複数の濃淡画像からなる学習サンプルにより学習された特徴量と、ウィンドウ画像の特徴量とを比較し、ウィンドウ画像が対象物であるか否かを推定するための推定値を確定的または確率的に出力する。
【００５９】
加算器２２は、弱判別器２１ｉの推定値に、各弱判別器２１ｉに対する信頼度となる重みを乗算し、これを加算した値（重み付き多数決の値）を出力する。AdaBoostでは、複数の弱判別器２１ｉは、順次推定値を算出し、これに伴い重み付き多数決の値が逐次更新されていく。これら複数の弱判別器は、集団学習機６により後述するアルゴリズムに従い、上述の学習サンプルを使用して集団学習により逐次的に生成されたものであり、例えばその生成順に上記推定値を算出する。また、重み付き多数決の重み（信頼度）は、弱判別器を生成する後述する学習工程にて学習される。
【００６０】
弱判別器２１ｉは、例えばAdaBoostのように、弱判別器が２値出力を行う場合は、ピクセル間差分特徴を閾値で二分することで、対象物体であるかどうかの判別を行う。閾値により判別を行う場合、複数の閾値を用いてもよい。また、弱判別器は、例えばReal-AdaBoostのように、ピクセル間差分特徴から対象物体かどうかを表す度合いの連続値を確率的に出力してもよい。これら弱判別器２１ｉが必要とする判別のための特徴量（閾値）なども学習時に上記アルゴリズムに従って学習される。
【００６１】
更に、本実施の形態では、重み付き多数決の際、全ての弱判別器の計算結果を待たず、計算途中であっても、その値によっては対象物体でないと判断して計算を打ち切るため、打ち切りの閾値（基準値）が学習工程で学習される。この打ち切り処理によって、検出処理における演算量を大幅に削減することが可能となる。これにより、全ての弱判別器の計算結果を待たず、計算途中で次のウィンドウ画像の判別処理に移ることができ、迅速な処理が可能となる。
【００６２】
このように、判別器５は、ウィンドウ画像が対象物か否かを判定するための評価値として重み付き多数決を算出し、その評価値に基づきウィンドウ画像が対象物か否かを判定する判定手段として機能する。更に判別器５は、予め学習により生成された複数の弱判別器が推定値を出力する毎に、その推定値に対して学習により得られた各弱判別器に対する重みを乗算して加算した重み付き多数決の値を更新し、この重み付き多数決の値（評価値）を更新する毎に、上記打ち切り閾値を利用して推定値の算出を打ち切るか否かをも制御する。
【００６３】
この判別器５は、集団学習機６において、学習サンプルを使用し、所定のアルゴリズムに従って集団学習することにより生成される。ここでは先ず、集団学習機６における集団学習方法について説明し、次に、その集団学習により得られた判別器５を使用し、入力画像から対象物を判別する方法について説明する。
【００６４】
（２）集団学習機
ブースティングアルゴリズムを用いて集団学習する集団学習機６は、上述したように複数の弱判別器を複数個組み合わせ、結果的に強い判別結果が得られるよう学習する。弱判別器は、１つ１つは、極めて簡単な構成とされ、１つでは顔か顔でないかの判別能力も低いものであるが、これを例えば数百乃至数千個組み合わせることで、高い判別能力を持たせることができる。この集団学習機６は、例えば数千の学習サンプルといわれる予め正解付け（ラベリング）された対象物と非対象物、例えば顔画像と非顔画像とからならなるサンプル画像を使用し、多数の学習モデル（仮説の組み合わせ）から所定の学習アルゴリズムに従って１つの仮説を選択（学習）することで弱判別器を生成し、この弱判別器の組み合わせ方を決定していく。弱判別器はそれ自体では判別性能が低いものであるが、これらの選別、組み合わせ方により、結果的に判別能力が高い判別器を得ることができるため、集団学習機６では、弱判別器の組み合わせ方、即ち弱判別器の選別およびそれらの出力値を重み付き多数決する際の重みなどの学習をする。
【００６５】
次に、適切な弱判別器を学習アルゴリズムに従って多数組み合わせた判別器を得るための集団学習機６の学習方法について説明するが、集団学習機６の学習方法の説明に先立ち、集団学習にて学習する学習データのうちで、本実施の形態において特徴となる学習データ、具体的には、弱判別器を構成するためのピクセル間差分特徴、並びに判別工程（検出工程）において、検出を途中で打ち切るための打ち切り閾値（基準値）について説明しておく。
【００６６】
（３）弱判別器の構成
本実施の形態における判別器５は、複数の弱判別器で構成される。この弱判別器は、入力される画像に含まれる全画素の中から選択された２つの画素の輝度値の差分（ピクセル間差分特徴）により顔か否かを判別する極めて簡単な構成とされる。これにより、判別工程において、弱判別器の判別結果の算出が高速化される。弱判別器に入力される画像は、学習工程では、学習サンプルであり、判別（識別）工程では、スケーリング画像から切り出されたウィンドウ画像である。
【００６７】
図１０は、ピクセル間差分特徴を説明するための画像を示す模式図である。画像３０において、本実施の形態においては、任意の２つの画素の輝度値の差、例えば画素３１の輝度値Ｉ１と、画素３２の輝度値Ｉ２との差、即ち下記式（２）で得られる値ｄがピクセル間差分特徴と定義される。
【００６８】
【数２】
2005284487.tif 000004
【００６９】
どのピクセル間差分特徴ｄを顔検出に使用するかが弱判別器の能力となる。従って、サンプル画像またはウィンドウ画像に含まれる任意の２画素の組み合わせ（フィルタまたは弱仮説ともいう。）から、弱判別器に使用するピクセル位置の組を選択する必要がある。
【００７０】
例えばAdaBoostでは、弱判別器に、＋１（対象物体である）か、または−１（非対象物体）であるかの確定的な出力を要求する。そこで、AdaBoostにおいては、ある任意のピクセル位置において、そのピクセル間差分特徴ｄを、１または複数の閾値を利用して２分割（＋１または−１）することをもって弱判別器とすることができる。
【００７１】
また、このような２値出力ではなく、学習サンプルの確率分布を示す連続値（実数値）を確率的に出力するような例えばReal-AdaBoostまたはGentle Boostなどのブースティングアルゴリズムの場合、弱判別器は、入力された画像が対象物である確からしさ（確率）を出力する。弱判別器の出力は、このように確定的であっても確率的であってもよい。先ず、これら２種類の弱判別器について説明する。
【００７２】
（３−１）２値出力の弱判別器
確定的な出力をする弱判別器は、ピクセル間差分特徴ｄの値に応じて、対象物か否かの２クラス判別を行う。対象画像領域中のある２つのピクセルの輝度値をＩ１、Ｉ２とし、ピクセル間差分特徴ｄにより対象物か否かを判別するための閾値をTh１とすると、下記式（３）を満たすか否かで、いずれのクラスに属するかを決定することができる。
【００７３】
【数３】
2005284487.tif 000005
【００７４】
ここで、弱判別器を構成するには、２つのピクセル位置と、その閾値を決定する必要があるが、その決定方法については後述する。上記式（３）の閾値判定は最も単純な場合である。また、閾値判定には、次の下記式（４）または式（５）に示す２つの閾値を用いることもできる。
【００７５】
【数４】
2005284487.tif 000006
【００７６】
【数５】
2005284487.tif 000007
【００７７】
図１１Ａ乃至図１１Ｃは、縦軸に頻度をとり、横軸にピクセル間差分特徴ｄをとって、それぞれ上記式（３）乃至式（５）に示す３つの判別方法を、データの頻度分布の特徴的なケースに合わせて示す模式図である。図１１Ａ乃至図１１Ｃにおいては、ｙｉは弱判別器の出力を示し、破線が、ｙｉ＝−１（非対象物）であると判定された学習サンプルの分布を示し、実線が、ｙｉ＝１（対象物）であると判定された学習サンプルの分布を示す。多数の顔画像と非顔画像からなる学習サンプルに対し、同一のピクセル間差分特徴ｄに対する頻度を取ると、図１１Ａ乃至図１１Ｃに示されるヒストグラムが得られる。
【００７８】
なお、実線と破線は、それぞれ、ｙｉ＝１、またはｙｉ＝−１と判定された頻度を独立に表している。従って、例えば、図１１Ａのピクセル間差分特徴ｄの合計した分布は、図１２に示されるようになる。
【００７９】
図１１Ａに示されるように、ヒストグラムが、例えば、非対象物を示す破線の分布と、対象物を示す実線の分布が、同様な正規曲線のように分布し、そのピーク位置が左右にずれているような場合は、その境界部に閾値Th１を設定し、上記式（３）にて対象物か否かを判別することができる。例えばAdaBoostにおいては、弱判別器の出力（判別結果）をf(x)としたとき、出力f(x)＝１（対象物）またはf(x)＝−１（非対象物）となる。図１１Ａは、ピクセル間差分特徴ｄが閾値Th１より大きい場合に対象物であると判定され、弱判別器の出力がf(x)＝１となる例を示している。
【００８０】
また、２つのヒストグラムのピーク位置が同じような位置にあって、その分布の幅が異なるような場合、分布が狭い方のピクセル間差分特徴ｄの上限値近傍および下限値近傍を閾値として、上記式（４）または式（５）により、対象物か否かを判別することができる。図１１Ｂは、分布の幅が狭い方が対象物と判定され、弱判別器の出力がf(x)＝１となる例を、図１１Ｃは、分布の幅が広い方から分布の幅が狭い方を除いたものが対象物と判定され、弱判別器の出力がf(x)＝１となる例を、それぞれ示している。
【００８１】
弱判別器は、あるピクセル間差分特徴ｄとその閾値とを決定することにより構成されるが、その判定によって誤り率ができるだけ小さくなるような、即ち判別率が高いピクセル間差分特徴ｄを選択する必要がある。例えば、閾値は、２つの画素位置を決め、正解付けされた学習サンプルに対して、図１１に示されるようなヒストグラムを求め、最も正解率が高くなる閾値、換言すれば、非正解率（誤り率）が最も小さくなるような閾値を検索することで決定される。また、２つの画素位置は、閾値と共に得られる誤り率が最も小さいものを選択するなどすればよい。但し、AdaBoostにおいては、判別の難易度を反映した重み（データ重み）が各学習サンプルに付けられており、適切なピクセル間差分特徴ｄ（どの位置の２つのピクセルの輝度値を特徴値とするか）が後述する重み付き誤り率を最小にするように学習される。
【００８２】
（３−２）連続値出力の弱判別器
確率的な出力をする弱判別器としては、上述した如く、例えばReal-AdaBoostまたはGentle Boostなどのように弱判別器が連続値を出力するものがある。この場合、弱判別器は、ある決められた一定値（閾値）により判別問題を解き、２値出力（f(x)＝１または−１）する上述の場合と異なり、入力された画像が対象物である度合いを、例えば確率密度関数として出力する。
【００８３】
このような、対象物体である度合い（確率）を示す確率的な出力は、ピクセル間差分特徴ｄを入力としたときPＰ(x)を学習サンプルの対象物の確率密度関数、Pｎ(x)を学習サンプルの非対象物の確率密度関数とすると、下記式（６）に示す関数f(x)とすることができる。
【００８４】
【数６】
2005284487.tif 000008
【００８５】
図１３Ａは、縦軸に確率密度をとり、横軸にピクセル間差分特徴ｄをとって、データの頻度分布の特徴的なケースを示す図であり、図１３Ｂは、縦軸に関数f(x)の値をとり、横軸にピクセル間差分特徴ｄをとって、図１３Ａに示すデータ分布における関数f(x)を示すグラフである。図１３Ａにおいて、破線が非対象物体であることを示す確率密度、実線が対象物体であることを示す確率密度を、それぞれ示す。上記式（６）から関数f(x)を求めると、図１３Ｂに示すグラフが得られる。弱判別器は、学習工程または判別工程において、入力される学習サンプルまたはウィンドウ画像から得られた上記式（２）に示すピクセル間差分特徴ｄに対応する関数f(x)を出力する。この関数f(x)は、対象物らしさの度合いを示すものであって、例えば非対象物を−１、対象物を１としたとき、−１乃至１までの連続値を取るものとすることができる。例えばピクセル間差分特徴ｄとそれに対応するf(x)とからなるテーブルを記憶し、入力に応じてテーブルからf(x)を読出し出力する。従って、一定値である閾値Th１またはTh１１，Th１２，Th２１，Th２２より若干記憶量が大きくなるが判別性能が向上する。
【００８６】
これら複数の推定方法（判別方法）は、アンサンブル学習中に組み合わせて使用することで、判別性能が向上することが期待できる。また、いずれか単一の判別方法のみを利用すれば、実行速度性能を引き出すことができる。
【００８７】
本実施の形態において使用する弱判別器は、使用する特徴量（ピクセル間差分特徴ｄ）が非常に単純であるために、上述したように極めて高速に対象物の判別を行うことができる点が特長である。このように対象物として顔検出する場合には、ピクセル間差分特徴ｄを上述の判別方法のうち最も単純な式（３）に示す閾値判定によっても極めてよい判別結果が得られるが、どのような判別方法により弱判別器が有効に機能するかは、対象とする問題によって異なり、その閾値設定方法などを適宜選択すればよい。また、問題によっては、２つの画素の輝度値の差ではなく、３個以上の画素の輝度値の差を特徴量としてもよい。
【００８８】
（４）打ち切り閾値
次に、打ち切り閾値について説明する。ブースティングを用いた集団学習機においては、通常は、上述したように判別器５を構成する全弱判別器の出力の重み付き多数決によりウィンドウ画像が対象物か否かを判別する。重み付き多数決は、弱判別器の判別結果（推定値）を逐次足し合わせていくことで算出される。例えば、弱判別器の個数をｔ（＝１，・・・，Ｋ）、各弱判別器に対応する多数決の重み（信頼度）をαt、各弱判別器の出力をft(x)としたとき、AdaBoostにおける重み付き多数決の値F(x)は、下記式（７）により求めることができる。
【００８９】
【数７】
2005284487.tif 000009
【００９０】
図１４は、横軸に弱判別器の数をとり、縦軸に上記式（７）に示す重み付き多数決の値F(ｘ)をとって、入力される画像が対象物か否かに応じた重み付き多数決の値F(x)の変化を示すグラフである。図１４において、破線で示すデータＶ１乃至Ｖ４は、対象物としてラベリングされている画像（学習サンプル）を入力として、弱判別器により推定値f(x)を逐次算出し、その重み付き多数決の値F(x)を逐次求めたものである。このデータＶ１乃至Ｖ４に示されるように、対象物を入力画像とすると、ある程度の個数の弱判別器の判別によりその重み付き多数決の値F(x)はプラス（正）になる。
【００９１】
本実施の形態においては、通常のブースティングアルゴリズムとは異なる手法が導入される。すなわち、弱判別器の判別結果を逐次足し合わせていく過程において、全ての弱判別器の結果を得る前であっても、明らかに対象物ではないと判別できるウィンドウ画像については、その判別が中止される。判別を中止するか否かを決定する打ち切り閾値（基準値）は、学習工程にて学習される。
【００９２】
この打ち切り閾値により、全弱判別器の出力結果を用いなくとも、非対象物であることが確実に推定できる場合、弱判別器の推定値f(x)の演算を途中で中止することができ、これにより、全ての弱判別器を使用した重み付き多数決を行うのに比して、格段に演算量を低減し、処理の迅速化が可能となる。
【００９３】
この打ち切り閾値は、ラベリングされている学習サンプルのうち、検出対象物を示す学習サンプルの判別結果の重み付き多数決の値が取りえる最小値とすることができる。判別工程において、ウィンドウ画像の弱判別器による判別結果が、逐次重み付きされて出力される。即ち、重み付き多数決の値が逐次更新されていくが、この更新されていく値と、上記打ち切り閾値とを更新の度、即ち１つの弱判別器が判別結果を出力する毎に比較し、更新された重み付き多数決の値が打ち切り閾値を下まわる場合には、当該ウィンドウ画像は対象物ではないとし、計算を打ち切ることができ、これにより無駄な演算を省いて、判別処理を高速化することができる。
【００９４】
すなわち、Ｍ番目の弱判別器の出力fM(x)の打ち切り閾値ＲMは、学習サンプルｘi（ｉ＝１乃至Ｎ）のうち、対象物である学習サンプル（ポジティブサンプル）ｘj（ｊ＝１乃至Ｊ）を使用したときの重み付き多数決の値F(x)の最小値とされ、下記式（８）のように定義される。
【００９５】
【数８】
2005284487.tif 000010
【００９６】
この式（８）に示されるように、対象物である学習サンプルｘ1乃至ｘJの重み付き多数決の値F(x)の最小値が０を上回る場合には打ち切り閾値ＲMには０が設定される。なお、０を上回らないようにするのは、０を閾値にして判別を行うAdaBoostの場合であり、ここは集団学習の手法により異なる場合がありうる。AdaBoostの場合においては、打ち切り閾値ＲMは図１４の実線で示されるように、入力画像として対象物を入力した場合の全データＶ１乃至Ｖ４の重み付き多数決の値F(x)のうち、取りうる最小値に設定され、全てのデータＶ１乃至Ｖ４の重み付き多数決の値F(x)の最小値が０を超えた場合は、打ち切り閾値ＲMが０に設定される。
【００９７】
本実施の形態においては、弱判別器が生成される毎の打ち切り閾値ＲM（Ｒ1乃至ＲＫ）を学習しておくことで、後述する判別工程において、例えばデータＶ５のように、複数の弱判別器により推定値が逐次出力され、重み付き多数決の値が逐次更新されていくが、この値が上記打ち切り閾値ＲMを下まわった時点で、後段の弱判別器による判別の処理が終了され。すなわち、この打ち切り閾値ＲMを学習しておくことにより、弱判別器の推定値を計算する毎に次の弱判別器の計算を行うか否かを決定でき、明らかに対象物ではないと判断される場合には、全ての弱判別器の判別結果を待たずに非対象物であることが判定でき、演算を途中で打ち切りことで検出処理を高速化することができる。
【００９８】
（５）弱判別器の組立構造
次に本実施の形態における弱判別器の組立構造について説明する。本実施の形態においては、例えば、図１５に示されるような複数個の学習サンプルが学習に用いられる。各学習サンプルは、２４×２４画素で構成される。そして、各学習サンプルは、人の顔の画像とされ、照明条件や人種など、様々なバリエーションを含んだものとされる。
【００９９】
また、本実施の形態においては、人の顔（頭）の姿勢に基づいてラベリングが行われる。
【０１００】
即ち、人の顔は、図１６に示されるように、ピッチ角、ヨー角、並びにロール角によって決定される。ピッチ角は、人の目と目を結んだ線と平行で、ほぼ人の頭の中心を通る軸２０１を中心とする上下の角度であり、例えば、上を向くと正、下を向くと負とされる。ヨー角は、軸２０１と垂直な軸であって、ほぼ頭の中心を垂直に通る軸２０２を中心とした角度であり、例えば、正面が０度とされ、右方向が負、左方向が正となるように定義される。ロール角は、軸２０１と軸２０２と直交する軸２０３を中心として回転する角度を表し、軸２０１が水平になる角度が０度とされる。
【０１０１】
この３つの角度のうち、ロール角は、画像を回転することで補正可能（変換可能）であるから、補正後の画像から、その画像が人の顔であるのか否かを判定することが可能となる。これに対して、ヨー角とピッチ角は、簡単には補正できない。そこで、本実施の形態においては、所定の角度のヨー角とピッチ角を有する人の顔の画像を学習することで、それが人の顔の画像であるか否かを検出できるようにする。
【０１０２】
このため、本実施の形態においては、学習サンプルは、そのヨー角とピッチ角に基づいて、図１７に示されるように、１５個のグループ（ラベル）に分類される（ラベリングされる）。
【０１０３】
ヨー角は、−９０度乃至−４５度の範囲、−４５度乃至−１５度の範囲、−１５度乃至＋１５度の範囲、＋１５度乃至＋４５度の範囲、並びに＋４５度乃至＋９０度の範囲の５つの範囲に区分される。ピッチ角は、−９０度乃至−２５度の範囲、−２５度乃至＋２５度の範囲、並びに＋２５度乃至＋９０度の範囲の３つの範囲に区分される。
【０１０４】
そして、ヨー角が−１５度乃至＋１５度の範囲であり、ピッチ角が−２５度乃至＋２５度の範囲がラベル１、ヨー角が＋１５度乃至＋４５度の範囲でピッチ角が−２５度乃至＋２５度の範囲がラベル２、ヨー角が−４５度乃至−１５度の範囲でピッチ角が−２５度乃至＋２５度の範囲がラベル３、ピッチ角が−１５度乃至＋１５度の範囲でピッチ角が＋２５度乃至＋９０度の範囲がラベル４、ヨー角が−１５度乃至＋１５度の範囲でピッチ角が−９０度乃至−２５度の範囲がラベル５、ヨー角が＋１５度乃至＋４５度の範囲でピッチ角が＋２５度乃至＋９０度の範囲がラベル６、ヨー角が−４５度乃至−１５度の範囲でピッチ角が＋２５度乃至＋９０度の範囲がラベル７、ヨー角が＋１５度乃至＋４５度の範囲でピッチ角が−９０度乃至−２５度の範囲がラベル８、ヨー角が−４５度乃至−１５度の範囲でピッチ角が−９０度乃至−２５度の範囲がラベル９、ヨー角が＋４５度乃至＋９０度の範囲でピッチ角が−２５度乃至＋２５度の範囲がラベル１０、ヨー角が−９０度乃至−４５度の範囲でピッチ角が−２５度乃至＋２５度の範囲がラベル１１、ヨー角が＋４５度乃至＋９０度の範囲でピッチ角が＋２５度乃至＋９０度の範囲がラベル１２、ヨー角が−９０度乃至−４５度の範囲でピッチ角が＋２５度乃至＋９０度の範囲がラベル１３、ヨー角が＋４５度乃至＋９０度の範囲でピッチ角が−９０度乃至−２５度の範囲がラベル１４、そしてヨー角が−９０度乃至−４５度の範囲でピッチ角が−９０度乃至−２５度の範囲がラベル１５とされる。
【０１０５】
図１８に示されるように、学習サンプルは、その写っている人の顔の向きに応じて、図１７に示されるラベル１乃至ラベル１５のいずれかにラベリングされる。このラベリングは、人によって行われる。
【０１０６】
そして、本実施の形態においては、基本的に一定の数（例えば、１００個）の弱判別器によりノードが構成され、各ノードがツリー構造に配置される。学習が、従ってその識別が、各ラベルの画像を識別できるように行われる。そして上位の階層の弱判別器では、下位の階層の弱判別器で行われる学習で対象とされる全てのラベルを含むように学習が行われる。
【０１０７】
例えば、簡単のため、ラベル１乃至ラベル５の５個のラベルの画像を学習する場合、図１９に示されるようにツリー構造が形成される。図１９の例の場合、各ノードは、１００個の弱判別器により構成されている。最上位のノード２２１−１は、弱判別器２１−１1乃至２１−１100により構成される。このノード２２１−１は、ラベル１乃至ラベル５の全ての学習サンプルを学習する。
【０１０８】
ノード２２１−１の下位のノードとして、ノード２２１−１−１，２２１−１−２が形成されている。ノード２２１−１−１は、弱判別器２１−１−１1乃至２１−１−１100により構成され、ノード２２１−１−２は、弱判別器２１−１−２1乃至２１−１−２L5により構成される。換言すれば、ノード２２１−１−１，２２１−１−２は、より上位のノード２２１−１の子ノードとなり、相対的にノード２２１−１は、ノード２２１−１−１，２２１−１−２の親ノードとなる。ノード２２１−１−１とノード２２１−１−２は、親ノードであるノード２２１−１に関して兄弟ノードとなる。親ノードと子ノードは相対的なものであり、親ノードでも、さらに上の階層のノードがあれば、それとの関係では子ノードとなる。
【０１０９】
ノード２２１−１−２は、それより下位のノード（子ノード）が存在しないため、弱判別器の数は、Ｌ５個とされる。ノード２２１−１−２は、ラベル５の学習サンプルを学習する。これに対して、ノード２２１−１−１は、親ノード２２１−１が学習する学習サンプルのラベル（ラベル１乃至ラベル５）のうち、兄弟ノード２２１−１−２が、学習するラベル（ラベル５）を除くラベル（ラベル１乃至ラベル４）の学習サンプルを学習する。
【０１１０】
ノード２２１−１−１の下位のノード（子ノード）としては、ノード２２１−１−１−１乃至２２１−１−１−３が設けられている。ノード２２１−１−１−１は、ラベル１の学習サンプルを学習し、ノード２２１−１−１−２は、ラベル２の学習サンプルを学習し、ノード２２１−１−１−３は、親ノード２２１−１−１が学習するラベル（ラベル１乃至ラベル４）のうちの兄弟ノードが学習するラベル（ラベル１とラベル２）を除くラベル（ラベル３とラベル４）を学習する。
【０１１１】
ノード２２１−１−１−１は、それより下位のノードが存在しない末端のノードであり、弱判別器２１−１−１−１1乃至２１−１−１−１L1のＬ１個の弱判別器を有している。ノード２２１−１−１−２も、末端のノードであり、弱判別器２１−１−１−２1乃至２１−１−１−２L2のＬ２個の弱判別器を有している。
【０１１２】
ノード２２１−１−１−３は、末端のノードではないため、弱判別器２１−１−１−３1乃至２１−１−１−３100の１００個の弱判別器を有している。
【０１１３】
ノード２２１−１−１−３を親ノードとする子ノードとしては、ノード２２１−１−１−３−１，２２１−１−１−３−２が設けられている。ノード２２１−１−１−３−１は、親ノードが学習するラベル（ラベル３とラベル４）のうち、ラベル３の学習サンプルを学習する。ノード２２１−１−１−３−２は、親ノード２２１−１−１−３が学習するラベル（ラベル３とラベル４）のうち、兄弟ノード２２１−１−１−３−１が学習するラベル（ラベル３）を除くラベル（ラベル４）の学習サンプルを学習する。ノード２２１−１−１−３−１は、末端のノードであるため、弱判別器２１−１−１−３−１1乃至２１−１−１−３−１L3のＬ３個の弱判別器により構成され、ノード２２１−１−１−３−２は、弱判別器２１−１−１−３−２1乃至２１−１−１−３−２L4のＬ４個の弱判別器により構成される。
【０１１４】
末端のノード２２１−１−１−１，２２１−１−１−２，２２１−１−１−３−１，２２１−１−１−３−２，２２１−１−２の弱判別器の数Ｌ１乃至Ｌ５は、各ノードが対応するラベルの学習サンプルを学習した場合において、その重み付き誤り率ｅtが０（充分小さい値）となる数とされる。
【０１１５】
このようにすることで、弱判別器の数を少なくすることが可能となる。
【０１１６】
即ち、このようにツリー構造にしないとすると、１つのラベルを識別するのに、例えば、図２０に示されるような弱判別器群２３１が必要となる。弱判別器群２３１は、弱判別器２１−１1乃至２１−１KのＫ個の弱判別器を有する。そして、このＫ個の弱判別器により、１つのラベルの学習サンプルの学習が行われることになる。
【０１１７】
従って、例えば５個のラベルの学習サンプルを学習するには、図２１に示されるように、ラベル１の学習サンプルを学習するための弱判別器群２３１−１の他、ラベル２乃至ラベル５の各ラベルの学習サンプルを学習するための弱判別器群２３１−２乃至２３１−５が必要となる。これらの弱判別器群２３１−２乃至２３−５も、それぞれＫ個の弱判別器から構成される。
【０１１８】
図１９に示されるツリー構造においても、重み付き誤り率ｅtが最後まで充分小さくならない場合には、最も上流のノードから、その末端のノードまでの学習経路における弱判別器の数は、最大Ｋ個となる。しかし、途中で重み付け誤り率ｅtの値が充分小さくなった場合には、そのラベルの学習サンプルの学習は、それ以降行われないため、その分弱判別器の数は少なくてすむ。さらに、上流側での複数のラベルの学習サンプルの学習は、共通の弱判別器により学習されるため、その分弱判別器の数は少なくてすむ。
【０１１９】
さらに、本実施の形態においては、判別（識別）工程で各弱判別器の処理の結果得られた値を重み付けして累積加算した値である重み付き多数決の値が、打ち切り閾値より小さくなった場合には、以後、判別（識別）処理は中止される。従って、その点からも弱判別器の数を少なくすることが可能となる。
【０１２０】
このことが、図２２に模式的に示されている。即ち、この実施の形態においては、ノード２２１は、基本的に、弱判別器２１1乃至２１100により構成されるが、各ノード２１iは、図２３に示されるように、打ち切り閾値による打ち切り機能を有している。図中、Ｙは出力が後段に引き継がれることを表し、Ｎは処理がそこで打ち切られることを表している。
【０１２１】
図２４は、このような打ち切り機能を有する弱判別器により各ノードが構成されている場合のツリー構造の一部（図２５のツリー構造の一部）を表している。この例は、ラベル１乃至ラベル１５の１５個のラベルの学習サンプルを学習、識別する例を表している。即ち、最上位の親ノード２２１−１は、弱判別器２１−１1乃至２１−１100で構成されている。親ノード２２１−１の子ノードとしては、ノード２２１−１−１，２２１−１−２，２２１−１−３が設けられている。親ノード２２１−１は、ラベル１乃至ラベル１５の全てのラベルの学習サンプルを学習するが、ノード２２１−１−１は、ラベル１乃至ラベル５の５個のラベルの学習サンプルを学習し、ノード２２１−１−２は、ラベル６，８，１０，１２，１４の５個のラベルの学習サンプルを学習し、ノード２２１−１−３は、ラベル７，９，１１，１３，１５の５個のラベルの学習サンプルを学習する。
【０１２２】
ノード２２１−１−１は、弱判別器２１−１−１1乃至２１−１−１100の１００個の弱判別器により構成され、ノード２２１−１−２は、弱判別器２１−１−２1乃至２１−１−２100の１００個の弱判別器により構成され、ノード２２１−１−３は、弱判別器２１−１−３1乃至２１−１−３100の１００個の弱判別器により構成されている。
【０１２３】
ノード２２１−１−１を親ノードとする子ノードには、ノード２２１−１−１−１，２２１−１−１−２，２２１−１−１−３が設けられている。ノード２２１−１−１−１は、弱判別器２１−１−１−１1乃至２１−１−１−１100の１００個の弱判別器を有しており、親ノード２２１−１−１が学習するラベル１乃至ラベル５の学習サンプルのうちの、ラベル１乃至ラベル３の３個のラベルの学習サンプルを学習する。ノード２２１−１−１−２は、ラベル４の学習サンプルを学習し、ノード２１−１−１−２1乃至２１−１−１−２L4のＬ４個の弱判別器を有している。ノード２２１−１−１−３は、ラベル５の学習サンプルを学習し、弱判別器２１−１−１−３1乃至２１−１−１−３L5のＬ５個の弱判別器により構成されている。
【０１２４】
ノード２２１−１−１−１を親ノードとする子ノードには、ノード２２１−１−１−１−１乃至２２１−１−１−１−３が設けられている。ノード２２１−１−１−１は、ラベル１の学習サンプルを学習し、弱判別器２１−１−１−１−１1乃至２１−１−１−１−１L1を有している。ノード２２１−１−１−２は、ラベル２の学習サンプルを学習し、弱判別器２１−１−１−１−２1乃至２１−１−１−１−２L2のＬ２個の弱判別器を有している。ノード２２１−１−１−１−３は、ラベル３の学習サンプルを学習し、弱判別器２１−１−１−１−３1乃至２１−１−１−１−３L3のＬ３個の弱判別器を有している。
【０１２５】
ノード２２１−１−２の子ノードとしてのノード２２１−１−２−１乃至２２１−１−２−３は、それぞれラベル１０、ラベル６，１２、またはラベル８，１４の学習サンプルを学習する。ノード２２１−１−２−１は、弱判別器２１−１−２−１1乃至２１−１−２−１L10のＬ１０個の弱判別器を有し、ノード２２１−１−２−２は、弱判別器２１−１−２−２1乃至２１−１−２−２100の１００個の弱判別器を有し、ノード２２１−１−２−３は、弱判別器２１−１−２−３1乃至２１−１−２−３100の１００個の弱判別器を有している。
【０１２６】
ノード２２１−１−３を親ノードする子ノードとしては、ノード２２１−１−３−１乃至２２１−１−３−３がある。ノード２２１−１−３−１は、ラベル１１の学習サンプルを学習し、弱判別器２１−１−３−１1乃至２１−１−３−１L11のＬ１１個の弱判別器を有する。ノード２２１−１−３−２は、ラベル７，１１の学習サンプルを学習し、弱判別器２１−１−３−２1乃至２１−１−３−２100の１００個の弱判別器を有する。ノード２２１−１−３−３は、ラベル９，１５の学習サンプルを学習し、弱判別器２１−１−３−３1乃至２１−１−３−３100の１００個の弱判別器を有している。
【０１２７】
各ノードには、図２５に示されるように、それぞれIDが割り当てられる。ノード２２１−１は、IDが１０００とされ、ノード２２１−１−１乃至２２１−１−３は、IDが、それぞれ１１００，１２００、または１３００とされる。ノード２２１−１−１−１乃至２２１−１−１−３は、それぞれIDが１１１０，１１２０、または１１３０とされる。ノード２２１−１−１−１−１乃至２２１−１−１−１−３のIDは、それぞれ１１１１，１１１２，１１１３とされる。ノード２２１−１−２−１乃至２２１−１−２−３のIDは、それぞれ１２１０，１２２０，１２３０とされる。
【０１２８】
ノード２２１−１−２−２を親ノードとする子ノードとしては、ノード２２１−１−２−２−１と、ノード２２１−１−２−２−２が設けられ、それぞれのIDは、１２２１または１２２２とされている。
【０１２９】
ノード２２１−１−２−３を親ノードとする子ノードとしては、ノード２２１−１−２−３−１と２２１−１−２−３−２が設けられ、それぞれのIDは１２３１または１２３２とされる。
【０１３０】
ノード２２１−１−３−１乃至２２１−１−３−３のIDは、それぞれ１３１０，１３２０または１３３０とされる。
【０１３１】
ノード２２１−１−３−２を親ノードとする子ノードとしては、ノード２２１−１−３−２−１とノード２２１−１−３−２−２があり、それぞれのIDは、１３２１または１３２２とされている。
【０１３２】
ノード２２１−１−３−３の子ノードとしては、ノード２２１−１−３−３−１とノード２２１−１−３−３−１があり、それぞれのIDは、１３３１または１３３２とされている。
【０１３３】
ツリー構造は、パターンを持つ特性に関する知見を用いて、人が設計してもよいし、学習を進めるうちに識別性能の向上しない（重み付け誤り率ｅtが充分小さくならない）サンプル分を枝分かれさせるようにすることで、構成するようにしてもよい。
【０１３４】
図２５（図２４）のツリー構造は、ヨー角が近似していれば、パターンの類似性も高いという知見に基づいて、ツリー構造が設計されている。このため、最上位の親ノード２２１−１は、ラベル１乃至ラベル１５の全てのラベルの学習サンプルを学習する。この１５個のラベルの学習サンプルは、正面の画像に関するラベル、左向きの画像に関するラベル、並びに右向きの画像に関するラベルの学習サンプルに区分され、それぞれノード２２１−１−１、ノード２２１−１−２またはノード２２１−１−３により学習される。
【０１３５】
そして、正面の画像であるラベル１乃至ラベル５の学習サンプルは、さらに、ピッチ角が−２５乃至＋２５度の範囲のラベル１乃至ラベル３の画像の学習サンプル、ピッチ角が＋２５度乃至＋９０度の範囲のラベル４の画像の学習サンプル、並びに、ピッチ角が−９０度乃至−２５度の範囲のラベル５の画像の学習サンプルに区分され、それぞれノード２２１−１−１−１、２２１−１−１−２，２２１−１−１−３により学習される。
【０１３６】
ピッチ角が−２５度乃至＋２５度の範囲のラベル１乃至ラベル３の画像は、さらに、それぞれ、ラベル１、ラベル２、またはラベル３の画像の学習サンプルに分割され、ノード２２１−１−１−１−１、２２１−１−１−１−２、または２２１−１−１−１−３により学習される。
【０１３７】
左向きの画像であるラベル６，８，１０，１２または１４の学習サンプルは、それぞれピッチ角に応じて、ラベル１０，ラベル６，１２、並びにラベル８，１４の３つに区分される。ラベル１０の学習サンプルは、ノード２２１−１−２−１により、ラベル６，１２は、ノード２２１−１−２−２により、ラベル８，１４は、ノード２２１−１−２−３により、それぞれ学習される。
【０１３８】
ラベル６とラベル１２の学習サンプルは、それぞれ、さらに分割され、ノード２２１−１−２−２−１，２２１−１−２−２−２によりそれぞれ学習される。
【０１３９】
ラベル８，１４の学習サンプルは、それぞれ、ラベル８とラベル１４に区分され、ノード２２１−１−２−３−１，２２１−１−２−３−２によりそれぞれ学習される。
【０１４０】
右向きの画像であるラベル７，９，１１，１３，１５の学習サンプルは、それぞれピッチ角に応じて、ラベル１１、ラベル７，１３，並びにラベル９，１５に区分される。そして、ラベル１１の学習サンプルは、ノード２２１−１−３−１により、ラベル７，１３の学習サンプルは、ノード２２１−１−３−２により、ラベル９，１５の学習サンプルは、ノード２２１−１−３−３により、それぞれ学習される。
【０１４１】
ラベル７とラベル１３の学習サンプルは、それぞれ区分され、ノード２２１−１−３−２−２，２２１−１−３−２−１により、それぞれ学習される。
【０１４２】
ラベル９とラベル１５の学習サンプルは、それぞれ区分され、ノード２２１−１−３−３−２とノード２２１−１−３−３−１によりそれぞれ学習される。
【０１４３】
各ノードには、図２６に示されるように、データ構造の定義がなされる。ノードIDは、各ノードを識別する番号である。図２６の例においては、ノードIDが１３１０とされている。親ノードIDは、自分自身から見た親ノードのノードIDを表す。ノード２２１−１−３−１の親ノードは、ノード２２１−１−３であり、そのIDは１３００であるので、ここには１３００が記述される。親ノードが存在しない場合には、親ノードIDは、−１とされる。子ノードIDには、子ノードのIDが記述される。ただし、このノード２２１−１−３−１は、末端のノードであり、子ノードを有していないため、−１とされる。ラベルは、このノードが処理するサンプルのラベルを表し、ノード２２１−１−３−１のラベルは１１とされる。弱判別器の数は、自分自身が有する弱判別器の数を表し、この例ではＬ１１とされている。
【０１４４】
このデータ構造に、重み付き多数決やサンプルの重みなどが記述される。
【０１４５】
（６）学習方法
次に、集団学習機６の学習方法について説明する。与えられたデータが、顔か否か、そして顔であるとして、いずれの方向を向いている顔であるのかのパターン認識問題の前提として、予め人手によりラベリング（正解付け）された学習サンプルとなる画像（訓練データ）が用意される。学習サンプルは、検出したい対象物体の領域を切り出した画像群（ポジティブサンプル）と、全く関係のない、例えば風景画などを切り出したランダムな画像群（ネガティブサンプル）とからなる。
【０１４６】
これらの学習サンプルを基に学習アルゴリズムを適用し、判別時に用いる学習データを生成する。判別時に用いる学習データとは、本実施の形態においては、上述した学習データを含む以下の４つの学習データである。すなわち、
（Ａ）２つのピクセル位置の組（Ｋ個）
（Ｂ）弱判別器の閾値（Ｋ個）
（Ｃ）重み付き多数決の重み（弱判別器の信頼度）（Ｋ個）
（Ｄ）打ち切り閾値（Ｋ個）
【０１４７】
（６−１）判別器の生成
以下に、上述したような多数の学習サンプルから、上記（Ａ）乃至（Ｄ）に示す４種類の学習データを学習するアルゴリズムを説明する。
【０１４８】
この学習処理を実施するため、集団学習機６は、図２７に示されるような機能的構成を有している。すなわち、集団学習機６は、初期化部３０１、ノード学習部３０２、判定部３０３、選択部３０４、および復帰部３０５により構成されている。これらの各部は、必要なデータを相互に授受することが可能とされる。
【０１４９】
初期化部３０１は、各種の初期値を設定する。ノード学習部３０２は、各ノードにおける弱判別器の学習処理を行う。判定部３０３は、子ノードの数（size(numChild)と後述するブランチカウント（branch_count[i]）との比較や、ノードIDが正であるか否かの判定などを行う。選択部３０４は、次に処理するノードを選択する。復帰部３０５は、処理対象とするノードを親ノードに戻すなどの処理を行う。
【０１５０】
図２８は、集団学習機６の学習方法を示すフローチャートである。なお、ここでは、学習アルゴリズムとして、弱判別の際の閾値として一定の値を使用するアルゴリズム（AdaBoost）に従った学習について説明するが、閾値として正解の確からしさ（確率）を示す連続値を使用する例えばReal-AdaBoostなど、弱判別器を複数結合するために集団学習するものであれば、学習アルゴリズムはAdaBoostに限らない。
【０１５１】
上述したように、最初に、予め対象物または非対象物であることがラベリングされたＮ個の学習サンプルが用意される。
【０１５２】
この学習サンプルは、例えば、図１８に示されるように、Ｎ個の画像とされ、１個の画像は、２４×２４画像で構成される。各学習サンプルは、人の顔の画像とされ、ラベル１乃至ラベル１５のいずれかにラベリングされる。
【０１５３】
ステップＳ１１において、初期化部３０１は初期値を設定する。具体的には、処理ノードのIDを表す変数ｉに、最も上位のノード（根元のノード）のID（図２５の例の場合、１０００）が設定される。また、全てのデータのデータ重みＤtに１／Ｎが設定される。Ｎは、サンプルの数を表す。さらに、全てのノードにおける多数決重みＦ（ｘ）に０が初期設定され、各ノードから、それより下位のノード（子ノード）に訪ねた回数を表す変数branch_count[i]に０が初期設定される。
【０１５４】
ステップＳ１２において、ノード学習部３０２は、いま処理対象とされている変数ｉに設定されているIDを有するノードの学習処理を行う。その詳細は、図３０のフローチャートを参照して説明するが、これにより、いま処理対象とされているノードにおける弱判別器の学習が行われる。そのノードにおける処理結果は、子ノードに引き継ぐために保存される。いまの場合、変数ｉに１０００が設定されているため、図２５のノード２２１−１の学習処理が行われる。
【０１５５】
次に、ステップＳ１３において、判定部３０３は、変数branch_count[i]の値と子ノードの数を表す変数size(numChild)とを比較する。branch_count[i]の値が子ノードの数より小さい場合には、まだ全ての子ノードに対しての学習処理を完了していないことになるので、処理はステップＳ１４に進む。いまの場合、branch_count[i]の値は０（ステップＳ１１の処理）であり、IDが１０００（ｉ＝１０００）のノード２２１−１は、３個の子ノード（２２１−１−１乃至２２１−１−３を有しているので、ステップＳ１３においてはYESと判定され、処理はステップＳ１４に進む。
【０１５６】
ステップＳ１４において、選択部３０４は、次に処理するノードを選択する。具体的には、いま処理対象とされているノード２２１−１の変数branch_count[i]の値が１だけインクリメントされ（いまの場合、１とされ）、さらに、処理対象とするノードを表す変数ｉに、変数branch_count[i]で表される子ノードのノードIDが設定される。図２５の例の場合、例えば、現在の処理対象のノード２２１−１の子ノードであるノード２２１−１−１のID１１００が変数ｉに設定される。
【０１５７】
その後、処理はステップＳ１２に戻り、変数ｉに設定されているノードに対するノードの学習処理が行われる。いまの場合、IDが１１００のノード２２１−１−１の学習処理が行われる。
【０１５８】
次にステップＳ１３において、変数branch_count[i]の値が子ノードの数より小さいか否かが、判定部３０３により判定される。いまの場合、処理対象とされているノードはIDが１１００のノード２２１−１−１であり、その子ノードは、IDが１１１０，１１２０，１１３０のノード２２１−１−１−１乃至２２１−１−１−３の３個である。ノード２２１−１−１の変数branch_count[i]も、ステップＳ１１の初期設定で０に設定されているため、変数branch_count[i]は、子ノードの数（＝３）より小さいと判定され、処理はステップＳ１４に進む。そして、ステップＳ１４において、ノード２２１−１−１の変数branch_count[i]が１だけインクリメントされ（１とされ）、変数ｉに、ノード２２１−１−１の子ノードであって、ノード２２１−１−１のbranch_count[i]で表される子ノードのノードIDが設定される。図２５の例の場合、処理対象となっていたノード２２１−１−１の１つの子ノードであるノード２２１−１−１−１のIDである１１１０が変数ｉに設定される。
【０１５９】
その後、処理はステップＳ１２に戻り、変数ｉに設定されているID（いまの場合、１１１０）のノードであるノード２２１−１−１−１に対する学習処理が行われる。
【０１６０】
次にステップＳ１３において、いま処理対象とされているノード２２１−１−１−１の子ノードの数（図２５の例の場合、ノード２２１−１−１−１は、ノード２２１−１−１−１−１乃至２２１−１−１−１−３の３個のノードを有しているので、ノードの数は３個となる）と、ノード２２１−１−１−１の変数branch_count[i]とが比較される。ノード２２１−１−１−１の変数branch_count[i]の値は、ステップＳ１１の処理で０に初期設定されているので、子ノードの数３より小さい。そこでステップＳ１４において、変数branch_count[i]の値が１だけインクリメントされて、１とされる。さらに変数ｉに、ノード２２１−１−１−１の子ノードであって、変数branch_count[i]（＝１）で表される子ノードのID（例えば、図２５におけるノード２２１−１−１−１−１のID１１１１）が設定される。そして、ステップＳ１２において、この変数ｉに設定されているID１１１１のノード２２１−１−１−１−１の学習処理が行われる。
【０１６１】
次にステップＳ１３において、いま処理対象とされているノード２２１−１−１−１−１の変数branch_count[i]の値（＝０）が、その子ノードの数と比較される。ノード２２１−１−１−１−１は、末端のノードであり、子ノードを有していないので、子ノードの数は０である。そこでステップＳ１３において、変数branch_count[i]（＝０）は、子ノードの数（＝０）と等しいので、子ノードの数より小さくないと判定され、ステップＳ１５において、復帰部３０５は、処理対象を親ノードに戻す処理を行う。具体的には、変数ｉに、現在処理対象とされているノードであるノード２２１−１−１−１−１の親ノードであるノード２２１−１−１−１のIDである１１１０が設定される。そして、ステップＳ１６において、復帰部３０５は、ステップＳ１５で設定した変数ｉが、０より大きいか否かを判定する。最上位の親ノード（根元のノード）２２１−１以外は、そのIDに正の値が設定されているので、ステップＳ１６では、いまの場合、YESの判定が行われる。現に、親ノード２２１−１−１−１のIDは１１１０であり、０より大きい。そこで、復帰部３０５は、処理をステップＳ１３に戻す。
【０１６２】
ステップＳ１３において、判定部３０３は、変数ｉに設定されているIDのノード（いまの場合、IDが１１１０であるノード２２１−１−１−１）の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。ノード２２１−１−１−１の変数branch_count[i]には、いまの場合、１が設定されており、その子ノードの数は３であるから、変数branch_count[i]は、子ノードの数より小さいと判定され、処理はステップＳ１４に進む。ステップＳ１４において、選択部３０４は、変数branch_count[i]の値を１だけインクリメントとして２とし、変数ｉにいま設定した変数branch_count[i]で表される子ノードのIDを設定する。いまの場合、例えば、変数ｉにノード２２１−１−１−１−２のID１１１２が設定される。そして、ステップＳ１２において、IDが１１１２のノード２２１−１−１−１−２の学習処理が行われる。
【０１６３】
ステップＳ１３において、いま処理対象とされているノード２２１−１−１−１−２の変数branch_count[i]（＝０）の値が、その子ノードの数より小さいか否かが判定される。ノード２２１−１−１−１−２は、末端のノードであり、子ノードを有していない。従って、その子ノードの数は０であり、変数branch_count[i]の値も０であるから、ステップＳ１３でNOの判定が行われ、ステップＳ１５において、復帰部３０５は、変数ｉに、親ノードのIDを設定する。すなわち、変数ｉに、親ノードであるノード２２１−１−１−１のIDである１１１０が設定される。ステップＳ１６において、ステップＳ１５で設定された変数ｉの値が０より大きいか否かが判定され、いまの場合、大きいので、処理はステップＳ１３に戻る。
【０１６４】
ステップＳ１３において、判定部３０３は、いま処理対象とされているノードであるIDが１１１０であるノード２２１−１−１−１の変数branch_count[i]の値が、その子ノードの数より小さいか否かを判定する。いまの場合、子ノードの数は３であり、branch_count[i]の値は２であるので、YESの判定となり、処理はステップＳ１４に進む。
【０１６５】
ステップＳ１４において、選択部３０４は、branch_count[i]の値を１だけインクリメントとし、いまの場合３とする。そして、その値で示される子ノードのIDを変数ｉに設定する。いまの場合、ノード２２１−１−１−１の子ノードである、ノード２２１−１−１−１−３のID１１１３が、変数ｉに設定される。そして、ステップＳ１２において、そのIDが１１１３であるノード２２１−１−１−１−３の学習処理が行われる。
【０１６６】
ステップＳ１３において、ノード２２１−１−１−１−３の変数branch_count[i]（＝０）の値が、その子ノードの数より小さいか否かが判定される。ノード２２１−１−１−１−３は、末端のノードであり、子ノードを有していないので、変数branch_count[i]の値は、子ノードの数と等しく、小さくない。そこで、処理はステップＳ１５に進み、復帰部３０５は、変数ｉに、いま処理対象とされていたノード２２１−１−１−１−３の親ノードであるノード２２１−１−１−１のIDである１１１０を設定する。この値は、０より大きいため、処理はステップＳ１６からステップＳ１３に戻る。
【０１６７】
ステップＳ１３において、判定部３０３により、ノード２２１−１−１−１の変数branch_count[i]の値（いまの場合＝３）がその子ノードの値（いまの場合３）より小さいか否かが判定される。両者の値は、いずれも３であるから、ステップＳ１３でNOの判定が行われ、処理はステップＳ１５に進む。ステップＳ１５において、復帰部３０５は、変数ｉに、ノード２２１−１−１−１の親ノードである、ノード２２１−１−１のIDである１１００を設定する。ステップＳ１６において、変数ｉに設定されたIDが０より大きいと判定されるので、処理はステップＳ１３に戻る。
【０１６８】
ステップＳ１３において、判定部３０３は、ノード２２１−１−１の変数branch_count[i]（＝１）の値が、その子ノードの数より小さいか否かを判定する。子ノードの数は３であり、変数branch_count[i]の値である１より大きいので、処理はステップＳ１４に進み、変数branch_count[i]のｉが１だけインクリメントされて、２とされる。そして、その値２に対応する子ノードのIDが、変数ｉに設定される。いまの場合、ノード２２１−１−１の子ノードである２２１−１−１−２のIDである１１３０が変数ｉに設定される。そして、ステップＳ１２において、このノード２２１−１−１−２の学習処理が行われる。
【０１６９】
以下、同様にして、末端のノードまで学習が行われた後、親ノードに戻り、その兄弟ノードに学習を行い、全ての兄弟ノードの学習が完了したら、さらに上流の親ノードまで戻り、その兄弟ノードを学習すると行ったことが、順次繰り返される。
【０１７０】
そして、図２５の例において、最後のノードであるノード２２１−１−３−３−２の学習がステップＳ１２において行われた後、ステップＳ１３において、その変数branch_count[i]の値が、その子ノードの数より小さくないと判定され、ステップＳ１５において、変数ｉに親ノードの値、即ち、ノード２２１−１−３−３のIDである１３３０が設定される。この値は、０より大きいので、処理はステップＳ１６からステップＳ１３に戻り、ノード２２１−１−３−３の変数branch_count[i]の値（＝２）が、その子ノードの数（＝２）より小さくないと判定される。そして、処理はステップＳ１５に進み、変数ｉにノード２２１−１−３−３の親ノードであるノード２２１−１−３のIDである１３００が設定される。
【０１７１】
このID１３００は、０より大きいので、処理は、ステップＳ１６からステップＳ１３に戻り、ノード２２１−１−３の変数branch_count[i]（＝３）の値が、その子ノードの数（＝３）より小さくないと判定され、処理はステップＳ１５に進む。ステップＳ１５において、ノード２２１−１−３の親ノードであるノード２２１−１のIDである１０００が、変数ｉに設定される。この値は、ステップＳ１６において０より大きいと判定され、処理はステップＳ１３に戻る。ノード２２１−１の変数branch_count[i]（＝３）の値が、その子ノードの数（＝３）の値より小さくないと判定され、ステップＳ１５において、変数ｉに親ノードの値が設定される。ノード２２１−１は、最上位のノード（根元のノード）であり、それより親のノードは実際には存在しないので、その親ノードIDは−１と設定されている。そこで、ステップＳ１５において、変数ｉに−１が設定されるので、ステップＳ１６において、変数ｉ（＝−１）が０より大きくないと判定され、処理は終了される。
【０１７２】
以上のようにして、ツリー構造に配置された各ノードの弱判別器の学習が行われる。
【０１７３】
次に、図２８のステップＳ１２におけるノードの学習処理の詳細について説明する。この処理を行うために、図２７のノード学習部３０２は、図２９に示されるように構成されている。即ち、ノード学習部３０２は、サンプル選択部３３１、引継ぎ部３３２、弱判別器選択部３３３、多数決重み算出部３３４、データ重み更新部３３５、重み付き多数決演算部３３６、閾値演算部３３７、判定部３３８、および保存部３３９により構成されている。
【０１７４】
サンプル選択部３３１は、ノード学習に必要なポジティブサンプルとネガティブサンプルを選択する。引継ぎ部３３２は、前段のノードで保存された値を後段のノードの処理の初期値として引き継ぐ処理を行う。弱判別器選択部３３３は、データ重みＤtに基づいて弱判別器の選択処理を行う。多数決重み算出部３３４は、多数決重みαtを算出する。
【０１７５】
データ重み更新部３３５は、データ重みＤtを更新する処理を行う。重み付き多数決演算部３３６は、各弱判別器の出力を多数決重みαtで重み付けし、累積加算することで重み付き多数決を演算する。具体的には、上述した式（７）の演算を行う。閾値演算部３３７は、式（８）で示した打ち切り閾値（基準値ＲM）を算出する。判定部３３８は、重み付き多数決の値が閾値演算部３３７により演算された打ち切り閾値ＲMより小さくなったか否か、あるいは、そのノードにおける全ての弱判別器の学習処理を終了したか否かなどの判定を行う。保存部３３９は、そのノードにおける最後の弱判別器の判別結果（ノードの出力）として、重み付き多数決Ｆ（ｘ）とデータ重みＤtを保存する。
【０１７６】
次に、図３０のフローチャートを参照して、ノードの学習処理について説明する。最初にステップＳ４１において、サンプル選択部３３１は、そのノードにおいて学習対象とされるラベルが付されたポジティブサンプルを選択する。例えば、図２５のノード２２１−１の学習処理の場合は、ラベル１乃至ラベル１５の全てのラベルのポジティブサンプルが選択される。これに対して、ノード２２１−１−１−１−１の学習処理においては、ラベル１のポジティブサンプルだけが選択される。ネガティブサンプルはいずれの場合も、その全てが使用される。
【０１７７】
ステップＳ４２において、引継ぎ部３３２は、親ノードの出力を引き継ぐ処理を実行する。最上位の親ノードであるノード２２１−１の場合には、その親ノードは存在しないため、重み付き多数決Ｆ（ｘ）の値は０に初期設定され、データ重みＤtの値は、１／Ｎに設定される（Ｎの値は学習サンプルの数を表す）。親ノードが存在するノードの場合は、その親ノードの後述するステップＳ４９の処理で、保存部３３９に保存された重み付き多数決Ｆ（ｘ）とデータ重みＤtが読み出され、初期値として設定される。
【０１７８】
また、この親ノードの出力を引き継ぐ処理では、データ重みＤtは、総和が１になるように正規化される。
【０１７９】
次に、ステップＳ４３において、弱判別器選択部３３３は、弱判別器の選択処理を実行する。その処理の詳細は、図３２のフローチャートを参照して説明するが、この処理により、Ｋ個（ピクセル間差分特徴量ｄの数）の弱判別器のうちの、重み付き誤り率ｅtの値が最小の弱判別器が選択される（生成される）。ステップＳ４４において、多数決重み算出部３３４は、多数決重みαtを算出する。この多数決重み（信頼度）αtは、式（１０）に基づいて算出される。
【０１８０】
【数９】
2005284487.tif 000011
【０１８１】
上記式（１０）から明らかなように、重み付き誤り率ｅtが小さいほど、その弱判別器の信頼度αtが大きくなる。
【０１８２】
ステップＳ４５において、データ重み更新部３３５は、学習サンプルのデータ重みＤt,iを更新する。即ち、式（９）にて得られた信頼度αtを使用して、下記式（１０）により学習サンプルのデータ重みＤt,iが更新される。データ重みＤt,iは、通常全部足し合わせると１によるように正規化する必要がある。そこでデータ重みＤt,iは、式（１１）に示されるように正規化される。
【０１８３】
【数１０】
2005284487.tif 000012
【０１８４】
ステップＳ４６において、重み付き多数決演算部３３６は、重み付き多数決Ｆ（ｘ）を更新する処理を実行する。この処理は式（７）に基づいて行われる。多数決重みαtは、ステップＳ４４で算出された値であり、ｆt（ｘ）の値は、ステップＳ４３で算出された値である。
【０１８５】
次に、ステップＳ４７において、閾値演算部３３７は、打ち切り閾値ＲMを算出する。この演算は式（８）に基づいて行われる。この打ち切り閾値ＲMは、後述する図３７のステップＳ１７５の処理に用いられる。
【０１８６】
ステップＳ４８において、判定部３３８は、いま処理対象としているノードが子ノードを有している場合は、全ての弱判別器の学習が完了したか否かを判定し、子ノードを有していない場合には、ステップＳ４３の処理で演算された重み付き誤り率ｅtの値が、充分小さくなったか否かを判定する。子ノードを有する場合、上述したように、この実施の形態においては、弱判別器の数は１００個とされている。従って、１００個の弱判別器の学習がまだ完了していない場合には、処理はステップＳ４３に戻り、それ以降の処理が繰り返し実行される。末端のノードの場合には、重み付き誤り率ｅtが充分小さくなるまで実行される。具体的には、重み付き誤り率ｅtの値が０以下となった場合には、充分小さくなったと判定され、まだ、充分小さくならない場合には、処理はステップＳ４３に戻り、それ以降の処理が繰り返し実行される。即ち、ステップＳ４３乃至Ｓ４８の処理は、そのノードにおける各弱判別器の数の回数分実行される。
【０１８７】
ステップＳ４８において、全ての弱判別器の学習が完了したと判定された場合、処理はステップＳ４９に進み、保存部３３９は、最後の弱判別器の判別結果としての重み付き多数決Ｆ（ｘ）の値と、データ重みＤtの値を、出力として保存する。この保存した出力が、下位の子ノードにおいて、ステップＳ４２において初期値として引き継がれる。
【０１８８】
以上のようにして、図３０の処理が、ノード毎に、図２８のステップＳ１２で行われる。
【０１８９】
（６−２）弱判別器の生成
次に、上述した図３０のフローチャートのステップＳ４３における弱判別器の選択処理（生成方法）について説明する。弱判別器の生成は、弱判別器が２値出力の場合と、上記式（６）に示す関数f(x)として連続値を出力する場合とで異なる。また、２値出力の場合においても、上記式（３）に示されるように１つの閾値Th１で判別する場合と、式（４）または式（５）に示されるように、２つの閾値Th１１，Th１２，Th２１，Th２２で判別する場合とで処理が若干異なる。ここでは、１つの閾値Th１で２値出力する弱判別器の学習方法（生成方法）を説明する。
【０１９０】
このため、弱判別器選択部３３３は、図３１に示されるように、決定部４２１、頻度分布算出部４２２、閾値設定部４２３、弱仮説演算部４２４、重み付き誤り率演算部４２５、判定部４２６、および選定部４２７により構成される。
【０１９１】
決定部４２１は、入力された学習サンプルから、２個の画素をランダムに決定する。頻度分布算出部４２２は、決定部４２１により決定された画素に関するピクセル間差分特徴ｄを収集し、その頻度分布を算出する。閾値設定部４２３は、弱判別器の閾値を設定する。弱仮説演算部４２４は、弱判別器による弱仮説の演算を行い、その判別結果f(x)を出力する。
【０１９２】
重み付き誤り率演算部４２５は、式（１２）に示される重み付き誤り率ｅtを演算する。
【０１９３】
【数１１】
2005284487.tif 000013
【０１９４】
上記式（１２）に示されるように、重み付き誤り率ｅtは、学習サンプルのうち、弱判別器の判別結果が誤っているもの（ｆt（ｘｉ）≠ｙi）である学習サンプル（ｙi＝１とラベリングされた学習サンプルであって、ｆ（ｘｉ）＝−１と判定された学習サンプル、およびｙi＝−１とラベリングされた学習サンプルであって、ｆ（ｘｉ）＝１と判定された学習サンプル）のデータ重みのみを加算したものとなる。上述したように、データ重みＤt,iが大きい（判別が難しい）学習サンプルの判別を間違えると重み付き誤り率ｅｔが大きくなる。
【０１９５】
判定部４２６は、弱判別器の閾値Thと最大のピクセル間差分特徴ｄとの大小関係を判定する。選定部４２７は、最小の重み付き誤り率ｅtに対応する閾値Thに対応する弱判別器を選定する。
【０１９６】
図３２は、１つの閾値Th１で２値出力するステップＳ４３の弱判別器の学習方法（生成方法）のフローチャートである。
【０１９７】
ステップＳ７１において、決定部４２１は、１つの学習サンプル（２４×２４画素）中の２つの画素の位置Ｓ１，Ｓ２をランダムに決定する。２４×２４画素の学習サンプルを使用する場合、２つの画素の選択方法は、576×575通りあるが、そのうちの１つが選択される。ここで、２つの画素の位置をＳ１，Ｓ２，その輝度値をそれぞれＩ１，Ｉ２とする。
【０１９８】
ステップＳ７２において、頻度分布算出部４２２は、すべての学習サンプルに対してピクセル間差分特徴を求め、その頻度分布を算出する。すなわち、全ての（Ｎ個の）学習サンプルに対して、ステップＳ７１にて選択した２つの位置Ｓ１，Ｓ２の画素の輝度値Ｉ１，Ｉ２の差（Ｉ１−Ｉ２）であるピクセル間差分特徴ｄが求められ、図１１Ａに示されているようなヒストグラム（頻度分布）が算出される。
【０１９９】
ステップＳ７３において、閾値設定部４２３は、最小のピクセル間差分特徴ｄより小さい閾値Thを設定する。例えば、図３３に示されるように、ピクセル間差分特徴ｄの値が、ｄ１乃至ｄ９に分布する場合、最小のピクセル間差分特徴ｄの値はｄ１となる。従って、このピクセル間差分特徴ｄ１より小さい閾値Th３１がここで閾値Thとして設定される。
【０２００】
次に、ステップＳ７４において、弱仮説演算部４２４は、弱仮説として次式を演算する。なお、sign(Ａ)は、値Ａが正のとき＋１、負のとき−１を出力する関数である。
【０２０１】
f(x)＝sign（ｄ−Th）          ・・・（１３）
【０２０２】
今の場合、Th＝Th３１であるため、ピクセル間差分特徴ｄの値がｄ１乃至ｄ９のいずれであっても、ｄ−Thの値は正となる。従って、式（１３）で表される弱仮説の判別結果f(x)は、＋１となる。
【０２０３】
ステップＳ７５において、重み付き誤り率演算部４２５は、重み付き誤り率ｅt１，ｅt２を演算する。重み付き誤り率ｅt１とｅt２とは、次の関係にある。
【０２０４】
ｅt２＝１−ｅt１              ・・・・・（１４）
【０２０５】
重み付き誤り率ｅt１は、式（１２）により求められる値である。重み付き誤り率ｅt１は、位置Ｓ１，Ｓ２の画素値をそれぞれＩ１，Ｉ２とした場合の重み付き誤り率である。これに対して、重み付き誤り率ｅt２は、位置Ｓ１の画素値をＩ２とし、位置Ｓ２の画素値をＩ１とした場合の重み付き誤り率である。すなわち、第１の位置を位置Ｓ１とし、第２の位置を位置Ｓ２とする組み合わせは、第１の位置を位置Ｓ２とし、第２の位置を位置Ｓ１とする組み合わせとは異なる組み合わせとなる。しかしながら、両者の重み付き誤り率ｅtの値は、上記した式（１４）の関係にある。そこで、ステップＳ７５の処理において、２つの組み合わせの重み付き誤り率ｅtを同時にまとめて演算するのである。これにより、仮にそのようにしなければ、ステップＳ７１乃至ステップＳ８１の処理を、ステップＳ８１において学習サンプルの画素の中から２個の画素を抽出する全組み合わせの数分（Ｋ回）繰り返したと判定されるまで繰り返すことが必要になるのであるが、ステップＳ７５で、２つの重み付き誤り率ｅt１，ｅt２を演算しておくことで、その繰り返し回数を全組み合わせ回数Ｋの１／２とすることができる。
【０２０６】
そこで、ステップＳ７６において、重み付き誤り率演算部４２５は、ステップＳ７５の処理で演算した重み付き誤り率ｅt１とｅt２のうち、小さい方を選択する。
【０２０７】
ステップＳ７７において、判定部４２６は、閾値が最大のピクセル間差分特徴より大きいか否かを判定する。すなわち、いま設定されている閾値Thが、最大のピクセル間差分特徴ｄ（例えば、図３３に示されている例の場合、ｄ９）より大きいか否かを判定する。いまの場合、閾値Thは、図３３における閾値Th３１であるので、最大のピクセル間差分特徴ｄ９より小さいと判定され、処理はステップＳ７８に進む。
【０２０８】
ステップＳ７８において、閾値設定部４２３は、現在の閾値に最も近い次の大きさのピクセル間差分特徴と、さらにその次の大きさのピクセル間差分特徴の中間の大きさの閾値Thを設定する。いまの場合、図３３の例において、現在の閾値Th３１に最も近い次の大きさのピクセル間差分特徴ｄ１と、さらに次の大きさのピクセル間差分特徴ｄ２の中間の値の閾値Th３２が設定される。
【０２０９】
その後、処理はステップＳ７４に戻り、弱仮説演算部４２４は、上記した式（１３）に従って、弱仮説の判定出力f(x)を演算する。この場合、図３３に示されるように、ピクセル間差分特徴ｄの値がｄ２乃至ｄ９のとき、f(x)の値は＋１となり、ｄ１のときは−１となる。
【０２１０】
ステップＳ７５において、式（１２）に従って、重み付き誤り率ｅt１が演算され、式（１４）に従って重み付き誤り率ｅt２が演算される。そして、ステップＳ７６において、重み付き誤り率ｅt１とｅt２のうち、小さい方が選択される。
【０２１１】
ステップＳ７７において、再び閾値が最大のピクセル間差分特徴より大きいか否かが判定される。いまの場合、閾値Th３２は、最大のピクセル間差分特徴ｄ９より小さいので、処理はステップＳ７８に進み、閾値Thは、ピクセル間差分特徴ｄ２とｄ３の間の閾値Th３３に設定される。
【０２１２】
以上のようにして、閾値Thが順次大きい値に更新される。ステップＳ７４においては、閾値Thが、例えば、ピクセル間差分特徴ｄ３とｄ４の間のTh３４である場合には、ピクセル間差分特徴ｄの値がｄ４以上である場合には＋１、ｄ３以下である場合には−１となる。以下同様に、ピクセル間差分特徴ｄの値が閾値Thｉ以上である場合には、弱仮説の判別結果f(x)の値が＋１となり、閾値Thｉ以下である場合には−１となる。
【０２１３】
以上の処理が、ステップＳ７７において、閾値Thが最大のピクセル間差分特徴より大きいと判定されるまで繰り返し実行される。図３３の例においては、閾値が最大のピクセル間差分特徴ｄ９より大きい値Th４０となるまで繰り返される。すなわち、ステップＳ７４乃至ステップＳ７８の処理を繰り返し実行することで、１つの画素の組み合わせを選択した場合における、各閾値Thを設定したときの重み付き誤り率ｅtが求められることになる。そこで、ステップＳ７９において、選択部４２７は、それまでに求めた重み付き誤り率ｅtの中から、最小の重み付き誤り率を求める。そして、ステップＳ８０において、選定部４２７は、最小の重み付き誤り率に対応する閾値を現在の弱仮説の閾値とする。すなわち、ステップＳ７９で選定された最小の重み付き誤り率ｅtが得られる閾値Thｉが、その弱判別器（１組の画素の組み合わせにより生成される弱判別器）の閾値とされる。
【０２１４】
ステップＳ８１において、判定部４２６は、処理を全組み合わせ分繰り返したか否かを判定する。全組み合わせ分の処理がまだ実行されていない場合には、処理はステップＳ７１に戻り、それ以降の処理が繰り返し実行される。すなわち、２４×２４個の画素の中から、再び２つの画素の位置Ｓ１，Ｓ２（但し、前回とは異なる位置）がランダムに決定され、その位置Ｓ１，Ｓ２の画素Ｉ１，Ｉ２に関して同様の処理が実行される。
【０２１５】
以上の処理は、ステップＳ８１において、学習サンプルから２個の画素を抽出可能な全組み合わせの数分（Ｋ回）繰り返されたと判定されるまで繰り返し実行される。ただし、上述したように、この実施の形態においては、ステップＳ７５において、位置Ｓ１，Ｓ２が逆の場合における処理を実質的に実行しているため、ステップＳ８１における処理は、全組み合わせの数Ｋの１／２でよいことになる。
【０２１６】
ステップＳ８１において、全ての組み合わせの処理が完了したと判定された場合、ステップＳ８２において、選定部４２７は、生成した弱判別器の中で最も重み付き誤り率の小さいものを選択する。すなわち、これにより、Ｋ個の弱判別器のうちの１つの弱判別器（例えば、図９の弱判別器２１１）が学習され、生成されたことになる。
【０２１７】
その後、処理は図３０のステップＳ４３に戻り、ステップＳ４４以降の処理が実行される。そして、ステップＳ４８において、子ノードを有する場合、全ての弱判別器の学習が完了したと判定されるか、子ノードを有していない場合、重み付き誤り率が充分小さくなったと判定されるまで、図３０の処理が繰り返し実行されることになる。すなわち、図３０の２回目の処理で、図９の弱判別器２１2の生成学習が行れ、３回目の処理で弱判別器２１3の生成学習が行われる。そして、そのノードにおける弱判別器の数の分だけ、弱判別器２１iの学習生成が行われることになる。
【０２１８】
なお、本実施の形態においては、前回の繰り返し処理においてステップＳ４５にて求めたデータ重みＤt,iを使用し、複数の弱判別器の特徴量を学習し、これらの弱判別器（弱判別器候補）の中から上記式（１２）に示す重み付き誤り率ｅtが最も小さいものを選択することで、１つの弱判別器を生成する場合について説明したが、上述のステップＳ４３において、例えば予め用意または学習した複数の画素位置から任意の画素位置を選択して弱判別器を生成するようにしてもよい。また、上述のステップＳ７１乃至ステップＳ８１までの繰り返し処理に使用する学習サンプルとは異なる学習サンプルを使用して弱判別器を生成してもよい。さらに、cross-validation（交差検定）法またはjack-knife法の評価のように、学習サンプルとは別のサンプルを用意して、生成された弱判別器や判別器の評価を行うようにしてもよい。交差検定とは、学習サンプルを均等にＩ個に分割し、その中から１つ以外を使用して学習を行い、当該１つを使用して学習結果を評価する作業をＩ回繰り返して学習結果の評価を行う手法である。
【０２１９】
一方、上記式（４）または式（５）に示されるように、弱判別器が２つの閾値Th１１，Th１２，Th２１，Th２２を有するような場合、図３２に示すステップＳ７４乃至ステップＳ７８の処理が若干異なる。上記式（３）に示されるように、閾値Thが１つの場合は、１から減算することにより、重み付き誤り率ｅtを演算することができたが、式（４）に示されるように、ピクセル間差分特徴が閾値Th１２より大きく、かつ閾値Th１１より小さい場合が正解の判別結果であるとき、これを１から減算すると、式（５）に示されるように、閾値Th２２より小さいか、閾値Th２１より大きい場合が正解の判別結果になる。即ち、式（４）の反転は式（５）となり、式（５）の反転は式（４）となる。
【０２２０】
弱判別器が２つの閾値Th１１，Th１２，Th２１，Th２２を有して判別結果を出力するような場合は、図３２に示すステップＳ７２において、ピクセル間差分特徴における頻度分布が求められ、重み付き誤り率ｅtを最小にする閾値Th１１，Th１２，Th２１，Th２２が求められる。そして、ステップＳ８１で所定回数繰り返されたか否かが判定され、所定回数繰り返され、生成された弱判別器の中で最も誤り率が小さい弱判別器が採用される。
【０２２１】
また、上記式（６）に示されるように、連続値を出力する弱判別器の場合、図３２のステップＳ７１と同様、先ず２つの画素がランダムに選択される。そして、ステップＳ７２と同様、全学習サンプルにおける頻度分布が求められる。さらに、得られた頻度分布に基づき上記式（６）に示す関数f(x)が求められる。そして、弱判別器の出力として対象物である度合い（正解である度合い）を出力するような所定の学習アルゴリズムに従って誤り率を算出するという一連の処理を所定回数繰り返し、最も誤り率が小さい（正答率が高い）パラメータを選択することで弱判別器が生成される。
【０２２２】
図３２の弱判別器の生成において、例えば２４×２４画素の学習サンプルを使用する場合、２つの画素の選択方法は、331200（＝576×575）通りあり、最大331200回、上記繰り返し処理を行った中で最も誤り率が小さいものを弱判別器として採用することができる。このように、繰り返し回数の最大数繰り返す、即ち生成し得る最大数の弱判別器を生成し、それらの中から最も誤り率が小さいものを弱判別器として採用すると性能が高い弱判別器を生成することができるが、最大回数未満の例えば数百回繰り返し処理を行って、その中から最も誤り率が小さいものを採用してもよい。
【０２２３】
（７）対象物検出方法
次に、図５に示す対象物検出装置１の対象物検出方法について説明する。
【０２２４】
この処理を行うため、判別器５は、図３４に示されるように、初期化部４７１、判定部４７２、選択部４７３、復帰部４７４、引継ぎ部４７５、弱仮説計算部４７６、評価値計算部４７７、設定部４７８、および出力部４７９により構成される。
【０２２５】
初期化部４７１は、最も上位のノードの弱判別器の初期値を設定する処理を行う。判定部４７２は、次のスケーリング画像の有無、対象物領域の重複の有無、顔画像であるか否かの判定、子ノードがあるか否かの判定、変数branch_count[i]と子ノードの数の大小判定、変数ｉが正であるか否かの判定などを行う。
【０２２６】
選択部４７３は、重複する２つの領域を抽出したり、領域を選択したりする処理を行う。復帰部４７４は、処理ノードを親ノードに戻す処理を行う。引継ぎ部４７５は、親ノードの出力を引き継ぐ処理を行う。弱仮説計算部４７６は、式（１３）に基づいて、弱仮説を計算する。評価値計算部４７７は、式（７）に基づいて、評価値ｓを計算する。
【０２２７】
設定部４７８は、評価値ｓに最大値を設定する。出力部４７９は、評価値ｓを出力する。
【０２２８】
なお、これらの初期化部４７１乃至出力部４７９は、必要なデータを相互に授受することが可能である。
【０２２９】
検出時（判別工程）においては、上述のようにして学習工程で生成された弱判別器群を利用した判別器５を使用し、所定のアルゴリズムに従って画像中から対象物体（人の顔）を検出する。この処理が図３５のフローチャートに示されている。
【０２３０】
ステップＳ１０１において、スケーリング部３は、画像出力部２より入力された濃淡画像を所定の割合で縮小スケーリングする処理を実行する。
【０２３１】
画像出力部２には、入力画像として濃淡画像が直接入力されてもよく、また画像出力部２にてカラーの入力画像を濃淡画像に変換してもよい。スケーリング部３は、当初、画像出力部２から与えられた画像をスケール変換せずにそのまま出力し、次のタイミング以降で縮小スケーリングしたスケーリング画像を出力するが、便宜上、スケーリング部３から出力する画像は全てスケーリング画像という。スケーリング画像が生成されるタイミングは、前に出力されたスケーリング画像の全領域の顔検出が終了した時点であり、スケーリング画像がウィンドウ画像より小さくなった時点で、次のフレームの入力画像の処理が開始される。
【０２３２】
ステップＳ１０２において、走査部４は、探索ウィンドウを走査し、画像を切り出す処理を実行する。すなわち、走査部４は、スケーリングされた画像上で探索ウィンドウを所定の位置に配置し、そのウィンドウ内の画像をウィンドウ画像として切り出し、判別器５に出力する。
【０２３３】
ステップＳ１０３において、判別器５は、識別処理を実行する。この識別処理の詳細は、図３６のフローチャートを参照して後述するが、これにより、探索ウィンドウ内の画像が人の顔の画像であるか否か、人の顔の画像である場合には、いずれの方向を向いた顔の画像であるのか（ラベル１乃至ラベル１５のうちのいずれのラベルの画像であるのか）が判定される。
【０２３４】
次に、ステップＳ１０４において、判定部４７２は、次の探索ウィンドウがあるか否かを判定する。次の探索ウィンドウがある場合には、処理はステップＳ１０２に戻り、走査部４は、現在のスケーリングの画像の探索ウィンドウを１画素分右方向に移動し、その画像を切り出して判別器５に出力する。そして、判別器５は、ステップＳ１０３の処理を実行することで、そのウィンドウ画像がどのラベルの人の顔の画像であるのかを判定する。
【０２３５】
以上のようにして、探索ウィンドウが、図７に示されるように、右下方向に順次１画素分ずつずらされ、各探索ウィンドウの画像がどのラベルの人の顔の画像であるのかが判定され、探索ウィンドウの位置がスケーリング画像の右下の位置まで移動したとき、ステップＳ１０４において、次の探索ウィンドウが存在しないと判定され、処理はステップＳ１０５に進む。
【０２３６】
ステップＳ１０５において、スケーリング部３は、次のスケーリング画像があるか否かを判定する。次のスケーリング画像がある場合には、ステップＳ１０１において、スケーリング部３は、さらに、縮小率を上げた（より縮小された）スケーリング画像を生成し、走査部４に出力する。そして、そのスケーリング画像について、上述した場合と同様の処理が実行される。
【０２３７】
以上の処理が、ステップＳ１０５において、次のスケーリング画像が存在しないと判定されるまで繰り返し実行される。すなわち、スケーリング画像がウィンドウ画像より小さくなるまで上述した処理が繰り返し実行される。
【０２３８】
上述したように、探索ウィンドウは、１画素分ずつ右下方向に順次移動される。従って、例えば、１つの探索ウィンドウの画像が人の顔であると判定された場合、その探索ウィンドウを１画素分右方向または下方向にずらしたウィンドウの画像も、多くの場合、人の顔の画像と判定される。このようなことから、同一の顔の画像が、複数のウィンドウ画像で、人の顔の画像であるとして検出されることになる。そこで、全てのスケーリング画像の処理が終了した場合、探索ウィンドウの重なりを削除する処理が実行される。
【０２３９】
このため、ステップＳ１０６において、判定部４７２は、２つ以上の対象物領域が重複するか否かを判定する。２つ以上の対象物領域が重複する場合には、ステップＳ１０７において、選択部４７３は、互いに重複する２つの領域を抽出する処理を実行する。例えば、１つの探索ウィンドウの画像が対象物領域で得られたと判定された場合、１画素分右方向にずれた探索ウィンドウの画像も人の顔の画像であると判定されるため、この２つのウィンドウの領域が抽出される。ステップＳ１０８において、選択部４７３は、ステップＳ１０７で抽出された２つの領域のうち、評価値ｓ（図３７のステップＳ１７４で後述する）が大きい方の領域を選択する。
【０２４０】
その後、処理はステップＳ１０６に戻り、それ以降の処理が繰り返し実行される。
【０２４１】
以上のようにして、評価値ｓが小さい領域は信頼度が低いとみなして無視し、最も評価値ｓが高い領域が選択される。以上の処理は、ステップＳ１０６において、２つ以上の対象物領域が重複しないと判定されるまで繰り返され、重複しないと判定された場合、そのフレームにおける処理は終了される。そして、必要に応じてさらに次のフレームの処理が実行される。
【０２４２】
次に、図３６のフローチャートを参照して、図３５のステップＳ１０３における識別処理について説明する。ステップＳ１３１において、初期化部４７１は、初期値を設定する処理を実行する。具体的には、処理ノードのIDを表す変数ｉに最も上位のノード（根元のノード）のIDを設定する。図２５の実施の形態の場合、最上位のノード２２１−１のIDである１０００が設定される。さらに、各ノード毎に設定される変数であって、そのノードが訪ねた子ノードの数を表す変数branch_count[i]の値が、全てのノードの分について、０に初期設定される。また、式（７）に基づいて演算された重み付き多数決である評価値ｓが、全てのノードの分について０に初期設定される。
【０２４３】
次に、ステップＳ１３２において、評価値計算部４７７などにより、評価値計算処理が実行される。その詳細は、図３７のフローチャートを参照して後述するが、これにより、処理対象とされているノードの評価値ｓが演算される。
【０２４４】
ステップＳ１３３において、判定部４７２は、いま識別対象としているウィンドウ画像が顔か否かを判定する。この判定は、ステップＳ１３２で計算された評価値ｓに基づいて行われる。評価値ｓの値が正であれば（より具体的には、後述する図３７のステップＳ１７８で設定される基準値（−HUGE_VAL）より大きければ）顔であると判定され、０以下であれば（基準値より小さければ）顔ではないと判定される。
【０２４５】
識別対象とされるウィンドウ画像が顔の画像ではないと判定された場合、ステップＳ１３８において、復帰部４７４は、処理対象としてのノードを親ノードに戻す処理を実行する。具体的には、変数ｉに親ノードのIDが設定される。いま、処理対象とされているノードは、最上位のノードであるノード２２１−１であるから、その親ノードは存在しない。そこで、変数ｉには、上述したように−１が設定される。
【０２４６】
ステップＳ１３９において、判定部４７２は、ステップＳ１３８で設定された変数ｉの値が０より大きいか否かを判定する。いまの場合、変数ｉの値は−１であり、０より大きくないので、ステップＳ１４０おいて、判定部４７２は、いま処理しているウィンドウ画像は顔でないと判定する。
【０２４７】
すなわちいまの場合には、一番上位のノード２２１−１の処理だけで、ウィンドウ画像は人の顔の画像ではないと判定されたことになる。
【０２４８】
ステップＳ１３３において、ウィンドウ画像は、人の顔の画像であると判定された場合（評価値ｓの値が正であると判定された場合）、ステップＳ１３４において、判定部４７２は、いま処理対象としているノードに子ノードがあるか否かを判定する。いま、処理対象としているノード２２１−１は、３個の子ノード２２１−１−１，２２１−１−２，２２１−１−３を有している。そこで、ステップＳ１３５において、判定部４７２は、ノード２２１−１の変数branch_count[i]（いまの場合、ステップＳ１３１において０に初期設定されている）が、そのノード２２１−１の子ノードの数（size(numChild)）より小さいか否かを判定する。変数branch_count[i]の値は０であり、子ノードの数は３であるから、変数の値は子ノードの数より小さいと判定される。そこで、ステップＳ１３６において、選択部４７３は、次に処理するノードを選択する。具体的には、変数branch_count[i]の値が１だけインクリメントされ、いまの場合、１に設定される。そして、設定された変数branch_count[i]の値に対応する子ノードのIDが変数ｉに設定される。図２５の例においては、例えば、ノード２２１−１の子ノードであるノード２２１−１−１のIDである１１００が、変数ｉに設定される。そして、ステップＳ１３２において、変数ｉに設定されているIDのノード（いまの場合、ノード２２１−１）の評価値計算処理が実行される。すなわち、ノード２２１−１−１により評価値ｓが計算される（ウィンドウ画像がどのラベルの人の顔の画像であるのかが判定される）。
【０２４９】
ステップＳ１３３において、判定部４７２は、ウィンドウ画像が顔か否か（評価値ｓが正であるか否か）を判定する。ウィンドウ画像が顔の画像である場合には、ステップＳ１３４において、判定部４７２は、現在の処理対象のノードであるノード２２１−１−１に子ノードがあるか否かを判定する。ノード２２１−１−１は、３個の子ノード２２１−１−１−１乃至２２１−１−１−３を有しているので、ステップＳ１３５において、判定部４７２は、ノード２２１−１−１の変数branch_count[i]（＝１）の値が、その子ノードの数より小さいか否かを判定する。子ノードの数は３であるから、branch_count[i]の値は、それより小さいので、ステップＳ１３６において、選択部４７３は、ノード２２１−１−１の変数branch_count[i]（ステップＳ１３１の処理より０に初期設定されている）の値を、その子ノードの数（いまの場合３）と比較する。変数branch_count[i]の値は、子ノードの数より小さいので、ステップＳ１３６において、選択部４７３は、ノード２２１−１−１の変数branch_count[i]の値を１だけインクリメントして、１に設定した後、ノード２２１−１−１の子ノードであって、そのインクリメントした変数branch_count[i]の子ノードであるノード２２１−１−１−１のIDである１１１０を変数ｉに設定する。そして、ステップＳ１３２において、変数ｉに設定されているIDのノードであるノード２２１−１−１−１の評価値が評価値計算部４７７により計算される。
【０２５０】
ステップＳ１３３において、判定部４７２は、ノード２２１−１−１−１の評価値ｓがウィンドウ画像が顔であることを表しているか否かを判定し、顔である場合には、ステップＳ１３４において、ノード２２１−１−１−１は、子ノードがあるか否かを判定する。ノード２２１−１−１−１は、３個の子ノードを有するため、ステップＳ１３５において、ノード２２１−１−１−１の変数branch_count[i]の値が、その子ノードの数より小さいか否かが判定される。変数branch_count[i]（＝０）の値は、子ノードの数（＝３）より小さいので、ステップＳ１３６において、選択部４７３は、ノード２２１−１−１−１の変数branch_count[i]の値を１だけインクリメントして１とする。そして、そのインクリメントした変数branch_count[i]に対応する子ノードのIDが変数ｉに設定される。例えば、図２５の例の場合、ノード２２１−１−１−１の子ノードであるノード２２１−１−１−１−１のIDである１１１１が変数ｉに設定される。ステップＳ１３２において、評価値計算部４７７は、ノード２２１−１−１−１−１による評価値を計算する。
【０２５１】
ステップＳ１３３において、判定部４７２は、ノード２２１−１−１−１−１の評価値ｓが正であるか（顔画像であるか）否かを判定し、正である場合には、ステップＳ１３４において、そのノードは子ノードを有しているか否かを判定する。ノード２２１−１−１−１−１は、末端のノードであり、子ノードを有していない。そこでこの場合には、ステップＳ１３７において、判定部４７２は、ウィンドウ画像は、ノード２２１−１−１−１−１が対応付けられているラベル１の顔と判定する。
【０２５２】
これに対して、ステップＳ１３３において、評価値ｓが負である場合（顔ではないと判定された場合）、ステップＳ１３８において、復帰部４７４は、変数ｉに親ノードのIDを設定する。具体的には、いまの場合、ノード２２１−１−１−１−１の親ノードであるノード２２１−１−１−１のIDである１１１０が変数ｉに設定される。
【０２５３】
ステップＳ１３９において、変数ｉは正であると判定され、ステップＳ１３５において、判定部４７２は、ノード２２１−１−１−１の変数branch_count[i]が、その子ノードの数より小さいか否かを判定する。いまの場合、変数branch_count[i]の値は１であり、子ノードの数は３より小さいので、ステップＳ１３６において、選択部４７３は、変数branch_count[i]の値を１だけインクリメントして、２とする。さらに、その、変数branch_count[i]に対応する子ノードのIDが変数ｉに設定される。具体的には、ノード２２１−１−１−１−２のIDである１１１２が変数ｉに設定される。ステップＳ１３２において、評価値計算部４７７により、このノード２２１−１−１−１−２の評価値ｓが演算される。
【０２５４】
判定部４７２は、ステップＳ１３３において、ノード２２１−１−１−１−２の評価値ｓが顔であることを示しているか否かを判定し、顔であることを示している場合には、ステップＳ１３４において、ノード２２１−１−１−１−２が子ノードを有しているか否かを判定する。ノード２２１−１−１−１−２は、子ノードを有していないため、ステップＳ１３７において、判定部４７２は、ウィンドウ画像は、ノード２２１−１−１−１−２が対応付けられているラベル２の顔と判定する。
【０２５５】
これに対して、ステップＳ１３３において、ノード２２１−１−１−１−２の評価値ｓが正ではないと判定された場合、ステップＳ１３８において、復帰部４７４は、変数ｉにノード２２１−１−１−１−２の親ノードのIDである１１１０を設定する。判定部４７２は、この変数ｉは０より大きいから、ステップＳ１３９からステップＳ１３５に処理を進め、IDが１１１０であるノード２２１−１−１−１のbranch_count[i]（＝２）の値が、その子ノードの数より小さいか否かを判定する。変数branch_count[i]は、いまの場合、子ノードの数より小さいので、ステップＳ１３６において、選択部４７３は、ノード２２１−１−１−１の変数branch_count[i]の値を１だけインクリメントして３に設定する。そして、３に設定されたbranch_count[i]に対応するの子ノードのIDが、変数ｉに設定される。いまの場合、ノード２２１−１−１−１の子ノードであるノード２２１−１−１−１−３のIDである１１１３が変数ｉに設定される。ステップＳ１３２において、そのID１１１３のノード２２１−１−１−１−３の評価値ｓが計算される。
【０２５６】
このようにして、各ノードでウィンドウ画像が顔の画像であると判定された場合には、順次、下位のノードで判定が行われ、下位の１つのノード（子ノード）で、ウィンドウ画像は人の顔の画像ではないと判定された場合には、兄弟ノードにおいて、識別処理が行われる。
【０２５７】
以上のようにして、本実施の形態においては、ノード（弱判別器）がツリー構造とされているため、判別結果を得るまでの演算量を平均的に少なくすることができる。即ち、図２５の実施の形態においては、階層が最大４階層とされている。末端以外の階層のノードの弱判別器の数は１００個とされているので、例えば、ラベル１５の判定結果が得られるまでの最小の弱判別器の数は（Ｙ００×３＋Ｌ１５）となる。この判別に、あり得る全ての画素の組み合わせの弱判別器が使用されたとすると、この（３００＋Ｌ１５）の値が値Ｋに等しいことになる。従って、仮に図２１に示されるような構成でラベル１からラベル１５までの構成を判定するようにした場合、ラベル１からラベル１５までを、その順番に識別処理するとすると、Ｋ×１５個の弱判別器の識別処理を行うことになる。この場合、処理時間は、Ｋ個の弱判別器の演算に必要な時間の１５倍の時間がかかることになる。ラベル１乃至ラベル１５の演算を並列処理するようにすれば、時間はＫ個の弱判別器の演算時間ですむが、演算量は変わらない。
【０２５８】
これに対して、図２５の実施の形態の場合、理想的には、ノード２２１−１、ノード２２１−１−３、ノード２２１−１−３−３、ノード２２１−１−３−３−１の順に行われれば、Ｋ個の弱判別器の演算量と演算時間ですむことになる。仮に、ノード２２１−１の演算の後、ノード２２１−１−１以降の下位ノードと、ノード２２１−１−２以降の下位ノードの識別処理が行われたとしても、途中で人の顔の画像ではないか、または他のラベルの顔の画像であると判定され、末端までの処理が行われる確率は低い。また、仮に末端までの処理が行われたとしても、その弱判別器の数は、図２１における場合より少ない。
【０２５９】
従って、図２５のようにツリー構造にした方が、演算量と処理時間を、図２１に示されるように構成した場合に較べて短くすることができる。
【０２６０】
もちろん、図２５のように構成した場合においても、各階層のノードの処理を並列処理するようにすれば、図２１に示されるように構成した場合において、並列処理する場合に較べて、同一かそれより短い時間で演算を行うことができる。そして、演算量は、図２１に示される場合より少ないことになる。
【０２６１】
次に、図３７のフローチャートを参照して、図３６のステップＳ１３２における評価値計算処理について説明する。
【０２６２】
ステップＳ１７１において、引継ぎ部４７５は、親ノードの出力を引き継ぐ処理を実行する。具体的には、親ノードで演算された重み付き多数決で表される評価値ｓが、今回のノードの評価値ｓ（ｉ）に初期設定される。親ノードが存在しない場合、即ち最上位のノードである場合には、評価値ｓ（ｉ）には０が初期設定される。
【０２６３】
ステップＳ１７２において、弱仮説計算部４７６は、処理した弱判別器の数（順序）を表す変数ｔに１を初期設定する。そして、ステップＳ１７３において、弱仮説計算部４７６は、変数ｔで表される弱判別器による弱仮説ｆ（ｘ）を計算する。この計算は、上述した式（１３）に基づいて行われる。この弱判別器は、上述したように１つの画素の組I１，２で規定されるピクセル間差分特徴ｄに対応するものであり、その閾値Ｔｈは、上述した学習処理により予め設定されている。
【０２６４】
ステップＳ１７４において評価値計算部４７７は、式（１５）に基づいて、現在の弱判別器の弱仮説（推定値）に信頼度（多数決重み）αtを乗算し、これまでの評価値ｓ加算して、評価値ｓを更新する。即ち、式（１３）に基づいて演算された弱判別器の判別結果としての推定値ｆ（ｘ）を、式（９）で表される多数決重みαtで重み付けして、重み付け多数決の値Ｆ（ｘ）を演算し、評価値ｓとする処理が行われる。
【０２６５】
ｓ（ｉ）＝ｓ（ｉ）＋α・ｆ（ｘ）      ・・・（１５）
【０２６６】
ここで、上述した式（３）乃至（５）により、２値の推定値を出力する弱判別器と、式（６）に示す関数f(x)を推定値として出力する弱判別器とでは、その推定値の評価値ｓへの反映の仕方が異なる。
【０２６７】
先ず、上記式（２）を弱判別器に利用し、２値の値を推定値として出力する場合、評価
値ｓは下記式（１６）のようになる。
【０２６８】
【数１２】
2005284487.tif 000014
【０２６９】
すなわち、弱判別器の判別結果ft(x)の値は、ピクセル間差分特徴ｄの値が閾値Thtより大きい場合には＋１、そうでない、その他の場合には−１となる。その結果、推定値ft(x)と重みαtを乗算した値は、ピクセル間差分特徴ｄの値が閾値より大きい場合には、αtとなり、その他の場合には、−αtとなる。そこで、これらの値が式（７）に従って、それまでの評価値ｓに加算され、式（７）に従った重み付き多数決の値F(x)である評価値ｓが更新される。
【０２７０】
また、上記式（３）を弱判別器に利用し、２値の値を推定値として出力する場合、評価値ｓは下記式（１７）のようになる。
【０２７１】
【数１３】
2005284487.tif 000015
【０２７２】
また、上記式（４）を弱判別器に利用し、２値の値を推定値として出力する場合、評価値ｓは下記式（１８）のようになる。
【０２７３】
【数１４】
2005284487.tif 000016
【０２７４】
さらに、上記式（５）を弱判別器に利用し、関数ｆを推定値として出力する場合、評価値ｓは下記式（１９）のようになる。
【０２７５】
【数１５】
2005284487.tif 000017
【０２７６】
次に、ステップＳ１７５において、判定部４７２は、評価値ｓ（ｉ）と打ち切り閾値ＲM（ｔ）との大きさを比較する。即ち、ステップＳ１７４で更新された評価値ｓ（ｉ）が、学習時に学習されている、その弱判別器（ｔ番目の弱判別器）の打ち切り閾値ＲM（ｔ）より大きいか否かが判定される。評価値ｓ（ｉ）が、打ち切り閾値ＲM（ｔ）より大きい場合には、ステップＳ１７６において、判定部４７２は、変数ｔを１だけインクリメントする。そして、ステップＳ１７７において、判定部４７２は、ステップＳ１７６でインクリメントした変数ｔが、予め設定されている定数Ｔより大きいか否かを判定する。この定数Ｔは、そのノードに含まれる弱判別器の数を表し、この実施の形態の場合、末端のノードでない場合には、Ｔの値は１００であり、末端のノードである場合には、Ｔの値は各ノード毎に設定されている。変数ｔが定数Ｔと等しいか、それより小さい場合には、まだ全ての弱判別器の判定処理を行っていないことになるので、処理はステップＳ１７３に戻る。そして、ステップＳ１７３において、弱仮説計算部４７６は、次の弱判別器（インクリメントされた変数ｔに対応する弱判別器）についての弱仮説の計算を実行する。以下、同様の処理が順次繰り返される。
【０２７７】
そして、ステップＳ１７７において、変数ｔが定数Ｔより大きいと判定された場合、ステップＳ１７９において、出力部４７９は、ステップＳ１７４の処理で更新された評価値ｓ（ｉ）を、そのノードの評価値（判別結果）として出力する。
【０２７８】
これに対して、ステップＳ１７５において、評価値ｓ（ｉ）の値が打ち切り閾値ＲM（ｔ）と等しいか、それより小さいと判定された場合、ステップＳ１７８において、設定部４７８は、評価値ｓ（ｉ）の値に負の大きな値（−HUGE_VAL）を設定する。そして、ステップＳ１７９において、出力部４７９は、ステップＳ１７８で、負の大きな値が設定された評価値ｓ（ｉ）を、そのノードの判別結果として出力する。
【０２７９】
即ち、この場合には、評価値ｓ（ｉ）が、打ち切り閾値ＲM（ｔ）より小さくなったので、ウィンドウ画像は、ラベル１乃至ラベル１５のいずれのラベルの人の顔の画像ではないと判定されたことになるので、以後の識別処理は実行されない。従って、より迅速な識別処理が可能となる。
【０２８０】
その後、処理は、図３６のステップＳ１３２に戻り、上述したように評価値ｓの値に基づいて、ステップＳ１３３において、そのノードにおいてウィンドウ画像が顔であると判定されたか否かが判定される。評価値ｓの値が、ステップＳ１７８において、基準値に設定されている場合には、上述したように、ウィンドウ画像は人の顔の画像ではないと判定され、評価値ｓの値が基準値より大きな値である場合には、人の顔の画像であると判定されることになる。
【０２８１】
このように、本実施の形態における対象物検出方法によれば、ピクセル間差分特徴により弱判別する弱判別器を集団学習により学習した判別器を使用して対象物を検出するため、ウィンドウ画像において、対応する２つの画素の輝度値を読出し、その差を算出するのみで、上記ステップＳ１７３における対象物の特徴量の算出工程が終了する。このため極めて高速に顔検出処理することができるため、リアルタイムな顔検出が可能である。
【０２８２】
また、その特徴量から判別した判別結果（推定値）と判別に使用した弱判別器に対する信頼度とを乗算した値を加算して評価値ｓを逐次更新する毎に打ち切り閾値ＲMと比較し、弱判別器の推定値の演算を続けるか否かが判定される。そして、打ち切り閾値ＲMを評価値ｓが下まわった場合に弱判別器の演算を打ち切り、次のウィンドウ画像の処理に移ることにより、無駄な演算を飛躍的に低減して更に高速に顔検出が可能となる。
【０２８３】
すなわち、入力画像およびそれを縮小スケーリングしたスケーリング画像の全ての領域を走査してウィンドウ画像を切り出した場合、それらのウィンドウ画像のうち対象物である確率は小さく、ほとんどが非対象物である。この非対象物であるウィンドウ画像の判別を途中で打ち切ることで、判別工程を極めて高効率化することができる。なお、逆に検出すべき対象物が多数含まれるような場合、上述した打ち切り閾値と同様の手法にて、対象物であることが明らかとなったウィンドウ画像の演算を途中で打ち切るような閾値も設けてもよい。更に、入力画像をスケーリング部にてスケーリングすることで、任意の大きさの探索ウィンドウを設定し、任意の大きさの対象物を検出することができる。
【０２８４】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。そして本発明は、静止画像はもとより、動画像を受信し、表示するロボット等の各種の画像処理装置を含む情報処理装置に適用することができる。
【０２８５】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、対象物検出装置は、図３８に示されるようなコンピュータにより構成される。
【０２８６】
図３８において、CPU（Central  Processing  Unit）６２１は、ROM（Read  Only  Memory）６２２に記憶されているプログラム、または記憶部６２８からRAM（Random  Access  Memory）６２３にロードされたプログラムに従って各種の処理を実行する。RAM６２３にはまた、CPU３６２１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２８７】
CPU６２１、ROM６２２、およびRAM６２３は、バス６２４を介して相互に接続されている。このバス３２４にはまた、入出力インタフェース６２５も接続されている。
【０２８８】
入出力インタフェース６２５には、キーボード、マウスなどよりなる入力部６２６、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部６２７、ハードディスクなどより構成される記憶部６２８、モデムなどより構成される通信部６２９が接続されている。通信部６２９は、インターネットを含むネットワークを介しての通信処理を行う。
【０２８９】
入出力インタフェース６２５にはまた、必要に応じてドライブ６３０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア３３１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部６２８にインストールされる。
【０２９０】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０２９１】
この記録媒体は、図３８に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア６３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM６２２や、記憶部６２８に含まれるハードディスクなどで構成される。
【０２９２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２９３】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２９４】
【図１】特許文献１に記載の矩形特徴を示す模式図である。
【図２】特許文献１に記載の矩形特徴を使用して顔画像を判別する方法を説明する図である。
【図３】特許文献１に記載の積分画像を示す模式図である。
【図４】特許文献１に記載の積分画像を使用して矩形領域の輝度値の総和を算出する方法を説明する図である。
【図５】本発明の実施の形態における対象物検出装置の処理機能を示す機能ブロック図である。
【図６】スケール変換を説明する図である。
【図７】探索ウィンドウの走査を説明する図である。
【図８】探索ウィンドウの移動を説明する図である。
【図９】判別器の構成を示す図である。
【図１０】ピクセル間差分特徴を説明する図である
【図１１】ピクセル間差分特徴と閾値の関係を説明する図である。
【図１２】頻度分布を説明する図である。
【図１３】確率密度に基づくピクセル間差分特徴を説明する図である。
【図１４】重み付き多数決の値F(ｘ)の変化を示す図である。
【図１５】学習サンプルの例を示す図である。
【図１６】顔の姿勢角を説明する図である。
【図１７】ラベルを説明する図である。
【図１８】顔の姿勢角の分類を説明する図である。
【図１９】ツリー構造を説明する図である。
【図２０】通常のアダブーストによる識別器の構成を説明する図である。
【図２１】通常のアダブーストによるラベルの識別を説明する図である。
【図２２】リジェクト判定付き弱判別器で構成されるノードの構成を示す図である。
【図２３】リジェクト判定付き弱判別器の構成を示す図である。
【図２４】リジェクト判定付き弱判別器により構成されるノードのツリー構造を説明する図である。
【図２５】ノードのツリー構造を説明する図である。
【図２６】ノードのデータ構造を説明する図である。
【図２７】集団学習器の機能的構成例を示すブロック図である。
【図２８】学習処理を説明するフローチャートである。
【図２９】ノード学習部の機能的構成例を示すブロック図である。
【図３０】図２８のステップＳ１２におけるノードの学習処理を説明するフローチャートである。
【図３１】弱判別器選択部の機能的構成例を示すブロック図である。
【図３２】図３０のステップＳ４３における弱判別器の選択処理を説明するフローチャートである。
【図３３】閾値の移動を説明する図である。
【図３４】判別器の機能的構成例を示すブロック図である。
【図３５】対象物検出処理を説明するフローチャートである。
【図３６】図３５のステップＳ１０３の識別処理を説明するフローチャートである。
【図３７】図３６のステップＳ１３２における評価値計算処理を説明するフローチャートである。
【図３８】コンピュータの構成例を示すブロック図である。
【符号の説明】
【０２９５】
１  対象物検出装置，  ２  画像出力部，  ３  スケーリング部，  ４  走査部，  ５  判別器，  ６  集団学習機，  ２１1乃至２１K  弱判別器，  ２２  加算器，２２１  ノード，  ３０１  初期化部，  ３０２  ノード学習部，３０３  判定部，  ３０４  選択部，  ３０５  復帰部，  ３３１  サンプル選択部，  ３３２  引継ぎ部，  ３３３  弱判別器選択部，  ３３４  多数決重み算出部，  ３３５  データ重み更新部，  ３３６  重み付き多数決演算部，  ３３７  閾値演算部，  ３３８  判定部，  ３３９  保存部
【図１】
2005284487.tif 000018
【図２】
2005284487.tif 000019
【図３】
2005284487.tif 000020
【図４】
2005284487.tif 000021
【図５】
2005284487.tif 000022
【図６】
2005284487.tif 000023
【図７】
2005284487.tif 000024
【図８】
2005284487.tif 000025
【図９】
2005284487.tif 000026
【図１０】
2005284487.tif 000027
【図１１】
2005284487.tif 000028
【図１２】
2005284487.tif 000029
【図１３】
2005284487.tif 000030
【図１４】
2005284487.tif 000031
【図１５】
2005284487.tif 000032
【図１６】
2005284487.tif 000033
【図１７】
2005284487.tif 000034
【図１８】
2005284487.tif 000035
【図１９】
2005284487.tif 000036
【図２０】
2005284487.tif 000037
【図２１】
2005284487.tif 000038
【図２２】
2005284487.tif 000039
【図２３】
2005284487.tif 000040
【図２４】
2005284487.tif 000041
【図２５】
2005284487.tif 000042
【図２６】
2005284487.tif 000043
【図２７】
2005284487.tif 000044
【図２８】
2005284487.tif 000045
【図２９】
2005284487.tif 000046
【図３０】
2005284487.tif 000047
【図３１】
2005284487.tif 000048
【図３２】
2005284487.tif 000049
【図３３】
2005284487.tif 000050
【図３４】
2005284487.tif 000051
【図３５】
2005284487.tif 000052
【図３６】
2005284487.tif 000053
【図３７】
2005284487.tif 000054
【図３８】
2005284487.tif 000055