説明

物体検出制御装置、物体検出システム、物体検出制御方法およびプログラム

【課題】複数のプロセッサを用いて物体の検出処理を行うことによって処理速度を向上させる。
【解決手段】顔検出装置100は、制御プロセッサ200と複数の演算プロセッサ400とを備える。制御プロセッサ200は、転送画像割当部300を備える。転送画像割当部300は、複数の演算プロセッサ400のうちのいずれかの演算プロセッサ400に顔検出処理を順次割り当てる。また、転送画像割当部300は、演算プロセッサ400のための顔検出領域を水平方向に2画素ずつ遷移させながら割り当てることによって、その顔検出領域内に新たに含まれる転送画像領域の情報を生成して割り当てた演算プロセッサ400に送信する。演算プロセッサ400は、その転送画像領域の情報に基づいてローカル画像メモリ530にデータを転送した後、顔検出処理を行ってその顔検出結果を制御プロセッサ200に返信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体検出制御装置に関し、特に、並列処理により画像中の物体を検出する物体検出制御装置、物体検出システム、および、その制御方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【0002】
従来、入力画像に含まれる顔等の物体を検出する手法として、例えば、入力画像に対して階層的に生成された複数の縮小画像と物体のテンプレート画像とを照合して物体を特定するテンプレートマッチング手法が知られている。このテンプレートマッチング手法では、入力画像および複数の縮小画像に対してテンプレート画像を左から右に水平方向に走査させながら、物体検出処理を行うのが一般的である。しかしながら、この手法は、相間値や差分自乗和値を用いることが多く、その処理に時間を要するという問題がある。そこで、例えば、階層的に生成される縮小画像の数を削減して、顔検出処理の速度を向上させる手法が提案されている(例えば、特許文献1参照。)。ここで、一般に用いられている顔検出処理の手法について次図を参照して簡単に説明する。
【0003】
図20は、顔検出処理の手法を示す模式図である。図20(a)乃至(c)には、顔の検出対象となる入力画像810および縮小画像820および830と、顔検出領域811、821および831とが示されている。ここでは、入力画像810に含まれる異なる大きさの顔を検出するため、テンプレート画像のサイズを一定とし、入力画像のサイズを階層的に縮小させた縮小画像820および830を生成して顔検出処理を行う。ここでは、縮小画像を生成するための縮小率を0.7としている。また、顔検出領域811、821および831は、顔の検出処理を行う領域であり、その幅が20画素に設定され、高さが検出対象の入力画像810または縮小画像820乃至830の高さに設定される。
【0004】
図20(a)では、高さ960画素および幅1280画素の入力画像810に対して高さ960画素および幅20画素の顔検出領域811を左から右に移動させながら顔の検出処理を行う。この場合、顔検出領域811内においてテンプレート画像を上から下に移動させてから、顔検出領域811を右方向に移動させる。入力画像810に対する顔検出処理が終了すると、図20(b)に示すように、入力画像810の高さ、および、幅をそれぞれ0.7倍した縮小画像820を生成して顔検出領域821を、上述のように、左から右に移動させながら顔検出処理を行う。ここで、顔検出領域821の幅は、20画素であり、顔検出領域811の幅と同じであるが、顔検出領域821の高さは、縮小画像820の高さに設定される。縮小画像820に対する顔検出処理が終了すると、縮小画像820を縮小率に応じてさらに縮小させる。最終的には、図20(c)に示す縮小画像830のサイズになるまで上述の処理を繰り返す。次に、左から右に移動させる顔検出領域の遷移について簡単に説明する。
【0005】
図21は、入力画像810に対する顔検出処理の手法を示す模式図である。図21(a)乃至(c)には、入力画像810に対する顔検出領域811の遷移例が示されている。図21(a)では、顔検出領域811として入力画像810の第0乃至第19列が割り当てられる。この位置における顔検出処理が終了すると、図21(b)に示すように、顔検出領域811を右方向に2画素移動させた顔検出領域811(入力画像810の第2乃至第21列)が新たに割り当てられて顔検出処理が行われる。次に、図21(c)に示すように、顔検出領域811をさらに右方向に2画素移動させて顔検出処理が行われ、入力画像810の右端まで同様の処理が繰り返される。
【0006】
このように、階層的に縮小画像を生成して、各縮小画像に対して顔検出領域を左から右に水平方向に走査させて顔検出処理を行うが、一般に、このような顔検出処理は1つのプロセッサで実行される。
【特許文献1】特開2007−265390号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述の従来技術では、物体の検出処理において縮小画像の数を削減することにより処理速度を向上させている。しかしながら、物体の検出処理の速度は検出処理装置に備えられた1つのプロセッサの処理能力に依存するため、それ以上の速度向上を図ることができない。
【0008】
本発明はこのような状況に鑑みてなされたものであり、物体の検出処理の処理速度を向上させることを目的とする。
【課題を解決するための手段】
【0009】
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか1つの物体検出部に上記検出処理を割り当てる検出処理割当部と、上記割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズと所定の画素数ずつ移動させた上記検出領域の基準となる位置とを用いて上記転送画像領域の基準となる位置を生成する基準位置生成部とを具備する物体検出制御装置およびその処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、複数の物体検出部のうちいずれか1つの物体検出部に検出処理を割り当てて、当該物体検出部の検出領域に応じた転送画像領域を生成させるという作用をもたらす。
【0010】
また、この第1の側面において、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成するようにしてもよい。これにより、他の物体検出部に割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。この場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として上記複数の物体検出部の個数と上記所定の画素数とに基づいて求められた数値を用いるようにしてもよい。これにより、物体検出部の個数と所定の画素数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【0011】
また、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記検出処理を割り当てた回数として予め推定した推定値を用いるようにしてもよい。これにより、予め推定した推定値を用いて転送画像領域のサイズを生成させるという作用をもたらす。
【0012】
また、上記サイズ生成部は、上記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に上記検出処理割当部が他の物体検出部に上記検出処理を割り当てた回数に基づいて上記転送画像領域のサイズを生成する場合において、上記サイズ生成部は、上記複数の物体検出部の各々に対応する複数のカウンタと、上記検出処理割当部により1つの物体検出部が割り当てられた場合には上記複数のカウンタのうち上記割り当てられた1つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、上記検出処理割当部により上記1つの物体検出部が割り当てられた場合には上記割り当てられた1つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、上記セレクタから出力されたカウンタ値と上記所定の画素数とに基づいて算出した数値を上記転送画像領域のサイズとして出力する転送画像サイズ算出部とを備えるようにしてもよい。これにより、他の物体検出部に割り当てた回数に基づいて転送画像領域のサイズを生成させるという作用をもたらす。
【0013】
また、この第1の側面において、上記検出処理割当部は、上記割り当てられた物体検出部から上記検出処理の終了通知を受けると上記割り当てられた物体検出部に次の検出処理を割り当てるようにしてもよい。これにより、検出処理を終了した物体検出部の待ち時間を削減させるという作用をもたらす。
【0014】
また、この第1の側面において、上記検出処理割当部は、上記複数の物体検出部に順番に上記検出処理を割り当てるようにしてもよい。これにより、転送画像領域のサイズを一定にさせるという作用をもたらす。
【0015】
また、本発明の第2の側面は、転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、上記複数の物体検出処理装置のうちいずれか1つの物体検出装置に上記検出処理を割り当てる検出処理割当部と、上記割り当てられた物体検出部のための検出領域に応じて上記転送画像領域のサイズを生成するサイズ生成部と、上記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた上記検出領域の基準となる位置を用いて上記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置とを備える物体検出システムである。これにより、複数の物体検出装置のうちいずれか1つの物体検出装置に検出処理を割り当てて、当該物体検出装置の検出領域に応じた転送画像領域を生成させるという作用をもたらす。
【発明の効果】
【0016】
本発明によれば、複数のプロセッサを用いて物体の検出処理を行うことによって処理速度を向上させることができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【0017】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
図1は、本発明の実施の形態における顔検出装置を示すブロック図である。顔検出装置100は、マルチプロセッサ110と、画像メモリ120と、表示部130とを備える。
【0019】
マルチプロセッサ110は、装置全体の制御やタスクの割当てを行うものである。このマルチプロセッサ110は、1つのCPU(Central Processing Unit)パッケージ上に異なる2種類のプロセッサが複数搭載されているプロセッサである。ここでは、異なる2種類のプロセッサを制御プロセッサ(PPU:PowerPC Processor Unit)および演算プロセッサ(SPU:Synergistic Processor Unit)と呼ぶ。
【0020】
マルチプロセッサ110は、制御プロセッサ(PPU)200と、演算プロセッサ(SPU#0)410乃至(SPU#7)480と、バス490とを備え、画像メモリ120と表示部130に接続される。また、このマルチプロセッサ110は特許請求の範囲に記載の物体検出システムの一例である。
【0021】
制御プロセッサ(PPU)200は、主に演算プロセッサ(SPU#0)410乃至(SPU#7)480を制御するものである。具体的には、この制御プロセッサ200は、画像メモリ120に保持されている顔の検出対象である入力画像の領域に基づいて演算プロセッサ410乃至480に顔検出処理の割当てを行う。この制御プロセッサ200は、入力画像に対する顔検出処理が終了すると、大きさの異なる顔を検出するために、入力画像を所定の縮小率で順次縮小化した縮小画像を生成して画像メモリ120に保持される。そして、制御プロセッサ200は、その縮小画像の領域に基づいて演算プロセッサ410乃至480に顔検出処理の割当てを行い、縮小画像のサイズが所定の最小サイズになるまで顔検出処理の割当てを繰り返す。また、制御プロセッサ200は、演算プロセッサ410乃至480から受け取った入力画像および複数の縮小画像についての顔検出結果を纏めて入力画像についての最終的な顔検出結果を算出する。そして、この制御プロセッサ200は、その顔検出結果に基づいて出力画像を生成して表示部130に供給する。また、この制御プロセッサ200は特許請求の範囲に記載の物体検出制御装置の一例である。
【0022】
演算プロセッサ(SPU#0)410乃至(SPU#7)480は、制御プロセッサ(PPU)200からの指示に基づいて顔検出処理を行うものである。また、演算プロセッサ410乃至480は、その顔検出処理の終了通知とともに検出結果を制御プロセッサ200に出力する。また、この演算プロセッサ410乃至480は特許請求の範囲に記載の物体検出部および物体検出装置の一例である。
【0023】
バス490は、制御プロセッサ200と、演算プロセッサ410乃至480と、画像メモリ120と、表示部130とを相互に接続するものである。このバス490を経由して、各構成部間のデータアクセスが行われる。
【0024】
画像メモリ120は、各プロセッサの処理に必要なデータを保持するものである。この画像メモリ120は、入力画像データおよび制御プロセッサ200により入力画像データに基づいて生成された縮小画像データを保持する。
【0025】
表示部130は、制御プロセッサ200から供給された顔検出結果を出力画像として表示するものである。この表示部130は、例えばLCD(Liquid Crystal Display)により実現することができる。
【0026】
なお、ここでは一例として、マルチプロセッサ110が8つの演算プロセッサから構成される例を示したが、演算プロセッサの数はこれに限定されるものではない。
【0027】
図2は、本発明の実施の形態における制御プロセッサ(PPU)200および演算プロセッサ(SPU)400の一機能構成例を示すブロック図である。ここでは、制御プロセッサ200と、演算プロセッサ400と、画像メモリ120と、表示部130とが示されている。なお、画像メモリ120および表示部130は、図1と同様の機能であるため、ここでの説明を省略する。
【0028】
制御プロセッサ(PPU)200は、転送画像割当部300と、通信部210と、縮小画像生成部220と、顔検出結果算出部230と、出力画像生成部240とを備える。また、演算プロセッサ(SPU)400は、通信部510と、画像データ転送部520と、ローカル画像メモリ530と、顔検出部540とを備える。
【0029】
転送画像割当部300は、各演算プロセッサ400に顔検出処理を順次割り当てるものである。この転送画像割当部300は、顔検出領域を所定の画素数ずつ移動させながら各演算プロセッサ400に割り当てる。顔検出領域を順次移動させることに伴い、演算プロセッサ400のローカル画像メモリ530に新たにデータを転送する必要が生じる。そこで、転送画像割当部300は、顔検出領域に応じて新たに転送が必要となるデータの領域(以下、「転送画像領域」という。)を示す転送画像領域情報を演算プロセッサ400に通知する。これにより、演算プロセッサ400は、制御プロセッサ200からの転送画像領域情報に基づいてローカル画像メモリ530にデータを転送し、その転送画像領域情報から定まる顔検出領域内において顔検出処理を行う。なお、ここにいう転送画像領域情報には、転送画像領域の始点アドレス、高さ、および、幅が含まれる。したがって、転送画像割当部300は、次に顔検出処理を割り当てるべき演算プロセッサ400を決定すると、その演算プロセッサの番号と転送画像領域の始点アドレス、高さ、および、幅とを生成して通信部210に供給する。なお、本発明の実施の形態では、演算プロセッサ400に顔検出処理を割り当てる際に、顔検出領域を2画素ずつ右方向に移動させることとする。
【0030】
また、転送画像割当部300は、各演算プロセッサからの検出処理の終了通知を受け取って、1枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部220に縮小画像の生成を指示する。そして、転送画像割当部300は、画像メモリ120上に生成された縮小画像の領域として、例えば、画像メモリ120上の縮小画像の始点アドレス、高さ、および、幅を縮小画像生成部220から取得する。これ以降、転送画像割当部300は、この縮小画像を対象として、顔検出処理の割当てを行う。また、この転送画像割当部300は特許請求の範囲に記載の検出処理割当部、サイズ生成部および基準位置生成部の一例である。
【0031】
通信部210は、各演算プロセッサ400との間の通信を行うものである。この通信部210は、転送画像割当部300から供給された演算プロセッサの番号に対応する演算プロセッサに転送画像領域情報を送信する。また、通信部210は、各演算プロセッサ400からの顔検出処理の終了通知および顔検出結果をそれぞれ転送画像割当部300および顔検出結果算出部230に供給する。
【0032】
縮小画像生成部220は、転送画像割当部300からの指示に基づいて画像メモリ120上の入力画像または縮小画像を所定の縮小率で縮小して、画像メモリ120に保持させるものである。また、縮小画像生成部220は、画像メモリ120に保持されている縮小画像の領域情報を転送画像割当部300に通知する。また、縮小画像生成部220は、縮小画像のサイズが所定の最小サイズとなった場合には、その旨を転送画像割当部300および顔検出結果算出部230に通知する。
【0033】
顔検出結果算出部230は、縮小画像生成部220により生成された最小サイズの縮小画像において顔検出処理が終わると、各演算プロセッサ400からの顔検出結果に基づいて入力画像に対する顔検出結果(顔の位置、大きさなど)を算出するものである。この顔検出結果算出部230は、その顔検出結果を出力画像生成部240に供給する。
【0034】
出力画像生成部240は、顔検出結果算出部230からの顔検出結果に基づいて入力画像に対する顔の領域を示す顔領域画像を生成し、入力画像と合成して表示部130に出力するものである。
【0035】
演算プロセッサ(SPU)400において、通信部510は、制御プロセッサ200との間の通信を行うものである。この通信部510は、制御プロセッサ200からの転送画像領域情報を画像データ転送部520および顔検出部540に供給する。また、通信部510は、顔検出部540からの終了通知および顔検出結果を制御プロセッサ200の通信部210に送信する。
【0036】
画像データ転送部520は、制御プロセッサ200からの転送画像領域情報に基づいて画像メモリ120に保持されている画像データをローカル画像メモリ530に転送するものである。
【0037】
ローカル画像メモリ530は、画像データ転送部520により転送された画像データを保持するものである。
【0038】
顔検出部540は、制御プロセッサ200からの転送画像領域情報に基づいて顔検出領域を計算して、その顔検出領域内の画像データに含まれる顔を検出するものである。具体的には、この顔検出部540は、転送画像領域の始点アドレスおよび幅からローカル画像メモリ530に保持されている画像データの終点アドレスを算出し、その終点アドレスに基づいて顔検出領域を求める。ここでは、顔検出領域の幅は20画素で、高さは転送画像領域の高さとする。
【0039】
図3は、本発明の実施の形態における顔検出装置100の第1の実施例における転送画像割当部300の一構成例を示すブロック図である。ここでは、転送画像割当部300と、受信部211と、送信部212とが示されている。また、受信部211および送信部212は、通信部210に相当し、演算プロセッサ400との間の通信を行う。
【0040】
転送画像割当部300は、SPU割当部310と、転送画像幅生成部321と、始点アドレス生成部370とを備える。
【0041】
SPU割当部310は、複数の演算プロセッサ400に顔検出処理を順次割り当てるものである。例えば、後述する図4のように、図1で示した3つの演算プロセッサ410(SPU#0)乃至430(SPU#2)に顔検出処理を割り当てる場合を想定する。この場合、SPU割当部310は、演算プロセッサ410乃至430の全てから終了通知を受け取った後に、所定の順番で演算プロセッサ410乃至430に顔検出処理を割り当てる。例えば、最初に演算プロセッサ410(SPU#0)、2番目に演算プロセッサ420(SPU#1)、3番目に演算プロセッサ430(SPU#2)、4番目に演算プロセッサ410(SPU#0)というように循環しながら順番に割り当てが行われる。
【0042】
また、SPU割当部310は、割り当てた演算プロセッサの番号および転送画像領域(入力画像または縮小画像)の高さを送信部212に供給する。それとともに、SPU割当部310は、始点アドレス生成部370に割当てタイミング信号を、転送画像幅生成部321にその演算プロセッサに対して顔検出処理を割り当てた割当回数をそれぞれ供給する。また、SPU割当部310は、始点アドレス生成部370から供給される転送画像領域の終点アドレスが入力画像または縮小画像の終点アドレスと一致した場合には、縮小画像生成部220に縮小画像の生成を指示する。また、SPU割当部310は、縮小画像生成部220から縮小画像の始点アドレス、高さ、および、幅を取得する。また、このSPU割当部310は特許請求の範囲に記載の検出処理割当部の一例である。
【0043】
転送画像幅生成部321は、SPU割当部310からの割当回数に基づいて転送画像幅を送信部212および始点アドレス生成部370に供給するものである。また、この転送画像幅生成部321は特許請求の範囲に記載のサイズ生成部の一例である。この転送画像幅生成部321は、転送画像幅保持部351および352とセレクタ360とを備える。
【0044】
セレクタ360は、SPU割当部310からの割当回数に基づいて転送画像幅保持部351および352のいずれか一方を選択して送信部212に出力するものである。例えば、セレクタ360は、SPU割当部310からの割当回数が「1」の場合には、転送画像幅保持部351に保持されている転送画像幅の初期値(20)を送信部212および始点アドレス生成部370に出力する。一方、SPU割当部310からの割当回数が「1」以外の場合には、転送画像幅保持部352に保持されている転送画像幅(6)を送信部212および始点アドレス生成部370に出力する。ここで、この転送画像幅は次式により表わすことができる。
転送画像幅=顔検出領域の移動ステップ×演算プロセッサの総数
【0045】
なお、顔検出領域の移動ステップとは、顔検出処理を割り当てるたびに顔検出領域を移動させる画素数である。ここでの顔検出領域の移動ステップは2であり、これより、転送画像幅は6(=2×3)となる。
【0046】
始点アドレス生成部370は、SPU割当部310からの割当てタイミングに基づいて転送画像領域の始点アドレスを生成するものである。この始点アドレス生成部370は、転送画像領域の始点アドレスを送信部212に供給する。また、この始点アドレス生成部370は特許請求の範囲に記載の基準生成部の一例である。
【0047】
この始点アドレス生成部370は、終点アドレス出力部371および始点アドレス出力部372を備える。終点アドレス出力部371は、SPU割当部310からの割当てタイミングごとに転送画像領域の終点アドレスを「2」ずつ加算するものである。これにより、転送画像割当部300は、顔検出領域を2画素ずつ移動させながら割り当てることができるようになる。なお、転送画像領域の終点アドレスは、例えば、入力画像または縮小画像の始点アドレスに顔検出領域の幅(20)を加えた位置を基準とする。また、この終点アドレス出力部371は、加算された転送画像領域の終点アドレスを始点アドレス出力部372に出力する。始点アドレス出力部372は、終点アドレス出力部371からの終点アドレスと転送画像幅生成部321からの転送画像幅とを用いて転送画像領域の始点アドレスを出力するものである。具体的には、この転送画像領域の始点アドレスは、終点アドレスに1を加えたものから転送画像幅を減じることにより求められる。また、始点アドレス出力部372は、出力された始点アドレスを送信部212に供給する。
【0048】
このように、転送画像割当部300は、顔検出処理を割り当てた演算プロセッサの番号と、転送画像領域情報として転送画像領域の始点アドレス、高さ、および、幅とを送信部212に供給する。
【0049】
図4は、本発明の実施の形態における顔検出装置100の第1の実施例における処理方法を例示する概念図である。図4には、左から順に演算プロセッサ410(SPU#0)から演算プロセッサ(SPU#2)430のローカル画像メモリ530と転送画像領域と顔検出領域401との関係が示されている。この例では、説明の便宜上、3つの演算プロセッサ410(SPU#0)乃至430(SPU#2)による顔検出処理を想定している。また、制御プロセッサ200により、図4(a)乃至(i)の順番に顔検出処理が割り当てられた場合を想定している。なお、各ローカル画像メモリの枠の上に示された数値は、顔検出領域401における左右両端の画素列の番号を表わしている。また、各ローカル画像メモリの左端の画素列を0番目として表わしている。
【0050】
図4(a)乃至(i)では、顔検出領域401が右方向に2画素ずつ移動する。図4(a)乃至(c)では、顔検出領域401と同じサイズの転送画像領域411、421および431が演算プロセッサ410乃至430に転送される。
【0051】
演算プロセッサ(SPU#0)410に対しては、図4(a)、図4(d)および図4(g)の順に顔検出処理が割り当てられる。そして、図4(d)および図4(g)では、顔検出領域401が2画素ずつ移動することに起因して新たに必要となる幅6画素の転送画像領域412および413が演算プロセッサ(SPU#0)410に転送される。また、演算プロセッサ(SPU#1)420に対しては、図4(b)、図4(e)および図4(h)の順に顔検出処理が割り当てられる。そして、図4(e)および図4(h)では、演算プロセッサ410と同様に、幅6画素の転送画像領域422および423が演算プロセッサ(SPU#1)420に転送される。演算プロセッサ(SPU#2)430も上述のように処理される。
【0052】
このように、3つの演算プロセッサ410乃至430に顔検出処理を順次割り当てることにより、顔検出処理の処理速度を向上させることができる。また、演算プロセッサ410乃至430に対して順番に顔検出処理を割り当てることにより転送画像幅を一意に定めることができる。
【0053】
次に本発明の実施の形態における制御プロセッサ200および演算プロセッサ400の動作について図面を参照して説明する。
【0054】
図5は、本発明の実施の形態における顔検出装置100の第1の実施例における制御プロセッサ200の顔検出処理制御方法の処理手順例を示すフローチャートである。
【0055】
最初に、転送画像割当部300により画像メモリ120上の入力画像の始点アドレス、高さ、および、幅が取得される(ステップS911)。次に、入力画像の始点アドレス、高さ、および、幅に基づいて転送画像割当部300により転送画像割当処理が実行される(ステップS920)。次に、顔検出処理を割り当てられた演算プロセッサ(SPU#i)に処理開始指示として転送画像領域情報が送信される(ステップS913)。次に、各演算プロセッサからの終了通知が受信される(ステップS914)。次に、転送画像割当部300により1枚の入力画像または縮小画像の顔検出処理が終了したか否かが判断される(ステップS915)。そして、1枚の入力画像または縮小画像の顔検出処理が終了していない場合には、ステップS920に戻る。
【0056】
一方、1枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部220により、所定の縮小率の縮小画像が生成され、画像メモリ120に保持される(ステップ916)。次に、縮小画像が所定のサイズより小さいか否かが判断される(ステップS917)。そして、縮小画像が所定のサイズより大きい場合には、ステップS920に戻り、縮小画像の始点アドレス、高さ、および、幅に基づいて転送画像割当処理が実行される。
【0057】
一方、縮小画像が所定のサイズより小さい場合には、各演算プロセッサ(SPU)400から受け取った入力画像および複数の縮小画像についての顔検出結果に基づいて入力画像についての最終的な顔検出結果が算出される(ステップS918)。
【0058】
図6は、本発明の実施の形態における顔検出装置100の第1の実施例における制御プロセッサ200の転送画像割当処理(ステップS920)の処理手順例を示すフローチャートである。ここでは、3つの演算プロセッサ410乃至430による顔検出処理を想定している。
【0059】
最初に、SPU割当部310により顔検出処理が演算プロセッサ(SPU#i)400に割り当てられる(ステップS921)。なお、このステップS921は特許請求の範囲に記載の検出処理割当手順の一例である。次に、SPU割当部310により転送画像高さが出力される(ステップS922)。次に、演算プロセッサ(SPU#i)400が1回目の顔検出処理か否かが判断される(ステップS923)。そして、1回目の顔検出処理の場合には、転送画像幅に初期値の「20」が設定される(ステップS927)。一方、2回目以降の顔検出処理の場合には、転送画像幅に「6」が設定される(ステップS924)。なお、このステップS924は特許請求の範囲に記載のサイズ生成手順の一例である。
【0060】
次に、終点アドレス出力部371により終点アドレスに2が加えられると(ステップS925)、始点アドレス出力部372によりその終点アドレスに1を加え、さらに転送画像幅を減じた始点アドレスが出力される(ステップS926)。これにより、転送画像領域の始点アドレス、高さ、および、幅が生成され、画像転送領域として送信される。なお、このステップS925およびS926は、特許請求の範囲に記載の基準位置生手順の一例である。
【0061】
図7は、本発明の実施の形態における演算プロセッサ400による顔検出方法の処理手順例を示すフローチャートである。
【0062】
最初に、制御プロセッサ(PPU)200からの処理開始指示として転送画像領域情報が受信される(ステップS931)。次に、画像データ転送部520により、転送画像領域情報に基づいて画像メモリ120から転送画像領域のデータが取得され、ローカル画像メモリ530に転送される(ステップS932)。次に、顔検出部540により、転送画像領域情報に基づいて顔検出領域が特定され、その顔検出領域内において顔検出処理が行われる(ステップS933)。次に、顔検出結果が制御プロセッサ(PPU)200に送信される(ステップS934)。
このように、本発明の実施の形態における第1の実施例では、複数の演算プロセッサに同時に複数の顔検出処理を行わせることにより、顔検出処理の処理速度を向上させることができる。また、複数の演算プロセッサに対して順番に顔検出処理を割り当てることにより転送画像幅を一意に定めることができる。
【0063】
図8は、本発明の実施の形態における顔検出装置100の第1の実施例におけるマルチプロセッサ110の変形例を示すブロック図である。ここでは、3つの演算プロセッサ410乃至430による顔検出処理を想定している。また、演算プロセッサ410乃至430の機能は上述しているため、ここでの説明は省略する。図8(a)は、本発明の実施の形態の第1の実施例における顔検出処理の割当て手法を例示する模式図である。図8(b)は、本発明の実施の形態の第1の実施例における顔検出処理の割当て手法の変形例を示す模式図である。
【0064】
図8(a)には、同期割当部381と、演算プロセッサ(SPU#0)410乃至(SPU#2)420と、終了通知同期部382とが示されている。同期割当部381および終了通知同期部382は制御プロセッサ200に相当する。
【0065】
同期割当部381は、SPU#0、SPU#1、SPU2の順番に顔検出処理を割り当てるものである。この同期割当部381は、その順番に基づいて転送画像領域情報を生成して各SPUに転送画像領域情報を送信する。終了通知同期部382は、SPU#0乃至2からの終了通知を全て受信して同期が成立したことを検知すると、同期割当部381に同期が成立した旨を通知するものである。
【0066】
このように、全てのSPUからの終了通知を受けてから次の割当てを行うと、先に顔検出処理が終わったSPUは待機状態となってしまう。そこで、この待機状態を解消するための手法を図8(b)で簡単に説明する。
【0067】
図8(b)には、非同期割当部390と、演算プロセッサ(SPU#0)410乃至(SPU#2)420とが示されている。ここでは、同期割当部381および終了通知同期部382に代えて非同期割当部390が設けられている。この非同期割当部390は、各SPUから終了通知を受けると、他のSPUからの終了通知を待たずに次の顔検出処理を割り当てるものである。
【0068】
このように、SPUからの終了通知を受けると、他のSPUからの終了通知を待たずに次の顔検出処理を割り当てる非同期割当てを行うことにより、待機状態のSPUがなくなり、より処理速度を向上させることができる。しかしながら、この場合、顔検出領域内において転送画像領域データの欠落が生じるおそれがある。
【0069】
図9は、非同期割当てに伴う演算プロセッサ(SPU)400の処理順番を例示するブロック図である。なお、ここでは、3つの演算プロセッサ410乃至430による顔検出処理を想定している。図9には、制御プロセッサ(PPU)200によりSPUが割り当てられた順番が上から順に示されている。図8(b)で示した非同期割当てを行うことにより、順番(7)と順番(8)とでは、SPU#1とSPU#0との処理順番が入れ替わっている。この場合、順番(8)のSPU#0では、検出領域内の転送画像領域データが一部欠落して、正確に顔検出処理を実行できなくなってしまう。転送画像領域データが一部欠落する例について次図を参照して説明する。
【0070】
図10は、図8(b)で示した非同期割り当てを適用した場合の顔検出処理例を示す概念図である。この例では、説明の便宜上、3つの演算プロセッサ410(SPU#0)乃至430(SPU#2)による顔検出処理を想定している。また、制御プロセッサ200により、図10(a)乃至(i)の順番に顔検出処理が割り当てられた場合を想定している。なお、図10(g)および(h)以外は、図4と同様であるため、ここでの説明を省略する。
【0071】
図10(g)および(h)では、制御プロセッサ200により、演算プロセッサ(SPU#1)420と演算プロセッサ(SPU#0)410とで割り当てられた順番が入れ替わっている。この場合、図10(h)では、演算プロセッサ(SPU#0)410において顔検出領域401内に画像の欠落が生じている。これは、SPU#0とSPU#1との順番が入れ替わったことにより、図4(g)に対してSPU#0の顔検出領域401が右方向に2画素分移動したために起こる。なお、図10(g)では、SPU#1がSPU#0より先に割り当てられることにより、転送画像領域424が転送画像領域422と一部重複するが、顔検出領域401内における画像の欠落は生じない。
【0072】
図11は、本発明の実施の形態における顔検出装置100の第2の実施例における転送画像割当部300の一構成を示すブロック図である。ここでは、転送画像割当部300と、受信部211と、送信部212とが示されている。また、受信部211および送信部212は、通信部210に相当し、演算プロセッサ400との間の通信を行う。なお、この例では、マルチプロセッサ110が3つの演算プロセッサ410(SPU#0)乃至430(SPU#2)で構成されている場合を想定している。
【0073】
転送画像割当部300は、図3で示したSPU割当部310および転送画像幅保持部352に代えてSPU割当部311および転送画像幅保持部353を備える。なお、SPU割当部311および転送画像幅保持部353以外の構成は、図3で示した構成と同様であるため、ここでの説明を省略する。
【0074】
SPU割当部311は、演算プロセッサ400からの終了通知を受信すると、他の演算プロセッサ400の終了通知を待たずに、終了通知を送信した演算プロセッサ400に次の顔検出処理を割り当てるものである。それ以外の機能はSPU割当部310と同様のものである。また、このSPU割当部311は、特許請求の範囲に記載の検出処理割当部の一例である。
【0075】
転送画像幅保持部353は、転送画像幅として「12」を保持するものである。この転送画像幅は、演算プロセッサに画像処理を割り当てる順番が変わることによって発生する画像欠落を低減するため、転送画像領域データの欠落が発生しない程度の値に設定される。ここでは一例として、転送画像幅を「12」としている。これは、1つの演算プロセッサが顔検出処理を割り当てられた後、その演算プロセッサが次に割り当てられるまでの間に、制御プロセッサ200が他の演算プロセッサに割り当てた回数が5回以下であれば、転送画像領域データの欠落が生じないことになる。また、この転送画像保持部353に保持されている数値である「12」は特許請求の範囲に記載の推定値の一例である。
【0076】
このように、演算プロセッサからの終了通知を受けると、他の演算プロセッサの終了通知を待たずに次の顔検出処理を割り当てるとともに、転送画像領域データの欠落が生じない程度に転送画像幅の値を大きくする。これにより、顔検出処理の精度を維持しつつ、処理速度をさらに向上させることができる。
【0077】
図12は、本発明の実施の形態における顔検出装置100の第2の実施例における処理方法を示す概念図である。この例では、説明の便宜上、3つの演算プロセッサ(SPU#0)410乃至(SPU#2)430による顔検出処理を想定している。また、制御プロセッサ200により、図12(a)乃至(i)の順番に顔検出処理が割り当てられた場合を想定している。なお、図12(a)乃至(c)は、図4(a)乃至(c)と同様であるため、ここでの説明を省略する。
【0078】
図12(d)乃至(i)では、幅12画素の転送画像領域データが顔検出領域内に転送される。図12(g)および(h)では、制御プロセッサ200により、演算プロセッサ(SPU#1)420と演算プロセッサ(SPU#0)410とで割り当てられた順番が入れ替わっている。この場合、図10(h)では、演算プロセッサ(SPU#0)410において、幅12画素の転送画像領域514が転送されるため、顔検出領域401内に画像の欠落が生じない。なお、図12(d)乃至(i)では、新たに転送され転送画像領域データの一部が既に保持されている転送画像領域データと重複している。
【0079】
図13は、本発明の実施の形態における顔検出装置100の第2の実施例における制御プロセッサ200の転送画像割当処理(ステップS920)の処理手順例を示すフローチャートである。ここでは、3つの演算プロセッサ410乃至430による顔検出処理を想定している。なお、ここでは、図6で示したステップS924に代えてステップS934の処理手順が示されており、ステップS934以外の処理手順は、図6で示した処理手順と同様であるため、同一の符号を付してここでの説明は省略する。
【0080】
ステップS923で演算プロセッサ(SPU#i)400が一回目の顔検出処理か否かが判断され、1回目の処理の場合には、転送画像幅に初期値の「20」が設定される(ステップS927)。一方、2回目以降の処理の場合には、転送画像幅に「12」が設定される(ステップS934)。次に、ステップS925に進む。なお、このステップS934は特許請求の範囲に記載のサイズ生成手順の一例である。
【0081】
このように、本発明の実施の形態における第2の実施例では、演算プロセッサからの終了通知を受けると、他の演算プロセッサの終了通知を待たずに次の顔検出処理を割り当てることにより、処理速度をさらに向上させることができる。また、このような非同期の割り当て処理に伴い転送画像領域データの欠落が生じない程度に転送画像幅の値を設定することにより、顔検出処理の精度を維持することができる。
【0082】
図14は、本発明の実施の形態における顔検出装置100の第3の実施例における転送画像割当部300の一構成を示すブロック図である。ここでは、転送画像割当部300と、受信部211と、送信部212とが示されている。なお、この例では、マルチプロセッサ110が3つの演算プロセッサ410(SPU#0)乃至430(SPU#2)で構成されている場合を想定している。また、受信部211および送信部212は、通信部210に相当し、演算プロセッサ400との間の通信を行う。
【0083】
転送画像割当部300は、図11で示した転送画像幅生成部322に代えて転送画像幅生成部323を備える。なお、転送画像幅生成部323以外の構成は、図11で示した構成と同様であるため、ここでの説明を省略する。
【0084】
転送画像幅生成部323は、カウンタ制御部330と、カウンタ331乃至333と、セレクタ340と、転送画像幅保持部351および転送画像幅算出部354と、セレクタ360とを備える。
【0085】
カウンタ制御部330は、カウンタ331乃至333を制御するものである。このカウンタ制御部330は、SPU割当部312からの演算プロセッサの番号(i)に応じてカウンタ331乃至333のカウンタ値を初期化または「1」増加させる。例えば、演算プロセッサの番号が「0」の場合には、カウンタ331のカウンタ値を「0」に初期化するとともにカウンタ332および333のカウンタ値を「1」増加させる。また、カウンタ制御部330は、SPU割当部312から新たに生成された縮小画像に対する顔検出処理の開始信号を受信すると、カウンタ331乃至333のカウンタ値を「0」に初期化する。
【0086】
カウンタ331乃至333は、演算プロセッサ(SPU#0)410乃至(SPU#2)430にそれぞれ対応するカウンタである。このカウンタ311乃至333は、カウンタ制御部330からの指示に基づいてカウンタ値を変更する。このカウンタ311乃至333は、それぞれのカウンタ値をセレクタ340に出力する。
【0087】
セレクタ340は、カウンタ331乃至333のうち、SPU割当部312からの演算プロセッサの番号(i)に応じて1つのカウンタを選択して転送画像幅算出部354にそのカウンタ値を供給するものである。例えば、SPU割当部312からの演算プロセッサの番号が「0」の場合には、セレクタ340は、カウンタ331のカウンタ値を転送画像幅算出部354に供給する。また、このセレクタ340は特許請求の範囲に記載のセレクタの一例である。
【0088】
転送画像幅算出部354は、セレクタ340から供給されたカウンタ値に基づいて転送画像幅を算出するものである。具体的には、転送画像幅算出部354は、供給されたカウンタ値に1を加えて2倍した値を転送画像幅として出力する。この転送画像幅の計算は、次式で表わすことができる。
転送画像幅=(1+カウンタ値)×顔検出領域の移動ステップ
【0089】
ここで、カウンタ値は、SPU割当部312に割り当てられるまで「1」ずつ増加するものであり、1つの演算プロセッサに対して前回の割り当てから今回の割り当てまでの間に、他の演算プロセッサに顔検出処理が割り当てられた回数を示している。つまり、処理の順番をスキップされた回数がカウンタ値に保持されることになる。この例では、顔検出処理を割り当てるごとに顔検出領域が2画素ずつ右に移動するため、転送画像幅=(1+カウンタ値)×2となる。また、この転送画像幅算出部354は特許請求の範囲に記載の転送画像サイズ算出部の一例である。
【0090】
セレクタ360は、SPU割当部310からの割当回数に基づいて転送画像幅保持部351および転送画像幅算出部354のいずれか一方が選択され送信部212に出力される。
【0091】
図15は、本発明の実施の形態における顔検出装置100の第3の実施例における転送画像割当部300のカウンタ値の遷移例を示す図である。ここでは、図10で示した順番で顔検出処理が演算プロセッサ(SPU#0)410乃至(SPU#2)430に割り当てられた場合を想定している。図15には、制御プロセッサ200が顔検出処理を割り当てた順番とカウンタ331乃至333のカウンタ値の対応関係が示されている。カウンタ641乃至643には、カウンタ331乃至333のカウンタ値がそれぞれ示されている。処理順番651乃至659には、制御プロセッサ200が顔検出処理を割り当てた処理順番が示されており、この順番は、図10(a)乃至(i)に対応する。
【0092】
各処理順番651乃至659において、カウンタ値が「0」であるカウンタは、そのカウンタに対応する演算プロセッサ(SPU#0)が制御プロセッサ200により検出処理を割り当てられたことを意味する。例えば、処理順番651では、演算プロセッサ(SPU#0)410に対応するカウンタ641が「0」を示しているため、演算プロセッサ(SPU#0)410が顔検出処理を割り当てられたことを表わしている。
【0093】
また、カウンタ641乃至643においては、対応する演算プロセッサに顔検出処理が割り当てられるまでは、処理順番が1つ増えるたびにカウンタ641乃至643のカウンタ値も「1」増加する。例えば、カウンタ641のカウンタ値は、処理順番655乃至657において「1」ずつ増加している。
【0094】
ここで、カウンタ641乃至643のカウンタ値を用いた転送画像幅の算出について簡単に説明する。例えば、処理順番658においては、まず、カウンタ641に対応する演算プロセッサ(SPU#0)410が割り当てられる。そして、このときのカウンタ331のカウンタ値は、処理順番657に示された「3」であり、セレクタ340からこのカウンタ値「3」が出力される。次に、このカウンタ値に今回割り当てた分の1を加えた後、顔検出領域の移動ステップである2を乗算することによって、転送画像幅として「8」(=(1+3)×2)が出力される。
【0095】
このように、各演算プロセッサに対応するカウンタを設けて顔検出処理が割り当てられるごとにカウンタ値を「1」ずつ増やすことによって、各演算プロセッサにおいて処理の順番が何回スキップされたか管理することができる。そして、そのスキップされた回数に基づいて転送画像幅を算出することによって、転送画像領域データの欠落を防ぎ、しかも、ローカル画像メモリ530に既に保持されている転送画像領域データと重複することなく転送画像領域データを転送させることができる。
【0096】
図16は、本発明の実施の形態における顔検出装置100の第3の実施例における処理方法を示す概念図である。この例では、説明の便宜上、3つの演算プロセッサ(SPU#0)410乃至(SPU#2)430による顔検出処理を想定している。また、制御プロセッサ200により、図16(a)乃至(i)の順番に顔検出処理が割り当てられた場合を想定している。なお、図16(a)乃至(c)は、図4(a)乃至(c)と同様であるため、ここでの説明を省略する。
【0097】
図16(g)および(h)では、制御プロセッサ200により、演算プロセッサ(SPU#1)420と演算プロセッサ(SPU#0)410とで順番が入れ替わっている。この場合、図16(h)では、図15で述べたように、カウンタ値に応じて転送画像幅を算出されることによって、幅8画素の転送画像領域614が既存の転送画像領域と重複することなく、転送されている。また、図16(g)では、図15で示した計算により幅が4(=(1+1)×2)画素の転送画像領域624が既存の転送画像領域と重複することなく、転送されている。
【0098】
図17は、本発明の実施の形態における顔検出装置100の第3の実施例における制御プロセッサ200の顔検出処理制御方法の処理手順例を示すフローチャートである。
【0099】
最初に、転送画像割当部300により画像メモリ120上の入力画像の始点アドレス、高さおよび幅が取得される(ステップS911)。次に、カウンタ制御部330により各演算プロセッサに対応するカウンタのカウンタ値を初期値に設定させる(ステップS952)。次に、入力画像の始点アドレス、高さ、および、幅に基づいて転送画像割当部300により転送画像処理が実行される(ステップS960)。次に、顔検出処理を割り当てられた演算プロセッサ(SPU#i)に処理開始指示として転送画像領域情報が送信される(ステップS913)。次に、各演算プロセッサからの終了通知が受信される(ステップS914)。次に、転送画像割当部300により1枚の入力画像または縮小画像の顔検出処理が終了したか否かが判断される(ステップS915)。そして、1枚の入力画像または縮小画像の顔検出処理が終了していない場合には、ステップS960に戻る。
【0100】
一方、1枚の入力画像または縮小画像の顔検出処理が終了した場合には、縮小画像生成部220により、所定の縮小率の縮小画像が生成され、画像メモリ120に保持される(ステップ916)。次に、縮小画像が所定のサイズより小さいか否かが判断される(ステップS917)。そして、縮小画像が所定のサイズより大きい場合には、ステップS952に戻り、各演算プロセッサに対応するカウンタのカウンタ値を初期値に設定させる。
【0101】
一方、縮小画像が所定のサイズより小さい場合には、各演算プロセッサ(SPU)400から受け取った入力画像および複数の縮小画像についての顔検出結果に基づいて入力画像についての最終的な顔検出結果が算出される(ステップS918)。
【0102】
図18は、本発明の実施の形態における顔検出装置100の第3の実施例における制御プロセッサ200の転送画像割当処理(ステップS960)の処理手順例を示すフローチャートである。
【0103】
最初に、SPU割当部312により顔検出処理が演算プロセッサ(SPU#i)400に割り当てられる(ステップS961)。なお、このステップS961は特許請求の範囲に記載の検出処理割当手順の一例である。次に、SPU割当部312により転送画像高さが出力される(ステップS962)。次に、演算プロセッサ(SPU#i)400が1回目の顔検出処理か否かが判断される(ステップS963)。そして、1回目の顔検出処理の場合には、転送画像幅に初期値の「20」が設定される(ステップS969)。一方、2回目以降の顔検出処理の場合には、演算プロセッサ(SPU#i)に対応するカウンタのカウンタ値に1を加えた後に2を乗算した数値が転送画像幅に設定される(ステップS964)。なお、このステップS964は特許請求の範囲に記載のサイズ生成手順の一例である。
【0104】
次に、終点アドレス出力部371により終点アドレスに「2」が加えられると(ステップS965)、始点アドレス出力部372によりその終点アドレスに1を加え、さらに転送画像幅を減じた始点アドレスが出力される(ステップS966)。なお、このステップS965およびS966は特許請求の範囲に記載の基準位置生手順の一例である。
【0105】
次に、カウンタ制御部330により、顔検出処理が割り当てられた演算プロセッサ(SPU#i)400に対応するカウンタのカウンタ値が「0」に初期化され(ステップS967)る。それとともに、それ以外の演算プロセッサに対応するカウンタのカウンタ値が「1」増加される(ステップS968)。
【0106】
このように、本発明の実施の形態における第3の実施例では、各演算プロセッサに対応するカウンタを設けてそのカウンタ値に応じて転送画像幅を算出する。これにより、転送画像領域データの欠落を生じさせることなく、効率的に転送画像領域データをローカル画像メモリに転送させることができる。
【0107】
図19は、本発明の実施の形態における顔検出装置100の第4の実施例における処理方法を示す概念図である。この例では、説明の便宜上、3つの演算プロセッサ(SPU#0)410乃至(SPU#2)430による顔検出処理を想定している。また、制御プロセッサ200により、図19(a)乃至(i)の順番に顔検出処理が割り当てられた場合を想定している。図19(a)乃至(i)では、顔検出領域402の高さと転送画像領域711乃至713、721乃至723および731乃至733の高さとが入力画像または縮小画像の高さの半分に設定されている。なお、顔検出領域402の高さの設定以外は、他の実施例と同様であるため、ここでの説明を省略する。
【0108】
このように、本発明の実施の形態では、顔検出領域402の高さを入力画像または縮小画像の高さの半分に設定するようにしてもよい。なお、ここでは一例として、顔検出領域402の高さを入力画像または縮小画像の高さの半分としたが、顔検出領域402の高さはこの例に限られるものではなく、テンプレート画像の高さに設定してもよい。
【0109】
また、複数の演算プロセッサ400のうち、処理に時間を要している演算プロセッサがある場合、それ以外の演算プロセッサであって既に処理を終了しているものに、処理に時間を要している演算プロセッサの未処理データを再配分して処理させるようにしてもよい。
【0110】
以上のように、本発明の実施の形態によれば、顔検出処理を複数の演算プロセッサ400を用いて処理させることにより、処理速度を向上させることができる。また、顔検出領域を一定の方向に少しずつ移動させることによって、演算プロセッサ400のローカル画像メモリ530に転送する転送画像領域のデータ量を抑えることができ、より効率的に顔検出処理を行うことができる。
【0111】
なお、本発明の実施の形態では、顔検出装置を例にして説明したが、顔検出部540において顔を検出する構成に代えて、物体検出部を設けることにより、顔以外の物体を検出する物体検出装置等にも本発明の実施の形態を適用することができる。
【0112】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【0113】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
【図面の簡単な説明】
【0114】
【図1】本発明の実施の形態における顔検出装置を示すブロック図である。
【図2】本発明の実施の形態における制御プロセッサ(PPU)200および演算プロセッサ(SPU)400の一機能構成例を示すブロック図である。
【図3】本発明の実施の形態における顔検出装置100の第1の実施例における転送画像割当部300の一構成例を示すブロック図である。
【図4】本発明の実施の形態における顔検出装置100の第1の実施例における処理方法を例示する概念図である。
【図5】本発明の実施の形態における顔検出装置100の第1の実施例における制御プロセッサ200の顔検出処理制御方法の処理手順例を示すフローチャートである。
【図6】本発明の実施の形態における顔検出装置100の第1の実施例における制御プロセッサ200の転送画像割当処理(ステップS920)の処理手順例を示すフローチャートである。
【図7】本発明の実施の形態における演算プロセッサ400による顔検出方法の処理手順例を示すフローチャートである。
【図8】本発明の実施の形態における顔検出装置100の第1の実施例におけるマルチプロセッサ110の変形例を示すブロック図である。
【図9】非同期割当てに伴う演算プロセッサ(SPU)400の処理順番を例示するブロック図である。
【図10】図8(b)で示した非同期割り当てを適用した場合の顔検出処理例を示す概念図である。
【図11】本発明の実施の形態における顔検出装置100の第2の実施例における転送画像割当部300の一構成を示すブロック図である。
【図12】本発明の実施の形態における顔検出装置100の第2の実施例における処理方法を示す概念図である。
【図13】本発明の実施の形態における顔検出装置100の第2の実施例における制御プロセッサ200の転送画像割当処理(ステップS920)の処理手順例を示すフローチャートである。
【図14】本発明の実施の形態における顔検出装置100の第3の実施例における転送画像割当部300の一構成を示すブロック図である。
【図15】本発明の実施の形態における顔検出装置100の第3の実施例における転送画像割当部300のカウンタ値の遷移例を示す図である。
【図16】本発明の実施の形態における顔検出装置100の第3の実施例における顔検出装置100の処理方法を示す概念図である。
【図17】本発明の実施の形態における顔検出装置100の第3の実施例における制御プロセッサ200の顔検出処理制御方法の処理手順例を示すフローチャートである。
【図18】本発明の実施の形態における顔検出装置100の第3の実施例における制御プロセッサ200の転送画像割当処理(ステップS960)の処理手順例を示すフローチャートである。
【図19】本発明の実施の形態における顔検出装置100の第4の実施例における処理方法を示す概念図である。
【図20】顔検出処理の手法を示す模式図である。
【図21】入力画像810に対する顔検出処理の手法を示す模式図である。
【符号の説明】
【0115】
100 顔検出装置
110 マルチプロセッサ
120 画像メモリ
130 表示部
200 制御プロセッサ
210、510 通信部
211 受信部
212 送信部
220 縮小画像生成部
230 顔検出結果算出部
240 出力画像生成部
300 転送画像割当部
310〜312 SPU割当部
321〜323 転送画像幅生成部
330 カウンタ制御部
331〜333 カウンタ
340、360 セレクタ
351〜353 転送画像幅保持部
354 転送画像幅算出部
370 始点アドレス生成部
371 終点アドレス出力部
372 始点アドレス出力部
381 同期割当部
382 終了通知同期部
390 非同期割当部
400〜480 演算プロセッサ
490 バス
520 画像データ転送部
530 ローカル画像メモリ
540 顔検出部

【特許請求の範囲】
【請求項1】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか1つの物体検出部に前記検出処理を割り当てる検出処理割当部と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成部と
を具備する物体検出制御装置。
【請求項2】
前記サイズ生成部は、前記割り当てられた物体検出部が過去に割り当てられてから新たに割り当てられるまでの間に前記検出処理割当部が他の物体検出部に前記検出処理を割り当てた回数に基づいて前記転送画像領域のサイズを生成する
請求項1記載の物体検出制御装置。
【請求項3】
前記サイズ生成部は、前記検出処理を割り当てた回数として前記複数の物体検出部の個数と前記所定の画素数とに基づいて求められた数値を用いる請求項2記載の物体検出制御装置。
【請求項4】
前記サイズ生成部は、前記検出処理を割り当てた回数として予め推定した推定値を用いる請求項2記載の物体検出制御装置。
【請求項5】
前記サイズ生成部は、
前記複数の物体検出部の各々に対応する複数のカウンタと、
前記検出処理割当部により1つの物体検出部が割り当てられた場合には前記複数のカウンタのうち前記割り当てられた1つの物体検出部に対応するカウンタにおけるカウンタ値を出力するセレクタと、
前記検出処理割当部により前記1つの物体検出部が割り当てられた場合には前記割り当てられた1つの物体検出部に対応するカウンタを初期値に設定するとともにその他のカウンタを一定の数増加させるカウンタ制御部と、
前記セレクタから出力されたカウンタ値と前記所定の画素数とに基づいて算出した数値を前記転送画像領域のサイズとして出力する転送画像サイズ算出部と
を備える請求項2記載の物体検出制御装置。
【請求項6】
前記検出処理割当部は、前記割り当てられた物体検出部から前記検出処理の終了通知を受けると前記割り当てられた物体検出部に次の検出処理を割り当てる請求項1記載の物体検出制御装置。
【請求項7】
前記検出処理割当部は、前記複数の物体検出部に順番に前記検出処理を割り当てる請求項1記載の物体検出制御装置。
【請求項8】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出処理装置と、
前記複数の物体検出処理装置のうちいずれか1つの物体検出装置に前記検出処理を割り当てる検出処理割当部と、前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成部と、前記生成された転送画像領域のサイズおよび所定の画素数ずつ移動させた前記検出領域の基準となる位置を用いて前記転送画像領域の基準となる位置を算出する基準位置算出部とを有する物体検出制御装置と
を備える物体検出システム。
【請求項9】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか1つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手段と
を具備する物体検出制御方法。
【請求項10】
転送画像領域に基づいて物体の検出処理を行う複数の物体検出部のうちいずれか1つの物体検出部に前記検出処理を割り当てる検出処理割当手順と、
前記割り当てられた物体検出部のための検出領域に応じて前記転送画像領域のサイズを生成するサイズ生成手順と、
前記生成された転送画像領域のサイズと所定の画素数ずつ移動させた前記検出領域の基準となる位置とを用いて前記転送画像領域の基準となる位置を生成する基準位置生成手段と
をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図11】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図20】
image rotate

【図4】
image rotate

【図10】
image rotate

【図12】
image rotate

【図16】
image rotate

【図19】
image rotate

【図21】
image rotate