画像処理装置、方法、及びプログラム
【課題】サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値のヒストグラムの算術演算値を複数のサブ領域に渡って総和した値を高速に算出する。
【解決手段】処理対象画像の各画素の特徴値を算出し、各ビン別に、特徴値の積分値を付与した積分画像を作成する(S3−2)。各ビン別に、各位置にサブ領域を設定した場合について、サブ領域内の特徴値のヒストグラムの値を、サブ領域内の座標(x、y)に付与したサブ領域積算値画像を生成する。各ビン別に、各位置にサブ領域を設定した場合について、サブ領域内の座標(x、y)において計算されたサブ領域積算値画像の各画素値(ヒストグラムの値)と座標(x、y)に対してサブ領域の大きさのn倍離れた座標において計算されたサブ領域積算値画像の各画素値(ヒストグラムの値)の2乗和を、座標(x、y)に付与したサブ領域積算値積分画像を生成する(S3−3)。
【解決手段】処理対象画像の各画素の特徴値を算出し、各ビン別に、特徴値の積分値を付与した積分画像を作成する(S3−2)。各ビン別に、各位置にサブ領域を設定した場合について、サブ領域内の特徴値のヒストグラムの値を、サブ領域内の座標(x、y)に付与したサブ領域積算値画像を生成する。各ビン別に、各位置にサブ領域を設定した場合について、サブ領域内の座標(x、y)において計算されたサブ領域積算値画像の各画素値(ヒストグラムの値)と座標(x、y)に対してサブ領域の大きさのn倍離れた座標において計算されたサブ領域積算値画像の各画素値(ヒストグラムの値)の2乗和を、座標(x、y)に付与したサブ領域積算値積分画像を生成する(S3−3)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、方法、及びプログラムに係り、特に、処理対象画像について特徴値のヒストグラムを生成する画像処理装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来より、検索対象画像内でテンプレート画像と類似している画像領域を検索する画像処理技術において、類似性を測る為に用いる情報として、テンプレート画像及び検索対象画像内の検索対象領域(サブウィンドウ)から抽出される色や輝度値やエッジなどの特徴値の数をカウントすることによりヒストグラムを作成して用いる手法が知られている。このヒストグラムを作成して用いる手法において、ヒストグラムの作成方法として、検索位置毎にサブウィンドウの各画素から特徴値を逐次カウントする全探索法が最も基本的な処理として使用されている。全探索法では、検索対象画像内の指定された検索位置に所定の大きさのサブウィンドウを設定し、サブウィンドウ内若しくはサブウィンドウを分割して得られる部分領域である各サブ領域内の各画素から抽出される特徴値を逐次カウントして、ヒストグラムを作成する。全探索法では、上記処理を検索対象画像内の各検索位置で実施する。検索位置、サブウィンドウ、及びサブ領域の関係を図1に示す。
【0003】
ヒストグラムの作成処理時間を削減する手法の一つとして、積分画像(非特許文献1参照)を利用したIntegral histogram法(非特許文献2参照)が提案されている。Integral histogram法では、ヒストグラムを構成するビン別に積分画像を作成する。検索対象画像内の各検索位置のサブウィンドウ及びサブ領域において特徴値のヒストグラムを作成する際は、各ビンの積分画像に基づいて、サブウィンドウ若しくはサブ領域等の指定範囲のヒストグラムを算出する。全てのビンの積分画像からヒストグラムを算出することで、サブウィンドウ及びサブ領域のヒストグラムを作成することが可能となる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】P. Viola and M. Jones, 「Robust Real-Time Face Detection」, International Journal of Computer Vision, vol.57, no.2, pp.137-154, 2004.
【非特許文献2】F. Porikli, 「Integral Histogram: A Fast Way to Extract Histograms in Cartesian Spaces」, International Conference on Computer Vision and Pattern Recognition, Vol. 1, pp. 829-836, June 2005.
【発明の概要】
【発明が解決しようとする課題】
【0005】
全探索法では、ヒストグラムを作成する際に、検索箇所毎に抽出範囲であるサブウィンドウ及びサブ領域内の全画素から特徴値を逐次読み込む必要があり、処理時間が掛かる、という問題がある。また、Integral histogram法では、各積分画像において任意の大きさの領域の4隅の座標値を設定して特徴を抽出することで、サブウィンドウおよび各サブ領域のヒストグラムの作成は高速に実施可能である。しかし、サブウィンドウが複数のサブ領域から構成される場合、同じ位置から複数回に渡りサブ領域のヒストグラムを作成する為、積分画像を用いても複数回の算出をする必要があり、余計な処理時間が掛かる、という問題がある。
【0006】
また、検索処理時の類似性を測る尺度として、特徴の積算値以外が必要な尺度、例えば正規化相関を用いた場合、サブ領域のヒストグラムの値の2乗値を全サブ領域において算出し積算する必要があるが、Integral histogram法を用いた場合、検索位置が1画素移るたびに、各サブ領域のヒストグラムを算出すると共に、左記値の2乗値の計算を全サブ領域に渡って実行し、且つ左記2乗値を加算する処理が必要となり、非常に処理時間が掛かる、という問題がある。特徴値の積算値以外を用いる他の類似尺度においても、同様である。
【0007】
本発明は、上記の事情を鑑みてなされたもので、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる画像処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するために本発明に係る画像処理装置は、処理対象画像の各画素について特徴値を算出する特徴値算出手段と、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するサブ領域積算値画像生成手段と、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するサブ領域積算値積分画像生成手段と、を含んで構成されている。
【0009】
本発明に係る画像処理方法は、処理対象画像の各画素について特徴値を算出するステップと、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するステップと、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するステップと、を含むことを特徴とする。
【0010】
本発明によれば、処理対象画像の各画素について特徴値を算出する。そして、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成する。
【0011】
そして、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成する。
【0012】
このように、特徴値の各範囲に対して、サブ領域内の画素の特徴値の頻度値を付与したサブ領域積算値画像と、サブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々と、を総和した総和値、又はサブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値に対して所定の算術演算を施した値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる。
【0013】
本発明に係る画像処理装置は、入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するサブウィンドウ設定手段と、前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するヒストグラム生成手段と、前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出する総和値算出手段と、を更に含むようにすることができる。
【0014】
本発明に係るサブ領域積算値積分画像生成手段は、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0015】
本発明に係る画像処理装置は、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成する積分画像生成手段を更に含み、前記サブ領域積算値画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、前記サブ領域積算値積分画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像及びサブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0016】
上記の積分画像生成手段は、各画素について、前記画素に隣接する画素について既に算出された前記積算値を用いて、前記画素に対する前記積算値を算出して、前記積分画像を生成するようにすることができる。これによって、積分値画像を生成するのにかかる計算時間を短縮することができる。
【0017】
本発明に係る画像処理方法は、入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するステップと、前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するステップと、前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出するステップと、を更に含むようにすることができる。
【0018】
本発明に係る前記サブ領域積算値積分画像を生成するステップは、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0019】
本発明に係る画像処理方法は、前記算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成するステップを更に含み、前記サブ領域積算値画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、前記サブ領域積算値積分画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像及びサブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0020】
本発明に係るプログラムは、コンピュータを、上記の画像処理装置の各手段として機能させるためのプログラムである。
【発明の効果】
【0021】
以上説明したように、本発明の画像処理装置、方法、及びプログラムによれば、特徴値の各範囲に対して、サブ領域内の画素の特徴値の頻度値を付与したサブ領域積算値画像と、サブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々と、を総和した総和値、又はサブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値に対して所定の算術演算を施した値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる、という効果が得られる。
【図面の簡単な説明】
【0022】
【図1】サブウィンドウ及びサブ領域を説明するための図である。
【図2】本発明の実施の形態に係る画像処理装置の構成を示す概略図である。
【図3】本発明の実施の形態に係る画像処理装置におけるヒストグラム算出処理ルーチンの内容を示すフローチャートである。
【図4】本発明の実施の形態に係る画像処理装置におけるサブ領域積算値画像及びサブ領域積算値成分画像の作成処理ルーチンの内容を示すフローチャートである。
【図5】各ビン別のサブ領域積算値画像及びサブ領域積算値を作成する処理の流れを示すフローチャートである。
【図6】積分画像上のサブ領域を示す図である。
【図7】サブ領域内の特徴値の積算値及び特徴値の積算値の2乗和を付与する位置を説明するための図である。
【図8】特徴値の積算値の2乗和を算出する方法を説明するための図である。
【図9】本発明の実施の形態に係る画像処理装置におけるヒストグラム作成処理ルーチンの内容を示すフローチャートである。
【図10】サブ領域積算値積分画像からサブ領域の積算値の2乗和を算出する方法を説明するための図である。
【図11】検索対象画像及びテンプレート画像の例を示す図である。
【図12】特徴量を抽出したい領域を設定する例を示す図である。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、サブウィンドウが複数のサブ領域からなり、検索処理時に用いる類似尺度として正規化相関を用いるために、左記正規化相関の計算に必要な、サブ領域毎のヒストグラムの構成要素となる特徴値の積算値を付与したサブ領域積算値画像を作成すると共に、特徴値の積算値の2乗値の総和値を付与したサブ領域積算値積分画像を作成する画像処理装置に本発明を適用した場合を例に説明する。
【0024】
<システム構成>
図2に示すように、本発明の実施の形態に係る画像処理装置100は、検索対象画像内のサブウィンドウからヒストグラムを算出する。この画像処理装置100は、CPUと、RAMと、後述するヒストグラム算出処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。画像処理装置100は、入力部10と、特徴抽出部20と、ヒストグラム作成部30と、出力部40とを備えている。なお、特徴抽出部20は、特徴値算出手段の一例であり、ヒストグラム作成部30は、サブ領域積算値画像生成手段、サブ領域積算値積分画像生成手段、ヒストグラム作成手段、総和値算出手段、及び積算値画像生成手段の一例である。
【0025】
入力部10には、入力された検索対象画像を受け付ける。
【0026】
特徴抽出部20は、画像の類似性を測る為に用いる特徴として、検索対象画像から各画素について色情報や輝度値やエッジ等の特徴値を抽出する。例えば、色情報の場合、特徴値として、RGB別に、画素値(0−255)を適当な間隔でサンプリングした値を用いる。輝度値の場合も、特徴値として、画素の値(0−255)を適当な間隔でサンプリングした値を用いる。エッジの場合、特徴値として、フィルタ処理等で得られたエッジの角度を適当な間隔でサンプリングした角度別にエッジ強度を表わす値を用いる。抽出された特徴値は、ヒストグラム作成部30に出力される。
【0027】
ヒストグラム作成部30は、本発明の主要部であり、検索対象画像上で位置を1画素ずつ移動させながら、特徴抽出部20から出力された特徴値から、各位置のサブ領域内の画素値(特徴値)のヒストグラム、及び左記ヒストグラムに算術演算を施した値を複数のサブ領域について総和した値を算出し、各位置に格納したサブ領域積算値画像及びサブ領域積算値積分画像を生成する。次に、ヒストグラム作成部30は、検索のリクエストに応じてサブウィンドウが指定された場合、各ビン別に、上記サブ領域積算値画像及びサブ領域積算値積分画像上に設定したサブウィンドウ及び当該サブウィンドウを複数の領域に分割したサブ領域から、必要なヒストグラムの値、及びヒストグラムの値に算術演算を施した値を総和した値を算出し、出力部40へ出力する。なお、サブウィンドウをサブ領域に分割したときの分割数は、予め設定されているものとする。
【0028】
出力部40は、ヒストグラム作成部30により作成されたヒストグラム等を出力する。すなわち、出力部40は、サブウィンドウから抽出されたビン毎のヒストグラムの値、及びヒストグラムの値に算術演算を施した値をビン別に総和した値を出力する。
【0029】
<画像処理装置の作用>
次に、本実施の形態に係る画像処理装置100の作用について説明する。まず、検索対象画像が画像処理装置100に入力された後、画像処理装置100によって、図3に示すヒストグラム算出処理ルーチンが実行される。
【0030】
まず、ステップS1において、入力され検索対象画像を取得し、ステップS2において、検索等の類似性の評価に用いる情報となる特徴値を、検索対象画像の各画素について抽出する。
【0031】
そして、ステップS3において、上記ステップS2で得られた各画素の特徴値から、各ビン別に積分画像を生成する。またビン別の積分画像を用いて、サブ領域内の当該ビンにおけるヒストグラムの値(当該ビンに属する特徴の頻度値)を算出し、左記ヒストグラムの値を各サブ領域の位置に付与したサブ領域積算値画像を作成する。また、当該サブ領域とそのn倍だけ離れた画素における左記ヒストグラムの値の2乗値を総和した値を算出し、左記算出値を各サブ領域の位置に付与したサブ領域積算値積分画像を作成する。
【0032】
そして、検索のリクエストに応じてテンプレート画像が入力されると、ステップS4において、各検索位置においてテンプレート画像に相当する大きさのサブウィンドウをサブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域をサブ領域積算値画像上に設定する。
【0033】
次のステップS5では、設定されたサブウィンドウ及びサブ領域から、ヒストグラムを作成すると共に、ヒストグラムの値に算術演算を施した値の総和値を算出する。そして、ステップS6において、上記ステップS5で作成されたサブ領域毎のヒストグラム、及びサブウィンドウに対する上記の総和値を出力する。
【0034】
次のステップS7において、サブウィンドウが全ての検索位置に走査されたか否かを判定し、全ての検索位置に走査されていない場合には、上記ステップS4へ戻り、サブウィンドウを次の検索位置に設定する。一方、サブウィンドウが全ての検索位置に走査された場合には、ヒストグラム算出処理ルーチンを終了する。
【0035】
上記ステップS3は、図4に示すサブ領域積算値画像及びサブ領域積算値積分画像の作成処理ルーチンによって実現される。
【0036】
ステップS3−1において、検索対象画像から抽出された特徴値から、ビン別に、当該ビンに属する特徴値を各画素について読み込む。そして、ステップS3−2において、各ビン別に読み込んだ特徴値から、各ビン別の積分画像を作成する。
【0037】
ここで、積分画像を作成する方法について説明する。座標(x,y)においてあるビンに属する特徴値の有無を示す値をi(x,y)、当該ビンに対する積分画像の座標(x,y)の値をii(x,y)とすると、ii(x,y)は、x‘≦x及びy’≦yの各画素(原点と(x、y)で形成される矩形領域内の各画素)から抽出される、当該ビンに属する特徴の頻度値(当該ビンに属する特徴値がいくつあるかを示す値)であり、以下の(1)式で定義される値となる。
【0038】
【数1】
【0039】
上記(1)式で表される値は、画像の原点と処理対象の座標(x、y)とを対角とする矩形領域内における、当該ビンに属する特徴値の頻度値(当該ビンにおけるヒストグラムの値)となる。
【0040】
上記(1)式で表されるii(x,y)を、以下の(2)式を用いることにより、高速に算出する事が可能である。
【0041】
【数2】
【0042】
上記(2)式では、対象の画素に隣接する画素について既に算出された、当該ビンに属する特徴値の頻度値を用いて、再帰的にii(x,y)を算出している。
【0043】
上記算出を全ての座標(x,y)において実施して、画素(x,y)に付与することで、積分画像を作成する。また上記処理を全てのビンにおいて実施する。ここで、検索対象画像内で積分画像を求める座標(x,y)は、x,yの値が共に最小となる位置(原点)から開始して、1画素ずつ順に移動(xが増加する方向に移動させた後、yが増加する方向に移動)させることを前提としている。
【0044】
次のステップS3−3において、上記ステップS3−2により作成された各ビン別の積分画像を用いて、各ビン別に、サブ領域積算値画像及びサブ領域積算値積分画像を作成する。
【0045】
これにより、画像処理装置100は、検索対象画像内の任意のサブ領域から、ビン別の特徴値のヒストグラムの値及びそのヒストグラムの値の2乗和を算出することができる。また、画像処理装置100は、テンプレート画像が入力されたときに、検索対象画像内に設定されたテンプレート画像と同じ大きさのサブウィンドウとテンプレート画像のそれぞれについて、算出されたビン別の特徴値のヒストグラムの値及びそのヒストグラムの値の2乗和を用いて、正規化相関を算出する。
【0046】
例えば、検索対象画像の座標(c,d)における正規化相関NCC(c,d)は、以下の式で表わされる。
【0047】
【数3】
【0048】
ここで、a(u,v)はテンプレート画像におけるu番目のサブ領域のヒストグラムのv番目のビンの値である。ここでのサブ領域は、テンプレート画像を分割して得られる各部分領域を指す。b(u,v)は、検索対象画像に設定されたサブウィンドウにおけるu番目のサブ領域のヒストグラムのv番目のビンの値である。Uは、サブ領域の数であり、Vは、各サブ領域毎に作成されるヒストグラムのビンの数である。なお、以下の説明では検索対象画像についてのヒストグラム及びヒストグラムの2乗和の計算を例に説明を行うが、テンプレート画像についてのヒストグラム及びヒストグラムの2乗和も同じ要領で計算することができる。
【0049】
上記ステップS3−3は、図5に示す処理ルーチンによって実現される。
【0050】
ステップS3−3−1において、処理対象のビンを設定し、ステップS3−3−2において、処理対象のビンに対する積分画像を読み込む。そして、ステップS3−3−3において、上記ステップS3−3−2で読み込んだ積分画像上のある位置に、サブ領域の大きさを持つ4隅を設定し、処理対象のサブ領域とする。処理対象のサブ領域の初期位置としては、例えば、サブ領域の1つの隅が、積分画像の原点となるように設定する。
【0051】
次のステップS3−3−4では、処理対象のビンに対する積分画像上の、処理対象のサブ領域から、処理対象のビンに属する特徴値の頻度値(ヒストグラムの値)を算出する。
【0052】
ここで、積分画像から、処理対象のサブ領域方形内の当該ビンに属するヒストグラムの値を算出する方法について図6を用いて説明する。サブ領域(x’,y’)の4隅がA(x,y)、B(x,y)、C(x,y)、D(x,y)の4点で定義されているとする。ここで、A(x)<x’≦B(x)、A(y)<y’≦C(y)、A(x)=C(x)、A(y)=B(y)、B(x)=D(x)、及びC(y)=D(y)である。処理対象のサブ領域内のあるビンに属するヒストグラムの値Σi(x‘,y’)は、以下の(3)式から算出される。
【0053】
【数4】
【0054】
上記ステップS3−3−4で積分画像から算出されたサブ領域内の処理対象のビンに属するヒストグラムの値をs(x,y)とすると、ステップS3−3−5において、算出されたヒストグラムの値s(x,y)を、処理対象のビンに対するサブ領域積算値画像におけるサブ領域の位置を指す座標に付与する。例えば、図7で示すようにサブ領域の左上隅の座標に付与する。
【0055】
次のステップS3−3−6では、積分画像から算出されたサブ領域内のヒストグラムの値s(x,y)を用いて、サブ領域内の各画素のヒストグラムの値の2乗値s2(x,y)を、以下の(4)式で算出する。
【0056】
【数5】
【0057】
そして、ステップS3−3−7において、着目している座標(x,y)からサブ領域の大きさの自然数倍に相当する距離だけ離れた座標(x−n*w, y−m*h)(ただし、サブ領域の大きさをw×hとし、n及びmは自然数とする)で算出された当該座標(x−n*w, y−m*h)におけるサブ領域内のヒストグラムの値の2乗値であるs2(x−n*w,y−n*h)を更に積算して、サブ領域間のヒストグラムの値の2乗値の総和値を算出する。具体的には、座標(x,y)において算出されたサブ領域内のヒストグラムの値の2乗値s2(x,y)に対し、x’≦x及びy’≦yで且つサブ領域の大きさ(w×h)の倍数に相当する距離が離れた座標で算出されたサブ領域のヒストグラム値の2乗和から構成される、サブ領域積算値積分画像における座標(x,y)の値を、ss2(x,y)とすると、ss2(x,y)は以下の(5)式で定義される値となる。
【0058】
【数6】
【0059】
上記(5)式で表される値は、図8において黒色で示す画素におけるヒストグラムの値の2乗値を足し合わせた値となる。ここで、図8の例では、w=3,h=3である。
【0060】
サブ領域積算値の2乗和ss2(x,y)を、以下の(6)式を用いることにより、高速に算出することが可能である。
【0061】
【数7】
【0062】
上記(6)式では、処理対象のサブ領域に隣接するサブ領域について既に算出された、当該ビンに属するヒストグラムの値の2乗値の総和値(2乗和)を用いて、再帰的にss2(x,y)を算出している。
【0063】
ステップS3−3−8では、上記ステップS3−3−7で算出された値ss2(x、y)を、処理対象のビンに対するサブ領域積算値積分画像における着目座標(サブ領域の位置)に付与する。処理対象のサブ領域を設定する位置は、x,yの値が共に最小となる位置(原点)から開始して、1画素ずつ順に移動(xが増加する方向に移動させた後、yが増加する方向に移動)させていくことを前提としている。
【0064】
そして、ステップS3−3−9では、処理対象のサブ領域を、積分画像上の全ての位置に走査したか否かを判定し、全ての位置に走査していない場合には、上記ステップS3−3−3に戻り、次の位置に、処理対象のサブ領域を設定する。一方、処理対象のサブ領域を積分画像上の全ての位置に走査した場合には、ステップS3−3−10に移行する。
【0065】
ステップS3−3−10では、全てのビンについて、上記ステップS3−3−1〜S3−3−9の処理を実行したか否かを判定し、全てのビンについて上記処理を実行していない場合には、上記ステップS3−3−1に戻り、処理を実行していないビンを、処理対象のビンに設定する。一方、全てのビンについて、上記ステップS3−3−1〜S3−3−9の処理を実行した場合には、本処理ルーチンを終了する。
【0066】
上記の処理ルーチンが実行されると、各ビン別に、全ての(x,y)において、サブ領域のヒストグラムの値が算出されて、ビン別のサブ領域積算値画像が作成される。また、各ビン別に、全ての(x,y)において、サブ領域間のヒストグラムの値の2乗和が算出されて、ビン別のサブ領域積算値積分画像が作成される。
【0067】
また、ステップS5は、図9に示すヒストグラム作成処理ルーチンによって実現される。上記ステップS4で設定された検索位置(画素位置)のサブウィンドウ及びサブ領域についてヒストグラムが作成される。例えば、サブウィンドウの左上隅を検索位置とした場合、上記図1に示すように、サブウィンドウ及びサブ領域が設定される。
【0068】
ステップS5−1では、各ビン別に、当該ビンに対するサブ領域積算値画像から、設定されたサブ領域の位置に付与された積算値を読み込み、当該サブ領域のヒストグラムの、当該ビンに対する値とする。そして、ステップS5−2において、各ビン別に、サブウィンドウの4隅の座標を用いて、当該ビンに対するサブ領域積算値積分画像から、サブウィンドウ内に含まれる複数のサブ領域のヒストグラムの値の2乗和を読み込むことにより、各ビン別に、サブ領域のヒストグラムの値の2乗和を算出する。
【0069】
ここで、図10を用いて、サブ領域積算値積分画像から、各ビン別にサブ領域のヒストグラムの値の2乗和を算出する方法を説明する。サブウィンドウ4隅がP(x,y)、Q(x,y)、R(x,y)、S(x,y)の4点で定義されているとする。ここで、P(x)<x”≦Q(x)、P(y)<y”≦R(y)、P(x)=R(x)、P(y)=Q(y)、Q(x)=S(x)、及びR(y)=S(y)、x”はサブウィンドウ内の画素のx軸の座標値、y”はサブウィンドウ内の画素のy軸の座標値である。検索位置(x”,y”)での各ビン別のサブ領域の積算値の2乗和Σs(x”,y”)は、以下の(7)式から算出される。
【0070】
【数8】
【0071】
そして、ステップS5−3に基づいて、上記ステップS5−1で読み込んだ各ビン別のサブ領域のヒストグラムの値に基づいて、サブ領域毎のヒストグラムを作成する。また、上記ステップS5−2で算出した各ビン別のサブ領域のヒストグラムの値の2乗和を、各ビン別のヒストグラムの値の2乗和とし、ヒストグラム作成処理ルーチンを終了する。
【0072】
上記に説明したように本発明の実施の形態に係る画像処理装置100は、検索対象画像から特徴抽出部20で抽出された各画素の特徴値に基づいて、ヒストグラム作成部30によって、各ビン別にサブ領域積算値画像及びサブ領域積算積分画像を作成する。そして、検索処理が実行される場合、各検索位置において、各ビン別にサブ領域積算画像を用いてサブ領域のヒストグラムの構成要素(ヒストグラムのビン別の値)を取得し、検索位置における全ビンのヒストグラムを作成する。また各ビン別にサブ領域積算積分画像を用いてサブウィンドウ内の全サブ領域のヒストグラムの値の2乗和を算出することで、検索位置におけるヒストグラムの2乗和を求める。
【0073】
これにより、本発明の実施の形態に係る画像処理装置100は、検索位置毎にサブ領域の積算値の算出及び2乗値の計算及び積算を繰り返すことなく、検索位置において設定されたサブウィンドウから高速にヒストグラムやヒストグラムの値の2乗和を求めることが可能となる。
【0074】
次に、上記の実施の形態に係る手法を適用して実験を行った結果について説明する。ここでは、上記の実施の形態に係る手法を適用して、類似性を判定する尺度として正規化相関を用いると共に、図11の検索対象画像及びその中の一部を抜き出して作成したテンプレート画像を用いて、検索を実行した。比較手法として、全探索法及びIntegral histogram法を適用して、同様に検索を実行した。また、特徴には各RGB値を4個、8個、16個、32個、43個、64個に量子化した値を用いた。従って、ヒストグラムのビン数は各々12、24、48、96、129、192となる。サブウィンドウ内のサブ領域の数は8×8=64とした。実験結果を以下の表1に示す。各数値は検索の実行時間[ms]を表す。
【0075】
【表1】
【0076】
上記の表1により、全探索法及びIntegral histogram法に対して、上記の実施の形態にかかる手法を用いた検索では、非常に高速な検索が実現出来ており、上記の実施の形態にかかる手法の有効性が分かった。
【0077】
以上説明したように、本実施の形態に係る画像処理装置によれば、各ビンに対して、サブ領域内の画素の特徴値の積算値を付与したサブ領域積算値画像と、原点とサブ領域とを対角とする矩形領域を分割して得られるサブ領域の各々における、サブ領域の特徴値の積算値の2乗和を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、各サブ領域におけるヒスグラムの値の2乗和を高速に算出することができる。
【0078】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0079】
例えば、特徴として色情報、輝度値、エッジ情報を用いたが、当然ながら他の特徴も使用可能であり、本発明による手法は特徴の種別に依存せずに利用可能である。
【0080】
また、上記の実施の形態では、検索位置としてサブウィンドウの左上隅の座標を設定したが、検索処理を通して全サブウィンドウに共通した設定であれば、付与する座標はサブウィンドウ内の任意の位置に設定可能である。
【0081】
また、上記の実施の形態では、サブ領域の積算値をサブ領域の左上隅の座標に付与したが、全サブ領域に共通した設定であれば、付与する座標はサブ領域内の任意の位置に設定可能である。
【0082】
また、上記の実施の形態では、画素値の積算値を算出する際に積分画像を用いたが、当然ながら処理時間は増えるものの、都度画素値の加算処理を実行する手法も使用可能である。
【0083】
また、上記の実施の形態では、類似尺度として正規化相関を用いた場合に必要な、サブ領域のヒストグラムの積算値を2乗した値を各画素に付与して、サブ領域積算値積分画像を作成したが、当然ながら別の類似尺度等に応じた2乗値以外の値を付与した積算画像の作成も可能である。
【0084】
また、上記の実施の形態では、サブ領域の積算値を各サブ領域の座標値に付与したが、当然ながら2乗値を用いたサブ領域積算画像と同様に、サブ領域の積算値を更に複数のサブ領域間で総和した値を付与して、サブ領域積算画像を作成し、利用する事も可能である。
【0085】
また、上記の実施の形態では、サブ領域のヒストグラムの積算値を2乗した値を積算したサブ領域積算値積分画像から、サブウィンドウ内の2乗和を算出したが、当然ながら左記サブ領域積算値積分画像を用いて、任意の個数のサブ領域からなる領域から、左記領域に含まれる2乗和を高速に算出する事も可能である。
【0086】
また、上記の実施の形態では、検索処理に用いるヒストグラムの作成方法について説明したが、当然ながら本発明による手法は検索処理に関わらず、処理対象領域のヒストグラムの作成が必要な処理に利用可能である。例えば、図12に示すように、複数のサブ領域からなる領域を、ヒストグラムを抽出したい領域として設定し、当該領域に関するヒストグラムやヒストグラムの値の2乗和などが必要な処理に利用可能である。
【0087】
また、上記図2における画像処理装置100が備えている入力部10、特徴抽出部20、ヒストグラム作成部30、及び出力部40という各構成は、専用のハードウェアにより実現されるものであってもよく、また、メモリおよびマイクロプロセッサにより実現させるものであってもよい。
【0088】
また、この各構成は、メモリおよびCPU(中央演算装置)により構成され、各構成の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【0089】
また、この各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、各構成による処理が実行されてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0090】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0091】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0092】
10 入力部
20 特徴抽出部
30 ヒストグラム作成部
40 出力部
100 画像処理装置
【技術分野】
【0001】
本発明は、画像処理装置、方法、及びプログラムに係り、特に、処理対象画像について特徴値のヒストグラムを生成する画像処理装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来より、検索対象画像内でテンプレート画像と類似している画像領域を検索する画像処理技術において、類似性を測る為に用いる情報として、テンプレート画像及び検索対象画像内の検索対象領域(サブウィンドウ)から抽出される色や輝度値やエッジなどの特徴値の数をカウントすることによりヒストグラムを作成して用いる手法が知られている。このヒストグラムを作成して用いる手法において、ヒストグラムの作成方法として、検索位置毎にサブウィンドウの各画素から特徴値を逐次カウントする全探索法が最も基本的な処理として使用されている。全探索法では、検索対象画像内の指定された検索位置に所定の大きさのサブウィンドウを設定し、サブウィンドウ内若しくはサブウィンドウを分割して得られる部分領域である各サブ領域内の各画素から抽出される特徴値を逐次カウントして、ヒストグラムを作成する。全探索法では、上記処理を検索対象画像内の各検索位置で実施する。検索位置、サブウィンドウ、及びサブ領域の関係を図1に示す。
【0003】
ヒストグラムの作成処理時間を削減する手法の一つとして、積分画像(非特許文献1参照)を利用したIntegral histogram法(非特許文献2参照)が提案されている。Integral histogram法では、ヒストグラムを構成するビン別に積分画像を作成する。検索対象画像内の各検索位置のサブウィンドウ及びサブ領域において特徴値のヒストグラムを作成する際は、各ビンの積分画像に基づいて、サブウィンドウ若しくはサブ領域等の指定範囲のヒストグラムを算出する。全てのビンの積分画像からヒストグラムを算出することで、サブウィンドウ及びサブ領域のヒストグラムを作成することが可能となる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】P. Viola and M. Jones, 「Robust Real-Time Face Detection」, International Journal of Computer Vision, vol.57, no.2, pp.137-154, 2004.
【非特許文献2】F. Porikli, 「Integral Histogram: A Fast Way to Extract Histograms in Cartesian Spaces」, International Conference on Computer Vision and Pattern Recognition, Vol. 1, pp. 829-836, June 2005.
【発明の概要】
【発明が解決しようとする課題】
【0005】
全探索法では、ヒストグラムを作成する際に、検索箇所毎に抽出範囲であるサブウィンドウ及びサブ領域内の全画素から特徴値を逐次読み込む必要があり、処理時間が掛かる、という問題がある。また、Integral histogram法では、各積分画像において任意の大きさの領域の4隅の座標値を設定して特徴を抽出することで、サブウィンドウおよび各サブ領域のヒストグラムの作成は高速に実施可能である。しかし、サブウィンドウが複数のサブ領域から構成される場合、同じ位置から複数回に渡りサブ領域のヒストグラムを作成する為、積分画像を用いても複数回の算出をする必要があり、余計な処理時間が掛かる、という問題がある。
【0006】
また、検索処理時の類似性を測る尺度として、特徴の積算値以外が必要な尺度、例えば正規化相関を用いた場合、サブ領域のヒストグラムの値の2乗値を全サブ領域において算出し積算する必要があるが、Integral histogram法を用いた場合、検索位置が1画素移るたびに、各サブ領域のヒストグラムを算出すると共に、左記値の2乗値の計算を全サブ領域に渡って実行し、且つ左記2乗値を加算する処理が必要となり、非常に処理時間が掛かる、という問題がある。特徴値の積算値以外を用いる他の類似尺度においても、同様である。
【0007】
本発明は、上記の事情を鑑みてなされたもので、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる画像処理装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するために本発明に係る画像処理装置は、処理対象画像の各画素について特徴値を算出する特徴値算出手段と、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するサブ領域積算値画像生成手段と、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するサブ領域積算値積分画像生成手段と、を含んで構成されている。
【0009】
本発明に係る画像処理方法は、処理対象画像の各画素について特徴値を算出するステップと、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するステップと、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するステップと、を含むことを特徴とする。
【0010】
本発明によれば、処理対象画像の各画素について特徴値を算出する。そして、座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成する。
【0011】
そして、前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成する。
【0012】
このように、特徴値の各範囲に対して、サブ領域内の画素の特徴値の頻度値を付与したサブ領域積算値画像と、サブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々と、を総和した総和値、又はサブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値に対して所定の算術演算を施した値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる。
【0013】
本発明に係る画像処理装置は、入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するサブウィンドウ設定手段と、前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するヒストグラム生成手段と、前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出する総和値算出手段と、を更に含むようにすることができる。
【0014】
本発明に係るサブ領域積算値積分画像生成手段は、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0015】
本発明に係る画像処理装置は、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成する積分画像生成手段を更に含み、前記サブ領域積算値画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、前記サブ領域積算値積分画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像及びサブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0016】
上記の積分画像生成手段は、各画素について、前記画素に隣接する画素について既に算出された前記積算値を用いて、前記画素に対する前記積算値を算出して、前記積分画像を生成するようにすることができる。これによって、積分値画像を生成するのにかかる計算時間を短縮することができる。
【0017】
本発明に係る画像処理方法は、入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するステップと、前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するステップと、前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出するステップと、を更に含むようにすることができる。
【0018】
本発明に係る前記サブ領域積算値積分画像を生成するステップは、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0019】
本発明に係る画像処理方法は、前記算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成するステップを更に含み、前記サブ領域積算値画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、前記サブ領域積算値積分画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成するようにすることができる。これによって、サブ領域積算値積分画像及びサブ領域積算値積分画像を生成するのにかかる計算時間を短縮することができる。
【0020】
本発明に係るプログラムは、コンピュータを、上記の画像処理装置の各手段として機能させるためのプログラムである。
【発明の効果】
【0021】
以上説明したように、本発明の画像処理装置、方法、及びプログラムによれば、特徴値の各範囲に対して、サブ領域内の画素の特徴値の頻度値を付与したサブ領域積算値画像と、サブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々と、を総和した総和値、又はサブ領域内の特定座標(x、y)におけるサブ領域積算値画像の画素値に対して所定の算術演算を施した値と、特定座標(x、y)に対してサブ領域の大きさのn倍だけ離れ、かつ、当該座標より小さい座標におけるサブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、サブ領域における特徴値の積算値に算術演算を施した値を複数のサブ領域に渡って総和した値を高速に算出することができる、という効果が得られる。
【図面の簡単な説明】
【0022】
【図1】サブウィンドウ及びサブ領域を説明するための図である。
【図2】本発明の実施の形態に係る画像処理装置の構成を示す概略図である。
【図3】本発明の実施の形態に係る画像処理装置におけるヒストグラム算出処理ルーチンの内容を示すフローチャートである。
【図4】本発明の実施の形態に係る画像処理装置におけるサブ領域積算値画像及びサブ領域積算値成分画像の作成処理ルーチンの内容を示すフローチャートである。
【図5】各ビン別のサブ領域積算値画像及びサブ領域積算値を作成する処理の流れを示すフローチャートである。
【図6】積分画像上のサブ領域を示す図である。
【図7】サブ領域内の特徴値の積算値及び特徴値の積算値の2乗和を付与する位置を説明するための図である。
【図8】特徴値の積算値の2乗和を算出する方法を説明するための図である。
【図9】本発明の実施の形態に係る画像処理装置におけるヒストグラム作成処理ルーチンの内容を示すフローチャートである。
【図10】サブ領域積算値積分画像からサブ領域の積算値の2乗和を算出する方法を説明するための図である。
【図11】検索対象画像及びテンプレート画像の例を示す図である。
【図12】特徴量を抽出したい領域を設定する例を示す図である。
【発明を実施するための形態】
【0023】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、サブウィンドウが複数のサブ領域からなり、検索処理時に用いる類似尺度として正規化相関を用いるために、左記正規化相関の計算に必要な、サブ領域毎のヒストグラムの構成要素となる特徴値の積算値を付与したサブ領域積算値画像を作成すると共に、特徴値の積算値の2乗値の総和値を付与したサブ領域積算値積分画像を作成する画像処理装置に本発明を適用した場合を例に説明する。
【0024】
<システム構成>
図2に示すように、本発明の実施の形態に係る画像処理装置100は、検索対象画像内のサブウィンドウからヒストグラムを算出する。この画像処理装置100は、CPUと、RAMと、後述するヒストグラム算出処理ルーチンを実行するためのプログラムを記憶したROMとを備えたコンピュータで構成され、機能的には次に示すように構成されている。画像処理装置100は、入力部10と、特徴抽出部20と、ヒストグラム作成部30と、出力部40とを備えている。なお、特徴抽出部20は、特徴値算出手段の一例であり、ヒストグラム作成部30は、サブ領域積算値画像生成手段、サブ領域積算値積分画像生成手段、ヒストグラム作成手段、総和値算出手段、及び積算値画像生成手段の一例である。
【0025】
入力部10には、入力された検索対象画像を受け付ける。
【0026】
特徴抽出部20は、画像の類似性を測る為に用いる特徴として、検索対象画像から各画素について色情報や輝度値やエッジ等の特徴値を抽出する。例えば、色情報の場合、特徴値として、RGB別に、画素値(0−255)を適当な間隔でサンプリングした値を用いる。輝度値の場合も、特徴値として、画素の値(0−255)を適当な間隔でサンプリングした値を用いる。エッジの場合、特徴値として、フィルタ処理等で得られたエッジの角度を適当な間隔でサンプリングした角度別にエッジ強度を表わす値を用いる。抽出された特徴値は、ヒストグラム作成部30に出力される。
【0027】
ヒストグラム作成部30は、本発明の主要部であり、検索対象画像上で位置を1画素ずつ移動させながら、特徴抽出部20から出力された特徴値から、各位置のサブ領域内の画素値(特徴値)のヒストグラム、及び左記ヒストグラムに算術演算を施した値を複数のサブ領域について総和した値を算出し、各位置に格納したサブ領域積算値画像及びサブ領域積算値積分画像を生成する。次に、ヒストグラム作成部30は、検索のリクエストに応じてサブウィンドウが指定された場合、各ビン別に、上記サブ領域積算値画像及びサブ領域積算値積分画像上に設定したサブウィンドウ及び当該サブウィンドウを複数の領域に分割したサブ領域から、必要なヒストグラムの値、及びヒストグラムの値に算術演算を施した値を総和した値を算出し、出力部40へ出力する。なお、サブウィンドウをサブ領域に分割したときの分割数は、予め設定されているものとする。
【0028】
出力部40は、ヒストグラム作成部30により作成されたヒストグラム等を出力する。すなわち、出力部40は、サブウィンドウから抽出されたビン毎のヒストグラムの値、及びヒストグラムの値に算術演算を施した値をビン別に総和した値を出力する。
【0029】
<画像処理装置の作用>
次に、本実施の形態に係る画像処理装置100の作用について説明する。まず、検索対象画像が画像処理装置100に入力された後、画像処理装置100によって、図3に示すヒストグラム算出処理ルーチンが実行される。
【0030】
まず、ステップS1において、入力され検索対象画像を取得し、ステップS2において、検索等の類似性の評価に用いる情報となる特徴値を、検索対象画像の各画素について抽出する。
【0031】
そして、ステップS3において、上記ステップS2で得られた各画素の特徴値から、各ビン別に積分画像を生成する。またビン別の積分画像を用いて、サブ領域内の当該ビンにおけるヒストグラムの値(当該ビンに属する特徴の頻度値)を算出し、左記ヒストグラムの値を各サブ領域の位置に付与したサブ領域積算値画像を作成する。また、当該サブ領域とそのn倍だけ離れた画素における左記ヒストグラムの値の2乗値を総和した値を算出し、左記算出値を各サブ領域の位置に付与したサブ領域積算値積分画像を作成する。
【0032】
そして、検索のリクエストに応じてテンプレート画像が入力されると、ステップS4において、各検索位置においてテンプレート画像に相当する大きさのサブウィンドウをサブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域をサブ領域積算値画像上に設定する。
【0033】
次のステップS5では、設定されたサブウィンドウ及びサブ領域から、ヒストグラムを作成すると共に、ヒストグラムの値に算術演算を施した値の総和値を算出する。そして、ステップS6において、上記ステップS5で作成されたサブ領域毎のヒストグラム、及びサブウィンドウに対する上記の総和値を出力する。
【0034】
次のステップS7において、サブウィンドウが全ての検索位置に走査されたか否かを判定し、全ての検索位置に走査されていない場合には、上記ステップS4へ戻り、サブウィンドウを次の検索位置に設定する。一方、サブウィンドウが全ての検索位置に走査された場合には、ヒストグラム算出処理ルーチンを終了する。
【0035】
上記ステップS3は、図4に示すサブ領域積算値画像及びサブ領域積算値積分画像の作成処理ルーチンによって実現される。
【0036】
ステップS3−1において、検索対象画像から抽出された特徴値から、ビン別に、当該ビンに属する特徴値を各画素について読み込む。そして、ステップS3−2において、各ビン別に読み込んだ特徴値から、各ビン別の積分画像を作成する。
【0037】
ここで、積分画像を作成する方法について説明する。座標(x,y)においてあるビンに属する特徴値の有無を示す値をi(x,y)、当該ビンに対する積分画像の座標(x,y)の値をii(x,y)とすると、ii(x,y)は、x‘≦x及びy’≦yの各画素(原点と(x、y)で形成される矩形領域内の各画素)から抽出される、当該ビンに属する特徴の頻度値(当該ビンに属する特徴値がいくつあるかを示す値)であり、以下の(1)式で定義される値となる。
【0038】
【数1】
【0039】
上記(1)式で表される値は、画像の原点と処理対象の座標(x、y)とを対角とする矩形領域内における、当該ビンに属する特徴値の頻度値(当該ビンにおけるヒストグラムの値)となる。
【0040】
上記(1)式で表されるii(x,y)を、以下の(2)式を用いることにより、高速に算出する事が可能である。
【0041】
【数2】
【0042】
上記(2)式では、対象の画素に隣接する画素について既に算出された、当該ビンに属する特徴値の頻度値を用いて、再帰的にii(x,y)を算出している。
【0043】
上記算出を全ての座標(x,y)において実施して、画素(x,y)に付与することで、積分画像を作成する。また上記処理を全てのビンにおいて実施する。ここで、検索対象画像内で積分画像を求める座標(x,y)は、x,yの値が共に最小となる位置(原点)から開始して、1画素ずつ順に移動(xが増加する方向に移動させた後、yが増加する方向に移動)させることを前提としている。
【0044】
次のステップS3−3において、上記ステップS3−2により作成された各ビン別の積分画像を用いて、各ビン別に、サブ領域積算値画像及びサブ領域積算値積分画像を作成する。
【0045】
これにより、画像処理装置100は、検索対象画像内の任意のサブ領域から、ビン別の特徴値のヒストグラムの値及びそのヒストグラムの値の2乗和を算出することができる。また、画像処理装置100は、テンプレート画像が入力されたときに、検索対象画像内に設定されたテンプレート画像と同じ大きさのサブウィンドウとテンプレート画像のそれぞれについて、算出されたビン別の特徴値のヒストグラムの値及びそのヒストグラムの値の2乗和を用いて、正規化相関を算出する。
【0046】
例えば、検索対象画像の座標(c,d)における正規化相関NCC(c,d)は、以下の式で表わされる。
【0047】
【数3】
【0048】
ここで、a(u,v)はテンプレート画像におけるu番目のサブ領域のヒストグラムのv番目のビンの値である。ここでのサブ領域は、テンプレート画像を分割して得られる各部分領域を指す。b(u,v)は、検索対象画像に設定されたサブウィンドウにおけるu番目のサブ領域のヒストグラムのv番目のビンの値である。Uは、サブ領域の数であり、Vは、各サブ領域毎に作成されるヒストグラムのビンの数である。なお、以下の説明では検索対象画像についてのヒストグラム及びヒストグラムの2乗和の計算を例に説明を行うが、テンプレート画像についてのヒストグラム及びヒストグラムの2乗和も同じ要領で計算することができる。
【0049】
上記ステップS3−3は、図5に示す処理ルーチンによって実現される。
【0050】
ステップS3−3−1において、処理対象のビンを設定し、ステップS3−3−2において、処理対象のビンに対する積分画像を読み込む。そして、ステップS3−3−3において、上記ステップS3−3−2で読み込んだ積分画像上のある位置に、サブ領域の大きさを持つ4隅を設定し、処理対象のサブ領域とする。処理対象のサブ領域の初期位置としては、例えば、サブ領域の1つの隅が、積分画像の原点となるように設定する。
【0051】
次のステップS3−3−4では、処理対象のビンに対する積分画像上の、処理対象のサブ領域から、処理対象のビンに属する特徴値の頻度値(ヒストグラムの値)を算出する。
【0052】
ここで、積分画像から、処理対象のサブ領域方形内の当該ビンに属するヒストグラムの値を算出する方法について図6を用いて説明する。サブ領域(x’,y’)の4隅がA(x,y)、B(x,y)、C(x,y)、D(x,y)の4点で定義されているとする。ここで、A(x)<x’≦B(x)、A(y)<y’≦C(y)、A(x)=C(x)、A(y)=B(y)、B(x)=D(x)、及びC(y)=D(y)である。処理対象のサブ領域内のあるビンに属するヒストグラムの値Σi(x‘,y’)は、以下の(3)式から算出される。
【0053】
【数4】
【0054】
上記ステップS3−3−4で積分画像から算出されたサブ領域内の処理対象のビンに属するヒストグラムの値をs(x,y)とすると、ステップS3−3−5において、算出されたヒストグラムの値s(x,y)を、処理対象のビンに対するサブ領域積算値画像におけるサブ領域の位置を指す座標に付与する。例えば、図7で示すようにサブ領域の左上隅の座標に付与する。
【0055】
次のステップS3−3−6では、積分画像から算出されたサブ領域内のヒストグラムの値s(x,y)を用いて、サブ領域内の各画素のヒストグラムの値の2乗値s2(x,y)を、以下の(4)式で算出する。
【0056】
【数5】
【0057】
そして、ステップS3−3−7において、着目している座標(x,y)からサブ領域の大きさの自然数倍に相当する距離だけ離れた座標(x−n*w, y−m*h)(ただし、サブ領域の大きさをw×hとし、n及びmは自然数とする)で算出された当該座標(x−n*w, y−m*h)におけるサブ領域内のヒストグラムの値の2乗値であるs2(x−n*w,y−n*h)を更に積算して、サブ領域間のヒストグラムの値の2乗値の総和値を算出する。具体的には、座標(x,y)において算出されたサブ領域内のヒストグラムの値の2乗値s2(x,y)に対し、x’≦x及びy’≦yで且つサブ領域の大きさ(w×h)の倍数に相当する距離が離れた座標で算出されたサブ領域のヒストグラム値の2乗和から構成される、サブ領域積算値積分画像における座標(x,y)の値を、ss2(x,y)とすると、ss2(x,y)は以下の(5)式で定義される値となる。
【0058】
【数6】
【0059】
上記(5)式で表される値は、図8において黒色で示す画素におけるヒストグラムの値の2乗値を足し合わせた値となる。ここで、図8の例では、w=3,h=3である。
【0060】
サブ領域積算値の2乗和ss2(x,y)を、以下の(6)式を用いることにより、高速に算出することが可能である。
【0061】
【数7】
【0062】
上記(6)式では、処理対象のサブ領域に隣接するサブ領域について既に算出された、当該ビンに属するヒストグラムの値の2乗値の総和値(2乗和)を用いて、再帰的にss2(x,y)を算出している。
【0063】
ステップS3−3−8では、上記ステップS3−3−7で算出された値ss2(x、y)を、処理対象のビンに対するサブ領域積算値積分画像における着目座標(サブ領域の位置)に付与する。処理対象のサブ領域を設定する位置は、x,yの値が共に最小となる位置(原点)から開始して、1画素ずつ順に移動(xが増加する方向に移動させた後、yが増加する方向に移動)させていくことを前提としている。
【0064】
そして、ステップS3−3−9では、処理対象のサブ領域を、積分画像上の全ての位置に走査したか否かを判定し、全ての位置に走査していない場合には、上記ステップS3−3−3に戻り、次の位置に、処理対象のサブ領域を設定する。一方、処理対象のサブ領域を積分画像上の全ての位置に走査した場合には、ステップS3−3−10に移行する。
【0065】
ステップS3−3−10では、全てのビンについて、上記ステップS3−3−1〜S3−3−9の処理を実行したか否かを判定し、全てのビンについて上記処理を実行していない場合には、上記ステップS3−3−1に戻り、処理を実行していないビンを、処理対象のビンに設定する。一方、全てのビンについて、上記ステップS3−3−1〜S3−3−9の処理を実行した場合には、本処理ルーチンを終了する。
【0066】
上記の処理ルーチンが実行されると、各ビン別に、全ての(x,y)において、サブ領域のヒストグラムの値が算出されて、ビン別のサブ領域積算値画像が作成される。また、各ビン別に、全ての(x,y)において、サブ領域間のヒストグラムの値の2乗和が算出されて、ビン別のサブ領域積算値積分画像が作成される。
【0067】
また、ステップS5は、図9に示すヒストグラム作成処理ルーチンによって実現される。上記ステップS4で設定された検索位置(画素位置)のサブウィンドウ及びサブ領域についてヒストグラムが作成される。例えば、サブウィンドウの左上隅を検索位置とした場合、上記図1に示すように、サブウィンドウ及びサブ領域が設定される。
【0068】
ステップS5−1では、各ビン別に、当該ビンに対するサブ領域積算値画像から、設定されたサブ領域の位置に付与された積算値を読み込み、当該サブ領域のヒストグラムの、当該ビンに対する値とする。そして、ステップS5−2において、各ビン別に、サブウィンドウの4隅の座標を用いて、当該ビンに対するサブ領域積算値積分画像から、サブウィンドウ内に含まれる複数のサブ領域のヒストグラムの値の2乗和を読み込むことにより、各ビン別に、サブ領域のヒストグラムの値の2乗和を算出する。
【0069】
ここで、図10を用いて、サブ領域積算値積分画像から、各ビン別にサブ領域のヒストグラムの値の2乗和を算出する方法を説明する。サブウィンドウ4隅がP(x,y)、Q(x,y)、R(x,y)、S(x,y)の4点で定義されているとする。ここで、P(x)<x”≦Q(x)、P(y)<y”≦R(y)、P(x)=R(x)、P(y)=Q(y)、Q(x)=S(x)、及びR(y)=S(y)、x”はサブウィンドウ内の画素のx軸の座標値、y”はサブウィンドウ内の画素のy軸の座標値である。検索位置(x”,y”)での各ビン別のサブ領域の積算値の2乗和Σs(x”,y”)は、以下の(7)式から算出される。
【0070】
【数8】
【0071】
そして、ステップS5−3に基づいて、上記ステップS5−1で読み込んだ各ビン別のサブ領域のヒストグラムの値に基づいて、サブ領域毎のヒストグラムを作成する。また、上記ステップS5−2で算出した各ビン別のサブ領域のヒストグラムの値の2乗和を、各ビン別のヒストグラムの値の2乗和とし、ヒストグラム作成処理ルーチンを終了する。
【0072】
上記に説明したように本発明の実施の形態に係る画像処理装置100は、検索対象画像から特徴抽出部20で抽出された各画素の特徴値に基づいて、ヒストグラム作成部30によって、各ビン別にサブ領域積算値画像及びサブ領域積算積分画像を作成する。そして、検索処理が実行される場合、各検索位置において、各ビン別にサブ領域積算画像を用いてサブ領域のヒストグラムの構成要素(ヒストグラムのビン別の値)を取得し、検索位置における全ビンのヒストグラムを作成する。また各ビン別にサブ領域積算積分画像を用いてサブウィンドウ内の全サブ領域のヒストグラムの値の2乗和を算出することで、検索位置におけるヒストグラムの2乗和を求める。
【0073】
これにより、本発明の実施の形態に係る画像処理装置100は、検索位置毎にサブ領域の積算値の算出及び2乗値の計算及び積算を繰り返すことなく、検索位置において設定されたサブウィンドウから高速にヒストグラムやヒストグラムの値の2乗和を求めることが可能となる。
【0074】
次に、上記の実施の形態に係る手法を適用して実験を行った結果について説明する。ここでは、上記の実施の形態に係る手法を適用して、類似性を判定する尺度として正規化相関を用いると共に、図11の検索対象画像及びその中の一部を抜き出して作成したテンプレート画像を用いて、検索を実行した。比較手法として、全探索法及びIntegral histogram法を適用して、同様に検索を実行した。また、特徴には各RGB値を4個、8個、16個、32個、43個、64個に量子化した値を用いた。従って、ヒストグラムのビン数は各々12、24、48、96、129、192となる。サブウィンドウ内のサブ領域の数は8×8=64とした。実験結果を以下の表1に示す。各数値は検索の実行時間[ms]を表す。
【0075】
【表1】
【0076】
上記の表1により、全探索法及びIntegral histogram法に対して、上記の実施の形態にかかる手法を用いた検索では、非常に高速な検索が実現出来ており、上記の実施の形態にかかる手法の有効性が分かった。
【0077】
以上説明したように、本実施の形態に係る画像処理装置によれば、各ビンに対して、サブ領域内の画素の特徴値の積算値を付与したサブ領域積算値画像と、原点とサブ領域とを対角とする矩形領域を分割して得られるサブ領域の各々における、サブ領域の特徴値の積算値の2乗和を、積算値として付与したサブ領域積算値積分画像と生成することにより、サブウィンドウが複数のサブ領域からなる場合に、サブ領域毎に特徴値のヒストグラムを高速に算出すると共に、各サブ領域におけるヒスグラムの値の2乗和を高速に算出することができる。
【0078】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0079】
例えば、特徴として色情報、輝度値、エッジ情報を用いたが、当然ながら他の特徴も使用可能であり、本発明による手法は特徴の種別に依存せずに利用可能である。
【0080】
また、上記の実施の形態では、検索位置としてサブウィンドウの左上隅の座標を設定したが、検索処理を通して全サブウィンドウに共通した設定であれば、付与する座標はサブウィンドウ内の任意の位置に設定可能である。
【0081】
また、上記の実施の形態では、サブ領域の積算値をサブ領域の左上隅の座標に付与したが、全サブ領域に共通した設定であれば、付与する座標はサブ領域内の任意の位置に設定可能である。
【0082】
また、上記の実施の形態では、画素値の積算値を算出する際に積分画像を用いたが、当然ながら処理時間は増えるものの、都度画素値の加算処理を実行する手法も使用可能である。
【0083】
また、上記の実施の形態では、類似尺度として正規化相関を用いた場合に必要な、サブ領域のヒストグラムの積算値を2乗した値を各画素に付与して、サブ領域積算値積分画像を作成したが、当然ながら別の類似尺度等に応じた2乗値以外の値を付与した積算画像の作成も可能である。
【0084】
また、上記の実施の形態では、サブ領域の積算値を各サブ領域の座標値に付与したが、当然ながら2乗値を用いたサブ領域積算画像と同様に、サブ領域の積算値を更に複数のサブ領域間で総和した値を付与して、サブ領域積算画像を作成し、利用する事も可能である。
【0085】
また、上記の実施の形態では、サブ領域のヒストグラムの積算値を2乗した値を積算したサブ領域積算値積分画像から、サブウィンドウ内の2乗和を算出したが、当然ながら左記サブ領域積算値積分画像を用いて、任意の個数のサブ領域からなる領域から、左記領域に含まれる2乗和を高速に算出する事も可能である。
【0086】
また、上記の実施の形態では、検索処理に用いるヒストグラムの作成方法について説明したが、当然ながら本発明による手法は検索処理に関わらず、処理対象領域のヒストグラムの作成が必要な処理に利用可能である。例えば、図12に示すように、複数のサブ領域からなる領域を、ヒストグラムを抽出したい領域として設定し、当該領域に関するヒストグラムやヒストグラムの値の2乗和などが必要な処理に利用可能である。
【0087】
また、上記図2における画像処理装置100が備えている入力部10、特徴抽出部20、ヒストグラム作成部30、及び出力部40という各構成は、専用のハードウェアにより実現されるものであってもよく、また、メモリおよびマイクロプロセッサにより実現させるものであってもよい。
【0088】
また、この各構成は、メモリおよびCPU(中央演算装置)により構成され、各構成の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【0089】
また、この各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、各構成による処理が実行されてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0090】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0091】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0092】
10 入力部
20 特徴抽出部
30 ヒストグラム作成部
40 出力部
100 画像処理装置
【特許請求の範囲】
【請求項1】
処理対象画像の各画素について特徴値を算出する特徴値算出手段と、
座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するサブ領域積算値画像生成手段と、
前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するサブ領域積算値積分画像生成手段と、
を含む画像処理装置。
【請求項2】
入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するサブウィンドウ設定手段と、
前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するヒストグラム生成手段と、
前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出する総和値算出手段と、
を更に含む請求項1記載の画像処理装置。
【請求項3】
前記サブ領域積算値積分画像生成手段は、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成する請求項1又は2記載の画像処理装置。
【請求項4】
前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成する積分画像生成手段を更に含み、
前記サブ領域積算値画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、
前記サブ領域積算値積分画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成する請求項1〜請求項3の何れか1項記載の画像処理装置。
【請求項5】
前記積分画像生成手段は、各画素について、前記画素に隣接する画素について既に算出された前記積算値を用いて、前記画素に対する前記積算値を算出して、前記積分画像を生成する請求項4記載の画像処理装置。
【請求項6】
処理対象画像の各画素について特徴値を算出するステップと、
座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するステップと、
前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項7】
入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するステップと、
前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するステップと、
前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出するステップと、
を更に含む請求項6記載の画像処理方法。
【請求項8】
前記サブ領域積算値積分画像を生成するステップは、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成する請求項6又は7記載の画像処理方法。
【請求項9】
前記算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成するステップを更に含み、
前記サブ領域積算値画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、
前記サブ領域積算値積分画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成する請求項6〜請求項8の何れか1項記載の画像処理方法。
【請求項10】
コンピュータを、請求項1〜請求項5の何れか1項記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項1】
処理対象画像の各画素について特徴値を算出する特徴値算出手段と、
座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するサブ領域積算値画像生成手段と、
前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するサブ領域積算値積分画像生成手段と、
を含む画像処理装置。
【請求項2】
入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するサブウィンドウ設定手段と、
前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するヒストグラム生成手段と、
前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出する総和値算出手段と、
を更に含む請求項1記載の画像処理装置。
【請求項3】
前記サブ領域積算値積分画像生成手段は、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成する請求項1又は2記載の画像処理装置。
【請求項4】
前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成する積分画像生成手段を更に含み、
前記サブ領域積算値画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、
前記サブ領域積算値積分画像生成手段は、前記積分画像生成手段によって生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成する請求項1〜請求項3の何れか1項記載の画像処理装置。
【請求項5】
前記積分画像生成手段は、各画素について、前記画素に隣接する画素について既に算出された前記積算値を用いて、前記画素に対する前記積算値を算出して、前記積分画像を生成する請求項4記載の画像処理装置。
【請求項6】
処理対象画像の各画素について特徴値を算出するステップと、
座標が最小となる画素を原点としたとき、原点から座標が大きくなる方向に1画素ずつずらしながら、各座標を着目位置とするサブ領域を設定し、前記特徴値算出手段によって算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、該着目位置の前記サブ領域内における前記範囲に属する特徴値の頻度値を、前記サブ領域内の予め定めた位置の画素値として付与したサブ領域積算値画像を各々生成するステップと、
前記特徴値の各範囲に対して、前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々と、を総和した総和値、又は前記サブ領域内の特定座標(x、y)における前記サブ領域積算値画像の画素値に対して所定の算術演算を施した値と、前記特定座標(x、y)に対して前記サブ領域の大きさのn倍(nは自然数)だけ離れ、かつ、当該座標より小さい座標における前記サブ領域積算値画像の画素値の各々に対して所定の算術演算を施した値の各々と、を総和した総和値を、前記サブ領域内の特定座標(x、y)における積算値として付与したサブ領域積算値積分画像を各々生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項7】
入力されたテンプレート画像に相当する大きさのサブウィンドウを前記サブ領域積算値画像上と前記サブ領域積算値積分画像上に設定し、サブウィンドウを分割して得られる部分領域であるサブ領域を前記サブ領域積算値画像上に設定するステップと、
前記サブ領域積算値画像内に設定された前記サブウィンドウのサブ領域毎に、前記特徴値の各範囲に対する前記サブ領域積算値画像の画素値を要素とするヒストグラムを各々生成するステップと、
前記サブ領域積算値積分画像内に設定された前記サブウィンドウの4隅の座標の画素値に基づいて、前記特徴値の各範囲に対して、前記サブウィンドウ内の各サブ領域における前記総和値を算出するステップと、
を更に含む請求項6記載の画像処理方法。
【請求項8】
前記サブ領域積算値積分画像を生成するステップは、前記処理対象画像内の各位置に前記サブ領域を設定した場合について、前記サブ領域に隣接するサブ領域について既に算出された前記総和値を用いて、前記サブ領域に対する前記総和値を算出して、前記サブ領域内の特定座標(x、y)における積算値として付与した前記サブ領域積算値積分画像を生成する請求項6又は7記載の画像処理方法。
【請求項9】
前記算出された各画素の特徴値に基づいて、前記特徴値の各範囲に対して、前記原点と座標(x、y)を対角とする矩形領域内の前記範囲に属する特徴値の頻度値を、座標(x、y)における頻度値として、各座標について算出し、各画素の前記頻度値を表わす積分画像を各々生成するステップを更に含み、
前記サブ領域積算値画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値画像を生成し、
前記サブ領域積算値積分画像を生成するステップは、前記生成された前記特徴値の各範囲に対する前記積分画像に基づいて、前記特徴値の各範囲に対する前記サブ領域積算値積分画像を生成する請求項6〜請求項8の何れか1項記載の画像処理方法。
【請求項10】
コンピュータを、請求項1〜請求項5の何れか1項記載の画像処理装置の各手段として機能させるためのプログラム。
【図2】
【図3】
【図4】
【図5】
【図6】
【図9】
【図10】
【図12】
【図1】
【図7】
【図8】
【図11】
【図3】
【図4】
【図5】
【図6】
【図9】
【図10】
【図12】
【図1】
【図7】
【図8】
【図11】
【公開番号】特開2012−221102(P2012−221102A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−84561(P2011−84561)
【出願日】平成23年4月6日(2011.4.6)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願日】平成23年4月6日(2011.4.6)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]