説明

画像処理装置、画像処理方法及びプログラム

【課題】複数の画像を用いて画像認識処理を行う際に、画像メモリへのアクセスをより低減できるようにする。
【解決手段】検出領域設定部114は、入力された検出領域の情報に従って検出部105が検出処理を行う領域を設定する。一方、読み出し領域設定部115は、入力された読み出し領域の情報に従って、画像読み出し部103が読み出す領域を設定する。そして、この設定に従って、ピラミッド画像系列の各画像に対して画像データの読み出し、縮小処理、及び検出処理を順次実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法及びプログラムに関し、特に、ピラミッド画像を生成して画像認識処理を行うために用いて好適な技術に関する。
【背景技術】
【0002】
顔検出などの画像認識処理を行う際に、様々なサイズの検出対象物を検出するために、元の画像を縮小して複数のピラミッド画像を生成し、各ピラミッド画像に対して検出処理を行うことが一般的に行われている。例えば、特許文献1には、複数の大きさの顔を検出するために、読み出した画像を所定の割合で順次縮小してピラミッド画像を生成し、これらのピラミッド画像から顔判別処理を行う方法が開示されている。また、特許文献2には、多重解像度処理部で生成した縮小画像データを、バスを介さずに、パイプライン接続により正規化処理部、特徴量導出部、識別器に順次与える構成として識別処理を行う画像識別装置が開示されている。
【0003】
ところが、特許文献1及び2に記載されている方法は、画像メモリへのアクセス数が多いため、画像認識処理の処理速度が低くなってしまう。そこで、画像認識処理を高速化するための技術として、例えば、特許文献3には、検出対象物の大きさ(解像度)や検出対象物の位置(座標)を限定して検出処理の計算量を減らす技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−102611号公報
【特許文献2】特開2008−210009号公報
【特許文献3】特開2007−122484号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献3に記載の方法では、例えば、部屋の中及び通路を撮影したような入力画像の場合に、検出対象物の位置を限定すると、検出対象物の検出が行われない領域が発生する。このような場合には、入力画像を順次縮小してピラミッド画像を生成すると、検出対象物の検出が行われない領域を含んで縮小処理が行われるため、画像メモリへの無駄なアクセスが生じてしまう。
【0006】
本発明は前述の問題点に鑑み、複数の画像を用いて画像認識処理を行う際に、画像メモリへのアクセスをより低減できるようにすることを目的としている。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、入力された入力画像データの解像度を変換した変換後画像データを生成する変換手段と、前記入力画像データ及び前記変換手段によって生成された変換後画像データを記憶する記憶手段と、前記入力画像データ及び前記変換後画像データに対して、それぞれ異なる検出対象物の検出を行う検出領域を設定する検出領域設定手段と、前記検出領域設定手段により設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ前記入力画像データ及び前記変換後画像データのそれぞれの画像領域よりも小さい領域を画像読み出し領域として前記入力画像データ及び前記変換後画像データのそれぞれに対して設定する読み出し領域設定手段と、前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定手段により設定された画像読み出し領域に該当する部分を前記記憶手段から読み出す画像読み出し手段と、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定手段により設定された検出領域において検出対象物の検出を行う検出手段とを有し、前記変換手段は、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする。
【発明の効果】
【0008】
本発明によれば、縮小画像を生成する時に生じる無駄な画像メモリへのアクセスを回避することができる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係る画像処理装置の構成例を示すブロック図である。
【図2】図1の画像読み出し部の詳細な内部構成例を示すブロック図である。
【図3】図1の画像書き込み部の詳細な内部構成例を示すブロック図である。
【図4】図1の検出領域設定部により設定される検出領域の設定値を画像の座標として説明する図である。
【図5】図1の読み出し領域設定部により設定される読み出し領域の設定値を画像の座標として説明する図である。
【図6】第2の実施形態に係る画像処理装置の構成例を示すブロック図である。
【図7】図6の検出領域設定部により設定される任意の形状の検出領域を説明する図である。
【図8】図6の読み出し領域設定部により設定される読み出し領域の設定値を説明する図である。
【図9】検出領域設定部または読み出し領域設定部に格納される設定値の情報の一例を示す図である。
【図10】ピラミッド画像の一例を示す図である。
【図11】画像の縮小処理時及び検出対象物の検出処理時における画像メモリへのアクセスを説明する図である。
【図12】画像の縮小処理及び検出対象物の検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセスを説明する図である。
【図13】画像メモリへのアクセスを減らすようにした画像処理装置の構成例を示すブロック図である。
【図14】図13に示す構成において、画像の縮小処理時及び検出対象物の検出処理時におけるメモリへのアクセスを説明する図である。
【図15】カメラによって撮影された部屋の入力画像及び検出領域の一例を示す図である。
【図16】図15(a)に示した入力画像に対して、図13に示した構成により人体検出を行う場合のメモリへのアクセスを説明する図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照しながら説明する。
【0011】
(第1の実施形態)
まず、顔検出などの画像認識処理を行う際に、画像メモリへのアクセス数が多くなる理由について説明する。図10は、様々なサイズの検出対象物を検出するためのピラミッド画像の一例を示す図である。例えば横320画素、縦240画素の入力画像1001に対して、横及び縦をそれぞれ1/1.2倍ずつ縮小して8レベルの縮小画像A1002〜縮小画像H1009を生成している。そして、入力画像と縮小画像とを合わせた9つの解像度の画像に対して検出対象物の検出処理を行うことにより、サイズの異なる検出対象物を検出することができる。
【0012】
ここで、特許文献1に示したように、読み出した画像を順次縮小してピラミッド画像を生成し、検出対象物の検出処理を行う場合の画像メモリへのアクセスについて、図11を参照しながら説明する。
【0013】
図11(a)は、ピラミッド画像を生成する縮小処理時における画像メモリへのアクセスを説明する図である。例えば、9つの解像度のピラミッド画像を生成する場合、まず、入力画像のデータを画像メモリから読み出して縮小処理を行った後、縮小画像Aのデータを画像メモリに書き込む。次に、縮小画像Aのデータを画像メモリから読み出して縮小処理を行った後、縮小画像Bのデータを画像メモリに書き込む。以下、同様に、最小の縮小画像Hのデータを画像メモリに書き込むまで、画像メモリの読み出し、縮小処理、及び画像メモリへの書き込み、を繰り返す。
【0014】
図11(b)は、ピラミッド画像を生成した後に検出対象物の検出処理を行う場合の画像メモリへのアクセスを説明する図である。まず、入力画像のデータを画像メモリから読み出し、最も高い解像度で検出処理を行う。検出処理により出力される情報は、検出された検出対象物の情報であり、その情報は画像メモリに書き込まれない。以下、縮小画像A〜縮小画像Hについても同様に、縮小画像データを画像メモリから読み出し、それぞれに対して検出処理を行うが、検出結果の情報は画像メモリに書き込まれない。
【0015】
図10に示したピラミッド画像を用いて図11に示したような処理を行った場合、画像メモリへのメモリアクセス数を画素数で表すと、以下のようになる。まず、図11(a)に示す処理において、より小さい縮小画像データを生成するために画像メモリから画像データを読み出したときのメモリアクセス数Raは、
Ra=76800+53200+36686+・・・+5655=235688画素となる。
【0016】
そして、図11(a)に示す処理において、縮小画像データを生成して画像メモリに書き込むときのメモリアクセス数Waは、
Wa=53200+36686+25392+・・・+3888=162776画素となる。
【0017】
さらに、図11(b)に示す処理において、画像メモリから縮小画像データを読み出すときのメモリアクセス数Rbは、
Rb=76800+53200+36686+・・・+5655+3888=239576画素となる。
【0018】
したがって、図11に示す処理における合計のメモリアクセス数Nは、
N=Ra+Wa+Rb=235688+162776+239576=638040画素となる。
【0019】
このように合計のメモリアクセス数Nが多い理由としては、入力画像1001、及び縮小画像A1002〜縮小画像G1008のデータが、画像メモリから2回読み出されている点にある。したがって、図11に示した方式では、画像メモリへのアクセスが多いという課題がある。
【0020】
次に、特許文献2に記載されている方法に従って、読み出した画像データを縮小処理し、これらの縮小画像データからパイプライン構成により検出対象物を検出した場合の画像メモリへのアクセスについて、図12を参照しながら説明する。
【0021】
図12は、入力画像に対応する解像度から縮小画像Hに対応する解像度までの縮小処理及び検出対象物の検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセスを説明する図である。図12に示すように、全ての解像度に対応する縮小処理では、画像メモリから読み出されるのは入力画像のデータであり、必要に応じて縮小され、そのまま検出処理が行われる。同様に検出処理により出力される情報は、検出された検出対象物の情報であり、画像メモリへ画像データの書き込みは行わない。
【0022】
図10に示したピラミッド画像を、図12に示すように処理した場合のメモリアクセス数を画素数で表すと、画像メモリへの読み出し数Rは、76800×9=691200画素となり、合計のメモリアクセス数Nも691200画素となる。
【0023】
このように、図12に示した方式では、画像メモリへの書き込みは行われないが、画像メモリから読み出す画像データの解像度がすべて高いため、画像メモリへのアクセス数が多いという課題がある。
【0024】
図13は、図10に示すピラミッド画像を用いて画像メモリへのアクセスを減らすようにした画像処理装置の構成例を示すブロック図である。
図13において、メモリ1301には、入力画像データ1311が格納されており、また、ピラミッド画像を生成するために縮小画像データ1312を格納する領域が確保されている。画像読み出し部1303及び画像書き込み部1310は、インターコネクト1302を介してメモリ1301と接続されている。画像読み出し部1303はメモリ1301から入力画像データ1311を読み出し、画像書き込み部1310はメモリ1301へ縮小画像データ1312を書き込む。
【0025】
インターコネクト1302は、例えば、バスやクロスバースイッチなどの接続手段である。画像読み出し部1303は、メモリ1301から読み出した画像データを、画像縮小部1304及び検出部1305に送るための出力ポートを2系統持っている。画像縮小部1304は、画像読み出し部1303から送られた画像データを受け取り、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて縮小を行う。そして、画像縮小部1304から縮小画像データ1312が画像書き込み部1310に送られ、画像書き込み部1310によってメモリ1301に書き込まれる。
【0026】
検出部1305は、画像読み出し部1303から送られた画像データについて、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これだけに限定されるものではない。また、検出部1305はさらに、特徴抽出部1306、積分画像生成部1307、積分画像メモリ1308、及び照合処理部1309を備えている。
【0027】
特徴抽出部1306は、入力された画像データから特徴量の抽出処理を行う。積分画像生成部1307は、抽出された特徴量を2次元的に累積していき特徴量の積分画像データを生成して、積分画像メモリ1308に格納する。積分画像メモリ1308は、照合処理部1309で検出対象物の照合処理を行うために必要なだけの積分画像データを保持するメモリである。照合処理部1309は、積分画像メモリ1308から積分画像データを必要なだけ読み出し、検出対象物との照合を行って、検出対象物の有無を検出する。
【0028】
図13に示した構成でメモリ1301へアクセスした場合について図14を参照しながら説明する。図13に示す構成では、画像読み出し部1303が読み出した画像データを、画像縮小部1304及び検出部1305に同時に送出するため、縮小処理と検出処理とを並行して実行できる。したがって、図14に示すように、入力画像から縮小画像Aを生成する過程で入力画像に対する検出処理が実行できる。次に、縮小画像Aから縮小画像Bを生成する過程で、縮小画像Aに対する検出処理を実行できる。以下、同様に低い解像度の画像の処理を行っていき、最後は、縮小画像Hに対して検出処理を行うことにより、全ピラミッド画像に対する検出処理が完了する。
【0029】
図10に示したピラミッド画像を図14に示すような手順で処理した場合に、メモリアクセス数Nは、画素数で表すと、以下のようになる。メモリ1301から画像データを読み出すときのメモリアクセス数Rは、
R=76800+53200+36686+・・・+5655+3888=239576画素となる。
【0030】
メモリ1301に縮小画像データを書き込むときのメモリアクセス数Wは、
W=53200+36686+25392+・・・+3888=162776画素となる。
【0031】
したがって、合計のメモリアクセス数Nは、
N=R+W=239576+162776=402352画素となる。
【0032】
図13に示す構成での合計のメモリアクセス数N(N=402352画素)を、図11に示した処理による合計のメモリアクセス数N(N=638040画素)と比較すると、合計のメモリアクセス数Nが少なくなっていることがわかる。これは、縮小処理用の画像データと検出処理用の画像データとを同時に読み出している分、メモリアクセス数を減らすことができるからである。
【0033】
また、図13に示す構成での合計のメモリアクセス数N(N=402352画素)を、図12に示した処理による合計のメモリアクセス数N(N=691200画素)と比較しても、合計のメモリアクセス数Nが少なくなっていることがわかる。これは、読み出す画像の解像度が低くなるのに応じてサイズが小さくなっている分、メモリアクセス数を減らすことができるからである。
【0034】
ところが、メモリアクセス数を減らすために図13に示すような構成とし、さらに認識処理を高速化するために、特許文献3に記載されている方法に従って検出対象物の位置の限定を行った場合にも課題が生じる。これについて、図15及び図16を参照しながら説明する。
【0035】
図15(a)は、カメラによって撮影された人間1505を含む部屋1504の入力画像の一例を示す図である。図15に示す例では、部屋1504は、2つの壁1501、1502で区切られており、通路1503を通じて人の出入りがある。図15(a)に示すように、部屋1504の中はカメラに近いため、大きなサイズの人体が検出され、通路1503上はカメラから遠いため、小さなサイズの人体が検出される。このようにカメラの撮影状況や周囲の環境によって、画面内の位置により検出される対象物のサイズが決まってくることがある。
【0036】
図15(b)は、図15(a)に示す入力画像に対して検出領域を設定した例を示す図である。
図15(b)に示すように、小さなサイズの人体に関しては、通路1503付近でしか検出されないために、太線で示された検出領域1506の中だけに限定して人体検出を行うことができる。一方、大きなサイズの人体に関しては、部屋1504の中でしか検出されないために、太線で示された検出領域1507の中だけに限定して人体検出を行うことができる。
【0037】
図16は、図15(a)に示した入力画像に対して、図13に示した構成により人体検出を行う場合のメモリ1301へのアクセスを説明する図である。図16において、縮小画像A〜縮小画像Dは、入力画像を順次縮小して得られる縮小画像である。ここで、図15(b)に示す検出領域1506に対応する小さなサイズの人体の検出には、入力画像と縮小画像Aとが用いられるものとする。また、図15(b)に示す検出領域1507に対応する大きなサイズの人体の検出には、縮小画像B〜縮小画像Dが用いられるものとする。
【0038】
図16において、斜線で示した領域1601〜1605は、それぞれ入力画像及び縮小画像A〜縮小画像Dにおける検出領域1506または検出領域1507に対応する領域である。そして、各解像度の画像における検出処理は、この斜線の領域に限定して行われるため、検出処理では高速化することができる。
【0039】
しかしながら、図16の縮小画像Bにおいて太線で囲まれた領域1606や、縮小画像Cにおいて太線で囲まれた領域1607は、その後の処理で使用されないにも関わらず、縮小画像を生成するためにメモリ1301へのアクセスが行われている。このように、図13に示した構成と検出対象物の位置の限定による高速化とを組み合わせただけでは、縮小画像データを生成する時に無駄な画像メモリへのアクセスが発生するという課題がある。
【0040】
そこで本実施形態では、画像の中の読み出し領域、及び検出対象物の検出領域を設定することにより、合計のメモリアクセス数Nを抑える例について説明する。
【0041】
図1は、本実施形態に係る画像処理装置100の構成例を示すブロック図である。
図1において、メモリ101には、入力画像データ112が格納されており、また、ピラミッド画像を生成するために、縮小画像データ113を格納する領域が確保されている。画像読み出し部103及び画像書き込み部111は、インターコネクト102を介してメモリ101と接続されている。画像読み出し部103は、メモリ101に格納された入力画像データ112を読み出し、画像書き込み部111はメモリ101へ縮小画像データ113を書き込む。
【0042】
インターコネクト102は、例えば、バスやクロスバースイッチなどの接続手段である。また、画像読み出し部103は、メモリ101から読み出した画像データを、画像縮小部104と検出部105とに送るための出力ポートを2系統持っている。画像縮小部104は、画像読み出し部103から画像データが送られ、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて縮小処理を行い、変換後画像データとして縮小画像データを生成する。画像縮小部104から縮小画像データが画像書き込み部111に送られ、画像書き込み部111によってメモリ101に書き込まれる。
【0043】
検出部105は、画像読み出し部103から送られた画像データについて、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これだけに限定されるものではない。検出部105はさらに、特徴抽出部106、積分画像生成部107、積分画像メモリ108、照合処理部109及び検出領域限定部110を備えている。
【0044】
特徴抽出部106は、入力された画像データから特徴量の抽出処理を行う。積分画像生成部107は、抽出された特徴量を2次元的に累積し、特徴量の積分画像データを生成して、積分画像メモリ108に格納する。積分画像メモリ108は、照合処理部109で検出対象物の照合処理を行うために必要なだけの積分画像データを保持するメモリである。照合処理部109は、積分画像メモリ108から積分画像データを必要なだけ読み出し、検出対象物との照合を行うことにより、検出対象物の有無を検出する。
【0045】
検出領域限定部110は、後述する検出領域設定部114から検出領域の設定値の情報を入力し、その値に応じて照合処理部109が照合を行う範囲を検出領域の内部に限定するよう、照合処理部109を制御する。
【0046】
検出領域設定部114は、検出部105が検出対象物を検出する領域を限定するために検出領域を設定し、検出領域の設定値の情報を検出部105の検出領域限定部110に送る。読み出し領域設定部115は、画像読み出し部103に対して、メモリ101から読み出す画像データの領域を限定するために読み出し領域を設定し、読み出し領域の設定値の情報を画像読み出し部103に送る。設定計算部116は、検出領域設定部114、及び読み出し領域設定部115が設定する設定値を計算する。
【0047】
図2は、本実施形態における画像読み出し部103の詳細な内部構成例を示すブロック図である。
図2においては、まず、アドレス生成部206は、読み出し領域設定部115から送られた読み出し領域の設定値を参照し、入力画像の中の読み出し領域に限定した読み出しアドレスを生成する。この際、アドレスのアラインメントや画像のデータ形式を考慮して、受け取った読み出し領域の設定値に対応するアドレス範囲を拡張してアドレスを生成してもよい。アドレス生成部206は生成した読み出しアドレスを、インターコネクトインタフェース207を介して入力データバッファ205に格納する。
【0048】
インターコネクトインタフェース207は、インターコネクト102を経由して指定されたアドレスに基づいてメモリ101から画像データの読み出し領域に該当する部分を読み出し、読み出された画像データを入力データバッファ205に送る。入力データバッファ205は、インターコネクト102を介して入力された画像データを一時的に保持しておくバッファである。
【0049】
フォーマット変換部204は、入力データバッファ205に保持された画像データを読み出し、メモリ101上のデータ形式を、検出部105や画像縮小部104での処理に適した形式に変換する。変換の内容としては、例えば、バイト単位やビット単位の分割、パディング、データ並びの並べ替え、色空間の変換などの処理がある。
【0050】
画像データバッファ203は、フォーマット変換部204により内部処理に適した形に変換された画像データを一時的に保持するバッファである。また、画像データバッファ203は、検出部出力インタフェース201、及び画像縮小部出力インタフェース202の双方を介して読み出され、両方に対して同じ画像データを送出する。
【0051】
検出部出力インタフェース201は、画像データバッファ203から画像データを読み出し、検出部105に送出する。その際、検出部105に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。画像縮小部出力インタフェース202は、画像データバッファ203から画像データを読み出し、画像縮小部104に送出する。その際、画像縮小部104に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。
【0052】
図3は、本実施形態における画像書き込み部111の詳細な内部構成例を示すブロック図である。
画像書き込み部111においては、まず、画像縮小部104から出力される縮小画像データが、画像縮小部入力インタフェース301に入力される。画像縮小部入力インタフェース301は、入力された縮小画像データをフォーマット変換部302に送るためのインタフェースである。
【0053】
フォーマット変換部302は、画像縮小部104から入力されてきた縮小画像データを、メモリ101に書き込むのに適した形式に変換して、出力データバッファ303に格納する。変換の内容としては、例えば、ワード単位やバイト単位の分割、パディング、データの並び替えなどの処理がある。出力データバッファ303に格納された変換後の縮小画像データは、インターコネクトインタフェース305に送られ、インターコネクトインタフェース305は、アドレス生成部304で生成されたメモリ101の書き込みアドレスに縮小画像データを書き込む。
【0054】
次に、本実施形態における検出領域設定部114及び読み出し領域設定部115が設定する設定値について、図4及び図5を参照しながら説明する。
【0055】
図4は、検出領域設定部114により設定される検出領域の設定値を画像の座標として説明する図である。
図4において、入力画像411、縮小画像A412、縮小画像B413、縮小画像C414、及び縮小画像D415は、元々の入力画像をピラミッド画像として縮小して得られる画像の系列である。なお、縮小画像A412〜縮小画像D415は、後述する画像読み出し領域に基づいて生成される。図4に示す例では、縮小画像が4枚使用される例を示しているが、縮小画像の枚数は4枚に限定されるものではなく、これより少なくても多くてもよい。本実施形態では、ピラミッド画像系列の各画像に対して、それぞれ矩形の検出領域401〜405をそれぞれ設定することができる。
【0056】
各矩形の検出領域401〜405の位置及び大きさは、左上の頂点座標(xi0,yi0)(i=0〜4)と右下の頂点座標(xi1,yi1)(i=0〜4)とを用いて表すことができる。なお、図4に示す例では、入力画像411に対してi=0とし、縮小画像A412〜縮小画像D415に対して、それぞれi=1〜4としている。これらの座標値xi0、yi0、xi1、yi1(i=0〜4)は、図9(a)に示すように、設定値として検出領域設定部114に格納されている。
【0057】
なお、座標値xi0、yi0、xi1、yi1といった座標系は、ピラミッド画像の系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能であり、元々の入力画像411上の画素位置の座標系を用いて表してもよい。また、右下の頂点座標を用いず、左上の頂点座標と矩形の幅・高さとを指定するなど、等価な設定値を用いて表してもよい。また、図4においては、ピラミッド画像系列の全ての画像に対して検出領域が設定されているが、特定の画像に対して検出領域がない、あるいは、検出領域の大きさが0という設定を行ってもよい。この場合、座標値xi0、yi0、xi1、yi1に加えて、検出領域がないことを示すための設定値を加えてもよいし、座標値xi0、yi0、xi1、yi1の設定値がある条件を満たした時に検出領域がないことを示すようにしてもよい。
【0058】
図5は、読み出し領域設定部115により設定される読み出し領域の設定値を画像の座標として説明する図である。
図5において、本実施形態では、ピラミッド画像系列の各画像に対して、矩形の読み出し領域501〜505をそれぞれ設定することができる。
【0059】
各矩形の読み出し領域501〜505の位置及び大きさは、左上の頂点座標(Xi0,Yi0)(i=0〜4)と右下の頂点座標(Xi1,Yi1)(i=0〜4)とを用いて表すことができる。なお、図5に示す例では、入力画像411に対してi=0とし、縮小画像A412〜縮小画像D415に対して、それぞれi=1〜4としている。これらの座標値Xi0、Yi0、Xi1、Yi1(i=0〜4)は、図9(b)に示すように、設定値として読み出し領域設定部115に格納されている。
【0060】
なお、座標値Xi0、Yi0、Xi1、Yi1といった座標系は、ピラミッド画像系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能であり、元々の入力画像411上の画素位置の座標系を用いて表してもよい。
【0061】
次に、本実施形態の動作について、図4及び図5を参照しながら説明する。設定計算部116は、図4に示す検出領域401〜405に対応する情報を、ユーザに指定されることにより取得するか、もしくは過去の検出結果から検出領域を推定することによって取得する。また、例えば、不図示の動体検出部や他の物体認識部などのその他の処理部の出力結果から検出領域を推定することにより取得してもよい。そして、設定計算部116は、図4に示す検出領域401〜405に対応する情報を検出領域設定部114に送る。
【0062】
次に、設定計算部116は、図4に示す検出領域401〜405に対応する情報を参照して図5に示す読み出し領域501〜505を計算する。まず、図5に示す読み出し領域501を計算する際には、元々の入力画像411を処理する時点でまだ検出処理が完了していない全ての検出領域401〜405を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域501とする。
【0063】
具体的には、例えば、各検出領域401〜405の座標系を、元々の入力画像411の座標系に揃え、頂点座標のx成分及びy成分のそれぞれについて最小値を求め、その最小値を読み出し領域501の左上頂点座標とする。さらに、頂点座標のx成分及びy成分のそれぞれについて最大値を求め、その最大値を読み出し領域501の右下頂点座標とする。このとき、頂点座標のx成分及びy成分のそれぞれの最小値、最大値をそのまま読み出し領域501の頂点座標とするのではなく、処理に必要な分の画素を加え、処理の都合上余裕を持たせて、領域がより大きくなるように設定してもよい。
【0064】
次に、図5に示す読み出し領域502を計算する際には、縮小画像A412を処理する時点でまだ検出処理が完了していない全ての検出領域402〜405を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域502とする。具体的な計算方法は、前述した読み出し領域501の計算方法と同様であるが、座標系を縮小画像A412の座標系に揃えて計算する。以下、同様の手順により、縮小画像B413〜縮小画像D415に対して、それぞれ図5に示す読み出し領域503〜505を計算する。そして、設定計算部116は、図5に示す読み出し領域501〜505に対応する情報を読み出し領域設定部115に送る。
【0065】
以上のように、検出領域設定部114は、入力された検出領域の情報に従って検出部105が検出処理を行う領域を設定する。一方、読み出し領域設定部115は、入力された読み出し領域の情報に従って、画像読み出し部103が読み出す領域を設定する。そして、この設定に従って、ピラミッド画像系列の各画像に対して画像データの読み出し、縮小処理、及び検出処理を順次実行する。
【0066】
本実施形態によれば、読み出し領域設定部115の設定において、まだ検出処理を行っていない検出領域を含むような最小の読み出し領域を画像領域に設定するようにしている。このため、検出処理が終了し、検出処理に必要のない領域の読み出しを回避するとともに、縮小画像を生成する時に生じる無駄な画像メモリへのアクセスを減らすことができる。
【0067】
なお、本実施形態では、検出部105において積分画像データを生成して積分画像メモリ108に蓄積し、照合処理部109により照合処理を行ったが、積分画像データを生成しないようにしてもよい。例えば、特徴抽出部106の出力結果を不図示のメモリにそのまま蓄積して検出対象物を検出する場合であっても、本発明を適用できる。
【0068】
また、本実施形態では、検出領域限定部110は照合処理部109を制御して検出領域を限定したが、検出領域限定部110は、検出部105内の他の処理部を制御して、検出領域を限定してもよい。ここで検出部105内の他の処理部とは、積分画像メモリ108、積分画像生成部107、及び特徴抽出部106のすべて、あるいは一部である。
【0069】
また、図4の説明においては、ピラミッド画像系列上の各画像について、検出領域を一つの矩形としたが、各画像に、複数の矩形を検出領域として指定してもよい。この場合、設定計算部116は、ピラミッド画像系列上の各画像を処理する時点でまだ検出処理の完了していない全ての矩形の検出領域を包含する面積が最小の矩形領域を求め、読み出し領域設定部115は、その矩形領域を対応する読み出し領域と設定する。
【0070】
また、本実施形態では、検出領域設定部114及び読み出し領域設定部115において、ピラミッド画像系列上の全ての画像に対応する設定値を予め保持しておくものとした。一方、ピラミッド画像系列上の全ての画像ではなく、一部の画像の設定値だけを保持するようにしておき、処理が進むにつれて、設定値を入れ替えながら使用してもよい。
【0071】
また、本実施形態では、高い解像度から低い解像度に向けて順に処理を行ったため、画像縮小部104では、縮小処理のみを行った。一方、低い解像度から高い解像度に向けてなど、異なる順序で処理を行う場合、画像縮小部104を、拡大を含む解像度の変換処理が可能な解像度変換部に置き換えてもよい。
【0072】
また、本実施形態では、メモリ101が一つの場合を示しているが、メモリは一つでも複数でもよく、また、入力画像データを記憶するメモリと、縮小画像データを記憶するメモリとが同一でも異なっていてもよい。
【0073】
また、本実施形態に係る検出部105において実行される検出処理は、顔や人体など、ある不特定の対象物を検出する場合に限定されるものではなく、あるカテゴリに属する対象物の検出や、特定の対象物の検出など、いわゆる識別と呼ばれる処理であってもよい。
【0074】
(第2の実施形態)
以下、本発明の第2の実施形態について説明する。本実施形態では、第1の実施形態と異なり、検出領域を矩形により限定するのではなく、任意の形状により限定する。以下、本実施形態における構成に関して、図6を参照しながら説明する。
【0075】
図6は、本実施形態に係る画像処理装置600の構成例を示すブロック図である。なお、図1と同じ構成に関しては、図1と同じ符号で示している。第1の実施形態と異なる構成は、検出領域限定部601、検出領域設定部602、及び設定計算部603であり、その他の構成については、図1と同様であるため、説明は省略する。
【0076】
本実施形態においては、検出領域を任意の形状により限定するため、検出領域設定部602は、任意の形状の検出領域を表すビットマップデータを保持している。検出領域限定部601は、検出領域設定部602から検出領域を表すビットマップデータを受け取り、検出処理を行う座標に対応するビットマップデータの値に従って、その座標で検出処理を行うか行わないかを制御する。
【0077】
設定計算部603は、取得した任意の形状の検出領域を表すビットマップデータを検出領域設定部602に送る。ここで、設定計算部603は、ユーザに指定されることによりビットマップデータを取得してもよく、過去の検出結果から検出領域を推定することによって取得してもよい。また、例えば、不図示の動体検出部や他の物体認識部などのその他の処理部の出力結果から検出領域を推定することによりビットマップデータを取得してもよい。また、設定計算部603は、任意の形状の検出領域の情報を参照し、読み出し領域設定部115が設定する設定値を計算する。
【0078】
次に、本実施形態における検出領域設定部602及び読み出し領域設定部115が設定する設定値について、図7及び図8を参照しながら説明する。
【0079】
図7は、検出領域設定部602により設定される任意の形状の検出領域を説明する図である。
図7において、入力画像711、縮小画像A712、縮小画像B713、縮小画像C714、及び縮小画像D715は、元々の入力画像711をピラミッド画像として縮小して得られる画像の系列である。なお、縮小画像A712〜縮小画像D715は、後述する画像読み出し領域に基づいて生成される。図7に示す例では、縮小画像が4枚使用される例を示しているが、縮小画像の枚数は4枚に限定されるものではなく、これより少なくても多くてもよい。本実施形態では、ピラミッド画像系列の各画像に対して、任意の形状の検出領域701〜705をそれぞれ設定することができる。
【0080】
本実施形態においては、検出領域設定部602は、任意の形状を表すために画素単位のビットマップデータを用い、各画素の位置において、その位置に対して検出処理を実行するか否かの情報をビットマップデータとして保持する。なお、ビットマップデータの座標系は、ピラミッド画像の系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能な、元々の入力画像711上の画素位置の座標系を用いて表してもよい。
【0081】
また、図7においては、ピラミッド画像系列の全ての画像に対して検出領域が設定されているが、特定の画像に対して検出領域がないような設定を行ってもよい。この場合、ビットマップデータとともに、検出領域がないことを示すための設定値を保持するようにしてもよい。また、ビットマップデータを保持する単位については、画素単位に限らず、2画素×2画素など複数画素を組にした領域に対してビットマップデータを保持してもよい。
【0082】
図8は、読み出し領域設定部115により設定される読み出し領域の設定値を説明する図である。
図8において、本実施形態では、ピラミッド画像系列の各画像に対して、矩形の読み出し領域801〜805をそれぞれ設定することができる。
【0083】
各矩形の読み出し領域の位置及び大きさは、第1の実施形態と同様に、左上の頂点座標(Xi0,Yi0)(i=0〜4)と右下の頂点座標(Xi1,Yi1)(i=0〜4)とを用いて表すことができる。これらの座標値Xi0、Yi0、Xi1、Yi1(i=0〜4)は、図9(c)に示すように設定値として読み出し領域設定部115に格納されている。
【0084】
なお、Xi0、Yi0、Xi1、Yi1といった座標系は、ピラミッド画像系列の各画像における画素位置の座標系を用いて表すことができるが、等価に変換可能な、元々の入力画像711上の画素位置の座標系を用いて表してもよい。
【0085】
次に、本実施形態の動作について、図7及び図8を参照しながら説明する。設定計算部603は、図7に示す検出領域701〜705に対応する情報をビットマップデータとして取得する。そして、取得したビットマップデータを検出領域設定部602に送る。
【0086】
次に、設定計算部603は、図7に示す検出領域701〜705に対応する情報を参照して、図8に示す読み出し領域801〜805を計算する。まず、図8に示す読み出し領域801を計算する際には、まず、元々の入力画像711を処理する時点でまだ検出処理の完了していない全ての検出領域701〜705を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域801とする。
【0087】
具体的には、例えば、検出領域701〜705の情報を格納したそれぞれのビットマップデータについて、検出処理を行うことが指定された位置のx成分、y成分の最小値及び最大値を計算する。さらに、各ビットマップデータで計算したx成分、y成分の最小値及び最大値の座標系を元々の入力画像711の座標系に揃え、まだ検出処理を行っていない入力画像711、縮小画像A712〜縮小画像D715全体での最小値及び最大値を計算する。
【0088】
そして、検出処理を行うことが指定された位置のx成分、y成分の最小値を読み出し領域801の左上頂点座標とする。さらに、検出処理を行うことが指定された位置のx成分、y成分の最大値を読み出し領域801の右下頂点座標とする。このとき、頂点座標のx成分、y成分の最小値及び最大値をそのまま読み出し領域801の頂点座標とするのではなく、処理に必要な分の画素を加え、処理の都合上余裕を持たせて、領域がより大きくなるように設定してもよい。
【0089】
また、各ビットマップデータに関して、検出処理を行うことが指定された位置のx成分、y成分のそれぞれの最小値及び最大値を予め求めておいてもよい。この場合、各画像に対して予め求めておいた最小値及び最大値を用いて、前述した計算を行う。
【0090】
次に、図8に示す読み出し領域802の計算においては、縮小画像A712を処理する時点でまだ検出処理の完了していない全ての検出領域702〜705を包含する面積が最小の矩形領域を求める。そして、その矩形領域を読み出し領域802とする。具体的な計算方法は、前述した読み出し領域801の計算方法と同様であるが、座標系を縮小画像A712の座標系に揃えた上で計算する。以下、同様の手順により、縮小画像B713〜縮小画像D715に対して、それぞれ図8に示す読み出し領域803〜805を計算する。そして、設定計算部603は、図8に示す読み出し領域801〜805に対応する情報を読み出し領域設定部115に送る。
【0091】
以上のように、検出領域設定部602は、入力されたビットマップデータに従って各画素の位置において、その位置に対して検出処理を実行するか否かの情報をビットマップデータとして保持する。一方、読み出し領域設定部115は、入力された読み出し領域の情報に従って、画像読み出し部103が読み出す領域を設定する。この設定に従って、ピラミッド画像系列の各画像に対して画像のデータ読み出し、縮小処理、及び検出処理を順次実行する。
【0092】
以上のように本実施形態によれば、任意の形状により検出領域を設定した場合にも、検出処理が終了し、検出処理に必要のない領域の読み出しを回避し、無駄な画像メモリへのアクセスを減らすことができる。
【0093】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0094】
101 メモリ
103 画像読み出し部
104 画像縮小部
105 検出部
114 検出領域設定部
115 読み出し領域設定部

