(57)【要約】【課題】複数のプロセッサを用いて物体の検出処理を行うことによって処理速度を向上させる。【解決手段】顔検出装置１００は、制御プロセッサ２００と複数の演算プロセッサ４００とを備える。制御プロセッサ２００は、転送画像割当部３００を備える。転送画像割当部３００は、複数の演算プロセッサ４００のうちのいずれかの演算プロセッサ４００に顔検出処理を順次割り当てる。また、転送画像割当部３００は、演算プロセッサ４００のための顔検出領域を水平方向に２画素ずつ遷移させながら割り当てることによって、その顔検出領域内に新たに含まれる転送画像領域の情報を生成して割り当てた演算プロセッサ４００に送信する。演算プロセッサ４００は、その転送画像領域の情報に基づいてローカル画像メモリ５３０にデータを転送した後、顔検出処理を行ってその顔検出結果を制御プロセッサ２００に返信する。【選択図】図２
2010009405.tif 000002
【特許請求の範囲】
【請求項１】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当部と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成部と
を具備する物体検出制御装置。
【請求項２】
前記サイズ生成部は、前記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に前記検出処理割当部が他の物体検出部に前記検出処理を割り当てた回数に基づいて前記転送画像領域のサイズを生成する
請求項１記載の物体検出制御装置。
【請求項３】
前記サイズ生成部は、前記検出処理を割り当てた回数として前記複数の物体検出部の個数と前記所定の画素数とに基づいて求められた数値を用いる請求項２記載の物体検出制御装置。
【請求項４】
前記サイズ生成部は、前記検出処理を割り当てた回数として予め推定した推定値を用いる請求項２記載の物体検出制御装置。
【請求項５】
前記サイズ生成部は、
前記複数の物体検出部の各々に対応する複数のカウンタと、
前記検出処理割当部により１つの物体検出部が割り当てられた場合には前記複数のカウンタのうち前記割り当てられた１つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、
前記検出処理割当部により前記１つの物体検出部が割り当てられた場合には前記割り当てられた１つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、
前記セレクタから出力されたカウンタ値と前記所定の画素数とに基づいて算出した数値を前記転送画像領域のサイズとして出力する転送画像サイズ算出部と
を備える請求項２記載の物体検出制御装置。
【請求項６】
前記検出処理割当部は、前記割り当てられた物体検出部から前記検出処理の終了通知を受けると前記割り当てられた物体検出部に次の検出処理を割り当てる請求項１記載の物体検出制御装置。
【請求項７】
前記検出処理割当部は、前記複数の物体検出部に順番に前記検出処理を割り当てる請求項１記載の物体検出制御装置。
【請求項８】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、
前記複数の物体検出処理装置のうちいずれか１つの物体検出装置に前記検出処理を割り当てる検出処理割当部と、前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、前記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた前記検出領域の基準となる位置を用いて前記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置と
を備える物体検出システム。
【請求項９】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手段と
を具備する物体検出制御方法。
【請求項１０】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手段と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出制御装置に関し、特に、並列処理により画像中の物体を検出する物体検出制御装置、物体検出システム、および、その制御方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
従来、入力画像に含まれる顔等の物体を検出する手法として、例えば、入力画像に対して階層的に生成された複数の縮小画像と物体のテンプレート画像とを照合して物体を特定するテンプレートマッチング手法が知られている。このテンプレートマッチング手法では、入力画像および複数の縮小画像に対してテンプレート画像を左から右に水平方向に走査させながら、物体検出処理を行うのが一般的である。しかしながら、この手法は、相間値や差分自乗和値を用いることが多く、その処理に時間を要するという問題がある。そこで、例えば、階層的に生成される縮小画像の数を削減して、顔検出処理の速度を向上させる手法が提案されている（例えば、特許文献１参照。）。ここで、一般に用いられている顔検出処理の手法について次図を参照して簡単に説明する。
【０００３】
図２０は、顔検出処理の手法を示す模式図である。図２０（ａ）乃至（ｃ）には、顔の検出対象となる入力画像８１０および縮小画像８２０および８３０と、顔検出領域８１１、８２１および８３１とが示されている。ここでは、入力画像８１０に含まれる異なる大きさの顔を検出するため、テンプレート画像のサイズを一定とし、入力画像のサイズを階層的に縮小させた縮小画像８２０および８３０を生成して顔検出処理を行う。ここでは、縮小画像を生成するための縮小率を０．７としている。また、顔検出領域８１１、８２１および８３１は、顔の検出処理を行う領域であり、その幅が２０画素に設定され、高さが検出対象の入力画像８１０または縮小画像８２０乃至８３０の高さに設定される。
【０００４】
図２０（ａ）では、高さ９６０画素および幅１２８０画素の入力画像８１０に対して高さ９６０画素および幅２０画素の顔検出領域８１１を左から右に移動させながら顔の検出処理を行う。この場合、顔検出領域８１１内においてテンプレート画像を上から下に移動させてから、顔検出領域８１１を右方向に移動させる。入力画像８１０に対する顔検出処理が終了すると、図２０（ｂ）に示すように、入力画像８１０の高さ、および、幅をそれぞれ０．７倍した縮小画像８２０を生成して顔検出領域８２１を、上述のように、左から右に移動させながら顔検出処理を行う。ここで、顔検出領域８２１の幅は、２０画素であり、顔検出領域８１１の幅と同じであるが、顔検出領域８２１の高さは、縮小画像８２０の高さに設定される。縮小画像８２０に対する顔検出処理が終了すると、縮小画像８２０を縮小率に応じてさらに縮小させる。最終的には、図２０（ｃ）に示す縮小画像８３０のサイズになるまで上述の処理を繰り返す。次に、左から右に移動させる顔検出領域の遷移について簡単に説明する。
【０００５】
図２１は、入力画像８１０に対する顔検出処理の手法を示す模式図である。図２１（ａ）乃至（ｃ）には、入力画像８１０に対する顔検出領域８１１の遷移例が示されている。図２１（ａ）では、顔検出領域８１１として入力画像８１０の第０乃至第１９列が割り当てられる。この位置における顔検出処理が終了すると、図２１（ｂ）に示すように、顔検出領域８１１を右方向に２画素移動させた顔検出領域８１１（入力画像８１０の第２乃至第２１列）が新たに割り当てられて顔検出処理が行われる。次に、図２１（ｃ）に示すように、顔検出領域８１１をさらに右方向に２画素移動させて顔検出処理が行われ、入力画像８１０の右端まで同様の処理が繰り返される。
【０００６】
このように、階層的に縮小画像を生成して、各縮小画像に対して顔検出領域を左から右に水平方向に走査させて顔検出処理を行うが、一般に、このような顔検出処理は１つのプロセッサで実行される。
【特許文献１】特開２００７−２６５３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の従来技術では、物体の検出処理において縮小画像の数を削減することにより処理速度を向上させている。しかしながら、物体の検出処理の速度は検出処理装置に備えられた１つのプロセッサの処理能力に依存するため、それ以上の速度向上を図ることができない。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、物体の検出処理の処理速度を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に上記検出処理を割り当てる検出処理割当部と、上記割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズと所定の画素数ずつ移動させた上記検出領域の基準となる位置とを用いて上記転送画像領域の基準となる位置を生成する基準位置生成部とを具備する物体検出制御装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、複数の物体検出部のうちいずれか１つの物体検出部に検出処理を割り当てて、当該物体検出部の検出領域に応じた転送画像領域を生成させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成するようにしてもよい。これにより、他の物体検出部に割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。この場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として上記複数の物体検出部の個数と上記所定の画素数とに基づいて求められた数値を用いるようにしてもよい。これにより、物体検出部の個数と所定の画素数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【００１１】
また、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として予め推定した推定値を用いるようにしてもよい。これにより、予め推定した推定値を用いて転送画像領域のサイズを生成させるという作用をもたらす。
【００１２】
また、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記複数の物体検出部の各々に対応する複数のカウンタと、上記検出処理割当部により１つの物体検出部が割り当てられた場合には上記複数のカウンタのうち上記割り当てられた１つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、上記検出処理割当部により上記１つの物体検出部が割り当てられた場合には上記割り当てられた１つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、上記セレクタから出力されたカウンタ値と上記所定の画素数とに基づいて算出した数値を上記転送画像領域のサイズとして出力する転送画像サイズ算出部とを備えるようにしてもよい。これにより、他の物体検出部に割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【００１３】
また、この第１の側面において、上記検出処理割当部は、上記割り当てられた物体検出部から上記検出処理の終了通知を受けると上記割り当てられた物体検出部に次の検出処理を割り当てるようにしてもよい。これにより、検出処理を終了した物体検出部の待ち時間を削減させるという作用をもたらす。
【００１４】
また、この第１の側面において、上記検出処理割当部は、上記複数の物体検出部に順番に上記検出処理を割り当てるようにしてもよい。これにより、転送画像領域のサイズを一定にさせるという作用をもたらす。
【００１５】
また、本発明の第２の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、上記複数の物体検出処理装置のうちいずれか１つの物体検出装置に上記検出処理を割り当てる検出処理割当部と、上記割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた上記検出領域の基準となる位置を用いて上記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置とを備える物体検出システムである。これにより、複数の物体検出装置のうちいずれか１つの物体検出装置に検出処理を割り当てて、当該物体検出装置の検出領域に応じた転送画像領域を生成させるという作用をもたらす。
【発明の効果】
【００１６】
本発明によれば、複数のプロセッサを用いて物体の検出処理を行うことによって処理速度を向上させることができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１７】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明の実施の形態における顔検出装置を示すブロック図である。顔検出装置１００は、マルチプロセッサ１１０と、画像メモリ１２０と、表示部１３０とを備える。
【００１９】
マルチプロセッサ１１０は、装置全体の制御やタスクの割当てを行うものである。このマルチプロセッサ１１０は、１つのＣＰＵ（Central Processing Unit）パッケージ上に異なる２種類のプロセッサが複数搭載されているプロセッサである。ここでは、異なる２種類のプロセッサを制御プロセッサ（ＰＰＵ：PowerPC Processor Unit）および演算プロセッサ（ＳＰＵ：Synergistic Processor Unit）と呼ぶ。
【００２０】
マルチプロセッサ１１０は、制御プロセッサ（ＰＰＵ）２００と、演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃７）４８０と、バス４９０とを備え、画像メモリ１２０と表示部１３０に接続される。また、このマルチプロセッサ１１０は特許請求の範囲に記載の物体検出システムの一例である。
【００２１】
制御プロセッサ（ＰＰＵ）２００は、主に演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃７）４８０を制御するものである。具体的には、この制御プロセッサ２００は、画像メモリ１２０に保持されている顔の検出対象である入力画像の領域に基づいて演算プロセッサ４１０乃至４８０に顔検出処理の割当てを行う。この制御プロセッサ２００は、入力画像に対する顔検出処理が終了すると、大きさの異なる顔を検出するために、入力画像を所定の縮小率で順次縮小化した縮小画像を生成して画像メモリ１２０に保持される。そして、制御プロセッサ２００は、その縮小画像の領域に基づいて演算プロセッサ４１０乃至４８０に顔検出処理の割当てを行い、縮小画像のサイズが所定の最小サイズになるまで顔検出処理の割当てを繰り返す。また、制御プロセッサ２００は、演算プロセッサ４１０乃至４８０から受け取った入力画像および複数の縮小画像についての顔検出結果を纏めて入力画像についての最終的な顔検出結果を算出する。そして、この制御プロセッサ２００は、その顔検出結果に基づいて出力画像を生成して表示部１３０に供給する。また、この制御プロセッサ２００は特許請求の範囲に記載の物体検出制御装置の一例である。
【００２２】
演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃７）４８０は、制御プロセッサ（ＰＰＵ）２００からの指示に基づいて顔検出処理を行うものである。また、演算プロセッサ４１０乃至４８０は、その顔検出処理の終了通知とともに検出結果を制御プロセッサ２００に出力する。また、この演算プロセッサ４１０乃至４８０は特許請求の範囲に記載の物体検出部および物体検出装置の一例である。
【００２３】
バス４９０は、制御プロセッサ２００と、演算プロセッサ４１０乃至４８０と、画像メモリ１２０と、表示部１３０とを相互に接続するものである。このバス４９０を経由して、各構成部間のデータアクセスが行われる。
【００２４】
画像メモリ１２０は、各プロセッサの処理に必要なデータを保持するものである。この画像メモリ１２０は、入力画像データおよび制御プロセッサ２００により入力画像データに基づいて生成された縮小画像データを保持する。
【００２５】
表示部１３０は、制御プロセッサ２００から供給された顔検出結果を出力画像として表示するものである。この表示部１３０は、例えばＬＣＤ（Liquid Crystal Display）により実現することができる。
【００２６】
なお、ここでは一例として、マルチプロセッサ１１０が８つの演算プロセッサから構成される例を示したが、演算プロセッサの数はこれに限定されるものではない。
【００２７】
図２は、本発明の実施の形態における制御プロセッサ（ＰＰＵ）２００および演算プロセッサ（ＳＰＵ）４００の一機能構成例を示すブロック図である。ここでは、制御プロセッサ２００と、演算プロセッサ４００と、画像メモリ１２０と、表示部１３０とが示されている。なお、画像メモリ１２０および表示部１３０は、図１と同様の機能であるため、ここでの説明を省略する。
【００２８】
制御プロセッサ（ＰＰＵ）２００は、転送画像割当部３００と、通信部２１０と、縮小画像生成部２２０と、顔検出結果算出部２３０と、出力画像生成部２４０とを備える。また、演算プロセッサ（ＳＰＵ）４００は、通信部５１０と、画像データ転送部５２０と、ローカル画像メモリ５３０と、顔検出部５４０とを備える。
【００２９】
転送画像割当部３００は、各演算プロセッサ４００に顔検出処理を順次割り当てるものである。この転送画像割当部３００は、顔検出領域を所定の画素数ずつ移動させながら各演算プロセッサ４００に割り当てる。顔検出領域を順次移動させることに伴い、演算プロセッサ４００のローカル画像メモリ５３０に新たにデータを転送する必要が生じる。そこで、転送画像割当部３００は、顔検出領域に応じて新たに転送が必要となるデータの領域（以下、「転送画像領域」という。）を示す転送画像領域情報を演算プロセッサ４００に通知する。これにより、演算プロセッサ４００は、制御プロセッサ２００からの転送画像領域情報に基づいてローカル画像メモリ５３０にデータを転送し、その転送画像領域情報から定まる顔検出領域内において顔検出処理を行う。なお、ここにいう転送画像領域情報には、転送画像領域の始点アドレス、高さ、および、幅が含まれる。したがって、転送画像割当部３００は、次に顔検出処理を割り当てるべき演算プロセッサ４００を決定すると、その演算プロセッサの番号と転送画像領域の始点アドレス、高さ、および、幅とを生成して通信部２１０に供給する。なお、本発明の実施の形態では、演算プロセッサ４００に顔検出処理を割り当てる際に、顔検出領域を２画素ずつ右方向に移動させることとする。
【００３０】
また、転送画像割当部３００は、各演算プロセッサからの検出処理の終了通知を受け取って、１枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部２２０に縮小画像の生成を指示する。そして、転送画像割当部３００は、画像メモリ１２０上に生成された縮小画像の領域として、例えば、画像メモリ１２０上の縮小画像の始点アドレス、高さ、および、幅を縮小画像生成部２２０から取得する。これ以降、転送画像割当部３００は、この縮小画像を対象として、顔検出処理の割当てを行う。また、この転送画像割当部３００は特許請求の範囲に記載の検出処理割当部、サイズ生成部および基準位置生成部の一例である。
【００３１】
通信部２１０は、各演算プロセッサ４００との間の通信を行うものである。この通信部２１０は、転送画像割当部３００から供給された演算プロセッサの番号に対応する演算プロセッサに転送画像領域情報を送信する。また、通信部２１０は、各演算プロセッサ４００からの顔検出処理の終了通知および顔検出結果をそれぞれ転送画像割当部３００および顔検出結果算出部２３０に供給する。
【００３２】
縮小画像生成部２２０は、転送画像割当部３００からの指示に基づいて画像メモリ１２０上の入力画像または縮小画像を所定の縮小率で縮小して、画像メモリ１２０に保持させるものである。また、縮小画像生成部２２０は、画像メモリ１２０に保持されている縮小画像の領域情報を転送画像割当部３００に通知する。また、縮小画像生成部２２０は、縮小画像のサイズが所定の最小サイズとなった場合には、その旨を転送画像割当部３００および顔検出結果算出部２３０に通知する。
【００３３】
顔検出結果算出部２３０は、縮小画像生成部２２０により生成された最小サイズの縮小画像において顔検出処理が終わると、各演算プロセッサ４００からの顔検出結果に基づいて入力画像に対する顔検出結果（顔の位置、大きさなど）を算出するものである。この顔検出結果算出部２３０は、その顔検出結果を出力画像生成部２４０に供給する。
【００３４】
出力画像生成部２４０は、顔検出結果算出部２３０からの顔検出結果に基づいて入力画像に対する顔の領域を示す顔領域画像を生成し、入力画像と合成して表示部１３０に出力するものである。
【００３５】
演算プロセッサ（ＳＰＵ）４００において、通信部５１０は、制御プロセッサ２００との間の通信を行うものである。この通信部５１０は、制御プロセッサ２００からの転送画像領域情報を画像データ転送部５２０および顔検出部５４０に供給する。また、通信部５１０は、顔検出部５４０からの終了通知および顔検出結果を制御プロセッサ２００の通信部２１０に送信する。
【００３６】
画像データ転送部５２０は、制御プロセッサ２００からの転送画像領域情報に基づいて画像メモリ１２０に保持されている画像データをローカル画像メモリ５３０に転送するものである。
【００３７】
ローカル画像メモリ５３０は、画像データ転送部５２０により転送された画像データを保持するものである。
【００３８】
顔検出部５４０は、制御プロセッサ２００からの転送画像領域情報に基づいて顔検出領域を計算して、その顔検出領域内の画像データに含まれる顔を検出するものである。具体的には、この顔検出部５４０は、転送画像領域の始点アドレスおよび幅からローカル画像メモリ５３０に保持されている画像データの終点アドレスを算出し、その終点アドレスに基づいて顔検出領域を求める。ここでは、顔検出領域の幅は２０画素で、高さは転送画像領域の高さとする。
【００３９】
図３は、本発明の実施の形態における顔検出装置１００の第１の実施例における転送画像割当部３００の一構成例を示すブロック図である。ここでは、転送画像割当部３００と、受信部２１１と、送信部２１２とが示されている。また、受信部２１１および送信部２１２は、通信部２１０に相当し、演算プロセッサ４００との間の通信を行う。
【００４０】
転送画像割当部３００は、ＳＰＵ割当部３１０と、転送画像幅生成部３２１と、始点アドレス生成部３７０とを備える。
【００４１】
ＳＰＵ割当部３１０は、複数の演算プロセッサ４００に顔検出処理を順次割り当てるものである。例えば、後述する図４のように、図１で示した３つの演算プロセッサ４１０（ＳＰＵ＃０）乃至４３０（ＳＰＵ＃２）に顔検出処理を割り当てる場合を想定する。この場合、ＳＰＵ割当部３１０は、演算プロセッサ４１０乃至４３０の全てから終了通知を受け取った後に、所定の順番で演算プロセッサ４１０乃至４３０に顔検出処理を割り当てる。例えば、最初に演算プロセッサ４１０（ＳＰＵ＃０）、２番目に演算プロセッサ４２０（ＳＰＵ＃１）、３番目に演算プロセッサ４３０（ＳＰＵ＃２）、４番目に演算プロセッサ４１０（ＳＰＵ＃０）というように循環しながら順番に割り当てが行われる。
【００４２】
また、ＳＰＵ割当部３１０は、割り当てた演算プロセッサの番号および転送画像領域（入力画像または縮小画像）の高さを送信部２１２に供給する。それとともに、ＳＰＵ割当部３１０は、始点アドレス生成部３７０に割当てタイミング信号を、転送画像幅生成部３２１にその演算プロセッサに対して顔検出処理を割り当てた割当回数をそれぞれ供給する。また、ＳＰＵ割当部３１０は、始点アドレス生成部３７０から供給される転送画像領域の終点アドレスが入力画像または縮小画像の終点アドレスと一致した場合には、縮小画像生成部２２０に縮小画像の生成を指示する。また、ＳＰＵ割当部３１０は、縮小画像生成部２２０から縮小画像の始点アドレス、高さ、および、幅を取得する。また、このＳＰＵ割当部３１０は特許請求の範囲に記載の検出処理割当部の一例である。
【００４３】
転送画像幅生成部３２１は、ＳＰＵ割当部３１０からの割当回数に基づいて転送画像幅を送信部２１２および始点アドレス生成部３７０に供給するものである。また、この転送画像幅生成部３２１は特許請求の範囲に記載のサイズ生成部の一例である。この転送画像幅生成部３２１は、転送画像幅保持部３５１および３５２とセレクタ３６０とを備える。
【００４４】
セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数に基づいて転送画像幅保持部３５１および３５２のいずれか一方を選択して送信部２１２に出力するものである。例えば、セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数が「１」の場合には、転送画像幅保持部３５１に保持されている転送画像幅の初期値（２０）を送信部２１２および始点アドレス生成部３７０に出力する。一方、ＳＰＵ割当部３１０からの割当回数が「１」以外の場合には、転送画像幅保持部３５２に保持されている転送画像幅（６）を送信部２１２および始点アドレス生成部３７０に出力する。ここで、この転送画像幅は次式により表わすことができる。
転送画像幅＝顔検出領域の移動ステップ×演算プロセッサの総数
【００４５】
なお、顔検出領域の移動ステップとは、顔検出処理を割り当てるたびに顔検出領域を移動させる画素数である。ここでの顔検出領域の移動ステップは２であり、これより、転送画像幅は６（＝２×３）となる。
【００４６】
始点アドレス生成部３７０は、ＳＰＵ割当部３１０からの割当てタイミングに基づいて転送画像領域の始点アドレスを生成するものである。この始点アドレス生成部３７０は、転送画像領域の始点アドレスを送信部２１２に供給する。また、この始点アドレス生成部３７０は特許請求の範囲に記載の基準生成部の一例である。
【００４７】
この始点アドレス生成部３７０は、終点アドレス出力部３７１および始点アドレス出力部３７２を備える。終点アドレス出力部３７１は、ＳＰＵ割当部３１０からの割当てタイミングごとに転送画像領域の終点アドレスを「２」ずつ加算するものである。これにより、転送画像割当部３００は、顔検出領域を２画素ずつ移動させながら割り当てることができるようになる。なお、転送画像領域の終点アドレスは、例えば、入力画像または縮小画像の始点アドレスに顔検出領域の幅（２０）を加えた位置を基準とする。また、この終点アドレス出力部３７１は、加算された転送画像領域の終点アドレスを始点アドレス出力部３７２に出力する。始点アドレス出力部３７２は、終点アドレス出力部３７１からの終点アドレスと転送画像幅生成部３２１からの転送画像幅とを用いて転送画像領域の始点アドレスを出力するものである。具体的には、この転送画像領域の始点アドレスは、終点アドレスに１を加えたものから転送画像幅を減じることにより求められる。また、始点アドレス出力部３７２は、出力された始点アドレスを送信部２１２に供給する。
【００４８】
このように、転送画像割当部３００は、顔検出処理を割り当てた演算プロセッサの番号と、転送画像領域情報として転送画像領域の始点アドレス、高さ、および、幅とを送信部２１２に供給する。
【００４９】
図４は、本発明の実施の形態における顔検出装置１００の第１の実施例における処理方法を例示する概念図である。図４には、左から順に演算プロセッサ４１０（ＳＰＵ＃０）から演算プロセッサ（ＳＰＵ＃２）４３０のローカル画像メモリ５３０と転送画像領域と顔検出領域４０１との関係が示されている。この例では、説明の便宜上、３つの演算プロセッサ４１０（ＳＰＵ＃０）乃至４３０（ＳＰＵ＃２）による顔検出処理を想定している。また、制御プロセッサ２００により、図４（ａ）乃至（ｉ）の順番に顔検出処理が割り当てられた場合を想定している。なお、各ローカル画像メモリの枠の上に示された数値は、顔検出領域４０１における左右両端の画素列の番号を表わしている。また、各ローカル画像メモリの左端の画素列を０番目として表わしている。
【００５０】
図４（ａ）乃至（ｉ）では、顔検出領域４０１が右方向に２画素ずつ移動する。図４（ａ）乃至（ｃ）では、顔検出領域４０１と同じサイズの転送画像領域４１１、４２１および４３１が演算プロセッサ４１０乃至４３０に転送される。
【００５１】
演算プロセッサ（ＳＰＵ＃０）４１０に対しては、図４（ａ）、図４（ｄ）および図４（ｇ）の順に顔検出処理が割り当てられる。そして、図４（ｄ）および図４（ｇ）では、顔検出領域４０１が２画素ずつ移動することに起因して新たに必要となる幅６画素の転送画像領域４１２および４１３が演算プロセッサ（ＳＰＵ＃０）４１０に転送される。また、演算プロセッサ（ＳＰＵ＃１）４２０に対しては、図４（ｂ）、図４（ｅ）および図４（ｈ）の順に顔検出処理が割り当てられる。そして、図４（ｅ）および図４（ｈ）では、演算プロセッサ４１０と同様に、幅６画素の転送画像領域４２２および４２３が演算プロセッサ（ＳＰＵ＃１）４２０に転送される。演算プロセッサ（ＳＰＵ＃２）４３０も上述のように処理される。
【００５２】
このように、３つの演算プロセッサ４１０乃至４３０に顔検出処理を順次割り当てることにより、顔検出処理の処理速度を向上させることができる。また、演算プロセッサ４１０乃至４３０に対して順番に顔検出処理を割り当てることにより転送画像幅を一意に定めることができる。
【００５３】
次に本発明の実施の形態における制御プロセッサ２００および演算プロセッサ４００の動作について図面を参照して説明する。
【００５４】
図５は、本発明の実施の形態における顔検出装置１００の第１の実施例における制御プロセッサ２００の顔検出処理制御方法の処理手順例を示すフローチャートである。
【００５５】
最初に、転送画像割当部３００により画像メモリ１２０上の入力画像の始点アドレス、高さ、および、幅が取得される（ステップＳ９１１）。次に、入力画像の始点アドレス、高さ、および、幅に基づいて転送画像割当部３００により転送画像割当処理が実行される（ステップＳ９２０）。次に、顔検出処理を割り当てられた演算プロセッサ（ＳＰＵ＃ｉ）に処理開始指示として転送画像領域情報が送信される（ステップＳ９１３）。次に、各演算プロセッサからの終了通知が受信される（ステップＳ９１４）。次に、転送画像割当部３００により１枚の入力画像または縮小画像の顔検出処理が終了したか否かが判断される（ステップＳ９１５）。そして、１枚の入力画像または縮小画像の顔検出処理が終了していない場合には、ステップＳ９２０に戻る。
【００５６】
一方、１枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部２２０により、所定の縮小率の縮小画像が生成され、画像メモリ１２０に保持される（ステップ９１６）。次に、縮小画像が所定のサイズより小さいか否かが判断される（ステップＳ９１７）。そして、縮小画像が所定のサイズより大きい場合には、ステップＳ９２０に戻り、縮小画像の始点アドレス、高さ、および、幅に基づいて転送画像割当処理が実行される。
【００５７】
一方、縮小画像が所定のサイズより小さい場合には、各演算プロセッサ（ＳＰＵ）４００から受け取った入力画像および複数の縮小画像についての顔検出結果に基づいて入力画像についての最終的な顔検出結果が算出される（ステップＳ９１８）。
【００５８】
図６は、本発明の実施の形態における顔検出装置１００の第１の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９２０）の処理手順例を示すフローチャートである。ここでは、３つの演算プロセッサ４１０乃至４３０による顔検出処理を想定している。
【００５９】
最初に、ＳＰＵ割当部３１０により顔検出処理が演算プロセッサ（ＳＰＵ＃ｉ）４００に割り当てられる（ステップＳ９２１）。なお、このステップＳ９２１は特許請求の範囲に記載の検出処理割当手順の一例である。次に、ＳＰＵ割当部３１０により転送画像高さが出力される（ステップＳ９２２）。次に、演算プロセッサ（ＳＰＵ＃ｉ）４００が１回目の顔検出処理か否かが判断される（ステップＳ９２３）。そして、１回目の顔検出処理の場合には、転送画像幅に初期値の「２０」が設定される（ステップＳ９２７）。一方、２回目以降の顔検出処理の場合には、転送画像幅に「６」が設定される（ステップＳ９２４）。なお、このステップＳ９２４は特許請求の範囲に記載のサイズ生成手順の一例である。
【００６０】
次に、終点アドレス出力部３７１により終点アドレスに２が加えられると（ステップＳ９２５）、始点アドレス出力部３７２によりその終点アドレスに１を加え、さらに転送画像幅を減じた始点アドレスが出力される（ステップＳ９２６）。これにより、転送画像領域の始点アドレス、高さ、および、幅が生成され、画像転送領域として送信される。なお、このステップＳ９２５およびＳ９２６は、特許請求の範囲に記載の基準位置生手順の一例である。
【００６１】
図７は、本発明の実施の形態における演算プロセッサ４００による顔検出方法の処理手順例を示すフローチャートである。
【００６２】
最初に、制御プロセッサ（ＰＰＵ）２００からの処理開始指示として転送画像領域情報が受信される（ステップＳ９３１）。次に、画像データ転送部５２０により、転送画像領域情報に基づいて画像メモリ１２０から転送画像領域のデータが取得され、ローカル画像メモリ５３０に転送される（ステップＳ９３２）。次に、顔検出部５４０により、転送画像領域情報に基づいて顔検出領域が特定され、その顔検出領域内において顔検出処理が行われる（ステップＳ９３３）。次に、顔検出結果が制御プロセッサ（ＰＰＵ）２００に送信される（ステップＳ９３４）。
このように、本発明の実施の形態における第１の実施例では、複数の演算プロセッサに同時に複数の顔検出処理を行わせることにより、顔検出処理の処理速度を向上させることができる。また、複数の演算プロセッサに対して順番に顔検出処理を割り当てることにより転送画像幅を一意に定めることができる。
【００６３】
図８は、本発明の実施の形態における顔検出装置１００の第１の実施例におけるマルチプロセッサ１１０の変形例を示すブロック図である。ここでは、３つの演算プロセッサ４１０乃至４３０による顔検出処理を想定している。また、演算プロセッサ４１０乃至４３０の機能は上述しているため、ここでの説明は省略する。図８（ａ）は、本発明の実施の形態の第１の実施例における顔検出処理の割当て手法を例示する模式図である。図８（ｂ）は、本発明の実施の形態の第１の実施例における顔検出処理の割当て手法の変形例を示す模式図である。
【００６４】
図８（ａ）には、同期割当部３８１と、演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４２０と、終了通知同期部３８２とが示されている。同期割当部３８１および終了通知同期部３８２は制御プロセッサ２００に相当する。
【００６５】
同期割当部３８１は、ＳＰＵ＃０、ＳＰＵ＃１、ＳＰＵ２の順番に顔検出処理を割り当てるものである。この同期割当部３８１は、その順番に基づいて転送画像領域情報を生成して各ＳＰＵに転送画像領域情報を送信する。終了通知同期部３８２は、ＳＰＵ＃０乃至２からの終了通知を全て受信して同期が成立したことを検知すると、同期割当部３８１に同期が成立した旨を通知するものである。
【００６６】
このように、全てのＳＰＵからの終了通知を受けてから次の割当てを行うと、先に顔検出処理が終わったＳＰＵは待機状態となってしまう。そこで、この待機状態を解消するための手法を図８（ｂ）で簡単に説明する。
【００６７】
図８（ｂ）には、非同期割当部３９０と、演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４２０とが示されている。ここでは、同期割当部３８１および終了通知同期部３８２に代えて非同期割当部３９０が設けられている。この非同期割当部３９０は、各ＳＰＵから終了通知を受けると、他のＳＰＵからの終了通知を待たずに次の顔検出処理を割り当てるものである。
【００６８】
このように、ＳＰＵからの終了通知を受けると、他のＳＰＵからの終了通知を待たずに次の顔検出処理を割り当てる非同期割当てを行うことにより、待機状態のＳＰＵがなくなり、より処理速度を向上させることができる。しかしながら、この場合、顔検出領域内において転送画像領域データの欠落が生じるおそれがある。
【００６９】
図９は、非同期割当てに伴う演算プロセッサ（ＳＰＵ）４００の処理順番を例示するブロック図である。なお、ここでは、３つの演算プロセッサ４１０乃至４３０による顔検出処理を想定している。図９には、制御プロセッサ（ＰＰＵ）２００によりＳＰＵが割り当てられた順番が上から順に示されている。図８（ｂ）で示した非同期割当てを行うことにより、順番（７）と順番（８）とでは、ＳＰＵ＃１とＳＰＵ＃０との処理順番が入れ替わっている。この場合、順番（８）のＳＰＵ＃０では、検出領域内の転送画像領域データが一部欠落して、正確に顔検出処理を実行できなくなってしまう。転送画像領域データが一部欠落する例について次図を参照して説明する。
【００７０】
図１０は、図８（ｂ）で示した非同期割り当てを適用した場合の顔検出処理例を示す概念図である。この例では、説明の便宜上、３つの演算プロセッサ４１０（ＳＰＵ＃０）乃至４３０（ＳＰＵ＃２）による顔検出処理を想定している。また、制御プロセッサ２００により、図１０（ａ）乃至（ｉ）の順番に顔検出処理が割り当てられた場合を想定している。なお、図１０（ｇ）および（ｈ）以外は、図４と同様であるため、ここでの説明を省略する。
【００７１】
図１０（ｇ）および（ｈ）では、制御プロセッサ２００により、演算プロセッサ（ＳＰＵ＃１）４２０と演算プロセッサ（ＳＰＵ＃０）４１０とで割り当てられた順番が入れ替わっている。この場合、図１０（ｈ）では、演算プロセッサ（ＳＰＵ＃０）４１０において顔検出領域４０１内に画像の欠落が生じている。これは、ＳＰＵ＃０とＳＰＵ＃１との順番が入れ替わったことにより、図４（ｇ）に対してＳＰＵ＃０の顔検出領域４０１が右方向に２画素分移動したために起こる。なお、図１０（ｇ）では、ＳＰＵ＃１がＳＰＵ＃０より先に割り当てられることにより、転送画像領域４２４が転送画像領域４２２と一部重複するが、顔検出領域４０１内における画像の欠落は生じない。
【００７２】
図１１は、本発明の実施の形態における顔検出装置１００の第２の実施例における転送画像割当部３００の一構成を示すブロック図である。ここでは、転送画像割当部３００と、受信部２１１と、送信部２１２とが示されている。また、受信部２１１および送信部２１２は、通信部２１０に相当し、演算プロセッサ４００との間の通信を行う。なお、この例では、マルチプロセッサ１１０が３つの演算プロセッサ４１０（ＳＰＵ＃０）乃至４３０（ＳＰＵ＃２）で構成されている場合を想定している。
【００７３】
転送画像割当部３００は、図３で示したＳＰＵ割当部３１０および転送画像幅保持部３５２に代えてＳＰＵ割当部３１１および転送画像幅保持部３５３を備える。なお、ＳＰＵ割当部３１１および転送画像幅保持部３５３以外の構成は、図３で示した構成と同様であるため、ここでの説明を省略する。
【００７４】
ＳＰＵ割当部３１１は、演算プロセッサ４００からの終了通知を受信すると、他の演算プロセッサ４００の終了通知を待たずに、終了通知を送信した演算プロセッサ４００に次の顔検出処理を割り当てるものである。それ以外の機能はＳＰＵ割当部３１０と同様のものである。また、このＳＰＵ割当部３１１は、特許請求の範囲に記載の検出処理割当部の一例である。
【００７５】
転送画像幅保持部３５３は、転送画像幅として「１２」を保持するものである。この転送画像幅は、演算プロセッサに画像処理を割り当てる順番が変わることによって発生する画像欠落を低減するため、転送画像領域データの欠落が発生しない程度の値に設定される。ここでは一例として、転送画像幅を「１２」としている。これは、１つの演算プロセッサが顔検出処理を割り当てられた後、その演算プロセッサが次に割り当てられるまでの間に、制御プロセッサ２００が他の演算プロセッサに割り当てた回数が５回以下であれば、転送画像領域データの欠落が生じないことになる。また、この転送画像保持部３５３に保持されている数値である「１２」は特許請求の範囲に記載の推定値の一例である。
【００７６】
このように、演算プロセッサからの終了通知を受けると、他の演算プロセッサの終了通知を待たずに次の顔検出処理を割り当てるとともに、転送画像領域データの欠落が生じない程度に転送画像幅の値を大きくする。これにより、顔検出処理の精度を維持しつつ、処理速度をさらに向上させることができる。
【００７７】
図１２は、本発明の実施の形態における顔検出装置１００の第２の実施例における処理方法を示す概念図である。この例では、説明の便宜上、３つの演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０による顔検出処理を想定している。また、制御プロセッサ２００により、図１２（ａ）乃至（ｉ）の順番に顔検出処理が割り当てられた場合を想定している。なお、図１２（ａ）乃至（ｃ）は、図４（ａ）乃至（ｃ）と同様であるため、ここでの説明を省略する。
【００７８】
図１２（ｄ）乃至（ｉ）では、幅１２画素の転送画像領域データが顔検出領域内に転送される。図１２（ｇ）および（ｈ）では、制御プロセッサ２００により、演算プロセッサ（ＳＰＵ＃１）４２０と演算プロセッサ（ＳＰＵ＃０）４１０とで割り当てられた順番が入れ替わっている。この場合、図１０（ｈ）では、演算プロセッサ（ＳＰＵ＃０）４１０において、幅１２画素の転送画像領域５１４が転送されるため、顔検出領域４０１内に画像の欠落が生じない。なお、図１２（ｄ）乃至（ｉ）では、新たに転送され転送画像領域データの一部が既に保持されている転送画像領域データと重複している。
【００７９】
図１３は、本発明の実施の形態における顔検出装置１００の第２の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９２０）の処理手順例を示すフローチャートである。ここでは、３つの演算プロセッサ４１０乃至４３０による顔検出処理を想定している。なお、ここでは、図６で示したステップＳ９２４に代えてステップＳ９３４の処理手順が示されており、ステップＳ９３４以外の処理手順は、図６で示した処理手順と同様であるため、同一の符号を付してここでの説明は省略する。
【００８０】
ステップＳ９２３で演算プロセッサ（ＳＰＵ＃ｉ）４００が一回目の顔検出処理か否かが判断され、１回目の処理の場合には、転送画像幅に初期値の「２０」が設定される（ステップＳ９２７）。一方、２回目以降の処理の場合には、転送画像幅に「１２」が設定される（ステップＳ９３４）。次に、ステップＳ９２５に進む。なお、このステップＳ９３４は特許請求の範囲に記載のサイズ生成手順の一例である。
【００８１】
このように、本発明の実施の形態における第２の実施例では、演算プロセッサからの終了通知を受けると、他の演算プロセッサの終了通知を待たずに次の顔検出処理を割り当てることにより、処理速度をさらに向上させることができる。また、このような非同期の割り当て処理に伴い転送画像領域データの欠落が生じない程度に転送画像幅の値を設定することにより、顔検出処理の精度を維持することができる。
【００８２】
図１４は、本発明の実施の形態における顔検出装置１００の第３の実施例における転送画像割当部３００の一構成を示すブロック図である。ここでは、転送画像割当部３００と、受信部２１１と、送信部２１２とが示されている。なお、この例では、マルチプロセッサ１１０が３つの演算プロセッサ４１０（ＳＰＵ＃０）乃至４３０（ＳＰＵ＃２）で構成されている場合を想定している。また、受信部２１１および送信部２１２は、通信部２１０に相当し、演算プロセッサ４００との間の通信を行う。
【００８３】
転送画像割当部３００は、図１１で示した転送画像幅生成部３２２に代えて転送画像幅生成部３２３を備える。なお、転送画像幅生成部３２３以外の構成は、図１１で示した構成と同様であるため、ここでの説明を省略する。
【００８４】
転送画像幅生成部３２３は、カウンタ制御部３３０と、カウンタ３３１乃至３３３と、セレクタ３４０と、転送画像幅保持部３５１および転送画像幅算出部３５４と、セレクタ３６０とを備える。
【００８５】
カウンタ制御部３３０は、カウンタ３３１乃至３３３を制御するものである。このカウンタ制御部３３０は、ＳＰＵ割当部３１２からの演算プロセッサの番号（ｉ）に応じてカウンタ３３１乃至３３３のカウンタ値を初期化または「１」増加させる。例えば、演算プロセッサの番号が「０」の場合には、カウンタ３３１のカウンタ値を「０」に初期化するとともにカウンタ３３２および３３３のカウンタ値を「１」増加させる。また、カウンタ制御部３３０は、ＳＰＵ割当部３１２から新たに生成された縮小画像に対する顔検出処理の開始信号を受信すると、カウンタ３３１乃至３３３のカウンタ値を「０」に初期化する。
【００８６】
カウンタ３３１乃至３３３は、演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０にそれぞれ対応するカウンタである。このカウンタ３１１乃至３３３は、カウンタ制御部３３０からの指示に基づいてカウンタ値を変更する。このカウンタ３１１乃至３３３は、それぞれのカウンタ値をセレクタ３４０に出力する。
【００８７】
セレクタ３４０は、カウンタ３３１乃至３３３のうち、ＳＰＵ割当部３１２からの演算プロセッサの番号（ｉ）に応じて１つのカウンタを選択して転送画像幅算出部３５４にそのカウンタ値を供給するものである。例えば、ＳＰＵ割当部３１２からの演算プロセッサの番号が「０」の場合には、セレクタ３４０は、カウンタ３３１のカウンタ値を転送画像幅算出部３５４に供給する。また、このセレクタ３４０は特許請求の範囲に記載のセレクタの一例である。
【００８８】
転送画像幅算出部３５４は、セレクタ３４０から供給されたカウンタ値に基づいて転送画像幅を算出するものである。具体的には、転送画像幅算出部３５４は、供給されたカウンタ値に１を加えて２倍した値を転送画像幅として出力する。この転送画像幅の計算は、次式で表わすことができる。
転送画像幅＝（１＋カウンタ値）×顔検出領域の移動ステップ
【００８９】
ここで、カウンタ値は、ＳＰＵ割当部３１２に割り当てられるまで「１」ずつ増加するものであり、１つの演算プロセッサに対して前回の割り当てから今回の割り当てまでの間に、他の演算プロセッサに顔検出処理が割り当てられた回数を示している。つまり、処理の順番をスキップされた回数がカウンタ値に保持されることになる。この例では、顔検出処理を割り当てるごとに顔検出領域が２画素ずつ右に移動するため、転送画像幅＝（１＋カウンタ値）×２となる。また、この転送画像幅算出部３５４は特許請求の範囲に記載の転送画像サイズ算出部の一例である。
【００９０】
セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数に基づいて転送画像幅保持部３５１および転送画像幅算出部３５４のいずれか一方が選択され送信部２１２に出力される。
【００９１】
図１５は、本発明の実施の形態における顔検出装置１００の第３の実施例における転送画像割当部３００のカウンタ値の遷移例を示す図である。ここでは、図１０で示した順番で顔検出処理が演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０に割り当てられた場合を想定している。図１５には、制御プロセッサ２００が顔検出処理を割り当てた順番とカウンタ３３１乃至３３３のカウンタ値の対応関係が示されている。カウンタ６４１乃至６４３には、カウンタ３３１乃至３３３のカウンタ値がそれぞれ示されている。処理順番６５１乃至６５９には、制御プロセッサ２００が顔検出処理を割り当てた処理順番が示されており、この順番は、図１０（ａ）乃至（ｉ）に対応する。
【００９２】
各処理順番６５１乃至６５９において、カウンタ値が「０」であるカウンタは、そのカウンタに対応する演算プロセッサ（ＳＰＵ＃０）が制御プロセッサ２００により検出処理を割り当てられたことを意味する。例えば、処理順番６５１では、演算プロセッサ（ＳＰＵ＃０）４１０に対応するカウンタ６４１が「０」を示しているため、演算プロセッサ（ＳＰＵ＃０）４１０が顔検出処理を割り当てられたことを表わしている。
【００９３】
また、カウンタ６４１乃至６４３においては、対応する演算プロセッサに顔検出処理が割り当てられるまでは、処理順番が１つ増えるたびにカウンタ６４１乃至６４３のカウンタ値も「１」増加する。例えば、カウンタ６４１のカウンタ値は、処理順番６５５乃至６５７において「１」ずつ増加している。
【００９４】
ここで、カウンタ６４１乃至６４３のカウンタ値を用いた転送画像幅の算出について簡単に説明する。例えば、処理順番６５８においては、まず、カウンタ６４１に対応する演算プロセッサ（ＳＰＵ＃０）４１０が割り当てられる。そして、このときのカウンタ３３１のカウンタ値は、処理順番６５７に示された「３」であり、セレクタ３４０からこのカウンタ値「３」が出力される。次に、このカウンタ値に今回割り当てた分の１を加えた後、顔検出領域の移動ステップである２を乗算することによって、転送画像幅として「８」（＝（１＋３）×２）が出力される。
【００９５】
このように、各演算プロセッサに対応するカウンタを設けて顔検出処理が割り当てられるごとにカウンタ値を「１」ずつ増やすことによって、各演算プロセッサにおいて処理の順番が何回スキップされたか管理することができる。そして、そのスキップされた回数に基づいて転送画像幅を算出することによって、転送画像領域データの欠落を防ぎ、しかも、ローカル画像メモリ５３０に既に保持されている転送画像領域データと重複することなく転送画像領域データを転送させることができる。
【００９６】
図１６は、本発明の実施の形態における顔検出装置１００の第３の実施例における処理方法を示す概念図である。この例では、説明の便宜上、３つの演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０による顔検出処理を想定している。また、制御プロセッサ２００により、図１６（ａ）乃至（ｉ）の順番に顔検出処理が割り当てられた場合を想定している。なお、図１６（ａ）乃至（ｃ）は、図４（ａ）乃至（ｃ）と同様であるため、ここでの説明を省略する。
【００９７】
図１６（ｇ）および（ｈ）では、制御プロセッサ２００により、演算プロセッサ（ＳＰＵ＃１）４２０と演算プロセッサ（ＳＰＵ＃０）４１０とで順番が入れ替わっている。この場合、図１６（ｈ）では、図１５で述べたように、カウンタ値に応じて転送画像幅を算出されることによって、幅８画素の転送画像領域６１４が既存の転送画像領域と重複することなく、転送されている。また、図１６（ｇ）では、図１５で示した計算により幅が４（＝（１＋１）×２）画素の転送画像領域６２４が既存の転送画像領域と重複することなく、転送されている。
【００９８】
図１７は、本発明の実施の形態における顔検出装置１００の第３の実施例における制御プロセッサ２００の顔検出処理制御方法の処理手順例を示すフローチャートである。
【００９９】
最初に、転送画像割当部３００により画像メモリ１２０上の入力画像の始点アドレス、高さおよび幅が取得される（ステップＳ９１１）。次に、カウンタ制御部３３０により各演算プロセッサに対応するカウンタのカウンタ値を初期値に設定させる（ステップＳ９５２）。次に、入力画像の始点アドレス、高さ、および、幅に基づいて転送画像割当部３００により転送画像処理が実行される（ステップＳ９６０）。次に、顔検出処理を割り当てられた演算プロセッサ（ＳＰＵ＃ｉ）に処理開始指示として転送画像領域情報が送信される（ステップＳ９１３）。次に、各演算プロセッサからの終了通知が受信される（ステップＳ９１４）。次に、転送画像割当部３００により１枚の入力画像または縮小画像の顔検出処理が終了したか否かが判断される（ステップＳ９１５）。そして、１枚の入力画像または縮小画像の顔検出処理が終了していない場合には、ステップＳ９６０に戻る。
【０１００】
一方、１枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部２２０により、所定の縮小率の縮小画像が生成され、画像メモリ１２０に保持される（ステップ９１６）。次に、縮小画像が所定のサイズより小さいか否かが判断される（ステップＳ９１７）。そして、縮小画像が所定のサイズより大きい場合には、ステップＳ９５２に戻り、各演算プロセッサに対応するカウンタのカウンタ値を初期値に設定させる。
【０１０１】
一方、縮小画像が所定のサイズより小さい場合には、各演算プロセッサ（ＳＰＵ）４００から受け取った入力画像および複数の縮小画像についての顔検出結果に基づいて入力画像についての最終的な顔検出結果が算出される（ステップＳ９１８）。
【０１０２】
図１８は、本発明の実施の形態における顔検出装置１００の第３の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９６０）の処理手順例を示すフローチャートである。
【０１０３】
最初に、ＳＰＵ割当部３１２により顔検出処理が演算プロセッサ（ＳＰＵ＃ｉ）４００に割り当てられる（ステップＳ９６１）。なお、このステップＳ９６１は特許請求の範囲に記載の検出処理割当手順の一例である。次に、ＳＰＵ割当部３１２により転送画像高さが出力される（ステップＳ９６２）。次に、演算プロセッサ（ＳＰＵ＃ｉ）４００が１回目の顔検出処理か否かが判断される（ステップＳ９６３）。そして、１回目の顔検出処理の場合には、転送画像幅に初期値の「２０」が設定される（ステップＳ９６９）。一方、２回目以降の顔検出処理の場合には、演算プロセッサ（ＳＰＵ＃ｉ）に対応するカウンタのカウンタ値に１を加えた後に２を乗算した数値が転送画像幅に設定される（ステップＳ９６４）。なお、このステップＳ９６４は特許請求の範囲に記載のサイズ生成手順の一例である。
【０１０４】
次に、終点アドレス出力部３７１により終点アドレスに「２」が加えられると（ステップＳ９６５）、始点アドレス出力部３７２によりその終点アドレスに１を加え、さらに転送画像幅を減じた始点アドレスが出力される（ステップＳ９６６）。なお、このステップＳ９６５およびＳ９６６は特許請求の範囲に記載の基準位置生手順の一例である。
【０１０５】
次に、カウンタ制御部３３０により、顔検出処理が割り当てられた演算プロセッサ（ＳＰＵ＃ｉ）４００に対応するカウンタのカウンタ値が「０」に初期化され（ステップＳ９６７）る。それとともに、それ以外の演算プロセッサに対応するカウンタのカウンタ値が「１」増加される（ステップＳ９６８）。
【０１０６】
このように、本発明の実施の形態における第３の実施例では、各演算プロセッサに対応するカウンタを設けてそのカウンタ値に応じて転送画像幅を算出する。これにより、転送画像領域データの欠落を生じさせることなく、効率的に転送画像領域データをローカル画像メモリに転送させることができる。
【０１０７】
図１９は、本発明の実施の形態における顔検出装置１００の第４の実施例における処理方法を示す概念図である。この例では、説明の便宜上、３つの演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０による顔検出処理を想定している。また、制御プロセッサ２００により、図１９（ａ）乃至（ｉ）の順番に顔検出処理が割り当てられた場合を想定している。図１９（ａ）乃至（ｉ）では、顔検出領域４０２の高さと転送画像領域７１１乃至７１３、７２１乃至７２３および７３１乃至７３３の高さとが入力画像または縮小画像の高さの半分に設定されている。なお、顔検出領域４０２の高さの設定以外は、他の実施例と同様であるため、ここでの説明を省略する。
【０１０８】
このように、本発明の実施の形態では、顔検出領域４０２の高さを入力画像または縮小画像の高さの半分に設定するようにしてもよい。なお、ここでは一例として、顔検出領域４０２の高さを入力画像または縮小画像の高さの半分としたが、顔検出領域４０２の高さはこの例に限られるものではなく、テンプレート画像の高さに設定してもよい。
【０１０９】
また、複数の演算プロセッサ４００のうち、処理に時間を要している演算プロセッサがある場合、それ以外の演算プロセッサであって既に処理を終了しているものに、処理に時間を要している演算プロセッサの未処理データを再配分して処理させるようにしてもよい。
【０１１０】
以上のように、本発明の実施の形態によれば、顔検出処理を複数の演算プロセッサ４００を用いて処理させることにより、処理速度を向上させることができる。また、顔検出領域を一定の方向に少しずつ移動させることによって、演算プロセッサ４００のローカル画像メモリ５３０に転送する転送画像領域のデータ量を抑えることができ、より効率的に顔検出処理を行うことができる。
【０１１１】
なお、本発明の実施の形態では、顔検出装置を例にして説明したが、顔検出部５４０において顔を検出する構成に代えて、物体検出部を設けることにより、顔以外の物体を検出する物体検出装置等にも本発明の実施の形態を適用することができる。
【０１１２】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【０１１３】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施の形態における顔検出装置を示すブロック図である。
【図２】本発明の実施の形態における制御プロセッサ（ＰＰＵ）２００および演算プロセッサ（ＳＰＵ）４００の一機能構成例を示すブロック図である。
【図３】本発明の実施の形態における顔検出装置１００の第１の実施例における転送画像割当部３００の一構成例を示すブロック図である。
【図４】本発明の実施の形態における顔検出装置１００の第１の実施例における処理方法を例示する概念図である。
【図５】本発明の実施の形態における顔検出装置１００の第１の実施例における制御プロセッサ２００の顔検出処理制御方法の処理手順例を示すフローチャートである。
【図６】本発明の実施の形態における顔検出装置１００の第１の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９２０）の処理手順例を示すフローチャートである。
【図７】本発明の実施の形態における演算プロセッサ４００による顔検出方法の処理手順例を示すフローチャートである。
【図８】本発明の実施の形態における顔検出装置１００の第１の実施例におけるマルチプロセッサ１１０の変形例を示すブロック図である。
【図９】非同期割当てに伴う演算プロセッサ（ＳＰＵ）４００の処理順番を例示するブロック図である。
【図１０】図８（ｂ）で示した非同期割り当てを適用した場合の顔検出処理例を示す概念図である。
【図１１】本発明の実施の形態における顔検出装置１００の第２の実施例における転送画像割当部３００の一構成を示すブロック図である。
【図１２】本発明の実施の形態における顔検出装置１００の第２の実施例における処理方法を示す概念図である。
【図１３】本発明の実施の形態における顔検出装置１００の第２の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９２０）の処理手順例を示すフローチャートである。
【図１４】本発明の実施の形態における顔検出装置１００の第３の実施例における転送画像割当部３００の一構成を示すブロック図である。
【図１５】本発明の実施の形態における顔検出装置１００の第３の実施例における転送画像割当部３００のカウンタ値の遷移例を示す図である。
【図１６】本発明の実施の形態における顔検出装置１００の第３の実施例における顔検出装置１００の処理方法を示す概念図である。
【図１７】本発明の実施の形態における顔検出装置１００の第３の実施例における制御プロセッサ２００の顔検出処理制御方法の処理手順例を示すフローチャートである。
【図１８】本発明の実施の形態における顔検出装置１００の第３の実施例における制御プロセッサ２００の転送画像割当処理（ステップＳ９６０）の処理手順例を示すフローチャートである。
【図１９】本発明の実施の形態における顔検出装置１００の第４の実施例における処理方法を示す概念図である。
【図２０】顔検出処理の手法を示す模式図である。
【図２１】入力画像８１０に対する顔検出処理の手法を示す模式図である。
【符号の説明】
【０１１５】
１００  顔検出装置
１１０  マルチプロセッサ
１２０  画像メモリ
１３０  表示部
２００  制御プロセッサ
２１０、５１０  通信部
２１１  受信部
２１２  送信部
２２０  縮小画像生成部
２３０  顔検出結果算出部
２４０  出力画像生成部
３００  転送画像割当部
３１０〜３１２  ＳＰＵ割当部
３２１〜３２３  転送画像幅生成部
３３０  カウンタ制御部
３３１〜３３３  カウンタ
３４０、３６０  セレクタ
３５１〜３５３  転送画像幅保持部
３５４  転送画像幅算出部
３７０  始点アドレス生成部
３７１  終点アドレス出力部
３７２  始点アドレス出力部
３８１  同期割当部
３８２  終了通知同期部
３９０  非同期割当部
４００〜４８０  演算プロセッサ
４９０  バス
５２０  画像データ転送部
５３０  ローカル画像メモリ
５４０  顔検出部
【図１】
2010009405.tif 000003
【図２】
2010009405.tif 000004
【図３】
2010009405.tif 000005
【図５】
2010009405.tif 000006
【図６】
2010009405.tif 000007
【図７】
2010009405.tif 000008
【図８】
2010009405.tif 000009
【図９】
2010009405.tif 000010
【図１１】
2010009405.tif 000011
【図１３】
2010009405.tif 000012
【図１４】
2010009405.tif 000013
【図１５】
2010009405.tif 000014
【図１７】
2010009405.tif 000015
【図１８】
2010009405.tif 000016
【図２０】
2010009405.tif 000017
【図４】
2010009405.tif 000018
【図１０】
2010009405.tif 000019
【図１２】
2010009405.tif 000020
【図１６】
2010009405.tif 000021
【図１９】
2010009405.tif 000022
【図２１】
2010009405.tif 000023
【手続補正書】
【提出日】平成21年6月24日(2009.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当部と、
前記検出処理が割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成部と
を具備する物体検出制御装置。
【請求項２】
前記サイズ生成部は、前記検出処理を割り当てられた物体検出部が過去に前記検出処理を割り当てられてから新たに前記検出処理を割り当てられるまでの間に前記検出処理割当部が他の物体検出部に前記検出処理を割り当てた回数に基づいて前記転送画像領域のサイズを生成する請求項１記載の物体検出制御装置。
【請求項３】
前記サイズ生成部は、前記検出処理を割り当てた回数として前記複数の物体検出部の個数と前記所定の画素数とに基づいて求められた数値を用いる請求項２記載の物体検出制御装置。
【請求項４】
前記サイズ生成部は、前記検出処理を割り当てた回数として予め推定した推定値を用いる請求項２記載の物体検出制御装置。
【請求項５】
前記サイズ生成部は、
前記複数の物体検出部の各々に対応する複数のカウンタと、
前記検出処理割当部により１つの物体検出部が割り当てられた場合には前記複数のカウンタのうち前記検出処理が割り当てられた１つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、
前記検出処理割当部により前記１つの物体検出部に前記検出処理が割り当てられた場合には前記検出処理が割り当てられた１つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、
前記セレクタから出力されたカウンタ値と前記所定の画素数とに基づいて算出した数値を前記転送画像領域のサイズとして出力する転送画像サイズ算出部と
を備える請求項２記載の物体検出制御装置。
【請求項６】
前記検出処理割当部は、前記検出処理が割り当てられた物体検出部から前記検出処理の終了通知を受けると前記検出処理が割り当てられた物体検出部に次の検出処理を割り当てる請求項１記載の物体検出制御装置。
【請求項７】
前記検出処理割当部は、前記複数の物体検出部に順番に前記検出処理を割り当てる請求項１記載の物体検出制御装置。
【請求項８】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、
前記複数の物体検出処理装置のうちいずれか１つの物体検出装置に前記検出処理を割り当てる検出処理割当部と、前記検出処理が割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、前記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた前記検出領域の基準となる位置を用いて前記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置と
を備える物体検出システム。
【請求項９】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記検出処理が割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手順と
を具備する物体検出制御方法。
【請求項１０】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記検出処理が割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手順と
をコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
従来、入力画像に含まれる顔等の物体を検出する手法として、例えば、入力画像に対して階層的に生成された複数の縮小画像と物体のテンプレート画像とを照合して物体を特定するテンプレートマッチング手法が知られている。このテンプレートマッチング手法では、入力画像および複数の縮小画像に対してテンプレート画像を左から右に水平方向に走査させながら、物体検出処理を行うのが一般的である。しかしながら、この手法は、相関値や差分自乗和値を用いることが多く、その処理に時間を要するという問題がある。そこで、例えば、階層的に生成される縮小画像の数を削減して、顔検出処理の速度を向上させる手法が提案されている（例えば、特許文献１参照。）。ここで、一般に用いられている顔検出処理の手法について次図を参照して簡単に説明する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか１つの物体検出部に上記検出処理を割り当てる検出処理割当部と、上記検出処理が割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズと所定の画素数ずつ移動させた上記検出領域の基準となる位置とを用いて上記転送画像領域の基準となる位置を生成する基準位置生成部とを具備する物体検出制御装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、複数の物体検出部のうちいずれか１つの物体検出部に検出処理を割り当てて、当該物体検出部の検出領域に応じた転送画像領域のサイズを生成させるという作用をもたらす。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、この第１の側面において、上記サイズ生成部は、上記検出処理を割り当てられた物体検出部が過去に上記検出処理を割り当てられてから新たに上記検出処理を割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成するようにしてもよい。これにより、他の物体検出部に割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。この場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として上記複数の物体検出部の個数と上記所定の画素数とに基づいて求められた数値を用いるようにしてもよい。これにより、物体検出部の個数と所定の画素数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、上記サイズ生成部は、上記検出処理を割り当てられた物体検出部が過去に上記検出処理を割り当てられてから新たに上記検出処理を割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として予め推定した推定値を用いるようにしてもよい。これにより、予め推定した推定値を用いて転送画像領域のサイズを生成させるという作用をもたらす。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、上記サイズ生成部は、上記検出処理を割り当てられた物体検出部が過去に上記検出処理を割り当てられてから新たに上記検出処理を割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記複数の物体検出部の各々に対応する複数のカウンタと、上記検出処理割当部により１つの物体検出部が割り当てられた場合には上記複数のカウンタのうち上記検出処理が割り当てられた１つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、上記検出処理割当部により上記１つの物体検出部に検出処理が割り当てられた場合には上記検出処理が割り当てられた１つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、上記セレクタから出力されたカウンタ値と上記所定の画素数とに基づいて算出した数値を上記転送画像領域のサイズとして出力する転送画像サイズ算出部とを備えるようにしてもよい。これにより、他の物体検出部に検出処理を割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、この第１の側面において、上記検出処理割当部は、上記検出処理が割り当てられた物体検出部から上記検出処理の終了通知を受けると上記検出処理が割り当てられた物体検出部に次の検出処理を割り当てるようにしてもよい。これにより、検出処理を終了した物体検出部の待ち時間を削減させるという作用をもたらす。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、本発明の第２の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、上記複数の物体検出処理装置のうちいずれか１つの物体検出装置に上記検出処理を割り当てる検出処理割当部と、上記検出処理が割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた上記検出領域の基準となる位置を用いて上記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置とを備える物体検出システムである。これにより、複数の物体検出装置のうちいずれか１つの物体検出装置に検出処理を割り当てて、当該物体検出装置の検出領域に応じた転送画像領域を生成させるという作用をもたらす。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数に基づいて転送画像幅保持部３５１および３５２から出力された転送画像幅のいずれか一方を選択して、その選択された転送画像幅を送信部２１２に出力するものである。例えば、セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数が「１」の場合には、転送画像幅保持部３５１に保持されている転送画像幅の初期値（２０）を送信部２１２および始点アドレス生成部３７０に出力する。一方、ＳＰＵ割当部３１０からの割当回数が「１」以外の場合には、転送画像幅保持部３５２に保持されている転送画像幅（６）を送信部２１２および始点アドレス生成部３７０に出力する。ここで、この転送画像幅は次式により表わすことができる。
転送画像幅＝顔検出領域の移動ステップ×演算プロセッサの総数
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
図９は、非同期割当てに伴う演算プロセッサ（ＳＰＵ）４００の処理順番を例示するブロック図である。なお、ここでは、３つの演算プロセッサ４１０乃至４３０による顔検出処理を想定している。図９には、制御プロセッサ（ＰＰＵ）２００により顔検出処理が割り当てられたＳＰＵの順番が上から順に示されている。図８（ｂ）で示した非同期割当てを行うことにより、順番（７）と順番（８）とでは、ＳＰＵ＃１とＳＰＵ＃０との処理順番が入れ替わっている。この場合、順番（８）のＳＰＵ＃０では、検出領域内の転送画像領域データが一部欠落して、正確に顔検出処理を実行できなくなってしまう。転送画像領域データが一部欠落する例について次図を参照して説明する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
カウンタ３３１乃至３３３は、演算プロセッサ（ＳＰＵ＃０）４１０乃至（ＳＰＵ＃２）４３０にそれぞれ対応するカウンタである。このカウンタ３３１乃至３３３は、カウンタ制御部３３０からの指示に基づいてカウンタ値を変更する。このカウンタ３３１乃至３３３は、それぞれのカウンタ値をセレクタ３４０に出力する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
セレクタ３６０は、ＳＰＵ割当部３１０からの割当回数に基づいて転送画像幅保持部３５１および転送画像幅算出部３５４から出力された転送画像幅のいずれか一方を選択して、その選択された転送画像幅を送信部２１２に出力される。