(57)【特許請求の範囲】
【請求項１】
画像データに含まれる複数種類のオブジェクトを検出するために、該オブジェクトの種類に対応した分岐数を有する木構造により、複数の弱判別器を配置して処理を行う画像処理装置であって、
前記弱判別器は、
前記画像データ内に前記オブジェクトが含まれているか否かを判別するための評価値の算出に用いられる特徴量を算出する算出手段と、
前記木構造における分岐点として機能する場合に、各分岐先に含まれる弱判別器において算出された前記特徴量の少なくとも一部を用いて、分岐先を選択する選択手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記算出手段は、
前記弱判別器ごとに予め定められた演算により、前記特徴量を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、
前記弱判別器ごとに予め定められた閾値と前記算出された特徴量とを比較した結果と、前記弱判別器ごとに予め定められた信頼度とに基づいて前記評価値を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記各弱判別器ごとに算出された前記評価値を累積することで算出された累積評価値に基づいて、前記画像データ内に前記オブジェクトが含まれているか否かを判定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、先頭の弱判別器において算出された前記特徴量に基づいて、前記分岐先を選択することを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、先頭の弱判別器における前記比較した結果に基づいて、前記分岐先を選択することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、先頭の弱判別器において算出された前記累積評価値に基づいて、前記分岐先を選択することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、予め定められた数の弱判別器が実行されることにより算出された前記累積評価値に基づいて、前記分岐先を選択することを特徴とする請求項４に記載の画像処理装置。
【請求項９】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、算出された前記特徴量が予め定められた閾値を上回った弱判別器の数が、最も多い分岐先を選択することを特徴とする請求項２に記載の画像処理装置。
【請求項１０】
前記選択手段は、前記各分岐先に含まれる前記弱判別器において算出された前記累積評価値が、予め定められた閾値を、最も早く上回った弱判別器が含まれる分岐先を選択することを特徴とする請求項４に記載の画像処理装置。
【請求項１１】
前記選択手段は、前記各分岐先に含まれる前記弱判別器のうち、予め定められた数の弱判別器が実行されることにより算出された前記累積評価値が最も大きい分岐先と、該累積評価値が予め定められた許容値内にある分岐先とを、選択することを特徴とする請求項４に記載の画像処理装置。
【請求項１２】
前記弱判別器の処理は、アンサンブル学習によって求められるパラメータにより規定されることを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
前記累積評価値が予め定められた閾値未満であった場合に、該累積評価値を算出した弱判別器より下位層に配置された弱判別器が処理を実行しないようにすることを特徴とする請求項１に記載の画像処理装置。
【請求項１４】
前記複数の弱判別器が、カスケードに接続された弱判別器からなる複数のグループから構成されている場合において、該複数のグループのそれぞれの最後尾に配置された弱判別器において算出された前記累積評価値が、予め定められた閾値未満であった場合に、該弱判別器が属するグループより下位層に配置されたグループに含まれる弱判別器が処理を実行しないようにすることを特徴とする請求項１に記載の画像処理装置。
【請求項１５】
画像データに含まれる複数種類のオブジェクトを検出するために、該オブジェクトの種類に対応した分岐数を有する木構造により、複数の弱判別器を配置して処理を行う画像処理装置における画像処理方法であって、
前記弱判別器が、
前記画像データ内に前記オブジェクトが含まれているか否かを判別するための評価値の算出に用いられる特徴量を算出する算出工程と、
前記木構造における分岐点として機能する場合に、各分岐先に含まれる弱判別器において算出された前記特徴量の少なくとも一部を用いて、分岐先を選択する選択工程と
を実行することを特徴とする画像処理方法。
【請求項１６】
請求項１５に記載の画像処理方法をコンピュータによって実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、木構造に配置された弱判別器を用いて画像データを処理する画像処理装置に関するものである。
【背景技術】
【０００２】
近年、統計的学習法の進展により、画像データ中の対象オブジェクトを検出する画像処理手法として、様々な実用的な手法が提案されている。特に対象オブジェクトを人間の顔部分とする顔検出処理の場合、検出結果について様々な応用が考えられることから、特に研究開発が進められている。
【０００３】
例えば、非特許文献１では、ＡｄａＢｏｏｓｔ等のアンサンブル学習を用いて、矩形特徴と呼ばれる極めて単純な特徴量を選択し、それらを組み合わせることで、正面向きの顔検出を実現する手法が提案されている。非特許文献１によれば、検出途中で明らかに顔でないものについては、検出処理を途中で打ち切る処理を入れることで、高速な顔検出処理を実現している。
【０００４】
更に、正面向きのみならず、任意方向の向きの顔検出（複数種類の顔検出）についても種々の提案がなされている。例えば、非特許文献２では、顔の向きごとに検出器を構成する手法が開示されている。
【０００５】
また、非特許文献３では、顔の向きを識別する識別器と、特定の顔の向きを対象として顔検出を行う検出器とを備える構成が開示されている。同文献によれば、まず識別器により顔の向きを決定することで、該顔の向きを対象とする検出器を選択し、該選択された検出器を用いて顔検出を行うことで、任意方向の顔検出処理を実現することとしている。
【０００６】
更に、非特許文献４や特許文献１では、全方向の向きの顔を検出できる検出器を配し、該検出器から処理を開始したのち、特定の顔の向き用の検出器へと枝分かれしていく構造（木構造）とすることにより、任意方向の向きの顔検出を実現することとしている。
【特許文献１】特開２００５−２８４４８７号公報
【非特許文献１】Ｖｉｏｌａ，Ｍ．Ｊｏｎｅｓ，“Ｒａｐｉｄ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  Ｂｏｏｓｔｅｄ  Ｃａｓｃａｄｅ  ｏｆ  Ｓｉｍｐｌｅ  Ｆｅａｔｕｒｅｓ”，Ｐｒｏｃ．ＩＥＥＥ  Ｃｏｎｆ．ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，Ｖｏｌ．１，ｐｐ．５１１−５１８，  Ｄｅｃｅｍｂｅｒ  ２００１．
【非特許文献２】Ｂ．Ｗｕ，Ｈ．Ａｉ，Ｃ．Ｈｕａｎｇ，ａｎｄ  Ｓ．Ｌａｏ，“Ｆａｓｔ  Ｒｏｔａｔｉｏｎ  Ｉｎｖａｒｉａｎｔ  Ｍｕｌｔｉ−Ｖｉｅｗ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ  Ｂａｓｅｄ  ｏｎ  Ｒｅａｌ  ＡｄａＢｏｏｓｔ，”Ｐｒｏｃ．Ｓｉｘｔｈ  Ｉｎｔ’ｌ  Ｃｏｎｆ．Ａｕｔｏｍａｔｉｃ  Ｆａｃｅ  ａｎｄ  Ｇｅｓｔｕｒｅ  Ｒｅｃｏｇｎｉｔｉｏｎ，ｐｐ．７９−８４，２００４．
【非特許文献３】Ｍ．Ｊｏｎｅｓ  ａｎｄ  Ｐ．Ｖｉｏｌａ，“Ｆａｓｔ  Ｍｕｌｔｉ−Ｖｉｅｗ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ，”Ｍｉｔｓｕｂｉｓｈｉ  Ｅｌｅｃｔｒｉｃ  Ｒｅｓｅａｒｃｈ  Ｌａｂｏｒａｔｏｒｉｅｓ  ＴＲ２００３−９６，Ｊｕｌｙ  ２００３．
【非特許文献４】Ｃ．Ｈｕａｎｇ，Ｈ．Ｚ．Ａｉ，Ｙ．Ｌｉ，ａｎｄ  Ｓ．Ｈ．Ｌａｏ，“Ｖｅｃｔｏｒ  Ｂｏｏｓｔｉｎｇ  ｆｏｒ  Ｒｏｔａｔｉｏｎ  Ｉｎｖａｒｉａｎｔ  Ｍｕｌｔｉ−Ｖｉｅｗ  Ｆａｃｅ  Ｄｅｔｅｃｔｉｏｎ，”Ｐｒｏｃ．１０ｔｈ  ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，２００５．
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、任意方向の向きの顔検出（複数種類の顔検出）を行う上記特許文献１や非特許文献２乃至４の場合、顔検出の処理速度に関してそれぞれ以下のような課題を有する。
【０００８】
例えば、特許文献１の場合、木構造の分岐ノードにおいて分岐先を選択するにあたっては、分岐先を順に選択していくこととしている。具体的には、分岐先で葉ノード（終端ノード）まで到達した場合に、当該処理対象の画像データを、“該分岐先が担当する方向を向いた顔”であると判断し、当該画像データについての該検出処理を終了する。一方、分岐先において途中で処理が打ち切られた場合には、分岐ノードに戻って他の分岐先を順に選択する。
【０００９】
このように、分岐ノードは何らかの基準に基づいて分岐先を選んでいるのではなく、分岐先にラベリングされた順番に従って処理を実行していく。
【００１０】
このため、処理順序が後ろの方にラベリングされた分岐先が担当する方向を向いた顔を検出する場合にあっては、当該分岐先に至るまでに何度も分岐先の選択に失敗することとなる（何度も分岐先において処理が途中で打ち切られることとなる）。この結果、当該分岐先の葉ノードに到達するまでには多大な処理時間を要することとなる。
【００１１】
一方、非特許文献２の場合、顔の向きごとに用意された複数の検出器を使用して、任意方向の向きの顔検出を行う構成となっている。このときの顔検出の手順としては、まず全ての検出器が処理を少しだけ行うことで、全検出器の確信度を推定し、推定した確信度の大きさに基づいて検出器の選択が行われる。その後、選択された検出器に対して残りの処理を行い、顔／非顔の判別を行う。
【００１２】
従って、非特許文献２の場合、常に全検出器を動作させる必要がなく、特定検出器のみを動作させればよいことから、処理時間の短縮を図ることができるという利点がある。
【００１３】
しかしながら、非特許文献２の場合、検出用のサブウィンドウを処理対象となる画像データ内でスキャンさせる毎に、全検出器の確信度を推定しなければならない。一般的に画像データ中の大部分の領域からは顔が検出されることがないため、そのような領域でも全検出器の確信度を推定しなければならないことは効率的とは言えない。
【００１４】
また、非特許文献３の場合には、特定の顔の向きを対象とする検出器が処理を行う前に、予め顔の向きを識別する識別器を動作させておく必要がある。このため、顔の向きを識別する識別器を動作させるための処理時間を確保しておく必要がある。また、非特許文献２の場合と同様に、検出用のサブウィンドウを処理対象の画像データ内でスキャンさせる毎に顔の向きを識別する識別器を動作させる必要があり、効率的とは言えない。
【００１５】
更に、非特許文献４の場合、木構造の分岐ノードにおける分岐先を選択する手順として、Ｖｅｃｔｏｒ  Ｂｏｏｓｔｉｎｇという枠組みを考案している。当該枠組みによれば、通常スカラー値で算出される信頼度を、分岐先に対応する要素からなるベクトル値で算出し、分岐先を決定することとしている（ベクトルの各要素の値が閾値を越える方向を分岐方向としている）。
【００１６】
しかしながら、当該方法の場合、通常のＡｄａＢｏｏｓｔを用いた検出器と比較して、検出時の演算量が多大になるという問題がある。つまり、通常スカラー値で算出している値を、ベクトル値で算出するため、そのベクトルの次元分だけ演算量が増大することとなる。
【００１７】
また、非特許文献４の場合も、検出用のサブウィンドウを処理対象となる画像データ内でスキャンさせる毎に、Ｖｅｃｔｏｒ  Ｂｏｏｓｔｉｎｇに基づく選択処理を行わなければならない。このため、非特許文献２、３と同じく、顔が検出されないような領域においても、選択処理が実行されることとなり、効率的とは言えない。
【００１８】
以上のように、任意方向の向きの顔検出を行うことが可能な特許文献１ならびに非特許文献２乃至４の場合には、
・顔の向きに対応する検出器を選択するまでの処理においてオーバーヘッドが大きい。
・顔の向きに対応する検出器を選択するための処理を実行する回数が多い。
という課題がある。このため、画像データ中の複数種類の対象オブジェクトの検出にあたっては、このような課題を克服し、処理速度の向上を図ることが望まれている。
【００１９】
本発明は上記課題に鑑みてなされたものであり、画像データ中の複数種類のオブジェクトを、高速に検出することを目的とする。
【課題を解決するための手段】
【００２０】
上記の目的を達成するために本発明に係る画像処理装置は以下のような構成を備える。即ち、
画像データに含まれる複数種類のオブジェクトを検出するために、該オブジェクトの種類に対応した分岐数を有する木構造により、複数の弱判別器を配置可能な画像処理装置であって、
前記弱判別器は、
前記画像データ内に前記オブジェクトが含まれているか否かを判別するための評価値の算出に用いられる特徴量を算出する算出手段と、
分岐点として機能する場合に、各分岐先に含まれる弱判別器において算出された前記特徴量の少なくとも一部を用いて、分岐先を選択する選択手段とを備える。
【発明の効果】
【００２１】
本発明によれば、画像データ中の複数種類のオブジェクトを、高速に検出することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら各実施形態の詳細について説明する。なお、以下の実施形態では、対象オブジェクトを処理対象とする弱判別器からスタートし、次第に特定の対象オブジェクト群だけを処理対象とする弱判別器へと分岐していくように、弱判別器が木構造に配置された画像処理装置について説明する。
【００２３】
［第１の実施形態］
１．画像処理装置のハードウェア構成
図１は、本発明の第１の実施形態に係る画像処理装置１００のハードウエア構成を示すブロック図である。図１において、１０１はＣＰＵ（中央演算装置）で、後述する画像処理方法を実現するための検出処理プログラム１１０に従って、処理を実行する。
【００２４】
１０２はプログラムメモリであり、ＣＰＵ１０１により実行される検出処理プログラム１１０が記憶されている。１０３はＲＡＭであり、ＣＰＵ１０１による検出処理プログラム１１０の実行時に、各種情報を一時的に記憶するためのメモリを提供している。
【００２５】
１０４はハードディスクであり、画像データや弱判別器のパラメータなどを保存するための記憶媒体である。１０５はディスプレイであり、検出処理プログラム１１０による処理結果をユーザに表示する。１０６は、これら各部（１０２〜１０５）とＣＰＵ１０１とを接続する制御バス・データバスである。
【００２６】
このような構成のハードウエアを用いることにより、本発明にかかる画像処理方法を実行することができる。
【００２７】
なお、画像処理装置１００は、本発明にかかる画像処理方法をＣＰＵ１０１の処理によって実現することとしているが、本発明はこれに限られず、ＣＰＵ１０１における処理の一部を専用ハードウエアに置き換えて実現するようにしてもよい。
【００２８】
２．検出処理プログラムのモジュール構成
図２は検出処理プログラム１１０のモジュール構成を示す図である。図２に示すように、検出処理プログラム１１０は、モジュールである弱判別器が、対象オブジェクトの種類に対応する分岐数を有する木構造で形成するように配置された構成となっている。
【００２９】
なお、検出処理プログラム１１０が実行されることにより検出される対象オブジェクトは、特に制限されるものではないが、本実施形態及び以降の実施形態では、人間の顔部分を対象オブジェクトとして説明することとする。
【００３０】
そして、検出処理プログラム１１０では、対象オブジェクトである顔部分を、右向き（分類１）、正面向き（分類２）、左向き（分類３）の３つの種類に分類して出力するものとする。
【００３１】
すなわち、検出処理プログラム１１０における弱判別器の木構造は、全ての種類のオブジェクトを処理対象とする弱判別器からスタートし、次第に特定の種類（正面向き、右向き、左向き）の対象オブジェクトだけを処理対象とする弱判別器へと分岐していく。
【００３２】
検出処理プログラム１１０において、弱判別器２００〜弱判別器２０３は、全種類（正面向き、右向き、左向きの顔）の対象オブジェクトを処理対象とする弱判別器である。
【００３３】
弱判別器２０４−Ａ〜弱判別器２０８−Ａは、分類１（右向きの顔）の対象オブジェクトを処理対象とする弱判別器である。
【００３４】
弱判別器２０４−Ｂ〜弱判別器２０８−Ｂは、分類２（正面向きの顔）の対象オブジェクトを処理対象とする弱判別器である。
【００３５】
弱判別器２０４−Ｃ〜弱判別器２０８−Ｃは、分類３（左向きの顔）の対象オブジェクトを処理対象とする弱判別器である。
【００３６】
各弱判別器には、その弱判別器を規定するパラメータとして、「特徴量算出パラメータ」、「判定閾値」、「信頼度重み」、「打ち切り閾値」が決められており、各弱判別器は、これらのパラメータを用いて処理を行う（処理の詳細は後述）。なお、図２では、簡略化のため、弱判別器２００のパラメータのみを記載し、弱判別器２００以外のパラメータは図示されていないが、実際は全ての弱判別器においてパラメータが決められているものとする。
【００３７】
３．検出処理プログラムにおける処理の流れ
次に検出処理プログラム１１０における処理の流れについて図３を用いて説明する。ステップＳ３００にて検出処理プログラム１１０が実行されると、ステップＳ３０１では、処理対象の画像データのうち、処理ウィンドウに含まれる画像データを読み出す。
【００３８】
図６は、処理対象の画像データ６００の一例を示す図である。図６に示すように、検出処理プログラム１１０が画像データ６００を処理するにあたっては、処理ウィンドウ６０１をスキャンさせ、各移動先の処理ウィンドウ６０１内に含まれる画像データを読み出すことで、該画像データ単位で、処理を実行するものとする。
【００３９】
図３に戻る。続いてステップＳ３０２では、処理ウィンドウ６０１内の画像データを、弱判別器に入力し、規定された処理を実行する（弱判別器内で行われる処理の詳細に関しては図４を用いて後述する）。
【００４０】
ステップＳ３０３では、ステップＳ３０２で行われた弱判別器の処理において、打ち切り指示が行われたか否かを判断する（打ち切り指示についての説明は図４に示すフローチャートの説明の際にあわせて行う）。
【００４１】
ステップＳ３０３において打ち切り指示が行われていたと判断された場合には、ステップＳ３０６に移り、処理ウィンドウ６０１の現在の位置における検出処理プログラム１１０の処理は終了する。この場合、処理ウィンドウ６０１の現在の位置においては、その弱判別器が配置された分岐先において、検出されるべき対象オブジェクトが検出されなかったと判断する。
【００４２】
一方、ステップＳ３０３において打ち切り指示が行われていないと判断された場合には、ステップＳ３０４に移る。ステップＳ３０４では、ステップＳ３０２で処理した弱判別器が検出処理プログラム１１０内の最後の弱判別器（木構造の葉の位置にある弱判別器）か否かを判断する。
【００４３】
最後の弱判別器であると判断された場合には、ステップＳ３０７に移り、処理ウィンドウ６０１の現在の位置における検出処理プログラム１１０の処理は終了する。この場合、現在の処理ウィンドウ６０１の位置においては、その弱判別器が配置された分岐先において、検出されるべき対象オブジェクトが検出されたと判断する。
【００４４】
一方、最後の弱判別器でないと判断された場合には、ステップＳ３０５において、次に処理を実行すべき弱判別器を選択し（弱判別器の選択の方法に関しては後述する）、ステップＳ３０２へ戻り、選択された次の弱判別器が処理を実行する。
【００４５】
このように検出処理プログラム１１０では、弱判別器内の処理の実行結果として打ち切り指示がなされるか、最後の弱判別器での処理が実行されるまで、次に処理が実行されるべき弱判別器を選択する。そして、選択された弱判別器では、規定された処理を実行する。
【００４６】
なお、図３には図示していないが、ステップＳ３０６、Ｓ３０７で処理を終了すると、処理ウィンドウ６０１を１つスキャンさせ、ステップＳ３００から処理を再開する。
【００４７】
４．弱判別器内での処理
続いて、図３のステップＳ３０２に示す、各弱判別器内での処理の詳細について説明する。
【００４８】
図４は、各弱判別器内での処理の流れを示すフローチャートである。本実施形態における各弱判別器での処理は、基本的に非特許文献１に記載されている処理と同じである。
【００４９】
この場合、各弱判別器を規定しているパラメータは、ＡｄａＢｏｏｓｔと呼ばれるアンサンブル学習手法によって決定される。なお、ここでいうパラメータとは、上述したように「特徴量算出パラメータ」、「判定閾値」、「信頼度重み」、「打ち切り閾値」等である。
【００５０】
ただし、本実施形態における各弱判別器での処理は、非特許文献１に記載されている処理に限られるものではない。また、各弱判別器を規定しているパラメータは、ＡｄａＢｏｏｓｔと呼ばれるアンサンブル学習手法により決定されたものに限られるものでもない。
【００５１】
図４のステップＳ４００において、弱判別器での処理が開始されと、ステップＳ４０１では、「特徴量算出パラメータ」に基づいて特徴量を求める。なお、ステップＳ４０１では、読み出された処理ウィンドウ６０１内の画像データを構成する各画素値に対して、フィルタ演算することにより得られたフィルタ値を正規化した値を特徴量として出力する。
【００５２】
なお、ここではフィルタ演算として、非特許文献１に示されている矩形フィルタ演算を行うものとする。図６の６０２は矩形フィルタの一例である。処理ウィンドウ６０１内において、白塗りされた領域の画素値の総和から黒塗りされた領域の画素値の総和を引くことで、フィルタ値が算出される。
【００５３】
なお、画素値の総和を高速に求めるために、非特許文献１に示されるようにインテグラルイメージを用いてもよい。また、フィルタ値の正規化は、処理ウィンドウ６０１内の所定領域の画素値の平均と標準偏差とを用いて行う。この場合、フィルタ演算で設定する矩形領域の位置や大きさ、フィルタ係数値（＋１か−１か）が、特徴量算出パラメータとなる。
【００５４】
続いてステップＳ４０２において、ステップＳ４０１で求めた特徴量を判定閾値と比較して判定結果を出力する。すなわち、判定結果は、特徴量と判定閾値との大小を比較した結果である。本実施形態では、特徴量が判定閾値以上であれば＋１を、そうでなければ−１を判定結果として出力する。
【００５５】
ステップＳ４０３において、ステップＳ４０２の判定結果と信頼度重みから評価値を算出する。本実施形態では、判定結果と信頼度重みとの乗算結果を評価値とする。
【００５６】
さらにステップＳ４０４において、自身を含むこれまでの弱判別器が出力した評価値を累積した累積評価値を算出する。ただし、弱判別器２００においては、出力した評価値を累積評価値とする。
【００５７】
ステップＳ４０５では、ステップＳ４０４で算出された累積評価値と打ち切り閾値とを比較する。ステップＳ４０５において、累積評価値が打ち切り閾値未満であると判定された場合には、ステップＳ４０６に進み、打ち切り指示を出した後、ステップＳ４０７で処理を終了する。
【００５８】
一方、ステップＳ４０５において、累積評価値が打ち切り閾値以上であると判定された場合には、ステップＳ４０７に進み、打ち切り指示を出すことなく処理を終了する。ステップＳ４０６で出された打ち切り指示は、図３のステップＳ３０３の判断において使用される。
【００５９】
なお、非特許文献１では、ステップＳ４０５の処理に基づく打ち切り指示は、複数の弱判別器から構成される強判別器単位で行う構成としているが、本発明は、そのような構成に対しても適用可能である（詳細は第４の実施形態参照）。
【００６０】
５．弱判別器における選択処理
続いて、図３のステップＳ３０５に示す、各弱判別器内の選択処理の詳細について説明する。
【００６１】
図５は、図２に示すように木構造に弱判別器が配置された場合において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【００６２】
図５のステップＳ５００において弱判別器の選択処理が開始されると、ステップＳ５０１では、次に実行されるべき弱判別器の候補（弱判別器候補、即ち、現在処理を実行中の判別器の下位層に直接接続された他の弱判別器）が複数あるか否かを調べる。図２の例では、例えば弱判別器２００の次に実行されるべき弱判別器の候補は弱判別器２０１のみであるのに対し、弱判別器２０３の次に実行されるべき弱判別器の候補は弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃの３つである。
【００６３】
ステップＳ５０１において弱判別器候補が１つしかないと判断された場合には、ステップＳ５０２に進み、当該１つの弱判別器候補が次に実行されるべき弱判別器として選択される。一方、ステップＳ５０１において弱判別器候補が複数あると判断された場合には、ステップＳ５０３に進む。
【００６４】
本発明では、次に実行されるべき弱判別器の候補を先頭としてそれぞれの分岐先に配置された弱判別器のうちの一部の弱判別器（「選択処理対象弱判別器」）が算出する特徴量を利用することで、分岐点として機能する弱判別器が、分岐先を選択する。
【００６５】
ステップＳ５０３では、分岐先毎に配置された選択処理対象弱判別器の処理を行う。処理の内容は、図４を用いて上述した通りであり、最終的に累積評価値を算出する。選択処理対象弱判別器は、分岐先毎に配置されているので、分岐先の数だけ累積評価値が算出されることとなる。
【００６６】
ステップＳ５０４では、ステップＳ５０３で算出された累積評価値の比較を行い、最大の累積評価値を算出した選択処理対象弱判別器を特定する。さらに特定された選択処理対象弱判別器が配置された分岐先を選択する。
【００６７】
続いてステップＳ５０５において、選択された分岐先の先頭に配置された弱判別器を次に実行されるべき弱判別器として選択する。
【００６８】
６．検出処理プログラムの動作例
続いて、図２にモジュール構成が示された検出処理プログラム１１０が、実際にどのような手順で処理が実行されていくのかを、図３〜５を参照しながら、具体例をもって説明する。
【００６９】
図２にてモジュール構成が示された本実施形態の検出処理プログラム１１０では、弱判別器２０３が分岐点として機能する（３分岐）。弱判別器２０４−Ａ〜２０８−Ａが配置されている分岐先を分岐Ａ、弱判別器２０４−Ｂ〜２０８−Ｂが配置されている分岐先を分岐Ｂ、弱判別器２０４−Ｃ〜２０８−Ｃが配置されている分岐先を分岐Ｃと呼ぶことにする。
【００７０】
以下に、検出処理プログラム１１０において実行される手順を、動作例１〜３にわけて説明する。
【００７１】
６．１  動作例１（打ち切り指示なしの場合）
動作例１として、分岐先の最後の弱判別器に到達するまで打ち切り指示が出力されなかった場合の動作を説明する（なお、途中で打ち切り指示が出力される場合の動作は、動作例２で説明する）。
【００７２】
処理ウィンドウ６０１内の画像データの各画素値が入力されると、はじめに弱判別器２００の処理が実行される（ステップＳ３０２）。弱判別器２００では、打ち切り指示が出力されないため、ステップＳ３０３において打ち切り指示なしと判断され、ステップＳ３０４に進む。また、弱判別器２００は最後の弱判別器ではないため、ステップＳ３０５に進み、選択処理が開始される。
【００７３】
ここで弱判別器２００の下位層に配置された弱判別器は、弱判別器２０１のみであるため、ステップＳ５０１では、次の弱判別器候補が複数ないと判断され、ステップＳ５０２に移行する。そして、弱判別器２０１が次に実行されるべき弱判別器として選択される。
【００７４】
次に実行されるべき弱判別器として選択された弱判別器２０１では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器２００の場合と同様に処理が進行した結果、次に実行されるべき弱判別器として弱判別器２０２が選択される。
【００７５】
次に実行されるべき弱判別器として選択された弱判別器２０２では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器２００の場合と同様に処理が進行した結果、次に実行されるべき弱判別器として弱判別器２０３が選択される。
【００７６】
次に実行されるべき弱判別器として選択された弱判別器２０３では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器２００の場合と同様に処理が進行する。ただし、弱判別器２０３の場合、次に実行されるべき弱判別器の候補として、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃの３つの弱判別器がある。このため、ステップＳ５０１では、弱判別器候補が複数あると判断され、ステップＳ５０３に移行する。
【００７７】
ステップＳ５０３では、分岐先毎に配置された選択処理対象弱判別器が処理を実行する。ここでは、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃのそれぞれが、図４の処理を実行し、最終的にそれぞれが累積評価値を算出する。
【００７８】
ステップＳ５０４では、ステップＳ５０３で算出された累積評価値の比較を行い、最大の累積評価値を算出した選択処理対象弱判別器を特定する。ここでは弱判別器２０４−Ｂが最大の累積評価値を出力したとする。このため、弱判別器２０４−Ｂが配置された分岐Ｂを分岐先として選択する。
【００７９】
続いてステップＳ５０５では、選択された分岐Ｂの先頭に配置された弱判別器２０４−Ｂが次に実行されるべき弱判別器として選択される。なお、弱判別器２０４−Ｂの処理は、既に選択処理の際に１回実行されているため、そのときの処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度弱判別器２０４−Ｂが処理を実行する必要はない。
【００８０】
従って、ステップＳ５０５では、弱判別器２０４−Ｂをスキップして弱判別器２０５−Ｂが次に実行されるべき弱判別器として選択される（もちろん弱判別器２０４−Ｂが再度処理を実行してから弱判別器２０５−Ｂが処理を実行するようにしても良い）。
【００８１】
続いて弱判別器２０５−Ｂ以降の弱判別器に対して、弱判別器２００〜２０２の場合と同様の処理が実行され、それぞれ次の（図２の場合は右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【００８２】
上述のように、動作例１では最後の弱判別器に到達するまで打ち切り指示は出力されない。このため、弱判別器２０８−Ｂの処理が実行されると、ステップＳ３０７では、対象オブジェクト（正面向きの顔）を検出したとして、現在の処理ウィンドウ６０１内の画像データに対する検出処理プログラム１１０の検出処理を終了する。
【００８３】
一般的に、ＡｄａＢｏｏｓｔ等のＢｏｏｓｔｉｎｇ学習手法を用いて弱判別器を学習させ、弱検出器を配置した場合、累積評価値は各弱判別器を信頼度で重み付けして多数決をとったものとみなすことができる。従って、累積評価値の大小に基づいて分岐先を選択すれば、対象オブジェクトを検出するのに最も適した分岐先を選択することができる。
【００８４】
以上のように、検出処理プログラム１１０によれば、弱判別器２０３から弱判別器２０４−Ｂへの選択処理において、選択処理のための特別な処理を行っていない。つまり、選択処理対象弱判別器においても、分岐に関係ない他の弱判別器で行われる処理内容と同様の処理が実行され、処理結果として算出された値（累積評価値）の大小を比較して選択処理が行われる。従って、選択処理のための特別な仕組みは不要となり、演算量の削減、つまり処理時間の短縮が実現可能となる。
【００８５】
６．２  動作例２（打ち切り指示ありの場合）
次に動作例２として、最後の弱判別器に到達するまでの間に打ち切り指示が出力された場合の動作を説明する。一例として、弱判別器２０１で打ち切り指示が出力される場合の動作を説明する。
【００８６】
弱判別器２００における処理は、上述の動作例１において説明した弱判別器２００における処理と同じである。
【００８７】
その後、実行されるべき弱判別器として弱判別器２０１が選択され、ステップＳ３０２において該弱判別器２０１の処理が実行されると、ステップＳ４０６では、打ち切り指示が出力される。この結果、ステップＳ３０３では、打ち切り指示があったと判断され、ステップＳ３０６では、対象オブジェクトなしとして、現在の処理ウィンドウでの検出処理を終了する。
【００８８】
以上のように、検出処理プログラム１１０によれば、弱判別器を木構造に配置することにより、選択処理対象弱判別器までに配置された弱判別器において、対象オブジェクトの有無をある程度判定することが可能となる。この結果、選択処理を省くことが可能となり、処理の効率化を図ることが可能となる。
【００８９】
６．３  動作例３（打ち切り指示なしの場合）
次に動作例３として、分岐先の最後の弱判別器に到達するまで打ち切り指示が出力されなかった場合の動作を説明する。なお、動作例１では、選択処理対象弱判別器として２０４−Ａ、２０４−Ｂ、２０４−Ｃが処理を実行し、累積評価値を算出することで分岐先を選択することとした。これに対して、動作例３では、選択処理対象弱判別器として２０４−Ａ〜２０６−Ａ、２０４−Ｂ〜２０６−Ｂ、２０４−Ｃ〜２０６−Ｃが処理を実行し、累積評価値を算出することで、分岐先を選択することとする。
【００９０】
弱判別器２００、２０１、２０２の処理は、動作例１において説明した弱判別器２００、２０１、２０２における処理と同じである。
【００９１】
その後、実行されるべき弱判別器として弱判別器２０３が選択され、処理が実行された後、ステップＳ３０５において、次に実行されるべき弱判別器を選択する選択処理が行われる。このとき、弱判別器２０３の次に実行されるべき弱判別器の候補としては、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃの３つの弱判別器がある。このため、ステップＳ５０３では、分岐先毎に配置された選択処理対象弱判別器がそれぞれ処理を実行する。
【００９２】
本動作例３では、分岐Ａでは弱判別器２０４−Ａ、２０５−Ａ、２０６−Ａの順にそれぞれの弱判別器が処理を実行し、累積評価値を算出する。同様に分岐Ｂでは弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂの順に、分岐Ｃでは弱判別器２０４−Ｃ、２０５−Ｃ、２０６−Ｃの順に、それぞれの弱判別器が処理を実行し、それぞれの分岐における累積評価値を算出する。
【００９３】
ステップＳ５０４では、ステップＳ５０３で算出されたそれぞれの分岐先の累積評価値の比較を行い、最大の累積評価値を算出した分岐先を選択する。具体的には、弱判別器２０６−Ａが処理を実行することにより算出された累積評価値と、弱判別器２０６−Ｂが処理を実行することにより算出された累積評価値と、弱判別器２０６−Ｃが処理を実行することにより算出された累積評価値とを比較する。
【００９４】
なお、本動作例３では、弱判別器２０６−Ｂが最大の累積評価値を算出したとする。その場合、ステップＳ５０４では弱判別器２０６−Ｂが配置された分岐Ｂを分岐先として選択する。
【００９５】
続いてステップＳ５０５において、選択された分岐Ｂの先頭に配置された弱判別器２０４−Ｂが次に実行されるべき弱判別器として選択される。しかしながら、本動作例３の場合、弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂの処理は、既に、選択処理中に（ステップＳ５０４において）実行されている。従って、選択処理中に行った各弱判別器の実行結果（打ち切り指示の有無、累積評価値）を記憶しておけば、再度弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂが処理を実行する必要はない。
【００９６】
従って、ステップＳ５０５においては、弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂをスキップして、弱判別器２０７−Ｂが次に実行されるべき弱判別器として選択される。
【００９７】
続いて弱判別器２０７−Ｂ以降の弱判別器に対して、弱判別器２００〜２０２と同様の処理が実行され、それぞれ次の（右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【００９８】
なお、本動作例３では、最後の弱判別器２０８−Ｂに到達するまで打ち切り指示は出力されない。このため、弱判別器２０８−Ｂの処理が実行されると、ステップＳ３０７では対象オブジェクト有り（正面向きの顔を検出した）として、現在の処理ウィンドウでの検出処理を終了する。
【００９９】
上述のように、ＡｄａＢｏｏｓｔ等のＢｏｏｓｔｉｎｇ学習手法を用いて弱判別器を学習させ、弱判別器を配置した場合、累積評価値は各弱判別器を信頼度で重み付けして多数決をとったものとみなすことができる。従って、累積評価値の大小に基づいて分岐先を選択すれば、対象オブジェクトを検出するのに最も適した分岐先を選択することができる。
【０１００】
さらに、累積評価値を算出するのに多くの弱判別器を用いれば用いるほど、累積評価値の信頼性が増す。従って、選択処理に際して、各分岐先の先頭の弱判別器の累積評価値のみを算出した動作例１に比べて、各分岐先の先頭から３つの弱判別器の累積評価値を算出する動作例３の方が、高い信頼性で、分岐先を選択することが可能となる。
【０１０１】
以上のように、動作例１〜３のいずれの場合においても、本実施形態によれば、画像データ中の複数種類の対象オブジェクトを、高速に検出することが可能となる。
【０１０２】
［第２の実施形態］
上記第１の実施形態では、選択処理において、各分岐先において算出された累積評価値を比較することにより、分岐先を選択することとしたが、本発明はこれに限られない。例えば、分岐先の各弱判別器のうち、算出される特徴量が所定の閾値以上となる弱判別器の数を、分岐先ごとに比較することにより、分岐先を選択するようにしてもよい。
【０１０３】
１．弱判別器における選択処理
図７は、本実施形態に係る画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。なお、説明の簡略化のため、ここでは、図５と異なる点について説明する。
【０１０４】
ステップＳ５００〜Ｓ５０３の処理は、図５の対応するステップと同じ処理である。
【０１０５】
ステップＳ７０４では、分岐先の各弱判別器の処理を実行することにより算出された特徴量が判定閾値以上であるか否かを判断する。そして、分岐先ごとに、算出された特徴量が判定閾値以上となる弱判別器の数をカウントし、それらを比較する。その結果、算出された特徴量が判定閾値以上となる弱判別器の数が最も多く含まれる分岐先を選択する。
【０１０６】
ステップＳ５０５では、ステップＳ７０４において選択された分岐先の先頭に配置された弱判別器を、次に実行されるべき弱判別器として選択する。
【０１０７】
２．検出処理プログラム１１０の動作例
続いて、本実施形態における検出処理プログラム１１０において実行される具体的な動作例を説明する。
【０１０８】
弱判別器２００〜２０２における処理は、上記第１の実施形態における動作例３と同様である。
【０１０９】
その後、実行されるべき弱判別器として弱判別器２０３が選択され、処理が実行された後、ステップＳ３０５において、次に実行されるべき弱判別器を選択する選択処理が行われる。このとき、弱判別器２０３の次に実行されるべき弱判別器の候補としては、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃの３つの弱判別器がある。このため、ステップＳ５０３に移行する。
【０１１０】
ステップＳ５０３では、分岐先毎に配置された選択処理対象弱判別器が処理を実行する。従って、本動作例の場合、分岐Ａでは弱判別器２０４−Ａ、２０５−Ａ、２０６−Ａの順に各弱判別器が処理を実行する。つまり、ステップＳ４０１において特徴量を算出し、ステップＳ４０２において、該特徴量と判定閾値とを比較して判定結果を算出する。更に、ステップＳ４０４において、累積評価値を算出する。同様に分岐Ｂでは弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂの順に、分岐Ｃでは弱判別器２０４−Ｃ、２０５−Ｃ、２０６−Ｃの順に、各弱判別器が処理を実行し、それぞれの分岐における判定結果を出力し、累積評価値を算出する。
【０１１１】
その後、ステップＳ７０４では、ステップＳ５０３において出力された判定結果に基づいて分岐先の選択を行う。具体的には、分岐先毎に、ステップＳ５０３において特徴量≧判定閾値と判断した弱判別器の数をカウントし、その数が最も多い分岐先を選択する。
【０１１２】
例えば、分岐Ａでは、弱判別器２０４−Ａ、２０５−Ａの処理において、特徴量≧判定閾値と判断されたとする（弱判別器２０６−Ａの処理においては、特徴量＜判定閾値と判断されたとする）。
【０１１３】
同様に分岐Ｂでは、弱判別器２０４−Ｂ、２０５−Ｂ、２０５−Ｃの処理において、特徴量≧判定閾値と判断されたとする。さらに分岐Ｃでは、弱判別器２０４−Ｃ、２０５−Ｃの処理において、特徴量≧判定閾値と判断されたとする（弱判別器２０６−Ｃの処理においては、特徴量＜判定閾値と判断されたとする）。
【０１１４】
このような場合、特徴量≧判定閾値と判断された弱判別器の数は、分岐Ａ＝２、分岐Ｂ＝３、分岐Ｃ＝２となるため、分岐Ｂが分岐先として選択される。
【０１１５】
続いてステップＳ５０５において、選択された分岐Ｂの先頭に配置された弱判別器２０４−Ｂが次に実行されるべき弱判別器として選択される。
【０１１６】
ここで、本動作例の場合、弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂでは、選択処理中に、既に処理を実行済みである。従って、選択処理中に行った処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度、弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂの処理を実行する必要はない。従って、ステップＳ５０５においては、弱判別器２０４−Ｂ、２０５−Ｂ、２０６−Ｂをスキップして弱判別器２０７−Ｂが次に実行されるべき弱判別器として選択される。
【０１１７】
続いて弱判別器２０７−Ｂ以降の弱判別器に対して、弱判別器２００〜２０２と同様の処理が行われ、それぞれ次の（右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【０１１８】
本動作例では、最後の弱判別器に到達するまで打ち切り指示は出力されないので、弱判別器２０８−Ｂが処理を実行すると、ステップＳ３０７では対象オブジェクト有り（正面向きの顔を検出した）として、現在の処理ウィンドウでの検出処理を終了する。
【０１１９】
以上のように、本実施形態では、選択処理における選択指標として累積評価値を用いるのではなく、所定の条件を具備する判定結果を出力する弱判別器の数（特徴量≧判定閾値と判断した弱判別器の数）を用いる構成とした。これにより、本実施形態の場合、各弱判別器に付与されている信頼度を使用することなく、選択処理を実行することが可能となる。
【０１２０】
一般に、分岐先の弱判別器（例えば、分岐Ａに配置された弱判別器２０４−Ａ〜２０８−Ａ）は、分岐ごとにアンサンブル学習により学習されるが、その学習の難易度は、一般的に分岐先毎に異なる。また当然のことながら、学習に際して必要となる学習用データも分岐先毎に異なる。
【０１２１】
従って、分類しようとする内容（本実施形態では、正面顔、右向き顔、左向き顔に分類）によっては、学習の結果として生成される信頼度の値（或いは、信頼度を用いて算出される累積評価値）を分岐先間で比較するのは不適切な場合もある。
【０１２２】
そのような場合に、本実施形態のように累積評価値ではなく、特徴量≧判定閾値と判断した弱判別器の数を用いて分岐先を選択することは有効である。
【０１２３】
また、その他の選択処理として、各分岐の累積評価値を何らかの手法を用いて正規化したうえで、比較を行い、分岐先を選択するようにしてもよい。
【０１２４】
［第３の実施形態］
上記第１の実施形態では、選択処理において、各分岐先において算出された１または複数の弱判別器の累積評価値を比較することにより、分岐先を選択することとしたが、本発明はこれに限られない。例えば、分岐先ごとに予め選択閾値を設定し、いち早く累積評価値が選択閾値を上回った分岐先を選択するように構成してもよい。
【０１２５】
１．弱判別器における選択処理
図８は、本実施形態に係る画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。なお、説明の簡略化のため、ここでは、図５と異なる点について説明する。
【０１２６】
ステップＳ５００〜ステップＳ５０２の処理は、図５の対応するステップと同じ処理である。
【０１２７】
ステップＳ５０１において、次に実行されるべき弱判別器の候補が複数あると判定された場合には、ステップＳ８０３に進む。
【０１２８】
ステップＳ８０３では、各分岐先に配置された選択処理対象弱判別器のうちの先頭の選択処理対象弱判別器（弱判別器２０４−Ａ、２０４−Ｂ、２０４−Ｃ）が処理を実行して累積評価値を算出する（処理の内容は図４参照）。
【０１２９】
ステップＳ８０４では、分岐先ごとにあらかじめ設定されている選択閾値とステップＳ８０３で算出した累積評価値とを比較し、選択閾値を超えた累積評価値を算出した選択処理対象弱判別器があるか否かを調べる。
【０１３０】
ステップＳ８０４において、選択閾値を超えた累積評価値を算出した選択処理対象弱判別器があると判定された場合には、ステップＳ８０５において、その選択処理対象弱判別器が配置された分岐先を選択する。
【０１３１】
一方、ステップＳ８０４において、選択閾値を超えた累積評価値を算出した選択処理対象弱判別器がないと判定された場合には、ステップＳ８０６に進む。
【０１３２】
ステップＳ８０６では、各分岐先において、次に配置された選択処理対象弱判別器（弱判別器２０５−Ａ、２０５−Ｂ、２０５−Ｃ）が処理を実行し、累積評価値を算出する。その後、ステップＳ８０４に戻る。
【０１３３】
このように図８に示された選択処理を行うことにより、最初に選択閾値を超える累積評価値を算出した選択処理対象弱判別器が配置された分岐先が選択されることとなる。
【０１３４】
２．検出処理プログラムの動作例
続いて、本実施形態における検出処理プログラム１１０において実行される具体的な動作例を説明する。
【０１３５】
弱判別器２００、２０１、２０２における処理は、上記第１の実施形態における動作例３と同様である。
【０１３６】
その後、実行されるべき弱判別器として弱判別器２０３が選択され、処理が実行されると、ステップＳ３０５では、次に実行されるべき弱判別器の候補として、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃの３つがあると判断される。この結果、ステップＳ８０３に移行する。
【０１３７】
ステップＳ８０３では、分岐先毎に配置された選択処理対象弱判別器の先頭の選択処理対象弱判別器（弱判別器２０４−Ａ、２０４−Ｂ、２０４−Ｃ）が処理を実行する。
【０１３８】
つまり、分岐Ａでは弱判別器２０４−Ａが図４に示す処理を実行し、累積評価値を算出する。同様に分岐Ｂでは弱判別器２０４−Ｂが、分岐Ｃでは弱判別器２０４−Ｃがそれぞれ図４に示す処理を実行し、それぞれの分岐先における累積評価値を算出する。
【０１３９】
その後、ステップＳ８０５において、各分岐先にあらかじめ設定されている選択閾値と、分岐先ごとに算出された累積評価値とを比較する。ここで本動作例では、弱判別器２０４−Ａ、弱判別器２０４−Ｂ、弱判別器２０４−Ｃのいずれの弱判別器が算出した累積評価値も、選択閾値を超えなかったとする。
【０１４０】
このため、ステップＳ８０６において、分岐先ごとに次の選択処理対象弱判別器を選択する。つまり、分岐Ａでは弱判別器２０５−Ａを、分岐Ｂでは弱判別器２０５−Ｂを、分岐Ｃでは弱判別器２０５−Ｃをそれぞれ選択する。続いて、選択された各弱判別器において累積評価値を算出する。
【０１４１】
続いて、ステップＳ８０４において、各分岐先にあらかじめ設定されている選択閾値と、分岐先ごとに算出された累積評価値とを比較する。ここで本動作例では、弱判別器２０５−Ｂが算出した累積評価値が選択閾値を超えていたとする。
【０１４２】
この結果、ステップＳ８０５では、弱判別器２０５−Ｂが配置された分岐Ｂを分岐先として選択する。
【０１４３】
続いてステップＳ５０５において、選択された分岐Ｂの先頭に配置された弱判別器２０５−Ｂが次に実行されるべき弱判別器として選択される。しかしながら、本動作例の場合、弱判別器２０４−Ｂ、２０５−Ｂは、選択処理中に既に処理を実行している。従って、選択処理において実行したステップＳ３０２の処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度、弱判別器２０４−Ｂ、２０５−Ｂの処理を実行する必要はない。
【０１４４】
従って、ステップＳ５０５においては、弱判別器２０４−Ｂ、２０５−Ｂをスキップして弱判別器２０６−Ｂが次に実行されるべき弱判別器として選択される。
【０１４５】
続いて弱判別器２０６−Ｂ以降の弱判別器に対して、弱判別器２００〜２０２と同様の処理が実行され、それぞれ次の（右隣の）弱判別器が、次に実行されるべき弱判別器として選択される。
【０１４６】
本動作例では、最後の弱判別器に到達するまで打ち切り指示は出力されないため、弱判別器２０８−Ｂの処理が実行されると、ステップＳ３０７では検出オブジェクト有り（正面向きの顔を検出した）として、現在の処理ウィンドウでの検出処理を終了する。
【０１４７】
上述したように、ＡｄａＢｏｏｓｔ等のＢｏｏｓｔｉｎｇ学習手法を用いて弱判別器を学習させ、弱判別器を配置した場合、累積評価値は各弱判別器を信頼度で重み付けして多数決をとったものとみなすことができる。
【０１４８】
従って、累積評価値がある値（選択閾値）を超えた弱判別器が配置された分岐先を選択するということは、分岐先間で最も信頼性が高いものを選択するというだけではなく、絶対的な比較としても、ある程度の信頼性をもった選択を行うことができることとなる。この結果、高い信頼性で分岐先を選択することができる。
【０１４９】
なお、選択閾値は、あらかじめ学習等の手法を用いて決定しておけばよい。また、本動作例では分岐先ごとに選択閾値を設定しているとしたが、選択閾値は、全分岐先に共通の値であってもよい。
【０１５０】
［第４の実施形態］
上記第１〜第３の実施形態では、図２に示すモジュール構成における検出処理について説明したが、本発明にかかる画像処理装置のモジュール構成は、これに限られない。以下、図２とは異なるモジュール構成の場合における検出処理について説明する。
【０１５１】
１．検出処理プログラム９２０のモジュール構成
図９は、本実施形態にかかる画像処理装置における検出処理プログラム９２０のモジュール構成を示す図である。図９に示すように、検出処理プログラム９２０は、複数の弱判別器がカスケードに接続された強判別器を備え、検出処理の打ち切り指示を、強判別器単位で行うように構成されている。
【０１５２】
図９においては、網掛けにより示されたグループに含まれる弱判別器群により、それぞれの強判別器が構成されている。強判別器を構成する各弱判別器には、その弱判別器を規定するパラメータとして、「特徴量算出パラメータ」、「判定閾値」、「信頼度重み」が決められており、各弱判別器は、これらのパラメータを用いて処理を行う（処理の詳細は後述）。
【０１５３】
また、各強判別器には「打ち切り閾値」が設定されている。なお、図９では、簡略化のため、弱判別器９００と強判別器９１０のパラメータのみを記載し、弱判別器９００と強判別器９１０以外のパラメータは図示されていないが、実際は全ての弱判別器及び強判別器においてパラメータが設定されているものとする。
【０１５４】
本実施形態でも、第１乃至第３の実施形態と同じく対象オブジェクトは人間の顔部分であり、分岐Ａでは右向きの顔を、分岐Ｂでは正面向きの顔を、分岐Ｃでは左向きの顔をそれぞれ検出するように、木構造が構成されている。
【０１５５】
２．検出処理プログラム９２０における処理の流れ
図９の検出処理プログラム９２０は、基本的に図３に示されるフローチャートに従って検出処理を実行する。ただし、ステップＳ３０２における弱判別器内の処理は異なるため、以下、当該処理について相違点を中心に説明する。
【０１５６】
３．弱判別器内での処理
上述のように、第１乃至第３の実施形態において示した検出処理プログラム１１０のモジュール構成による検出処理と、本実施形態の検出処理プログラム９２０のモジュール構成による検出処理との相違点は、打ち切り指示の出力のタイミングである。
【０１５７】
検出処理プログラム１１０の場合、打ち切り指示を出力するか否かを各弱判別器ごとに判断することとしたが、検出処理プログラム９２０の場合には、打ち切り指示を出力するか否かを各強判別器ごとに行う。
【０１５８】
図１０は、本実施形態における各弱判別器内での処理の詳細を示すフローチャートである。図１０のフローチャートと図３のフローチャートとの相違点は、ステップＳ１０００に示す工程があるか否かである。このため、その他の工程については図３と同じ符号で表わし、説明を省略することとする。
【０１５９】
図１０のステップＳ１０００では、現在処理している弱判別器が、強判別器の中の最後尾に配置された弱判別器であるか否かを判断する。強判別器内の最後尾に配置された弱判別器でなければ、ステップＳ４０７に移り、処理を終了する。
【０１６０】
一方、最後尾に配置された弱判別器であれば、ステップＳ４０５に移行し、累積評価値と打ち切り閾値とを比較する。打ち切り閾値は、その強判別器にあらかじめ付与されているものとする。
【０１６１】
以上のように、本実施形態によれば、強判別器単位で打ち切りを行うため、弱判別器単位で打ち切り閾値との比較を行う場合と比べ、演算量を削減することが可能となる。
【０１６２】
［第５の実施形態］
上記第４の実施形態では、検出処理プログラム９２０における検出処理と検出処理プログラム１１０における検出処理との相違点が、弱判別器内での処理のみにあるとしたが、本発明はこれに限られず、弱判別器の選択処理に相違点があるとしてもよい。
【０１６３】
上記第１〜第３の実施形態における選択処理では、一つの分岐先のみを選択することとしていた（例えば最大の累積評価値を出力した弱判別器が配置されている分岐先を選択することとしていた）。これに対して、本実施形態では、
・最大の累積評価値を出力した選択処理対象弱判別器が配置されている分岐先と、
・最大の累積評価値から許容値内にある累積評価値を出力した選択処理対象弱判別器が配置されている分岐先と、
を分岐先候補として選択することとする。つまり、本実施形態では、複数の分岐先が選択される可能性がある。
【０１６４】
なお、許容値は、あらかじめ分岐先ごとに適切な値を設定しておくか、或いは全分岐先で統一した値を設定しておく。選択処理において、分岐先候補として複数の分岐先が選択された場合は、それぞれの分岐先に対して順番に処理を進めていく。以下、図１１のフローチャートを用いて、本実施形態における弱判別器の選択処理の流れを説明する。
【０１６５】
１．検出処理プログラム９２０における処理の流れ
図１１は、本実施形態における弱判別器の選択処理の流れを示すフローチャートである。このうち、図３と同じ工程については同一の符号を割り当てることとし、説明は省略する。
【０１６６】
図１１と図３との違いは、ステップＳ１１００、Ｓ１１０１、Ｓ１１０２、Ｓ１１０３に示す工程の有無である。図３の場合は、１つだけの分岐先が選択されるため、その分岐先において（あるいは分岐する前において）打ち切り指示があった判定された場合（ステップＳ３０３）には、ステップＳ３０７により処理を終了することとしていた。
【０１６７】
これに対して、本実施形態では、必ず１つの分岐先が選択されるとは限られず（本実施形態の選択処理の詳細は、図１２を用いて後述する）、複数選択される可能性がある。
【０１６８】
ここで、選択された複数の分岐先を“分岐先候補”と呼ぶことにすると、選択された分岐先候補のうちの一つの分岐先において、打ち切り指示があったと判定された場合（ステップＳ３０３）でも、処理を終了せず、ステップＳ１１００に進む。
【０１６９】
ステップＳ１１００では、他の分岐先候補がないかを調べ、他の分岐先候補がないと判定された場合には、ステップＳ３０６において処理を終了する。
【０１７０】
一方、ステップＳ１１００において、他の分岐先候補があると判定された場合には、ステップＳ１１０１に進み、その分岐先候補から一つの分岐先を選択する。このときの選択手法は特に問わない。
【０１７１】
その後、ステップＳ１１０２において、ステップＳ１１０１で選択された分岐先の先頭に配置された弱判別器を、次に実行されるべき弱判別器として選択し、ステップＳ３０２に戻る。
【０１７２】
一方、図３の場合は、ステップＳ３０３において打ち切り指示がなかったと判定され、ステップＳ３０４において最後の弱判別器であると判断された場合には、ステップＳ３０７により処理を終了することとしていた。
【０１７３】
これに対して、本実施形態では、処理中の分岐先にとって最後の弱判別器であっても、別の分岐先候補が残っている可能性があるので、ステップＳ１１０３にてステップＳ１１００と同じ調査を行う。
【０１７４】
すなわち、ステップＳ１１０３において、他の分岐先候補がないかを調べ、他の分岐先候補がないと判定された場合には、ステップＳ３０７において処理を終了する。
【０１７５】
一方、ステップＳ１１０３において、他の分岐先候補があると判定された場合には、ステップＳ１１０１に移行する。なお、このステップＳ１１０３でいずれの判断がなされた場合でも、その分岐先では最後の弱判別器まで到達しているので、その分岐先が担当する対象オブジェクトは検出されたと判断されることになる。
【０１７６】
２．弱判別器における選択処理
続いて、図１２のフローチャートにより、弱判別器における選択処理について説明する。このうち、図５と同じ工程については同一の符号を割り当てることとし、説明は省略する。
【０１７７】
図１２と図５との違いは、ステップＳ１２００、Ｓ１２０４である。上述したようにステップＳ１２０４において、
・最大の累積評価値を出力した選択処理対象弱判別器が配置されている分岐先と、
・最大の累積評価値から許容値内にある累積評価値を出力した選択処理対象弱判別器が配置されている分岐先と、
を分岐先候補として選択する。
【０１７８】
続いて、ステップＳ１２００において、その分岐先候補の中から一つの分岐先を選択する。このときの選択手法は特に問わない。許容値は、あらかじめ適切な値を設定しておけばよい。この際、許容値として大きな値を設定すれば、複数の分岐先候補が選択される確率が高まるので、処理時間が増加する傾向になる。同時に、複数の分岐先に対して検出処理が行われるので、検出率が向上することも期待される。したがって両者のトレードオフで適切な値を設定すればよい。
【０１７９】
３．検出処理プログラムの動作例
続いて、図９にモジュール構成が示された検出処理プログラム９２０が、実際にどのような手順で処理が実行されていくのかを、図１０〜１２を参照しながら、具体例をもって説明する。
【０１８０】
３．１  動作例１（打ち切り指示なしの場合）
動作例１として、分岐先の最後の弱判別器に到達するまで打ち切り指示が出力されなかった場合の動作を説明する（なお、途中で打ち切り指示が出力される場合の動作は、動作例２で説明する）。
【０１８１】
処理ウィンドウ６０１内の画像データの各画素値が入力されると、はじめに弱判別器９００が処理を実行する（図１０のステップＳ３０２）。弱判別器９００では、打ち切り指示が出力されないため、ステップＳ３０３において打ち切り指示なしと判断され、ステップＳ３０４に進む。また、弱判別器９００は最後の弱判別器ではないため、ステップＳ３０５に進み、選択処理が開始される。
【０１８２】
ここで弱判別器９００の下位層に配置された弱判別器は、弱判別器９０１のみであるため、図１２のステップＳ５０１では、次の弱判別器候補は複数でないと判断され、ステップＳ５０２に移行する。そして、弱判別器９０１が次に実行されるべき弱判別器として選択される。
【０１８３】
次に実行されるべき弱判別器として選択された弱判別器９０１では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器９００の場合と同様に処理が進行した結果、弱判別器９０２が次に実行されるべき弱判別器として選択される。
【０１８４】
次に実行されるべき弱判別器として選択された弱判別器９０２では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器９００の場合と同様に処理が進行した結果、弱判別器９０３が次に実行されるべき弱判別器として選択される。
【０１８５】
次に実行されるべき弱判別器として選択された弱判別器９０３では、処理ウィンドウ６０１内の画像データの各画素値について処理を実行し、弱判別器９００の場合と同様に処理が進行する。ただし、弱判別器９０３の場合、次に実行されるべき弱判別器の候補として、弱判別器９０４−Ａ、弱判別器９０４−Ｂ、弱判別器９０４−Ｃの３つの弱判別器がある。このため、図１２のステップＳ５０１では、次の弱判別器候補が複数あると判断され、ステップＳ５０３に移行する。
【０１８６】
ステップＳ５０３では、分岐先毎に配置された選択処理対象弱判別器が処理を実行する。即ち、弱判別器９０４−Ａ、弱判別器９０４−Ｂ、弱判別器９０４−Ｃのそれぞれが、図９の処理を実行し、最終的にそれぞれが累積評価値を算出する。
【０１８７】
図１２のステップＳ１２０４において、ステップＳ５０３で算出された累積評価値の比較を行う。そして、最大の累積評価値を算出した選択処理対象弱判別器を特定する。同時に、最大の累積評価値から許容値内にある累積評価値を出力した選択処理対象弱判別器を特定する。
【０１８８】
ここでは、弱判別器９０４−Ｂが最大の累積評価値を出力し、弱判別器９０４−Ａが最大の累積評価値から許容値内にある累積評価値を出力したとする。このため、弱判別器９０４−Ｂが配置された分岐Ｂと、弱判別器９０４−Ａが配置された分岐Ａとを、分岐先候補として選択する。
【０１８９】
続いてステップＳ１２００において、その分岐先候補から一つの分岐先を選択する。ここでは、まず分岐Ｂを選択するとする。続いてステップＳ５０５において、選択された分岐Ｂの先頭に配置された弱判別器９０４−Ｂが次に実行されるべき弱判別器として選択される。
【０１９０】
ここで、弱判別器９０４−Ｂでは、図１１のステップＳ３０２の処理を、既に選択処理中に一度実行している。従って、選択処理中に行ったステップＳ３０２の処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度弱判別器９０４−Ｂの処理を実行する必要はない。
【０１９１】
従って、図１２のステップＳ５０５においては、弱判別器９０４−Ｂをスキップして弱判別器９０５−Ｂが、次に実行されるべき弱判別器として選択される。もちろん弱判別器９０４−Ｂの処理を再度実行してから弱判別器９０５−Ｂの処理に移行してもよい。
【０１９２】
続いて弱判別器９０５−Ｂ以降の弱判別器に対して、弱判別器９００〜９０２の場合と同様の処理が実行され、それぞれ次の（右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【０１９３】
なお、本動作例１では、最後の弱判別器９０８−Ｂに到達するまで打ち切り指示は出力されないので、弱判別器９０８−Ｂの処理が実行されると、図１１のステップＳ３０４において、最後の弱判別器であると判断され、ステップＳ１１０３に移行する。
【０１９４】
ステップＳ１１０３では、他の分岐先候補がないか調べる。本動作例１の場合、他の分岐先候補として分岐Ａがあるため、ステップＳ１１０１に移行する。この際、分岐Ｂでは最後の弱判別器まで到達したので、その分岐先が担当する対象オブジェクト（正面向きの顔）が検出されたと判断されることとなる。
【０１９５】
ステップＳ１１０１では、残された分岐先候補が分岐Ａだけであるので分岐Ａを選択する。続いてステップＳ１１０２において、選択された分岐Ａの先頭に配置された弱判別器９０４−Ａが次に実行されるべき弱判別器として選択される。
【０１９６】
しかしながら、本動作例１の場合、弱判別器９０４−Ａは図１１のステップＳ３０２の処理を、選択処理中にすでに一度実行している。従って、選択処理中に実行したステップＳ３０２の処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度弱判別器９０４−Ａの処理を実行する必要はない。従って、ステップＳ１１０２においては、弱判別器９０４−Ａがスキップされ、弱判別器９０５−Ａが次に実行されるべき弱判別器として選択される。
【０１９７】
続いて弱判別器９０５−Ａ以降の弱判別器に対して、分岐Ｂの弱判別器９０５−Ｂ〜９０８−Ｂと同様の処理が実行され、それぞれ次の（右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【０１９８】
本動作例１では、分岐Ａの最後の弱判別器（弱判別器９０８−Ａ）に到達するまで打ち切り指示は出力されないので、弱判別器９０８−Ａの処理が実行されると、ステップＳ３０４において、最後の弱判別器であると判断され、ステップＳ１１０３に移行する。
【０１９９】
ステップＳ１１０３では、他の分岐先候補がないか調べる。本動作例１の場合、残された分岐先候補はもう無いので、ステップＳ３０７にて対象オブジェクト有り（右向きの顔を検出した）として、現在の処理ウィンドウでの検出処理を終了する。
【０２００】
このように、動作例１では、処理ウィンドウの所定の位置において、正面向きの顔と右向きの顔の両方が、検出されたことになる。一般的に検出処理プログラムは、顔向きや、顔サイズ等の変動にある程度頑健になるように学習させているため、ある一つの対象オブジェクトが複数の分岐先で検出されることは起こりうる。
【０２０１】
このような場合は、何らかの統合処理を行って、複数の処理結果を統合すればよい。このときの統合処理は公知のものを使用すればよい。例えば、複数の分岐先に何らかの重み付けをした結果を検出結果とすればよい。本動作例１では、正面向きの顔と右向きの顔の両方が検出されたので、両者の中間の、正面から斜め右方向を向いた顔が検出されたと判断することとする。
【０２０２】
３．２  動作例２（打ち切り指示ありの場合）
次に動作例２として、最後の弱判別器に到達するまでの間に打ち切り指示が出力された場合の動作を説明する。一例として、弱判別器９０５−Ａで打ち切り指示が出された場合の動作を説明する。
【０２０３】
弱判別器９００、９０１、９０２の処理は、上述の動作例１において説明した弱判別器９００における処理と同じである。
【０２０４】
その後、次に実行されるべき弱判別器として弱判別器９０３が選択され、ステップＳ３０２において、該弱判別器９０３の処理が実行されると、分岐Ｂと分岐Ａとが、分岐先候補として選択される。続いて、当該２つの分岐先候補のうち、まず分岐Ｂを分岐先として選択する。
【０２０５】
次に、弱判別器９０５−Ｂ以降の弱判別器に対して、弱判別器９００〜９０２の場合と同様の処理が実行され、それぞれ次の（右隣の）弱判別器が次に実行されるべき弱判別器として選択される。
【０２０６】
分岐Ｂでは、最後の弱判別器に到達するまで打ち切り指示は出されないので、弱判別器９０８−Ｂの処理が実行されると、ステップＳ３０４において、最後の弱判別器であると判断され、ステップＳ１１０３に移行する。
【０２０７】
ステップＳ１１０３では、他の分岐先候補がないか調べる。本動作例２の場合、他の分岐先候補として分岐Ａがあるため、他の分岐先候補があると判断され、ステップＳ１１０１に移行する。なお、このとき、分岐Ｂでは最後の弱判別器まで到達しているので、当該分岐先が担当する対象オブジェクト（正面向きの顔）が検出されたと判断されることとなる。
【０２０８】
更にステップＳ１１０１では、残された分岐先候補が分岐Ａだけであるので分岐Ａを選択する。続いてステップＳ１１０２において、選択された分岐Ａの先頭に配置された弱判別器９０４−Ａが次に実行されるべき弱判別器として選択される。
【０２０９】
しかしながら、本動作例２の場合、弱判別器９０４−Ａは、既に選択処理中に一度処理を実行している。従って、選択処理中に実行したステップＳ３０２の処理結果（打ち切り指示の有無、累積評価値の値）を記憶しておけば、再度弱判別器９０４−Ａが処理を実行する必要はない。従って、ステップＳ１１０２では、弱判別器９０４−Ａがスキップされ、弱判別器９０５−Ａが次に実行されるべき弱判別器として選択される。
【０２１０】
続いて弱判別器９０５−Ａにおいて処理が実行された結果、図９のステップＳ４０６において打ち切り指示が出されたとする。その場合、図１１のステップＳ３０３では、打ち切り指示ありと判断され、ステップＳ１１００に移行する。ステップＳ１１００では、他の分岐先候補がないか調べる。本動作例２の場合、残された分岐先候補はもう無いので、ステップＳ３０６にて対象オブジェクトなし（右向きの顔は検出されず）として、現在の処理ウィンドウでの検出処理を終了する。
【０２１１】
この結果、動作例２では、処理ウィンドウの所定の位置において、分岐先候補が複数選択されたが、最終的には正面向きの顔のみが検出されることとなる。
【０２１２】
なお、別の動作例として、分岐Ｂで打ち切り指示があり、分岐Ａでは打ち切り指示が無い場合や、両分岐で打ち切りがある場合等が考えられるが、これらの動作例は、本動作例の説明から容易に推測できるので省略する。
【０２１３】
［第６の実施形態］
上記第１〜第３の実施形態では、図２に示すモジュール構成における検出処理について説明し、第４〜第５の実施形態では、図９に示すモジュール構成における検出処理プログラムの検出処理について説明した。しかし、本発明にかかる画像処理装置のモジュール構成は、これに限られない。以下、図２、図９とは異なるモジュール構成における検出処理について説明する。
【０２１４】
１．検出処理プログラム１３２０のモジュール構成
図１３は、本実施形態にかかる画像処理装置における検出処理プログラム１３２０のモジュール構成を示す図である。図１３に示すように、検出処理プログラム１３２０では、分岐方向判別器１３１０が出力する分岐先判別結果に基づいて、選択処理を行う。
【０２１５】
１３１０は分岐方向判別器である。分岐方向判別器１３１０は、選択処理対象弱判別器が算出する特徴量を入力として、分岐先の選択を行う。分岐方向判別器１３１０が行う分岐先の選択は、線形識別手法やＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）等の公知の判別処理に基づいて行えばよく、それらの識別手法に必要となるパラメータはあらかじめ学習させ、求めておくものとする。
【０２１６】
本実施形態では、分岐Ａの選択処理対象弱判別器を弱判別器１３０４−Ａ、１３０５−Ａ、１３０６−Ａ、分岐Ｂの選択処理対象弱判別器を弱判別器１３０４−Ｂ、１３０５−Ｂ、１３０６−Ｂとしている。
【０２１７】
分岐先の選択のために分岐方向判別器１３１０へ入力されるのは、弱判別器の処理（図４）が実行されることでで算出される特徴量であり、分岐方向判別器１３１０のために特別に算出するものではない。
【０２１８】
したがって、分岐先の選択のために必要となるオーバヘッドは、弱判別器の処理とは無関係な全く新たな量を算出して分岐方向判別器１３１０に入力する場合と比較して、軽微なものですむ。
【０２１９】
２．検出処理プログラム１３２０における処理の流れ
図１３の検出処理プログラム１３２０は、基本的に図３に示されるフローチャートに従って検出処理を実行する。ただし、ステップＳ３０５における選択処理の内容は異なるため、以下、図１４を用いて当該選択処理について相違点を中心に説明する。図１４において、図５と同じ工程は同一の符号を割り当て、その説明は省略する。
【０２２０】
図１４と図５との違いは、ステップＳ１４０４である。上述したようにステップＳ１４０４では、選択処理対象弱判別器が算出する特徴量を分岐方向判別器１３１０に入力し、分岐方向判別器１３１０が出力する分岐方向判別結果に基づいて分岐先を選択する。
【０２２１】
図１３に示されたモジュール構成を有する検出処理プログラム１３２０が実際にどのような手順で処理が実行されていくのかは、これまでに示した動作例及び図１４のフローチャートから容易に推測できるので省略する。
【０２２２】
なお、本実施形態では、分岐方向判別器１３１０への入力として、各弱判別器が図３に示す処理を実行することで算出される特徴量としたが、特に特徴量に限定されるものではない。例えば、図３で算出される、判定結果、評価値、累積評価値、或いはそれらを組み合わせたものを、分岐方向判別器１３１０への入力としても良い。
【０２２３】
［第７の実施形態］
上記各実施形態では、検出処理プログラムのモジュール構成として、分岐数が２乃至３の場合について説明を行ったが、本発明にかかる画像処理装置が有する検出処理プログラムの分岐数は、これに限定されるものでない。
【０２２４】
また、上記各実施形態においては、検出処理プログラムのモジュール構成として、分岐点は１箇所の場合について説明を行ったが、本発明にかかる画像処理装置が有する検出処理プログラムが有する分岐点は１箇所に限定されるものでない。分岐先がさらに分岐するような木構造をもつモジュール構成であってもよい。
【０２２５】
また、弱判別器の学習手法の例としてＡｄａＢｏｏｓｔを示したが、これに限定されるものではない。Ｂｏｏｓｔｉｎｇ手法には他にもいろいろな手法が提案されており、それらを使用して学習した弱判別器によって構成されるようにしてもよい。
【０２２６】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０２２７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０２２８】
プログラムコードを供給するための記録媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０２２９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２３０】
さらに、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【０２３１】
【図１】本発明の第１の実施形態に係る画像処理装置１００のハードウエア構成を示すブロック図である。
【図２】検出処理プログラム１１０のモジュール構成を示す図である。
【図３】検出処理プログラム１１０における処理の流れを示すフローチャートである。
【図４】各弱判別器内での処理の流れを示すフローチャートである。
【図５】次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【図６】処理対象の画像データ６００の一例を示す図である。
【図７】本発明の第２の実施形態にかかる画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【図８】本発明の第３の実施形態にかかる画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【図９】本発明の第４の実施形態にかかる画像処理装置における検出処理プログラム９２０のモジュール構成を示す図である。
【図１０】本発明の第４の実施形態にかかる画像処理装置において、各弱判別器内で実行される処理の流れを示すフローチャートである。
【図１１】本発明の第５の実施形態にかかる画像処理装置の検出処理プログラム９２０における処理の流れを示すフローチャートである。
【図１２】本発明の第５の実施形態にかかる画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【図１３】本発明の第６の実施形態にかかる画像処理装置における検出処理プログラム１３２０のモジュール構成を示す図である。
【図１４】本発明の第６の実施形態にかかる画像処理装置において、次に実行されるべき弱判別器を選択するための選択処理の流れを示すフローチャートである。
【図１】
0004891197.tif 000002
【図２】
0004891197.tif 000003
【図３】
0004891197.tif 000004
【図４】
0004891197.tif 000005
【図５】
0004891197.tif 000006
【図６】
0004891197.tif 000007
【図７】
0004891197.tif 000008
【図８】
0004891197.tif 000009
【図９】
0004891197.tif 000010
【図１０】
0004891197.tif 000011
【図１１】
0004891197.tif 000012
【図１２】
0004891197.tif 000013
【図１３】
0004891197.tif 000014
【図１４】
0004891197.tif 000015