(57)【要約】【課題】  縮小画像を生成する画像処理の計算量を低減する。【解決手段】  情報処理装置が有する縮小画像生成部は、対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて対象画像の外側に画素を付加した拡張画像を生成する拡張部と、拡張画像から積分画像を生成する積分画像生成部と、縮小画像の各画素に対応して割り当てられる行列であって、フィルタ行列と同じサイズの部分総和行列を、積分画像を用いて生成する部分総和行列生成部と、縮小画像の画素毎に、フィルタ行列を用いて、部分総和行列に対して畳み込み演算を実行する畳み込み部と、縮小画像の画素毎に、畳み込み演算の結果と縮小率との積を縮小画像の各画素の画素値として算出し、縮小画像を生成する画像生成部とを有する。【選択図】  図１
2018005332.tif 000002
【特許請求の範囲】
【請求項１】
縮小対象の画像である対象画像を縮小して縮小画像を生成する縮小画像生成部を有する情報処理装置において、
前記縮小画像生成部は、
前記対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて前記対象画像の外側に画素を付加した拡張画像を生成する拡張部と、
前記拡張画像から積分画像を生成する積分画像生成部と、
前記縮小画像の各画素に対応して割り当てられる行列であって、前記フィルタ行列と同じサイズの部分総和行列を、前記積分画像を用いて生成する部分総和行列生成部と、
前記縮小画像の画素毎に、前記フィルタ行列を用いて、前記部分総和行列に対して畳み込み演算を実行する畳み込み部と、
前記縮小画像の画素毎に、前記畳み込み演算の結果と縮小率との積を前記縮小画像の各画素の画素値として算出し、前記縮小画像を生成する画像生成部と
を有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
原画像または前記縮小画像を前記対象画像として受け、前記対象画像を前記縮小画像生成部に転送する入力管理部と、
前記縮小画像生成部により生成された前記縮小画像を前記入力管理部に転送する出力管理部とをさらに有し、
前記縮小画像生成部は、前記入力管理部から受けた前記対象画像の前記縮小画像を生成する処理を繰り返して実行することにより、前記原画像に対する縮小率が互いに異なる複数の前記縮小画像を生成する
ことを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記対象画像に対する縮小率が互いに異なる複数の前記縮小画像を前記縮小画像生成部が生成する場合に、複数の前記縮小画像に対応する複数の前記フィルタ行列を生成し、生成した複数の前記フィルタ行列を前記縮小画像生成部に転送するフィルタ生成部をさらに有し、
前記拡張部は、複数の前記フィルタ行列のそれぞれのサイズのうちの最大のサイズに応じて前記対象画像の外側に画素を付加した前記拡張画像を生成し、
前記部分総和行列生成部は、複数の前記縮小画像の生成にそれぞれ使用される前記部分総和行列を、複数の前記縮小画像の生成に共通の前記積分画像を用いて生成する
ことを特徴とする情報処理装置。
【請求項４】
縮小対象の画像である対象画像を縮小して縮小画像を生成する画像処理方法において、
前記対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて前記対象画像の外側に画素を付加した拡張画像を生成し、
前記拡張画像から積分画像を生成し、
前記縮小画像の各画素に対応して割り当てられる行列であって、前記フィルタ行列と同じサイズの部分総和行列を、前記積分画像を用いて生成し、
前記縮小画像の画素毎に、前記フィルタ行列を用いて、前記部分総和行列に対して畳み込み演算を実行し、
前記縮小画像の画素毎に、前記畳み込み演算の結果と縮小率との積を前記縮小画像の各画素の画素値として算出し、前記縮小画像を生成する
ことを特徴とする画像処理方法。
【請求項５】
縮小対象の画像である対象画像を縮小して縮小画像を生成する画像処理をコンピュータに実行させる画像処理プログラムにおいて、
前記対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて前記対象画像の外側に画素を付加した拡張画像を生成し、
前記拡張画像から積分画像を生成し、
前記縮小画像の各画素に対応して割り当てられる行列であって、前記フィルタ行列と同じサイズの部分総和行列を、前記積分画像を用いて生成し、
前記縮小画像の画素毎に、前記フィルタ行列を用いて、前記部分総和行列に対して畳み込み演算を実行し、
前記縮小画像の画素毎に、前記畳み込み演算の結果と縮小率との積を前記縮小画像の各画素の画素値として算出し、前記縮小画像を生成する
ことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
画像処理の分野では、入力画像の解像度を階層的に低くした画像ピラミッドと呼ばれる画像を用いて、物体の角等の特徴点を検出する技術が知られている（例えば、特許文献１参照）。例えば、入力画像の全体を探索して特徴点を検出する場合、入力画像の解像度が高くなるにしたがい、入力画像から特徴点を検出する処理の計算量が増加する。この場合、例えば、画像ピラミッドのうち、低解像度の画像から順に特徴点を探索し、入力画像における探索範囲を特定する。これにより、入力画像から特徴点を検出する処理の計算量は、入力画像の全体を探索して特徴点を検出する場合に比べて低減する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力画像の解像度より解像度の低い縮小画像を生成する情報処理装置は、例えば、入力画像に対してフィルタ処理を実行する。そして、情報処理装置は、フィルタ処理後の画像において所定数の画素毎に画素値の平均を算出して、縮小画像を生成する。この種の情報処理装置は、フィルタ処理時に、入力画像を拡張した拡張画像に対して、所定のフィルタを用いた畳み込み演算を実行する。例えば、フィルタ処理では、畳み込み演算が入力画像の画素数分だけ実行される。なお、加算に比べて計算量の多い乗算が１回の畳み込み演算でフィルタの要素数分だけ実行されるため、縮小画像を生成する画像処理で実行される演算のうち、畳み込み演算の割合が増加すると、画像処理の計算量が増加する傾向がある。
【０００５】
１つの側面では、本発明は、縮小画像を生成する画像処理の計算量を低減することを目的とする。
【課題を解決するための手段】
【０００６】
一観点によれば、情報処理装置は、縮小対象の画像である対象画像を縮小して縮小画像を生成する縮小画像生成部を有し、縮小画像生成部は、対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて対象画像の外側に画素を付加した拡張画像を生成する拡張部と、拡張画像から積分画像を生成する積分画像生成部と、縮小画像の各画素に対応して割り当てられる行列であって、フィルタ行列と同じサイズの部分総和行列を、積分画像を用いて生成する部分総和行列生成部と、縮小画像の画素毎に、フィルタ行列を用いて、部分総和行列に対して畳み込み演算を実行する畳み込み部と、縮小画像の画素毎に、畳み込み演算の結果と縮小率との積を縮小画像の各画素の画素値として算出し、縮小画像を生成する画像生成部とを有する。
【０００７】
別の観点によれば、縮小対象の画像である対象画像を縮小して縮小画像を生成する画像処理方法では、対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて対象画像の外側に画素を付加した拡張画像を生成し、拡張画像から積分画像を生成し、縮小画像の各画素に対応して割り当てられる行列であって、フィルタ行列と同じサイズの部分総和行列を、積分画像を用いて生成し、縮小画像の画素毎に、フィルタ行列を用いて、部分総和行列に対して畳み込み演算を実行し、縮小画像の画素毎に、畳み込み演算の結果と縮小率との積を縮小画像の各画素の画素値として算出し、縮小画像を生成する。
【０００８】
別の観点によれば、縮小対象の画像である対象画像を縮小して縮小画像を生成する画像処理をコンピュータに実行させる画像処理プログラムは、対象画像のフィルタ処理に用いられるフィルタ行列のサイズに応じて対象画像の外側に画素を付加した拡張画像を生成し、拡張画像から積分画像を生成し、縮小画像の各画素に対応して割り当てられる行列であって、フィルタ行列と同じサイズの部分総和行列を、積分画像を用いて生成し、縮小画像の画素毎に、フィルタ行列を用いて、部分総和行列に対して畳み込み演算を実行し、縮小画像の画素毎に、畳み込み演算の結果と縮小率との積を縮小画像の各画素の画素値として算出し、縮小画像を生成する。
【発明の効果】
【０００９】
縮小画像を生成する画像処理の計算量を低減できる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置、画像処理方法および画像処理プログラムの一実施形態を示す図である。
【図２】情報処理装置、画像処理方法および画像処理プログラムの別の実施形態を示す図である。
【図３】対象画像を縮小する処理の概要を示す図である。
【図４】部分総和行列の概要を示す図である。
【図５】積分画像の生成方法の一例を示す図である。
【図６】図２に示した縮小画像生成部による画像処理の流れの一例を示す図である。
【図７】図６に示した画像処理の流れの比較例を示す図である。
【図８】図２に示した情報処理装置の動作の一例を示す図である。
【図９】図８に示した縮小画像生成処理の一例を示す図である。
【図１０】情報処理装置、画像処理方法および画像処理プログラムの別の実施形態を示す図である。
【図１１】図１０に示した情報処理装置の動作の一例を示す図である。
【図１２】画像処理プログラムを実行するハードウェアの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施形態について、図面を用いて説明する。以下の図面では、画像および行列等を示す情報には、画像および行列等に付した符号と同じ符号を使用する。また、以下では、画像の各画素の画素値および行列の各要素の値を各画素および各要素と同じ符号を用いて、画像処理の流れ等を説明する。
【００１２】
図１は、情報処理装置、画像処理方法および画像処理プログラムの一実施形態を示す。図１に示す情報処理装置１００が実行する画像処理等の処理は、ハードウェアのみで実現されてもよく、画像処理プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、画像処理プログラムは、画像処理を情報処理装置１００に搭載されるＣＰＵ（Central Processing Unit）等に実行させてもよい。
【００１３】
また、図１では、画像処理の流れの一例を括弧内に示す。括弧内に示した画像ＯＩＭＧ、ＥＩＭＧ、ＩＩＭＧ、ＲＩＭＧの各画素の符号の末尾の数字の２桁目は、各画素の行番号に対応し、各画素の符号の末尾の数字の１桁目は、各画素の列番号に対応する。同様に、括弧内に示した行列ＰＳＭ１１、ＦＩＬＴの各要素の符号の末尾の数字の２桁目は、各要素の行番号に対応し、各要素の符号の末尾の数字の１桁目は、各要素の列番号に対応する。なお、画像ＯＩＭＧは、縮小対象の画像である対象画像を示し、画像ＥＩＭＧは、対象画像ＯＩＭＧを拡張した拡張画像を示し、画像ＩＩＭＧは、拡張画像ＥＩＭＧの積分画像を示す。拡張画像ＥＩＭＧおよび積分画像ＩＩＭＧは、対象画像ＯＩＭＧとの対応を分かりやすくするために、行番号および列番号を“０”から開始する。
【００１４】
情報処理装置１００は、例えば、物体の角等の特徴点を原画像から検出する特徴点検出、原画像と所定のパターンとのパターンマッチング等を、原画像の解像度を階層的に低くした画像ピラミッドと呼ばれる画像を用いて実行する。例えば、原画像の全体を探索して特徴点等を検出する処理の計算量は、原画像の解像度が高くなるにしたがい増加する。このため、情報処理装置１００は、画像ピラミッドにおける各階層の画像のうち、低解像度の画像から順に特徴点等を探索し、原画像での探索範囲を特定する。そして、情報処理装置１００は、原画像内の特定した探索範囲から特徴点等を検出する。これにより、原画像から特徴点等を検出する処理の計算量は、原画像の全体を探索して特徴点を検出する場合に比べて低減する。
【００１５】
例えば、情報処理装置１００は、縮小対象の画像である対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する縮小画像生成部１０を有する。情報処理装置１００は、例えば、縮小画像生成部１０で生成された縮小画像ＲＩＭＧを対象画像ＯＩＭＧとして縮小画像生成部１０に入力する処理を繰り返すことにより、画像ピラミッドを生成する。
【００１６】
縮小画像生成部１０は、拡張部２０、積分画像生成部３０、部分総和行列生成部４０、畳み込み部５０および画像生成部６０を有する。なお、縮小画像生成部１０は、ハードウェアのみで実現されてもよく、情報処理装置１００に搭載されるＣＰＵが画像処理プログラム等のソフトウェアを実行することにより実現されてもよい。この場合、縮小画像生成部１０の動作をＣＰＵに実行させる画像処理プログラムは、縮小対象の画像である対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する画像処理をコンピュータに実行させる画像処理プログラムの一態様である。
【００１７】
拡張部２０は、対象画像ＯＩＭＧのフィルタ処理に用いられるフィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報と対象画像ＯＩＭＧを示す情報とを受ける。そして、拡張部２０は、フィルタ行列ＦＩＬＴのサイズに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧを生成し、拡張画像ＥＩＭＧを示す情報を積分画像生成部３０に出力する。
【００１８】
フィルタ行列ＦＩＬＴは、画像加工のフィルタ処理に用いられる。画像加工としては、エッジ抽出や鮮明化処理などがある。目的の画像加工に応じて適宜所定の行列がフィルタ行列ＦＩＬＴに入力される。
【００１９】
例えば、拡張部２０は、フィルタ行列ＦＩＬＴのサイズＦＳＩＺがｋ×ｋで、対象画像ＯＩＭＧの画素数がｎ×ｎである場合、画素数が（ｎ＋ｋ−１）×（ｎ＋ｋ−１）になるように、対象画像ＯＩＭＧの外側に画素を付加して拡張画像ＥＩＭＧを生成する。なお、ｎ、ｋは、正の整数である。
【００２０】
図１の括弧内に示す例では、フィルタ行列ＦＩＬＴのサイズＦＳＩＺが“３×３”であるため（ｋ＝３）、拡張部２０は、４×４画素の対象画像ＯＩＭＧを１画素（＝（ｋ−１）／２）分だけ外側に拡張して、６×６の拡張画像ＥＩＭＧを生成する。拡張画像ＥＩＭＧの画素Ｅ１１−Ｅ１４、Ｅ２１−Ｅ２４、Ｅ３１−Ｅ３４、Ｅ４１−Ｅ４４（図の太枠で示した枠内の画素Ｅ）の画素値は、対象画像ＯＩＭＧの画素Ｏ１１−Ｏ１４、Ｏ２１−Ｏ２４、Ｏ３１−Ｏ３４、Ｏ４１−Ｏ４４の画素値と同じである。また、対象画像ＯＩＭＧから拡張した画素Ｅ（例えば、画素Ｅ００等）、すなわち、対象画像ＯＩＭＧの外側に付加した画素Ｅの画素値は、例えば、“０”に設定される。なお、対象画像ＯＩＭＧから拡張した画素Ｅ（例えば、画素Ｅ００等）の画素値は、“０”以外の値でもよい。
【００２１】
積分画像生成部３０は、拡張画像ＥＩＭＧの各画素Ｅに対して原点方向（画素Ｅ００の方向）に含まれる画素値の総和を各画素Ｅに対応する要素Ｉとする積分画像ＩＩＭＧを生成する。例えば、積分画像ＩＩＭＧの要素Ｉ０５は、拡張画像ＥＩＭＧの画素Ｅ００と画素Ｅ０５とを含む領域内の画素Ｅ（０行目の画素Ｅ００、Ｅ０１、Ｅ０２、Ｅ０３、Ｅ０４、Ｅ０５）の画素値の総和を示す。また、積分画像ＩＩＭＧの要素Ｉ５０は、拡張画像ＥＩＭＧの画素Ｅ００と画素Ｅ５０とを含む領域内の画素Ｅ（０列目の画素Ｅ００、Ｅ１０、Ｅ２０、Ｅ３０、Ｅ４０、Ｅ５０）の画素値の総和を示す。積分画像ＩＩＭＧの要素Ｉ３３は、拡張画像ＥＩＭＧの画素Ｅ００と画素Ｅ３３とを対角とする矩形領域（図１に示す拡張画像ＥＩＭＧの点線で囲んだ領域）内の画素Ｅ（Ｅ００−Ｅ０３、Ｅ１０−Ｅ１３、Ｅ２０−Ｅ２３、Ｅ３０−Ｅ３３）の画素値の総和を示す。積分画像ＩＩＭＧは、Summed Area Tabletとも称され、拡張画像ＥＩＭＧの画素値の各行および各列の累積和を計算することにより得られる。
【００２２】
部分総和行列生成部４０は、積分画像生成部３０で生成された積分画像ＩＩＭＧを示す情報とフィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報と対象画像ＯＩＭＧを縮小する際の縮小率ＲＥＤＲを示す情報とを受ける。そして、部分総和行列生成部４０は、縮小画像ＲＩＭＧの各画素Ｒに対応して割り当てられる行列であって、フィルタ行列ＦＩＬＴと同じサイズの部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて生成する。部分総和行列ＰＳＭの符号の末尾の数字は、縮小画像ＲＩＭＧの画素Ｒの末尾の数字に対応する。例えば、部分総和行列ＰＳＭ１１は、縮小画像ＲＩＭＧの画素Ｒ１１の画素値の算出に用いられる。また、部分総和行列ＰＳＭの各要素Ｐは、拡張画像ＥＩＭＧの複数の画素Ｅのうち、対象画像ＯＩＭＧを縮小する際の縮小率ＲＥＤＲに基づいて決定される範囲における画素値の総和を示す。
【００２３】
図１に示す例では、縮小率ＲＥＤＲは、“１／４”である。すなわち、対象画像ＯＩＭＧの２×２の画素Ｏが１画素Ｒに縮小される。この場合、例えば、部分総和行列ＰＳＭ１１の要素Ｐ１１は、拡張画像ＥＩＭＧの４つの画素Ｅ００、Ｅ０１、Ｅ１０、Ｅ１１の画素値の総和を示し、要素Ｐ１２は、拡張画像ＥＩＭＧの４つの画素Ｅ０１、Ｅ０２、Ｅ１１、Ｅ１２の画素値の総和を示す。また、例えば、部分総和行列ＰＳＭ１１の要素Ｐ２１は、拡張画像ＥＩＭＧの４つの画素Ｅ１０、Ｅ１１、Ｅ２０、Ｅ２１の画素値の総和を示し、要素Ｐ３３は、拡張画像ＥＩＭＧの４つの画素Ｅ２２、Ｅ２３、Ｅ３２、Ｅ３３の画素値の総和を示す。
【００２４】
例えば、部分総和行列ＰＳＭ１１の要素Ｐ３３は、積分画像ＩＩＭＧの要素Ｉ３３、Ｉ３１、Ｉ１３、Ｉ１１から算出される（Ｐ３３＝Ｉ３３−Ｉ３１−Ｉ１３＋Ｉ１１）。部分総和行列生成部４０は、部分総和行列ＰＳＭを示す情報を畳み込み部５０に出力する。
【００２５】
畳み込み部５０は、フィルタ行列ＦＩＬＴを示す情報と部分総和行列ＰＳＭを示す情報とを受け、フィルタ行列ＦＩＬＴを用いて、部分総和行列ＰＳＭに対して畳み込み演算を実行する。そして、畳み込み部５０は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算の結果ＣＯＮＶを画像生成部６０に出力する。
【００２６】
例えば、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ１１との畳み込み演算の結果ＣＯＮＶ１１は、縮小画像ＲＩＭＧの画素Ｒ１１の画素値の算出に用いられる。フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ１２との畳み込み演算の結果ＣＯＮＶ１２は、縮小画像ＲＩＭＧの画素Ｒ１２の画素値の算出に用いられる。フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ２１との畳み込み演算の結果ＣＯＮＶ２１は、縮小画像ＲＩＭＧの画素Ｒ２１の画素値の算出に用いられる。フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ２２との畳み込み演算の結果ＣＯＮＶ２２は、縮小画像ＲＩＭＧの画素Ｒ２２の画素値の算出に用いられる。このように、図１に示す縮小画像生成部１０は、畳み込み演算を、縮小画像ＲＩＭＧの画素数分だけ実行する。
【００２７】
画像生成部６０は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲを示す情報とを受ける。そして、画像生成部６０は、縮小画像ＲＩＭＧの各画素Ｒに対応する部分総和行列ＰＳＭに対する畳み込み演算の結果ＣＯＮＶと縮小率ＲＥＤＲとの積を縮小画像ＲＩＭＧの各画素Ｒの画素値として算出し、縮小画像ＲＩＭＧを生成する。例えば、画像生成部６０は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ１１とを畳み込み演算した結果ＣＯＮＶ１１と縮小率ＲＥＤＲ（図１に示す例では、１／４）との積を、縮小画像ＲＩＭＧの画素Ｒ１１の画素値として算出する。
【００２８】
ここで、例えば、フィルタ処理後の画像の所定数の画素毎に画素値の平均を算出して縮小画像ＲＩＭＧを生成する従来の画像処理装置は、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算を実行して、フィルタ処理後の画像を生成する。フィルタ処理後の画像の画素数は、対象画像ＯＩＭＧの画素数と同じである。すなわち、畳み込み演算は、対象画像ＯＩＭＧの画素数分だけ実行される。
【００２９】
これに対し、図１に示す縮小画像生成部１０は、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算を実行する代わりに、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算を実行して縮小画像ＲＩＭＧを生成する。この結果、縮小画像生成部１０は、従来の画像処理装置に比べて、畳み込み演算の回数を低減でき、縮小画像ＲＩＭＧを生成する画像処理の計算量を低減できる。なお、情報処理装置１００および縮小画像生成部１０の構成は、図１に示す例に限定されない。
【００３０】
以上、図１に示す実施形態では、縮小画像生成部１０は、縮小画像ＲＩＭＧの各画素Ｒの画素値の算出に用いられる行列であって、フィルタ行列ＦＩＬＴと同じサイズの部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて縮小画像ＲＩＭＧの画素Ｒ毎に生成する。そして、縮小画像生成部１０は、縮小画像ＲＩＭＧの画素Ｒ毎に、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算を実行し、畳み込み演算の結果ＣＯＮＶと縮小率ＲＥＤＲとの積を縮小画像ＲＩＭＧの各画素Ｒの画素値として算出する。これにより、縮小画像ＲＩＭＧが生成される。このため、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算の結果を用いて縮小画像ＲＩＭＧを生成する方法に比べて、畳み込み演算の回数を低減することができ、縮小画像ＲＩＭＧを生成する画像処理の計算量を低減することができる。
【００３１】
図２は、情報処理装置、画像処理方法および画像処理プログラムの別の実施形態を示す。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２に示す情報処理装置１０２は、図１に示した縮小画像生成部１０の代わりに縮小画像生成部１２を有する。さらに、情報処理装置１０２では、メモリ１１０、１２０、入力管理部１３０、出力管理部１４０、フィルタ生成部１５０およびレジスタ１６０が図１に示した情報処理装置１００に追加される。情報処理装置１０２のその他の構成は、図１に示した情報処理装置１００と同一または同様である。
【００３２】
情報処理装置１０２は、例えば、原画像ＯＲＩＭＧの解像度を階層的に低くした画像ピラミッドＰＩＭＧを用いて、物体の角等の特徴点を原画像ＯＲＩＭＧから検出する特徴点検出、原画像ＯＲＩＭＧと所定のパターンとのパターンマッチング等を実行する。情報処理装置１０２は、縮小画像生成部１２で生成された縮小画像ＲＩＭＧを対象画像ＯＩＭＧとして縮小画像生成部１２に入力する処理を繰り返すことにより、画像ピラミッドＰＩＭＧを生成する。
【００３３】
例えば、情報処理装置１０２は、縮小画像生成部１２と、原画像ＯＲＩＭＧが予め格納されるメモリ１１０と、画像ピラミッドＰＩＭＧが格納されるメモリ１２０と、入力管理部１３０と、出力管理部１４０と、フィルタ生成部１５０と、レジスタ１６０とを有する。なお、画像ピラミッドＰＩＭＧは、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが異なる複数の縮小画像ＲＩＭＧを有する。
【００３４】
縮小画像生成部１２は、入力管理部１３０から受けた対象画像ＯＩＭＧの縮小画像ＲＩＭＧを生成する処理を繰り返して実行することにより、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを生成する。これにより、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが異なる複数の縮小画像ＲＩＭＧを含む画像ピラミッドＰＩＭＧが生成される。
【００３５】
図２に示す縮小画像生成部１２は、図１に示した画像生成部６０の代わりに、画像生成部６２を有する。さらに、縮小画像生成部１２では、ループ制御部７０が図１に示した縮小画像生成部１０に追加される。縮小画像生成部１２のその他の構成は、図１に示した縮小画像生成部１０と同一または同様である。例えば、縮小画像生成部１２は、拡張部２０、積分画像生成部３０、部分総和行列生成部４０、畳み込み部５０、画像生成部６２およびループ制御部７０を有する。
【００３６】
拡張部２０は、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報をフィルタ生成部１５０から受け、対象画像ＯＩＭＧを示す情報を入力管理部１３０から受ける。そして、拡張部２０は、図１で説明したように、フィルタ行列ＦＩＬＴのサイズに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧを生成し、拡張画像ＥＩＭＧを示す情報を積分画像生成部３０に出力する。積分画像生成部３０は、図１で説明したように、拡張画像ＥＩＭＧの積分画像ＩＩＭＧを生成し、生成した積分画像ＩＩＭＧを示す情報を部分総和行列生成部４０に出力する。
【００３７】
部分総和行列生成部４０は、積分画像ＩＩＭＧを示す情報を積分画像生成部３０から受け、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報をフィルタ生成部１５０から受け、対象画像ＯＩＭＧを縮小する際の縮小率ＲＥＤＲを示す情報をレジスタ１６０から受ける。そして、部分総和行列生成部４０は、図１で説明したように、縮小画像ＲＩＭＧの各画素Ｒに対応して割り当てられる部分総和行列ＰＳＭを積分画像ＩＩＭＧ等を用いて生成する。なお、図２に示す部分総和行列生成部４０は、部分総和行列ＰＳＭを生成する処理を、ループ制御部７０の制御により、１つの縮小画像ＲＩＭＧが生成されるまで繰り返す。
【００３８】
畳み込み部５０は、フィルタ行列ＦＩＬＴを示す情報をフィルタ生成部１５０から受け、部分総和行列ＰＳＭを示す情報を部分総和行列生成部４０から受ける。そして、畳み込み部５０は、図１で説明したように、フィルタ行列ＦＩＬＴを用いて、部分総和行列ＰＳＭに対して畳み込み演算を実行する。例えば、畳み込み部５０は、部分総和行列ＰＳＭを示す情報を部分総和行列生成部４０から受ける度に、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算を実行する。そして、畳み込み部５０は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算の結果ＣＯＮＶを画像生成部６２に出力する。
【００３９】
画像生成部６２は、縮小画像ＲＩＭＧの各画素Ｒに対応する部分総和行列ＰＳＭに対する畳み込み演算の結果ＣＯＮＶと縮小率ＲＥＤＲとの積を縮小画像ＲＩＭＧの各画素Ｒの画素値として算出し、縮小画像ＲＩＭＧを生成する。例えば、画像生成部６２は、平均値算出部６４および出力画像生成部６６を有する。
【００４０】
平均値算出部６４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算の結果ＣＯＮＶを畳み込み部５０から受け、縮小率ＲＥＤＲを示す情報をレジスタ１６０から受ける。そして、平均値算出部６４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲとの積を、縮小率ＲＥＤＲに対応する複数の画素のフィルタ処理後の値の平均として算出する。
【００４１】
なお、縮小率ＲＥＤＲに対応する複数の画素のフィルタ処理後の値の平均は、縮小画像ＲＩＭＧの各画素Ｒの画素値に対応する。すなわち、平均値算出部６４は、縮小画像ＲＩＭＧの各画素Ｒに対応する部分総和行列ＰＳＭに対する畳み込み演算の結果ＣＯＮＶと縮小率ＲＥＤＲとの積を算出することにより、縮小画像ＲＩＭＧの各画素Ｒの画素値を算出する。そして、平均値算出部６４は、縮小画像ＲＩＭＧの各画素Ｒの画素値を出力画像生成部６６に出力する。
【００４２】
出力画像生成部６６は、縮小画像ＲＩＭＧの各画素Ｒの画素値を平均値算出部６４から受け、平均値算出部６４から受けた各画素Ｒの画素値を保持する。また、出力画像生成部６６は、保持している画素Ｒの画素値の個数をループ制御部７０に出力する。そして、出力画像生成部６６は、保持している各画素Ｒの画素値を、ループ制御部７０の制御により、縮小画像ＲＩＭＧとして出力管理部１４０に出力する。例えば、出力画像生成部６６は、縮小画像ＲＩＭＧの全ての画素Ｒの画素値を平均値算出部６４から受けたとき、縮小画像ＲＩＭＧの全ての画素Ｒの画素値を、縮小画像ＲＩＭＧとして出力管理部１４０に出力する。
【００４３】
入力管理部１３０は、１枚分の画像を保持する保持領域１３２を有し、縮小画像生成部１２内の拡張部２０への入力内容を管理する。例えば、入力管理部１３０は、保持領域１３２に保持している画像を対象画像ＯＩＭＧとして縮小画像生成部１２内の拡張部２０に転送する。なお、入力管理部１３０の保持領域１３２が保持する画像は、メモリ１１０から受ける原画像ＯＲＩＭＧで初期化され、出力管理部１４０から縮小画像ＲＩＭＧを受ける度に、縮小画像ＲＩＭＧに更新される。すなわち、入力管理部１３０は、原画像ＯＲＩＭＧまたは縮小画像ＲＩＭＧを対象画像ＯＩＭＧとして受け、対象画像ＯＩＭＧを縮小画像生成部１２に転送する。
【００４４】
出力管理部１４０は、画像ピラミッドＰＩＭＧを保持する保持領域１４２を有する。例えば、出力管理部１４０は、縮小画像生成部１２により生成された縮小画像ＲＩＭＧを入力管理部１３０に転送するとともに、縮小画像ＲＩＭＧを画像ピラミッドＰＩＭＧの各階層の画像として保持領域１４２に保持する。これにより、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが異なる複数の縮小画像ＲＩＭＧを各階層の画像とした画像ピラミッドＰＩＭＧが生成される。そして、出力管理部１４０は、保持領域１４２に保持している画像ピラミッドＰＩＭＧをメモリ１２０に格納する。
【００４５】
フィルタ生成部１５０は、対象画像ＯＩＭＧのフィルタ処理に用いられるフィルタ行列ＦＩＬＴを生成し、フィルタ行列ＦＩＬＴを示す情報およびフィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報を縮小画像生成部１２に出力する。例えば、フィルタ生成部１５０は、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報を縮小画像生成部１２内の拡張部２０および部分総和行列生成部４０に出力し、フィルタ行列ＦＩＬＴを示す情報を縮小画像生成部１２内の畳み込み部５０に出力する。
【００４６】
レジスタ１６０には、対象画像ＯＩＭＧを縮小する際の縮小率ＲＥＤＲを示す情報が格納される。例えば、レジスタ１６０は、縮小率ＲＥＤＲを示す情報を縮小画像生成部１２内の部分総和行列生成部４０および平均値算出部６４に出力する。
【００４７】
なお、情報処理装置１０２および縮小画像生成部１２の構成は、図２に示す例に限定されない。例えば、フィルタ生成部１５０は、予め生成されたフィルタ行列ＦＩＬＴを縮小画像生成部１２に転送してもよい。この場合、フィルタ生成部１５０は、フィルタ行列ＦＩＬＴを生成する処理を省くことができる。また、例えば、レジスタ１６０は、省かれてもよい。あるいは、同一のメモリ内の互いに異なる領域がメモリ１１０、１２０として割り当てられてもよい。また、メモリ１２０内の領域が保持領域１４２に割り当てられてもよい。また、入力管理部１３０、出力管理部１４０、フィルタ生成部１５０およびレジスタ１６０等は、縮小画像生成部１２内に設けられてもよい。
【００４８】
図３は、対象画像ＯＩＭＧを縮小する処理の概要を示す。なお、図３は、フィルタ処理後の画像ＣＩＭＧにおける所定数の画素Ｃ毎に画素値の平均を算出して縮小画像ＲＩＭＧを生成する従来の処理を示す。図３に示す例では、８×８画素の対象画像ＯＩＭＧは、３×３のフィルタ行列ＦＩＬＴを用いて、行方向および列方向とも１／４に縮小される。すなわち、８×８画素の対象画像ＯＩＭＧは、１／１６に縮小される。
【００４９】
フィルタ行列ＦＩＬＴのサイズに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧが生成される。そして、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算が実行され、画像ＣＩＭＧが生成される。画像ＣＩＭＧは、フィルタ行列ＦＩＬＴによるフィルタ処理を対象画像ＯＩＭＧに対して実行した画像である。そして、フィルタ処理後の画像ＣＩＭＧにおける４×４画素の画素群毎に画素値の平均を算出して縮小画像ＲＩＭＧが生成される。
【００５０】
例えば、縮小画像ＲＩＭＧの画素Ｒ１１の画素値は、画像ＣＩＭＧの画素Ｃ１１−Ｃ１４、Ｃ２１−Ｃ２４、Ｃ３１−Ｃ３４、Ｃ４１−Ｃ４４（画像ＣＩＭＧ内の点線で示した矩形領域内の画素Ｃ）の画素値の平均である。画素Ｃ１１−Ｃ１４、Ｃ２１−Ｃ２４、Ｃ３１−Ｃ３４、Ｃ４１−Ｃ４４は、拡張画像ＥＩＭＧ内の点線で示した矩形領域内の画素Ｅ（画素Ｅ００−Ｅ０５等）の画素値とフィルタ行列ＦＩＬＴの各要素Ｆの値を用いて、式（１）で表される。なお、式（１）の“＊”は、乗算を示す。
【００５１】
【数１】
2018005332.tif 000003
このように、フィルタ処理後の画像ＣＩＭＧにおける所定数の画素Ｃ毎に画素値の平均を算出して縮小画像ＲＩＭＧを生成する従来の処理では、畳み込み演算は、対象画像ＯＩＭＧの画素数分だけ実行される。なお、図１および図２に示した縮小画像生成部１０、１２は、画像ＣＩＭＧを生成する代わりに、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算を実行する。部分総和行列ＰＳＭの概要は、図４で説明する。
【００５２】
図４は、部分総和行列ＰＳＭの概要を示す。なお、図４は、図３に示した画像ＣＩＭＧを生成する代わりに生成される部分総和行列ＰＳＭの概要を示す。
【００５３】
部分総和Ｓｕｍ１１は、図３に示した縮小画像ＲＩＭＧの画素Ｒ１１の画素値を算出する際に用いられる画像ＣＩＭＧの画素Ｃ１１−Ｃ１４、Ｃ２１−Ｃ２４、Ｃ３１−Ｃ３４、Ｃ４１−Ｃ４４の画素値の総和を示す。
【００５４】
部分総和Ｓｕｍ１１は、フィルタ行列ＦＩＬＴの要素Ｆ毎にまとめることにより、式（２）で表される。
【００５５】
【数２】
2018005332.tif 000004
例えば、フィルタ行列ＦＩＬＴの要素Ｆ１１と乗算される値は、拡張画像ＥＩＭＧの画素値のうち、図４に示した太線で囲んだ４×４画素の矩形領域ＡＰ１１１１内の画素Ｅの画素値の総和である。フィルタ行列ＦＩＬＴの要素Ｆ１２と乗算される値は、領域ＡＰ１１１１を１画素分右に移動した領域内の画素Ｅの画素値の総和である。フィルタ行列ＦＩＬＴの要素Ｆ１３と乗算される値は、領域ＡＰ１１１１を２画素分右に移動した領域内の画素Ｅの画素値の総和である。
【００５６】
また、フィルタ行列ＦＩＬＴの要素Ｆ２１と乗算される値は、矩形領域ＡＰ１１１１を１画素分下に移動した矩形領域内の画素Ｅの画素値の総和である。フィルタ行列ＦＩＬＴの要素Ｆ３１と乗算される値は、矩形領域ＡＰ１１１１を２画素分下に移動した矩形領域内の画素Ｅの画素値の総和である。そして、フィルタ行列ＦＩＬＴの要素Ｆ３３と乗算される値は、矩形領域ＡＰ１１１１を２画素分右下に移動した矩形領域、すなわち、点線で示した矩形領域ＡＰ１１３３内の画素Ｅの画素値の総和である。
【００５７】
このように、フィルタ行列ＦＩＬＴの各要素Ｆは、拡張画像ＥＩＭＧの画素値のうち、縮小率ＲＥＤＲに基づいて決定される矩形領域ＡＰ（図４に示す例では、４×４画素の矩形領域ＡＰ）内における画素値の総和と乗算される。したがって、拡張画像ＥＩＭＧの画素値のうち、縮小率ＲＥＤＲに基づいて決定される矩形領域ＡＰ内における画素値の総和を要素Ｐとする部分総和行列ＰＳＭを生成することにより、画像ＣＩＭＧの生成を省略することができる。
【００５８】
例えば、縮小画像ＲＩＭＧの画素Ｒ１１に対応して割り当てられる部分総和行列ＰＳＭ１１の要素Ｐ１１の値は、拡張画像ＥＩＭＧにおける矩形領域ＡＰ１１１１内の画素Ｅの画素値の総和である。また、部分総和行列ＰＳＭ１１の要素Ｐ３３の値は、拡張画像ＥＩＭＧにおける矩形領域ＡＰ１１３３内の画素Ｅの画素値の総和である。
【００５９】
図５は、積分画像ＩＩＭＧの生成方法の一例を示す。すなわち、図５は、図２に示した積分画像生成部３０の動作の一例を示す。図５に示す各画像ＥＩＭＧ、ＭＩＭＧ、ＩＩＭＧ内の数字は、各画素の画素値の例を示す。
【００６０】
積分画像生成部３０は、拡張画像ＥＩＭＧにおける各画素値の列方向の累積和を算出する。これにより、画像ＭＩＭＧが生成される。そして、積分画像生成部３０は、画像ＭＩＭＧにおける各要素の値の行方向の累積和を算出する。これにより、積分画像ＩＩＭＧが生成される。
【００６１】
積分画像ＩＩＭＧの各要素Ｉは、拡張画像ＥＩＭＧの各画素Ｅから原点方向（図５に示す例では、左上）に含まれる全ての画素Ｅの画素値の総和を示す。例えば、積分画像ＩＩＭＧの要素Ｉのうち、黒丸で示す要素Ｉの値“６６”は、拡張画像ＥＩＭＧの画素Ｅのうち、図５に示す太線で囲んだ領域内の画素Ｅの画素値の総和である。
【００６２】
積分画像ＩＩＭＧを用いることにより、拡張画像ＥＩＭＧの任意の矩形領域内の画素Ｅの画素値の総和を容易に算出すことができる。例えば、拡張画像ＥＩＭＧの点線で示す矩形領域内の画素Ｅの画素値の総和は、積分画像ＩＩＭＧの要素Ｉのうち、黒丸、白丸、白抜きの星印、黒色の星印で示す４つの要素Ｉの値を用いて算出される。４つの要素Ｉは、総和の算出対象となる矩形領域に基づいて選択される。
【００６３】
例えば、黒丸で示す要素Ｉの値“６６”は、拡張画像ＥＩＭＧの点線で示す矩形領域内の右下の角の画素Ｅから原点方向に含まれる全ての画素Ｅの画素値の総和である。白丸で示す要素Ｉの値“１９”は、拡張画像ＥＩＭＧの点線で示す矩形領域の左下の角の左側の画素Ｅから原点方向に含まれる全ての画素Ｅの画素値の総和である。白抜きの星印で示す要素Ｉの値“２１”は、拡張画像ＥＩＭＧの点線で示す矩形領域の右上の角の上側の画素Ｅから原点方向に含まれる全ての画素Ｅの画素値の総和である。そして、黒色の星印で示す要素Ｉの値“４”は、拡張画像ＥＩＭＧの点線で示す矩形領域の左上の角の左上側の画素Ｅから原点方向に含まれる全ての画素Ｅの画素値の総和、すなわち、拡張画像ＥＩＭＧの原点の画素Ｅの画素値である。したがって、拡張画像ＥＩＭＧの点線で示す矩形領域内の画素Ｅの画素値の総和は、黒丸で示す要素Ｉの値と黒色の星印で示す要素Ｉの値との加算結果から、白丸で示す要素Ｉの値と白抜きの星印で示す要素Ｉの値との加算結果を減算することにより算出される。
【００６４】
図６は、図２に示した縮小画像生成部１２による画像処理の流れの一例を示す。すなわち、図６は、図２に示した縮小画像生成部１２の動作の一例を示す。図６に示す各画像ＯＩＭＧ、ＥＩＭＧ、ＩＩＭＧ、ＲＩＭＧ内の数字は、各画素の画素値の例を示し、行列ＦＩＬＴ、ＰＳＭ１１内の数字は、各要素の値の例を示す。また、図６に示す各画像ＯＩＭＧ、ＥＩＭＧ、ＩＩＭＧ、ＲＩＭＧおよび行列ＦＩＬＴ、ＰＳＭ１１の左側および上側に示した数字は、行番号および列番号をそれぞれ示す。
【００６５】
図６では、３×３のフィルタ行列ＦＩＬＴを用いて、４×４画素の対象画像ＯＩＭＧを行方向および列方向に１／４に縮小する場合を例にして説明する。すなわち、縮小率ＲＥＤＲは、１／１６である。
【００６６】
先ず、縮小画像生成部１２は、フィルタ行列ＦＩＬＴのサイズＦＳＩＺに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧを生成する。例えば、拡張画像ＥＩＭＧの０行目における１列目から４列目の画素Ｅには、対象画像ＯＩＭＧの２行目の各画素Ｏの画素値がコピーされる。拡張画像ＥＩＭＧの５行目における１列目から４列目の画素Ｅには、対象画像ＯＩＭＧの３行目の各画素Ｏの画素値がコピーされる。拡張画像ＥＩＭＧの０列目における１行目から４行目の画素Ｅには、対象画像ＯＩＭＧの２列目の各画素Ｏの画素値がコピーされる。拡張画像ＥＩＭＧの５列目における１行目から４行目の画素Ｅには、対象画像ＯＩＭＧの３列目の各画素Ｏの画素値がコピーされる。
【００６７】
また、拡張画像ＥＩＭＧの０行０列目の画素Ｅには、対象画像ＯＩＭＧの２行２列目の画素Ｏの画素値がコピーされ、拡張画像ＥＩＭＧの０行５列目の画素Ｅには、対象画像ＯＩＭＧの２行３列目の画素Ｏの画素値がコピーされる。拡張画像ＥＩＭＧの５行０列目の画素Ｅには、対象画像ＯＩＭＧの３行２列目の画素Ｏの画素値がコピーされ、拡張画像ＥＩＭＧの５行５列目の画素Ｅには、対象画像ＯＩＭＧの３行３列目の画素Ｏの画素値がコピーされる。なお、対象画像ＯＩＭＧの外側に付加される画素の画素値は、図６に示す例に限定されない。例えば、対象画像ＯＩＭＧの外側に付加される画素の画素値は、“０”でもよい。
【００６８】
次に、縮小画像生成部１２は、図５で説明したように、拡張画像ＥＩＭＧの積分画像ＩＩＭＧを生成する。そして、縮小画像生成部１２は、縮小画像ＲＩＭＧの画素Ｒ１１に対応して割り当てられる部分総和行列ＰＳＭ１１を、積分画像ＩＩＭＧを用いて生成する。例えば、部分総和行列ＰＳＭ１１の２行２列目の要素Ｐ２２の値“６７”は、積分画像ＩＩＭＧのうち、黒丸、白丸、白抜きの星印、黒色の星印で示す４つの要素Ｉの値を用いて算出される（６７＝９９−１８−１６＋２）。部分総和行列ＰＳＭ１１の他の要素Ｐの値も、積分画像ＩＩＭＧの要素Ｉのうち、要素Ｐの算出対象となる矩形領域に基づいて選択される４つの要素Ｉの値を用いて算出される。
【００６９】
次に、縮小画像生成部１２は、フィルタ行列ＦＩＬＴを用いて、部分総和行列ＰＳＭ１１に対して畳み込み演算を実行する。フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ１１との畳み込み演算は、例えば、図６に示す計算例のように、互いに対応する位置におけるフィルタ行列ＦＩＬＴの各要素Ｆと部分総和行列ＰＳＭ１１の各要素Ｐとの積の累積和を計算することにより実行される。
【００７０】
次に、縮小画像生成部１２は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭ１１とを畳み込み演算した結果ＣＯＮＶ１１と縮小率ＲＥＤＲとの積（６７．９３７５＊１／１６）を算出する。これにより、縮小画像ＲＩＭＧの画素Ｒ１１の画素値“４．２４６”が算出される。このように、畳み込み演算は、縮小画像ＲＩＭＧの画素数分だけ実行される。
【００７１】
図７は、図６に示した画像処理の流れの比較例を示す。なお、図７は、フィルタ処理後の画像ＣＩＭＧにおける所定数の画素Ｃ毎に画素値の平均を算出して縮小画像ＲＩＭＧを生成する従来の処理を示す。図７に示す各画像ＯＩＭＧ、ＥＩＭＧ、ＣＩＭＧ、ＲＩＭＧ内の数字等の意味は、図６と同じである。また、図７においても、図６と同様に、３×３のフィルタ行列ＦＩＬＴを用いて、４×４画素の対象画像ＯＩＭＧを行方向および列方向に１／４に縮小する場合を例にして説明する。すなわち、縮小率ＲＥＤＲは、１／１６である。
【００７２】
先ず、図６で説明したように、フィルタ行列ＦＩＬＴのサイズＦＳＩＺに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧが生成される。
【００７３】
次に、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算が実行され、画像ＣＩＭＧが生成される。例えば、画像ＣＩＭＧの１行４列目の画素Ｃの画素値“５”は、拡張画像ＥＩＭＧの１行４列目の画素Ｅを中心とする３×３画素の矩形領域内の各画素Ｅとフィルタ行列ＦＩＬＴの各要素Ｆとの積の累積和を計算することにより算出される（図７に示す計算例）。
【００７４】
そして、フィルタ処理後の画像ＣＩＭＧにおける４×４画素の画素群毎に画素値の平均（６７．９３７５／１６）を算出して縮小画像ＲＩＭＧの画素Ｒ１１の画素値（４．２４６）が算出される。
【００７５】
このように、図７に示す比較例では、畳み込み演算は、対象画像ＯＩＭＧの画素数分だけ実行される。これに対し、図２に示した縮小画像生成部１２による画像処理では、図６で説明したように、畳み込み演算は、縮小画像ＲＩＭＧの画素数分だけ実行される。すなわち、縮小画像生成部１２は、図７に示した比較例に比べて、縮小画像ＲＩＭＧを生成する際の畳み込み演算の回数を低減でき、縮小画像ＲＩＭＧを生成する画像処理の計算量を低減できる。なお、図６で説明した縮小画像生成部１２により生成される縮小画像ＲＩＭＧの画素値は、フィルタ処理後の画像ＣＩＭＧにおける所定数の画素Ｃ毎に画素値の平均を算出して生成される縮小画像ＲＩＭＧの画素値と同じである。
【００７６】
図８は、図２に示した情報処理装置１０２の動作の一例を示す。なお、図８に示す動作は、ハードウェアのみで実現されてもよく、画像処理プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、画像処理プログラムは、図８に示す動作をコンピュータに実行させてもよい。
【００７７】
ステップＳ１００では、入力管理部１３０は、メモリ１１０に格納された原画像ＯＲＩＭＧを保持領域１３２に保持する。例えば、入力管理部１３０は、原画像ＯＲＩＭＧをメモリ１１０から読み出し、読み出した原画像ＯＲＩＭＧを保持領域１３２に保持する。これにより、メモリ１１０に格納された原画像ＯＲＩＭＧは、対象画像ＯＩＭＧとして、入力管理部１３０の保持領域１３２に保持される。
【００７８】
次に、ステップＳ２００では、フィルタ生成部１５０は、対象画像ＯＩＭＧのフィルタ処理に用いられるフィルタ行列ＦＩＬＴを縮小画像生成部１２に転送する。例えば、フィルタ生成部１５０は、フィルタ行列ＦＩＬＴを示す情報を縮小画像生成部１２内の畳み込み部５０に出力し、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報を縮小画像生成部１２内の拡張部２０および部分総和行列生成部４０に出力する。
【００７９】
次に、ステップＳ３００では、入力管理部１３０は、保持領域１３２に保持している対象画像ＯＩＭＧを縮小画像生成部１２に転送する。これにより、例えば、ステップＳ４００の縮小画像生成処理が一度も実行されていない場合、原画像ＯＲＩＭＧが対象画像ＯＩＭＧとして入力管理部１３０から縮小画像生成部１２に転送される。また、例えば、ステップＳ４００の縮小画像生成処理により生成された縮小画像ＲＩＭＧが保持領域１３２に保持されている場合、縮小画像ＲＩＭＧが対象画像ＯＩＭＧとして入力管理部１３０から縮小画像生成部１２に転送される。
【００８０】
次に、ステップＳ４００では、縮小画像生成部１２は、対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する縮小画像生成処理を実行する。例えば、縮小画像生成部１２は、図６で説明したように、対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する。なお、縮小画像生成処理の詳細は、図９で説明する。ステップＳ４００の縮小画像生成処理が実行された後、情報処理装置１０２の動作は、ステップＳ５００に移る。
【００８１】
ステップＳ５００では、出力管理部１４０は、縮小画像生成部１２により生成された縮小画像ＲＩＭＧを、保持領域１４２に保持するとともに、入力管理部１３０の保持領域１４２に上書きする。これにより、縮小画像生成部１２により生成された縮小画像ＲＩＭＧは、画像ピラミッドＰＩＭＧの各階層の画像として出力管理部１４０の保持領域１４２に保持されるとともに、対象画像ＯＩＭＧとして入力管理部１３０の保持領域１３２に保持される。すなわち、次回の縮小画像生成処理に用いられる対象画像ＯＩＭＧは、縮小画像ＲＩＭＧに更新される。
【００８２】
次に、ステップＳ６００では、情報処理装置１０２は、画像ピラミッドＰＩＭＧが完成したか否かを判定する。例えば、縮小画像生成部１２は、画像ピラミッドＰＩＭＧの全ての階層の縮小画像ＲＩＭＧを生成したか否かを判定する。画像ピラミッドＰＩＭＧが完成した場合、情報処理装置１０２の動作は、ステップＳ７００に移る。一方、画像ピラミッドＰＩＭＧが完成していない場合、情報処理装置１０２の動作は、ステップＳ３００に戻る。すなわち、ステップＳ３００、Ｓ４００、Ｓ５００の処理は、画像ピラミッドＰＩＭＧが完成するまで繰り返される。
【００８３】
ステップＳ７００では、出力管理部１４０は、保持領域１４２に保持している縮小画像ＲＩＭＧを、画像ピラミッドＰＩＭＧとしてメモリ１２０に格納する。このように、情報処理装置１０２は、縮小画像生成部１２で生成された縮小画像ＲＩＭＧを対象画像ＯＩＭＧとして縮小画像生成部１２に入力する処理を繰り返すことにより、画像ピラミッドＰＩＭＧを生成する。なお、情報処理装置１０２の動作は、図８に示す例に限定されない。
【００８４】
図９は、図８に示した縮小画像生成処理の一例を示す。すなわち、図９は、図２に示した縮小画像生成部１２の動作の一例を示す。なお、図９に示す動作は、縮小対象の画像である対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する画像処理方法の一態様である。図９に示す動作は、ハードウェアのみで実現されてもよく、画像処理プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、画像処理プログラムは、図９に示す動作をコンピュータに実行させてもよい。
【００８５】
ステップＳ４１０では、拡張部２０は、対象画像ＯＩＭＧを拡張して拡張画像ＥＩＭＧを生成する。例えば、拡張部２０は、フィルタ行列ＦＩＬＴのサイズに応じて対象画像ＯＩＭＧの外側に画素を付加して拡張画像ＥＩＭＧを生成する。なお、対象画像ＯＩＭＧは、例えば、縮小画像生成処理が実行される度に、図８に示したステップＳ３００において、入力管理部１３０から縮小画像生成部１２に転送される。
【００８６】
次に、ステップＳ４２０では、積分画像生成部３０は、図５で説明したように、拡張画像ＥＩＭＧの積分画像ＩＩＭＧを生成する。
【００８７】
次に、ステップＳ４３０では、部分総和行列生成部４０は、図４で説明したように、縮小画像ＲＩＭＧの画素Ｒに対応して割り当てられる部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて生成する。例えば、部分総和行列生成部４０は、縮小画像ＲＩＭＧの画素Ｒのうち、画素値が算出されていない画素Ｒを１つ選択し、選択した画素Ｒに対応する部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて生成する。
【００８８】
次に、ステップＳ４４０では、畳み込み部５０は、図８に示したステップＳ２００で転送されたフィルタ行列ＦＩＬＴとステップＳ４３０で生成された部分総和行列ＰＳＭとの畳み込み演算を実行する。
【００８９】
次に、ステップＳ４５０では、平均値算出部６４は、ステップＳ４４０で実行された畳み込み演算の結果ＣＯＮＶと縮小率ＲＥＤＲとの積を、縮小画像ＲＩＭＧの画素値（ステップＳ４４０で選択された画素Ｒの画素値）として算出する。すなわち、平均値算出部６４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲとの積を、縮小画像ＲＩＭＧの画素値として算出する。
【００９０】
次に、ステップＳ４６０では、ループ制御部７０は、縮小画像ＲＩＭＧの全ての画素値が算出されたか否かを判定する。例えば、ループ制御部７０は、出力画像生成部６６に保持されている画素Ｒの画素値の個数が縮小画像ＲＩＭＧの画素数と一致する場合、縮小画像ＲＩＭＧの全ての画素値が算出されたと判定する。縮小画像ＲＩＭＧの全ての画素値が算出された場合、縮小画像生成部１２の動作は、ステップＳ４７０に移る。一方、縮小画像ＲＩＭＧのいずれかの画素値が算出されていない場合、縮小画像生成部１２の動作は、ステップＳ４３０に戻る。すなわち、ステップＳ４３０、Ｓ４４０、Ｓ４５０の処理は、例えば、画像ピラミッドＰＩＭＧの１つの階層に対応する縮小画像ＲＩＭＧが生成されるまで繰り返される。
【００９１】
ステップＳ４７０では、出力画像生成部６６は、縮小画像ＲＩＭＧの全ての画素Ｒの画素値を、縮小画像ＲＩＭＧとして出力管理部１４０に出力する。これにより、画像ピラミッドＰＩＭＧの１つの階層に対応する縮小画像ＲＩＭＧが出力管理部１４０に転送される。なお、縮小画像生成処理、すなわち、縮小画像生成部１２の動作は、図９に示す例に限定されない。
【００９２】
以上、図２から図９に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、縮小画像生成部１２は、フィルタ行列ＦＩＬＴと同じサイズの部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて縮小画像ＲＩＭＧの画素Ｒ毎に生成する。そして、縮小画像生成部１２は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲとの積を縮小画像ＲＩＭＧの各画素Ｒの画素値として算出して縮小画像ＲＩＭＧを生成する。このため、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算の結果を用いて縮小画像ＲＩＭＧを生成する方法に比べて、畳み込み演算の回数を低減することができ、縮小画像ＲＩＭＧを生成する画像処理の計算量を低減することができる。
【００９３】
図１０は、情報処理装置、画像処理方法および画像処理プログラムの別の実施形態を示す。図１から図９で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１０に示す情報処理装置１０４では、図２に示した情報処理装置１０２から入力管理部１３０が省かれる。そして、情報処理装置１０４は、図２に示した縮小画像生成部１２、出力管理部１４０、フィルタ生成部１５０およびレジスタ１６０の代わりに、縮小画像生成部１４、出力管理部１４０Ａ、フィルタ生成部１５０Ａおよびレジスタ１６０Ａを有する。情報処理装置１０４のその他の構成は、図２に示した情報処理装置１０２と同一または同様である。
【００９４】
情報処理装置１０４は、例えば、原画像ＯＲＩＭＧの解像度を階層的に低くした画像ピラミッドＰＩＭＧを用いて、物体の角等の特徴点を原画像ＯＲＩＭＧから検出する特徴点検出、原画像ＯＲＩＭＧと所定のパターンとのパターンマッチング等を実行する。例えば、情報処理装置１０４は、縮小画像生成部１４と、原画像ＯＲＩＭＧが予め格納されるメモリ１１０と、画像ピラミッドＰＩＭＧが格納されるメモリ１２０と、出力管理部１４０Ａと、フィルタ生成部１５０Ａと、レジスタ１６０Ａとを有する。
【００９５】
縮小画像生成部１４は、メモリ１１０に格納された原画像ＯＲＩＭＧを対象画像ＯＩＭＧとして受け、対象画像ＯＩＭＧ（すなわち、原画像ＯＲＩＭＧ）に対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを生成する。なお、縮小画像生成部１４は、対象画像ＯＩＭＧに対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを生成することを除いて、図２に示した縮小画像生成部１２と同一または同様である。
【００９６】
例えば、縮小画像生成部１４は、図２に示した拡張部２０および積分画像生成部３０の代わりに拡張部２０Ａおよび積分画像生成部３０Ａを有することを除いて、縮小画像生成部１２と同一または同様である。すなわち、縮小画像生成部１４は、拡張部２０Ａ、積分画像生成部３０Ａ、部分総和行列生成部４０、畳み込み部５０、画像生成部６２およびループ制御部７０を有する。先ず、縮小画像生成部１４内の拡張部２０Ａ等について説明する前に、フィルタ生成部１５０Ａについて説明する。
【００９７】
フィルタ生成部１５０Ａは、画像ピラミッドＰＩＭＧの階層数ＬＩＮＦを示す情報および縮小率ＲＥＤＲを示す情報等が格納されたレジスタ１６０Ａから階層数ＬＩＮＦを示す情報を受け、画像ピラミッドＰＩＭＧの階層毎にフィルタ行列ＦＩＬＴを生成する。すなわち、フィルタ生成部１５０Ａは、対象画像ＯＩＭＧに対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを縮小画像生成部１４が生成する場合に、複数の縮小画像ＲＩＭＧに対応する複数のフィルタ行列ＦＩＬＴを生成する。そして、フィルタ生成部１５０Ａは、生成した複数のフィルタ行列ＦＩＬＴを縮小画像生成部１４に転送する。
【００９８】
例えば、フィルタ生成部１５０Ａは、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報を縮小画像生成部１４内の拡張部２０Ａおよび部分総和行列生成部４０に出力し、フィルタ行列ＦＩＬＴを示す情報を縮小画像生成部１４内の畳み込み部５０に出力する。なお、縮小画像生成部１４内の拡張部２０Ａには、複数のフィルタ行列ＦＩＬＴのそれぞれのサイズＦＳＩＺのうち、最大のサイズＦＳＩＺｍａｘを示す情報が転送される。例えば、ガウシアンピラミッドと呼ばれる画像ピラミッドＰＩＭＧでは、解像度が最も低い、すなわち、縮小率ＲＥＤＲが最も大きい縮小画像ＲＩＭＧの生成に用いられるフィルタ行列ＦＩＬＴのサイズＦＳＩＺが最大のサイズＦＳＩＺｍａｘになる。フィルタ生成部１５０Ａのその他の動作は、図２に示したフィルタ生成部１５０と同一または同様である。次に、縮小画像生成部１４内の拡張部２０Ａ等について説明する。
【００９９】
拡張部２０Ａは、メモリ１１０に格納された原画像ＯＲＩＭＧを対象画像ＯＩＭＧとして受け、複数のフィルタ行列ＦＩＬＴのそれぞれのサイズＦＳＩＺのうちの最大のサイズＦＳＩＺｍａｘを示す情報をフィルタ生成部１５０Ａから受ける。そして、拡張部２０Ａは、複数のフィルタ行列ＦＩＬＴのそれぞれのサイズＦＳＩＺのうちの最大のサイズＦＳＩＺｍａｘに応じて対象画像ＯＩＭＧの外側に画素を付加した拡張画像ＥＩＭＧを生成し、拡張画像ＥＩＭＧを示す情報を積分画像生成部３０Ａに出力する。
【０１００】
なお、縮小画像生成部１４では、画像ピラミッドＰＩＭＧに含まれる複数の縮小画像ＲＩＭＧが１つの対象画像ＯＩＭＧ（すなわち、原画像ＯＲＩＭＧ）から生成されるため、拡張部２０Ａは、１つの画像ピラミッドＰＩＭＧに対して１つの拡張画像ＥＩＭＧを生成する。このため、縮小画像生成部１４は、複数の縮小画像ＲＩＭＧの生成処理のうち、２回目以降の縮小画像ＲＩＭＧの生成処理では、拡張画像ＥＩＭＧの生成処理、すなわち、拡張部２０Ａの処理を省くことができる。拡張部２０Ａのその他の動作は、図２に示した拡張部２０と同一または同様である。
【０１０１】
積分画像生成部３０Ａは、図５で説明したように、拡張画像ＥＩＭＧの積分画像ＩＩＭＧを生成し、生成した積分画像ＩＩＭＧを示す情報を部分総和行列生成部４０に出力する。縮小画像生成部１４では、１つの画像ピラミッドＰＩＭＧに対して１つの拡張画像ＥＩＭＧが生成されるため、積分画像生成部３０Ａは、１つの画像ピラミッドＰＩＭＧに対して１つの積分画像ＩＩＭＧを生成する。したがって、画像ピラミッドＰＩＭＧに含まれる複数の縮小画像ＲＩＭＧの生成に共通の積分画像ＩＩＭＧが使用される。このため、縮小画像生成部１４は、複数の縮小画像ＲＩＭＧの生成処理のうち、２回目以降の縮小画像ＲＩＭＧの生成処理では、積分画像ＩＩＭＧの生成処理、すなわち、積分画像生成部３０Ａの処理を省くことができる。積分画像生成部３０Ａのその他の動作は、図２に示した積分画像生成部３０と同一または同様である。
【０１０２】
部分総和行列生成部４０は、図２に示した部分総和行列生成部４０と同一または同様である。例えば、部分総和行列生成部４０は、積分画像ＩＩＭＧを示す情報を積分画像生成部３０Ａから受け、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報をフィルタ生成部１５０Ａから受け、縮小率ＲＥＤＲを示す情報をレジスタ１６０Ａから受ける。
【０１０３】
なお、縮小画像生成部１４では、部分総和行列生成部４０は、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報および縮小率ＲＥＤＲを示す情報を縮小画像ＲＩＭＧ毎に受ける。あるいは、部分総和行列生成部４０は、縮小率ＲＥＤＲを示す情報を縮小画像ＲＩＭＧ毎に受ける代わりに、画像ピラミッドＰＩＭＧの所定の階層の縮小率ＲＥＤＲを示す情報をレジスタ１６０Ａから受けてもよい。この場合、部分総和行列生成部４０は、例えば、画像ピラミッドＰＩＭＧの各階層の縮小率ＲＥＤＲを所定の階層の縮小率ＲＥＤＲに基づいて算出する。
【０１０４】
そして、部分総和行列生成部４０は、図４で説明したように、縮小画像ＲＩＭＧの各画素Ｒに対応して割り当てられる部分総和行列ＰＳＭを積分画像ＩＩＭＧ等を用いて生成する。なお、縮小画像生成部１４では、部分総和行列生成部４０は、複数の縮小画像ＲＩＭＧの生成にそれぞれ使用される部分総和行列ＰＳＭを、複数の縮小画像ＲＩＭＧの生成に共通の積分画像ＲＩＭＧを用いて生成する。
【０１０５】
畳み込み部５０は、図２に示した畳み込み部５０と同一または同様である。例えば、畳み込み部５０は、フィルタ行列ＦＩＬＴを示す情報をフィルタ生成部１５０Ａから受け、部分総和行列ＰＳＭを示す情報を部分総和行列生成部４０から受ける。なお、縮小画像生成部１４では、畳み込み部５０は、例えば、フィルタ行列ＦＩＬＴを示す情報を縮小画像ＲＩＭＧ毎に受け、部分総和行列ＰＳＭを示す情報を各縮小画像ＲＩＭＧの画素Ｐ毎に受ける。そして、畳み込み部５０は、フィルタ行列ＦＩＬＴを用いて部分総和行列ＰＳＭに対して畳み込み演算を実行し、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算の結果ＣＯＮＶを画像生成部６２に出力する。
【０１０６】
画像生成部６２は、図２に示した画像生成部６２と同一または同様である。例えば、画像生成部６２は、平均値算出部６４および出力画像生成部６６を有する。平均値算出部６４および出力画像生成部６６は、図２に示した平均値算出部６４および出力画像生成部６６と同一または同様である。
【０１０７】
例えば、平均値算出部６４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとの畳み込み演算の結果ＣＯＮＶを畳み込み部５０から受け、縮小率ＲＥＤＲを示す情報をレジスタ１６０Ａから受ける。なお、縮小画像生成部１４では、平均値算出部６４は、例えば、畳み込み演算の結果ＣＯＮＶを各縮小画像ＲＩＭＧの画素Ｐ毎に受け、縮小率ＲＥＤＲを示す情報を縮小画像ＲＩＭＧ毎に受ける。あるいは、平均値算出部６４は、縮小率ＲＥＤＲを示す情報を縮小画像ＲＩＭＧ毎に受ける代わりに、画像ピラミッドＰＩＭＧの所定の階層の縮小率ＲＥＤＲを示す情報をレジスタ１６０Ａから受けてもよい。この場合、平均値算出部６４は、例えば、画像ピラミッドＰＩＭＧの各階層の縮小率ＲＥＤＲを所定の階層の縮小率ＲＥＤＲに基づいて算出する。
【０１０８】
そして、平均値算出部６４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲとの積を、縮小画像ＲＩＭＧの各画素Ｒの画素値として算出する。
【０１０９】
出力画像生成部６６は、縮小画像ＲＩＭＧの各画素Ｒの画素値を平均値算出部６４から受け、平均値算出部６４から受けた各画素Ｒの画素値を保持する。そして、出力画像生成部６６は、保持している各画素Ｒの画素値を、ループ制御部７０の制御により、縮小画像ＲＩＭＧとして出力管理部１４０Ａに出力する。例えば、出力画像生成部６６は、縮小画像ＲＩＭＧの全ての画素Ｒの画素値を平均値算出部６４から受けたとき、縮小画像ＲＩＭＧの全ての画素Ｒの画素値を、縮小画像ＲＩＭＧとして出力管理部１４０Ａに出力する。
【０１１０】
ループ制御部７０は、図２に示したループ制御部７０と同一または同様である。例えば、ループ制御部７０は、出力画像生成部６６が保持している画素Ｒの画素値の個数が縮小画像ＲＩＭＧの画素数に一致するまで、部分総和行列ＰＳＭを生成する処理を部分総和行列生成部４０に繰り返し実行させる。これにより、部分総和行列生成部４０は、部分総和行列ＰＳＭを生成する処理を、１つの縮小画像ＲＩＭＧが生成されるまで繰り返す。
【０１１１】
このように、縮小画像生成部１４は、メモリ１１０から受けた原画像ＯＲＩＭＧを対象画像ＯＩＭＧとして、対象画像ＯＩＭＧに対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを生成する。これにより、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが異なる複数の縮小画像ＲＩＭＧを含む画像ピラミッドＰＩＭＧが生成される。
【０１１２】
出力管理部１４０Ａは、画像ピラミッドＰＩＭＧを保持する保持領域１４２を有し、縮小画像生成部１４により生成された縮小画像ＲＩＭＧを画像ピラミッドＰＩＭＧの各階層の画像として保持領域１４２に保持する。そして、出力管理部１４０Ａは、保持領域１４２に保持している画像ピラミッドＰＩＭＧをメモリ１２０に格納する。
【０１１３】
レジスタ１６０Ａには、画像ピラミッドＰＩＭＧの階層数ＬＩＮＦを示す情報および対象画像ＯＩＭＧを縮小する際の縮小率ＲＥＤＲを示す情報等が格納される。例えば、レジスタ１６０Ａは、画像ピラミッドＰＩＭＧの階層数ＬＩＮＦを示す情報をフィルタ生成部１５０Ａに出力し、縮小率ＲＥＤＲを示す情報を縮小画像生成部１４内の部分総和行列生成部４０および平均値算出部６４に出力する。
【０１１４】
なお、情報処理装置１０４および縮小画像生成部１４の構成は、図１０に示す例に限定されない。例えば、フィルタ生成部１５０Ａは、予め生成されたフィルタ行列ＦＩＬＴを縮小画像生成部１４に転送してもよい。この場合、フィルタ生成部１５０Ａは、フィルタ行列ＦＩＬＴを生成する処理を省くことができる。また、例えば、レジスタ１６０Ａは、省かれてもよい。あるいは、同一のメモリ内の互いに異なる領域がメモリ１１０、１２０として割り当てられてもよい。また、メモリ１２０内の領域が保持領域１４２に割り当てられてもよい。また、出力管理部１４０Ａ、フィルタ生成部１５０Ａおよびレジスタ１６０Ａ等は、縮小画像生成部１４内に設けられてもよい。
【０１１５】
図１１は、図１０に示した情報処理装置１０４の動作の一例を示す。なお、図１０に示す動作は、ハードウェアのみで実現されてもよく、画像処理プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、画像処理プログラムは、図１０に示す動作をコンピュータに実行させてもよい。図１１に示す動作では、図８に示した動作からステップＳ３００が省かれ、１つの対象画像ＯＩＭＧ（すなわち、原画像ＯＲＩＭＧ）から複数の縮小画像ＲＩＭＧが生成される。ステップＳ２１０ａ、Ｓ２１０ｂは、図８に示したステップＳ２００に対応し、ステップＳ５１０は、図８に示したステップＳ５００に対応する。図８で説明したステップＳと同一または同様のステップＳについては、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
【０１１６】
ステップＳ１１０では、情報処理装置１０４は、メモリ１１０に格納された原画像ＯＲＩＭＧを対象画像ＯＩＭＧとして縮小画像生成部１４に転送する。
【０１１７】
次に、ステップＳ２１０ａでは、フィルタ生成部１５０Ａは、対象画像ＯＩＭＧのフィルタ処理に用いられる複数のフィルタ行列ＦＩＬＴのうち、最大のサイズＦＳＩＺｍａｘのフィルタ行列ＦＩＬＴを縮小画像生成部１４に転送する。例えば、フィルタ生成部１５０Ａは、最大のサイズＦＳＩＺｍａｘのフィルタ行列ＦＩＬＴを示す情報を縮小画像生成部１４内の畳み込み部５０に出力する。また、フィルタ生成部１５０Ａは、フィルタ行列ＦＩＬＴのサイズＦＳＩＺｍａｘを示す情報を縮小画像生成部１４内の拡張部２０Ａおよび部分総和行列生成部４０に出力する。ステップＳ２１０ａの処理が実行された後、情報処理装置１０４の動作は、ステップＳ４０２に移る。
【０１１８】
ステップＳ４０２では、縮小画像生成部１４は、対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する第１の縮小画像生成処理を実行する。第１の縮小画像生成処理は、図９で説明した縮小画像生成処理と同一または同様である。第１の縮小画像生成処理により、最大のサイズＦＳＩＺｍａｘのフィルタ行列ＦＩＬＴを用いてフィルタ処理された画像に対応する対象画像ＯＩＭＧの縮小画像ＲＩＭＧが生成される。ステップＳ４０２の第１の縮小画像生成処理が実行された後、情報処理装置１０４の動作は、ステップＳ５１０に移る。
【０１１９】
ステップＳ５１０では、出力管理部１４０Ａは、縮小画像生成部１４により生成された縮小画像ＲＩＭＧを、保持領域１４２に保持する。これにより、縮小画像生成部１４により生成された縮小画像ＲＩＭＧは、画像ピラミッドＰＩＭＧの各階層の画像として出力管理部１４０の保持領域１４２に保持される。
【０１２０】
次に、ステップＳ６００では、情報処理装置１０４は、画像ピラミッドＰＩＭＧが完成したか否かを判定する。例えば、縮小画像生成部１４は、画像ピラミッドＰＩＭＧの全ての階層の縮小画像ＲＩＭＧを生成したか否かを判定する。画像ピラミッドＰＩＭＧが完成した場合、情報処理装置１０４の動作は、ステップＳ７００に移る。一方、画像ピラミッドＰＩＭＧが完成していない場合、情報処理装置１０４の動作は、ステップＳ２１０ｂに移る。
【０１２１】
ステップＳ２１０ｂでは、フィルタ生成部１５０Ａは、対象画像ＯＩＭＧのフィルタ処理に用いられる複数のフィルタ行列ＦＩＬＴのうち、生成対象の縮小画像ＲＩＭＧに用いられるフィルタ行列ＦＩＬＴを縮小画像生成部１４に転送する。例えば、フィルタ生成部１５０Ａは、フィルタ行列ＦＩＬＴを示す情報を縮小画像生成部１４内の畳み込み部５０に出力し、フィルタ行列ＦＩＬＴのサイズＦＳＩＺを示す情報を縮小画像生成部１４内の拡張部２０Ａおよび部分総和行列生成部４０に出力する。ステップＳ２１０ｂの処理が実行された後、情報処理装置１０４の動作は、ステップＳ４０４に移る。
【０１２２】
ステップＳ４０４では、縮小画像生成部１４は、対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する第２の縮小画像生成処理を実行する。第２の縮小画像生成処理では、ステップＳ４０２の第１の縮小画像生成処理により生成された積分画像ＩＩＭＧが使用される。例えば、第２の縮小画像生成処理は、図９で説明した縮小画像生成処理からステップＳ４１０、Ｓ４２０を省いた処理と同一または同様である。第２の縮小画像生成処理により、対象画像ＯＩＭＧの縮小画像ＲＩＭＧが生成される。ステップＳ４０４の第２の縮小画像生成処理が実行された後、情報処理装置１０４の動作は、ステップＳ５１０に移る。すなわち、ステップＳ２１０ｂ、Ｓ４０４、Ｓ５１０の処理は、画像ピラミッドＰＩＭＧが完成するまで繰り返される。
【０１２３】
ステップＳ７００では、出力管理部１４０は、保持領域１４２に保持している縮小画像ＲＩＭＧを、画像ピラミッドＰＩＭＧとしてメモリ１２０に格納する。このように、縮小画像生成部１４は、メモリ１１０に格納された原画像ＯＲＩＭＧを対象画像ＯＩＭＧとして、対象画像ＯＩＭＧに対する縮小率ＲＥＤＲが互いに異なる複数の縮小画像ＲＩＭＧを生成する。これにより、原画像ＯＲＩＭＧに対する縮小率ＲＥＤＲが異なる複数の縮小画像ＲＩＭＧを含む画像ピラミッドＰＩＭＧが生成される。
【０１２４】
なお、情報処理装置１０４の動作は、図１１に示す例に限定されない。例えば、情報処理装置１０４は、複数のフィルタ行列ＦＩＬＴのうち、最大のサイズＦＳＩＺｍａｘのフィルタ行列ＦＩＬＴを用いる縮小画像ＲＩＭＧ以外の縮小画像ＲＩＭＧを最初に生成してもよい。この場合、例えば、ステップＳ２１０ａにおいて、フィルタ生成部１５０Ａは、対象画像ＯＩＭＧのフィルタ処理に用いられる複数のフィルタ行列ＦＩＬＴのうち、生成対象の縮小画像ＲＩＭＧに用いられるフィルタ行列ＦＩＬＴを縮小画像生成部１４に転送する。さらに、フィルタ生成部１５０Ａは、複数のフィルタ行列ＦＩＬＴのサイズＦＳＩＺのうちの最大のサイズＦＳＩＺｍａｘを示す情報を縮小画像生成部１４内の拡張部２０Ａに出力する。そして、ステップＳ４０２の第１の縮小画像生成処理では、拡張部２０Ａは、フィルタ行列ＦＩＬＴの最大のサイズＦＳＩＺｍａｘに基づいて拡張画像ＥＩＭＧを生成する。
【０１２５】
以上、図１０から図１１に示す実施形態においても、図２から図９に示した実施形態と同様の効果を得ることができる。例えば、縮小画像生成部１４は、フィルタ行列ＦＩＬＴと同じサイズの部分総和行列ＰＳＭを、積分画像ＩＩＭＧ等を用いて縮小画像ＲＩＭＧの画素Ｒ毎に生成する。そして、縮小画像生成部１４は、フィルタ行列ＦＩＬＴと部分総和行列ＰＳＭとを畳み込み演算した結果ＣＯＮＶと縮小率ＲＥＤＲとの積を縮小画像ＲＩＭＧの各画素Ｒの画素値として算出して縮小画像ＲＩＭＧを生成する。このため、フィルタ行列ＦＩＬＴと拡張画像ＥＩＭＧとの畳み込み演算の結果を用いて縮小画像ＲＩＭＧを生成する方法に比べて、畳み込み演算の回数を低減することができ、縮小画像ＲＩＭＧを生成する画像処理の計算量を低減することができる。
【０１２６】
図１２は、画像処理プログラムを実行するハードウェアの一例を示す。なお、図１から図１１で説明した要素と同様の要素については、同様の符号を付し、これ等については、詳細な説明を省略する。例えば、画像処理プログラムは、図１、図２および図１０に示した情報処理装置１００、１０２、１０４の機能をコンピュータＣＰで実現する。すなわち、画像処理プログラムは、図１、図２および図１０に示した縮小画像生成部１０、１２、１４の機能をコンピュータＣＰで実現する。なお、図１２では、対象画像ＯＩＭＧを縮小して縮小画像ＲＩＭＧを生成する画像処理をコンピュータに実行させる画像処理プログラムの擬似コードの一例を括弧内に示す。
【０１２７】
コンピュータＣＰは、例えば、プロセッサＰＵ、メモリＭＥＭ、ハードディスク装置ＨＤＤ、入出力インタフェースＩＦおよび光学ドライブ装置ＯＤＲを有する。プロセッサＰＵ、メモリＭＥＭ、ハードディスク装置ＨＤＤ、入出力インタフェースＩＦおよび光学ドライブ装置ＯＤＲは、バスＢＵＳに接続される。情報処理装置１００、１０２、１０４の機能は、例えば、プロセッサＰＵと、メモリＭＥＭと、ハードディスク装置ＨＤＤと、入出力インタフェースＩＦとにより実現される。
【０１２８】
光学ドライブ装置ＯＤＲは、光ディスク等のリムーバブルディスクＲＤを装着可能であり、装着したリムーバブルディスクＲＤに記録された情報の読み出しおよび記録を実行する。また、コンピュータＣＰは、入出力インタフェースＩＦを介してコンピュータＣＰの外部と通信する。例えば、入出力インタフェースＩＦは、原画像ＯＲＩＩＭＧを受け、プロセッサＰＵ等に転送する。
【０１２９】
メモリＭＥＭは、例えば、コンピュータＣＰのオペレーティングシステムを格納する。また、メモリＭＥＭは、情報処理装置１００、１０２、１０４の動作をプロセッサＰＵが実行するための画像処理プログラム等のアプリケーションプログラムを格納する。なお、画像処理プログラム等のアプリケーションプログラムは、ハードディスク装置ＨＤＤに格納されてもよい。
【０１３０】
また、メモリＭＥＭの一部の領域は、図２等に示したメモリ１１０、１２０に割り当てられてもよい。あるいは、メモリＭＥＭとは別の記憶装置（図示せず）に、図２等に示したメモリ１１０、１２０が割り当てられてもよい。
【０１３１】
画像処理プログラム等のアプリケーションプログラムは、光ディスク等のリムーバブルディスクＲＤに記録して頒布することができる。例えば、コンピュータＣＰは、画像処理プログラム等のアプリケーションプログラムを、リムーバブルディスクＲＤから光学ドライブ装置ＯＤＲを介して読み出し、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。また、コンピュータＣＰは、画像処理プログラム等のアプリケーションプログラムを、インターネット等のネットワークに接続する通信装置（図示せず）を介してダウンロードし、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。
【０１３２】
ここで、図１２の括弧内に示す画像処理プログラムは、ｋ×ｋのフィルタ行列ＦＩＬＴを用いて、ｎ×ｎ画素の対象画像ＯＩＭＧを行方向および列方向に１／ｄｒに縮小する。すなわち、縮小率ＲＥＤＲは、１／（ｄｒ＊ｄｒ）である。擬似コードに示したＳＡＴ（Summed Area Tablet）は、積分画像ＩＩＭＧに対応する。
【０１３３】
図１２に示す画像処理プログラムでは、ＳＡＴ（すなわち、積分画像ＩＩＭＧ）の生成処理で、加算が２＊（ｎ＋ｋ−１）２回実行される。また、ＳＡＴを用いた縮小処理で、加算が５＊ｋ２＊（ｎ／ｄｒ）２回実行され、乗算がｋ２＊（ｎ／ｄｒ）２回実行される。なお、図７に示した比較例では、畳み込み演算が対象画像ＯＩＭＧの画素数（ｎ２）回実行されるため、乗算は、少なくとも、ｋ２＊ｎ２回実行される。したがって、図１２に示す画像処理プログラムでは、図７に示した比較例に比べて、計算量を削減できる。
【０１３４】
画像処理プログラムを実行するハードウェアは、図１２に示す例に限定されない。例えば、コンピュータＣＰは、光学ドライブ装置ＯＤＲが省かれてもよい。また、例えば、コンピュータＣＰは、画像処理プログラム等のアプリケーションプログラムを、光ディスク以外の記憶媒体から読み出し、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。この場合、コンピュータＣＰは、画像処理プログラム等のアプリケーションプログラムが記録された記憶媒体に対応したインタフェースを有する。すなわち、画像処理プログラム等のアプリケーションプログラムは、例えば、光ディスク以外の記憶媒体に記録されてもよい。
【０１３５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３６】
１０、１２、１４‥縮小画像生成部；２０、２０Ａ‥拡張部；３０、３０Ａ‥積分画像生成部；４０‥部分総和行列生成部；５０‥畳み込み部；６０、６２‥画像生成部；６４‥平均値算出部；６６‥出力画像生成部；７０‥ループ制御部；１００、１０２、１０４‥情報処理装置；１１０、１２０‥メモリ；１３０‥入力管理部；１４０、１４０Ａ‥出力管理部；１５０、１５０Ａ‥フィルタ生成部；１６０、１６０Ａ‥レジスタ；ＢＵＳ‥バス；ＣＰ‥コンピュータ；ＨＤＤ‥ハードディスク装置；ＩＦ‥入出力インタフェース；ＭＥＭ‥メモリ；ＯＤＲ‥光学ドライブ装置；ＰＵ‥プロセッサ
【図１】
2018005332.tif 000005
【図２】
2018005332.tif 000006
【図３】
2018005332.tif 000007
【図４】
2018005332.tif 000008
【図５】
2018005332.tif 000009
【図６】
2018005332.tif 000010
【図７】
2018005332.tif 000011
【図８】
2018005332.tif 000012
【図９】
2018005332.tif 000013
【図１０】
2018005332.tif 000014
【図１１】
2018005332.tif 000015
【図１２】
2018005332.tif 000016