(57)【要約】【課題】処理の効率を向上させることができる情報処理装置及び情報処理方法等を提供する。【解決手段】ＲＯＭ１０１には、処理設定データ記憶部１０４、通過率記憶部１０７及び処理時間記憶部１０８が設けられている。ＣＰＵ１００は、ＲＯＭ１０１に記憶された算出プログラムを実行することにより算出部１０９として動作することが可能である。通過率記憶部１０７は、予め判明している通過率（任意の処理の結果に基づいて、次の処理が実行される確率）を記憶している。処理時間記憶部１０８は、予め判明している各処理の処理時間を記憶している。算出部１０９は、通過率記憶部１０７が記憶している通過率、及び処理時間記憶部１０８が記憶している処理時間に基づいて、各処理を実行するためのモジュール構成を算出する。処理設定データ記憶部１０４は、特徴量等の設定データ及び画像データ位置（アドレス）等の設定データ等を記憶している。【選択図】図１
2010092123.tif 000002
【特許請求の範囲】
【請求項１】
各々が情報処理を行う１個以上の処理実行手段を備えた複数の情報処理手段と、
前記複数の情報処理手段のうちの１つにおける情報処理の結果に基づいて、次の情報処理を前記複数の情報処理手段のうちの他の１つに実行させるかを決定する制御手段と、
前記制御手段により次の情報処理が実行されると決定される、予め判明している確率を通過率として記憶する通過率記憶手段と、
前記処理実行手段毎に、予め判明している処理時間を記憶する処理時間記憶手段と、
前記通過率及び前記処理時間に基づいて、前記情報処理手段における前記処理実行手段の構成を算出する算出手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記情報処理手段毎に、前記処理実行手段の個数を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出手段は、前記処理実行手段の構成を算出するに際し、
前記情報処理手段毎に、当該情報処理手段よりも前段で行われる全ての情報処理の通過率の積を累積通過率Ｐとして求め、
当該情報処理手段の前記処理実行手段の１個当たりの処理時間をＴとし、
当該情報処理手段の前記処理実行手段の個数をＮｕｍとしたときに、
全ての情報処理において「Ｔ×Ｐ／Ｎｕｍ」が同一の値となるようにＮｕｍの値を算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記算出手段は、
前記処理実行手段の総数が予め決まっている場合、前記処理実行手段の各情報処理における個数として１以上の取り得る値の組み合わせを算出し、
更に、各々の組み合わせに対応する「Ｔ×Ｐ／Ｎｕｍ」の値を降順に並べた数列を算出し、
更に、各数列の要素の値を先頭から順に比較して、最小の要素の値を有する数列を選択し、選択された数列が１つになるまで選択を続け、
最後尾の要素の比較までに１つの数列が選択されたときは、その数列に対応する前記処理実行手段の各情報処理における個数を算出結果とし、
最後尾の要素の比較を行っても複数の数列が選択されているときは、選択されている複数の数列のうちいずれか１つの数列に対応する前記処理実行手段の各処理における個数を算出結果とすることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記処理実行手段がプロセッサにより実現されることを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
１個以上の前記処理実行手段が１個のプロセッサにより実現されることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
情報処理の内容を変更する場合、前記算出手段は、前記情報処理手段における前記処理実行手段の構成を新たに算出することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記処理実行手段は、前記情報処理として識別処理を実行することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記処理実行手段は、前記情報処理として識別処理を実行し、
前記情報処理の内容の変更とは、識別の対象の変更であることを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
各々が情報処理を行う１以上の処理実行ステップを備えた複数の情報処理ステップと、
前記複数の情報処理ステップのうちの１つにおける情報処理の結果に基づいて、次の情報処理ステップを実行するかを決定する制御ステップと、
を有し、
更に、前記制御ステップにおいて次の情報処理が実行されると決定される、予め判明している確率を通過率として記憶している通過率記憶手段と、前記処理実行ステップ毎に、予め判明している処理時間を記憶している処理時間記憶手段と、から前記通過率及び前記処理時間を読み出し、これらに基づいて、前記情報処理ステップにおける前記処理実行ステップの構成を算出する算出ステップを有することを特徴とする情報処理方法。
【請求項１１】
コンピュータに、
各々が情報処理を行う１以上の処理実行ステップを備えた複数の情報処理ステップと、
前記複数の情報処理ステップのうちの１つにおける情報処理の結果に基づいて、次の情報処理ステップを実行するかを決定する制御ステップと、
を実行させ、
更に、前記制御ステップにおいて次の情報処理が実行されると決定される、予め判明している確率を通過率として記憶している通過率記憶手段と、前記処理実行ステップ毎に、予め判明している処理時間を記憶している処理時間記憶手段と、から前記通過率及び前記処理時間を読み出し、これらに基づいて、前記情報処理ステップにおける前記処理実行ステップの構成を算出する算出ステップを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数段にわたって情報処理を行う情報処理装置及び情報処理方法等に関する。
【背景技術】
【０００２】
従来、デジタルカメラ及びプリンタにおいて、入力画像中の人物及び顔等の特定の被写体を検出し、検出された被写体に適した処理を行う技術が提案されている。この特定の被写体を検出する一例として、顔に対して肌色補正処理を行うための顔検出処理がある。
【０００３】
顔検出処理として種々の方法が提案されている。例えば、非特許文献１に一つの方法が提案されている。以下、非特許文献１に記載の方法を「Viola＆Jones手法」という。また、人間の顔の対称的特徴、テンプレート・マッチング、ニューラル・ネットワーク等を利用することによって、人間の顔を検出する方法も提案されている。
【０００４】
ここで、Viola＆Jones手法の概略について説明する。図１３（ａ）〜（ｄ）は、Viola＆Jones手法の概略を示す図である。Viola&Jones手法においては、Adaboostによる学習結果を元に複数の識別処理が実行される。複数の識別処理は、図１３（ａ）のフロー図に示すように、ある識別処理が識別を行った結果、次の識別処理を行うときはＴｒｕｅ、次の識別処理を行わないときはＦａｌｓｅを出力し、Ｆａｌｓｅであった場合は、識別処理を終了するというカスケード処理になっている。
【０００５】
学習結果の一例を図１３（ｄ）に挙げる。特徴量０（４１０）は、両目部分の小矩形（画像の一部）と両目下部分（頬の部分）の小矩形とを比べると、両目部分の小矩形は両目下部分の小矩形より黒っぽいという特徴を示す特徴量である。また、特徴量１（４１１）は、両目部分の小矩形内において、目の部分は黒っぽく、目と目の間である眉間部は、目の部分に比べ、白っぽいという特徴を示す特徴量である。このような学習結果（学習された特徴量）を入力データ４００と照らし合わせ、全ての特徴量に対する識別処理がＴｒｕｅと出力された場合、顔であると判断される。
【０００６】
また、Viola&Jones手法では、図１３（ｂ）のフロー図に示すように、ある区切り（以下、ステージ）で識別処理が区切られ、ステージ毎にTrue、Falseの識別を行っていくことで、顔と非顔を識別していく。また、前段のステージでは、false negative（顔を非顔と判定すること：見落とし）を最小化し、false positive（非顔を顔と判定すること：誤検出）が比較的高めの確率になるような単純な特徴のみを用いている。単純な特徴のみを用いると、少ない演算回数で識別処理が可能となるため、プロセッサを用いて処理を行った場合においても高速処理が可能となる。更に、なるべく多くの矩形領域を、より前段で効率よくFalse（非顔）と識別していくことができるため、画像全体に対する顔検出処理を短時間に完了することが可能になる。
【０００７】
カスケード処理のあるステージにおいて識別結果がTrueとなる確率を以下、「通過率」という。ここで、「通過率」について、図１３（ａ）を参照しながら説明する。
【０００８】
図１３（ａ）の先頭である識別処理１０６＿０の処理総数（入力される矩形領域数）をＳとする。識別処理１０６＿１には、識別処理１０６＿０でTrueと識別されたものだけが入力されることになる。よって、識別処理１０６＿１が処理する矩形領域数は、識別処理１０６＿０が処理する矩形領域数と識別処理１０６＿０の通過率ｐ［０］との積（Ｓ×ｐ［０］）となる。また、識別処理１０６＿２が処理する矩形領域数は、識別処理１０６＿１が処理する矩形領域数と識別処理１０６＿１の通過率ｐ［１］との積（（Ｓ×ｐ［０］）×ｐ［１］）となる。従って、同様の計算により、識別処理１０６＿Ｎが処理する矩形領域数は、
（Ｓ×ｐ［０］×ｐ［１］×・・・×ｐ［Ｎ−２］）×ｐ［Ｎ−１］
で表される。以下、ｐ［０］×ｐ［１］×・・・×ｐ［Ｎ−１］をステージＮにおける識別処理の累積通過率Ｐ［Ｎ］という。また、識別処理１０６＿０には入力データが全て入力されるので、Ｐ［０］＝１（１００％の通過率で識別処理１０６＿０に入ってくるもの）となる。
【０００９】
次に、データ処理における高速化の方法について説明する。
【００１０】
一般的な高速化の方法として、動作周波数を上げる方法、入出力データの転送律速を防ぐために、内部にＦＩＦＯ及び／又はＲＡＭを設ける方法等がある。また、処理を時間的及び空間的に並列化する方法も広く用いられている。ここで、時間的及び空間的に並列化する方法について説明する。
【００１１】
先ず、時間的並列処理（パイプライン処理）について説明する。カスケード状に並んだ各ステージに対して、専用の識別器を装備することにより、ステージ毎に装備された各々の識別器が同時並列動作可能となるため、処理の高速化が図られる。但し、各ステージの処理時間の中で最長の処理時間が全体の処理時間を律速する。従って、全ステージの通過率が１００％で、各ステージの処理時間が均一であるならば、ステージ数分（ステージが４つであれば、４倍）の高速化が可能となる。
【００１２】
次に、空間的並列処理について説明する。前述したパイプライン処理を更に高速化するため、パイプラインを複数装備することにより、複数の入力データを同時処理する。この空間的並列処理では、夫々のパイプライン処理に対し、入力データを滞りなく供給できる場合において、空間的並列化した分（パイプラインを４基搭載すれば、４倍）の高速化が可能となる。
【００１３】
ここで、図１３（ｂ）に示すフロー図の処理をハードウエア実装した構成例について、図１３（ｃ）を参照しながら説明する。
【００１４】
各ステージを識別器（ハードウエア）として実装し、識別器間をデータ線（ｄａｔａ線）と制御線（ｖａｌｉｄ線）で接続しパイプライン処理を行う。図１３（ｂ）のステージ０をハードウエア化したものが、識別器１０６０である。
【００１５】
以下、ある入力データの一部である入力データ０（data_in0）に対し、識別器１０６０への入力データをdata_in0[0]、識別器１０６１への入力データをdata_in0[1]として説明する。また、ｖａｌｉｄ信号とは、data_in、data_outが有効であるか制御するための制御信号である。そして、識別器１０６０の処理結果がTrueと判定した場合は、valid_out0[0]=1を出力し、Falseと判定した場合は、valid_out0[0]=0を出力する。
【００１６】
制御器１０５０は制御信号のアサート（valid_in0=1）を検出することにより、有効データ（data_in0）が入力されたことを検知する。すると、識別器１０６０に対し、data_in0に入力されたデータ（data_in0）をdata_in0[0]に出力するとともに、入力データが有効であることを示す‘１’をvalid_in0[0]に出力する。次に、識別器１０６０はvalid_in0[0]=1を検知し、入力画像（data_in0[0]）を基に識別処理を行い、識別結果をvalid_out0[0]として出力する。識別器１０６０はTrueと識別した場合、次の識別器１０６１に対し、入力データ０をdata_out0[0]に、入力データが有効であることを示すvalid_out0[0]=1を出力する。この結果、識別器１０６１は、有効な入力データを検知でき、処理を行うことが可能となる。このように、ｄａｔａ線では、入力データの受け渡しを行い、ｖａｌｉｄ線では、有効データが入力されたかどうか（処理を行うかどうか）の制御を行う。識別器１０６０〜１０６２の識別結果が全てTrueであった場合、制御器１０５３から、valid_out0=1が出力されることにより、入力画像データ（data_in0）には、顔が含まれると判断される。
【００１７】
識別処理では、同じ識別器を用いても、識別対象（顔、人物、車等）により、識別対象毎に学習された特徴量を切り替えることで、複数の識別対象を処理することも可能である。この切り替えにより、回路構成を変更することなく、複数の識別対象を処理することが可能となっている。
【００１８】
次に、識別対象を切り替える情報処理装置の一例について、図１４のブロック図を参照しながら説明する。
【００１９】
図１４に示すように、この情報処理装置には、ＣＰＵ１００、ＲＯＭ１０１、ＤＲＡＭコントローラ１０２、ＤＲＡＭ１０３、制御部１０５、及び処理部１０６が設けられている。ＲＯＭ１０１には処理設定データ記憶部１０４が設けられている。制御部１０５は制御器１０５０〜１０５３からなり、入力データ及び制御信号の制御を行う。また、処理部１０６は識別器１０６０〜１０６２からなり、ｖａｌｉｄ信号の識別を行う。
【００２０】
ここで、処理を開始する際の処理設定方法について説明する。識別処理開始時にＣＰＵ１００は、ＲＯＭ１０１にある処理設定データ記憶部１０４より、特徴量等の設定データを取得し、処理部１０６内の識別器へ設定する。また、処理設定データ記憶部１０４より、画像データ位置（アドレス）等の設定データを取得し、制御部１０５へ設定する。制御部１０５及び処理部１０６内の設定が終わると、ＣＰＵ１００は制御部１０５及び処理部１０６に対し処理の開始を通知する。制御部１０５は、設定された画像データ位置（アドレス）等に基づいてＤＲＡＭコントローラ１０２にアクセスすることにより、ＤＲＡＭ１０３に格納されている画像データから矩形領域のデータを順次読み出し、処理部１０６に転送する。処理部１０６は転送されてきた矩形画像データに対し、順次識別処理を実行する。
【００２１】
識別対象を切り替える際は、ＣＰＵ１００に対し、識別対象を切り替えることを通知する。ＣＰＵ１００は、この通知を検知すると、上記と同様に、処理設定データ記憶部１０４より、新たな識別対象に対応する特徴量等の設定データを取得し、処理部１０６内の識別器へ設定する。また、処理設定データ記憶部１０４より、新たな識別対象に対応する画像データ位置（アドレス）等の設定データを取得し、制御部１０５へ設定する。これにより、識別対象の切り替えが可能となる。
【００２２】
しかしながら、非特許文献１に示されるカスケード処理においては、後段に行くほど、前段に比べて処理すべきデータ量が減少するため、時間的並列化（パイプライン）を行っても、非効率となるという欠点がある。
【００２３】
並列処理におけるプロセッサの稼働率を向上する従来技術が特許文献１に提案されている。この従来技術では、複数プロセッサの各処理時間帯に対して、並列プログラムから生成されるプロセスを、各並列プログラムに対して予め設定されたプロセッサ配分率に応じた時間に従ってそれぞれ割り当てる。また、各プロセッサそれぞれの処理時間帯のうちプロセスが割り当てられていない空き時間帯に対して、ある並列プログラムから生成される複数の並列プロセスを、並列動作可能に割り当てられるかを判定する。そして、並列動作が可能な場合、空き時間帯に対し他の並列プロセスを追加で割り当て、各プロセッサは、各プロセッサそれぞれの処理時間帯に割り当てられた並列プロセスを実行する。
【００２４】
【特許文献１】特開２００３−２５６２２１号公報
【非特許文献１】P. Viola and M. Jones, "Robust Real-time Object Detection", SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION, July 13 2001
【発明の開示】
【発明が解決しようとする課題】
【００２５】
特許文献１の技術では、ターンアラウンド時間の保証が必要なプロセスを予め決まったタイムスロットに割り付けた上で、並列動作可能な複数の並列プロセスを空きタイムスロットに追加割り当てている。そして、ターンアラウンド時間を保証しつつ、プロセッサの稼働率を向上させている。しかしながら、この従来技術では、予め決まった負荷のプロセスを処理する場合しか考慮されていない。即ち、Viola＆Jones手法の顔検出のように、処理（プロセス）の負荷（実行時間）が入力データに依存して変動する場合においては、充分に稼働率の向上が図れないという欠点がある。
【００２６】
また、識別処理では、識別対象（顔、人物、車等）を切り替える際に、ステージ毎の処理時間及び通過率が変動することがある。つまり、識別対象によって、例えば、識別対象が、顔、人物、車のいずれであるかに依存して、識別対象領域が縦長であったり横長であったりし、また、特徴量のサイズ及び形状が変化する。そして、これらの影響で、処理時間が変動し、識別対象毎の学習時において、通過率が変動することもある。このため、識別対象の切り替え前に効率的であったステージの稼働率が、切り替え後には非効率になる場合があるという欠点もある。
【００２７】
本発明は、処理の効率を向上させることができる情報処理装置及び情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【００２８】
本願発明者は、前記課題を解決すべく鋭意検討を重ねた結果、以下に示す発明の諸態様に想到した。
【００２９】
本発明に係る情報処理装置は、各々が情報処理を行う１個以上の処理実行手段を備えた複数の情報処理手段と、前記複数の情報処理手段のうちの１つにおける情報処理の結果に基づいて、次の情報処理を前記複数の情報処理手段のうちの他の１つに実行させるかを決定する制御手段と、前記制御手段により次の情報処理が実行されると決定される、予め判明している確率を通過率として記憶する通過率記憶手段と、前記処理実行手段毎に、予め判明している処理時間を記憶する処理時間記憶手段と、前記通過率及び前記処理時間に基づいて、前記情報処理手段における前記処理実行手段の構成を算出する算出手段と、を有することを特徴とする。
【００３０】
本発明に係る情報処理方法は、各々が情報処理を行う１以上の処理実行ステップを備えた複数の情報処理ステップと、前記複数の情報処理ステップのうちの１つにおける情報処理の結果に基づいて、次の情報処理ステップを実行するかを決定する制御ステップと、を有し、更に、前記制御ステップにおいて次の情報処理が実行されると決定される、予め判明している確率を通過率として記憶している通過率記憶手段と、前記処理実行ステップ毎に、予め判明している処理時間を記憶している処理時間記憶手段と、から前記通過率及び前記処理時間を読み出し、これらに基づいて、前記情報処理ステップにおける前記処理実行ステップの構成を算出する算出ステップを有することを特徴とする。
【発明の効果】
【００３１】
本発明によれば、予め判明している通過率及び処理時間を用いて処理実行手段（ステップ）の構成を算出するので、高い効率で情報処理を実行することができる。
【発明を実施するための最良の形態】
【００３２】
先ず、本発明の実施形態の効果を理解しやすくするために、Viola＆Jones手法においてカスケード処理を時間的並列化した場合に、高速化が阻害される原理について、図１３（ｃ）及び表１を参照しながら説明する。
【００３３】
【表１】
2010092123.tif 000003
【００３４】
表１の条件では、図１３（ｃ）において、各ステージの識別器の処理時間Ｔ及び通過率ｐについて、
「Ｔｍ［０］＝Ｔｍ［１］＝Ｔｍ［２］＝１、ｐ［０］＝ｐ［１］＝ｐ［２］＝１／２」の関係がある。処理時間Ｔが全て同じであるという仮定であるため、時間的並列処理において、前述した処理律速（各ステージの処理時間の中で最長の処理時間が全体の処理時間を律速）が起こることはない。しかし、通過率が全て１／２であるため、累積通過率は、Ｐ［０］＝１、Ｐ［１］＝１／２、Ｐ［２］＝１／４となる。よって、識別器１０６０の処理総数を１００とした場合、識別器１０６１、１０６２の処理総数は、識別器１０６０の処理総和に累積通過率をかけた数値となり、
識別器１０６１の処理総数＝１００×Ｐ［１］＝１００×１／２＝５０、
識別器１０６２の処理総数＝１００×Ｐ［２］＝１００×１／４＝２５
となる。ここで、Ｔ＝１が１サイクルを表すとすると。識別器１０６０が処理総和（Ｓ＝）１００を１００サイクルかけて、処理している間に、識別器１０６１は５０、識別器１０６２は７５サイクルの間、停止状態となっていることになる。
【００３５】
つまり、カスケード処理において、通過率が１（１００％）より小さい処理を行う場合、パイプライン後段の稼働率が下がり非効率となるのである。
【００３６】
次に、時間的並列処理に空間的並列処理を組み合わせて、更に高速化する例（４倍の高速化を目指し、パイプラインを４基装備した例）について、図１５を参照しながら説明する。
【００３７】
この例では、図１５に示すように、処理部１０６を構成するすべての識別器１０６０〜１０６２において、全てのモジュールが搭載される。
【００３８】
この例では、制御器１０５０〜１０５３は、パイプライン毎に、ｄａｔａ線及びｖａｌｉｄ線を接続する処理を行っている。つまり、data_out0[0]をdata_in0[1]へ、valid_out0[0]をvalid0[1]へと接続している。
data_out0[0]→data_in0[1]、valid_out0[0]→valid_in0[1]、
data_out0[1]→data_in0[2]、valid_out0[1]→valid_in0[2]
【００３９】
ここで、前述したように、表１の処理時間及び通過率であった場合、一部の識別器（図１５においてドットが付された識別器）は、自段より前段の識別器が出力するFalse判定により停止状態となってしまう。つまり、複数のパイプラインを並べた空間並列処理では、パイプライン後段の稼働率が下がる非効率さ（識別器の搭載数が後段に行くほど過多となり、停止状態のモジュールが増えること）が更に顕著になるのである。
【００４０】
従来の技術には、このような原理に基づく欠点があるのである。
【００４１】
以下、本発明の実施形態について添付の図面を参照して具体的に説明する。
【００４２】
（第１の実施形態）
先ず、本発明の第１の実施形態について説明する。図１は、第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【００４３】
この情報処理装置には、ＣＰＵ１００、ＲＯＭ１０１、ＤＲＡＭコントローラ１０２、ＤＲＡＭ１０３、制御部１０５、及び処理部１０６が設けられている。また、ＲＯＭ１０１には、処理設定データ記憶部１０４、通過率記憶部１０７及び処理時間記憶部１０８が設けられている。ＣＰＵ１００は、ＲＯＭ１０１に記憶された算出プログラムを実行することにより算出部１０９として動作することが可能である。通過率記憶部１０７は、予め判明している通過率（任意の処理の結果に基づいて、次の処理が実行される確率）を記憶している。処理時間記憶部１０８は、予め判明している各処理の処理時間を記憶している。算出部１０９は、通過率記憶部１０７が記憶している通過率、及び処理時間記憶部１０８が記憶している処理時間に基づいて、各処理を実行するためのモジュール構成を算出する。処理設定データ記憶部１０４は、特徴量等の設定データ及び画像データ位置（アドレス）等の設定データ等を記憶している。
【００４４】
この情報処理装置においても、識別処理開始時にＣＰＵ１００は、処理設定データ記憶部１０４から特徴量等の設定データを取得し、処理部１０６内の識別器（処理実行手段）へ設定する。また、ＣＰＵ１００は、処理設定データ記憶部１０４から画像データ位置（アドレス）等の設定データを取得し、制御部１０５へ設定する。制御部１０５及び処理部１０６内の設定が終わると、ＣＰＵ１００は制御部１０５及び処理部１０６に対し処理の開始を通知する。制御部１０５は、設定された画像データ位置（アドレス）等に基づいてＤＲＡＭコントローラ１０２にアクセスし、ＤＲＡＭ１０３に格納されている画像データから矩形領域のデータを順次読み出し、処理部１０６に転送する。処理部１０６は転送されてきた矩形画像データに対し、順次識別処理を実行する。
【００４５】
識別対象を切り替える際は、ＣＰＵ１００に対し、識別対象を切り替えることを通知する。ＣＰＵ１００は、この通知を検知すると、上記と同様に、処理設定データ記憶部１０４から新たな識別対象に対応する特徴量等の設定データを取得し、処理部１０６内の識別器へ設定する。また、ＣＰＵ１００は、処理設定データ記憶部１０４から、新たな識別対象に対応する画像データ位置（アドレス）等の設定データを取得し、制御部１０５へ設定する。これにより、識別対象の切り替えが可能となる。
【００４６】
そして、顔検出のように、処理のステージにより通過率及び／又は処理時間が異なる処理を実行する際に、算出部１０９が、通過率記憶部１０７及び処理時間記憶部１０８を用いて、モジュール構成を算出する。ＣＰＵ１００は、算出されたモジュール構成によって顔検出処理等のデータ処理を行う。
【００４７】
次に、算出部１０９によるモジュール構成の算出処理について説明する。図２は、第１の実施形態における制御部及び処理部の構成を示す図である。
【００４８】
ステージＮに装備された識別器１個当りの処理時間をＴｍ［Ｎ］、ステージＮにおける累積通過率をＰ［Ｎ］とすると、ステージＮにおいて１つの入力データ（矩形画像データ）を１個の識別器で処理するのに必要な平均処理時間Ｔｄ［Ｎ］は式（１）で表わされる。
Ｔｄ［Ｎ］＝Ｔｍ［Ｎ］×Ｐ［Ｎ］                                  ・・・（１）
【００４９】
Ｔｄ［Ｎ］は、識別器１個あたりの平均処理時間であるため、同じステージを処理することができる識別器（モジュール）を複数装備すれば、このステージあたりの処理を分担することが可能となる。従って、ステージＮに装備される識別器（モジュール）数をＮｕｍ［Ｎ］とすると、ステージＮにおける入力データ（矩形画像データ）１つあたりの処理時間Ｔ［Ｎ］は以下の式（２）で表わされる。
Ｔ［Ｎ］＝Ｔｄ［Ｎ］／Ｎｕｍ［Ｎ］＝（Ｔｍ［Ｎ］×Ｐ［Ｎ］）／Ｎｕｍ［Ｎ］
・・・（２）
【００５０】
前述したように、時間的並列処理の効率を向上するためには各ステージの処理時間が均一であることが望ましい。即ち、全てのステージにおいてＴ［Ｎ］（つまり、Ｔ×Ｐ／Ｎｕｍ）が均一になるようにＮｕｍ［Ｎ］を決定することが望ましい。
【００５１】
そこで、本実施形態では、算出部１０９が通過率記憶部１０７及び処理時間記憶部１０８を用いて、モジュール構成（ステージ毎の適切な識別器の個数）を算出する。そして、ステージ毎に１以上の識別器を備えた情報処理部が構成される。
【００５２】
次に、図３の例１に示す識別器１個当たりの処理時間Ｔｍ及び累積通過率Ｐの情報に基づいて、算出部１０９が、ステージ０、１、２が装備すべき識別器（モジュール）の数Ｎｕｍ［０］、Ｎｕｍ［１］、Ｎｕｍ［２］を算出する方法について説明する。この処理時間Ｔｍ及び累積通過率Ｐの情報は、表１に示すものと同一である。
【００５３】
全てのステージにおいて処理時間を均一にするためには、式（３）が満たされるようにＮｕｍ［０］、Ｎｕｍ［１］、Ｎｕｍ［２］を決定する必要がある。
（Ｔｍ［０］×Ｐ［０］）／Ｎｕｍ［０］
＝（Ｔｍ［１］×Ｐ［１］）／Ｎｕｍ［１］
＝（Ｔｍ［２］×Ｐ［２］）／Ｎｕｍ［２］                          ・・・（３）
【００５４】
式（３）に例１の識別器１個当たりの処理時間Ｔｍ及び累積通過率Ｐを代入すると、「（１×１）／Ｎｕｍ［０］＝（１×１／２）／Ｎｕｍ［１］＝（１×（１／２×１／２））／Ｎｕｍ［２］」となり、式（４）が導かれる。
Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝４：２：１              ・・・（４）
【００５５】
従って、各ステージの識別器（モジュール）数を、式（４）が示す比で装備すれば、停止状態となるモジュールが少ない状態にすることが可能となる。
【００５６】
算出部１０９は、このような式（４）を、通過率記憶部１０７及び処理時間記憶部１０８に格納されている累積通過率及び識別器１個当たりの処理時間に基づいて、演算により導出するのである。
【００５７】
次に、算出されたモジュール構成において、どのように識別処理が実行されるかについて詳細に述べる。
【００５８】
前述のように、ステージ毎の識別器の搭載数が決定された後、制御器１０５０は、空間的並列処理を行うため、ステージ０に４つの矩形画像データを同時に送出する。ここで、４つの矩形画像データをdata_in0,1,2,3と表し、それに伴うｖａｌｉｄ信号をvalid_in0,1,2,3とする。ステージ０については、ｄａｔａ信号、ｖａｌｉｄ信号が１対１であるため、制御器１０５０は、夫々の識別器に接続されている。有効データが入力された識別器は、夫々True/Falseの識別処理を行い、結果をvalid_out0,1,2,3として出力する。ここで、ステージ０に対する識別器の出力には［０］を付記する。次に、ステージ０の通過率ｐ［０］＝１／２であることより、４つ装備された識別器のうち、２つがTrue、残り２つがFalseを出力する。すると、制御器１０５１は、ステージ１用に装備された識別器２つに対し、ステージ０において識別結果がTrue（valid_out=1）と出力されたものを接続し、ステージ１の処理をスタートさせる。つまり、valid_out0[0]=valid_out0[1]=1、かつvalid_out0[2]=valid_out0[3]=0の場合、
data_out0[0]→data_in0[1]、valid_out0[0]→valid_in0[1]
data_out1[0]→data_in1[1]、valid_out1[0]→valid_in1[1]
と接続される。
【００５９】
次に、ステージ１の通過率ｐ［１］＝１／２であることより、２つ装備された識別器のうち、１つがTrue、残り１つがFalseを出力する。すると、制御器１０５２は、ステージ２用に装備された識別器１つに対し、ステージ１において識別結果がTrue（valid_out=1）と出力されたものを接続し、ステージ２の処理をスタートさせる。つまり、valid_out1[0]=0、かつvalid_out1[1]=0の場合、
data_out1[0]→data_in0[2]、valid_out1[0]→valid_in0[2]
と接続される。
【００６０】
本実施形態では、このようにして識別処理が実行される。
【００６１】
次に、図１５に示す従来技術に基づくモジュール構成と図２に示す第１の実施形態において算出されたモジュール構成との間の稼動状況の相違について、図４を参照しながら説明する。図４は、図３の例１における識別器の動作状況を示す図である。図４における横軸（右方向）は時間を示し、縦軸（下方向）は空間的並列数（時間単位において並列動作するモジュール数）を示す。
【００６２】
図４（ａ）の従来技術に基づくモジュール構成では、上述のように、空間的並列度を４（パイプラインを４基装備）にするため、ステージ０〜２を担当する識別器が夫々４つずつ装備される。これに対し、図４（ｃ）の第１の実施形態のモジュール構成では、算出部１０９により算出された比（４：２：１）でモジュールが装備される。
【００６３】
例１では、ステージ０〜２の処理を担当する識別器１０６０〜１０６２の処理時間に関し、Ｔｍ［０］＝Ｔｍ［１］＝Ｔｍ［２］＝１が前提となっているため、識別器１０６０が時間１に処理した結果を受けて、識別器１０６１が処理を行う。ここでは、制御器１０５０〜１０５２の処理時間は、全体の処理時間の相違に影響を及ぼさないので、その説明は省略する。
【００６４】
図４（ａ）のモジュール構成、及び図４（ｃ）のモジュール構成のいずれにおいても、先ず、４つ装備された識別器１０６０が処理を始める。そして、時間１の経過後に識別器１０６０の結果が出力される。識別器１０６０の通過率が１／２であるため、４個装備されている識別器１０６０のうち、２個がTrue、２個がFalseとなる。
【００６５】
従って、図４（ａ）のモジュール構成では、時間１の経過後は、４個装備された識別器１０６１のうちの２つのみが処理を開始する。
【００６６】
次に、２個稼動した識別器１０６１の結果が反映されて、４個搭載された識別器１０６２のうちの１つのみが処理を開始する。また、パイプライン処理が行えるため、時間１からは、４個装備された識別器１０６０が同時に、次の入力データ処理を開始する。
【００６７】
この識別器の稼動数を図４（ｂ）に示す。識別器１０６１の稼動数は、時間１では０個、時間２では２個、時間２以降では２個であり、識別器１０６２の稼動数は、時間１では０個、時間２では０個、時間２以降では１個である。なお、図示しないが、識別器１０６０の稼働数は、常に４個である。つまり、例１の通過率が常に保たれる（設定通過率に近い推移をする）場合、図４（ｂ）に示す稼働数となり、識別器１０６１は最大で２個、識別器１０６２は最大で１個しか同時稼動（動作）しない。
【００６８】
一方、図４（ｃ）に示すように、本実施形態のモジュール構成では、識別器が装備されないパイプラインがあるため、制御器が、前段のｖａｌｉｄの状態に応じて、後段の所定の識別器へ接続することにより処理を行う。
【００６９】
なお、処理性能は、図１５のモジュール構成と図２のモジュール構成との間で同等のものとなる。従って、第１の実施形態によれば、同一の処理性能を、より小さい回路規模で実現可能となり、より適切な処理モジュール構成を実現できるといえる。これは、停止するモジュールの実装を省略することができるからである。
【００７０】
なお、通過率が入力データによって変動することがあるため、図４（ａ）及び（ｂ）のような稼動数になるとは限らないが、全画像に対して識別処理を行う場合、平均的には設定した通過率となる。このため、第１の実施形態において算出部１０９により算出されたモジュール構成を用いれば、従来例と比べ、処理時間はほぼ同等でありながら、無駄な処理モジュールの搭載を防ぐことが可能となる。
【００７１】
次に、通過率及び処理時間が例１とは異なる例２、３、４（図３）の場合のモジュール構成の算出結果及び効果について説明する。
【００７２】
図５は、図３の例２における識別器の動作状況を示す図である。例２の条件では、各ステージの識別器の処理時間Ｔ及び通過率ｐについて、
「Ｔｍ［０］＝Ｔｍ［１］＝Ｔｍ［２］＝１、ｐ［０］＝３／４、ｐ［１］＝１／３、ｐ［２］＝１／４」の関係がある。
【００７３】
図１５に示すモジュール構成では、識別器１０６０〜１０６２を夫々４個ずつ装備しているにも関わらず、識別器１０６１は最大で３個しか動作しない。つまり、ステージ１用に装備された識別器１０６１の４個のうちの１個は、常に停止状態となっている。また、識別器１０６２についても同様に、常に３個が停止状態となっている。
【００７４】
一方、本実施形態では、算出部１０９により、「Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝４：３：１」という関係が導かれ、この結果に基づいて識別器１０６０〜１０６２の数が決定されている。そして、このモジュール構成と図１５のモジュール構成とを比較すると、処理性能は同等である。
【００７５】
なお、前述した通り、パイプライン処理において区切られたステージ（０〜２）の処理時間が相違している場合、全体の処理は、一番遅いステージ処理に律速される。そこで、ステージを分割する際には、各ステージの処理時間がなるべく同じになるように分割することが望ましい。しかし、顔検出処理においては、学習により各ステージの処理時間が決定されるため、常に同じ処理時間となるとは限らない。この処理時間の差を抑制するために、算出部１０９は、ステージ処理用に装備する識別器（モジュール）の数を処理時間の長短に応じて算出する。この結果、ステージ間の処理時間の均一性が向上する。以下の例３及び例４では、処理時間がステージ間で相違している。
【００７６】
図６は、図３の例３における従来のモジュール構成の場合の識別器の動作状況を示す図である。例３の条件では、並列度が２に設定されている。従って、識別器１０６０〜１０６２は夫々２個ずつ装備される。また、各ステージの識別器の処理時間Ｔ及び通過率ｐについて、
「Ｔｍ［０］＝１、Ｔｍ［１］＝２、Ｔｍ［２］＝４、ｐ［０］＝１／４、ｐ［１］＝１／２、ｐ［２］＝３／４」の関係がある。つまり、例３では、処理時間がステージ間で相違している。
【００７７】
従来のモジュール構成では、識別器１０６０〜１０６２を夫々２個ずつ装備しているにも関わらず、識別器１０６１は常に１個しか動作していない。つまり、識別器１０６１の２個のうちの１個は、常に停止状態となっている。また、識別器１０６２についても同様に、常に１個が停止状態となっている。
【００７８】
一方、本実施形態では、図３に示すように、算出部１０９により、「Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝２：１：１」という関係が導かれ、この結果に基づいて識別器１０６０〜１０６２の数が決定されている。そして、このモジュール構成と従来のモジュール構成とを比較すると、処理性能は同等である。
【００７９】
図７は、図３の例４における従来のモジュール構成の場合の識別器の動作状況を示す図である。例４の条件では、並列度が３に設定されている。従って、識別器１０６０〜１０６２は夫々３個ずつ装備される。また、各ステージの識別器の処理時間Ｔ及び通過率ｐについて、
「Ｔｍ［０］＝１、Ｔｍ［１］＝２、Ｔｍ［２］＝４、ｐ［０］＝１／６、ｐ［１］＝１／２、ｐ［２］＝１／１６」の関係がある。つまり、例４でも、処理時間がステージ間で相違している。
【００８０】
従来のモジュール構成では、識別器１０６０〜１０６２を夫々２個ずつ装備しているにも関わらず、識別器１０６１は常に１個しか動作していない。つまり、識別器１０６１の２個のうちの１個は、常に停止状態となっている。また、識別器１０６２についても同様に、常に１個が停止状態となっている。
【００８１】
従来のモジュール構成では、識別器１０６０〜１０６２を夫々３個ずつ装備しているにも関わらず、識別器１０６１は常に１個しか動作していない。つまり、識別器１０６１の３個のうちの２個は、常に停止状態となっている。また、識別器１０６２についても同様に、常に２個が停止状態となっている。
【００８２】
一方、本実施形態では、図３に示すように、算出部１０９により、「Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝３：１：１」という関係が導かれ、この結果に基づいて識別器１０６０〜１０６２の数が決定されている。そして、このモジュール構成と従来のモジュール構成とを比較すると、処理性能は同等である。
【００８３】
このように、第１の実施形態によれば、算出部１０９により算出されたモジュール数の比で識別器を搭載するので、識別器の稼働効率を向上させることができる。
【００８４】
なお、搭載可能なモジュール総数によっては、モジュール数比が整数比にならないこともある。また、整数比になった場合でも、搭載可能なモジュール総数の上限等により、算出された比の構成が不可能な場合もある。例えば、上記の例１において、搭載可能なモジュール総数が６個であったとすると、４：２：１の比を満たすモジュール構成をとることはできない。
【００８５】
このように、算出部１０９により算出されたモジュール数比が整数比とならない場合、及び与えられたモジュール総数では、算出部１０９により算出されたモジュール数比を満たすことができない場合等には、以下の手順に従ってモジュール数比を決定すればよい。
【００８６】
与えられた総数の識別器を、各ステージに配分する場合、どのステージに何個の識別器を配置するかには複数の選択肢が存在する。
【００８７】
第１の手順では、全てのステージに１以上の識別器が装備されるような選択肢を全選択肢の中から選別する。識別器が１個も装備されないステージが存在すれば、全体としては処理が完結しないため、これは妥当な選別基準である。
【００８８】
第１の手順により選別された選択肢の中からより望ましい構成を決定するため、以下に述べる第２の手順を適用する。
【００８９】
ある選択肢において、ステージＮにおける入力データ（矩形画像データ）１つ当たりの処理時間Ｔ［Ｎ］を、式（２）を用いて全ステージに対して求め、その中の最大値を該選択肢の第１の処理時間とする。前述したように、パイプライン処理においては各ステージの処理時間の中で最長の処理時間が全体の処理時間を律速するため、ステージ処理時間の最大値（第１の処理時間）を全体の処理時間とみなすことは妥当である。
【００９０】
そして、第１の手順により選定された全ての選択肢の中から前記第１の処理時間が最小となる選択肢を選定し、これをモジュール構成として決定する。つまり、各選択肢について、「Ｔ［Ｎ］×Ｐ［Ｎ］／Ｎｕｍ［Ｎ］」の値を降順に並べた数列を算出し、各数列の要素の値を先頭から順に比較して、最小の要素の値を有する数列を選択する。
【００９１】
但し、第２の手順により選定された選択肢が複数存在する場合は、更に第３の手順を適用する。
【００９２】
第３の手順では、ある選択肢において、ステージＮにおける入力データ（矩形画像データ）１つ当たりの処理時間Ｔ［Ｎ］を、式（２）を用いて全ステージに対して求め、その中の２番目に大きい値を該選択肢の第２の処理時間とする。
【００９３】
そして、第２の手順により選定された全ての選択肢の中から前記第２の処理時間が最小となる選択肢を選定し、これをモジュール構成として決定する。
【００９４】
第３の手順を適用しても選定された選択肢が複数存在する場合は、３番目に大きい値（第３の処理時間）、４番目に大きい値（第４の処理時間）を順次用いて同様の比較を行い、第Ｎの処理時間が最小となる選択肢が１つとなったところで選定を完了する。
【００９５】
全てのステージに対して同様の比較を行っても複数の選択肢が残った場合は、その中の任意の選択肢をモジュール構成として決定する。つまり、最後尾の要素の比較を行っても複数の数列が選択されているときは、選択されている複数の数列のうちいずれか１つの数列に対応する個数に基づいてモジュール構成を決定する。
【００９６】
以下、上記手順の具体例を、図８及び図９を参照しながら説明する。
【００９７】
図８は、図３の例１に対して上記手順を適用する例である。例１の条件で、モジュール数を算出した結果は、Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝４：２：１となる。しかし、ここでは、搭載されている識別器が６基であるとする。この場合、次のようにしてモジュール構成が決定される。
【００９８】
ステージ０、１、２に、どのようにモジュール数を割り当てるかの選択肢として、第１の手順では、全てのステージに少なくとも１個の識別器が装備されるような選択肢１〜１０を選別する。
【００９９】
次に、第２の手順において、ある選択肢において、ステージＮにおける入力データ（矩形画像データ）１つ当たりの処理時間Ｔ［Ｎ］を式（２）を用いて全ステージに対して求める。そして、その中の最大値を該選択肢の第１の処理時間とし、第１の手順により選定された全ての選択肢の中から前記第１の処理時間が最小となる選択肢を選定する。図８に示す例では、ステージ処理時間の最大値が１／３と他の選択肢に比べ小さい選択肢が１つだけ存在するため、この選択肢２をモジュール構成として決定する。
【０１００】
図９は、図３の例３に対して上記手順を適用する例である。例３の条件で、モジュール数を算出した結果は、Ｎｕｍ［０］：Ｎｕｍ［１］：Ｎｕｍ［２］＝２：１：１となる。しかし、ここでも、搭載されている識別器が６基であるとする。この場合、次のようにしてモジュール構成が決定される。
【０１０１】
この例でも、ステージ０、１、２に、どのようにモジュール数を割り当てるかの選択肢として、第１の手順では、全てのステージに少なくとも１個の識別器が装備されるような選択肢１〜１０を選別する。
【０１０２】
次に、第２の手順において、ある選択肢において、ステージＮにおける入力データ（矩形画像データ）１つ当たりの処理時間Ｔ［Ｎ］を式（２）を用いて全ステージに対して求める。そして、その中の最大値を該選択肢の第１の処理時間とし、第１の手順により選定された全ての選択肢の中から前記第１の処理時間が最小となる選択肢を選定する。図９に示す例では、ステージ処理時間の最大値が１／２と他の選択肢に比べ小さい選択肢が６個も存在するため、この時点ではモジュール構成を決定することができない。
【０１０３】
このため、第３の手順において、２番目に大きいステージ処理時間を比較する。この結果、図９に示す例では、２番目に大きいステージ処理時間の最大値が１／４と他の選択肢に比べ小さい選択肢が１つだけ存在するため、この選択肢５をモジュール構成として決定する。
【０１０４】
このように、前述した手順を用いることで、適切なモジュール構成を選択することが可能となる。
【０１０５】
次に、識別対象が変更された場合の動作について説明する。ここでは、条件が例２から例３に変更されたとする。このような変更は、例えば、識別対象が顔から人に変更された場合に相当する。例２の条件下で算出部１０９により算出されたモジュール数に基づくモジュール構成を図１０（ａ）に示し、例３の条件下で算出されたモジュール数に基づくモジュール構成を図１０（ｂ）に示す。識別対象の切り替え（例２（顔）から例３（人）への切り替え）は、図１０（ａ）でステージ１用に装備していた識別器１０６１の１つを図１０（ｂ）のステージ２用の識別器１０６２へ構成変更することで可能となる。
【０１０６】
ここで、このような構成の切り替えの方法について、図１１を参照しながら説明する。図１１（ａ）は例２のモジュール構成に相当し、図１１（ｂ）は例３のモジュール構成に相当する。
【０１０７】
図１１（ａ）では、識別器２００〜２０７の８個が装備されており、例２のステージ０、１、２の処理時間及び通過率に基づいて、夫々のステージを担当する識別器（１０６０、１０６１、１０６２）を夫々４個、３個，１個というモジュール数で構成している。この例２に示した識別対象（顔）から、例３に示す識別対象（人）へ切り替える場合、図１１（ｂ）に示すように、夫々のステージを担当していた識別器（１０６０、１０６１、１０６２）を、４個、２個、２個の構成へ変更する。
【０１０８】
次に、構成変更を実現するための具体的な実装の内容について説明する。図１１（ａ）及び図１１（ｂ）に示すように、各々の識別器はネットワーク（インターコネクト）８０に接続されている。また、各々の識別器は、ある矩形画像データに対する識別処理を実行中の場合、ネットワーク（インターコネクト）８０に対し、処理中であるというステータスを送信（例えば、ビジー信号のアサート）する。
【０１０９】
どの識別器の処理結果をどの識別器へ送信するか、即ち、識別器間の接続関係（トポロジー）の決定は、ネットワーク（インターコネクト）８０に装備された通信経路設定部を用いることにより実装可能である。
【０１１０】
例えば、図１１（ａ）の構成（例２）においては、ステージ０の処理を分担する識別器２００〜２０３の出力はステージ１の処理を分担する識別器２０４〜２０６に送信されるように設定される。また、識別器２０４〜２０６の出力はステージ２の処理を担当する識別器２０７に送信されるように設定される。また、設定内容は、算出部１０９によって得られた算出結果（構成）によって決定される。
【０１１１】
識別対象を変更するために、例２（顔）の構成を例３（人）の構成に変更する際には、新たに算出部１０９によって得られた算出結果（構成）に基づき、通信経路設定部の設定内容を変更すればよい。つまり、識別器２００〜２０３の出力が識別器２０４〜２０５に送信され、識別器２０４〜２０５の出力が識別器２０６〜２０７に送信されるように通信経路設定部の設定内容を変更すればよい。この結果、図１１（ｂ）の構成（例３）が実現される。
【０１１２】
なお、ネットワーク（インターコネクト）８０は複数の送信先が設定されている場合、処理中を示すステータスを送信していない（ビジー信号をアサートしていない）識別器の中から１個を選択し、接続を確立するように制御を行う。但し、全ての送信先が処理中の場合は、少なくとも１個が処理中でなくなるのを待った後に接続を確立する。
【０１１３】
なお、プロセッサにより識別器を構成してもよい。図１２は、プロセッサにより識別器を構成した例を示す図である。
【０１１４】
例えば、識別器２００〜２０７を、プロセッサ３００〜３０７を用いて実装することにより、図１１（ａ）の例２から図１１（ｂ）の例３への識別対象変更が、プロセッサが実行するプログラムを変更するだけで、実現可能となる。即ち、図１２のプロセッサ３０６が実行するプログラムをステージ１の処理プログラムからステージ２の処理プログラムに変更することにより、構成を変更することが可能となる。
【０１１５】
識別処理においては、通常カスケード段数が数十ステージにもおよぶため、各ステージに１個以上の識別器を専用に装備することは回路規模の観点から困難な場合がある。このような場合には、連続する複数のステージを統合し、統合されたステージに対して識別器を装備するなどして回路規模を小さくすることが望ましい。
【０１１６】
そして、プロセッサを用いた実装においては、連続する２つ以上のステージ処理を統合して１個のプロセッサで実行することが、プログラム変更により容易に実現可能である。
【０１１７】
各ステージに装備すべき識別器の数を決定する際に従うべき前述の手順においては、識別器の総数は与えられたものとしているが、プロセッサを用いた実装においては、ステージ数が多い場合に１個のプロセッサで実行するステージ処理の統合を容易に行うことができる。このため、与えられたプロセッサ総数に対して、構成の選択肢が広がることにより、より望ましいモジュール構成を決定することが可能となる。
【０１１８】
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記の印刷処理用のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
【図面の簡単な説明】
【０１１９】
【図１】第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】第１の実施形態における制御部及び処理部の構成の例を示す図である。
【図３】種々の処理条件及びモジュール構成を示す図である。
【図４】図３の例１における識別器の動作状況を示す図である。
【図５】図３の例２における識別器の動作状況を示す図である。
【図６】図３の例３における従来のモジュール構成の場合の識別器の動作状況を示す図である。
【図７】図３の例４における従来のモジュール構成の場合の識別器の動作状況を示す図である。
【図８】図３の例１におけるモジュール構成の決定方法を示す図である。
【図９】図３の例３におけるモジュール構成の決定方法を示す図である。
【図１０】図３の例２から例３に処理条件が変更された場合のモジュール構成の変化を示す図である。
【図１１】図３の例２から例３に処理条件が変更された場合の識別器の配分の変化を示す図である。
【図１２】プロセッサにより識別器を構成した例を示す図である。
【図１３（ａ）】Viola＆Jones手法の概略を示す図である。
【図１３（ｂ）】Viola＆Jones手法の概略を示す図である。
【図１３（ｃ）】Viola＆Jones手法の概略を示す図である。
【図１３（ｄ）】Viola＆Jones手法の概略を示す図である。
【図１４】識別対象を切り替える情報処理装置の従来の例を示すブロック図である。
【図１５】従来例における制御部及び処理部の構成を示す図である。
【符号の説明】
【０１２０】
１００：ＣＰＵ
１０１：ＲＯＭ
１０２：ＤＲＡＭコントローラ
１０３：ＤＲＡＭ
１０４：処理設定データ記憶部
１０５：制御部
１０６：処理部
１０７：通過率記憶部
１０８：処理時間記憶部
１０５０〜１０５３：制御器
１０６０〜１０６２：識別器
【図１】
2010092123.tif 000004
【図２】
2010092123.tif 000005
【図３】
2010092123.tif 000006
【図４】
2010092123.tif 000007
【図５】
2010092123.tif 000008
【図６】
2010092123.tif 000009
【図７】
2010092123.tif 000010
【図８】
2010092123.tif 000011
【図９】
2010092123.tif 000012
【図１０】
2010092123.tif 000013
【図１１】
2010092123.tif 000014
【図１２】
2010092123.tif 000015
【図１３（ａ）】
2010092123.tif 000016
【図１３（ｂ）】
2010092123.tif 000017
【図１３（ｃ）】
2010092123.tif 000018
【図１３（ｄ）】
2010092123.tif 000019
【図１４】
2010092123.tif 000020
【図１５】
2010092123.tif 000021