画像処理装置、画像処理装置の制御方法、およびプログラム
【課題】ピラミッド画像の生成及び検出処理のための画像メモリアクセスを低減する。
【解決手段】 画像データを格納する格納部と、格納部に格納された画像データを読み出す読み出し部と、読み出し部により読み出された前記画像データから前記対象物を検出する検出部と、読み出し部により読み出された画像データの解像度を変換する変換部と、変換部により解像度が変換された変換データを格納部に書き込む書き込み部と、を備え、読み出し部が、読み出した画像データを、検出部と変換部とに並行して出力する。
【解決手段】 画像データを格納する格納部と、格納部に格納された画像データを読み出す読み出し部と、読み出し部により読み出された前記画像データから前記対象物を検出する検出部と、読み出し部により読み出された画像データの解像度を変換する変換部と、変換部により解像度が変換された変換データを格納部に書き込む書き込み部と、を備え、読み出し部が、読み出した画像データを、検出部と変換部とに並行して出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、縮小画像を生成して、画像認識などの処理を行う画像処理装置、画像処理装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
顔検出などの画像認識処理を行うにあたり、様々なサイズの検出対象物を検出するために、元画像を縮小して、ピラミッド画像を生成し、各ピラミッド画像に対して検出処理を行うことが一般的に行われている。
【0003】
特許文献1では、複数の大きさの顔を検出するために、読み込んだ画像を所定の割合で順次縮小してピラミッド画像を生成し、その後に顔判別処理を行う方法が説明されている。図1は、様々なサイズの検出対象物を検出するためのピラミッド画像の一例であり、横320画素・縦240画素の入力画像101に対して、横・縦それぞれ1/1.2倍ずつ縮小している。そして、同様に8レベルの縮小画像102乃至縮小画像109(縮小画像A乃至縮小画像H)を生成する例を示している。入力画像と縮小画像とを合わせて、9種類の解像度の画像に対して、検出対象物の検出処理を行うことにより、サイズの異なる検出対象物の検出を行うことができる。
【0004】
また、特許文献2では、多重解像度処理部により生成された縮小画像データを、バスを介さずにパイプライン接続で、正規化処理部、特徴量導出部、および識別器に、順次与える構成により識別処理を行う画像識別装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−102611号公報
【特許文献2】特開2008−210009号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図2を参照して、読み込んだ画像を順次縮小してピラミッド画像を生成し、ピラミッド画像の生成後に検出処理を行う場合の特許文献1に記載の画像メモリへのアクセス処理について説明する。図2(a)は、ピラミッド画像を生成する縮小処理時の画像アクセスを説明する図である。図1に示されるように9種類の解像度のピラミッド画像を生成する場合、まず、入力画像101を画像メモリから読み出し、縮小処理を行った後、縮小画像102を画像メモリに書き込む。次に、縮小画像102を画像メモリから読み出し、縮小処理を行った後、縮小画像103を画像メモリに書き込む。以下、縮小画像103乃至縮小画像109についても同様に、最小の縮小画像109を画像メモリに書き込むまで、画像メモリからの読み出し処理、縮小処理、および画像メモリへの書き込み処理を繰り返す。
【0007】
図2(b)は、ピラミッド画像生成後に検出処理を行う場合の画像アクセスを説明する図である。まず、入力画像101を画像メモリから読み出し、最も高い解像度での検出処理を行う。検出処理の出力は、検出された検出対象物の情報であり、図2(a)で説明したように画像メモリへの画像の書き込み処理は行わない。以下、縮小画像102乃至縮小画像109についても、画像を画像メモリから読み出し、それぞれに対して検出処理を行うが、画像メモリへの画像の書き込み処理は行われない。
【0008】
図1を参照して説明したピラミッド画像を図2で説明したように処理した場合のメモリアクセス数を画素数で表す。図2(a)の画像メモリからの読み出し数Ra、画像メモリへの書き込み数Wa、図2(b)の画像メモリからの読み出し数Rbは、それぞれ式(1)により計算される。ここで、図1に示されるように、入力画像101の画素数は76800、縮小画像102の画素数は53200、縮小画像103の画素数は36686、…、縮小画像108の画素数は5655、縮小画像109の画素数は3888である。読み出し数Raは、入力画像101、縮小画像102乃至縮小画像108の画素数を合計したものである。書き込み数Waは、縮小画像102乃至縮小画像109の画素数を合計したものである。読み出し数Rbは、入力画像101、縮小画像102乃至縮小画像109の画素数を合計したものである。
【0009】
【数1】
【0010】
読み出し数Ra、書き込み数Wa、および読み出し数Rbを全て合計すると、図2における処理での画像メモリへのアクセス数N(画素数)は、式(2)により計算される。
【0011】
【数2】
【0012】
式(1)から分かるように、入力画像101、および縮小画像102乃至縮小画像108は、画像メモリから2回読み出されている。そのため、特許文献1に記載のこのような方法では、画像メモリへのアクセス数が多くなり処理に時間を要するという課題がある。
【0013】
さらに、図3を参照して、読み込んだ画像を縮小処理し、それをパイプライン構成により検出する場合の特許文献2に記載の画像メモリへのアクセス処理について説明する。
【0014】
図3は、入力画像101に対応する解像度から縮小画像109に対応する解像度までの縮小処理および検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセス処理を示している。全ての検出解像度において、画像メモリから読み出されるのは入力画像101であり、入力画像101が必要に応じて縮小されて、そのまま検出処理部へ渡される。検出処理部の出力は、検出された検出対象物の情報であり、画像メモリへの画像の書き込み処理は行わない。
【0015】
図1を参照して説明したピラミッド画像を図3で説明したように処理した場合のメモリアクセス数を画素数で表すと、画像メモリからの読み出し数Rは、式(3)により計算される。
【0016】
【数3】
【0017】
図3で説明したように処理した場合、画像メモリの読み出しのみが行われるため、画像メモリへのアクセス数N(画素数)は、N= R=691200画素となる。
【0018】
しかしながら、特許文献2に記載のこのような方法では、画像メモリへの書き込み処理はないものの、画像メモリから読み出す画像の解像度が高いため、画像メモリへのアクセス数が多くなってしまうという課題がある。
【0019】
上記の課題に鑑み、本発明は、画像メモリへのアクセス数を低減することを目的とする。
【課題を解決するための手段】
【0020】
上記の目的を達成する本発明に係る画像処理装置は、
画像データを格納する格納手段と、
前記格納手段に格納された前記画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された前記画像データから前記対象物を検出する検出手段と、
前記読み出し手段により読み出された前記画像データの解像度を変換する変換手段と、
前記変換手段により解像度が変換された変換データを前記格納手段に書き込む書き込み手段と、を備え、
前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする。
【発明の効果】
【0021】
本発明によれば、画像メモリへのアクセス数を低減することができる。
【図面の簡単な説明】
【0022】
【図1】ピラミッド画像の一例を示す図。
【図2】ピラミッド画像の生成後に検出処理を行う場合の画像メモリアクセスの説明図。
【図3】縮小処理および検出処理をパイプラインで実行する場合の画像メモリアクセスの説明図。
【図4】第1実施形態に係る画像処理装置の機能の構成を示す図。
【図5】画像読み出し部の構成を示す図。
【図6】画像書き込み部の構成を示す図。
【図7】第1実施形態に係る画像スキャン方法の説明図。
【図8】画像メモリアクセスの説明図。
【図9】バンド分割の説明図。
【図10】第1実施形態に係る画像処理装置の機能の構成を示す図。
【図11】画像切り出し部の構成を示す図。
【図12】画像切り出し部がない場合におけるバンド分割処理時の画像メモリアクセスの説明図。
【図13】画像切り出し部がある場合におけるバンド分割処理時の画像メモリアクセスの説明図。
【発明を実施するための形態】
【0023】
(第1実施形態)
以下、図面を参照して本発明の第1実施形態について説明する。図4は、第1実施形態に係る画像処理装置40の機能構成例を示す。画像処理装置40は、メモリ401と、インターコネクト部402と、画像読み出し部403と、画像縮小部404と、検出部405と、画像書き込み部410とを備える。メモリ401は、入力画像保持部411と、縮小出力画像保持部412とを備える。検出部405は、特徴抽出部406と、積分画像生成部407と、積分画像メモリ408と、照合処理部409とを備える。
【0024】
インターコネクト部402は、例えば、バスやクロスバースイッチなどの接続部でありメモリ401と、画像読み出し部403と、画像書き込み部410とを接続制御する。
【0025】
画像読み出し部403は、メモリ401が備える入力画像保持部411または縮小出力画像保持部412から入力画像または縮小画像(解像度が変換された変換データ)を読み出す。画像読み出し部403は、入力画像保持部411から読み出された入力画像または縮小出力画像保持部412から読み出された縮小画像を、画像縮小部404と検出部405とに出力する2系統の出力ポートを有する。画像読み出し部403および画像書き込み部410は、インターコネクト部402を介してメモリ401と接続されている。
【0026】
画像縮小部404は、画像読み出し部403から入力画像または縮小画像を受信し、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて入力画像または縮小画像を縮小する縮小処理を行う。画像縮小部404から出力される縮小画像は、画像書き込み部410へ送信され、画像書き込み部410により縮小出力画像保持部412に書き込まれる。
【0027】
検出部405は、画像読み出し部403から受信した画像について、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これらに限定されるものではない。
【0028】
特徴抽出部406は、画像読み出し部により読み出された入力画像または縮小画像から特徴量の抽出処理を行い、抽出された特徴量を積分画像生成部407へ送信する。
【0029】
積分画像生成部407は、特徴抽出部406により抽出された特徴量を2次元的に累積していき、特徴量の積分画像を生成して積分画像メモリ408に格納する。
【0030】
積分画像メモリ408は、照合処理部409により検出対象物の照合処理を行うために必要なだけの積分画像を保持する。照合処理部409は、積分画像メモリ408から積分された特徴量を必要なだけ読み出し、検出対象物との照合を行うことにより検出対象物の有無を検出する。
【0031】
画像書き込み部410は、メモリ401が備える縮小出力画像保持部412へ縮小出力画像を書き込む。入力画像保持部411は、入力画像を格納する。縮小出力画像保持部412は、ピラミッド画像生成のために縮小された画像を格納する。
【0032】
図5は、画像読み出し部403の機能構成例を示す。画像読み出し部403は、検出部出力インタフェース501と、画像縮小部出力インタフェース502と、画像データバッファ503と、フォーマット変換部504と、入力データバッファ505と、アドレス生成部506と、インターコネクトインタフェース507とを備える。
【0033】
画像読み出し部403においては、まず、アドレス生成部506が入力画像(画像データ)の読み出しアドレスを生成し、インターコネクトインタフェース507へ送信する。インターコネクトインタフェース507は、アドレス生成部506により生成されたアドレスに基づいて、インターコネクト部402を経由してメモリ401から画像データを読み出す。そして、インターコネクトインタフェース507は、読み出された画像データを入力データバッファ505へ送信する。入力データバッファ505は、インターコネクトから入力された画像データを、フォーマット変換部504による変換処理のために一時的に保持しておくバッファである。フォーマット変換部504は、入力データバッファ505に保持された画像データを読み出し、データ形式を、検出部405や画像縮小部404による処理に適した形式に変換する。変換の内容としては、例えば、バイト単位やビット単位の分割、パディング、データ並びの並べ替え、色空間の変換などの処理がある。画像データバッファ503は、フォーマット変換部504により内部処理に適した形に変換された画像データを一時的に保持するバッファである。画像データバッファ503に保持された画像データは、検出部出力インタフェース501と、画像縮小部出力インタフェース502との双方により読み出され、両方に対して同じ画像データが送出される。検出部出力インタフェース501は、画像データバッファ503から画像データを読み出し、当該画像データを検出部405に送出する。その際、検出部405に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。同様に、画像縮小部出力インタフェース502は、画像データバッファ503から画像データを読み出し、当該画像データを画像縮小部404に送出する。その際、画像縮小部404に適したデータ形式への変換が必要な場合には、同様に変換処理を行う。
【0034】
図6は、画像書き込み部410の機能構成例を示す。画像書き込み部410は、画像縮小部入力インタフェース601と、フォーマット変換部602と、出力データバッファ603と、アドレス生成部604と、インターコネクトインタフェース605とを備える。
【0035】
画像書き込み部410においては、まず、画像縮小部404から出力される縮小画像データが、画像縮小部入力インタフェース601に入力される。画像縮小部入力インタフェース601は、入力された画像データをフォーマット変換部602へ送信する。フォーマット変換部602は、画像縮小部404から出力されてきた画像データを、メモリに書き込むのに適した形式に変換して出力データバッファ603に格納する。変換の内容としては、例えば、ワード単位やバイト単位の分割、パディング、データの並び替えなどの処理がある。出力データバッファ603に格納された変換後の画像データは、インターコネクトインタフェース605に送信される。インターコネクトインタフェース605は、アドレス生成部604により生成された書き込みアドレスで指定された縮小出力画像保持部412の格納場所へ画像データを書き込む。
【0036】
次に、図7(a)を参照して、本実施形態に係る画像処理装置の処理動作について説明する。図7(a)は、入力画像をラスタスキャン(横スキャン)で走査しながら処理する場合の説明図である。一方、図7(b)は、入力画像をカラムスキャン(縦スキャン)で走査しながら処理する場合の説明図である。なお、まず図7(a)のラスタスキャンを例にして説明を行う。
【0037】
図7(a)において、読み込み画像701は、入力画像保持部411に保持された入力画像に相当する。画像読み出し部403は、読み込み画像701に対して、図に示すように左から右、上から下へのラスタスキャンを行って画像データを読み出す。読み出された画像データは、検出部405と画像縮小部404との2系統に同時に送信され、検出部405側では、特徴抽出処理と、積分画像生成処理とが実行され、実行結果が積分画像メモリ408に書き込まれる。照合処理部409は、積分画像メモリ408内において、検出対象物の照合を行うために必要な領域である検出ウィンドウ702を移動させながら、各検出ウィンドウ702位置で照合処理を行い、検出対象物を検出する。一方、画像読み出し部403から画像縮小部404へ送信された画像データに関しては、縮小アルゴリズムの種別に応じた分量だけ、画像縮小部404内の縮小用ラインメモリ703に蓄積される。例えば、縮小アルゴリズムが、バイリニア補間の場合には、1ライン分のメモリが必要であり、単純間引きの場合には、縮小用ラインメモリ703は不要となる。画像縮小部404は、必要に応じて縮小用ラインメモリ703に蓄積された画像データ値を参照しながら縮小処理を行い、縮小画像データを画像書き込み部410へ送信する。画像書き込み部410は、縮小画像データを縮小出力画像保持部412に対して、矢印704により示されるようにラスタスキャン順で書き込む。なお、縮小画像を生成する必要がない場合については、画像読み出し部403は、検出部405だけに画像データを送出し、画像縮小部404および画像書き込み部410は動作しないようにしてもよい。
【0038】
図8を参照して、本実施形態に係る画像メモリへのアクセス数について説明する。本実施形態では、画像読み出し部403により読みだされた画像データを、画像縮小部404と検出部405とに同時に送出するため、縮小処理と検出処理とを並行して実行できる。従って、図8に示されるように、入力画像101から縮小画像102を生成する過程で入力画像101に対する検出処理が実行できる。次に、縮小画像102を新たな入力として縮小画像103を生成する過程で、縮小画像102に対する検出処理を実行できる。以下、同様に低い解像度の画像に対して処理を行っていき、最後は、縮小画像109に対して検出処理を行うことにより、全ピラミッド画像に対する検出処理が完了する。図1で説明したピラミッド画像を、図8に示されるように処理した場合の、画像メモリへのアクセス数を画素数で表すと、画像メモリ読み出し数R、画像メモリ書き込み数W、画像メモリへのアクセス数Nは、式(4)により計算される。ここで、入力画像101の画素数は76800、縮小画像102の画素数は53200、縮小画像103の画素数は36686、…、縮小画像108の画素数は5655、縮小画像109の画素数は3888である。読み出し数Rは、入力画像101、縮小画像102乃至縮小画像109の画素数を合計したものである。書き込み数Wは、縮小画像102乃至縮小画像109の画素数を合計したものである。画像メモリへのアクセス数Nは、読み出し数Rと書き込み数Wとの合計である。
【0039】
【数4】
【0040】
本実施形態における画像メモリへのアクセス数(402352画素)と、図2で説明した処理での画像メモリへのアクセス数(638040画素)とを比較する。すると、縮小処理の入力画像データと検出処理の入力画像データとを同時に読み出している分、画像メモリへのアクセス数を低減できていることが分かる。また、本実施形態における画像メモリへのアクセス数と、図で説明した処理での画像メモリへのアクセス数(691200画素)と比較する。すると、読み出す画像のサイズが解像度が低くなるのに応じて小さくなっている分、画像メモリへのアクセス数を低減できていることが分かる。
【0041】
以上、画像をラスタスキャンする例で説明を行ったが、図7(b)に示されるように、画像データをカラムスキャン(縦スキャン)する場合であっても、同様の処理を実現することが可能である。図7(b)において、読み込み画像705は、入力画像保持部411に保持された入力画像に相当する。画像読み出し部403は、読み込み画像705に対して、図に示すように上から下、左から右へのカラムスキャンを行って画像データを読み出す。読み出された画像データは、検出部405と画像縮小部404との2系統に同時に送信され、検出部405側では、特徴抽出処理と、積分画像生成処理とが実行され、実行結果が積分画像メモリ408にカラムスキャン順に書き込まれる。照合処理部409は、積分画像メモリ408内で、検出対象物の照合を行うために必要な領域である検出ウィンドウ706を移動させながら、各検出ウィンドウ706位置で照合処理を行うことにより、検出対象物を検出する。一方、画像読み出し部403から画像縮小部404へ送信された画像データに関しては、縮小アルゴリズムの種別に応じた分量だけ、画像縮小部404内の縮小用カラムメモリ707に蓄積される。画像縮小部404は、必要に応じて縮小用カラムメモリ707に蓄積された画像データ値を参照しながら縮小処理を行い、縮小画像データを画像書き込み部410へ送信する。画像書き込み部410は、縮小画像データを、縮小出力画像保持部412に対して、矢印708に示されるようにカラムスキャン順で書き込む。
【0042】
なお以上の説明では、検出部405において積分画像生成処理を行い、積分画像メモリ408に蓄積して照合処理を行った。しかし、積分画像を生成せずに、特徴抽出部406の出力をメモリにそのまま蓄積し、検出対象物を検出する場合であっても、本発明を適用できる。
【0043】
また、本実施形態では、高解像度から低解像度に向けて順に処理を行ったため、画像縮小部404は、縮小処理のみ行った。しかし、低解像度から高解像度に向けて順に処理を行ったり、異なる順で処理を行ったりする場合、画像縮小部404を、拡大処理を含む解像度変換処理が可能な解像度変換部により置き換えても、本発明を適用できる。
【0044】
さらに、本実施形態では、メモリ401が一つである場合を示しているが、メモリは一つでも複数でもよく、また、入力画像が配置されるメモリと、縮小出力画像が配置されるメモリとは、同一であってもよく、あるいは、異なっていてもよい。また、本実施形態の検出部405において実行される検出処理は、顔や人体など、ある不特定の対象物を検出する場合に限定されるものではなく、あるカテゴリに属する対象物の検出や、特定の人物や物体の検出などであってもよい。
【0045】
以上、本実施形態によれば、画像メモリへのアクセス数を低減することができる。
【0046】
(第2実施形態)
以下、図面を参照して本発明の第2実施形態について説明する。第2実施形態では、読み込み画像をバンド分割して処理する場合を考える。図9は、読み込み画像901を複数のバンドデータに縦に分割して処理する場合の説明図である。図9(a)において、バンド902は、読み込み画像901を縦にバンド分割した最初のバンドデータである。バンド902は、上から下にラスタスキャン順に読み込まれる。バンド902の読み込みおよびバンド902に対する処理が終わると、次に、図9(b)に示されるようにバンド903が読み込まれる。この時、検出対象物の検出ウィンドウのサイズ(検出対象物に依存した数10乃至数100画素程度)を考慮した分、バンド902とバンド903とは、横方向にオーバーラップする必要がある。バンド903の読み込みおよびバンド903に対する処理が終わると、次に図9(c)に示されるようにバンド904が読み込まれる。バンド903およびバンド904も、検出ウィンドウのサイズを考慮した分、横方向にオーバーラップする必要がある。以下、同様に横方向にオーバーラップするバンドを読み込みおよび当該バンドを処理していき、読み込み画像901の最後に図9(d)に示される最後のバンド905を読み込みおよびバンド905に対する処理を行うことになる。このようにバンドデータ同士は相互に重複部分を有する。
【0047】
図10を参照して、図9に示されるようにバンド分割を行い、かつ、第1実施形態で説明したように縮小処理を行った場合の画像メモリへのアクセスについて説明する。図10において、読み込み画像1001は、縦にバンド分割され、縮小処理および検出処理が同時に行われ、バンド単位で書き込み画像1002に書き込まれる。最初に、バンド1003に対して縮小処理および検出処理が同時に行われ、バンド1004に書き込まれる。次に、バンド1005に対して縮小処理および検出処理が同時に行われ、バンド1006に書き込まれる。さらに、バンド1007に対して縮小処理および検出処理が同時に行われ、バンド1008に書き込まれる。以下、同様に読み込み画像全体の処理が終わるまでバンド処理が続けられる。図9で説明したように、読み込み画像のバンド1003とバンド1005、およびバンド1005とバンド1007、以下同様にバンドNとバンドN+2は、検出ウィンドウサイズを考慮して横方向にオーバーラップする必要がある。このようにオーバーラップして入力されるバンドを縮小処理して出力した結果、書き込み画像におけるバンド1004、バンド1006、バンド1008もまた、以下同様に横方向にオーバーラップすることになる。前述したように、検出ウィンドウの横サイズは、数10画素程度あるため、書き込み画像において隣接するバンド同士も、数10画素単位で横方向にオーバーラップすることになる。このようなバンド間のオーバーラップは、図8におけるメモリへのアクセス数の計算では考慮されていないため、図8の場合と比べるとメモリへのアクセス数が増加してしまう。このバンド間のオーバーラップによるメモリへのアクセス数の増加を抑制するのが、第2実施形態に係る画像処理装置である。
【0048】
図11は、第2実施形態に係る画像処理装置の機能構成例を示す。図11に示される画像処理装置の機能構成は、図4を参照して説明した第1実施形態に係る画像処理装置の機能構成例と同様である。第2実施形態に係る画像処理装置は、図4に示される機能構成に加えて、画像読み出し部403と画像縮小部404との間に画像切り出し部1101を備える点が第1実施形態に係る画像処理装置とは異なる。画像切り出し部1101は、画像読み出し部403から送られてくる画像データに対し、画像の左側の、画像の右側の、あるいは画像の両側の、指定された画素数分の画素を捨て、切り出し後の画像を、画像縮小部404に与える機能を有する。
【0049】
なお、図11では、画像切り出し部1101は、画像読み出し部403と画像縮小部404との間に位置しているが、画像切り出し部1101は、画像縮小部404と画像書き込み部410との間に位置してもよい。
【0050】
図12は、画像切り出し部1101の内部構成例を示す。画像切り出し部1101は、画素位置カウント部1201と、画素位置比較部1202と、出力選択部1203と、切り出し位置指定部1204とを備える。画像切り出し部1101に入力された画像データは、出力選択部1203に送られるとともに、画素位置カウント部1201にも送られる。画素位置カウント部1201は、画像中での画素の座標位置をカウントする。画素位置カウント部1201は、入力された画像データに対応する画素位置を画素位置比較部1202へ出力する。また、切り出し位置指定部1204は、画像のどの位置を切り出すかを示す切り出し位置情報を指定する。切り出し位置は、バンドデータ同士のオーバーラップ部分が減少するように指定される。指定された切り出し位置は画素位置比較部1202へ出力される。画素位置比較部1202は、画素位置カウント部1201から受け取った入力画像データの画素位置と、切り出し位置指定部1204から受け取った切り出し位置情報とを比較する。そして、画素位置比較部1202は、入力画像データが、出力される画素位置にあるか、または捨てられる画素位置にあるかを判定する。画素位置比較部1202による判定結果は、出力選択部1203に送られる。出力選択部1203は、入力画像データを出力するかしないかを、画素位置比較部1202による判定結果に応じて選択する。
【0051】
次に、図13を参照して、第2実施形態に係る処理動作について説明する。図13において、読み込み画像1301は、縦にバンド分割され、縮小処理および検出処理が同時に行われ、バンドデータ単位で書き込み画像1302に書き込まれる。図13において、読み込み画像1301を分割して得られる最初のバンド1303に関しては、画像切り出し部1101による切り出し処理は行われずに、バンド全体が縮小処理されて、バンド1304に書き込まれる。次に読み込まれるバンド1305に関しては、前述したように、検出ウィンドウサイズを考慮した分、バンド1303と数10画素単位で横方向にオーバーラップしている。このバンド1305については、バンド1303とオーバーラップしている部分のうち、縮小処理に不要な部分を画像切り出し部1101のより切り出して捨てることによって、書き込み画像1302でのオーバーラップを避けることができる。すなわち、図13に示されるように、書き込み画像1302におけるバンド1304とバンド1306とのオーバーラップは避けられる。縮小処理に必要なオーバーラップ量は、バイリニア補間やバイキュービック補間、単純間引きなどの縮小アルゴリズムによって異なり、例えば、バイリニア補間の場合、バンドが1画素分オーバーラップしていれば縮小処理が可能である。従って、バイリニア補間の場合、バンド1304に対するバンド1306の左側のオーバーラップ量が1画素になるように画像切り出し部1101への設定を行えばよい。以下、バンド1307についても、同様に画像切り出し部1101による切り出し処理を行うことによって、書き込み画像1302におけるバンド1308と、バンド1306とのオーバーラップを避けることができる。以降のバンド処理に関しても同様である。なお、画像切り出し部1101による画像切り出し位置については、バンド毎に、切り出し位置指定部1204が適切な値を設定することによって、上述の動作を実現できる。
【0052】
以上、説明したように、本実施形態では、バンド分割した場合の画像切り出し部における切り出し位置を、縮小処理に不要な分を捨てるように適切に設定する。その結果、本実施形態では、バンド分割した場合であっても書き込み画像におけるバンド間のオーバーラップを減少させることができ、メモリへのアクセス数を減らすことができる。
【0053】
なお、以上の動作の説明では、画像切り出し部1101において、画像の左側を捨てる場合のみを説明したが、バンドの処理順序が右から左に向かって行われるような場合、画像の右側を捨てるようにしてもよい。また、バンドの処理順序が左から右に向かっても、右から左に向かっても両方に対応するため、画像切り出し部1101において、画像の両側についてそれぞれ指定された画素数分の画素を捨てるようにしてもよい。
【0054】
また、本実施形態では、バンドを縦に分割する例を示したが、バンドを横に分割する場合であっても、画像切り出し部において、画像を切り出す方向を横方向から縦方向に変更することにより、本発明を適用可能である。
【0055】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、縮小画像を生成して、画像認識などの処理を行う画像処理装置、画像処理装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
顔検出などの画像認識処理を行うにあたり、様々なサイズの検出対象物を検出するために、元画像を縮小して、ピラミッド画像を生成し、各ピラミッド画像に対して検出処理を行うことが一般的に行われている。
【0003】
特許文献1では、複数の大きさの顔を検出するために、読み込んだ画像を所定の割合で順次縮小してピラミッド画像を生成し、その後に顔判別処理を行う方法が説明されている。図1は、様々なサイズの検出対象物を検出するためのピラミッド画像の一例であり、横320画素・縦240画素の入力画像101に対して、横・縦それぞれ1/1.2倍ずつ縮小している。そして、同様に8レベルの縮小画像102乃至縮小画像109(縮小画像A乃至縮小画像H)を生成する例を示している。入力画像と縮小画像とを合わせて、9種類の解像度の画像に対して、検出対象物の検出処理を行うことにより、サイズの異なる検出対象物の検出を行うことができる。
【0004】
また、特許文献2では、多重解像度処理部により生成された縮小画像データを、バスを介さずにパイプライン接続で、正規化処理部、特徴量導出部、および識別器に、順次与える構成により識別処理を行う画像識別装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−102611号公報
【特許文献2】特開2008−210009号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図2を参照して、読み込んだ画像を順次縮小してピラミッド画像を生成し、ピラミッド画像の生成後に検出処理を行う場合の特許文献1に記載の画像メモリへのアクセス処理について説明する。図2(a)は、ピラミッド画像を生成する縮小処理時の画像アクセスを説明する図である。図1に示されるように9種類の解像度のピラミッド画像を生成する場合、まず、入力画像101を画像メモリから読み出し、縮小処理を行った後、縮小画像102を画像メモリに書き込む。次に、縮小画像102を画像メモリから読み出し、縮小処理を行った後、縮小画像103を画像メモリに書き込む。以下、縮小画像103乃至縮小画像109についても同様に、最小の縮小画像109を画像メモリに書き込むまで、画像メモリからの読み出し処理、縮小処理、および画像メモリへの書き込み処理を繰り返す。
【0007】
図2(b)は、ピラミッド画像生成後に検出処理を行う場合の画像アクセスを説明する図である。まず、入力画像101を画像メモリから読み出し、最も高い解像度での検出処理を行う。検出処理の出力は、検出された検出対象物の情報であり、図2(a)で説明したように画像メモリへの画像の書き込み処理は行わない。以下、縮小画像102乃至縮小画像109についても、画像を画像メモリから読み出し、それぞれに対して検出処理を行うが、画像メモリへの画像の書き込み処理は行われない。
【0008】
図1を参照して説明したピラミッド画像を図2で説明したように処理した場合のメモリアクセス数を画素数で表す。図2(a)の画像メモリからの読み出し数Ra、画像メモリへの書き込み数Wa、図2(b)の画像メモリからの読み出し数Rbは、それぞれ式(1)により計算される。ここで、図1に示されるように、入力画像101の画素数は76800、縮小画像102の画素数は53200、縮小画像103の画素数は36686、…、縮小画像108の画素数は5655、縮小画像109の画素数は3888である。読み出し数Raは、入力画像101、縮小画像102乃至縮小画像108の画素数を合計したものである。書き込み数Waは、縮小画像102乃至縮小画像109の画素数を合計したものである。読み出し数Rbは、入力画像101、縮小画像102乃至縮小画像109の画素数を合計したものである。
【0009】
【数1】
【0010】
読み出し数Ra、書き込み数Wa、および読み出し数Rbを全て合計すると、図2における処理での画像メモリへのアクセス数N(画素数)は、式(2)により計算される。
【0011】
【数2】
【0012】
式(1)から分かるように、入力画像101、および縮小画像102乃至縮小画像108は、画像メモリから2回読み出されている。そのため、特許文献1に記載のこのような方法では、画像メモリへのアクセス数が多くなり処理に時間を要するという課題がある。
【0013】
さらに、図3を参照して、読み込んだ画像を縮小処理し、それをパイプライン構成により検出する場合の特許文献2に記載の画像メモリへのアクセス処理について説明する。
【0014】
図3は、入力画像101に対応する解像度から縮小画像109に対応する解像度までの縮小処理および検出処理を、パイプライン構成により実行した場合の画像メモリへのアクセス処理を示している。全ての検出解像度において、画像メモリから読み出されるのは入力画像101であり、入力画像101が必要に応じて縮小されて、そのまま検出処理部へ渡される。検出処理部の出力は、検出された検出対象物の情報であり、画像メモリへの画像の書き込み処理は行わない。
【0015】
図1を参照して説明したピラミッド画像を図3で説明したように処理した場合のメモリアクセス数を画素数で表すと、画像メモリからの読み出し数Rは、式(3)により計算される。
【0016】
【数3】
【0017】
図3で説明したように処理した場合、画像メモリの読み出しのみが行われるため、画像メモリへのアクセス数N(画素数)は、N= R=691200画素となる。
【0018】
しかしながら、特許文献2に記載のこのような方法では、画像メモリへの書き込み処理はないものの、画像メモリから読み出す画像の解像度が高いため、画像メモリへのアクセス数が多くなってしまうという課題がある。
【0019】
上記の課題に鑑み、本発明は、画像メモリへのアクセス数を低減することを目的とする。
【課題を解決するための手段】
【0020】
上記の目的を達成する本発明に係る画像処理装置は、
画像データを格納する格納手段と、
前記格納手段に格納された前記画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された前記画像データから前記対象物を検出する検出手段と、
前記読み出し手段により読み出された前記画像データの解像度を変換する変換手段と、
前記変換手段により解像度が変換された変換データを前記格納手段に書き込む書き込み手段と、を備え、
前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする。
【発明の効果】
【0021】
本発明によれば、画像メモリへのアクセス数を低減することができる。
【図面の簡単な説明】
【0022】
【図1】ピラミッド画像の一例を示す図。
【図2】ピラミッド画像の生成後に検出処理を行う場合の画像メモリアクセスの説明図。
【図3】縮小処理および検出処理をパイプラインで実行する場合の画像メモリアクセスの説明図。
【図4】第1実施形態に係る画像処理装置の機能の構成を示す図。
【図5】画像読み出し部の構成を示す図。
【図6】画像書き込み部の構成を示す図。
【図7】第1実施形態に係る画像スキャン方法の説明図。
【図8】画像メモリアクセスの説明図。
【図9】バンド分割の説明図。
【図10】第1実施形態に係る画像処理装置の機能の構成を示す図。
【図11】画像切り出し部の構成を示す図。
【図12】画像切り出し部がない場合におけるバンド分割処理時の画像メモリアクセスの説明図。
【図13】画像切り出し部がある場合におけるバンド分割処理時の画像メモリアクセスの説明図。
【発明を実施するための形態】
【0023】
(第1実施形態)
以下、図面を参照して本発明の第1実施形態について説明する。図4は、第1実施形態に係る画像処理装置40の機能構成例を示す。画像処理装置40は、メモリ401と、インターコネクト部402と、画像読み出し部403と、画像縮小部404と、検出部405と、画像書き込み部410とを備える。メモリ401は、入力画像保持部411と、縮小出力画像保持部412とを備える。検出部405は、特徴抽出部406と、積分画像生成部407と、積分画像メモリ408と、照合処理部409とを備える。
【0024】
インターコネクト部402は、例えば、バスやクロスバースイッチなどの接続部でありメモリ401と、画像読み出し部403と、画像書き込み部410とを接続制御する。
【0025】
画像読み出し部403は、メモリ401が備える入力画像保持部411または縮小出力画像保持部412から入力画像または縮小画像(解像度が変換された変換データ)を読み出す。画像読み出し部403は、入力画像保持部411から読み出された入力画像または縮小出力画像保持部412から読み出された縮小画像を、画像縮小部404と検出部405とに出力する2系統の出力ポートを有する。画像読み出し部403および画像書き込み部410は、インターコネクト部402を介してメモリ401と接続されている。
【0026】
画像縮小部404は、画像読み出し部403から入力画像または縮小画像を受信し、画像縮小アルゴリズムとして、例えば、バイリニア補間やバイキュービック補間、単純間引きなどの方法を用いて入力画像または縮小画像を縮小する縮小処理を行う。画像縮小部404から出力される縮小画像は、画像書き込み部410へ送信され、画像書き込み部410により縮小出力画像保持部412に書き込まれる。
【0027】
検出部405は、画像読み出し部403から受信した画像について、検出対象物の有無を検出する。検出対象物としては、例えば、顔や人体などがあるが、これらに限定されるものではない。
【0028】
特徴抽出部406は、画像読み出し部により読み出された入力画像または縮小画像から特徴量の抽出処理を行い、抽出された特徴量を積分画像生成部407へ送信する。
【0029】
積分画像生成部407は、特徴抽出部406により抽出された特徴量を2次元的に累積していき、特徴量の積分画像を生成して積分画像メモリ408に格納する。
【0030】
積分画像メモリ408は、照合処理部409により検出対象物の照合処理を行うために必要なだけの積分画像を保持する。照合処理部409は、積分画像メモリ408から積分された特徴量を必要なだけ読み出し、検出対象物との照合を行うことにより検出対象物の有無を検出する。
【0031】
画像書き込み部410は、メモリ401が備える縮小出力画像保持部412へ縮小出力画像を書き込む。入力画像保持部411は、入力画像を格納する。縮小出力画像保持部412は、ピラミッド画像生成のために縮小された画像を格納する。
【0032】
図5は、画像読み出し部403の機能構成例を示す。画像読み出し部403は、検出部出力インタフェース501と、画像縮小部出力インタフェース502と、画像データバッファ503と、フォーマット変換部504と、入力データバッファ505と、アドレス生成部506と、インターコネクトインタフェース507とを備える。
【0033】
画像読み出し部403においては、まず、アドレス生成部506が入力画像(画像データ)の読み出しアドレスを生成し、インターコネクトインタフェース507へ送信する。インターコネクトインタフェース507は、アドレス生成部506により生成されたアドレスに基づいて、インターコネクト部402を経由してメモリ401から画像データを読み出す。そして、インターコネクトインタフェース507は、読み出された画像データを入力データバッファ505へ送信する。入力データバッファ505は、インターコネクトから入力された画像データを、フォーマット変換部504による変換処理のために一時的に保持しておくバッファである。フォーマット変換部504は、入力データバッファ505に保持された画像データを読み出し、データ形式を、検出部405や画像縮小部404による処理に適した形式に変換する。変換の内容としては、例えば、バイト単位やビット単位の分割、パディング、データ並びの並べ替え、色空間の変換などの処理がある。画像データバッファ503は、フォーマット変換部504により内部処理に適した形に変換された画像データを一時的に保持するバッファである。画像データバッファ503に保持された画像データは、検出部出力インタフェース501と、画像縮小部出力インタフェース502との双方により読み出され、両方に対して同じ画像データが送出される。検出部出力インタフェース501は、画像データバッファ503から画像データを読み出し、当該画像データを検出部405に送出する。その際、検出部405に適したデータ形式への変換が必要な場合には、変換処理を行う。変換処理の内容としては、例えば、必要なビットの取り出しや、ビット幅の拡張、パディング、ビットの結合などの処理がある。同様に、画像縮小部出力インタフェース502は、画像データバッファ503から画像データを読み出し、当該画像データを画像縮小部404に送出する。その際、画像縮小部404に適したデータ形式への変換が必要な場合には、同様に変換処理を行う。
【0034】
図6は、画像書き込み部410の機能構成例を示す。画像書き込み部410は、画像縮小部入力インタフェース601と、フォーマット変換部602と、出力データバッファ603と、アドレス生成部604と、インターコネクトインタフェース605とを備える。
【0035】
画像書き込み部410においては、まず、画像縮小部404から出力される縮小画像データが、画像縮小部入力インタフェース601に入力される。画像縮小部入力インタフェース601は、入力された画像データをフォーマット変換部602へ送信する。フォーマット変換部602は、画像縮小部404から出力されてきた画像データを、メモリに書き込むのに適した形式に変換して出力データバッファ603に格納する。変換の内容としては、例えば、ワード単位やバイト単位の分割、パディング、データの並び替えなどの処理がある。出力データバッファ603に格納された変換後の画像データは、インターコネクトインタフェース605に送信される。インターコネクトインタフェース605は、アドレス生成部604により生成された書き込みアドレスで指定された縮小出力画像保持部412の格納場所へ画像データを書き込む。
【0036】
次に、図7(a)を参照して、本実施形態に係る画像処理装置の処理動作について説明する。図7(a)は、入力画像をラスタスキャン(横スキャン)で走査しながら処理する場合の説明図である。一方、図7(b)は、入力画像をカラムスキャン(縦スキャン)で走査しながら処理する場合の説明図である。なお、まず図7(a)のラスタスキャンを例にして説明を行う。
【0037】
図7(a)において、読み込み画像701は、入力画像保持部411に保持された入力画像に相当する。画像読み出し部403は、読み込み画像701に対して、図に示すように左から右、上から下へのラスタスキャンを行って画像データを読み出す。読み出された画像データは、検出部405と画像縮小部404との2系統に同時に送信され、検出部405側では、特徴抽出処理と、積分画像生成処理とが実行され、実行結果が積分画像メモリ408に書き込まれる。照合処理部409は、積分画像メモリ408内において、検出対象物の照合を行うために必要な領域である検出ウィンドウ702を移動させながら、各検出ウィンドウ702位置で照合処理を行い、検出対象物を検出する。一方、画像読み出し部403から画像縮小部404へ送信された画像データに関しては、縮小アルゴリズムの種別に応じた分量だけ、画像縮小部404内の縮小用ラインメモリ703に蓄積される。例えば、縮小アルゴリズムが、バイリニア補間の場合には、1ライン分のメモリが必要であり、単純間引きの場合には、縮小用ラインメモリ703は不要となる。画像縮小部404は、必要に応じて縮小用ラインメモリ703に蓄積された画像データ値を参照しながら縮小処理を行い、縮小画像データを画像書き込み部410へ送信する。画像書き込み部410は、縮小画像データを縮小出力画像保持部412に対して、矢印704により示されるようにラスタスキャン順で書き込む。なお、縮小画像を生成する必要がない場合については、画像読み出し部403は、検出部405だけに画像データを送出し、画像縮小部404および画像書き込み部410は動作しないようにしてもよい。
【0038】
図8を参照して、本実施形態に係る画像メモリへのアクセス数について説明する。本実施形態では、画像読み出し部403により読みだされた画像データを、画像縮小部404と検出部405とに同時に送出するため、縮小処理と検出処理とを並行して実行できる。従って、図8に示されるように、入力画像101から縮小画像102を生成する過程で入力画像101に対する検出処理が実行できる。次に、縮小画像102を新たな入力として縮小画像103を生成する過程で、縮小画像102に対する検出処理を実行できる。以下、同様に低い解像度の画像に対して処理を行っていき、最後は、縮小画像109に対して検出処理を行うことにより、全ピラミッド画像に対する検出処理が完了する。図1で説明したピラミッド画像を、図8に示されるように処理した場合の、画像メモリへのアクセス数を画素数で表すと、画像メモリ読み出し数R、画像メモリ書き込み数W、画像メモリへのアクセス数Nは、式(4)により計算される。ここで、入力画像101の画素数は76800、縮小画像102の画素数は53200、縮小画像103の画素数は36686、…、縮小画像108の画素数は5655、縮小画像109の画素数は3888である。読み出し数Rは、入力画像101、縮小画像102乃至縮小画像109の画素数を合計したものである。書き込み数Wは、縮小画像102乃至縮小画像109の画素数を合計したものである。画像メモリへのアクセス数Nは、読み出し数Rと書き込み数Wとの合計である。
【0039】
【数4】
【0040】
本実施形態における画像メモリへのアクセス数(402352画素)と、図2で説明した処理での画像メモリへのアクセス数(638040画素)とを比較する。すると、縮小処理の入力画像データと検出処理の入力画像データとを同時に読み出している分、画像メモリへのアクセス数を低減できていることが分かる。また、本実施形態における画像メモリへのアクセス数と、図で説明した処理での画像メモリへのアクセス数(691200画素)と比較する。すると、読み出す画像のサイズが解像度が低くなるのに応じて小さくなっている分、画像メモリへのアクセス数を低減できていることが分かる。
【0041】
以上、画像をラスタスキャンする例で説明を行ったが、図7(b)に示されるように、画像データをカラムスキャン(縦スキャン)する場合であっても、同様の処理を実現することが可能である。図7(b)において、読み込み画像705は、入力画像保持部411に保持された入力画像に相当する。画像読み出し部403は、読み込み画像705に対して、図に示すように上から下、左から右へのカラムスキャンを行って画像データを読み出す。読み出された画像データは、検出部405と画像縮小部404との2系統に同時に送信され、検出部405側では、特徴抽出処理と、積分画像生成処理とが実行され、実行結果が積分画像メモリ408にカラムスキャン順に書き込まれる。照合処理部409は、積分画像メモリ408内で、検出対象物の照合を行うために必要な領域である検出ウィンドウ706を移動させながら、各検出ウィンドウ706位置で照合処理を行うことにより、検出対象物を検出する。一方、画像読み出し部403から画像縮小部404へ送信された画像データに関しては、縮小アルゴリズムの種別に応じた分量だけ、画像縮小部404内の縮小用カラムメモリ707に蓄積される。画像縮小部404は、必要に応じて縮小用カラムメモリ707に蓄積された画像データ値を参照しながら縮小処理を行い、縮小画像データを画像書き込み部410へ送信する。画像書き込み部410は、縮小画像データを、縮小出力画像保持部412に対して、矢印708に示されるようにカラムスキャン順で書き込む。
【0042】
なお以上の説明では、検出部405において積分画像生成処理を行い、積分画像メモリ408に蓄積して照合処理を行った。しかし、積分画像を生成せずに、特徴抽出部406の出力をメモリにそのまま蓄積し、検出対象物を検出する場合であっても、本発明を適用できる。
【0043】
また、本実施形態では、高解像度から低解像度に向けて順に処理を行ったため、画像縮小部404は、縮小処理のみ行った。しかし、低解像度から高解像度に向けて順に処理を行ったり、異なる順で処理を行ったりする場合、画像縮小部404を、拡大処理を含む解像度変換処理が可能な解像度変換部により置き換えても、本発明を適用できる。
【0044】
さらに、本実施形態では、メモリ401が一つである場合を示しているが、メモリは一つでも複数でもよく、また、入力画像が配置されるメモリと、縮小出力画像が配置されるメモリとは、同一であってもよく、あるいは、異なっていてもよい。また、本実施形態の検出部405において実行される検出処理は、顔や人体など、ある不特定の対象物を検出する場合に限定されるものではなく、あるカテゴリに属する対象物の検出や、特定の人物や物体の検出などであってもよい。
【0045】
以上、本実施形態によれば、画像メモリへのアクセス数を低減することができる。
【0046】
(第2実施形態)
以下、図面を参照して本発明の第2実施形態について説明する。第2実施形態では、読み込み画像をバンド分割して処理する場合を考える。図9は、読み込み画像901を複数のバンドデータに縦に分割して処理する場合の説明図である。図9(a)において、バンド902は、読み込み画像901を縦にバンド分割した最初のバンドデータである。バンド902は、上から下にラスタスキャン順に読み込まれる。バンド902の読み込みおよびバンド902に対する処理が終わると、次に、図9(b)に示されるようにバンド903が読み込まれる。この時、検出対象物の検出ウィンドウのサイズ(検出対象物に依存した数10乃至数100画素程度)を考慮した分、バンド902とバンド903とは、横方向にオーバーラップする必要がある。バンド903の読み込みおよびバンド903に対する処理が終わると、次に図9(c)に示されるようにバンド904が読み込まれる。バンド903およびバンド904も、検出ウィンドウのサイズを考慮した分、横方向にオーバーラップする必要がある。以下、同様に横方向にオーバーラップするバンドを読み込みおよび当該バンドを処理していき、読み込み画像901の最後に図9(d)に示される最後のバンド905を読み込みおよびバンド905に対する処理を行うことになる。このようにバンドデータ同士は相互に重複部分を有する。
【0047】
図10を参照して、図9に示されるようにバンド分割を行い、かつ、第1実施形態で説明したように縮小処理を行った場合の画像メモリへのアクセスについて説明する。図10において、読み込み画像1001は、縦にバンド分割され、縮小処理および検出処理が同時に行われ、バンド単位で書き込み画像1002に書き込まれる。最初に、バンド1003に対して縮小処理および検出処理が同時に行われ、バンド1004に書き込まれる。次に、バンド1005に対して縮小処理および検出処理が同時に行われ、バンド1006に書き込まれる。さらに、バンド1007に対して縮小処理および検出処理が同時に行われ、バンド1008に書き込まれる。以下、同様に読み込み画像全体の処理が終わるまでバンド処理が続けられる。図9で説明したように、読み込み画像のバンド1003とバンド1005、およびバンド1005とバンド1007、以下同様にバンドNとバンドN+2は、検出ウィンドウサイズを考慮して横方向にオーバーラップする必要がある。このようにオーバーラップして入力されるバンドを縮小処理して出力した結果、書き込み画像におけるバンド1004、バンド1006、バンド1008もまた、以下同様に横方向にオーバーラップすることになる。前述したように、検出ウィンドウの横サイズは、数10画素程度あるため、書き込み画像において隣接するバンド同士も、数10画素単位で横方向にオーバーラップすることになる。このようなバンド間のオーバーラップは、図8におけるメモリへのアクセス数の計算では考慮されていないため、図8の場合と比べるとメモリへのアクセス数が増加してしまう。このバンド間のオーバーラップによるメモリへのアクセス数の増加を抑制するのが、第2実施形態に係る画像処理装置である。
【0048】
図11は、第2実施形態に係る画像処理装置の機能構成例を示す。図11に示される画像処理装置の機能構成は、図4を参照して説明した第1実施形態に係る画像処理装置の機能構成例と同様である。第2実施形態に係る画像処理装置は、図4に示される機能構成に加えて、画像読み出し部403と画像縮小部404との間に画像切り出し部1101を備える点が第1実施形態に係る画像処理装置とは異なる。画像切り出し部1101は、画像読み出し部403から送られてくる画像データに対し、画像の左側の、画像の右側の、あるいは画像の両側の、指定された画素数分の画素を捨て、切り出し後の画像を、画像縮小部404に与える機能を有する。
【0049】
なお、図11では、画像切り出し部1101は、画像読み出し部403と画像縮小部404との間に位置しているが、画像切り出し部1101は、画像縮小部404と画像書き込み部410との間に位置してもよい。
【0050】
図12は、画像切り出し部1101の内部構成例を示す。画像切り出し部1101は、画素位置カウント部1201と、画素位置比較部1202と、出力選択部1203と、切り出し位置指定部1204とを備える。画像切り出し部1101に入力された画像データは、出力選択部1203に送られるとともに、画素位置カウント部1201にも送られる。画素位置カウント部1201は、画像中での画素の座標位置をカウントする。画素位置カウント部1201は、入力された画像データに対応する画素位置を画素位置比較部1202へ出力する。また、切り出し位置指定部1204は、画像のどの位置を切り出すかを示す切り出し位置情報を指定する。切り出し位置は、バンドデータ同士のオーバーラップ部分が減少するように指定される。指定された切り出し位置は画素位置比較部1202へ出力される。画素位置比較部1202は、画素位置カウント部1201から受け取った入力画像データの画素位置と、切り出し位置指定部1204から受け取った切り出し位置情報とを比較する。そして、画素位置比較部1202は、入力画像データが、出力される画素位置にあるか、または捨てられる画素位置にあるかを判定する。画素位置比較部1202による判定結果は、出力選択部1203に送られる。出力選択部1203は、入力画像データを出力するかしないかを、画素位置比較部1202による判定結果に応じて選択する。
【0051】
次に、図13を参照して、第2実施形態に係る処理動作について説明する。図13において、読み込み画像1301は、縦にバンド分割され、縮小処理および検出処理が同時に行われ、バンドデータ単位で書き込み画像1302に書き込まれる。図13において、読み込み画像1301を分割して得られる最初のバンド1303に関しては、画像切り出し部1101による切り出し処理は行われずに、バンド全体が縮小処理されて、バンド1304に書き込まれる。次に読み込まれるバンド1305に関しては、前述したように、検出ウィンドウサイズを考慮した分、バンド1303と数10画素単位で横方向にオーバーラップしている。このバンド1305については、バンド1303とオーバーラップしている部分のうち、縮小処理に不要な部分を画像切り出し部1101のより切り出して捨てることによって、書き込み画像1302でのオーバーラップを避けることができる。すなわち、図13に示されるように、書き込み画像1302におけるバンド1304とバンド1306とのオーバーラップは避けられる。縮小処理に必要なオーバーラップ量は、バイリニア補間やバイキュービック補間、単純間引きなどの縮小アルゴリズムによって異なり、例えば、バイリニア補間の場合、バンドが1画素分オーバーラップしていれば縮小処理が可能である。従って、バイリニア補間の場合、バンド1304に対するバンド1306の左側のオーバーラップ量が1画素になるように画像切り出し部1101への設定を行えばよい。以下、バンド1307についても、同様に画像切り出し部1101による切り出し処理を行うことによって、書き込み画像1302におけるバンド1308と、バンド1306とのオーバーラップを避けることができる。以降のバンド処理に関しても同様である。なお、画像切り出し部1101による画像切り出し位置については、バンド毎に、切り出し位置指定部1204が適切な値を設定することによって、上述の動作を実現できる。
【0052】
以上、説明したように、本実施形態では、バンド分割した場合の画像切り出し部における切り出し位置を、縮小処理に不要な分を捨てるように適切に設定する。その結果、本実施形態では、バンド分割した場合であっても書き込み画像におけるバンド間のオーバーラップを減少させることができ、メモリへのアクセス数を減らすことができる。
【0053】
なお、以上の動作の説明では、画像切り出し部1101において、画像の左側を捨てる場合のみを説明したが、バンドの処理順序が右から左に向かって行われるような場合、画像の右側を捨てるようにしてもよい。また、バンドの処理順序が左から右に向かっても、右から左に向かっても両方に対応するため、画像切り出し部1101において、画像の両側についてそれぞれ指定された画素数分の画素を捨てるようにしてもよい。
【0054】
また、本実施形態では、バンドを縦に分割する例を示したが、バンドを横に分割する場合であっても、画像切り出し部において、画像を切り出す方向を横方向から縦方向に変更することにより、本発明を適用可能である。
【0055】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
画像データを格納する格納手段と、
前記格納手段に格納された前記画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された前記画像データから前記対象物を検出する検出手段と、
前記読み出し手段により読み出された前記画像データの解像度を変換する変換手段と、
前記変換手段により解像度が変換された変換データを前記格納手段に書き込む書き込み手段と、を備え、
前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする画像処理装置。
【請求項2】
前記変換手段は、前記読み出し手段により読み出された前記画像データの解像度を、当該画像データの解像度よりも低く変換することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像データを、相互に重複する部分を有する複数のバンドデータに分割する分割手段をさらに備えることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記検出手段は、前記分割手段により分割された前記バンドデータごとに前記対象物を検出し、
前記変換手段は、前記分割手段により分割された前記バンドデータごとに解像度を変換することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記バンドデータのうち切り出し対象となる画素位置を、前記バンドデータ同士が相互に重複する部分が減少するように指定する指定手段と、
前記バンドデータから、前記指定手段により指定された前記画素位置のデータを切り出す切り出し手段と、をさらに備え、
前記変換手段は、前記切り出し手段により切り出された前記画素位置のデータの解像度を変換することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
格納手段と、読み出し手段と、検出手段と、変換手段と、書き込み手段とを備え、画像データまたは当該画像データの解像度が変換された変換データから対象物を検出する画像処理装置の制御方法であって、
前記格納手段が、前記画像データを格納する格納工程と、
前記読み出し手段が前記格納工程で格納された前記画像データを読み出す読み出し工程と、
前記検出手段が、前記読み出し工程により読み出された前記画像データから前記対象物を検出する検出工程と、
前記変換手段が、前記読み出し工程により読み出された前記画像データの解像度を変換する変換工程と、
前記書き込み手段が、前記変換工程により解像度が変換された変換データを前記格納手段に書き込む書き込み工程と、を備え、
前記読み出し工程では、前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする画像処理装置の制御方法。
【請求項7】
コンピュータに請求項6に記載の画像処理装置の制御方法の各工程を実行させるためのプログラム。
【請求項1】
画像データを格納する格納手段と、
前記格納手段に格納された前記画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された前記画像データから前記対象物を検出する検出手段と、
前記読み出し手段により読み出された前記画像データの解像度を変換する変換手段と、
前記変換手段により解像度が変換された変換データを前記格納手段に書き込む書き込み手段と、を備え、
前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする画像処理装置。
【請求項2】
前記変換手段は、前記読み出し手段により読み出された前記画像データの解像度を、当該画像データの解像度よりも低く変換することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画像データを、相互に重複する部分を有する複数のバンドデータに分割する分割手段をさらに備えることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記検出手段は、前記分割手段により分割された前記バンドデータごとに前記対象物を検出し、
前記変換手段は、前記分割手段により分割された前記バンドデータごとに解像度を変換することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記バンドデータのうち切り出し対象となる画素位置を、前記バンドデータ同士が相互に重複する部分が減少するように指定する指定手段と、
前記バンドデータから、前記指定手段により指定された前記画素位置のデータを切り出す切り出し手段と、をさらに備え、
前記変換手段は、前記切り出し手段により切り出された前記画素位置のデータの解像度を変換することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
格納手段と、読み出し手段と、検出手段と、変換手段と、書き込み手段とを備え、画像データまたは当該画像データの解像度が変換された変換データから対象物を検出する画像処理装置の制御方法であって、
前記格納手段が、前記画像データを格納する格納工程と、
前記読み出し手段が前記格納工程で格納された前記画像データを読み出す読み出し工程と、
前記検出手段が、前記読み出し工程により読み出された前記画像データから前記対象物を検出する検出工程と、
前記変換手段が、前記読み出し工程により読み出された前記画像データの解像度を変換する変換工程と、
前記書き込み手段が、前記変換工程により解像度が変換された変換データを前記格納手段に書き込む書き込み工程と、を備え、
前記読み出し工程では、前記読み出し手段が、前記読み出した画像データを、前記検出手段と前記変換手段とに並行して出力することを特徴とする画像処理装置の制御方法。
【請求項7】
コンピュータに請求項6に記載の画像処理装置の制御方法の各工程を実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−226608(P2012−226608A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−94376(P2011−94376)
【出願日】平成23年4月20日(2011.4.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願日】平成23年4月20日(2011.4.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]