(57)【特許請求の範囲】
【請求項１】
物体の複数のカテゴリに対して、それぞれのカテゴリに対応する論理的にカスケード接続された複数の弱判別器によって物体の判別処理を実行する情報処理装置であって、
前記複数のカテゴリのそれぞれに対応する論理的にカスケード接続された複数の弱判別器は、接続順に複数のグループに分割されており、
入力画像に対して、前記複数の弱判別器のそれぞれによる処理を当該弱判別器に対応する参照データを用いて実行する処理手段を備え、
前記処理手段は、前記複数のグループの中で前記接続順において先頭のグループである第１のグループに属し、前記複数のカテゴリの全てに対応する弱判別器による処理を、前記カテゴリの順にパイプライン処理にて実行し、
前記処理手段は、前記第１のグループに属する弱判別器群の処理の結果に応じて、前記複数のカテゴリのうち、前記接続順で前記第１のグループに続く第２のグループに属する弱判別器群の処理を実行すべきカテゴリを決定し、
前記処理手段は、前記第２のグループに属する弱判別器群の中で、前記決定されたカテゴリに対応する弱判別器群の処理を、前記カテゴリの順に、パイプライン処理にて実行する
ことを特徴とする情報処理装置。
【請求項２】
前記処理手段は、
前記それぞれのカテゴリの第１のグループに属する弱判別器群の処理の結果に対して評価値を求め、該それぞれのカテゴリのうち、前記第２のグループに属する弱判別器群の処理をパイプライン処理にて実行するカテゴリを、該評価値に基づいて決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理手段は、前記評価値が閾値を超えるカテゴリを、前記第２のグループに属する弱判別器群の処理をパイプライン処理にて実行するカテゴリとして決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理手段は、前記第１のグループに属するそれぞれの弱判別器群の処理の結果に対して評価値を求め、該それぞれの弱判別器群の処理の結果に対する評価値の何れも閾値を超えていれば、該第１のグループと同じカテゴリの前記第２のグループに属する弱判別器群の処理をパイプライン処理にて実行するカテゴリとして決定することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記処理手段は、前記第１のグループに属するそれぞれの弱判別器群の処理の結果に対して評価値を求め、該それぞれの弱判別器群の処理の結果に対する評価値の合計値が閾値を超えていれば、該第１のグループと同じカテゴリの前記第２のグループに属する弱判別器群の処理をパイプライン処理にて実行するカテゴリとして決定することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記処理手段は、前記第２のグループに属する弱判別器群の処理をパイプライン処理にて実行する可能性の高いカテゴリとして予め設定されたカテゴリから先に、該カテゴリの第１のグループに属する弱判別器群の処理をパイプライン処理にて実行することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
物体の複数のカテゴリに対して、それぞれのカテゴリに対応する論理的にカスケード接続された複数の弱判別器によって物体の判別処理を実行する情報処理装置が行う情報処理方法であって、
前記複数のカテゴリのそれぞれに対応する論理的にカスケード接続された複数の弱判別器は、接続順に複数のグループに分割されており、
前記情報処理装置は、入力画像に対して、前記複数の弱判別器のそれぞれによる処理を当該弱判別器に対応する参照データを用いて実行する処理手段を備え、
前記情報処理装置の処理手段が、前記複数のグループの中で前記接続順において先頭のグループである第１のグループに属し、前記複数のカテゴリの全てに対応する弱判別器による処理を、前記カテゴリの順にパイプライン処理にて実行する第１の処理工程と、
前記情報処理装置の処理手段が、前記第１のグループに属する弱判別器群の処理の結果に応じて、前記複数のカテゴリのうち、前記接続順で前記第１のグループに続く第２のグループに属する弱判別器群の処理を実行すべきカテゴリを決定する決定工程と、
前記情報処理装置の処理手段が、前記第２のグループに属する弱判別器群の中で、前記決定工程で決定したカテゴリに対応する弱判別器群の処理を、前記カテゴリの順に、パイプライン処理にて実行する第２の処理工程と
を備えることを特徴とする情報処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の情報処理装置の処理手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像における物体を判別するための技術に関するものである。
【背景技術】
【０００２】
画像中の人体や顔といった特定の物体を判別する技術が提案されている。特に、近年、携帯端末や車載機器等の組み込みシステム向けの高速・低コストな物体判別手法が注目されている。
【０００３】
非特許文献１では、物体検出を高速化するためのアルゴリズムが提案されている。このアルゴリズムによれば、ブースティング学習によって生成された弱判別器を順に処理する。そして、弱判別器の判別結果に基づいて、次の弱判別器を処理するかどうかを判断する。次の弱判別器を処理しないと判断する場合、残りの弱判別器の処理を省略する。
【０００４】
特許文献１では、判別処理を効率良く行う技術が提案されている。解決方法としては、空間並列とパイプライン並列とを効率的に組み合わせることにより、処理時間を短縮する。
【０００５】
非特許文献２では、顔検出を高速化するためのハードウェア実装方法が提案されており、複数カテゴリ（姿勢等）の顔を判別するための弱判別器を空間並列に処理し、処理時間の短縮を図る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２４７９４０号公報
【非特許文献】
【０００７】
【非特許文献１】P. Viola, M. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features”, Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.511-518, December 2001.
【非特許文献２】Junguk Cho, et al., “Hardware acceleration of multi-view face detection,” IEEE 7th Symposium on Application Specific Processors, pp. 66 - 69, July. 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
カスケード接続された複数の弱判別器による判別処理（特許文献１、非特許文献１、非特許文献２）は、高速・低コストな手法として物体判別によく使用されている技術である。判別対象物の多様な姿勢の変動等に対し、判別対象の判別精度を向上させるために、変動をカテゴライズし、カテゴリ毎にカスケード構成された複数の弱判別器を用いて判別を行う手法がある。判別対象となるカテゴリが増加すると共に、弱判別器の総数が増加する。
【０００９】
複数のカテゴリに対応する弱判別器処理を高速化するため、非特許文献２では、カテゴリ毎に演算装置を設け、同時に複数のカテゴリの弱判別器を処理する。しかしながら、各カテゴリの弱判別器の処理の終了時間が異なるので、処理が終了したカテゴリの演算装置が使用されていなく、アイドル時間が長いという課題がある。組み込みシステムで複数のカテゴリに対応する物体判別をリアルタイムで処理するため、限られた演算手段を活用し、高速に処理する必要がある。
【００１０】
本発明はこのような問題に鑑みてなされたものであり、画像における物体をより高速に判別するための技術を提供する。
【課題を解決するための手段】
【００１１】
本発明の一様態は、物体の複数のカテゴリに対して、それぞれのカテゴリに対応する論理的にカスケード接続された複数の弱判別器によって物体の判別処理を実行する情報処理装置であって、
前記複数のカテゴリのそれぞれに対応する論理的にカスケード接続された複数の弱判別器は、接続順に複数のグループに分割されており、
入力画像に対して、前記複数の弱判別器のそれぞれによる処理を当該弱判別器に対応する参照データを用いて実行する処理手段を備え、
前記処理手段は、前記複数のグループの中で前記接続順において先頭のグループである第１のグループに属し、前記複数のカテゴリの全てに対応する弱判別器による処理を、前記カテゴリの順にパイプライン処理にて実行し、
前記処理手段は、前記第１のグループに属する弱判別器群の処理の結果に応じて、前記複数のカテゴリのうち、前記接続順で前記第１のグループに続く第２のグループに属する弱判別器群の処理を実行すべきカテゴリを決定し、
前記処理手段は、前記第２のグループに属する弱判別器群の中で、前記決定されたカテゴリに対応する弱判別器群の処理を、前記カテゴリの順に、パイプライン処理にて実行する
ことを特徴とする。
【発明の効果】
【００１２】
本発明の構成によれば、画像における物体をより高速に判別することができる。
【図面の簡単な説明】
【００１３】
【図１】物体判別装置が入力画像に対して行う物体判別処理のフローチャート。
【図２】弱判別器群の一例を示す。
【図３】物体判別処理の一例を説明する図。
【図４】カテゴリ毎に該カテゴリに属する弱判別器を処理する一般的な処理を示す図。
【図５】物体判別処理の一例を説明する図。
【図６】コンピュータ装置のハードウェア構成例を示すブロック図。
【図７】物体判別装置の構成例を示すブロック図。
【図８】物体判別処理において各サイクルにおける状態を示す図。
【図９】物体判別処理の一例を説明する図。
【図１０】物体判別処理の一例を説明する図。
【図１１】ステージ１及びステージ２のそれぞれに複数の弱判別器を設けた構成を示す図。
【図１２】ステージ数をＰ（Ｐは３以上の整数）とした構成を示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１５】
［第１の実施形態］
本実施形態では、論理的にカスケード接続された複数の弱判別器を、物体のカテゴリ毎に有する情報処理装置の一例について説明する。より具体的には、複数の弱判別器を複数のグループに分割し、それぞれのカテゴリの第１のグループに属する弱判別器群の処理をパイプライン処理にて実行する。そして、該それぞれのカテゴリの第１のグループに属する弱判別器群の処理の結果に応じて、第２のグループに属する弱判別器群の処理をパイプライン処理にて実行するカテゴリを決定する。そして、該決定したカテゴリの第２のグループに属する弱判別器群の処理をパイプライン処理にて実行することを特徴とする情報処理装置の一例について説明する。
【００１６】
本実施形態では、このような情報処理装置を、入力画像に含まれている物体のカテゴリを判別する物体判別装置に適用した場合について説明する。先ず、本実施形態に係る物体判別装置の構成例について、図７のブロック図を用いて説明する。
【００１７】
バッファ７０１は、外部装置から入力された若しくは本装置内のメモリから転送された入力画像を格納するためのメモリである。以下では、この入力画像には、そのカテゴリを判別する対象となる物体が含まれているものとする。
【００１８】
弱判別器処理部７０３は、論理的にカスケード接続された複数の弱判別器を、物体のカテゴリ毎に有している。そして弱判別器処理部７０３は、ＲＡＭ（ＲＡＮＤＯＭ  ＡＣＣＥＳＳ  ＭＥＭＯＲＹ）７０４に格納されている辞書データ、ＬＵＴ（ＬＯＯＫ−ＵＰ  ＴＡＢＬＥ）データを用いて、カテゴリ毎の弱判別器群を時分割に動作させる。これにより弱判別器処理部７０３は、バッファ７０１に格納されている入力画像に含まれている物体に対する判別処理を行う。以下では、弱判別器を動作させることを「弱判別器を処理（実行）する」と表記する場合がある。また、辞書データ、ＬＵＴデータについては後述する。
【００１９】
ここで、弱判別器処理部７０３が有するカテゴリ毎の弱判別器群について、図２の例を用いて説明する。図２では、カテゴリ数を８としており、これは即ち、弱判別器処理部７０３は、入力画像に含まれている物体について、８個のカテゴリのそれぞれに対する判別処理を行うことを意味している。また、図２では、８個のカテゴリ（カテゴリ１〜８）のそれぞれに対して、カスケード接続された２個の弱判別器が設けられており、最初に動作する弱判別器２０１（ステージ１の弱判別器）と、次に動作する弱判別器２０２（ステージ２の弱判別器）と、の２つのグループから成る。図２では、カテゴリｃ（１≦ｃ≦８）に対応する２つの弱判別器のうちステージ１の弱判別器をＣｃ，１、ステージ２の弱判別器をＣｃ，２と表記する。
【００２０】
本実施形態では、図２に例示する如く、カテゴリ数を８とし、それぞれのカテゴリｃ（１≦ｃ≦８）に対して、ステージ１の弱判別器Ｃｃ，１、ステージ２の弱判別器Ｃｃ，２がカスケード接続された弱判別器群を設けるものとする。そして、このような構成において、本実施形態では、それぞれのカテゴリｃにおけるステージ１の弱判別器Ｃｃ、１をパイプライン処理にて実行し、それぞれのカテゴリｃにおけるステージ１の弱判別器Ｃｃ，１の処理結果に応じて、それぞれのカテゴリｃのうちステージ２の弱判別器Ｃｃ，２をパイプライン処理にて実行するカテゴリ（すなわち、ステージ２において判別対象となるカテゴリ）を決定し、該決定したカテゴリにおけるステージ２の弱判別器Ｃｃ，２をパイプライン処理にて実行する。
【００２１】
また、それぞれのステージにおいてパイプライン処理を実行するカテゴリ順については、図２においてより上段に記したカテゴリをより先に実行するものとする。
【００２２】
図７に戻って、ＲＡＭ７０４は、上記の如く、辞書データやＬＵＴデータを格納する。また、ＲＡＭ７０４は、制御部７０２や弱判別器処理部７０３が各種の処理を実行する際に用いるワークエリアも有する。このようにＲＡＭ７０４は、各種のエリアを適宜提供することができる。
【００２３】
判別結果保持部７０５は、弱判別器処理部７０３による処理結果を格納するためのものである。
【００２４】
初期化情報保持部７０６は、ステージ１の弱判別器Ｃｃ，１の実行順序を示す情報を格納するためのものである。
【００２５】
制御部７０２は、上記の各部を含む物体判別装置全体の動作制御を行う。
【００２６】
次に、本実施形態に係る物体判別装置が入力画像に対して行う物体判別処理について、同処理のフローチャートを示す図１を用いて説明する。
【００２７】
＜ステップＳ１０１＞
制御部７０２は、それぞれのカテゴリｃのステージ１の弱判別器Ｃｃ，１の実行順序を示す情報（実行順序情報）を初期化情報保持部７０６に格納する。ここでは、カテゴリ番号（カテゴリインデックス）を処理順に並べたものを、ステージ１の弱判別器Ｃｃ，１の実行順序を示す情報として初期化情報保持部７０６に格納する。本実施形態では、Ｃ１，１、Ｃ２，１、Ｃ３，１、Ｃ４，１、Ｃ５，１、Ｃ６，１、Ｃ７，１、Ｃ８，１、の順にパイプライン処理にて実行するので、「１→２→３→４→５→６→７→８」を示す情報を実行順序情報として初期化情報保持部７０６に格納する。このような実行順序情報は、ユーザが不図示の操作部を用いて入力しても良いし、物体判別装置が何らかの基準に従って決定しても良い。
【００２８】
以下、ステップＳ１０２〜Ｓ１０５の間で、弱判別器処理部７０３は、各カテゴリのステージ１の弱判別器Ｃ１，１〜Ｃ８，１を、この順でパイプライン処理にて実行する。
【００２９】
＜ステップＳ１０３＞
弱判別器処理部７０３は先ず、初期化情報保持部７０６に格納されている実行順序情報を参照し、今回処理するカテゴリのカテゴリインデックスを読み出す。本実施形態の場合、第１回目のステップＳ１０３では、カテゴリインデックス＝１を読み出し、Ｎ（１＜Ｎ≦８）回目のステップＳ１０３では、カテゴリインデックス＝Ｎを読み出すことになる。
【００３０】
＜ステップＳ１０４＞
ステップＳ１０３で弱判別器処理部７０３が初期化情報保持部７０６から読み出したカテゴリインデックスをｃとすると、弱判別器処理部７０３は、弱判別器Ｃｃ，１を実行して、入力画像に対する弱判別器Ｃｃ，１の判別結果を求める。ここで、ステップＳ１０４では、ステップＳ１０６〜Ｓ１１１の処理を行う。
【００３１】
＜ステップＳ１０６＞
弱判別器処理部７０３は、ＲＡＭ７０４から、弱判別器Ｃｃ，１に対応する辞書データを読み出す。本実施形態では、「弱判別器Ｃｃ，１に対応する辞書データ」とは、「入力画像において弱判別器Ｃｃ，１に対応する画素位置を示すデータ」であり、弱判別器ごとに異なるものとする。一般に、弱判別器Ｃｃ，ｉに対応する辞書データＤｃ，ｉは、以下の（式１）のように表される。
【００３２】
【数１】
0006603477.tif 000002
【００３３】
Ｘｃ，ｉ、Ｙｃ，ｉはそれぞれ、入力画像において、弱判別器Ｃｃ，ｉに対応するｘ座標値、ｙ座標値を示す。なお、ここでは説明を簡単にするために、弱判別器に対する辞書データは、入力画像上の１つの画素の画素位置としているが、これに限るものではなく、複数画素の画素位置を辞書データとしても良い。
【００３４】
＜ステップＳ１０７＞
弱判別器処理部７０３は、バッファ７０１に格納されている入力画像から、辞書データＤｃ，１が示す画素位置の画素値ｆ（Ｘｃ，１、Ｙｃ，１）を読み出す。なお、画素値の代わりに、１つ若しくは複数の画素の画素値を用いて得られる特徴量を用いても良い。
【００３５】
＜ステップＳ１０８＞
弱判別器処理部７０３は、ＲＡＭ７０４から、弱判別器Ｃｃ，１に対応するＬＵＴデータを読み出す。本実施形態では、「弱判別器Ｃｃ，１に対応するＬＵＴデータ」とは、「弱判別器Ｃｃ，１についてステップＳ１０７で読み出した画像特徴量（ここでは画素値）を、対象とする物体らしさに相当するスコア（評価値）に変換するための関数を表すデータ」である。一般に、弱判別器Ｃｃ，ｉに対応するＬＵＴデータが表す関数Ｌｃ，ｉは、以下の（式２）のように表される。
【００３６】
【数２】
0006603477.tif 000003
【００３７】
Ｓｃ，ｉは、画素値ｆ（Ｘｃ，ｉ、Ｙｃ，ｉ）を関数Ｌｃ，ｉを用いて変換したスコアである。
【００３８】
＜ステップＳ１０９＞
弱判別器処理部７０３は、画素値ｆ（Ｘｃ，１、Ｙｃ，１）を関数Ｌｃ，１を用いて変換することで、スコアＳｃ，１を求める。更に弱判別器処理部７０３は、ＲＡＭ７０４から、弱判別器Ｃｃ，１に対応する閾値Ｔｃ，１を読み出す。
【００３９】
＜ステップＳ１１０＞
弱判別器処理部７０３は、スコアＳｃ，１と閾値Ｔｃ，１との大小比較を行い、Ｓｃ，１＞Ｔｃ，１であれば処理はステップＳ１１１に進む。一方、Ｓｃ，１≦Ｔｃ，１であれば、処理はステップＳ１０５に進み、次の順番のカテゴリについてステップＳ１０３以降の処理を行う。
【００４０】
＜ステップＳ１１１＞
弱判別器処理部７０３は、カテゴリインデックスｃと、弱判別器Ｃｃ，１による判別結果と、を関連づけて判別結果保持部７０５に格納する。
【００４１】
ステップＳ１０２〜Ｓ１０５のループを、カテゴリインデックス＝１〜８のそれぞれについて行うことで、カテゴリ１〜８のうちスコアが閾値を超えているカテゴリについて、該カテゴリのカテゴリインデックスｃと、該カテゴリのステージ１の弱判別器による判別結果と、が関連づけられて判別結果保持部７０５に格納される。
【００４２】
以下、ステップＳ１１２〜Ｓ１１７の間で弱判別器処理部７０３は、ステージ２以降の各ステージの判別処理を実行する。本実施形態では、判別結果保持部７０５に格納されているカテゴリインデックスに対応するカテゴリについてステージ２の判別処理をパイプライン処理にて実行する。
【００４３】
＜ステップＳ１１４＞
弱判別器処理部７０３は、判別結果保持部７０５に格納されているカテゴリインデックスのうち、上記の実行順序情報が示す実行順序においてより先の実行順序となっている未選択のカテゴリインデックスｃを選択する。
【００４４】
＜ステップＳ１１５＞
弱判別器処理部７０３は、弱判別器Ｃｃ，２を実行して、入力画像に対する弱判別器Ｃｃ，２の判別結果を求める。ここで、ステップＳ１１５でも、ステップＳ１０６〜Ｓ１１１の処理を行い、対象カテゴリはカテゴリ２となる。この場合、ステップＳ１０６では、弱判別器Ｃｃ，２に対応する辞書データを読み出し、ステップＳ１０７では、画素値ｆ（Ｘｃ，２、Ｙｃ，２）を読み出し、ステップＳ１０８では、弱判別器Ｃｃ，２に対応するＬＵＴデータを読み出す。そしてステップＳ１０９では、画素値ｆ（Ｘｃ，２、Ｙｃ，２）を関数Ｌｃ，２を用いて変換してスコアＳｃ，２を求め、ステップＳ１１０では、スコアＳｃ，２と閾値Ｔｃ，２との大小比較を行う。そして、Ｓｃ，２＞Ｔｃ，２であれば処理はステップＳ１１１に進み、カテゴリインデックスｃと、弱判別器Ｃｃ，２による判別結果と、を関連づけて判別結果保持部７０５に格納する。一方、Ｓｃ，２≦Ｔｃ，２であれば、処理はステップＳ１１４に進み、次の順番のカテゴリについてステップＳ１１５以降の処理を行う。
【００４５】
ステップＳ１１２〜Ｓ１１７のループを、判別結果保持部７０５に格納されている全てのカテゴリインデックスに対応するカテゴリについて行うことで、該カテゴリにおける判別結果（最終判別結果）が判別結果保持部７０５に得られることになるので、弱判別器処理部７０３は、判別結果保持部７０５に格納されているそれぞれのカテゴリの最終判別結果を物体判別結果として出力する。
【００４６】
以上説明した処理及び構成により、処理時間を短縮することができる。
【００４７】
次に、図２に例示した弱判別器群を用いた物体判別処理の一例について、図３、５を用いて説明する。
【００４８】
図３では、弱判別器Ｃ１，１〜Ｃ８，１、Ｃ１，２〜Ｃ８，２、のうち、黒塗り（斜線）のもの（３０１）は、スコアが閾値よりも大きい弱判別器、実線で囲った白塗りのもの（３０２）は、スコアが閾値以下であった弱判別器、点線で囲った白塗りのもの（３０３）は、実行していない弱判別器、を示している。
【００４９】
ここでは、一個の弱判別器を実行するには６サイクルの処理時間を要するものとする。サイクル１では、ステージ１の第１番目のカテゴリの弱判別器（Ｃ１，１）の処理を開始し、サイクル２では、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を開始する。このように、パイプライン処理を行うことにより、サイクル７以降、第１番目から第８番目までのカテゴリのステージ１の弱判別器（Ｃ１，１〜Ｃ８，１）の処理を順番に終了する。
【００５０】
ステージ１の第１番目のカテゴリの弱判別器（Ｃ１，１）のスコアは閾値を超えないため、第１番目のカテゴリのステージ２の弱判別器（Ｃ１，２）の処理を実行する必要がない。サイクル７では、ステージ１の第１番目のカテゴリの弱判別器（Ｃ１，１）の処理を終了する。この場合、第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）の情報（カテゴリインデックス及び判別結果）を判別結果保持部７０５に格納しない。
【００５１】
第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）のスコアは閾値を超えたため、第２番目のカテゴリのステージ２の弱判別器（Ｃ２，２）の処理を実行する必要がある。サイクル８では、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を終了する。第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）のカテゴリインデックスと、弱判別器Ｃ２，１による判別結果と、を関連づけて、ＦＩＦＯ（ＦＩＲＳＴ−ＩＮ  ＦＩＲＳＴ−ＯＵＴ）の構成である判別結果保持部７０５に格納する。図５では、ＦＩＦＯは３段の構成を有しており、最初に入力されたデータｄ１はエントリーＦ１に格納され、次に入力されたデータｄ２はエントリーＦ２に格納され、次に入力されたデータｄ３はエントリーＦ３に格納される。そして、次にデータｄ４が入力されると、エントリーＦ２，Ｆ３に格納されていたデータｄ２，ｄ３をそれぞれエントリーＦ１，Ｆ２に上書きし、エントリーＦ３にデータｄ４を格納する。以降、同様にしてエントリーＦ１〜Ｆ３に対するデータ書き込みを行う。
【００５２】
第３番目のカテゴリのステージ１の弱判別器（Ｃ３，１）のスコアは閾値を超えたため、第３番目のカテゴリのステージ２の弱判別器（Ｃ３，２）の処理を実行する必要がある。サイクル９では、第３番目のカテゴリのステージ１の弱判別器（Ｃ３，１）の処理を終了する。第３番目のカテゴリのステージ１の弱判別器（Ｃ３，１）のカテゴリインデックスと、弱判別器Ｃ３，１による判別結果と、を関連づけて判別結果保持部７０５に格納する。
【００５３】
サイクル９では、判別結果保持部７０５に第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の情報（カテゴリインデックス及び判別結果）と第３番目のカテゴリのステージ１の弱判別器（Ｃ３，１）の情報（カテゴリインデックス及び判別結果）と、が格納されている。
【００５４】
このように、第１番目から第８番目までのカテゴリのステージ１に対し、スコアが閾値を超えた弱判別器について上記の情報を判別結果保持部７０５に格納する。サイクル１２では、第６番目のカテゴリのステージ１の弱判別器（Ｃ６，１）の情報が、判別結果保持部７０５の第３番目のエントリー（Ｆ３）に格納される。
【００５５】
サイクル１４では、第８番目のカテゴリのステージ１の弱判別器（Ｃ８，１）の処理が終了するので、ステージ２に進む。図５の場合、判別結果保持部７０５には、閾値を超えたカテゴリのカテゴリインデックスが格納されており、該カテゴリインデックスが格納されているエントリーの順番（Ｆ１−Ｆ３）にサイクル１４、サイクル１５、サイクル１６で読み出し、読み出されたカテゴリインデックスに対応するカテゴリについてステージ２の弱判別器を実行する。サイクル１５では、第２番目のカテゴリのステージ２の弱判別器（Ｃ２，２）の処理を開始する。以降、サイクル１６，１７のそれぞれにおいて、第３番目のカテゴリのステージ２の弱判別器（Ｃ３，２）の処理、第６番目のカテゴリのステージ２の弱判別器（Ｃ６，２）の処理、を開始する。以上、全ての弱判別器を２３サイクルの時間で処理可能である。
【００５６】
ここで、比較のために、図３に基づく物体判別の処理例において、カテゴリ毎に該カテゴリに属する弱判別器を処理する一般的な場合の処理について、図４を用いて説明する。ここでも、一個の弱判別器を処理するためには６サイクルの処理時間を要するものとする。サイクル１では、ステージ１の第１番目のカテゴリの弱判別器処理を開始する。
【００５７】
カテゴリ毎に弱判別器を処理する場合では、第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）のスコアは閾値を超えないため、第１番目のカテゴリのステージ２の弱判別器（Ｃ１，２）の処理を実行する必要がない。第１番目のステージの弱判別器処理を終了しないと結果が得られないので、第２番目のステージの弱判別器処理をするかどうかを判断できない。そのため、パイプライン処理することができない。サイクル７では、ステージ１の第１番目のカテゴリの弱判別器（Ｃ１，１）の処理を終了する。第１番目のカテゴリのステージ２の弱判別器（Ｃ１，２）の処理を省略し、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を開始する。
【００５８】
第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）のスコアは閾値を超えたため、ステージ２の第２番目のカテゴリの弱判別器（Ｃ２，２）の処理を実行する必要がある。サイクル１３では、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を終了し、ステージ２の第２番目のカテゴリの弱判別器（Ｃ２，２）の処理を開始する。これにより、全ての弱判別器を処理するには、６７サイクルの時間を要する。
【００５９】
以上説明したように、本実施形態によれば、ステージを単位にそれぞれのカテゴリの弱判別器の実行をパイプライン処理にて実行し、該実行の結果に応じて、次のステージで弱判別器を実行するカテゴリを決定するので、次のステージで弱判別器を実行するカテゴリを早期に確定することができると共に、次のステージでも弱判別器をパイプライン実行することができ、処理が高速化する。
【００６０】
また、本実施形態では、ステージ１の弱判別器処理を終了してから、ステージ２の弱判別器処理を開始するため、後述する第２の実施形態と比べて、装置の制御及び判別結果保持部７０５の構成が簡単になる。
【００６１】
＜変形例＞
上記の通り、弱判別器に対する辞書データは、入力画像上の１つの画素の画素位置に限るものではない。例えば、複数枚の画像における１以上の画素位置としても良いし、動画像を処理する時の時系列空間における１以上の位置としても良い。
【００６２】
また、スコアＳｃ，ｉの求め方は、上記のような方法に限るものではない。例えば、複数枚の画像における複数組の座標と、ＬＵＴデータが示す関数と、を用いて求めても良い。また、入力画像は、積分画像や特徴画像等であっても良い。
【００６３】
［第２の実施形態］
以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。物体判別処理を行った結果、それぞれのカテゴリの弱判別器の状態が図３に例示した状態となった場合に、該物体判別処理において各サイクルにおける状態を、図８を用いて説明する。
【００６４】
サイクル１では、第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）の処理を開始し、サイクル２では、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を開始する。このように、パイプライン処理を実行することにより、サイクル７から、第１番目から第８番目までのカテゴリのステージ１の弱判別器（Ｃ１，１〜Ｃ８，１）の処理を順番に終了する。
【００６５】
サイクル７では、第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）の処理を終了する。第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）のスコアは閾値を超えないため、第１番目のカテゴリのステージ２の弱判別器（Ｃ１，２）の処理を実行する必要がなく、第１番目のカテゴリのステージ１の弱判別器（Ｃ１，１）の情報を判別結果保持部７０５に格納しない。
【００６６】
サイクル８では、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の処理を終了する。第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）のスコアは閾値を超えたため、第２番目のカテゴリのステージ２の弱判別器（Ｃ２，２）の処理をする必要があり、第２番目のカテゴリのステージ１の弱判別器（Ｃ２，１）の情報を判別結果保持部７０５に格納する。
【００６７】
サイクル９では、判別結果保持部７０５から弱判別器Ｃ２，１の物体判別結果を読み出して弱判別器Ｃ２，２の処理を開始すると共に、弱判別器Ｃ３，１の処理を終了し、弱判別器Ｃ３，１のスコアが閾値を超えたため、弱判別器Ｃ３，１の情報を判別結果保持部７０５に格納する。
【００６８】
このように、サイクル９では、「判別結果保持部７０５からの弱判別器Ｃ２，１の物体判別結果の読み出し」と「判別結果保持部７０５への弱判別器Ｃ３，１の情報の格納」との両方を行う。サイクル９では、弱判別器Ｃ２，１の物体判別結果が読み出されたので、判別結果保持部７０５には弱判別器Ｃ３，１の情報だけが格納されている。
【００６９】
サイクル１０では、判別結果保持部７０５から弱判別器３，１の物体判別結果を読み出して弱判別器Ｃ３，２の処理を開始すると共に、弱判別器Ｃ４，１の処理を終了し、弱判別器Ｃ４，１のスコアが閾値を超えないため、弱判別器Ｃ４，１の情報は判別結果保持部７０５に格納しない。
【００７０】
このように、本実施形態では、第１番目から第８番目までのカテゴリのステージ１に関し、スコアが閾値を超えた弱判別器の情報を判別結果保持部７０５に格納すると共に、判別結果保持部７０５から物体判別結果を読み出す。サイクル９で説明したように、ステージ１の弱判別器処理を終了する前に、ステージ２の弱判別器処理を開始することにより、パイプライン効率を向上させることができる。そして、サイクル１８では、弱判別器Ｃ６，２の処理を終了する。以上、全ての弱判別器を１８サイクルで処理可能である。
【００７１】
このように、本実施形態によれば、ステージ２の弱判別器の処理を第１の実施形態よりも早く開始できるため、処理時間が短縮される。
【００７２】
［第３の実施形態］
以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。第１の実施形態では、ステージ１においては、どのカテゴリを先に処理するのかについては別段基準はなかった。本実施形態では、ステージ２に物体判別処理が到達する可能性の高いカテゴリをより先にステージ１で処理するように、それぞれのカテゴリのステージ１の弱判別器に対する実行順序を予め設定しておき、該設定した実行順序を示す情報を初期化情報保持部７０６に格納する。この設定は、予め統計的な手法などでもって行っておく。
【００７３】
図２に例示した弱判別器群を用いた物体判別処理の一例について、図９、１０を用いて説明する。
【００７４】
図９では、弱判別器Ｃ１，１〜Ｃ８，１、Ｃ１，２〜Ｃ８，２、のうち、黒塗り（斜線）のもの（９０１）は、スコアが閾値よりも大きい弱判別器、実線で囲った白塗りのもの（９０２）は、スコアが閾値以下であった弱判別器、点線で囲った白塗りのもの（９０３）は、実行していない弱判別器、を示している。図９では、ステージ２に物体判別処理が到達する可能性の高いカテゴリ（カテゴリ２，３，６）をその他のカテゴリよりも先にステージ１で処理するように、カテゴリ１〜８の実行順序を決定している。図９では、カテゴリ２，３，６，１，４，５，７，８の順にステージ１で実行している。このような構成によれば、第１の実施形態よりも早く、ステージ２に処理が到達する可能性の高いカテゴリの弱判別器の情報を判別結果保持部７０５に格納することができるため、ステージ２の弱判別器を早めに処理することが可能になる。
【００７５】
図１０に示す如く、サイクル１では、弱判別器Ｃ２，１の処理を開始し、サイクル２では、弱判別器Ｃ３，１の処理を開始し、サイクル３では、弱判別器Ｃ６，１の処理を開始する。このように、予め決定した実行順序に基づくカテゴリ順でパイプライン処理をすることにより、サイクル７から、弱判別器Ｃ１，１〜Ｃ８，１の処理を、初期化情報保持部７０６に格納しておいた情報が示す実行順序に基づくカテゴリ順で終了する。
【００７６】
上記の通り、実行順序は次のステージまで通過する可能性の高さに対応しており、予め複数の評価データを用いて取得し、統計データや、前フレームの判別結果、近傍フレームの判別結果、及びカテゴリの類似度等によってその順位を決定することができる。
【００７７】
サイクル７では、弱判別器Ｃ２，１の処理を終了する。弱判別器Ｃ２，１のスコアが閾値を超えたため、弱判別器Ｃ２，１の情報を判別結果保持部７０５に格納する。
【００７８】
サイクル８では、弱判別器Ｃ３，１の処理を終了する。弱判別器Ｃ３，１のスコアが閾値を超えたため、弱判別器Ｃ３，１の情報を判別結果保持部７０５に格納する。
【００７９】
サイクル９では、判別結果保持部７０５から弱判別器Ｃ２，１の物体判別結果を読み出して弱判別器Ｃ２，２の処理を開始すると共に、弱判別器Ｃ６，１の処理を終了し、弱判別器Ｃ６，１のスコアが閾値を超えたため、弱判別器Ｃ６，１の情報を判別結果保持部７０５に格納する。
【００８０】
サイクル１０では、判別結果保持部７０５から弱判別器Ｃ３，１の物体判別結果を読み出して弱判別器Ｃ３，２の処理を開始すると共に、弱判別器Ｃ１，１の処理を終了し、弱判別器Ｃ１，１のスコアは閾値を超えないため、弱判別器Ｃ１，１の情報は判別結果保持部７０５に格納しない。
【００８１】
サイクル１１では、判別結果保持部７０５から弱判別器Ｃ６，１の物体判別結果を読み出して弱判別器Ｃ６，２の処理を開始する。このような構成により、本実施形態では、第２の実施形態よりも１サイクル早く弱判別器Ｃ６，２の処理を開始することができる。そして更に、サイクル１１では、弱判別器Ｃ４，１の処理を終了し、弱判別器Ｃ４，１のスコアは閾値を超えないため、弱判別器Ｃ４，１の情報は判別結果保持部７０５に格納しない。
【００８２】
このように、本実施形態では、第１番目から第８番目までのカテゴリのステージ１に関し、スコアが閾値を超えた弱判別器の情報を判別結果保持部７０５に格納すると共に、判別結果保持部７０５から物体判別結果を読み出す。このような構成によれば、第１の実施形態よりも、ステージ２の弱判別器を早めに処理することが可能になり、これにより、弱判別器処理の効率を更に向上させることができる。そしてサイクル１７では、弱判別器Ｃ６，２の処理を終了する。以上、全ての弱判別器を１７サイクルの時間で処理可能である。
【００８３】
このように、本実施形態によれば、ステージ２まで通過する可能性が高いカテゴリの弱判別器を優先処理するので、パイプライン処理の効率を向上させることができる。
【００８４】
＜上記の各実施形態の変形例１＞
上記の各実施形態における「物体のカテゴリ」とは、幾つかの数に分類可能な物体の属性であれば、如何なるものであっても良く、例えば、物体の様々な姿勢であっても良い。また、物体のサイズや方向や照明等が異なる同一種類の物体または異なる種類の物体を対象とし、該対象となる物体についてサイズ、照明の方向、種類などを「物体のカテゴリ」として用いても良い。
【００８５】
＜上記の各実施形態の変形例２＞
上記の各実施形態では、カテゴリ毎のステージ１の弱判別器の個数、カテゴリ毎のステージ２の弱判別器の個数、は共に１としたが、複数であっても構わない。ステージ１及びステージ２のそれぞれに複数の弱判別器を設けた構成を図１１に示す。図１１ではステージ１及びステージ２のそれぞれにＭ（Ｍは３以上の整数）個の弱判別器を設けている。Ｃｃ，ｉ、ｊ（図１１では１≦ｃ≦Ｎ、１≦ｉ≦２、１≦ｊ≦Ｍ）は、カテゴリｃのステージｉに属する弱判別器群のうち左から（入力側から）ｊ番目の弱判別器を表している。
【００８６】
このような場合に、図１のフローチャートに従った処理を以下のように変形させることもできる。
【００８７】
ステップＳ１０６（ステップＳ１０４内）では、弱判別器処理部７０３は、ＲＡＭ７０４から、弱判別器Ｃｃ，１、１〜弱判別器Ｃｃ，１、Ｍのそれぞれに対応する辞書データＤｃ，１，１…Ｄｃ、１，Ｍを読み出す。辞書データの性質は第１の実施形態で説明したとおりである。
【００８８】
ステップＳ１０７（ステップＳ１０４内）では、弱判別器処理部７０３は、バッファ７０１に格納されている入力画像において、辞書データＤｃ，１，１…Ｄｃ、１，Ｍのそれぞれが示す画素位置の画素値ｆ（Ｘｃ，１，１、Ｙｃ，１，１）…ｆ（Ｘｃ，１，Ｍ、Ｙｃ，１，Ｍ）を読み出す。
【００８９】
ステップＳ１０８（ステップＳ１０４内）では、弱判別器処理部７０３は、ＲＡＭ７０４から弱判別器Ｃｃ，１、１〜弱判別器Ｃｃ，１、Ｍのそれぞれに対応するＬＵＴデータを読み出すのであるが、弱判別器Ｃｃ，ｉ、ｊに対応するＬＵＴデータとは、「弱判別器Ｃｃ，ｉ、ｊについてステップＳ１０７で読み出した画像特徴量（ここでは画素値）を、対象とする物体らしさに相当するスコアに変換するための関数を表すデータ」である。
【００９０】
ステップＳ１０９（ステップＳ１０４内）では、弱判別器処理部７０３は、画素値ｆ（Ｘｃ，１，１、Ｙｃ，１，１）…ｆ（Ｘｃ，１，Ｍ、Ｙｃ，１，Ｍ）のそれぞれを、弱判別器Ｃｃ，１、１〜弱判別器Ｃｃ，１、Ｍのそれぞれに対応するＬＵＴデータが示す関数Ｌｃ，１，１〜Ｌｃ，１，Ｍを用いて変換することで、弱判別器Ｃｃ，１、１〜弱判別器Ｃｃ，１、Ｍのそれぞれに対するスコアＳｃ，１，１〜Ｓｃ，ｉ，Ｍを求める（以下の（式４）を参照）。そしてこのようにして求めたスコアＳｃ，１，１〜Ｓｃ，１，Ｍの合計値を、カテゴリｃのステージ１におけるスコアＳｃ，１として求める（以下の（式３）を参照）。
【００９１】
【数３】
0006603477.tif 000004
【００９２】
【数４】
0006603477.tif 000005
【００９３】
以降は第１の実施形態と同様である。なお、ステップＳ１１６でもステップＳ１０６〜Ｓ１１１の処理を行う場合、上記のステップＳ１０６〜Ｓ１０９の変形例をステージ２以降について行うことになる。
【００９４】
なお、ステップＳ１０９では（式４）を用いてスコアＳｃ，１，１〜Ｓｃ，１，Ｍを求め、ステップＳ１１０では、スコアＳｃ，１，１〜Ｓｃ，１，Ｍのそれぞれが、閾値Ｔｃ、１，１〜Ｔｃ，１，Ｍ（それぞれ、弱判別器Ｃｃ、１，１〜Ｃｃ，１，Ｍに対応する閾値）を超えていれば、処理はステップＳ１１１に進む、としても良い。
【００９５】
＜上記の各実施形態の変形例３＞
上記の各実施形態では、ステージ数を２としたが、ステージ数は２に限るものではなく、それ以上の数としても良い。ステージ数をＰ（Ｐは３以上の整数）とした構成を図１２に示す。また、図１２では、それぞれのステージに複数（Ｍ個）の弱判別器を設けている。
【００９６】
［第４の実施形態］
図７に示した構成でバッファ７０１、ＲＡＭ７０４、判別結果保持部７０５、初期化情報保持部７０６、のそれぞれを１以上のメモリで構成し、制御部７０２をＣＰＵ等のプロセッサで構成する場合、弱判別器処理部７０３はハードウェアで構成しても良い。しかし、弱判別器処理部７０３はソフトウェアで構成しても構わない。
【００９７】
どのようなケースであっても物体判別装置に適用可能なコンピュータ装置のハードウェア構成例について、図６のブロック図を用いて説明する。
【００９８】
入力部６０１は、本装置にコンピュータプログラムやデータを入力可能な装置であれば如何なる機器であっても良い。例えば、入力部６０１は、ユーザが様々な指示や情報を本装置に入力するために操作するキーボードやマウス、本装置に入力画像を入力するための機器（ディジタルカメラなど）である。
【００９９】
データ保存部６０２は、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲやＤＶＤ、メモリーカード、ＣＦカード、スマートメディア、ＳＤカード、メモリスティック、ｘＤピクチャーカード、ＵＳＢメモリ等の１以上のメモリ装置で構成されるものであり、図７のバッファ７０１、判別結果保持部７０５、初期化情報保持部７０６としても機能可能なメモリ装置である。データ保存部６０２には、ＯＳ（オペレーティングシステム）や、様々なコンピュータプログラムやデータが保存されている。弱判別器処理部７０３をソフトウェアで構成する場合、このコンピュータプログラムには、弱判別器処理部７０３が行うものとして上述した各処理をＣＰＵ６０５に実行させるためのコンピュータプログラムが含まれている。また、このデータには、入力画像のデータや、上記の説明で既知の情報として取り扱った情報（閾値など）、が含まれている。データ保存部６０２に保存されているコンピュータプログラムやデータは、ＣＰＵ６０５による制御に従って適宜ＲＡＭ６０７にロードされ、ＣＰＵ６０５による処理対象となる。
【０１００】
なお、ＲＡＭ６０７の一部をデータ保存部６０２として用いても構わないし、通信部６０３の通信相手としての機器の記憶装置を、通信部６０３を介して利用する場合に、この記憶装置をデータ保存部６０２としても構わない。
【０１０１】
通信部６０３は、ＬＡＮやインターネットなどのネットワークを介して外部機器との間でデータ通信を行うためのもので、例えば、データ保存部６０２に保存されているものとして説明したコンピュータプログラムやデータを外部機器からダウンロードする。
【０１０２】
表示部６０４は、ＣＲＴや液晶画面、タッチパネル画面などにより構成されており、ＣＰＵ６０５による処理結果を画像や文字などでもって表示することができる。なお、表示部６０４をタッチパネル画面とする場合、入力部６０１のユーザ入力受け付け機能を兼ねることになる。
【０１０３】
ＣＰＵ６０５は、上記の制御部７０２としても機能するものである。ＣＰＵ６０５は、ＲＡＭ６０７やＲＯＭ６０６に格納されているコンピュータプログラムやデータを用いて処理を実行することで、本装置全体の動作制御を行うと共に、物体判別装置が行うものとして上述した各処理を実行若しくは制御する。なお、ＣＰＵ６０５は単数であっても良いし、複数であっても良い。
【０１０４】
ＲＯＭ６０６には、本装置の設定データやブートプログラムなどが格納されている。
【０１０５】
ＲＡＭ６０７は、上記のＲＡＭ７０４としても機能するものである。ＲＡＭ６０７は、データ保存部６０２やＲＯＭ６０６からロードされたコンピュータプログラムやデータ、通信部６０３が外部機器からダウンロードしたコンピュータプログラムやデータ、を格納するためのエリアを有する。さらには、ＲＡＭ６０７は、ＣＰＵ６０５や判別処理部６０８が各種の処理を実行する際に用いるワークエリアを有する。すなわち、ＲＡＭ６０７は、各種のエリアを適宜提供することができる。
【０１０６】
判別処理部６０８は、上記の弱判別器処理部７０３として機能するものであり、ＣＰＵ６０５からの指示に基づいて動作する。より詳しくは、判別処理部６０８は、ＣＰＵ６０５から処理開始指示を受けると、ＲＡＭ６０７に格納されている入力画像を用いて物体判別処理を行い、その処理結果をＲＡＭ６０７に出力する。ＣＰＵ６０５は、判別処理部６０８によってＲＡＭ６０７に出力された物体判別処理結果を用いて画像処理や画像認識などの処理を行う。ＣＰＵ６０５による処理結果はＲＡＭ６０７やデータ保存部６０２に格納しても良いし、通信部６０３を介して外部機器に対して出力しても良い。
【０１０７】
なお、図６では入力部６０１、データ保存部６０２、表示部６０４が全て１つの装置内に含まれるものとしているが、これらの機能部が公知の通信方式による通信路で接続されており、全体としてこのような構成となっているのであっても構わない。
【０１０８】
また、以上説明した実施形態や変形例は、その一部若しくは全部を適宜組み合わせて使用しても構わないし、場合によってはその一部を削除して使用しても構わない。
【０１０９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１０】
７０３：弱判別器処理部
【図１】
0006603477.tif 000006
【図２】
0006603477.tif 000007
【図３】
0006603477.tif 000008
【図４】
0006603477.tif 000009
【図５】
0006603477.tif 000010
【図６】
0006603477.tif 000011
【図７】
0006603477.tif 000012
【図８】
0006603477.tif 000013
【図９】
0006603477.tif 000014
【図１０】
0006603477.tif 000015
【図１１】
0006603477.tif 000016
【図１２】
0006603477.tif 000017