(57)【要約】【課題】全体の転送負荷を軽減できるようにする。【解決手段】データの連続性を判定する第１の判定手段と、係数パラメタのサイズを判定する第２の判定手段と、前記第１及び第２の判定手段の結果に基づいて転送負荷が軽い方のデータを転送するように制御する制御手段とを備えるようにして、同じデータもしくは係数パラメタを複数回転送する頻度を減らすことができ、外部メモリへのアクセスを減らすことができ、転送負荷を軽減することができるようにする。【選択図】図１
2012108803.tif 000002
【特許請求の範囲】
【請求項１】
データの連続性を判定する第１の判定手段と、
係数パラメタのサイズを判定する第２の判定手段と、
前記第１及び第２の判定手段の結果に基づいて転送負荷が軽い方のデータを転送するように制御する制御手段とを備えたことを特徴とするデータ処理装置。
【請求項２】
前記第１の判定手段は、データ間の距離に基づいてデータの連続性を判定することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
データの連続性を判定する第１の判定工程と、
係数パラメタのサイズを判定する第２の判定工程と、
前記第１及び第２の判定工程における結果に基づいて転送負荷が軽い方のデータを転送するように制御する制御工程とを備えたことを特徴とするデータ処理方法。
【請求項４】
請求項３記載のデータ処理方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算器にデータおよび係数パラメタを転送して多段データ処理をする際に、データおよび係数パラメタの転送負荷を軽減するためのデータ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、デジタルカメラやプリンタにおいて、入力画像中の人物や顔といった特定の被写体を検出し、検出された被写体に適した処理をおこなう技術が提案されている。この特定の被写体を検出する一例として、顔に対して肌色補正処理を行うための、顔検出処理がある。
【０００３】
顔検出処理にはさまざまな手法が提案されている。例えば非特許文献１に記載あの方法（以下、Ｖｉｏｌａ＆Ｊｏｎｅｓ手法と呼ぶ）や、人間の顔の対称的特徴、テンプレート・マッチング、ニューラル・ネットワークなどを利用することによって、人間の顔を検出する方式が示されている。
【０００４】
以下、図１２〜図１５を用いてＶｉｏｌａ＆Ｊｏｎｅｓ手法の概略を説明する。顔認識では、多くの顔データを入力し、顔の認識率や誤認識率がある一定の水準になるように学習することによって、識別処理を行うための係数パラメタを求める。ここでいう識別処理とはパタン照合処理のことであり、顔検出処理は、この係数パラメタを用いたパタン照合処理群のことである。係数パラメタには、パタン照合処理に必要な特徴量やしきい値が含まれる。
【０００５】
学習結果の一例を図１２に示す。係数パラメタの一部である特徴量１（１２１０）は、両目部分の小矩形と両目下部分の小矩形を比べ、両目部分の小矩形は両目下部分の小矩形よりも黒っぽいことを示す特徴量である。また特徴量２（１２２０）は、両目部分の小矩形において、眉間部分よりも目の部分が黒っぽいことを示す特徴量である。このような係数パラメタの一部である特徴量１（１２１０）〜特徴量Ｎ（１２Ｎ０）を用いて、実際に照合したい入力データ１２００に対してパタン照合処理をおこなう。
【０００６】
Ｖｉｏｌａ＆Ｊｏｎｅｓ手法では、Ａｄａｂｏｏｓｔによる学習結果をもとに識別処理を実行する。この識別処理は、図１３に示す処理１３００〜処理１３Ｎ０のように、ある識別処理の結果、次の識別処理に進むときはＰＡＳＳ、次の識別処理に進まない場合はＦＡＩＬを出力する。そして、ＦＡＩＬであった場合は、識別処理を終了するという、多段データ処理になっている。
【０００７】
また、Ｖｉｏｌａ＆Ｊｏｎｅｓ手法では、図１４に示すように、ある区切り（以下、ステージと呼ぶ）で識別処理を区切り、ステージごとにしきい値を用いてＰＡＳＳ／ＦＡＩＬの識別を行う。これにより、顔と顔でないものを識別する。また、最初の方の前段ステージ１４００では、顔を顔ではないと判定する、未検出を最小化し、誤検出の確率が比較的高めになるような単純な特徴を用いる。単純な特徴であると、係数パラメタのサイズが小さいため、少ない演算回数で識別処理が可能となる。そのため、ソフトウェア処理においても高速処理が可能となる。さらに、前段ステージ１４００では、比較的多くの矩形領域を効率よく顔ではないと識別することができるため、画像全体に対する顔検出処理を短時間で完了することが可能になる。
【０００８】
逆に、後ろの方の後段ステージ１４２０では、より複雑で、確実に顔であることを判定する特徴を用いる。そのため、係数パラメタのサイズが大きくなる。つまり前段ステージ１４００から中段ステージ１４１０、後段ステージ１４２０へと進むにつれ、係数パラメタサイズが大きくなり、演算回数も多くなる。
【０００９】
図１５は、Ｖｉｏｌａ＆Ｊｏｎｅｓ手法をハード実装する際の概念的な構成を示す図である。識別器１５００は、ステージ１用の係数パラメタである特徴量１（１２１０）及びしきい値１を保持している。しきい値１によるしきい値処理によって、ステージ１をＰＡＳＳするかＦＡＩＬするかを判定する。以下、特徴量１及びしきい値１のことを係数パラメタ１と呼ぶ。また、ステージ１の処理のことをステージ１処理と呼ぶ。
【００１０】
識別器１５００は入力データ１２００を入力すると、係数パラメタ１を用いてステージ１処理を行う。そして、その結果（ＰＡＳＳ／ＦＡＩＬ）は識別器１５１０の入力となる。ここでＰＡＳＳであった場合、識別器１５１０は入力データ１２００に対するステージ２処理を行う。ステージ２処理では、特徴量２（１２２０）によるパタン照合処理としきい値２によるしきい値処理とを行う。なお、ステージ１及びステージ２は、ステージごとに係数パラメタが異なるだけであり、その他は同様である。同様に識別器１５２０、１５Ｎ０でも処理が行われる。
【００１１】
図１６は、図１５で示したハード実装の概念的な構成図を、より具体的に実装した一例を示すブロック図である。
照合処理部１６４０は、サブウィンドウ画像を保持するサブウィンドウ画像保持部１６４１、係数パラメタ保持部１６４２、演算部１６４３、及び結果管理部１６４４から構成される。サブウィンドウ画像保持部１６４１は、外部メモリから転送された、入力データ１２００の照合すべき画素位置のサブウィンドウ画像を保持するための内部メモリである。また、係数パラメタ保持部１６４２は、外部メモリから転送された、ステージＮの処理に必要な係数パラメタＮを保持するための内部メモリである。
【００１２】
例えば、図１５のステージ１を処理する識別器１５００の場合、演算部１６４３は係数パラメタ保持部１６４２が保持する係数パラメタ１に含まれる特徴量１（１２１０）を用いる。そして、サブウィンドウ画像である入力データ１２００のパタン照合を行う。まず、入力データ１２００において、特徴量１（１２１０）の矩形１＿１及び矩形１＿２内の画素値の総和を計算する。矩形１＿１および矩形１＿２の輝度差を計算し、輝度差がしきい値１を越えている場合は、入力データ１２００の特徴量１に対する場所は特徴に合致するとする。そして結果（ＰＡＳＳ（顔である））を出力する。
【００１３】
ＰＡＳＳしたサブウィンドウ画像に関する情報は、結果管理部１６４４が管理する。転送部１６５０は、転送制御部１６００、サブウィンドウ画像転送部１６５４、及び係数パラメタ転送部１６５５から構成される。転送制御部１６００は、照合処理結果がＰＡＳＳであるとき、係数パラメタ転送部１６５５に係数パラメタの転送を指示する。このとき、係数パラメタ転送部１６５５は、外部メモリから係数パラメタ２を読み出し、係数パラメタ保持部１６４２に書き込んで、係数パラメタを書き換える。
【００１４】
また、転送制御部１６００は、照合処理結果がＦＡＩＬであるときや、あるサブウィンドウ画像に対して全てのステージ処理が終了したとき、サブウィンドウ画像転送部１６５４にサブウィンドウ画像の転送を指示する。このとき、サブウィンドウ画像転送部１６５４は、外部メモリから次のサブウィンドウ画像を読み出し、サブウィンドウ画像保持部１６４１に書き込み、次のサブウィンドウ画像に対する照合処理に進む。
【００１５】
演算部１６４３には、サブウィンドウ画像や係数パラメタが外から入力されるため、演算部１６４３の実装は、ステージ非依存にすることができる。サブウィンドウ画像保持部１６４１は１面以上のサブウィンドウ画像を保持し、係数パラメタ保持部１６４２は、処理に必要なステージ分もしくは全ステージ分の係数パラメタを保持する。このように処理ステージに応じて係数パラメタを入れ替えることにより、サブウィンドウ画像に対する全ステージの識別処理を実現できる。
【００１６】
近年、Ｖｉｏｌａ＆Ｊｏｎｅｓ手法に代表される認識処理をデジタルカメラ等に搭載し、例えば顔を検出して自動的に顔に焦点を合わせる、といった機能に対するニーズが高まっている。つまり、リアルタイム認識処理の実装が求められている。また、デジタルカメラ等のデジタル電化製品は非常にコストセンシティブであるため、認識処理機能をできるだけ安価に実装、つまり回路規模を最小限に押さえることも求められている。
【００１７】
図１６に示すように、演算部１６４３を全ステージ処理で共有することにより、回路規模の抑制が実現できる。サブウィンドウ画像保持部１６４１に保持できるサブウィンドウ画像数及び係数パラメタ保持部１６４２に保持できる係数パラメタのサイズ（保持できる係数パラメタのステージ数）により、回路規模および処理速度が決定する。
【００１８】
また、非常に高速に処理することが求められる場合は、サブウィンドウ画像保持部１６４１や係数パラメタ保持部１６４２を高速アクセス可能なメモリで構成する。そして、メモリ容量を大きくし、より多くのサブウィンドウ画像、係数パラメタを保持することにより、処理途中にウィンドウ画像および係数パラメタを入れ替える頻度を減らして照合処理を行う。これにより、外部メモリへのアクセス回数が大幅に減ることから、処理を高速化することができる。しかし、サブウィンドウ画像保持部１６４１や係数パラメタ保持部１６４２の大容量化は、回路規模の増大につながり、コストが高くなるという問題があった。そこで、サブウィンドウ画像保持部１６４１や係数パラメタ保持部１６４２には、必要なときに必要なデータを外部メモリからロードする構成を用いることが多い。
【００１９】
必要最低限の容量でできるだけ処理を高速化するためには、係数パラメタのロード回数を減らすことやサブウィンドウ画像のロード回数を減らすことが考えられる。係数パラメタのロード回数を減らすためには、係数パラメタ保持部１４２にステージＮの係数パラメタＮを転送したあと、サブウィンドウ画像のみを切換えて処理すればよい（以下、パタンＡ）。一方、サブウィンドウ画像のロード回数を減らすためには、サブウィンドウ画像保持部１４１にサブウィンドウ画像を転送したあと、係数パラメタのみを切換えて処理すればよい（以下、パタンＢ）。
【００２０】
しかし、どちらの手法がより高速化できるかは、サブウィンドウ画像データの連続性や、後段ステージへ進むサブウィンドウの割合（打ち切り率）に依存するため、一概に決めることはできない。
【００２１】
図１７は、ステージ１（Ｓ１）の打ち切り率を３分の１とし、ステージ２（Ｓ２）の打ち切り率を２分の１としたとき、入力した画像データの画素が連続するように打ち切られる場合の一例を示す図である。図１７に示す例では、上からＳ１の入力６つ（Ｄ１〜Ｄ６）、Ｓ２の入力４つ（Ｄ２〜Ｄ５の４つ、Ｓ１の入力の３分の２）、Ｓ３の入力２つ（Ｄ３、Ｄ４、Ｓ２の入力の２分の１）となっている。Ｓ２の係数パラメタ転送負荷はＳ１の２倍とし、Ｓ３の係数パラメタ転送負荷はＳ１の５倍とする。また、サブウィンドウ画像は４カラム分のデータからなり、サブウィンドウ画像１カラム分の転送負荷とＳ１の係数パラメタ転送負荷は同等とする。画像データは、ラスタースキャン順で転送し、例えばＤ１を転送したあとにＤ２を転送する場合のようにラスタースキャン順になっている場合は、両者の差分の１カラム分のみを転送するとする。また、Ｄ４を転送したあとにＤ３を転送する場合のようにラスタースキャンと逆順になっている場合は、両者の差分ではなく、Ｄ３を４カラム分転送するとする。
【００２２】
図１８は、係数パラメタおよびサブウィンドウ画像の転送順序ならびに転送量を、１カラム分のデータ転送量を１単位として模式的に示す図である。白色の部分はデータ、灰色の部分は係数パラメタの転送を意味する。矩形列が右に伸びれば伸びるほど、データ転送量が多くなる。
【００２３】
ここで、パタンＡの係数パラメタ転送回数は、各パラメタにつき１回である。また、パタンＢの係数パラメタ転送回数は、各パラメタにつき最低１回、最高処理するサブウィンドウ数回である。係数パラメタＳ３のようにサブウィンドウ画像サイズよりも大きなサイズの係数パラメタが存在する場合、パタンＢはパタンＡよりも転送負荷が高くなることが多い。
【００２４】
図１９は、Ｓ１の打ち切り率３分の１、Ｓ２の打ち切り率２分の１のとき、入力した画像データの画素が非連続になるように打ち切られる場合の一例を示す図である。図１９に示す例では、上からＳ１の入力６つ、Ｓ２の入力４つ（Ｓ１の入力の３分の２）、Ｓ３の入力２つ（Ｓ２の入力の２分の１）となっている。また、図２０は、図１７と同じ条件で係数パラメタ及びサブウィンドウ画像の転送順序ならびに転送量を、パタンＡ及びパタンＢの場合について模式的に示す図である。
【００２５】
パタンＢで処理した際のデータ転送量は、図１７を処理したときと変わらない。しかし、パタンＡにおけるデータ転送量は、図１７に示す例と比べ、図１９に示す例のほうが増える。これは例えば係数パラメタＳ２についての処理において、サブウィンドウ画像Ｄ２を転送したあとに、Ｄ２とは画素が非連続なＤ５を転送することになる。両者の差分は３カラム分あるため、画素が連続しているときに比べてデータの転送量が増えるためである。そのため図１８のパタンＡの結果と図２０のパタンＡの結果とでは、図２０に示す例の方が、転送負荷が高い。
【先行技術文献】
【非特許文献】
【００２６】
【非特許文献１】Ｐ．Ｖｉｏｌａ  ａｎｄ  Ｍ．Ｊｏｎｅｓ，  "Ｒｏｂｕｓｔ  Ｒｅａｌ−ｔｉｍｅ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ"，  ＳＥＣＯＮＤ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＷＯＲＫＳＨＯＰ  ＯＮ  ＳＴＡＴＩＳＴＩＣＡＬ  ＡＮＤ  ＣＯＭＰＵＴＡＴＩＯＮＡＬ  ＴＨＥＯＲＩＥＳ  ＯＦ  ＶＩＳＩＯＮ，  Ｊｕｌｙ  １３  １２０１
【発明の概要】
【発明が解決しようとする課題】
【００２７】
データが連続である場合、前段ステージの係数パラメタを後段ステージの係数パラメタへ何回も切換える状況は、データを切換える場合に比べて転送負荷が高くなる場合がある。また、データが離散的である場合、データを切換えなければならない状況は、係数パラメタを切換える場合に比べて転送負荷が高くなる場合がある。
【００２８】
本発明は前述の問題点に鑑み、全体の転送負荷を軽減できるようにすることを目的としている。
【課題を解決するための手段】
【００２９】
本発明のデータ処理装置は、データの連続性を判定する第１の判定手段と、係数パラメタのサイズを判定する第２の判定手段と、前記第１及び第２の判定手段の結果に基づいて転送負荷が軽い方のデータを転送するように制御する制御手段とを備えたことを特徴とする。
【発明の効果】
【００３０】
本発明によれば、データの連続性と係数パラメタのサイズとを考慮して転送順序を決めることで、同じデータもしくは係数パラメタを複数回転送する頻度を減らすことができる。これにより、外部メモリへのアクセスを減らすことができ、転送負荷を軽減することができる。
【図面の簡単な説明】
【００３１】
【図１】実施形態に係る多段データ処理装置の構成例を示すブロック図である。
【図２】照合処理部及び転送制御部の詳細な構成例を示すブロック図である。
【図３】多段データ処理装置による処理手順の一例を示すフローチャートである。
【図４】ステージと係数パラメタサイズとの関係の一例を示す図である。
【図５】ステージ番号と、サブウィンドウ画像間の距離との関係を示す図である。
【図６】３人の人物が写っている画像の一例を示す図である。
【図７】図６に示す画像に対してステージ１の処理をした結果を示す図である。
【図８】図７に示す結果の一部分を切り出した画像を示す図である。
【図９】図８に示すＤ１〜Ｄ９のステージ２〜４の処理結果を示す図である。
【図１０】図８に示す結果に対し、ステージ２（Ｓ２）〜ステージ４（Ｓ４）の処理をする場合の概要を示すタイミングチャートである。
【図１１】係数パラメタを固定してデータを切換えて多段データ処理をする場合の概要を示すタイミングチャートである。
【図１２】学習結果の一例を示す図である。
【図１３】識別処理の手順の概要を示す図である。
【図１４】ステージごとにＰＡＳＳ／ＦＡＩＬの識別を行う概要を示す図である。
【図１５】Ｖｉｏｌａ＆Ｊｏｎｅｓ手法をハード構成した場合を示す図である。
【図１６】図１５で示したハード構成を具体化した一例を示すブロック図である。
【図１７】画素が連続するように打ち切られる場合の一例を示す図である。
【図１８】転送順序ならびに転送量を１単位として模式的に示す図である。
【図１９】画素が非連続になるように打ち切られる場合の一例を示す図である。
【図２０】転送順序ならびに転送量を１単位として模式的に示す図である。
【図２１】データを固定して係数パラメタを切換えて多段データ処理をする場合の概要を示すタイミングチャートである。
【図２２】実施形態における結果管理部の詳細な構成例を示すブロック図である。
【発明を実施するための形態】
【００３２】
本実施形態の多段データ処理装置を構成するシステムの構成について、認識処理システムを例に、図１、図２及び図２２を参照して説明する。
図１は、本実施形態に係る多段データ処理装置の構成例を示すブロック図である。
図１において、１００はシステムバスである。１２０はシステム全体を制御するＣＰＵである。１３０は画像データや係数パラメタを格納するシステムメモリである。１４０は照合処理をおこなう照合処理部である。１５０はシステムバス１００経由でシステムメモリ１３０から照合処理部１４０へ画像データや係数パラメタを転送する転送制御部である。
【００３３】
図２は、照合処理部１４０及び転送制御部１５０の詳細な構成例を示すブロック図である。
図２において、１４１は転送制御部１５０が転送したサブウィンドウ画像を保持するためのサブウィンドウ画像保持部である。１４２は転送制御部１５０が転送した係数パラメタを保持するための係数パラメタ保持部である。１４３はサブウィンドウ画像保持部１４１が保持するサブウィンドウ画像及び係数パラメタ保持部１４２が保持する係数パラメタを読み込み、認識処理演算をする演算部である。
【００３４】
１４４は演算部１４３の演算結果を読み込み、照合処理がＦＡＩＬしていないサブウィンドウ画像の位置情報及びそのサブウィンドウが処理済みの係数パラメタを管理する結果管理部である。また、結果管理部１４４は、複数のサブウィンドウ画像間のデータ間（画素数）の距離（データの連続性）をあらわす領域距離情報、及び処理済みの係数パラメタをあらわす処理済み係数パラメタ情報（サイズ）を出力する。
【００３５】
１５２は結果管理部１４４から得られる領域距離情報及び処理済みパラメタ情報に基づいて、システムメモリ１３０から転送すべき画像データ情報を求める領域画像転送制御部である。１５３は結果管理部１４４から得られる領域距離情報および処理済みパラメタ情報に基づいて、システムメモリ１３０から転送すべき係数パラメタ情報を求める係数パラメタ転送制御部である。１５４はシステムメモリ１３０からサブウィンドウ画像保持部１４１にサブウィンドウ画像を転送するサブウィンドウ画像転送部である。１５５はシステムメモリ１３０から係数パラメタ保持部１４２に係数パラメタを転送する係数パラメタ転送部である。
【００３６】
図２２は、結果管理部１４４の詳細な構成例を示すブロック図である。
図２２において、１４４１は、演算部１４３からの照合結果を格納するのを制御するデータ照合結果格納制御部である。１４４２は、データ照合結果格納制御部１４４１の制御に従い、サブウィンドウ画像毎に処理済み係数パラメタ情報と照合結果とを保持するデータ毎処理済み係数パラメタ保持部である。１４４３は、第１の判定としてデータ毎処理済み係数パラメタ情報保持部１４４２が保持するサブウィンドウ画像毎の照合結果を読み込み、サブウィンドウ画像間の距離（画素数）を求める領域距離情報算出部である。１４４４は、第２の判定としてデータ毎処理済み係数パラメタ情報保持部１４４２が保持するサブウィンドウ画像毎の処理済み係数パラメタ情報を読み込み、処理済み係数パラメタ情報を求める処理済み係数パラメタ情報算出部である。
【００３７】
演算部１４３は、サブウィンドウ画像保持部１４１が保持するサブウィンドウ画像と係数パラメタ保持部１４２が保持する係数パラメタとを読み込み、照合処理を実施する。照合結果は、処理済みの係数パラメタの情報とともに、結果管理部１４４内のデータ照合結果格納制御部１４４１によりデータ毎処理済み係数パラメタ情報保持部１４４２にサブウィンドウ毎に保持される。結果管理部１４４は、サブウィンドウ画像からそのサブウィンドウ画像からラスタースキャン順にスキャンした結果、次に見つかったサブウィンドウ画像までの間の画素値（領域距離情報）を求める。
【００３８】
また、処理済み係数パラメタ情報算出部１４４４は、サブウィンドウ画像保持部１４１が保持するサブウィンドウ画像に対して処理済みの係数パラメタ情報（係数パラメタのサイズ等）を求める。そして、転送切換え部１５１、領域画像転送制御部１５２、及び係数パラメタ転送制御部１５３に、領域距離情報及び処理済み係数パラメタ情報を送る。
【００３９】
転送切換え部１５１は、サブウィンドウ画像保持部１４１が保持するサブウィンドウ画像に対して次の係数パラメタを転送して処理する。また、係数パラメタ保持部１４２が保持する係数パラメタに対して次のサブウィンドウ画像を転送して処理する。また、データ転送量が軽い方を調べるため、次のサブウィンドウ画像を転送する転送負荷と、次の係数パラメタを転送する転送負荷とを比較する。
【００４０】
この比較の結果、次のサブウィンドウ画像を転送する転送負荷の方が軽い場合は、サブウィンドウ画像転送部１５４の有効／無効をあらわす画像データイネーブル信号をアサートし、サブウィンドウ画像転送部１５４を有効にする。このとき、係数パラメタ転送部１５５の有効／無効をあらわす係数パラメタイネーブル信号をデアサートし、係数パラメタ転送部１５５を無効にする。
【００４１】
逆に、次の係数パラメタを転送する転送負荷の方が軽い場合、画像データイネーブル信号をデアサートして、サブウィンドウ画像転送部１５４を無効にする。そして、係数パラメタイネーブル信号をアサートして、係数パラメタ転送部１５５を有効にする。
【００４２】
領域画像転送制御部１５２は、結果管理部１４４からの領域距離情報に基づいて、サブウィンドウ画像保持部１４１が次のサブウィンドウ画像を保持するために必要な画像データ転送量（データ量）を計算する。そして、画像データ転送量及び転送する画像データが格納されているシステムメモリ１３０における位置（転送画像データ情報）をサブウィンドウ画像転送部１５４に送る。係数パラメタ転送制御部１５３は、結果管理部１４４からの処理済み係数パラメタ情報に基づいて、未処理係数パラメタのうち次に転送する係数パラメタの情報を求める。そして、係数パラメタ転送量及び転送する係数パラメタが格納されているシステムメモリ１３０における位置（転送係数パラメタ情報）を係数パラメタ転送部１５５に送る。
【００４３】
サブウィンドウ画像転送部１５４は、転送切換え部１５１が出力する画像データイネーブル信号がアサートしている転送画像データ情報に基づいてサブウィンドウ画像を転送する。係数パラメタ転送部１５５は、転送切換え部１５１が出力する係数パラメタイネーブル信号がアサートしている転送係数パラメタ情報に基づいて係数パラメタを転送する。
【００４４】
次に、本システムの動きを図３のフローチャートに沿って説明する。図３は、本実施形態に係る多段データ処理装置による処理手順の一例を示すフローチャートである。
まず、ＳＴ１０１において、領域画像転送制御部１５２及び係数パラメタ転送制御部１５３は、処理するデータの有無を判定する。この判定の結果、処理するデータが存在する場合は、ＳＴ１０２に進み、処理するデータが存在しない場合は、処理を終了する。次に、ＳＴ１０２において、転送切換え部１５１は係数パラメタイネーブル信号をアサートし、画像データイネーブル信号をデアサートする。そして、係数パラメタ転送部１５５は係数パラメタ転送制御部１５３から得た転送係数パラメタ情報に基づいて係数パラメタをシステムメモリ１３０から係数パラメタ保持部１４２に転送する。
【００４５】
次に、ＳＴ１０３において、転送切換え部１５１は係数パラメタイネーブル信号をデアサートし、画像データイネーブル信号をアサートする。そして、サブウィンドウ画像転送部１５４は領域画像転送制御部１５２から得た転送画像データ情報に基づいてサブウィンドウ画像をシステムメモリ１３０からサブウィンドウ画像保持部１４１に転送する。次に、ＳＴ１０４において、演算部１４３はサブウィンドウ画像保持部１４１が保持するサブウィンドウ画像と係数パラメタ保持部１４２が保持する係数パラメタを読み込み、演算処理を行う。そして、演算結果を結果管理部１４４に送る。
【００４６】
次に、ＳＴ１０５において、演算結果の判定を行う。この判定の結果、演算結果がＰＡＳＳだった場合は、ＳＴ１０６に進み、ＦＡＩＬだった場合は、ＳＴ１１６に進む。そして、ＳＴ１０６においては、結果管理部１４４が管理する処理結果から、現在の画像データに対する未処理ステージの有無を判定する。この判定の結果、未処理ステージが存在する場合は、ＳＴ１０７に進み、未処理ステージが存在しない場合は、Ｓ１１６に進む。
【００４７】
次に、ＳＴ１０７においては、結果管理部１４４が管理する処理結果から、現在の係数パラメタに対する未処理データの有無を判定する。この判定の結果、未処理データが存在する場合は、ＳＴ１０８に進み、未処理データが存在しない場合は、Ｓ１１１に進む。
【００４８】
そして、ＳＴ１０８においては、転送切換え部１５１は結果管理部１４４からの領域距離情報（連続性）及び処理済み係数パラメタ情報（データサイズ）に基づいて、次に処理する係数パラメタの転送負荷と画像データの転送負荷とを比較する。この比較の結果、データ転送負荷の方が、転送負荷が軽い場合は、転送切換え部１５１は画像データイネーブル信号をアサートし、ＳＴ１０９に進む。一方、データ転送負荷の方が、転送負荷が重い場合は、転送切換え部１５１は係数パラメタイネーブル信号をアサートし、ＳＴ１１１に進む。
【００４９】
次に、ＳＴ１０９においては、領域画像転送制御部１５２は、サブウィンドウ画像保持部１４１が次に処理する画像データを保持しているか否かを判定する。この判定の結果、データを保持していない場合は、ＳＴ１１０において、領域画像転送制御部１５２は、次の処理のために必要な画像データ量およびシステムメモリ１３０における位置を計算する。これをサブウィンドウ画像転送部１５４に送る。そして、サブウィンドウ画像転送部１５４は、転送画像データ情報に基づいてシステムメモリ１３０からサブウィンドウ画像保持部１４１に画像データを転送する。そして、ＳＴ１０４に戻る。
【００５０】
一方、ＳＴ１１１においては、係数パラメタ転送制御部１５３は、係数パラメタ保持部１４２が次に処理する係数パラメタを保持しているか否かを判定する。この判定の結果、係数パラメタを保持していない場合は、ＳＴ１１２において、係数パラメタ転送制御部１５３は、次の処理に必要な係数パラメタ情報およびシステムメモリ１３０における位置を係数パラメタ転送部１５５に送る。そして、係数パラメタ転送部１５５は、転送係数パラメタ情報に基づいて、次の処理に必要な係数パラメタを転送する。
【００５１】
次に、ＳＴ１１３においては、処理済みの係数パラメタ情報から、サブウィンドウ画像の近傍の画像データで新しく転送した係数パラメタでは未処理の画像データがあるかどうかを判定する。これは、サブウィンドウ画像保持部１４１が保持するサブウィンドウ画像だけでなく、その近傍の画像データについても新しく転送した係数パラメタで処理するためである。この判定の結果、サブウィンドウ画像の近傍の画像データに未処理データが存在しない場合は、ＳＴ１０４に戻る。
【００５２】
一方、サブウィンドウ画像の近傍の画像データに未処理データが存在する場合はＳＴ１１４に進み、サブウィンドウ画像保持部１４１が該当する画像データを保持しているかどうかを判定する。そして、この判定の結果、該当する画像データを保持している場合は、ＳＴ１０４に戻る。
【００５３】
一方、該当する画像データを保持していない場合は、ＳＴ１１５において、転送切換え部１５１は、サブウィンドウ画像転送部を有効にするために画像データイネーブル信号をアサートする。また、領域画像転送制御部１５２は、必要な画像データ量及びシステムメモリ１３０における位置（転送画像データ情報）を計算し、サブウィンドウ画像転送部１５４に送る。さらに、サブウィンドウ画像転送部１５４は、領域画像転送制御部１５２から得た転送画像データ情報に基づき、画像データをシステムメモリ１３０からサブウィンドウ画像保持部１４１に転送する。
【００５４】
一方、ＳＴ１１６においては、領域画像転送制御部１５２は、結果管理部１４４が管理するサブウィンドウ画像の位置情報と係数パラメタに関する情報とから現在の係数パラメタに対する未処理データの有無を判定する。この判定の結果、未処理データが存在する場合は、ＳＴ１１７に進み、未処理データが存在しない場合は、ＳＴ１０１に戻る。
【００５５】
次に、ＳＴ１１７において、領域画像転送制御部１５２は、未処理データをサブウィンドウ画像保持部１４１が保持しているかどうかを判定する。この判定の結果、未処理データをサブウィンドウ画像保持部１４１が保持している場合は、ＳＴ１０４に戻る。一方、未処理データをサブウィンドウ画像保持部１４１が保持していない場合は、ＳＴ１１８に進み、領域画像転送制御部１５２は、転送画像データ量を計算し、サブウィンドウ画像転送部１５４に送る。そして、サブウィンドウ画像転送部１５４は、領域画像転送制御部１５２から得た転送画像データ情報に基づき、画像データをシステムメモリ１３０からサブウィンドウ画像保持部１４１に転送する。そして、ＳＴ１０４に戻る。
【００５６】
次に、多段データ処理による顔認識を例に、本システムの動作を説明する。例えば、ステージと係数パラメタサイズとが、図４に示すようになっていて、かつ、サブウィンドウサイズは４×４とする。このとき、ステージ番号を横軸に、サブウィンドウ画像間の距離（画素数）を縦軸に取り、各ステージの係数パラメタの転送量とデータ転送量を比較すると、図５に示すような関係を求めることができる。
【００５７】
サブウィンドウ画像保持部１４１のサイズをサブウィンドウ２面分とし、係数パラメタ保持部１４２のサイズをステージ５（Ｓ５）の係数パラメタサイズと同じとしたときの顔認識処理は以下の通りである。図７は、図６に示す画像に対してステージ１（Ｓ１）の処理をした結果を示す図である。灰色の部分は、その画素が左上端になるように４×４のサブウィンドウ画像を切り出し、そのサブウィンドウ画像に対してＳ１を処理した結果がＰＡＳＳした画素をあらわす。白色の部分は、Ｓ１の処理がＦＡＩＬした画素をあらわす。
【００５８】
図８は、図７の一部分を取り出し、Ｓ１をＰＡＳＳした画素が左上端になるように切り出したサブウィンドウ画像を示す図である。なお、図６〜図８において、１マスは１画素を意味する。また、図９は、図８に示すＤ１〜Ｄ９のステージ２〜４（Ｓ２〜Ｓ４）の処理結果を示す図である。なお、演算部１４３の演算性能は充分で、どんなデータならびにどんな係数パラメタであっても、処理時間は同じとする。つまり、全体の処理性能は、データならびに係数パラメタの転送負荷で決まるとする。
【００５９】
図１０は、図８に示す結果に対し、ステージ２（Ｓ２）〜ステージ４（Ｓ４）の処理をする場合の概要を示すタイミングチャートである。以下、図３に示した手順に従って説明する。
まず、時刻Ｔ０において、処理するデータが存在するため、ＳＴ１０２に進み、係数パラメタ転送部１５５は係数パラメタＳ２を係数パラメタ保持部１４２に転送する（ＳＴ１０２）。続いて、時刻Ｔ１〜Ｔ４においてサブウィンドウ画像転送部１５４がデータＤ１をサブウィンドウ画像保持部１４１に転送する（ＳＴ１０３）。そして、時刻Ｔ５において、演算部１４３は、サブウィンドウ画像保持部１４１からデータＤ１及び係数パラメタ保持部１４２から係数パラメタＳ２を読み込み、演算処理を行う（ＳＴ１０４）。図９より、未処理係数パラメタが存在しているのでＳＴ１０７に進み、さらに未処理データが存在しているので、ＳＴ１０８に進む。
【００６０】
次に、ＳＴ１０８では、次の画像データＤ２との距離は９画素であり、図５より、係数パラメタ転送の方が有利であるため、ＳＴ１１１に進む。係数パラメタ転送制御部１５３は係数パラメタ保持部１４２が係数パラメタＳ３を保持しているかどうかを確認する。ここでは、保持していないため、ＳＴ１１２に進み、時刻Ｔ６〜Ｔ７において係数パラメタ転送部１５５が係数パラメタ保持部１４２に係数パラメタＳ３を転送する。ここでは、ＳＴ１１３には該当しないので、ＳＴ１０４に戻る。
【００６１】
時刻Ｔ８において演算部１４３は、サブウィンドウ画像保持部１４１から画像データＤ１及び係数パラメタ保持部１４２から係数パラメタＳ３を読み込み、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ１は係数パラメタＳ３の処理はＦＡＩＬするので、ＳＴ１０５からＳＴ１１６に進み、未処理データが存在しているので、ＳＴ１１７に進む。ここでは、サブウィンドウ画像保持部１４１はＤ２を保持していないので、ＳＴ１１８に進み、時刻Ｔ９〜Ｔ１２において画像データＤ２を転送する。
【００６２】
時刻Ｔ１３において演算部１４３は、サブウィンドウ画像保持部１４１から画像データＤ２、係数パラメタ保持部１４２から係数パラメタＳ２を読み込み、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ２は係数パラメタＳ２の処理はＦＡＩＬするので、ＳＴ１０５からＳＴ１１６に進み、未処理データが存在しているので、ＳＴ１１７に進む。ここでは、サブウィンドウ画像保持部１４１は、Ｄ３を保持していないので、ＳＴ１１８に進み、時刻Ｔ１４においてサブウィンドウ画像転送部１５４がサブウィンドウ画像保持部１４１に画像データＤ３を転送する。
【００６３】
時刻Ｔ１５において演算部１４３は、サブウィンドウ画像保持部１４１から画像データＤ３、係数パラメタ保持部１４２から係数パラメタＳ２を読み込み、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ３は係数パラメタＳ２の処理はＰＡＳＳするので、ＳＴ１０６に進む。そして、未処理係数パラメタが存在するので、ＳＴ１０７に進み、さらに未処理データが存在するので、ＳＴ１０８に進む。ＳＴ１０８では、次の画像データＤ４との距離は１画素であるので、図５より、画像データ転送の方が有利である。よってＳＴ１０９に進む。ＳＴ１０９において、領域画像転送制御部１５２はサブウィンドウ画像保持部１４１が画像データＤ４を保持しているかどうかを確認する。ここでは、保持していないため、ＳＴ１１０に進み、時刻Ｔ１６においてサブウィンドウ画像転送部１５４がサブウィンドウ画像保持部１４１に画像データＤ４を転送する。以下、時刻Ｔ１７〜Ｔ２１まで、画像データＤ４〜Ｄ６の演算および画像データＤ５〜Ｄ６の転送を繰り返す。
【００６４】
時刻Ｔ２１において、画像データＤ６に対する係数パラメタＳ２の処理がＰＡＳＳするので、ＳＴ１０６に進み、未処理係数パラメタおよび未処理データが存在するので、ＳＴ１０８に進む。ＳＴ１０８では、次のデータＤ７との距離は３画素であるので、図５より、係数パラメタ転送の方が有利である。よってＳＴ１１１に進む。ＳＴ１１１において、係数パラメタ転送制御部１５３は、係数パラメタ保持部１４２が係数パラメタＳ３を保持しているかどうかを確認する。ここでは、係数パラメタ保持部１４２に係数パラメタＳ３を保持しているため、ＳＴ１１３に進む。そして、ＳＴ１１３において、係数パラメタＳ３について、画像データＤ３〜Ｄ６が未処理であるため、ＳＴ１１４に進む。領域画像転送制御部１５２は、サブウィンドウ画像保持部１４１が画像データＤ３を保持しているかを確認し、画像データが保持されているためＳＴ１０４に進む。
【００６５】
時刻Ｔ２２において、演算部１４３は、サブウィンドウ画像保持部１４１から画像データＤ３、係数パラメタ保持部１４２から係数パラメタＳ３を読み込み、演算処理を行う（ＳＴ１０４）。図９より、データＤ３は係数パラメタＳ３の処理ではＰＡＳＳするので、ＳＴ１０６に進む。そして、未処理係数パラメタが存在するので、ＳＴ１０７に進む。また、未処理データが存在するので、ＳＴ１０８に進む。ＳＴ１０８では、次のデータＤ４との距離は１画素であるので、図５より、画像データ転送の方が有利である。よってＳＴ１０９に進む。そして、ＳＴ１０９において、領域画像転送制御部１５２はサブウィンドウ画像保持部１４１が画像データＤ４を保持しているかどうかを確認する。ここでは、画像データを保持しているため、ＳＴ１０４に進む。以下、時刻Ｔ２３〜Ｔ２５まで、画像データＤ４〜Ｄ６に対する係数パラメタ３の処理を繰り返す。
【００６６】
時刻Ｔ２５において、図９より、画像データＤ６は係数パラメタＳ３の処理ではＦＡＩＬするので、ＳＴ１１６に進む。そして、ＳＴ１１６において未処理データが存在するので、ＳＴ１１７に進み、領域画像転送制御部１５２はサブウィンドウ画像保持部１４１が画像データＤ７を保持しているかどうかを確認する。ここでは、画像データを保持していないため、ＳＴ１１８に進む。そして、時刻Ｔ２６〜Ｔ２８においてサブウィンドウ画像転送部１５４はサブウィンドウ画像保持部１４１に画像データＤ７を転送し、ＳＴ１０４に進む。
【００６７】
時刻Ｔ２９において、演算部１４３は、サブウィンドウ画像保持部１４１から画像データＤ７、係数パラメタ保持部１４２から係数パラメタＳ２を読み込み、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ７は係数パラメタＳ２の処理はＦＡＩＬするので、ＳＴ１１６に進む。未処理データが存在するので、ＳＴ１１７に進む。領域画像転送制御部１５２は、サブウィンドウ画像保持部１４１が画像データＤ８を保持しているかどうかを確認する。ここでは、画像データを保持していないため、ＳＴ１１８に進む。以下、時刻Ｔ３０〜Ｔ３５において、画像データＤ８〜Ｄ９の転送および演算を同様に繰り返す。
【００６８】
時刻Ｔ３６において、処理するデータがあるかどうかを判定する（ＳＴ１０１）。ここでは、画像データＤ３およびＤ４について係数パラメタＳ４の処理があるので、ＳＴ１０２に進む。時刻Ｔ３６〜Ｔ３８において、係数パラメタ転送部１５５が係数パラメタ保持部１４２に係数パラメタＳ４を転送する（ＳＴ１０２）。時刻Ｔ３９〜Ｔ４２において、サブウィンドウ画像転送部１５４がサブウィンドウ画像保持部１４１に画像データＤ３を転送する（ＳＴ１０３）。
【００６９】
時刻Ｔ４３において、演算部１４３はサブウィンドウ画像保持部１４１から画像データＤ３、係数パラメタ保持部１４２から係数パラメタＳ４を読み出し、演算処理を行う（Ｔ１０４）。図９より、画像データＤ３は係数パラメタＳ４の処理はＰＡＳＳするので、ＳＴ１０６に進む。そして、画像データＤ３には未処理係数パラメタは存在しないので、ＳＴ１０６からＳＴ１１６に進み、係数パラメタＳ４に対して未処理データが存在するので、ＳＴ１１６からＳＴ１１７に進む。そして、ＳＴ１１７において、未処理データＤ４がサブウィンドウ画像保持部１４１に保持されているかどうかを判定する。ここでは、画像データＤ４は、サブウィンドウ画像保持部に保持されているため、ＳＴ１０４に進む。
【００７０】
時刻Ｔ４４において、演算部１４３はサブウィンドウ画像保持部１４１から画像データＤ４、係数パラメタ保持部１４２から係数パラメタＳ４を読み出し、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ４は係数パラメタＳ４の処理はＰＡＳＳするので、ＳＴ１０６に進む。そして、画像データＤ４には未処理係数パラメタは存在しないので、ＳＴ１０６からＳＴ１１６に進み、係数パラメタＳ４に対して未処理データが存在するので、ＳＴ１１６からＳＴ１１７に進む。また、ＳＴ１１７において、Ｄ５はサブウィンドウ画像保持部１４１に保持されていない。このため、時刻Ｔ４５においてサブウィンドウ画像転送部１５４がサブウィンドウ画像保持部のアドレス２に画像データＤ５を転送する。
【００７１】
時刻Ｔ４６において、演算部１４３はサブウィンドウ画像保持部１４１から画像データＤ５、係数パラメタ保持部１４２から係数パラメタＳ４を読み出し、演算処理を行う（ＳＴ１０４）。図９より、画像データＤ５は係数パラメタＳ５の処理はＦＡＩＬするので、ＳＴ１１６に進む。そして、係数パラメタＳ４に対して未処理データは存在しないので、ＳＴ１１６からＳＴ１０１に進む。また、ＳＴ１０１において、処理するデータは存在しないので、処理を終了する。
【００７２】
図１１は、係数パラメタを固定してデータを切換えて多段データ処理をする場合の概要を示すタイミングチャートである。また、図２１は、データを固定して係数パラメタを切換えて多段データ処理をする場合の概要を示すタイミングチャートである。図１１より、パタンＡで処理した場合は時刻Ｔ６３まで、図２１より、パタンＢで処理した場合は時刻Ｔ５９まで処理がかかる。ところが本実施形態では、時刻Ｔ４６で処理を終了することができる。入力画像や係数パラメタ、前段ステージにおける打ち切りの割合により変動は生じるが、本実施形態では従来の方法に比べてデータおよび係数パラメタの転送負荷を軽減できる。これにより、システム全体の処理を高速化することができる。
【００７３】
なお、サブウィンドウ画像保持部１４１のメモリサイズがサブウィンドウ画像１面分の場合、サブウィンドウ画像の再ロード回数は増えるが、従来の方法に比べてシステム全体の処理を高速化できる。
【００７４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７５】
１２０  ＣＰＵ
１３０  システムメモリ
１４０  照合処理部
１５０  転送制御部
【図１】
2012108803.tif 000003
【図２】
2012108803.tif 000004
【図３】
2012108803.tif 000005
【図４】
2012108803.tif 000006
【図５】
2012108803.tif 000007
【図６】
2012108803.tif 000008
【図７】
2012108803.tif 000009
【図８】
2012108803.tif 000010
【図９】
2012108803.tif 000011
【図１０】
2012108803.tif 000012
【図１１】
2012108803.tif 000013
【図１２】
2012108803.tif 000014
【図１３】
2012108803.tif 000015
【図１４】
2012108803.tif 000016
【図１５】
2012108803.tif 000017
【図１６】
2012108803.tif 000018
【図１７】
2012108803.tif 000019
【図１８】
2012108803.tif 000020
【図１９】
2012108803.tif 000021
【図２０】
2012108803.tif 000022
【図２１】
2012108803.tif 000023
【図２２】
2012108803.tif 000024