(57)【特許請求の範囲】
【請求項１】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換手段と、
前記入力画像データ及び前記変換手段によって生成された変換後画像データを記憶する記憶手段と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、検出対象物の検出を行う検出領域を設定する検出領域設定手段と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、前記検出領域設定手段により前記入力画像データ及び前記変換後画像データに設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ面積が最小となる矩形領域を画像読み出し領域として設定する読み出し領域設定手段と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定手段により設定された画像読み出し領域に該当する部分を前記記憶手段から読み出す画像読み出し手段と、
前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定手段により設定された検出領域において検出対象物の検出を行う検出手段とを有し、
前記変換手段は、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする画像処理装置。
【請求項２】
前記画像読み出し手段は、前記画像読み出し領域に該当する部分を、前記検出手段による検出処理に用いるデータ、及び前記変換手段による前記変換後画像データの生成に用いるデータとして読み出すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出領域設定手段により設定される検出領域は、１つまたは複数の矩形領域であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記検出領域設定手段により設定される検出領域は、任意の形状であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項５】
前記変換後画像データは、前記入力画像データを縮小することによって生成される画像データであることを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換工程と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、検出対象物の検出を行う検出領域を設定する検出領域設定工程と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、前記検出領域設定工程において前記入力画像データ及び前記変換後画像データに設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ面積が最小となる矩形領域を画像読み出し領域として設定する読み出し領域設定工程と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定工程において設定された画像読み出し領域に該当する部分を、前記入力画像データ及び前記変換後画像データを記憶する記憶手段から読み出す画像読み出し工程と、
前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定工程において設定された検出領域において検出対象物の検出を行う検出工程とを有し、
前記変換工程においては、前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする画像処理方法。
【請求項７】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換工程と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、検出対象物の検出を行う検出領域を設定する検出領域設定工程と、
前記入力画像データ及び前記変換後画像データのそれぞれに対して、前記検出領域設定工程において前記入力画像データ及び前記変換後画像データに設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ面積が最小となる矩形領域を画像読み出し領域として設定する読み出し領域設定工程と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定工程において設定された画像読み出し領域に該当する部分を、前記入力画像データ及び前記変換後画像データを記憶する記憶手段から読み出す画像読み出し工程と、
前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定工程において設定された検出領域において検出対象物の検出を行う検出工程とをコンピュータに実行させ、
前記変換工程においては、前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法及びプログラムに関し、特に、ピラミッド画像を生成して画像認識処理を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
顔検出などの画像認識処理を行う際に、様々なサイズの検出対象物を検出するために、元の画像を縮小して複数のピラミッド画像を生成し、各ピラミッド画像に対して検出処理を行うことが一般的に行われている。例えば、特許文献１には、複数の大きさの顔を検出するために、読み出した画像を所定の割合で順次縮小してピラミッド画像を生成し、これらのピラミッド画像から顔判別処理を行う方法が開示されている。また、特許文献２には、多重解像度処理部で生成した縮小画像データを、バスを介さずに、パイプライン接続により正規化処理部、特徴量導出部、識別器に順次与える構成として識別処理を行う画像識別装置が開示されている。
【０００３】
ところが、特許文献１及び２に記載されている方法は、画像メモリへのアクセス数が多いため、画像認識処理の処理速度が低くなってしまう。そこで、画像認識処理を高速化するための技術として、例えば、特許文献３には、検出対象物の大きさ（解像度）や検出対象物の位置（座標）を限定して検出処理の計算量を減らす技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０２６１１号公報
【特許文献２】特開２００８−２１０００９号公報
【特許文献３】特開２００７−１２２４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献３に記載の方法では、例えば、部屋の中及び通路を撮影したような入力画像の場合に、検出対象物の位置を限定すると、検出対象物の検出が行われない領域が発生する。このような場合には、入力画像を順次縮小してピラミッド画像を生成すると、検出対象物の検出が行われない領域を含んで縮小処理が行われるため、画像メモリへの無駄なアクセスが生じてしまう。
【０００６】
本発明は前述の問題点に鑑み、複数の画像を用いて画像認識処理を行う際に、画像メモリへのアクセスをより低減できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、入力された入力画像データの解像度を変換した変換後画像データを生成する変換手段と、前記入力画像データ及び前記変換手段によって生成された変換後画像データを記憶する記憶手段と、前記入力画像データ及び前記変換後画像データのそれぞれに対して、検出対象物の検出を行う検出領域を設定する検出領域設定手段と、前記入力画像データ及び前記変換後画像データのそれぞれに対して、前記検出領域設定手段により前記入力画像データ及び前記変換後画像データに設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ面積が最小となる矩形領域を画像読み出し領域として設定する読み出し領域設定手段と、前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定手段により設定された画像読み出し領域に該当する部分を前記記憶手段から読み出す画像読み出し手段と、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定手段により設定された検出領域において検出対象物の検出を行う検出手段とを有し、前記変換手段は、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、縮小画像を生成する時に生じる無駄な画像メモリへのアクセスを回避することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理装置の構成例を示すブロック図である。
【図２】図１の画像読み出し部の詳細な内部構成例を示すブロック図である。
【図３】図１の画像書き込み部の詳細な内部構成例を示すブロック図である。
【図４】図１の検出領域設定部により設定される検出領域の設定値を画像の座標として説明する図である。
【図５】図１の読み出し領域設定部により設定される読み出し領域の設定値を画像の座標として説明する図である。
【図６】第２の実施形態に係る画像処理装置の構成例を示すブロック図である。
【図７】図６の検出領域設定部により設定される任意の形状の検出領域を説明する図である。
【図８】図６の読み出し領域設定部により設定される読み出し領域の設定値を説明する図である。
【図９】検出領域設定部または読み出し領域設定部に格納される設定値の情報の一例を示す図である。
【図１０】ピラミッド画像の一例を示す図である。
【図１１】画像の縮小処理時及び検出対象物の検出処理時における画像メモリへのアクセスを説明する図である。
【図１２】画像の縮小処理及び検出対象物の検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセスを説明する図である。
【図１３】画像メモリへのアクセスを減らすようにした画像処理装置の構成例を示すブロック図である。
【図１４】図１３に示す構成において、画像の縮小処理時及び検出対象物の検出処理時におけるメモリへのアクセスを説明する図である。
【図１５】カメラによって撮影された部屋の入力画像及び検出領域の一例を示す図である。
【図１６】図１５（ａ）に示した入力画像に対して、図１３に示した構成により人体検出を行う場合のメモリへのアクセスを説明する図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照しながら説明する。
【００１１】
（第１の実施形態）
まず、顔検出などの画像認識処理を行う際に、画像メモリへのアクセス数が多くなる理由について説明する。図１０は、様々なサイズの検出対象物を検出するためのピラミッド画像の一例を示す図である。例えば横３２０画素、縦２４０画素の入力画像１００１に対して、横及び縦をそれぞれ１／１．２倍ずつ縮小して８レベルの縮小画像Ａ１００２〜縮小画像Ｈ１００９を生成している。そして、入力画像と縮小画像とを合わせた９つの解像度の画像に対して検出対象物の検出処理を行うことにより、サイズの異なる検出対象物を検出することができる。
【００１２】
ここで、特許文献１に示したように、読み出した画像を順次縮小してピラミッド画像を生成し、検出対象物の検出処理を行う場合の画像メモリへのアクセスについて、図１１を参照しながら説明する。
【００１３】
図１１（ａ）は、ピラミッド画像を生成する縮小処理時における画像メモリへのアクセスを説明する図である。例えば、９つの解像度のピラミッド画像を生成する場合、まず、入力画像のデータを画像メモリから読み出して縮小処理を行った後、縮小画像Ａのデータを画像メモリに書き込む。次に、縮小画像Ａのデータを画像メモリから読み出して縮小処理を行った後、縮小画像Ｂのデータを画像メモリに書き込む。以下、同様に、最小の縮小画像Ｈのデータを画像メモリに書き込むまで、画像メモリの読み出し、縮小処理、及び画像メモリへの書き込み、を繰り返す。
【００１４】
図１１（ｂ）は、ピラミッド画像を生成した後に検出対象物の検出処理を行う場合の画像メモリへのアクセスを説明する図である。まず、入力画像のデータを画像メモリから読み出し、最も高い解像度で検出処理を行う。検出処理により出力される情報は、検出された検出対象物の情報であり、その情報は画像メモリに書き込まれない。以下、縮小画像Ａ〜縮小画像Ｈについても同様に、縮小画像データを画像メモリから読み出し、それぞれに対して検出処理を行うが、検出結果の情報は画像メモリに書き込まれない。
【００１５】
図１０に示したピラミッド画像を用いて図１１に示したような処理を行った場合、画像メモリへのメモリアクセス数を画素数で表すと、以下のようになる。まず、図１１（ａ）に示す処理において、より小さい縮小画像データを生成するために画像メモリから画像データを読み出したときのメモリアクセス数Ｒａは、
Ｒａ＝７６８００＋５３２００＋３６６８６＋・・・＋５６５５＝２３５６８８画素となる。
【００１６】
そして、図１１（ａ）に示す処理において、縮小画像データを生成して画像メモリに書き込むときのメモリアクセス数Ｗａは、
Ｗａ＝５３２００＋３６６８６＋２５３９２＋・・・＋３８８８＝１６２７７６画素となる。
【００１７】
さらに、図１１（ｂ）に示す処理において、画像メモリから縮小画像データを読み出すときのメモリアクセス数Ｒｂは、
Ｒｂ＝７６８００＋５３２００＋３６６８６＋・・・＋５６５５＋３８８８＝２３９５７６画素となる。
【００１８】
したがって、図１１に示す処理における合計のメモリアクセス数Ｎは、
Ｎ＝Ｒａ＋Ｗａ＋Ｒｂ＝２３５６８８＋１６２７７６＋２３９５７６＝６３８０４０画素となる。
【００１９】
このように合計のメモリアクセス数Ｎが多い理由としては、入力画像１００１、及び縮小画像Ａ１００２〜縮小画像Ｇ１００８のデータが、画像メモリから２回読み出されている点にある。したがって、図１１に示した方式では、画像メモリへのアクセスが多いという課題がある。
【００２０】
次に、特許文献２に記載されている方法に従って、読み出した画像データを縮小処理し、これらの縮小画像データからパイプライン構成により検出対象物を検出した場合の画像メモリへのアクセスについて、図１２を参照しながら説明する。
【００２１】
図１２は、入力画像に対応する解像度から縮小画像Ｈに対応する解像度までの縮小処理及び検出対象物の検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセスを説明する図である。図１２に示すように、全ての解像度に対応する縮小処理では、画像メモリから読み出されるのは入力画像のデータであり、必要に応じて縮小され、そのまま検出処理が行われる。同様に検出処理により出力される情報は、検出された検出対象物の情報であり、画像メモリへ画像データの書き込みは行わない。
【００２２】
図１０に示したピラミッド画像を、図１２に示すように処理した場合のメモリアクセス数を画素数で表すと、画像メモリへの読み出し数Ｒは、７６８００×９＝６９１２００画素となり、合計のメモリアクセス数Ｎも６９１２００画素となる。
【００２３】
このように、図１２に示した方式では、画像メモリへの書き込みは行われないが、画像メモリから読み出す画像データの解像度がすべて高いため、画像メモリへのアクセス数が多いという課題がある。
【００２４】
図１３は、図１０に示すピラミッド画像を用いて画像メモリへのアクセスを減らすようにした画像処理装置の構成例を示すブロック図である。
図１３において、メモリ１３０１には、入力画像データ１３１１が格納されており、また、ピラミッド画像を生成するために縮小画像データ１３１２を格納する領域が確保されている。画像読み出し部１３０３及び画像書き込み部１３１０は、インターコネクト１３０２を介してメモリ１３０１と接続されている。画像読み出し部１３０３はメモリ１３０１から入力画像データ１３１１を読み出し、画像書き込み部１３１０はメモリ１３０１へ縮小画像データ１３１２を書き込む。
【００２５】
インターコネクト１３０２は、例えば、バスやクロスバースイッチなどの接続手段である。画像読み出し部１３０３は、メモリ１３０１から読み出した画像データを、画像縮小部１３０４及び検出部１３０５に送るための出力ポートを２系統持っている。画像縮小部１３０４は、画像読み出し部１３０３から送られた画像データを受け取り、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて縮小を行う。そして、画像縮小部１３０４から縮小画像データ１３１２が画像書き込み部１３１０に送られ、画像書き込み部１３１０によってメモリ１３０１に書き込まれる。
【００２６】
検出部１３０５は、画像読み出し部１３０３から送られた画像データについて、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これだけに限定されるものではない。また、検出部１３０５はさらに、特徴抽出部１３０６、積分画像生成部１３０７、積分画像メモリ１３０８、及び照合処理部１３０９を備えている。
【００２７】
特徴抽出部１３０６は、入力された画像データから特徴量の抽出処理を行う。積分画像生成部１３０７は、抽出された特徴量を２次元的に累積していき特徴量の積分画像データを生成して、積分画像メモリ１３０８に格納する。積分画像メモリ１３０８は、照合処理部１３０９で検出対象物の照合処理を行うために必要なだけの積分画像データを保持するメモリである。照合処理部１３０９は、積分画像メモリ１３０８から積分画像データを必要なだけ読み出し、検出対象物との照合を行って、検出対象物の有無を検出する。
【００２８】
図１３に示した構成でメモリ１３０１へアクセスした場合について図１４を参照しながら説明する。図１３に示す構成では、画像読み出し部１３０３が読み出した画像データを、画像縮小部１３０４及び検出部１３０５に同時に送出するため、縮小処理と検出処理とを並行して実行できる。したがって、図１４に示すように、入力画像から縮小画像Ａを生成する過程で入力画像に対する検出処理が実行できる。次に、縮小画像Ａから縮小画像Ｂを生成する過程で、縮小画像Ａに対する検出処理を実行できる。以下、同様に低い解像度の画像の処理を行っていき、最後は、縮小画像Ｈに対して検出処理を行うことにより、全ピラミッド画像に対する検出処理が完了する。
【００２９】
図１０に示したピラミッド画像を図１４に示すような手順で処理した場合に、メモリアクセス数Ｎは、画素数で表すと、以下のようになる。メモリ１３０１から画像データを読み出すときのメモリアクセス数Ｒは、
Ｒ＝７６８００＋５３２００＋３６６８６＋・・・＋５６５５＋３８８８＝２３９５７６画素となる。
【００３０】
メモリ１３０１に縮小画像データを書き込むときのメモリアクセス数Ｗは、
Ｗ＝５３２００＋３６６８６＋２５３９２＋・・・＋３８８８＝１６２７７６画素となる。
【００３１】
したがって、合計のメモリアクセス数Ｎは、
Ｎ＝Ｒ＋Ｗ＝２３９５７６＋１６２７７６＝４０２３５２画素となる。
【００３２】
図１３に示す構成での合計のメモリアクセス数Ｎ（Ｎ＝４０２３５２画素）を、図１１に示した処理による合計のメモリアクセス数Ｎ（Ｎ＝６３８０４０画素）と比較すると、合計のメモリアクセス数Ｎが少なくなっていることがわかる。これは、縮小処理用の画像データと検出処理用の画像データとを同時に読み出している分、メモリアクセス数を減らすことができるからである。
【００３３】
また、図１３に示す構成での合計のメモリアクセス数Ｎ（Ｎ＝４０２３５２画素）を、図１２に示した処理による合計のメモリアクセス数Ｎ（Ｎ＝６９１２００画素）と比較しても、合計のメモリアクセス数Ｎが少なくなっていることがわかる。これは、読み出す画像の解像度が低くなるのに応じてサイズが小さくなっている分、メモリアクセス数を減らすことができるからである。
【００３４】
ところが、メモリアクセス数を減らすために図１３に示すような構成とし、さらに認識処理を高速化するために、特許文献３に記載されている方法に従って検出対象物の位置の限定を行った場合にも課題が生じる。これについて、図１５及び図１６を参照しながら説明する。
【００３５】
図１５（ａ）は、カメラによって撮影された人間１５０５を含む部屋１５０４の入力画像の一例を示す図である。図１５に示す例では、部屋１５０４は、２つの壁１５０１、１５０２で区切られており、通路１５０３を通じて人の出入りがある。図１５（ａ）に示すように、部屋１５０４の中はカメラに近いため、大きなサイズの人体が検出され、通路１５０３上はカメラから遠いため、小さなサイズの人体が検出される。このようにカメラの撮影状況や周囲の環境によって、画面内の位置により検出される対象物のサイズが決まってくることがある。
【００３６】
図１５（ｂ）は、図１５（ａ）に示す入力画像に対して検出領域を設定した例を示す図である。
図１５（ｂ）に示すように、小さなサイズの人体に関しては、通路１５０３付近でしか検出されないために、太線で示された検出領域１５０６の中だけに限定して人体検出を行うことができる。一方、大きなサイズの人体に関しては、部屋１５０４の中でしか検出されないために、太線で示された検出領域１５０７の中だけに限定して人体検出を行うことができる。
【００３７】
図１６は、図１５（ａ）に示した入力画像に対して、図１３に示した構成により人体検出を行う場合のメモリ１３０１へのアクセスを説明する図である。図１６において、縮小画像Ａ〜縮小画像Ｄは、入力画像を順次縮小して得られる縮小画像である。ここで、図１５（ｂ）に示す検出領域１５０６に対応する小さなサイズの人体の検出には、入力画像と縮小画像Ａとが用いられるものとする。また、図１５（ｂ）に示す検出領域１５０７に対応する大きなサイズの人体の検出には、縮小画像Ｂ〜縮小画像Ｄが用いられるものとする。
【００３８】
図１６において、斜線で示した領域１６０１〜１６０５は、それぞれ入力画像及び縮小画像Ａ〜縮小画像Ｄにおける検出領域１５０６または検出領域１５０７に対応する領域である。そして、各解像度の画像における検出処理は、この斜線の領域に限定して行われるため、検出処理では高速化することができる。
【００３９】
しかしながら、図１６の縮小画像Ｂにおいて太線で囲まれた領域１６０６や、縮小画像Ｃにおいて太線で囲まれた領域１６０７は、その後の処理で使用されないにも関わらず、縮小画像を生成するためにメモリ１３０１へのアクセスが行われている。このように、図１３に示した構成と検出対象物の位置の限定による高速化とを組み合わせただけでは、縮小画像データを生成する時に無駄な画像メモリへのアクセスが発生するという課題がある。
【００４０】
そこで本実施形態では、画像の中の読み出し領域、及び検出対象物の検出領域を設定することにより、合計のメモリアクセス数Ｎを抑える例について説明する。
【００４１】
図１は、本実施形態に係る画像処理装置１００の構成例を示すブロック図である。
図１において、メモリ１０１には、入力画像データ１１２が格納されており、また、ピラミッド画像を生成するために、縮小画像データ１１３を格納する領域が確保されている。画像読み出し部１０３及び画像書き込み部１１１は、インターコネクト１０２を介してメモリ１０１と接続されている。画像読み出し部１０３は、メモリ１０１に格納された入力画像データ１１２を読み出し、画像書き込み部１１１はメモリ１０１へ縮小画像データ１１３を書き込む。
【００４２】
インターコネクト１０２は、例えば、バスやクロスバースイッチなどの接続手段である。また、画像読み出し部１０３は、メモリ１０１から読み出した画像データを、画像縮小部１０４と検出部１０５とに送るための出力ポートを２系統持っている。画像縮小部１０４は、画像読み出し部１０３から画像データが送られ、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて縮小処理を行い、変換後画像データとして縮小画像データを生成する。画像縮小部１０４から縮小画像データが画像書き込み部１１１に送られ、画像書き込み部１１１によってメモリ１０１に書き込まれる。
【００４３】
検出部１０５は、画像読み出し部１０３から送られた画像データについて、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これだけに限定されるものではない。検出部１０５はさらに、特徴抽出部１０６、積分画像生成部１０７、積分画像メモリ１０８、照合処理部１０９及び検出領域限定部１１０を備えている。
【００４４】
特徴抽出部１０６は、入力された画像データから特徴量の抽出処理を行う。積分画像生成部１０７は、抽出された特徴量を２次元的に累積し、特徴量の積分画像データを生成して、積分画像メモリ１０８に格納する。積分画像メモリ１０８は、照合処理部１０９で検出対象物の照合処理を行うために必要なだけの積分画像データを保持するメモリである。照合処理部１０９は、積分画像メモリ１０８から積分画像データを必要なだけ読み出し、検出対象物との照合を行うことにより、検出対象物の有無を検出する。
【００４５】
検出領域限定部１１０は、後述する検出領域設定部１１４から検出領域の設定値の情報を入力し、その値に応じて照合処理部１０９が照合を行う範囲を検出領域の内部に限定するよう、照合処理部１０９を制御する。
【００４６】
検出領域設定部１１４は、検出部１０５が検出対象物を検出する領域を限定するために検出領域を設定し、検出領域の設定値の情報を検出部１０５の検出領域限定部１１０に送る。読み出し領域設定部１１５は、画像読み出し部１０３に対して、メモリ１０１から読み出す画像データの領域を限定するために読み出し領域を設定し、読み出し領域の設定値の情報を画像読み出し部１０３に送る。設定計算部１１６は、検出領域設定部１１４、及び読み出し領域設定部１１５が設定する設定値を計算する。
【００４７】
図２は、本実施形態における画像読み出し部１０３の詳細な内部構成例を示すブロック図である。
図２においては、まず、アドレス生成部２０６は、読み出し領域設定部１１５から送られた読み出し領域の設定値を参照し、入力画像の中の読み出し領域に限定した読み出しアドレスを生成する。この際、アドレスのアラインメントや画像のデータ形式を考慮して、受け取った読み出し領域の設定値に対応するアドレス範囲を拡張してアドレスを生成してもよい。アドレス生成部２０６は生成した読み出しアドレスを、インターコネクトインタフェース２０７を介して入力データバッファ２０５に格納する。
【００４８】
インターコネクトインタフェース２０７は、インターコネクト１０２を経由して指定されたアドレスに基づいてメモリ１０１から画像データの読み出し領域に該当する部分を読み出し、読み出された画像データを入力データバッファ２０５に送る。入力データバッファ２０５は、インターコネクト１０２を介して入力された画像データを一時的に保持しておくバッファである。
【００４９】
フォーマット変換部２０４は、入力データバッファ２０５に保持された画像データを読み出し、メモリ１０１上のデータ形式を、検出部１０５や画像縮小部１０４での処理に適した形式に変換する。変換の内容としては、例えば、バイト単位やビット単位の分割、パディング、データ並びの並べ替え、色空間の変換などの処理がある。
【００５０】
画像データバッファ２０３は、フォーマット変換部２０４により内部処理に適した形に変換された画像データを一時的に保持するバッファである。また、画像データバッファ２０３は、検出部出力インタフェース２０１、及び画像縮小部出力インタフェース２０２の双方を介して読み出され、両方に対して同じ画像データを送出する。
【００５１】
検出部出力インタフェース２０１は、画像データバッファ２０３から画像データを読み出し、検出部１０５に送出する。その際、検出部１０５に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。画像縮小部出力インタフェース２０２は、画像データバッファ２０３から画像データを読み出し、画像縮小部１０４に送出する。その際、画像縮小部１０４に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。
【００５２】
図３は、本実施形態における画像書き込み部１１１の詳細な内部構成例を示すブロック図である。
画像書き込み部１１１においては、まず、画像縮小部１０４から出力される縮小画像データが、画像縮小部入力インタフェース３０１に入力される。画像縮小部入力インタフェース３０１は、入力された縮小画像データをフォーマット変換部３０２に送るためのインタフェースである。
【００５３】
フォーマット変換部３０２は、画像縮小部１０４から入力されてきた縮小画像データを、メモリ１０１に書き込むのに適した形式に変換して、出力データバッファ３０３に格納する。変換の内容としては、例えば、ワード単位やバイト単位の分割、パディング、データの並び替えなどの処理がある。出力データバッファ３０３に格納された変換後の縮小画像データは、インターコネクトインタフェース３０５に送られ、インターコネクトインタフェース３０５は、アドレス生成部３０４で生成されたメモリ１０１の書き込みアドレスに縮小画像データを書き込む。
【００５４】
次に、本実施形態における検出領域設定部１１４及び読み出し領域設定部１１５が設定する設定値について、図４及び図５を参照しながら説明する。
【００５５】
図４は、検出領域設定部１１４により設定される検出領域の設定値を画像の座標として説明する図である。
図４において、入力画像４１１、縮小画像Ａ４１２、縮小画像Ｂ４１３、縮小画像Ｃ４１４、及び縮小画像Ｄ４１５は、元々の入力画像をピラミッド画像として縮小して得られる画像の系列である。なお、縮小画像Ａ４１２〜縮小画像Ｄ４１５は、後述する画像読み出し領域に基づいて生成される。図４に示す例では、縮小画像が４枚使用される例を示しているが、縮小画像の枚数は４枚に限定されるものではなく、これより少なくても多くてもよい。本実施形態では、ピラミッド画像系列の各画像に対して、それぞれ矩形の検出領域４０１〜４０５をそれぞれ設定することができる。
【００５６】
各矩形の検出領域４０１〜４０５の位置及び大きさは、左上の頂点座標（ｘｉ０，ｙｉ０）（ｉ＝０〜４）と右下の頂点座標（ｘｉ１，ｙｉ１）（ｉ＝０〜４）とを用いて表すことができる。なお、図４に示す例では、入力画像４１１に対してｉ＝０とし、縮小画像Ａ４１２〜縮小画像Ｄ４１５に対して、それぞれｉ＝１〜４としている。これらの座標値ｘｉ０、ｙｉ０、ｘｉ１、ｙｉ１（ｉ＝０〜４）は、図９（ａ）に示すように、設定値として検出領域設定部１１４に格納されている。
【００５７】
なお、座標値ｘｉ０、ｙｉ０、ｘｉ１、ｙｉ１といった座標系は、ピラミッド画像の系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能であり、元々の入力画像４１１上の画素位置の座標系を用いて表してもよい。また、右下の頂点座標を用いず、左上の頂点座標と矩形の幅・高さとを指定するなど、等価な設定値を用いて表してもよい。また、図４においては、ピラミッド画像系列の全ての画像に対して検出領域が設定されているが、特定の画像に対して検出領域がない、あるいは、検出領域の大きさが０という設定を行ってもよい。この場合、座標値ｘｉ０、ｙｉ０、ｘｉ１、ｙｉ１に加えて、検出領域がないことを示すための設定値を加えてもよいし、座標値ｘｉ０、ｙｉ０、ｘｉ１、ｙｉ１の設定値がある条件を満たした時に検出領域がないことを示すようにしてもよい。
【００５８】
図５は、読み出し領域設定部１１５により設定される読み出し領域の設定値を画像の座標として説明する図である。
図５において、本実施形態では、ピラミッド画像系列の各画像に対して、矩形の読み出し領域５０１〜５０５をそれぞれ設定することができる。
【００５９】
各矩形の読み出し領域５０１〜５０５の位置及び大きさは、左上の頂点座標（Ｘｉ０，Ｙｉ０）（ｉ＝０〜４）と右下の頂点座標（Ｘｉ１，Ｙｉ１）（ｉ＝０〜４）とを用いて表すことができる。なお、図５に示す例では、入力画像４１１に対してｉ＝０とし、縮小画像Ａ４１２〜縮小画像Ｄ４１５に対して、それぞれｉ＝１〜４としている。これらの座標値Ｘｉ０、Ｙｉ０、Ｘｉ１、Ｙｉ１（ｉ＝０〜４）は、図９（ｂ）に示すように、設定値として読み出し領域設定部１１５に格納されている。
【００６０】
なお、座標値Ｘｉ０、Ｙｉ０、Ｘｉ１、Ｙｉ１といった座標系は、ピラミッド画像系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能であり、元々の入力画像４１１上の画素位置の座標系を用いて表してもよい。
【００６１】
次に、本実施形態の動作について、図４及び図５を参照しながら説明する。設定計算部１１６は、図４に示す検出領域４０１〜４０５に対応する情報を、ユーザに指定されることにより取得するか、もしくは過去の検出結果から検出領域を推定することによって取得する。また、例えば、不図示の動体検出部や他の物体認識部などのその他の処理部の出力結果から検出領域を推定することにより取得してもよい。そして、設定計算部１１６は、図４に示す検出領域４０１〜４０５に対応する情報を検出領域設定部１１４に送る。
【００６２】
次に、設定計算部１１６は、図４に示す検出領域４０１〜４０５に対応する情報を参照して図５に示す読み出し領域５０１〜５０５を計算する。まず、図５に示す読み出し領域５０１を計算する際には、元々の入力画像４１１を処理する時点でまだ検出処理が完了していない全ての検出領域４０１〜４０５を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域５０１とする。
【００６３】
具体的には、例えば、各検出領域４０１〜４０５の座標系を、元々の入力画像４１１の座標系に揃え、頂点座標のｘ成分及びｙ成分のそれぞれについて最小値を求め、その最小値を読み出し領域５０１の左上頂点座標とする。さらに、頂点座標のｘ成分及びｙ成分のそれぞれについて最大値を求め、その最大値を読み出し領域５０１の右下頂点座標とする。このとき、頂点座標のｘ成分及びｙ成分のそれぞれの最小値、最大値をそのまま読み出し領域５０１の頂点座標とするのではなく、処理に必要な分の画素を加え、処理の都合上余裕を持たせて、領域がより大きくなるように設定してもよい。
【００６４】
次に、図５に示す読み出し領域５０２を計算する際には、縮小画像Ａ４１２を処理する時点でまだ検出処理が完了していない全ての検出領域４０２〜４０５を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域５０２とする。具体的な計算方法は、前述した読み出し領域５０１の計算方法と同様であるが、座標系を縮小画像Ａ４１２の座標系に揃えて計算する。以下、同様の手順により、縮小画像Ｂ４１３〜縮小画像Ｄ４１５に対して、それぞれ図５に示す読み出し領域５０３〜５０５を計算する。そして、設定計算部１１６は、図５に示す読み出し領域５０１〜５０５に対応する情報を読み出し領域設定部１１５に送る。
【００６５】
以上のように、検出領域設定部１１４は、入力された検出領域の情報に従って検出部１０５が検出処理を行う領域を設定する。一方、読み出し領域設定部１１５は、入力された読み出し領域の情報に従って、画像読み出し部１０３が読み出す領域を設定する。そして、この設定に従って、ピラミッド画像系列の各画像に対して画像データの読み出し、縮小処理、及び検出処理を順次実行する。
【００６６】
本実施形態によれば、読み出し領域設定部１１５の設定において、まだ検出処理を行っていない検出領域を含むような最小の読み出し領域を画像領域に設定するようにしている。このため、検出処理が終了し、検出処理に必要のない領域の読み出しを回避するとともに、縮小画像を生成する時に生じる無駄な画像メモリへのアクセスを減らすことができる。
【００６７】
なお、本実施形態では、検出部１０５において積分画像データを生成して積分画像メモリ１０８に蓄積し、照合処理部１０９により照合処理を行ったが、積分画像データを生成しないようにしてもよい。例えば、特徴抽出部１０６の出力結果を不図示のメモリにそのまま蓄積して検出対象物を検出する場合であっても、本発明を適用できる。
【００６８】
また、本実施形態では、検出領域限定部１１０は照合処理部１０９を制御して検出領域を限定したが、検出領域限定部１１０は、検出部１０５内の他の処理部を制御して、検出領域を限定してもよい。ここで検出部１０５内の他の処理部とは、積分画像メモリ１０８、積分画像生成部１０７、及び特徴抽出部１０６のすべて、あるいは一部である。
【００６９】
また、図４の説明においては、ピラミッド画像系列上の各画像について、検出領域を一つの矩形としたが、各画像に、複数の矩形を検出領域として指定してもよい。この場合、設定計算部１１６は、ピラミッド画像系列上の各画像を処理する時点でまだ検出処理の完了していない全ての矩形の検出領域を包含する面積が最小の矩形領域を求め、読み出し領域設定部１１５は、その矩形領域を対応する読み出し領域と設定する。
【００７０】
また、本実施形態では、検出領域設定部１１４及び読み出し領域設定部１１５において、ピラミッド画像系列上の全ての画像に対応する設定値を予め保持しておくものとした。一方、ピラミッド画像系列上の全ての画像ではなく、一部の画像の設定値だけを保持するようにしておき、処理が進むにつれて、設定値を入れ替えながら使用してもよい。
【００７１】
また、本実施形態では、高い解像度から低い解像度に向けて順に処理を行ったため、画像縮小部１０４では、縮小処理のみを行った。一方、低い解像度から高い解像度に向けてなど、異なる順序で処理を行う場合、画像縮小部１０４を、拡大を含む解像度の変換処理が可能な解像度変換部に置き換えてもよい。
【００７２】
また、本実施形態では、メモリ１０１が一つの場合を示しているが、メモリは一つでも複数でもよく、また、入力画像データを記憶するメモリと、縮小画像データを記憶するメモリとが同一でも異なっていてもよい。
【００７３】
また、本実施形態に係る検出部１０５において実行される検出処理は、顔や人体など、ある不特定の対象物を検出する場合に限定されるものではなく、あるカテゴリに属する対象物の検出や、特定の対象物の検出など、いわゆる識別と呼ばれる処理であってもよい。
【００７４】
（第２の実施形態）
以下、本発明の第２の実施形態について説明する。本実施形態では、第１の実施形態と異なり、検出領域を矩形により限定するのではなく、任意の形状により限定する。以下、本実施形態における構成に関して、図６を参照しながら説明する。
【００７５】
図６は、本実施形態に係る画像処理装置６００の構成例を示すブロック図である。なお、図１と同じ構成に関しては、図１と同じ符号で示している。第１の実施形態と異なる構成は、検出領域限定部６０１、検出領域設定部６０２、及び設定計算部６０３であり、その他の構成については、図１と同様であるため、説明は省略する。
【００７６】
本実施形態においては、検出領域を任意の形状により限定するため、検出領域設定部６０２は、任意の形状の検出領域を表すビットマップデータを保持している。検出領域限定部６０１は、検出領域設定部６０２から検出領域を表すビットマップデータを受け取り、検出処理を行う座標に対応するビットマップデータの値に従って、その座標で検出処理を行うか行わないかを制御する。
【００７７】
設定計算部６０３は、取得した任意の形状の検出領域を表すビットマップデータを検出領域設定部６０２に送る。ここで、設定計算部６０３は、ユーザに指定されることによりビットマップデータを取得してもよく、過去の検出結果から検出領域を推定することによって取得してもよい。また、例えば、不図示の動体検出部や他の物体認識部などのその他の処理部の出力結果から検出領域を推定することによりビットマップデータを取得してもよい。また、設定計算部６０３は、任意の形状の検出領域の情報を参照し、読み出し領域設定部１１５が設定する設定値を計算する。
【００７８】
次に、本実施形態における検出領域設定部６０２及び読み出し領域設定部１１５が設定する設定値について、図７及び図８を参照しながら説明する。
【００７９】
図７は、検出領域設定部６０２により設定される任意の形状の検出領域を説明する図である。
図７において、入力画像７１１、縮小画像Ａ７１２、縮小画像Ｂ７１３、縮小画像Ｃ７１４、及び縮小画像Ｄ７１５は、元々の入力画像７１１をピラミッド画像として縮小して得られる画像の系列である。なお、縮小画像Ａ７１２〜縮小画像Ｄ７１５は、後述する画像読み出し領域に基づいて生成される。図７に示す例では、縮小画像が４枚使用される例を示しているが、縮小画像の枚数は４枚に限定されるものではなく、これより少なくても多くてもよい。本実施形態では、ピラミッド画像系列の各画像に対して、任意の形状の検出領域７０１〜７０５をそれぞれ設定することができる。
【００８０】
本実施形態においては、検出領域設定部６０２は、任意の形状を表すために画素単位のビットマップデータを用い、各画素の位置において、その位置に対して検出処理を実行するか否かの情報をビットマップデータとして保持する。なお、ビットマップデータの座標系は、ピラミッド画像の系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能な、元々の入力画像７１１上の画素位置の座標系を用いて表してもよい。
【００８１】
また、図７においては、ピラミッド画像系列の全ての画像に対して検出領域が設定されているが、特定の画像に対して検出領域がないような設定を行ってもよい。この場合、ビットマップデータとともに、検出領域がないことを示すための設定値を保持するようにしてもよい。また、ビットマップデータを保持する単位については、画素単位に限らず、２画素×２画素など複数画素を組にした領域に対してビットマップデータを保持してもよい。
【００８２】
図８は、読み出し領域設定部１１５により設定される読み出し領域の設定値を説明する図である。
図８において、本実施形態では、ピラミッド画像系列の各画像に対して、矩形の読み出し領域８０１〜８０５をそれぞれ設定することができる。
【００８３】
各矩形の読み出し領域の位置及び大きさは、第１の実施形態と同様に、左上の頂点座標（Ｘｉ０，Ｙｉ０）（ｉ＝０〜４）と右下の頂点座標（Ｘｉ１，Ｙｉ１）（ｉ＝０〜４）とを用いて表すことができる。これらの座標値Ｘｉ０、Ｙｉ０、Ｘｉ１、Ｙｉ１（ｉ＝０〜４）は、図９（ｃ）に示すように設定値として読み出し領域設定部１１５に格納されている。
【００８４】
なお、Ｘｉ０、Ｙｉ０、Ｘｉ１、Ｙｉ１といった座標系は、ピラミッド画像系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能な、元々の入力画像７１１上の画素位置の座標系を用いて表してもよい。
【００８５】
次に、本実施形態の動作について、図７及び図８を参照しながら説明する。設定計算部６０３は、図７に示す検出領域７０１〜７０５に対応する情報をビットマップデータとして取得する。そして、取得したビットマップデータを検出領域設定部６０２に送る。
【００８６】
次に、設定計算部６０３は、図７に示す検出領域７０１〜７０５に対応する情報を参照して、図８に示す読み出し領域８０１〜８０５を計算する。まず、図８に示す読み出し領域８０１を計算する際には、まず、元々の入力画像７１１を処理する時点でまだ検出処理の完了していない全ての検出領域７０１〜７０５を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域８０１とする。
【００８７】
具体的には、例えば、検出領域７０１〜７０５の情報を格納したそれぞれのビットマップデータについて、検出処理を行うことが指定された位置のｘ成分、ｙ成分の最小値及び最大値を計算する。さらに、各ビットマップデータで計算したｘ成分、ｙ成分の最小値及び最大値の座標系を元々の入力画像７１１の座標系に揃え、まだ検出処理を行っていない入力画像７１１、縮小画像Ａ７１２〜縮小画像Ｄ７１５全体での最小値及び最大値を計算する。
【００８８】
そして、検出処理を行うことが指定された位置のｘ成分、ｙ成分の最小値を読み出し領域８０１の左上頂点座標とする。さらに、検出処理を行うことが指定された位置のｘ成分、ｙ成分の最大値を読み出し領域８０１の右下頂点座標とする。このとき、頂点座標のｘ成分、ｙ成分の最小値及び最大値をそのまま読み出し領域８０１の頂点座標とするのではなく、処理に必要な分の画素を加え、処理の都合上余裕を持たせて、領域がより大きくなるように設定してもよい。
【００８９】
また、各ビットマップデータに関して、検出処理を行うことが指定された位置のｘ成分、ｙ成分のそれぞれの最小値及び最大値を予め求めておいてもよい。この場合、各画像に対して予め求めておいた最小値及び最大値を用いて、前述した計算を行う。
【００９０】
次に、図８に示す読み出し領域８０２の計算においては、縮小画像Ａ７１２を処理する時点でまだ検出処理の完了していない全ての検出領域７０２〜７０５を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域８０２とする。具体的な計算方法は、前述した読み出し領域８０１の計算方法と同様であるが、座標系を縮小画像Ａ７１２の座標系に揃えた上で計算する。以下、同様の手順により、縮小画像Ｂ７１３〜縮小画像Ｄ７１５に対して、それぞれ図８に示す読み出し領域８０３〜８０５を計算する。そして、設定計算部６０３は、図８に示す読み出し領域８０１〜８０５に対応する情報を読み出し領域設定部１１５に送る。
【００９１】
以上のように、検出領域設定部６０２は、入力されたビットマップデータに従って各画素の位置において、その位置に対して検出処理を実行するか否かの情報をビットマップデータとして保持する。一方、読み出し領域設定部１１５は、入力された読み出し領域の情報に従って、画像読み出し部１０３が読み出す領域を設定する。この設定に従って、ピラミッド画像系列の各画像に対して画像のデータ読み出し、縮小処理、及び検出処理を順次実行する。
【００９２】
以上のように本実施形態によれば、任意の形状により検出領域を設定した場合にも、検出処理が終了し、検出処理に必要のない領域の読み出しを回避し、無駄な画像メモリへのアクセスを減らすことができる。
【００９３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９４】
１０１  メモリ
１０３  画像読み出し部
１０４  画像縮小部
１０５  検出部
１１４  検出領域設定部
１１５  読み出し領域設定部
【図１】
0005777422.tif 000002
【図２】
0005777422.tif 000003
【図３】
0005777422.tif 000004
【図４】
0005777422.tif 000005
【図５】
0005777422.tif 000006
【図６】
0005777422.tif 000007
【図７】
0005777422.tif 000008
【図８】
0005777422.tif 000009
【図９】
0005777422.tif 000010
【図１０】
0005777422.tif 000011
【図１１】
0005777422.tif 000012
【図１２】
0005777422.tif 000013
【図１３】
0005777422.tif 000014
【図１４】
0005777422.tif 000015
【図１５】
0005777422.tif 000016
【図１６】
0005777422.tif 000017