以下に、本願の開示する画像処理プログラム、画像処理方法および画像処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1にかかる画像処理装置について説明する。図1は、本実施例1にかかる画像処理装置の構成を示す機能ブロック図である。図1に示すように、画像処理装置100は、カメラ110a、入力部110b、出力部120、記憶部130、制御部140を有する。
カメラ110aは、対象物の画像を撮影する。学習フェーズにおいて、カメラ110aは、学習対象となる対象物の画像を撮影し、撮影した画像のデータを、制御部140に出力する。また、カメラ110aは、認識フェーズにおいて、姿勢の認識対象となる対象物の画像を撮影し、撮影した画像のデータを、制御部140に出力する。以下の説明において、学習対象となる画像のデータを、学習対象画像データと表記する。認識対象となる画像のデータを、認識対象画像データと表記する。
学習対象画像データは、対象物を正面から撮影した画像のデータとする。認識対象画像データは、対象物を任意の方向から撮影した画像のデータとする。学習対象画像データの撮影対象となる対象物および認識対象画像データの撮影対象となる対象物は同一の対象物とする。対象物に多少の凹凸があってもよいが、平面的であることが望ましい。
入力部110bは、各種のデータを画像処理装置100に入力する入力装置である。例えば、入力部110bは、入力キー、タッチパネル等に対応する。出力部120は、制御部140の処理結果を出力する出力装置である。
記憶部130は、学習対象画像データ130a、視点変動画像データ群130b、登録テーブル130c、認識対象画像データ130dを記憶する。記憶部130は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
学習対象画像データ130aは、上記のように、カメラ110aが撮影した学習対象となる画像のデータである。
視点変動画像データ群130bは、対象物を様々なカメラ視点から撮影した画像に相当する画像データ群である。
登録テーブル130cは、学習対象画像データ130a、視点変動画像データ130bから抽出される特徴点に関する各種の情報を保持するテーブルである。登録テーブル130cのデータ構造は、後述する。
認識対象画像データ130dは、上記のように、カメラ110aが撮影した認識対象となる画像のデータである。
制御部140は、データ管理部140a、視点変動画像生成部140b、特徴点抽出部140c、分類部140d、対応付け部140eを有する。制御部140は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部140は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
データ管理部140aは、記憶部130を管理する処理部である。例えば、学習フェーズにおいて、データ管理部140aは、カメラ110aから学習対象画像データを取得し、取得した学習対象画像データを、記憶部130に記憶する。認識フェーズにおいて、データ管理部140aは、カメラ110aから認識対象画像データを取得し、取得した認識対象画像データを、記憶部130に記憶する。
視点変動画像生成部140bは、学習対象画像データ130aを基にして、視点変動画像データ群130bを生成する処理部である。視点変動画像生成部140bは、学習対象画像データ130aに対して、カメラ視点の異なる視点変動画像データを、カメラ視点毎に生成する。
図2は、学習対象画像データと視点変動画像データとの関係を説明するための図である。学習対象画像データ130aは、対象物10の正面のカメラ視点20で対象物10を撮影した画像のデータである。視線変動画像データ群130bは、θ、ψ、φのそれぞれ異なるカメラ視点30a〜30dで対象物10を撮影した画像の各データに対応する。例えば、θ、ψ、φをそれぞれ、ロール角、ピッチ角、ヨー角とする。
視点変動画像生成部140bは、学習対象画像データ130aに対して、θ、ψ、φをパラメータに持つ射影変換を適用することで、視点変動画像データを生成する。視点変動画像生成部140bは、ψおよびφの値を、−60°から60°の範囲で10°毎の間隔で、射影変換のパラメータを設定する。また、視点変動画像生成部140bは、θの値を0°から360°の範囲で、45°毎の間隔で射影変換のパラメータを設定する。
視点変動画像生成部140bは、各パラメータの射影変換を実行して、パラメータ毎に視点変動画像データを生成する。視点変動画像生成部140bは、生成した複数の視点変動画像データを、視点変動画像データ群130bとして、記憶部130に記憶する。
視点変動画像生成部140bが行う射影変換は、従来の如何なる射影変換を用いてもよい。例えば、視点変動画像生成部140bは、文献(金澤靖、金谷健一、’2画像間の特徴点対応の自動探索’、画像ラボ、pp.20-23、2004)に基づいて、射影変換を行う。
特徴点抽出部140cは、学習対象画像データ130aから特徴点を抽出する。また、特徴点抽出部140cは、視点変動画像データ群130bの各視点変動画像データから、特徴点を抽出する。特徴点抽出部140cは、学習対象画像データ130aから抽出した特徴点に関するデータおよび視点変動画像データ群130bから抽出した特徴点に関するデータを、分類部140dに出力する。
特徴点抽出部140cは、例えば、SIFT(Scale Invariant Feature Transform)を利用して、特徴点を抽出する。SIFTは、画像データを走査し、特徴の抽出に適した点を検出する技術である。例えば、特徴点抽出部140cは、画像データを走査し、各部分において、画像のエッジの尖り具合、濃淡値の勾配の具合、勾配変化の方向などの複数の要素を数値化する。そして、各要素の数値が極値を取る部分を特徴点として抽出する。
特徴点抽出部140cは、SIFTを利用して、学習対象画像データ130aから、特徴点を抽出する。図3は、学習対象画像データから抽出した特徴点の一例を示す図である。図3に示す例では、特徴点抽出部140cは、学習対象画像データ130aから、特徴点40A、40B、40Cを抽出する。特徴点抽出部140cは、学習対象画像データ130aからの抽出結果を、分類部140dに出力する。
図4は、学習対象画像データからの特徴点の抽出結果の一例を示す図である。図4に示すように、この抽出結果1Aは、特徴点の識別情報と、学習対象画像データ上の座標とを対応付けている。
特徴点抽出部140cは、SIFTを利用して、視点変動画像データ群130bに含まれる各視点変動画像データから、特徴点を抽出する。図5は、視点変動画像データ群から抽出した特徴点の一例を示す図である。図5に示す例では、視点変動画像データ群130bには、視点変動画像データ13a、13b、13c、13dが含まれている。
特徴点抽出部140cは、視点変動画像データ13aから、特徴点1a、1bを抽出する。特徴点抽出部140cは、視点変動画像データ13bから、特徴点1c、1dを抽出する。特徴点抽出部140cは、視点変動画像データ13cから、特徴点1e、1f、1gを抽出する。特徴点抽出部140cは、視点変動画像データ13dから、特徴点1h、1iを抽出する。特徴点抽出部140cは、視点変動画像データ群130bからの抽出結果を、分類部140dに出力する。
図6は、視点変動画像データからの特徴点の抽出結果の一例を示す図である。図6に示すように、この抽出結果1Bは、特徴点の識別情報と、視点変動画像データ上の座標とを対応付けている。また、特徴点抽出部140cは、特徴点に各要素の数値を、抽出結果1Bに対応付ける。ここで、各要素の数値は、例えば、画像のエッジの尖り具合、濃淡値の勾配の具合、勾配変化の方向などをそれぞれ数値化したものである。
分類部140dは、視点変動画像データ群130bから抽出された複数の特徴点を分類する処理部である。例えば、分類部140dは、抽出結果1Aと、抽出結果1Bとを基にして、特徴点を分類する。
分類部140dは、抽出結果1Bの視点変動画像データ上の座標を、学習対象画像データ上の座標に変換する。分類部140dは、射影変換の逆行列を、視点変動画像データ上の座標に適用することで、学習対象画像データ上の座標に変換する。図7は、変換結果の一例を示す図である。
図7に示すように、変換結果1Cは、識別情報、座標、変換座標、各要素を対応付ける。このうち、変換座標は、射影変換の逆行列により変換された特徴点の座標である。
分類部140dは、図4の抽出結果1Aの座標と、図7の変換結果1Cの変換座標との距離に応じて、視点変動画像データから抽出した各特徴点を分類する。例えば、視点変動画像データから抽出したある特徴点の変換座標が、特徴点40A〜40Cのうち、特徴点40Aの座標に最も近い場合には、かかる特徴点が特徴点40Aに分類する。分類部140dは、上記処理を、視点変動画像データから抽出した各特徴点に対して実行し、特徴点40A、特徴点40B、特徴点40Cの何れかに分類する。
なお、分類部140dは、特徴点の変換座標が、特徴点40A〜40Cの座標から所定の閾値以上離れている場合には、かかる特徴点を分類対象から除外する。例えば、所定の閾値を、2画素とする。
分類部140dは、視点変動画像データから抽出した各特徴点を分類した後、分類した特徴点群毎に、特徴空間上の重心座標を求める。図8は、特徴空間上の重心座標を説明するための図である。例えば、図8のx軸は、特徴点の要素1に対応し、y軸は特徴点の要素2に対応し、z軸は特徴点の要素3に対応する。ここでは、一例として、3次元で特徴空間を示すが、特徴点の要素がn個の場合には、特徴空間は、n次元となる。また、図8において、丸印は、特徴点40Aに分類された特徴点に対応する。三角印は、特徴点40Bに分類された特徴点に対応する。四角印は、特徴点40Cに分類された特徴点に対応する。
分類部140dは、特徴点40Aに分類された各特徴点に基づいて、特徴空間上の重心2Aを求める。分類部140dは、特徴点40Bに分類された各特徴点に基づいて、特徴空間上の重心2Bを求める。分類部140dは、特徴点40Cに分類された各特徴点に基づいて、特徴空間上の重心2Cを求める。
分類部140dは、特徴点40Aに分類された各特徴点に基づいて、共分散を求める。また、分類部140dは、特徴点40Bに分類された各特徴点に基づいて、共分散を求める。分類部140dは、特徴点40Cに分類された各特徴点に基づいて、共分散を求める。なお、分類部140dは、共分散の代わりに、標準偏差を求めてもよい。
分類部140dは、上記した処理の結果を、登録テーブル130cに登録する。図9は、本実施例1の登録テーブルのデータ構造の一例を示す図である。図9に示すように、登録テーブル130cは、クラスタ番号、座標、重心座標、共分散を有する。
図9のクラスタ番号は、分類した特徴点群を一意に識別する番号である。例えば、特徴点40Aに分類された特徴点群のクラスタ番号を1とする。特徴点40Bに分類された特徴点群をクラスタ番号2とする。特徴点40Cに分類された特徴点分をクラスタ番号3とする。
図9の座標は、学習対象画像データ130aから抽出した特徴点の座標である。例えば、図9の座標(x1、y1)は、特徴点40Aの座標である。図9の重心座標は、図8に示した重心座標に対応するものである。例えば、重心座標(xg1、yg1、zg1)は、クラスタ番号1に対応する各特徴点の特徴空間上の座標である。共分散は、分類された特徴点群毎の共分散である。例えば、共分散「v1」は、クラスタ番号1に対応する各特徴点の共分散である。
なお、分類部140dは、分類された特徴点群の数が、所定の数より少ない場合には、かかる特徴点群を、分類対象から除外してもよい。例えば、分類部は、特徴点40Cに分類された特徴点の数が、所定の数より少ない場合には、特徴点40Aに分類される各特徴点を登録テーブル130cから除外する。
対応付け部140eは、登録テーブル130cを基にして、認識対象画像データ130dの特徴点と、学習対象画像データ130aの特徴点とを対応付ける処理部である。
対応付け部140eは、SIFTを利用して、認識対象画像データ130dから、特徴点を抽出する。対応付け部140eは、認識対象画像データ130dから抽出した特徴点の特徴空間上の座標と、登録テーブル130cの重心座標とを比較し、最も座標間の距離が短い重心座標に対応するクラスタ番号を判定する。対応付け部140eは、判定したクラスタ番号の座標と、認識対象画像データ130dの特徴点とを対応付ける。
例えば、対応付け部140eは、クラスタ番号1〜3の重心座標のうち、特徴点の座標とクラスタ番号1の重心座標との距離が最も近ければ、クラスタ番号1と判定する。この場合には、対応付け部140eは、認識対象画像データの特徴点と、クラスタ番号1の座標(x1、y1)とを対応付ける。クラスタ番号1の座標(x1、y1)は、図3の特徴点40Aの座標である。
対応付け部140eは、認識対象画像データ130dから抽出した各特徴点に対して、上記処理を実行し、実行結果を出力部120に出力する。対応付け部140eがかかる処理を実行することで、認識対象画像データ130dの特徴点と、学習対象画像データ130aの特徴点とが対応付けられる。
なお、対応付け部140eは、マハラノビス距離を用いて、認識対象画像データ130dの特徴点と、学習対象画像データ130aの特徴点とを対応付けてもよい。例えば、対応付け部140eは、共分散に対応する重みを設定する。対応付け部140eは、共分散の値が大きいほど、小さい値を重みに設定する。例えば、共分散v1、v2、v3の重みを、g1、g2、g3とする。各共分散の大小関係がv1>v2>v3の場合には、重みはg1<g2<g3となる。
対応付け部140eは、クラスタ番号1の座標と特徴点の座標との距離にg1を乗算した値G1と、クラスタ番号2の座標と特徴点の座標との距離にg2を乗算した値G2と、クラスタ番号3の座標と特徴点の座標との距離にg3を乗算した値G3とを算出する。そして、対応付け部140eは、値G1〜G3のうち、最小となる値に対応するクラスタ番号を判定する。対応付け部140eは、判定したクラスタ番号の座標と、認識対象画像データ130dの特徴点とを対応付ける。マハラノビス距離を利用すると、共分散の値が大きいクラスタ番号ほど、対応付けされやすくなる。
次に、本実施例1にかかる画像処理装置100の学習フェーズの処理手順および認識フェーズの処理手順について順に説明する。図10は、本実施例1の学習フェーズの処理手順を示すフローチャートである。図10に示す処理は、例えば、学習対象画像データ130aが記憶部130に記憶されたことを契機に実行される。
図10に示すように、画像処理装置100は、学習対象画像データ130aを取得し(ステップS101)、視点変動画像データ群130bを生成する(ステップS102)。画像処理装置100は、学習対象画像データ130aから特徴点を抽出する(ステップS103)。
画像処理装置100は、各視点変動画像データから特徴点を抽出する(ステップS104)。画像処理装置100は、各視点変動画像データから抽出した特徴点の座標を、学習対象画像データの座標系に変換する(ステップS105)。
画像処理装置100は、各特徴点を分類し(ステップS106)、登録テーブル130cに各種情報を登録する(ステップS107)。
図11は、本実施例1の認識フェーズの処理手順を示すフローチャートである。図11に示す処理は、例えば、認識対象画像データ130dが記憶部130に記憶されたことを契機に実行される。
画像処理装置100は、認識対象画像データ130dを取得し(ステップS201)、認識対象画像データ130dから特徴点を抽出する(ステップS202)。画像処理装置100は、認識対象画像データ130dの特徴点と、登録テーブル130cとを基にして、特徴点の対応付けを行う(ステップS203)。
次に、本実施例1にかかる画像処理装置100の効果について説明する。画像処理装置100は、学習対象画像データ130aおよびカメラ視点の異なる視点変動画像データ群130dから特徴点を抽出し、各特徴点を分類して、登録テーブル130cを生成する。画像処理装置100は、登録テーブル130cの各特徴点群の重心座標と、認識対象画像データ130bから抽出した特徴点の座標とを比較して、学習対象画像データ130aの特徴点と認識対象画像データ130dの特徴点とを対応付ける。このため、画像処理装置100によれば、各特徴点群の重心座標と、認識対象画像データ130dから抽出した特徴点の座標との比較より、各特徴点を対応付けられるので、各画像の座標を対応付ける場合の計算量を削減することができる。
また、画像処理装置100は、マハラノビス距離を用いて、各特徴点を対応付けるので、各特徴点の分散具合を考慮して、正確に各画像の座標を対応付けることができる。
本実施例2にかかる画像処理装置について説明する。図12は、本実施例2にかかる画像処理装置の構成を示す機能ブロック図である。図12に示すように、画像処理装置200は、カメラ210a、入力部210b、出力部220、記憶部230、制御部240を有する。
カメラ210a、入力部210b、出力部220に関する説明は、図1に示したカメラ110a、入力部110b、出力部120に関する説明と同様である。
記憶部230は、学習対象画像データ230a、視点変動画像データ群230b、登録テーブル230c、認識対象画像データ230dを記憶する。記憶部230は、例えば、RAM、ROM、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
学習対象画像データ230aは、実施例1の学習対象画像データ130aに対応する。視点変動画像データ群230bは、実施例1の視点変動画像データ群130bに対応する。認識対象画像データ230dは、実施例1の認識対象画像データ130dに対応する。
登録テーブル230cは、学習対象画像データ230aおよび視点変動画像データ群230bから抽出される特徴点に関する各種の情報を保持するテーブルである。登録テーブル230cのデータ構造は、後述する。
制御部240は、データ管理部240a、視点変動画像生成部240b、特徴点抽出部240c、分類部240d、対応付け部240eを有する。制御部240は、例えば、ASICや、FPGAなどの集積装置に対応する。また、制御部240は、例えば、CPUやMPU等の電子回路に対応する。
データ管理部240aは、記憶部230を管理する処理部である。例えば、学習フェーズにおいて、データ管理部240aは、カメラ210aから学習対象画像データを取得し、取得した学習対象画像データを、記憶部230に記憶する。認識フェーズにおいて、データ管理部240aは、カメラ210aから認識対象画像データを取得し、取得した認識対象画像データを、記憶部230に記憶する。
視点変動画像生成部240bは、学習対象画像データ230aを基にして、視点変動画像データ群230bを生成する処理部である。視点変動画像生成部240bの具体的な処理は、実施例1の視点変動画像生成部140bの処理と同様である。
特徴点抽出部240cは、学習対象画像データ230aから特徴点を抽出する。また、特徴点抽出部240cは、視点変動画像データ群230bの各視点変動画像データから、特徴点を抽出する。特徴点抽出部240cは、学習対象画像データ230aから抽出した特徴点に関するデータおよび視点変動画像データ群230bから抽出した特徴点に関するデータを、分類部240dに出力する。
特徴点抽出部240cの具体的な処理は、実施例1の特徴点抽出部140cの処理と同様である。特徴点抽出部240cは、図4に示した抽出結果1Aおよび図6に示した抽出結果1Bを分類部240dに出力する。
分類部240dは、視点変動画像データ群230bから抽出された複数の特徴点を分類する処理部である。分類部240dは、抽出結果1Aと、抽出結果1Bとを基にして、特徴点を分類する。
特に、実施例2の分類部240dは、実施例1の分類部140dが分類した特徴点を、更に分類する。分類部240dが、視点変動画像データから抽出した各特徴点を、特徴点40A、特徴点40B、特徴点40Cの何れかに分類するまでの処理は、実施例1の分類部140dと同様である。
図13は、実施例2にかかる分類部の処理を説明するための図である。ここでは、分類部240dが、特徴点40Aに分類した各特徴点を更に分類する場合を例にして説明する。分類部240dは、各特徴点に対してk-meansを適用することで、特徴点をグループ3A〜3Cに分類する。分類部240dは、グループ毎に、各特徴点の重心k1−1〜k3−1を求める。各重心をキーポイントと表記する。
ここで、分類部240dが利用するk-meansによる処理の一例を説明する。分類部240dは、各特徴点にランダムにクラスタを割り当て、クラスタ毎の重心を算出する。分類部240dは、各特徴点のクラスタを、一番近い重心のクラスタに変更する。分離部240dは、各特徴点のクラスタが変化しなくなるまで、上記処理を繰り返すことで、特徴点を複数のグループに分類する。
分類部240dは、特徴点40Aに分類した各特徴点と同様にして、特徴点40Bに分類した各特徴点および特徴点40Cに分類した各特徴点を更に分類する。分類部240dは、分類した結果を、登録テーブル230cに登録する。
なお、分類部240dは、k-meansにより更に分類したグループに含まれる特徴点に基づいて、グループ毎に共分散値を算出し、登録テーブル230cに登録する。
図14は、本実施例2の登録テーブルのデータ構造の一例を示す図である。図14に示すように、この登録テーブル230cは、クラスタ番号、座標、キー番号、重心座標、共分散を有する。
図14のクラスタ番号は、分類した特徴点群を一意に識別する番号である。例えば、特徴点40Aに分類された特徴点群のクラスタ番号を1とする。特徴点40Bに分類された特徴点群をクラスタ番号2とする。特徴点40Cに分類された特徴点分をクラスタ番号3とする。
図14の座標は、学習対象画像データ230aから抽出した特徴点の座標である。例えば、図14の座標(x1、y1)は、特徴点40Aの座標である。キー番号は、キーポイントを一意に識別する番号である。重心座標は、キーポイントの重心座標に対応する。共分散は、k-meansにより更に分類したグループに含まれる特徴点の共分散値である。
対応付け部240eは、登録テーブル230cを基にして、認識対象画像データ230dの特徴点と、学習対象画像データ230aの特徴点とを対応付ける処理部である。
対応付け部240eは、SIFTを利用して、認識対象画像データ230dから、特徴点を抽出する。対応付け部240eは、認識対象画像データ230dから抽出した特徴点の特徴空間上の座標と、登録テーブル230cの重心座標とを比較し、最も座標間の距離が短い重心座標に対応するクラスタ番号を判定する。対応付け部240eは、判定したクラスタ番号の座標と、認識対象画像データ230dの特徴点とを対応付ける。
対応付け部240eは、キー番号k1−1〜k1−3の重心座標の何れかと、特徴点との距離が最も短い場合には、該特徴点は、クラスタ番号1に対応すると判定する。対応付け部240eは、キー番号k2−1〜k2−3の重心座標の何れかと、特徴点との距離が最も短い場合には、該特徴点は、クラスタ番号2に対応すると判定する。対応付け部240eは、キー番号k3−1〜k3−3の重心座標の何れかと、特徴点との距離が最も短い場合には、該特徴点は、クラスタ番号3に対応すると判定する。
対応付け部240eは、認識対象画像データ230dから抽出した各特徴点に対して、上記処理を実行し、実行結果を出力部220に出力する。対応付け部240eがかかる処理を実行することで、認識対象画像データ230dの特徴点と、学習対象画像データ230aの特徴点とが対応付けられる。
なお、対応付け部240eは、実施例1と同様にして、マハラノビス距離を用いて、認識対象画像データ230dの特徴点と、学習対象画像データ230aの特徴点とを対応付けてもよい。
次に、本実施例2にかかる画像処理装置200の効果について説明する。画像処理装置200は、k-meansを利用して、実施例1で分類した特徴点群を更に細かく分類する。このため、特徴空間上で特徴点が歪んで分布している場合や、分離した分布をしている場合であっても、正確に認識対象画像データ230dの特徴点と、学習対象画像データ230aの特徴点とを対応付けることができる。
本実施例3にかかる画像処理装置について説明する。図15は、本実施例3にかかる画像処理装置の構成を示す機能ブロック図である。図15に示すように、画像処理装置300は、カメラ310a、入力部310b、出力部320、記憶部330、制御部340を有する。
カメラ310a、入力部310b、出力部320に関する説明は、図1に示したカメラ110a、入力部110b、出力部120に関する説明と同様である。
記憶部330は、学習対象画像データ330a、視点変動画像データ群330b、登録テーブル330c、認識対象画像データ330dを記憶する。記憶部330は、例えば、RAM、ROM、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
学習対象画像データ330aは、実施例1の学習対象画像データ130aに対応する。視点変動画像データ群330bは、実施例1の視点変動画像データ群130bに対応する。認識対象画像データ330dは、実施例1の認識対象画像データ130dに対応する。
登録テーブル330cは、学習対象画像データ330aおよび視点変動画像データ群330bから抽出される特徴点に関する各種の情報を保持するテーブルである。登録テーブル330cのデータ構造は、後述する。
制御部340は、データ管理部340a、視点変動画像生成部340b、特徴点抽出部340c、分類部340d、対応付け部340eを有する。制御部340は、例えば、ASICや、FPGAなどの集積装置に対応する。また、制御部340は、例えば、CPUやMPU等の電子回路に対応する。
データ管理部340aは、記憶部330を管理する処理部である。例えば、学習フェーズにおいて、データ管理部340aは、カメラ310aから学習対象画像データを取得し、取得した学習対象画像データを、記憶部330に記憶する。認識フェーズにおいて、データ管理部340aは、カメラ310aから認識対象画像データを取得し、取得した認識対象画像データを、記憶部330に記憶する。
視点変動画像生成部340bは、学習対象画像データ330aを基にして、視点変動画像データ群330bを生成する処理部である。視点変動画像生成部340bの具体的な処理は、実施例1の視点変動画像生成部140bの処理と同様である。
特徴点抽出部340cは、学習対象画像データ330aから特徴点を抽出する。また、特徴点抽出部340cは、視点変動画像データ群330bの各視点変動画像データから、特徴点を抽出する。特徴点抽出部340cは、学習対象画像データ330aから抽出した特徴点に関するデータおよび視点変動画像データ群330bから抽出した特徴点に関するデータを、分類部340dに出力する。
特徴点抽出部340cの具体的な処理は、実施例1の特徴点抽出部140cの処理と同様である。特徴点抽出部340cは、図4に示した抽出結果1Aおよび図6に示した抽出結果1Bを分類部340dに出力する。
分類部340dは、視点変動画像データ群330bから抽出された複数の特徴点を分類する処理部である。分類部340dは、抽出結果1Aと、抽出結果1Bとを基にして、特徴点を分類する。
特に、実施例3の分類部340dは、実施例1の分類部140dが分類した各特徴点群の重心座標を比較し、重心座標の近い特徴点群をまとめ、まとめた特徴点群に対して、k-meansを適用することで、重心座標が類似する特徴点群を分類し直す。分類部340dが、視点変動画像データから抽出した各特徴点を、特徴点40A、特徴点40B、特徴点40Cの何れかに分類するまでの処理は、実施例1の分類部140dと同様である。
図16、図17は、実施例3にかかる分類部の処理を説明するための図である。図16において、丸印は、特徴点40Aに分類された特徴点に対応する。三角印は、特徴点40Bに分類された特徴点に対応する。四角印は、特徴点40Cに分類された特徴点に対応する。
分類部340dは、各特徴点群の重心2A〜2Cの距離を比較し、重心間の距離が閾値未満となる重心の組を判定する。本実施例3では、一例として、重心2Aと、重心2Bとの距離が閾値未満となる場合について説明する。
分類部340dは、判定した重心2Aに対応する特徴点群と、重心2Bに対応する特徴点群に対して、k-meansを実行する。ここで、重心2Aに対応する特徴点群は、特徴点40Aに分類された丸印の各特徴点である。重心2Bに対応する特徴点群は、特徴点40Bに分類された三角印の各特徴点である。
分類部340dが、k-meansを実行すると、図17に示すように各特徴点がグループ4A〜4Eに分類される。分類部340dは、グループ毎に、各特徴点の重心k1〜k5を求める。各重心をキーポイントと表記する。また、分類部340dは、グループ毎に、各特徴点の共分散を算出する。
図17を参照すると、グループ4A、4Bは、丸印の特徴点のみを含む。このため、分類部340dは、グループ4A、4Bを、特徴点40Aに対応付ける。グループ4Aのクラスタ番号を1、グループ4Bのクラスタ番号を2とする。
図17を参照すると、グループ4Cは、丸印の特徴点および三角印の特徴点を含む。この場合には、分類部340dは、グループ4Cを、特徴点40A、特徴点40Bの双方と対応付ける。グループ4Cのクラスタ番号を3とする。
図17を参照すると、グループ4D、4Eは、三角印の特徴点のみを含む。このため、分類部340dは、グループ4D、4Eを、特徴点40Bに対応付ける。グループ4Dのクラスタ番号を4、グループ4Eのクラスタ番号を5とする。
なお、分類部340dは、四角印の各特徴点のクラスタ番号を6とし、重心をk6とする。k6は、図16の2Cに対応するものとする。
分類部340dは、分類した結果を、登録テーブル330cに登録する。図18は、本実施例3の登録テーブルのデータ構造の一例を示す図である。この登録テーブル330cは、クラスタ番号、キー番号、構成データ数、座標、重心座標、共分散を有する。
図18のクラスタ番号は、分類した特徴点を一意に識別する番号である。クラスタ番号1、2は、特徴点40Aに分類された特徴点群のクラスタ番号である。クラスタ番号3は、上記のように、特徴点40Aまたは特徴点40Bに分類された特徴点群のクラスタである。クラスタ番号4、5は、特徴点40Bに分類された特徴点群のクラスタ番号である。クラスタ番号6は、特徴点40Cに分類された特徴点群のクラスタ番号である。
図18のキー番号は、各特徴点群のキーポイントを一位に識別する番号である。構成データ数は、各グループに含まれる特徴点の数に対応する。なお、同一のグループに異なる種類の特徴点が含まれる場合には、種類毎の特徴点の数が登録される。例えば、クラスタ番号3に対応する特徴点群は、丸印の特徴点と、三角印の特徴点を含むため、特徴点の種類毎に数が登録される。
図18の座標は、学習対象画像データ330aから抽出した特徴点の座標である。例えば、座標(x1、y1)は、特徴点40Aの座標である。座標(x2、y2)は、特徴点40Bの座標である。座標(x3、y3)は、特徴点40Cの座標である。重心座標は、キーポイントの重心座標に対応する。共分散は、k-meansにより更に分類したグループに含まれる特徴点の共分散値である。
対応付け部340eは、登録テーブル330cを基にして、認識対象画像データ330dの特徴点と、学習対象画像データ330aの特徴点とを対応付ける処理部である。
対応付け部340eは、SIFTを利用して、認識対象画像データ330dから、特徴点を抽出する。対応付け部340eは、認識対象画像データ330dから抽出した特徴点の特徴空間上の座標と、登録テーブル330cの重心座標とを比較し、最も座標間の距離が短い重心座標に対応するクラスタ番号を判定する。対応付け部340eは、判定したクラスタ番号の座標と、認識対象画像データ330dの特徴点とを対応付ける。
対応付け部340eは、キー番号k1、k2の重心座標の何れかと、特徴点との距離が最も近い場合には、該特徴点は、学習対象画像データ330a上の特徴点40Aに対応すると判定する。対応付け部340eは、キー番号k4、k5の重心座標の何れかと、特徴点との距離が最も近い場合には、該特徴点は、学習対象画像データ330a上の特徴点40Bに対応すると判定する。対応付け部340eは、キー番号k6の重心座標の何れかと、特徴点との距離が最も近い場合には、該特徴点は、学習対象画像データ330a上の特徴点40Cに対応すると判定する。
なお、対応付け部340eは、キー番号k3の重心座標と、特徴点との距離が最も近い場合には、該特徴点は、学習対象画像データ330a上の特徴点40Aまたは特徴点40Bの何れかに対応すると判定する。認識対象画像データ330dの特徴点が、学習対象画像データ330a上の複数の特徴点に対応付けられた場合には、対応付け部340eは、特徴点全体として、誤差が最も少ない特徴点を最終的に対応付ける。
例えば、対応付け部340eは、最小二乗法等を基にして、特徴点40Aに対応付けた場合の誤差と、特徴点40Bに対応付けた場合の誤差とを比較し、誤差の少ない方の特徴点に、認識対象画像データ330dの特徴点を対応付ける。
なお、対応付け部340eは、実施例1と同様にして、マハラノビス距離を用いて、認識対象画像データ330dの特徴点と、学習対象画像データ330aの特徴点とを対応付けてもよい。
次に、本実施例3にかかる画像処理装置300の効果について説明する。画像処理装置300は、複数の特徴点に対応する可能性がある場合には、認識対象画像データ330dの特徴点を、学習対象画像データ330aの複数の特徴点に対応付ける。そして、画像処理装置300は、全体の特徴点との関係から、複数の特徴点に対応付けた特徴点を、単一の特徴点に絞り込む。このため、認識対象画像データ330dの特徴点を、無理矢理、単一の特徴点に対応付けることが無くなり、正確に、認識対象画像データ330dの特徴点を、学習対象画像データ330aの複数の特徴点に対応付けることができる。
次に、実施例に示した情報処理装置100、200、300と同様の機能を実現する情報処理プログラムを実行するコンピュータの一例を説明する。図19は、画像処理プログラムを実行するコンピュータの一例を示す図である。
図19に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータの入力を受け付ける入力装置402と、ディスプレイ403を有する。また、コンピュータ400は、記憶媒体からプログラム等を読取る読み取り装置404と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置405とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM406と、ハードディスク装置407を有する。そして、各装置401〜407は、バス408に接続される。
ハードディスク装置407は、例えば、視点変動画像生成プログラム407a、特徴点抽出プログラム407b、分類プログラム407c、対応付けプログラム407dを有する。CPU401は、各プログラム407a〜407dを読み出して、RAM406に展開する。
視点変動画像生成プログラム407aは、視点変動画像生成プロセス406aとして機能する。特徴点抽出プログラム407bは、特徴点抽出プロセス406bとして機能する。分類プログラム407cは、分類プロセス406cとして機能する。対応付けプログラム407dは、対応付けプロセス406dとして機能する。
例えば、視点変動画像生成プロセス406aは、視点変動画像生成部140b、240b、340bに対応する。特徴点抽出プロセス406bは、特徴点抽出部140c、240c、340cに対応する。分類プロセス406cは、分類部140d、240d、340dに対応する。対応付けプロセス406dは、対応付け部140e、240e、340eに対応する。
なお、各プログラム407a〜407dについては、必ずしも最初からハードディスク装置407に記憶させておかなくてもよい。例えば、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ400がこれらから各プログラム407a〜407dを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
画像を正面のカメラ視点から撮影した学習対象画像を射影変換することで、前記学習対象画像に対するカメラ視点の異なる視点変動画像を複数生成し、
前記学習対象画像および複数の前記視点変動画像から特徴点を抽出し、
前記学習対象画像から抽出した各特徴点に対して、複数の前記視点変動画像から抽出した各特徴点を対応付けることで、複数の前記視点変動画像から抽出した各特徴点を複数の特徴点群に分類し、
分類した特徴点群を含む領域を登録テーブルに登録し、
認識対象画像を取得し、該認識対象画像から特徴点を抽出し、
前記認識対象画像から抽出した特徴点の位置と、前記登録テーブルの前記特徴点群の領域との関係に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける
各処理を実行させることを特徴とする画像処理プログラム。
(付記2)前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける処理は、前記領域に含まれる特徴点群の重心と、前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記1に記載の画像処理プログラム。
(付記3)前記登録テーブルに登録する処理は、特徴点群に含まれる各特徴点の分布広がりを更に登録し、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける処理は、前記領域に含まれる特徴点群の重心と、前記分布広がりの重み付けをした前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記1または2に記載の画像処理プログラム。
(付記4)前記分布広がりは、標準偏差または分散であることを特徴とする付記3に記載の画像処理プログラム。
(付記5)前記特徴点群に分類する処理は、前記学習対象画像の一つの特徴点に対して、複数の特徴点群に分類することを特徴とする付記1〜4のいずれか一つに記載の画像処理プログラム。
(付記6)前記特徴点群に分類する処理は、前記学習対象画像の複数の特徴点に対して、一つの特徴点群に分類することを特徴とする付記1〜4のいずれか一つに記載の画像処理プログラム。
(付記7)コンピュータが実行する画像処理方法であって、
画像を正面のカメラ視点から撮影した学習対象画像を射影変換することで、前記学習対象画像に対するカメラ視点の異なる視点変動画像を複数生成し、
前記学習対象画像および複数の前記視点変動画像から特徴点を抽出し、
前記学習対象画像から抽出した各特徴点に対して、複数の前記視点変動画像から抽出した各特徴点を対応付けることで、複数の前記視点変動画像から抽出した各特徴点を複数の特徴点群に分類し、
分類した特徴点群を含む領域を登録テーブルに登録し、
認識対象画像を取得し、該認識対象画像から特徴点を抽出し、
前記認識対象画像から抽出した特徴点の位置と、前記登録テーブルの前記特徴点群の領域との関係に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける
各処理を実行することを特徴とする画像処理方法。
(付記8)前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける処理は、前記領域に含まれる特徴点群の重心と、前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記7に記載の画像処理方法。
(付記9)前記登録テーブルに登録する処理は、特徴点群に含まれる各特徴点の分布広がりを更に登録し、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける処理は、前記領域に含まれる特徴点群の重心と、前記分布広がりの重み付けをした前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記7または8に記載の画像処理方法。
(付記10)前記分布広がりは、標準偏差または分散であることを特徴とする付記9に記載の画像処理方法。
(付記11)前記特徴点群に分類する処理は、前記学習対象画像の一つの特徴点に対して、複数の特徴点群に分類することを特徴とする付記7〜10のいずれか一つに記載の画像処理方法。
(付記12)前記特徴点群に分類する処理は、前記学習対象画像の複数の特徴点に対して、一つの特徴点群に分類することを特徴とする付記7〜10のいずれか一つに記載の画像処理方法。
(付記13)画像を正面のカメラ視点から撮影した学習対象画像を射影変換することで、前記学習対象画像に対するカメラ視点の異なる視点変動画像を複数生成する視点変動画像生成部と、
前記学習対象画像および複数の前記視点変動画像から特徴点を抽出する特徴点抽出部と、
前記学習対象画像から抽出した各特徴点に対して、複数の前記視点変動画像から抽出した各特徴点を対応付けることで、複数の前記視点変動画像から抽出した各特徴点を複数の特徴点群に分類し、分類した特徴点群を含む領域を登録テーブルに登録する分類部と、
認識対象画像を取得し、該認識対象画像から特徴点を抽出し、前記認識対象画像から抽出した特徴点の位置と、前記登録テーブルの前記特徴点群の領域との関係に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付ける対応付け部と
を有することを特徴とする画像処理装置。
(付記14)前記対応付け部は、前記領域に含まれる特徴点群の重心と、前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記13に記載の画像処理装置。
(付記15)前記分類部は、前記登録テーブルの特徴点群に含まれる各特徴点の分布広がりを更に登録し、前記対応付け部は、前記領域に含まれる特徴点群の重心と、前記分布広がりの重み付けをした前記認識対象画像の特徴点との距離に基づいて、前記認識対象画像の特徴点と前記学習対象画像の特徴点とを対応付けることを特徴とする付記13または14に記載の画像処理装置。
(付記16)前記分布広がりは、標準偏差または分散であることを特徴とする付記15に記載の画像処理装置。
(付記17)前記分類部は、前記学習対象画像の一つの特徴点に対して、複数の特徴点群に分類することを特徴とする付記13〜16のいずれか一つに記載の画像処理装置。
(付記18)前記分類部は、前記学習対象画像の複数の特徴点に対して、一つの特徴点群に分類することを特徴とする付記13〜16のいずれか一つに記載の画像処理装置。