【特許請求の範囲】
【請求項1】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換手段と、
前記入力画像データ及び前記変換手段によって生成された変換後画像データを記憶する記憶手段と、
前記入力画像データ及び前記変換後画像データに対して、それぞれ異なる検出対象物の検出を行う検出領域を設定する検出領域設定手段と、
前記検出領域設定手段により設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ前記入力画像データ及び前記変換後画像データのそれぞれの画像領域よりも小さい領域を画像読み出し領域として前記入力画像データ及び前記変換後画像データのそれぞれに対して設定する読み出し領域設定手段と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定手段により設定された画像読み出し領域に該当する部分を前記記憶手段から読み出す画像読み出し手段と、
前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定手段により設定された検出領域において検出対象物の検出を行う検出手段とを有し、
前記変換手段は、前記画像読み出し手段により読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする画像処理装置。
【請求項2】
前記画像読み出し手段は、前記画像読み出し領域に該当する部分を、前記検出手段による検出処理に用いるデータ、及び前記変換手段による前記変換後画像データの生成に用いるデータとして読み出すことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記読み出し領域設定手段は、前記検出手段により検出処理が行われていない検出領域をすべて含み、かつ面積が最小となる矩形領域を画像読み出し領域として設定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記検出領域設定手段により設定される検出領域は、1つまたは複数の矩形領域であることを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項5】
前記検出領域設定手段により設定される検出領域は、任意の形状であることを特徴とする請求項1〜3の何れか1項に記載の画像処理装置。
【請求項6】
前記変換後画像データは、前記入力画像データを縮小することによって生成される画像データであることを特徴とする請求項1〜5の何れか1項に記載の画像処理装置。
【請求項7】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換工程と、
前記入力画像データ及び前記変換後画像データに対して、それぞれ異なる検出対象物の検出を行う検出領域を設定する検出領域設定工程と、
前記検出領域設定工程において設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ前記入力画像データ及び前記変換後画像データのそれぞれの画像領域よりも小さい領域を画像読み出し領域として前記入力画像データ及び前記変換後画像データのそれぞれに対して設定する読み出し領域設定工程と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定工程において設定された画像読み出し領域に該当する部分を、前記入力画像データ及び前記変換後画像データを記憶する記憶手段から読み出す画像読み出し工程と、
前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定工程において設定された検出領域において検出対象物の検出を行う検出工程とを有し、
前記変換工程においては、前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とする画像処理方法。
【請求項8】
入力された入力画像データの解像度を変換した変換後画像データを生成する変換工程と、
前記入力画像データ及び前記変換後画像データに対して、それぞれ異なる検出対象物の検出を行う検出領域を設定する検出領域設定工程と、
前記検出領域設定工程において設定された検出領域のうち、検出処理が行われていない検出領域をすべて含み、かつ前記入力画像データ及び前記変換後画像データのそれぞれの画像領域よりも小さい領域を画像読み出し領域として前記入力画像データ及び前記変換後画像データのそれぞれに対して設定する読み出し領域設定工程と、
前記入力画像データ及び前記変換後画像データの画像領域のうち、前記読み出し領域設定工程において設定された画像読み出し領域に該当する部分を、前記入力画像データ及び前記変換後画像データを記憶する記憶手段から読み出す画像読み出し工程と、
前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に対して、前記検出領域設定工程において設定された検出領域において検出対象物の検出を行う検出工程とをコンピュータに実行させ、
前記変換工程においては、前記画像読み出し工程において読み出された画像読み出し領域に該当する部分に基づいて前記変換後画像データを生成することを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate