JP2012043308A - 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム - Google Patents
位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム Download PDFInfo
- Publication number
- JP2012043308A JP2012043308A JP2010185575A JP2010185575A JP2012043308A JP 2012043308 A JP2012043308 A JP 2012043308A JP 2010185575 A JP2010185575 A JP 2010185575A JP 2010185575 A JP2010185575 A JP 2010185575A JP 2012043308 A JP2012043308 A JP 2012043308A
- Authority
- JP
- Japan
- Prior art keywords
- feature point
- model
- image
- dimensional
- object model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Abstract
【課題】画像内の3次元物体の姿勢変動およびサイズの変動に対してロバストに識別する。
【解決手段】対象物体に対応するモデルの特徴点の特徴量とモデルに定められた3次元座標の原点から特徴点への3次元方向ベクトルとにより記述される物体モデルを入力するモデル入力工程と、対象物体を撮像した画像を取得する取得工程と、特徴量に基づいて、物体の特徴点の、画像上における2次元特徴点の位置を検出する検出工程と、物体モデルの位置および姿勢を変更する変更工程と、変更された各位置および姿勢における物体モデルの特徴点および3次元座標の原点を投影特徴点および投影原点として画像上に投影する投影工程と、投影原点から2次元特徴点への第1方向ベクトルと投影原点から投影特徴点への第2方向ベクトルとの一致度を算出する算出工程と、算出された各特徴点についての一致度に基づく評価値が最大となる物体モデルの位置および姿勢を対象物体の位置姿勢として決定する決定工程とを有する。
【選択図】 図8
【解決手段】対象物体に対応するモデルの特徴点の特徴量とモデルに定められた3次元座標の原点から特徴点への3次元方向ベクトルとにより記述される物体モデルを入力するモデル入力工程と、対象物体を撮像した画像を取得する取得工程と、特徴量に基づいて、物体の特徴点の、画像上における2次元特徴点の位置を検出する検出工程と、物体モデルの位置および姿勢を変更する変更工程と、変更された各位置および姿勢における物体モデルの特徴点および3次元座標の原点を投影特徴点および投影原点として画像上に投影する投影工程と、投影原点から2次元特徴点への第1方向ベクトルと投影原点から投影特徴点への第2方向ベクトルとの一致度を算出する算出工程と、算出された各特徴点についての一致度に基づく評価値が最大となる物体モデルの位置および姿勢を対象物体の位置姿勢として決定する決定工程とを有する。
【選択図】 図8
Description
本発明は、2次元画像中に存在する3次元的な物体の姿勢の変動等に対して、ロバストに検出や識別を行うための位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラムに関する。
2次元画像中に存在する物体の検出や識別を行う手法として、現在までに様々な手法が提案されている。例えば、非特許文献1に開示されている手法に代表されるように、物体の局所的な領域の外観と、その配置関係をモデルとして利用するといった手法が挙げられる。また、非特許文献2に開示されている手法に代表されるように、物体の局所的な特徴の出現頻度をモデルとして利用するといった手法も挙げられる。これは一般に、Bags of keypoints、 Bags of Features、Bags of Words等と称される。
非特許文献1に開示されている手法のように、物体の局所的な外観とその配置関係をモデルとして利用する手法では、基本的に、この配置関係を2次元画像上の配置関係として確率的に記述する。そのため、3次元的な物体の識別において、物体の向き(姿勢)が大きく変化するような場合への対応が困難である。これに対し、非特許文献2に開示されている手法のように、物体の局所的な特徴の出現頻度をモデルとして利用する手法では、各局所的な特徴の配置関係を考慮していない。そのため、非特許文献1のような手法と比較して、物体の向きの変動に対応できる可能性が高い。
しかし、非特許文献1の手法をベースとし、そこに局所的な特徴の配置関係の情報を効果的に付加することにより、識別性能の向上を実現させた非特許文献3に開示されている手法が示唆するように、局所的な特徴の配置関係は識別性能の向上に重要であると考えられる。ただし、非特許文献3に開示されているの手法では、非特許文献1の手法と同様に、2次元画像上の配置関係を情報として用いるため、非特許文献1と同様に、物体の向きの変動への対応が困難である。3次元的な物体の向きの変動に対応する手法としては、非特許文献4に開示されている3Dモデルに局所的な特徴を貼り付けたモデルを用いた手法が挙げられる。また、特許文献1のように、物体の向きが様々に変動した時の、それぞれの向きについて、局所的な特徴の配置関係をモデル化し、それを用いて、まず大まかに識別を行って、その後、3次元的なエッジの配置関係をモデル化したものにより識別する手法もある。
非特許文献4や特許文献1に代表される上記手法は、局所的な特徴の3次元的な配置関係や、様々な物体の向きに対応した、局所的な特徴の2次元的な配置関係を用いているので、3次元物体の向きの変動に対応することができる。しかし、画像内における物体のサイズの変動に対応するためには、画像を様々に拡大、縮小させた画像を用いるか、モデル自体を拡大、縮小しなければならない。画像内における物体のサイズの変動は、例えば、物体とカメラの距離の変動や、カメラの焦点距離の変動により発生する。
R. Fergus, P. Perona, A. Zisserman, "Object Class Recognition by Unsupervised Scale-Invariant Learning", IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 2, pp.264-271, 2003
G. Csurka, C. R. Dance, L. Fan, J. Willamowski, C. Bray, "Visual Categorization with Bags of Keypoints", ECCV Workshop on Statistical Learning in Computer Vision, pp.59-74, 2004
K. Grauman, T. Darrell, "The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features", IEEE International Conference on Computer Vision, Vol. 2, pp 1458-1465, 2005
P. Yan, S. M. Khan, M. Shah, "3D Model based Object Class Detection in An Arbitrary View", IEEE International Conference on Computer Vision, pp. 1-6, 2007
G. Reitmayr, T. W. Drummond, "Going out: Robust Model-based Tracking for Outdoor Augmented Reality", IEEE/ACM International Symposium on Mixed and Augmented Reality, pp. 109-118, 2006
D. G. Lowe, "Object Recognition from Local Scale-Invariant Features", IEEE International Conference on Computer Vision, Vol. 2, pp. 1150-1157, 1999
T. Kadir, M. Brady, "Saliency, Scale and Image Description", International Journal of Computer Vision, Vol. 45, No. 2, pp. 83-105, 2001
上記のように、従来の技術では、物体の3次元的な向きの変動に対応可能であり、且つ、画像内における物体のサイズの変動に対して、ロバストに2次元画像中に存在する3次元的な物体の検出や識別を行うことはできないという課題がある。
上記の課題に鑑み、本発明は、2次元画像中に存在する3次元的な物体を、物体の姿勢(物体の3次元的な向き)の変動に対応しつつ、画像内における物体のサイズの変動に対して、ロバストに検出や識別を行うことを目的とする。
上記目的を達成する、本発明に係る位置姿勢決定方法は、
モデル入力手段が、対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた3次元座標の原点から前記特徴点への3次元方向ベクトルと、により記述される物体モデルを入力するモデル入力工程と、
取得手段が、前記対象物体を撮像した画像を取得する取得工程と、
検出手段が、前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を2次元特徴点の位置として検出する検出工程と、
変更手段が、前記物体モデルの位置および姿勢をそれぞれ変更する変更工程と、
投影手段が、前記変更工程で変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記3次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影工程と、
算出手段が、前記投影原点から前記2次元特徴点への第1方向ベクトルと、前記投影原点から前記投影特徴点への第2方向ベクトルとの一致度を算出する算出工程と、
決定手段が、前記算出工程で算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定工程と、
を有することを特徴とする。
モデル入力手段が、対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた3次元座標の原点から前記特徴点への3次元方向ベクトルと、により記述される物体モデルを入力するモデル入力工程と、
取得手段が、前記対象物体を撮像した画像を取得する取得工程と、
検出手段が、前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を2次元特徴点の位置として検出する検出工程と、
変更手段が、前記物体モデルの位置および姿勢をそれぞれ変更する変更工程と、
投影手段が、前記変更工程で変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記3次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影工程と、
算出手段が、前記投影原点から前記2次元特徴点への第1方向ベクトルと、前記投影原点から前記投影特徴点への第2方向ベクトルとの一致度を算出する算出工程と、
決定手段が、前記算出工程で算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定工程と、
を有することを特徴とする。
本発明によれば、2次元画像中に存在する3次元的な物体を、物体の姿勢(物体の3次元的な向き)の変動に対応しつつ、画像内における物体のサイズの変動に対してロバストに検出や識別を行うことができる。
(第1実施形態)
図1を参照して、1辺10cmの立方体であって、8個の各頂点それぞれが、ユニークなカラーでマーキングされている物体10の物体モデルを記述する方法の例について説明する。また、この物体10をカラーカメラで撮影した画像に対して、この物体3が画像上のどの位置に、どのような姿勢で存在するかを識別する方法の例についても説明する。
図1を参照して、1辺10cmの立方体であって、8個の各頂点それぞれが、ユニークなカラーでマーキングされている物体10の物体モデルを記述する方法の例について説明する。また、この物体10をカラーカメラで撮影した画像に対して、この物体3が画像上のどの位置に、どのような姿勢で存在するかを識別する方法の例についても説明する。
物体10は、上述の通り、1辺10cmの立方体で、8個の各頂点(図1中の、頂点101から頂点108にそれぞれ対応する)それぞれが、ユニークなカラーでマーキングされているものである。ここでいうユニークなカラーとは、例えば、カラーカメラで物体10を撮影した画像中から、所定の色相範囲である領域を抽出する。そして、その領域の重心位置を求めるといった単純な画像処理により特定の頂点の、画像上での位置を検出できるようなカラーといった意味である。上述の例のように、色相範囲を用いるのであれば、例えば各頂点のそれぞれが、360度の色相を8分割した時の、それぞれの色相に対応する彩度の高いカラーでマーキングされているといったものである。ここで彩度の高いカラーとしたのは、彩度が低い場合、色相の値が不安定になるためである。本実施形態では、具体的には、0度から45度おきに、頂点101を0度、頂点102を45度、頂点103を90度、頂点104を135度、頂点105を180度、頂点106を225度、頂点107を270度、頂点108を315度とする。そして、それぞれの色相に対応する、彩度の高いカラーでマーキングされているものとする。また、物体10における、頂点101から頂点108以外の面(全部で6面)の部分は、全て白い色であるとする。以上説明したような物体10について、物体モデルを記述する方法の例を具体的に説明する。
図2(a)を参照して、第1実施形態に係る物体モデルを記述する装置の処理ブロック図について説明する。また、図2(b)を参照して、第1実施形態に係る物体モデルを記述する方法の処理フローを示した図について説明する。まず、ステップS251において、物体座標系設定部200は、モデル化対象となる物体に対して、3次元の物体座標系を設定する。つまり、本実施形態では、図1に示した物体10に対して、3次元座標系を設定する。ここでの3次元座標系の設定を、図1を用いて説明する。まず、3次元座標系の原点を、図1の原点110に示したように、物体10の重心位置(頂点101と頂点107を結ぶ線分の中点位置)に設定する。この座標系の原点の位置は、基本的には任意の位置を設定しても構わないが、本実施形態で示すように、物体の概略中心位置に設定することが好ましい。次いで、3次元座標系の3つの座標軸を、図1のx’軸111、y’軸112、z’軸113に示したように設定する。具体的には、x’軸111は、原点110から、頂点101、頂点102、頂点103、頂点104が成す正方形の重心位置へ向かう方向に設定する。またy’軸112は、原点110から、頂点103、頂点104、頂点108、頂点107が成す正方形の重心位置へ向かう方向に設定する。同様に、z’軸113は、原点110から、頂点101、頂点104、頂点108、頂点105が成す正方形の重心位置へ向かう方向に設定する。本実施形態では、上記のような3次元座標系において3つの座標軸を設定したが、基本的に各軸の方向は任意であり、3つの軸が直交するような座標軸であれば、どのように座標軸を設定しても構わない。また、本実施形態では、3次元座標系として直交座標系を用いているが、本発明はこれに限るものではなく、3次元空間中の1点の位置が、一意に記述可能な座標系であれば、例えば、斜交座標系や、極座標系等、その他の3次元座標系を用いても構わない。以上のように、物体座標系設定部200は、モデル化対象となる物体に対して3次元の物体座標系を設定する処理を行う。
次に、ステップS252において、特徴点位置決定部201は、モデル化対象となる物体が持つ特徴点それぞれについて、物体座標系設定部200で定めた3次元座標系における3次元位置を求める処理を行う。本実施形態では、物体10の8個の頂点を特徴点とするため、8個の頂点それぞれについて、物体座標系設定部200で定めた3次元座標系における3次元位置を求めることになる。具体的には、モデル化対象である図1の物体10は、上述の通り、1辺10cmの立方体であるので、単位をcmとした時、例えば頂点101は、(x’、y’、z’)=(5、−5、5)となる。同様に、頂点102から頂点108までの3次元位置を求めると、以下の表1のようになる(3次元位置の単位はcmである)。
特徴点位置決定部201は、このように、モデル化対象となる物体が持つ特徴点(本実施形態では、8個の頂点)それぞれについて、物体座標系設定部200で定めた3次元座標系における3次元位置を求める。続いて、ステップS252において、特徴点方向算出部202は、特徴点位置決定部201で求めた各特徴点の3次元位置に基づき、物体座標系設定部200により定められた3次元座標系の原点から、各特徴点への3次元的な方向を各特徴点について求める。本実施形態では、3次元的な方向を、方位角θおよび仰角φの2つの変数で表現する。図3を参照して、この方位角θと仰角φの定義について説明する。図3の原点310は、図1の原点110に対応し、物体座標系設定部200により定められた3次元座標系の原点である。同様に、物体座標系設定部200により定められた3次元座標系のx’軸111、y’軸112、z’軸113は、それぞれx’軸311、y’軸312、z’軸313に対応する。ここで、図3に示した、ある特徴点30に対する方位角θ、仰角φは、それぞれ、円弧33、および、円弧34に示した部分の角度に対応する。具体的には、特徴点30の3次元位置を(X’、Y’、Z’)とした時、まず、特徴点30を、x’−z’平面(x’軸311とz’軸313により構成される平面)に投影した、投影点32の位置を求める。この投影点32は、単純に、x’−z’平面に投影するだけなので、投影点32の3次元位置は、(X’、0、Z’)である。この時、方位角θは、z’軸313方向から、x’軸311方向への回転方向を正とし、z’軸313方向に対する、原点310から投影点32へ向かう方向までの回転角となる。図3に図示した例では、ここでの方位角θは、凡そ45度程度となる。具体的には、この方位角θは、式(1)により求められる。
次に、仰角φは、y’軸312の値が正の方向(図3中では、x’−z’平面より下の方向)を正とし、原点310から投影点32へ向かう方向に対する、原点310から特徴点30へ向かう方向までの回転角となる。図3に示した例では、ここでの仰角φは、凡そ−60度程度となる。この仰角φについては、次の式(2)により求められる。
特徴点方向算出部202は、上記のような方位角θと仰角φを、8個の各特徴点に対して求める。具体的には、例えば頂点101であれば、3次元位置が(5、−5、5)であるので、方位角θは、θ=arctan(5/5)=45度となり、仰角φに関しては、φ=arctan(−5/(52+52)0.5)=arctan(−1/√2)≒−35.26度となる。同様に、頂点102から頂点108まで、それぞれの方位角θ、および仰角φを求めると、以下の表2のようになる。なお、方位角θ、および、仰角φの単位はDegree(度)である。また、仰角φの、約−35.26はarctan(−1/√2)、また、約35.26はarctan(1/√2)である。
上記のように、特徴点方向算出部202は、特徴点位置決定部201により求められた各特徴点の3次元位置に基づき、物体座標系設定部200により定められた3次元座標系の原点から各特徴点への3次元的な方向を、各特徴点について求める処理を行う。本実施形態では、各特徴点への3次元的な方向を方位角θと仰角φを用いて表現したが、本発明はこれに限るものではない。例えば3次元の方向ベクトルで表現する等、3次元的な方向を表現できるものであれば、その他の表現方法でも構わない。
次に、ステップS254において、モデル特徴点記述部203は、各特徴点の属性と、特徴点方向算出部202で求めた各特徴点への3次元的な方向をセットとして記述する処理を行う。本実施形態では、8個の各特徴点の属性として、それぞれユニークなカラーでマーキングされた、各頂点のカラー情報(具体的には、色相情報)を用いる。例えば、頂点101に関しては、上述の通り、色相0度のカラーでマーキングされているので、頂点101を第1特徴点とした場合、第1特徴点に関しての属性は、色相0度となる。この属性と、特徴点方向算出部202において算出した、頂点101の方向、方位角θ=45度、仰角φ=約−35.26度の3つの情報をセットとし、これらを、第1特徴点のモデルとする。同様に、頂点102から頂点108までを第2特徴点から第8特徴点とした場合、それぞれの特徴点に関するモデルは、以下の表3のようになる。なお、属性(色相)、方位角θ、および、仰角φの単位はDegree(度)である。また、仰角φの約−35.26、および、約35.26は、表2のものと同様である。
モデル特徴点記述部203は、上記のように、各特徴点の属性と、特徴点方向算出部202で求めた各特徴点への3次元的な方向をセットとして記述する処理を行う。ここで記述した、8個の特徴点の、属性(色相)、方位角θ、仰角φのセットのリストが、本実施形態における物体10の物体モデルとなる。
最後に、ステップS255において、物体モデル出力部204は、モデル特徴点記述部203により記述された、各特徴点の属性と、それぞれの3次元的な方向のリスト、および、特徴点の数のデータを、物体モデルとして出力する。本実施形態では、特徴点の数は8であるので、以下の表4に示すデータを、物体10の物体モデルとして出力することになる。なお、ここでも表3と同様に、属性(色相)、方位角θ、および、仰角φの単位はDegree(度)である。また、仰角φの約−35.26、および、約35.26は、表2のものと同様である。
特徴点の情報リストにおける、特徴点の順序は、上記の例では、頂点101から頂点108の順で並べているが、この順序は任意で構わない。物体モデル出力部204は、上記のように、モデル特徴点記述部203により記述された、各特徴点の属性と、それぞれの3次元的な方向のリスト、および、特徴点の数のデータを、物体モデルとして出力する。この物体モデル出力ステップS255の処理により、本実施形態における、物体モデルを記述する方法における処理が終了となる。
上記説明した物体モデルを記述する処理により、1辺10cmの立方体であって、8個の各頂点それぞれが、ユニークなカラーでマーキングされている物体10の、8個の各頂点を特徴点とする物体モデルが記述され、その物体モデルが出力されることになる。
このように、本実施形態の物体モデル記述方法では、物体の有するそれぞれの特徴点について、その特徴点の属性と、物体に対して設定した3次元座標の原点からの3次元的な方向とをセットにしたものを物体モデルとして記述する。
この物体モデルは、特徴点の3次元的な方向の情報を持っているので、物体の向き(姿勢)が変化した場合でも、各特徴点の3次元的な変動を容易に求めることができるため、物体の3次元的な向きの変動に対応することが可能である。また、特徴点の配置情報に関しては、それらの絶対的な位置ではなく、物体に対して設定した3次元座標の原点からの方向として、特徴点の配置情報を記述している。このため、特徴点の配置情報が画像内における物体のサイズの変動に不変な表現となっており、画像内で物体のサイズが変動しても、画像の拡大や縮小若しくはモデル自体を拡大、縮小する必要が無い。よって、物体識別時の処理負荷を低減させることが可能になる。
続いて、物体の向きの変動や画像内での物体のサイズの変動に対応できる効果を明確にする。具体的には、上述の物体モデルを用いて図1に示した物体10をカラーカメラで撮影した画像に対し、この物体10が画像上のどの位置に、どのような姿勢で存在するかを識別する物体位置姿勢決定方法の例を示す。
図4を参照して、本実施形態の物体位置姿勢決定方法における、全部で4つの座標系と、画像を撮影するカラーカメラ等の定義について説明する。
図4(a)のカメラ40は、カラーカメラであり、対象物体を撮像してその画像を取得する。このカメラ40は、結像光学系(レンズ)と撮像センサから構成されている。本実施形態におけるレンズは、焦点距離35mmのレンズであり、撮像センサのサイズは、幅36mm×高さ約24mm(正確には、本実施形態では、23.9625mm)で、撮像センサの解像度は、幅1280画素×高さ852画素である。この時、カメラ40のレンズの主点位置を原点400とし、図4に示した通り、カメラ40の光軸方向をz軸403、z軸403と直交した、それぞれカメラ40の水平方向をx軸401、垂直方向をy軸402とした3次元座標系を設定する。そして、この3次元座標系を、カメラ座標系と定義する。ここで、カメラ座標系のz軸403は、図4(a)に示した通り、カメラ40の光軸方向であって、カメラ40の撮影範囲の方向を正とする。また、カメラ座標系のx軸401は、カメラ40にて撮影した画像における右方向に対応する方向を正とし、y軸402は、画像における下方向に対応する方向を正とする。
次に、画像面41は、カメラ40により撮影される画像に対応する仮想的な平面であり、カメラ40の光軸(即ち、カメラ座標系のz軸403)と直交する、幅3.6cm、高さ約2.4cmの平面である。この平面は、カメラ40の撮像センサのサイズ:幅36mm×高さ約24mmに対応するものである。この時、この画像面41と、カメラ座標のz軸403との交点を原点410とし、画像面41上の水平方向をx”軸411、垂直方向をy”軸412とする2次元座標系を設定する。そして、この2次元座標系を、画像座標系と定義する。この画像座標系の原点410は、カメラ座標系において、(0、0、3.5cm(カメラの焦点距離=35mm))の位置にあるものとする。また、この画像座標系の2軸、x”軸411とy”軸412は、それぞれ、カメラ座標系のx軸401、y軸402と平行である。この画像面41は、カメラ40により撮影される画像に対応するものであって、x”軸411は、画像の水平右方向を正とする軸であり、y”軸412は、画像の垂直下方向を正とする軸である。
また、図4(b)に示したように、画像座標系の原点410は、幅1280画素×高さ852画素の画像の中心位置であるので、画像の左端から640画素分、上端から426画素分の位置となる。つまり、図4(b)に示したように、左から640画素目、上から426画素目の画素(画素45)の右下に対応する位置が、画像座標系の原点410となる。ここで、1画素の幅、および、高さは、幅3.6cm/1280画素(=高さ2.39625cm/852画素)=0.0028125cmとなっている。そのため、画素45の中心位置は、画像座標系の原点410から、縦横それぞれ半画素分だけ左上にずれているので、この画素130の中心位置は、画像座標系において、(x”、y”)=(−0.00140625cm、−0.00140625cm)である。
このように、画像上のある画素の位置を、画像座標系において表現すると、非常に煩雑な表現となってしまう。そこで、図4(b)に示した通り、画像座標系とほぼ等価ではあるが、画像の一番左上の画素46の中心位置を原点450とし、画像右方向を正の方向とするu軸451、および、画像下方向を正の方向とするv軸452からなる2次元座標系を設定し、これを画素位置座標系と定義する。この画素位置座標系は、基本的に、単位は画素である。従って、例えば、画素46は、画素位置座標系において(u、v)=(0画素、0画素)であり、画素45は(u、v)=(639画素、425画素)となる。また、画像座標系の原点410は、画素位置座標系においては(u、v)=(639.5画素、425.5画素)に位置することになる。
最後に、図4(a)の物体42は、識別対象となる物体である。先に説明したように、物体に対して座標決定された設定した、物体の中心付近に設定した原点420と、x’軸421、y’軸422、z’軸423の3軸とからなる3次元座標系である物体座標系を持つ。
通常、物体の位置姿勢は、この物体座標系とカメラ座標系の相対位置姿勢として定義されることが多い。しかし、本実施形態の物体位置姿勢決定方法においては、物体の位置姿勢として、物体座標系とカメラ座標系の相対姿勢(位置無し)と、物体座標系の原点420を、画像面41に投影した位置420Pとを、物体の位置姿勢と定義する。これは、本実施形態の物体モデルは、物体のサイズに関して不変な表現となっているため、その影響により、この物体モデルのみを用いた場合、物体の奥行き方向が一意に決まらないためである。そこで、物体の位置に関しては、一意に決めることができる、物体座標系の原点420を、画像面41に投影した位置420Pとして定義することにする。物体の姿勢に関しては、様々な表現方法があるが、本実施形態では、物体座標系のy’軸422を中心軸とする回転α、x’軸421を中心軸とする回転β、z’軸423を中心軸とする回転γの、3つの回転角(α、β、γ)を用いて表現する。具体的には、物体座標系のx’軸421、y’軸422、z’軸423が、それぞれカメラ座標系のx軸401、y軸402、z軸403と平行である場合を、(α、β、γ)=(0、0、0)とし、そこからの回転変位によって表現することになる。例えば、(α、β、γ)=(20、−40、10)(単位はDegree(度))であるならば、(α、β、γ)=(0、0、0)の姿勢から、まず、y’軸422を中心軸として、20度回転させる。次に、x’軸421を中心軸として‐40度回転させ、最後に、z’軸423を中心軸として10度回転させた時の姿勢となる。回転方向の正負については、軸の方向に向かって、時計回りを正の回転、反時計回りを負の回転と定義する。
以上が、本実施形態の物体位置姿勢決定方法における、全部で4つの座標系と、画像を撮影するカラーカメラ等の定義である。また、以下では、特に明記したような場合を除き、4つの座標系について、カメラ座標系、画像座標系、物体座標系の長さの単位はcm、画素位置座標系の長さの単位は画素、全ての座標系において、角度の単位はDegree(度)とする。
図5を参照して、この定義の下で、図1に示した物体10をカラーカメラで撮影した画像に対し、この物体10が画像上のどの位置にどのような姿勢で存在するかを識別する、物体位置姿勢決定方法の詳細について説明する。
図5(a)は、本実施形態に係る物体位置姿勢決定装置の処理ブロック図である。また、図5(b)は、本実施形態に係る物体位置姿勢決定方法の処理のフローチャートである。
まず、ステップS551において、物体モデル入力部500は、識別対象となる物体の物体モデルを入力し、それを物体モデル保持部501に記録して保持する。本実施形態では、上記説明した図1に示した物体10の物体モデル(つまり、表4に示した情報)を入力する。これにより、物体10の特徴点数(=8個)と、それぞれの特徴点の属性と、3次元的な方向が入力され、それらが物体モデル保持部501に保持されることになる。次に、ステップS552において、画像入力部502は、識別対象となる物体を撮影した画像を入力する。本実施形態では、図6(a)、図6(b)に示すような、グレーの背景化において、物体10を上記説明したカラーカメラにより撮影した画像を入力する。図6において、各画像内に存在する立方体が、撮影された物体10である。また、黒で示した各頂点が、ユニークなカラーでマーキングされた位置である。図6(a)においては、マーカ601からマーカ607までが画像中に存在しており、それぞれが、図1に示した物体3の、頂点101から頂点107までの各頂点に対応する。図6(a)では、この図に示す通り、頂点108に対応するマーカは画像中に存在していない。また、図6(b)においては、マーカ601からマーカ603と、マーカ605からマーカ608までが画像中に存在している。そして、それぞれが、図1に示した物体10の、頂点101から頂点103、および、頂点105から頂点108までに対応する。図6(b)は、この図に示す通り、頂点104に対応するマーカは画像中に存在しない。図6(a)では、図1に示した物体10は、物体座標系の原点が、カメラ座標系において、(x、y、z)=(0、0、48)の位置に配置される。そして、カメラ座標系に対する物体座標系の姿勢が、(α、β、γ)=(30、20、0)という姿勢で撮影した時に得られる画像を示している。また、図6(b)は、図1に示した物体10は、物体座標系の原点が、カメラ座標系において、(x、y、z)=(6、−3、48)の位置に配置される。そして、カメラ座標系に対する物体座標系の姿勢が、(α、β、γ)=(−15、40、0)という姿勢で撮影した時に得られる画像を示している。この画像入力部502では、図6に示したような画像を1枚入力する処理を行う。ここでの処理は、図5(b)の画像入力ステップ552に対応する。
次いで、特徴点位置検出部503において、物体モデル保持部501に保持されている物体モデルが持つ、複数の特徴点の属性を示す特徴量に基づいて、画像入力部502で入力した画像中から、それぞれに対応する特徴点の位置(画像座標系における位置)を検出する。本実施形態では、特徴量として例えば色相と彩度の情報を用いて、8個の特徴点の位置をそれぞれ検出する処理を行う。具体的には、まず入力画像の各画素について、彩度と色相を算出する処理を行う。次いで、各画素の彩度に注目し、閾値以上の彩度である画素(例えば、彩度の範囲を0から1とした時、彩度が0.1以上である画素等)のみを抽出する。本実施形態の入力画像は、背景がグレーで、物体10のマーカの領域(各頂点に対応)を除く領域は白であるので、彩度が比較的高い領域のみを抽出することで、容易に各頂点に対応する領域のみを抽出することができる。次に、彩度が閾値以上であるとして抽出された画素の色相に注目し、物体モデル保持部501に保持された、8個の特徴点のそれぞれについて、各特徴点の属性である色相に対応した画素を抽出する。そして、抽出された画素の領域の重心位置を算出し、その重心位置を対応する特徴点の位置とする。各特徴点の属性である色相に対応した画素の抽出は、具体的には、以下のように行う。例えば、表4におけるリストの1番目の特徴点(頂点101に対応)の属性は、色相が0度であるので、彩度が閾値以上であるとして抽出された画素の内、色相が0度である画素を抽出するというようにする。ただし、色相の値は、照明条件の違い等により、多少変動してしまうので、実際には、例えば、色相が、色相0度から±20度の範囲(つまり、色相が‐20度から20度の範囲)の画素を抽出するようにする。同様に、表4におけるリストの2番目の特徴点(頂点102に対応)では、色相45度から±20度(25度から65度)、3番目の特徴点(頂点103に対応)では、色相90度から±20度(70度から110度)、というように、それぞれ抽出すれば良い。ただし、状況によっては、物体モデルが持つ特徴点に対応するものが、画像中に存在しない場合がある。例えば、図6(a)において、表4におけるリストの8番目の特徴点(頂点108に対応)が該当する。このような状況で上記の処理を行うと、その特徴点に対応する画素が1つも抽出されないことになる。このような場合は、その特徴点に対応するものは画像中に存在しなかったと判断するようにする。このように、特徴点位置検出部503では、物体モデル保持部501に保持されている物体モデルが持つ、複数の特徴点の属性に基づいて、画像入力部502で入力した画像中から、それぞれに対応する特徴点の位置を検出する処理を行う。ここでの処理は、図5(b)の特徴点位置検出ステップ553に対応する。ここまでの処理により、画像中に対応する特徴点が存在するものに関しては、それぞれの特徴点の画像座標系における位置が得られることになる。
続いて、最大一致度位置姿勢探索部504において、物体モデル保持部501に保持されている物体モデルと、特徴点位置検出部503で得られた、各特徴点の位置(画像座標系での位置)とに基づいて、画像中に存在する物体の位置姿勢を推定する。具体的には、物体モデルを様々な位置姿勢に変化させ、それを図4に示す画像面41に投影する。そして、投影された結果と各特徴点との一致度が最大となる物体モデルの位置姿勢を探索する。一致度が最大であった物体モデルの位置姿勢を、画像中に存在する物体の位置姿勢と推定する。
図7を参照して、この最大一致位置姿勢探索部504における処理の概要について説明する。図7は、図6(a)を入力画像とした時の、最大一致位置姿勢探索部504における処理の途中段階を示したものである。最大一致位置姿勢探索部504における処理では、物体モデルの位置姿勢を様々に変化させる。図7では、物体モデルの中心位置710、即ち、物体座標系の原点が、画素位置座標系の(u、v)=(639画素、425画素)の位置(図4(b)の画素130の位置に対応)にある場合を示している。また、物体モデルの姿勢に関しては、図7においては、物体座標系の3軸の回転角が、(α、β、γ)=(25、15、−5)の場合を示している。図6(a)における、実際の物体の位置は、カメラ座標系において(x、y、z)=(0、0、48)であるので、画像面41にこの位置を投影すると、画像座標系において(x”、y”)=(0、0)となる。この位置は、画素位置座標系では、(u、v)=(639.5画素、425.5画素)なので、図7で示した物体モデルの中心位置は、凡そ実際の物体の中心位置に対応している。姿勢に関しては、図6(a)は、物体座標系の3軸の回転角が、(α、β、γ)=(30、20、0)である。よって、図7に示した物体モデルの姿勢は、多少、実際の物体の姿勢とずれている。図7においては、物体座標系の3軸を、画像面41に投影したものが、それぞれx’軸711、y’軸712、z’軸713であり、図中、点線矢印で示したものが、物体モデルが持つ各特徴点への3次元方向ベクトルを、画像面41に投影したものである。これは後述の、第2方向ベクトルであるモデル方向ベクトルに対応する。
図7では、多くの特徴点に関して、点線矢印で示した物体モデルが持つ各特徴点へのモデル方向ベクトルと、物体中心710から各特徴点位置への方向ベクトルとが概略一致している。この物体中心710から各特徴点位置への方向ベクトルは、後述の、第1方向ベクトルである観測方向ベクトルに対応する。しかし、図に示した通り、例えば、物体の頂点103に対応する特徴点723に関しては、物体モデルの、この特徴点に対応する方向733と、白矢印743で示した、物体中心710から特徴点723への方向が、比較的ずれていることがわかる。なお、特徴点723の位置は、特徴点位置検出部503により検出される。また、上記ずれは、円弧753で示した角度分のずれに対応している。この最大一致度位置姿勢探索部504では、物体モデルの位置姿勢を様々に変化させ、円弧753で示したような角度のずれが小さい物体モデルの位置姿勢を探索する。つまり、図7における点線矢印733と白矢印743といったものが、できるだけ一致するような物体モデルの位置姿勢を探索する。
図8を参照して、この最大一致度位置姿勢探索部504における具体的な処理の詳細について説明する。
まず、ステップS801において、物体モデル一致度の最大値を初期化する。物体モデル一致度については、ステップS805において詳細に説明する。この物体モデル一致度の最大値の初期化では、この最大値を非常に小さい値にすれば良い。本実施形態では、例えば、物体モデルの持つ特徴点の数が8個なので、8×(−1)=−8以下の値を、物体モデル一致度の最大値の、初期値として設定すれば良い。
次に、ステップS802において、物体モデルの中心位置を、画素位置座標系で設定する。ここでの設定では、単純に、ラスタスキャン的に画像の左上から右下に向けて順次選択して設定するようにすれば良い。つまり、最初は、画素位置座標系の原点(u、v)=(0画素、0画素)を設定し、その次には、(u、v)=(1画素、0画素)というように順次設定していき、最後の(u、v)=(1279画素、851画素)に至るまで、順に設定していくようにすれば良い。
続いて、ステップS803において、物体モデルの姿勢、つまり、物体座標系の3つの軸に対する、それぞれの回転角(α、β、γ)を設定する。ここでも、ステップS802と同様に、全探索的に様々な姿勢を設定するようにすれば良い。本実施形態では、具体的には、最初に、3つの回転角を(α、β、γ)=(0、0、0)と設定する。その次には、γを1度だけ増加させ、(α、β、γ)=(0、0、1)を設定するというように、1度ずつγを増加させていく。そして、(α、β、γ)=(0、0、359)になった場合、その次は、βを1度だけ増加させ、γを0に戻し、(α、β、γ)=(0、1、0)と設定する。以下同様に、1度ずつ姿勢を変化させ、(α、β、γ)=(359、359、359)に至るまで、順に姿勢を設定していくようにすれば良い。このように物体モデルの位置および姿勢を様々な位置および姿勢に変更する処理を行う。
次に、ステップS804において、ステップS802、および、ステップS803で設定された物体モデルの中心位置、および、姿勢で物体モデルが配置された時の、物体モデルが持つ各特徴点の方向の、画像面41への投影像を求める。ここでの詳細を、具体的な例を用いて説明する。まず、ステップS802において、物体モデルの中心位置が、画素位置座標系で(u、v)=(U、V)と設定されたとする。この画素位置座標系(u、v)=(U、V)の位置は、画像座標系では、(x”、y”)=(X”、Y”)であるとする。また、ステップS803において、物体モデルの姿勢が(α、β、γ)=(A、B、Γ)と設定されたとする。この時、物体モデルが持つある特徴点への3次元的な方向が、方位角θ=Θ、仰角φ=Φであったとし、この特徴点への方向が、画像面41上でどのようになるのかを求める。
まず、物体座標系の原点420から、この特徴点への方向に対応する長さ1の3次元ベクトルf’を考える。つまり、物体の中心位置から、距離1のところに特徴点があると考え、その位置を物体座標系で表現したものを考える。ここでの長さは任意であるが、簡単のため、長さ1としている。ただし、長さをレンズの焦点距離:本実施形態では、3.5(=35mm)以上にすると、画像面41への投影位置を計算する際に支障をきたすため、長さは3.5未満にするのが望ましい。特徴点への方向は、方位角=Θ、仰角φ=Φなので、この長さ1の3次元のベクトルf’は、f’=(sinΘ・cosΦ、sinΦ、cosΘ・cosΦ)Tとなる。ここで、上付きTは転置を意味する。
次に、このベクトルを、物体の姿勢(α、β、γ)=(A、B、Γ)に従って回転させた3次元ベクトルfR’=RZ’(Γ)z’(Γ)・RX’(Β)・RY’(Α)・f’を求める。ここで、RZ’(Γ)、RX’(Β)、RY’(Α)は、それぞれ物体座標系のz’軸、x’軸、y’軸を中心軸として、Γ、B、A回転させる時の回転行列で、以下の式(3)、式(4)、式(5)に示したものである。
次に、この回転後のベクトルfR’の位置を、カメラ座標系に変換したfRを求める。ステップS802で設定した物体モデルの中心位置(つまり、物体座標系の原点420の位置)は、画像座標系で(x”、y”)=(X”、Y”)であった。画像座標系の原点410は、カメラ座標系において(x、y、z)=(0、0、3.5cm)であった。よって、ステップS802で設定された物体モデルの中心位置は、カメラ座標系で(x、y、z)=(X”、Y”、3.5cm)となる。従って、回転後のベクトルfR’の位置を、カメラ座標系に変換すると、この変換後の位置fRは、(x、y、z)=(X”+fRx’、Y”+fRy’、3.5+fRz’)となる。ここで、fRx’、fRy’、fRz’は、それぞれ、回転後のベクトルfR’のx成分、y成分、z成分である。
次いで、このカメラ座標系に変換した回転後のベクトルの位置fRを、画像面41に投影し、その時の画像座標系での位置fR”を求める。これは単純に、カメラ座標系に変換した位置fRのz成分が3.5cm(カメラ座標系の原点400から画像面41までの距離)になるように各成分を正規化する。そして、その時のx成分、y成分を、それぞれfR”のx”成分、y”成分とすれば良い。つまり、カメラ座標系に変換した位置fR:(x、y、z)=(X”+fRx、Y”+fRy、3.5+fRz)のx成分、y成分に、3.5/(3.5+fRz)を乗じたものを、それぞれfR”の画像座標系でのx”成分、y”成分にする。よって、この画像面41へ投影した場合の、画像座標系での位置fR”は、(x”、y”)=(3.5・(X”+fRx)/(3.5+fRz)、3.5・(Y”+fRy)/(3.5+fRz))となる。
最後に、ステップS802で設定された物体モデルの中心位置から、画像面41に投影したfR”への画像面41上の方向ベクトルp”(これをモデル方向ベクトル、すなわち第2方向ベクトルと称する)を、画像座標系で求める。ステップS802で設定された物体モデルの中心位置は、画像座標系で(x”、y”)=(X”、Y”)である。そのため、ここで求めるモデル方向ベクトルp”は、p”=(fRx”−X”、fRy”−Y”)T=(3.5・(X”+fRx)/(3.5+fRz)−X”、3.5・(Y”+fRy)/(3.5+fRz)−Y”)Tとなる。ここで、fRx”、fRy”は、fR”のx”成分、y”成分である。すなわち、物体モデルの3次元特徴点および原点を画像面41に投影して、投影原点から投影特徴点へのモデル方向ベクトルを算出する。
ステップS804では、上述のように、画像面41上でのモデル方向ベクトルp”を、物体モデルが持つ全ての特徴点について求める。本実施形態の物体モデルでは、特徴点の数は全部で8個であるので、8個の特徴点それぞれについて、この画像面41上でのモデル方向ベクトルp”を求める。ここで求めた8個の特徴点それぞれに対する、画像面41上でのモデル方向ベクトルを、それぞれp1”、p2”、・・・、p8”とする。
続いて、ステップS805において、ステップS804で求められた各特徴点に対応するモデル方向ベクトルp”と、図5(a)の特徴点位置検出部503で検出された各特徴点の位置とに基づいて、物体モデル一致度という評価値を算出する。この評価値は、ステップS802およびステップS803で設定された物体の位置姿勢での、物体モデルの各特徴点の方向(モデル方向ベクトルp”)と、特徴点位置検出部503で検出された実際の各特徴点の方向とが、どの程度一致しているかを示すものである。この物体モデル一致度の算出方法の詳細について、具体的な例を用いて説明する。まず、ステップS804での説明と同様に、ステップS802において、物体モデルの中心位置が、画像座標系で(x”、y”)=(X”、Y”)と設定されたとする。また同様に、ステップS803において、物体モデルの姿勢が(α、β、γ)=(A、B、Γ)と設定されたとする。そして、その時の、ステップS804で求めた、ある特徴点に対応するモデル方向ベクトルがp”であるとする。そして、特徴点位置検出部503において、この特徴点の画像座標上での位置が(x”、y”)=(ξ”、ζ”)と検出されていたとし、この特徴点についての一致度を求める。
まずステップS802で設定された物体モデルの中心位置から、特徴点位置検出部503で検出された、ある特徴点の画像座標上での位置(2次元特徴点)への画像面41上の方向ベクトルq”(これを第1方向ベクトルである観測方向ベクトルと称する)を求める。この観測方向ベクトルq”は、容易に、q”=(ξ”−X”、ζ”−Y”)Tとして求められる。
次に、この観測方向ベクトルq”と、モデル投影ステップ143で求めた、モデル方向ベクトルp”の内積(p”)T(q”)を、各ベクトルの大きさの積|p”|・|q”|で除することにより正規化した値を求める。ここで、| |はベクトルの大きさを表す。ここで求めた、各ベクトルの内積を正規化した値が、この特徴点についての一致度となる。つまり、モデル方向ベクトルと、観測方向ベクトルの成す角の余弦を、特徴点の一致度として求めることになる。従って、モデル方向ベクトルと、観測方向ベクトルの成す角が小さい(最小0度)程、この一致度は大きく(最大1)になり、成す角が大きい(最大180度)程、一致度は小さく(最小−1)になる。
ステップS805では、上述のように、特徴点についての一致度を物体モデルが持つ全ての特徴点について求め、その総和を物体モデル一致度として算出する。本実施形態の物体モデルでは、特徴点の数は全部で8個であるので、8個の特徴点それぞれについて、まず観測方向ベクトルを求め、それぞれを、q1”、q2”、・・・、q8”とする。ここで、特徴位置検出部503において、検出されなかった特徴点(例えば、図6(a)における頂点108に対応する特徴点)についての一致度は、観測方向ベクトルが求められない。そこで、このような特徴点に関する観測方向ベクトルqi”は、qi”=−pi”としてしまう。つまり、検出されなかった特徴点についての一致度は−1としてしまうことになる。また、モデル方向ベクトル、若しくは、観測方向ベクトルのいずれかが0ベクトルになってしまう場合、ベクトルの大きさの積による正規化において支障をきたすことになる。そこで、もし、モデル方向ベクトルpi”と、観測方向ベクトルqi”の何れかが0ベクトルであった場合、pi”=(1、0)T、qi”=(0、1)Tとしてしまう。つまり、何れか一方の方向ベクトルが0ベクトルであるならば、その特徴点についての一致度は0としてしまうことになる。結局、本実施形態におけるステップS805で求める物体モデル一致度Mは、以下の式(6)により求めることになる。なお、各特徴点に関するモデル方向ベクトルを、それぞれp1”、p2”、・・・、p8”としている。また、対応する観測方向ベクトルを、それぞれq1”、q2”、・・・、q8”としている。
ただし、上述の通り、特徴位置検出部503において、検出されなかった特徴点については、qi”=−pi”で、何れかの方向ベクトルが0ベクトルであった場合は、pi”=(1、0)T、qi”=(0、1)Tである。このステップS805までの処理により、ステップS802で設定された位置に、ステップS803で設定された姿勢で物体モデルを配置した時の、特徴点の方向に関する一致度である物体モデル一致度が得られることになる。この物体モデル一致度は、各特徴点に関する、モデル方向ベクトルと、観測方向ベクトルの成す角の余弦の総和に対応しているので、この物体モデル一致度が高い程、モデル方向ベクトルと観測方向ベクトルが一致しているといえる。なお、物体モデル一致度は、各特徴点の一致度が高くなるほど高くなればよく、各特徴点の一致度の総和に限らず、一致度の積や重み付きの和など、他の評価値でもよい。
次に、ステップS806において、ステップS805で求められた物体モデル一致度が、現状の物体モデル一致度の最大値より大きいか否かを判定する。ステップS805で求められ物体モデル一致度が、現状の物体モデル一致度の最大値より大きい場合(ステップS806;YES)、ステップS807に進む。そうでない場合(ステップS806;NO)、ステップS808に進む。
ステップS807において、ステップS802、および、ステップS803で設定された位置と姿勢を、現状の物体位置姿勢の推定値として更新する処理を行う。つまり、例えば、ステップS802で、物体モデルの中心位置を、画素位置座標系で(u、v)=(U、V)と設定する。そして、ステップS803で、物体モデルの姿勢を、(α、β、γ)=(A、B、Γ)と設定する。その場合、これらの(U、V)、(A、B、Γ)を、現状の物体位置姿勢の推定値とする処理を行うことになる。よって、最も物体モデル一致度が高い、つまり、モデル方向ベクトルと、観測方向ベクトルとの方向が、より一致する時の、物体モデルの位置姿勢に更新されていくことになる。
次のステップS808において、ステップS802で設定された物体モデルの中心位置において、ステップS803で全ての姿勢が設定されたか否かを判定する。本実施形態では、全ての姿勢とは、物体座標系の3軸に関する回転、(α、β、γ)=(0、0、0)から、各角度1度刻みで(α、β、γ)=(359、359、359)までを意味する。全ての姿勢を設定している場合(ステップS808;YES)、ステップS809に進む。そうでなければ(ステップS808;NO)、ステップS803に戻り、新たな姿勢を設定してステップS804からの処理を繰り返す。
ステップS809において、物体モデルの中心位置として、全ての位置をステップS802で設定したか否かを判定する。本実施形態では、全ての位置とは、画素位置座標系の(u、v)=(0画素、0画素)から、1画素刻みで(u、v)=(1279画素、851画素)までを意味する。全ての位置を設定している場合(ステップS809;YES)、ステップS810に進む。そうでなければ(ステップS809;NO)、ステップS802に戻り、物体モデルの中心位置として新たな位置を設定して、ステップS803からの処理を繰り返す。
上記のような繰り返し処理により、最後のステップS810に進んだ段階で、最も物体モデル一致度が高かった時の、物体モデルの中心位置と、姿勢とが、現状の物体位置姿勢推定値として得られることになる。そこで、最後のステップS810において、最も物体モデル一致度が高かった時の、物体モデルの中心位置と、姿勢、つまり、ステップS807で最終的に更新された位置と姿勢を、物体の位置姿勢推定値として決定する。
以上の、ステップS801から、ステップS810までの処理が、図5(a)に示す最大一致度位置姿勢探索部504での処理である。ここでの処理は、図5(b)の最大一致度位置姿勢探索ステップS554に対応する。このように、最大一致度位置姿勢探索部504では、物体モデルを様々な位置姿勢に変化させ、それを画像面41に投影する。そして、投影した結果と、各特徴点との一致度が最大(モデル方向ベクトルと観測方向ベクトルの成す角が最小)となる物体モデルの位置姿勢を探索し、一致度が最大であった物体モデルの位置姿勢を、画像中に存在する物体の位置姿勢と推定する。
本実施形態では、このように、物体モデルを様々な位置姿勢に変化させ、物体モデル一致度が最も高い物体モデルの位置姿勢を探索する。しかし、本発明はこれに限るものではなく、例えば最小二乗法等を用いて、モデル方向ベクトルと、観測方向ベクトルとの成す角が最小になるような物体モデルの位置姿勢を探索してもよい。ただし、このような物体モデルの位置姿勢を、最小二乗法等を用いて探索した場合、探索における初期値が適切でないと、多数存在する局所解にトラップされてしまう可能性が高い。そこで、最小二乗法等を利用する場合は、例えば、複数の初期値からの探索を行って、最も一致度が高いものを選択する等すればよい。
最後に、図5(a)の位置姿勢識別結果出力部505において、最大一致度位置姿勢探索部504での処理により得られた、物体の位置姿勢推定値を外部に出力する処理を行う。物体の位置姿勢推定値とは、画素位置座標系における物体の中心位置と、物体座標系の3軸に関する回転角とを意味する。ここでの処理は、図5(b)の位置姿勢識別結果出力ステップS555に対応する。これにより、物体が画像上のどの位置に、どのような姿勢で存在するかを識別する、物体位置姿勢決定方法の処理が終了となる。
上述のように、物体モデル入力部500から位置姿勢識別結果出力部505までの処理により、本実施形態の物体モデル記述方法により記述した物体モデルを用いて、当該物体が画像上のどの位置に、どのような姿勢で存在するかを識別する処理が可能になる。本実施形態に係る物体位置姿勢決定方法では、物体の中心位置から、各特徴点への3次元的な方向をモデルとする物体モデルを用いている。このため、物体の3次元的な向きの変動に対応可能であり、且つ、画像上での物体のサイズ変動に対して不変に、物体の位置姿勢を識別することが可能になる。このように、3次元的な向きの変動(姿勢の変動)に対応可能であり、且つ、画像上での、物体のサイズ変動に対して不変であることを、以下の具体的な例により説明する。
図9(a)および(b)を参照して、図6(a)および(b)に示した入力画像に対して、本実施形態に係る物体位置姿勢決定方法の処理を適用した場合に得られる位置姿勢推定結果について説明する。図6(a)を入力画像とし、物体の中心位置が、画素位置座標系で(u、v)=(639画素、425画素)、物体座標系3軸の回転角が(α、β、γ)=(30、20、0)であった場合を考える。この場合、最大一致度位置姿勢探索部504での処理における物体モデル一致度が最大の約6となる。図9(a)は、入力画像である図6(a)に、その時の、位置姿勢での物体モデルの画像面41への投影結果を重畳して示したものである。ここで、物体モデル一致度が約6となるのは、画像上で検出可能な7つの特徴点では、ほぼモデル方向ベクトルと観測方向ベクトルの方向が一致するため一致度が約1となり、検出できなかった1つの特徴点は、一致度が−1となるため、この総和が(約7−1の)約6となるためである。同様に、図6(b)を入力画像とし、物体の中心位置が、画素位置座標系で(u、v)=(798画素、347画素)、物体座標系3軸の回転角が(α、β、γ)=(−15、40、0)であった場合を考える。この場合も物体モデル一致度が最大の約6となる。図9(b)も同様に、入力画像である図6(b)に、その時の、位置姿勢での物体モデルの、画像面41への投影結果を重畳して示したものである。物体モデル一致度が約6であるのは、図6(a)を入力画像とした時のものと同様である。このように、本実施形態の物体モデルでは、物体の中心位置から、特徴点の方向への3次元的な方向情報を持っているため、このような姿勢変動に対応することが可能である。
また、図10(a)および(b)を参照して、図6(a)の物体と姿勢は同じで、物体の中心位置だけをカメラ座標系のz軸403に沿って平行移動させ、それを撮影した画像を入力画像とした場合の結果について説明する。具体的には、図10(a)に関しては、物体の中心位置を、カメラ座標系で(x、y、z)=(0、0、32)にした場合の結果である。また、図10(b)に関しては、物体の中心位置を、カメラ座標系で(x、y、z)=(0、0、72)にした場合の結果である。つまり、カメラ座標系の原点400と、図6(a)における物体の中心位置(カメラ座標系において、(x、y、z)=(0、0、48))とを結ぶ直線上を平行移動したものである。図10に示したように、このような物体の移動に伴い、物体の画像上のサイズが変動する。
このため、例えば、非特許文献4に開示の手法等では、このようなサイズの変動に対応するために、3次元モデルと、入力画像との何れかを、拡大、若しくは、縮小する必要がある。つまり、物体のサイズ変動に対応する探索をする必要がある。これに対して、本実施形態に係る物体モデルでは、このようなサイズの変動があったとしても、画像面41に投影した物体の中心位置から、それぞれの特徴点への観測方向ベクトルは不変であるので、サイズ変動に対応する探索をする必要が無い。実際に、図10(a)および(b)に示した物体の位置姿勢推定結果では、何れも、図9(a)に示したものと同じ推定結果になっている。すなわち、物体の中心位置が、画素位置座標系で(u、v)=(639画素、425画素)、物体座標系3軸の回転角が(α、β、γ)=(30、20、0)という推定結果である。つまり、このようなサイズの変動に対して、サイズの変動に対応する探索をしなくても、正しく物体の位置姿勢が推定でき、サイズ変動に不変な識別が可能であるといえる。図11(a)および(b)にも、同様の結果を示す。これは、図6(b)の物体と姿勢は同じで、物体の中心位置だけを、カメラ座標系の原点400と、図6(b)における物体の中心位置とを結ぶ直線に沿って平行移動させ、それを撮影した画像を入力画像とした場合の結果である。具体的には、図11(a)では、物体の中心位置が、カメラ座標系において(x、y、z)=(4、2、32)である。図11(b)では、物体の中心位置が、カメラ座標系において(x、y、z)=(12、6、72)である。この場合でも、それぞれの物体の位置姿勢推定結果では、何れも、図9(b)に示したものと同じ推定結果となっている。すなわち、物体の中心位置が、画素位置座標系で(u、v)=(798画素、347画素)、物体座標系3軸の回転角が(α、β、γ)=(−15、40、0)という推定結果である。このように、本実施形態に係る物体モデルを用いることにより、サイズの変動に対して不変に、物体の位置姿勢識別が可能である。
一方で、このようなサイズ変動に対する不変性は、逆にサイズの違い、つまり、カメラに対する物体の奥行き方向における位置の違いを検出できないというデメリットも含んでいることになる。つまり、図10(a)と(b)とを違うものとして識別したい場合、又は、図11(a)と(b)とを違うものとして識別したい場合、上記の物体の位置姿勢の推定方法のみでは対応できない。しかし、もし、このような違いを検出したいのであれば、まず、上記の物体の位置姿勢の推定方法で、物体の位置姿勢のみを推定する。そして、その後、各特徴点の画像座標系での位置に基づいて、カメラに対する物体の奥行き方向における位置の違いを検出すれば良い。なお、各特徴点の画像座標系での位置は、図5の特徴点位置検出部503で検出したものである。具体的には、例えば、推定した物体の中心位置から、画像面41上で物体の中心位置から最も遠い特徴点までの距離の違いを、その物体の、カメラに対する奥行き方向における位置の違いとしてしまう方法が考えられる。この場合、奥行き方向における位置に関する推定精度は低く、また、絶対位置も求められない。しかしながら、少なくとも図10(a)と(b)との違い、又は、図11(a)と(b)との違いについて、それぞれ、カメラに対する物体の奥行き方向における位置が違うものであるという程度の識別は可能である。また、本実施形態に係る物体モデルでは、物体の中心位置から各特徴点への方向のみを持っているとした。しかしながら、この特徴点への方向と共に、物体の奥行き方向の位置を求めるのに必要な情報を保持しておき、それを用いて物体の奥行き方向の位置を推定するようにしても良い。物体の奥行き方向の位置を求めるのに必要な情報としては、様々なものが考えられる。例えば、物体の中心から、各特徴点までの絶対距離が挙げられる。ここで、物体中心から、ある特徴点までの絶対距離の情報を保持しているとした場合に、その情報を用いて、物体の奥行き方向の位置を求める方法について、具体的な例を用いて説明する。
まず、物体モデルが持つ、各特徴点の方向に関する情報のみを利用し、上述のような物体の位置姿勢の推定方法で、物体の位置姿勢のみを推定する。この時の物体の位置(つまり、画像面41上での物体の中心位置)が、画像座標系において(x”、y”)=(X”、Y”)であったとする。また、物体の姿勢に関しては、物体座標系の3軸に関する回転が、(α、β、γ)=(A、B、Γ)であったとする。そして、複数の特徴点の中から、ある特徴点を1つ選択する。ここで選択する特徴点は任意であるが、少なくとも、図5(a)の特徴点位置検出部503において位置が検出された特徴点である必要がある。また好適には、上記物体の位置姿勢の推定結果において、前述のモデル方向ベクトルと、観測方向ベクトルとの成す角が、できるだけ小さかったものを選択すると良い。そして、ここで選択された特徴点と、物体の中心との絶対距離がLであったとする。これが、上述した物体の奥行き方向の位置を求めるのに必要な情報である。次いで、選択された特徴点に関して、図5(a)の最大一致度位置姿勢探索部504での処理において求めたのと同じ、モデル方向ベクトルp”と、観測方向ベクトルq”を、上記求めた物体の位置姿勢の条件下で求める。すなわち、物体の位置姿勢が、(x”、y”)=(X”、Y”)、(α、β、γ)=(A、B、Γ)という条件下である。また、このモデル方向ベクトルp”を算出する途中段階で求める、物体の中心位置から、特徴点の方向への長さ1のベクトルを、物体の姿勢に従って回転させた、回転後のベクトルfR’のz成分fRz’も求めておく(図8の、ステップS804での処理の説明を参照)。このfRz’は、モデル方向ベクトルp”を求める際に必然的に求めることとなる。そして、詳細な導出は割愛するが、これらを用いることにより、カメラ座標系における物体の中心位置(x、y、z)は、次の式(7)により求められる。
ここで、z座標を求める際に用いているFは、レンズの焦点距離であり、本実施形態ではF=3.5cm(=35mm)である。このように、本実施形態に係る物体モデルに、物体の中心からある特徴点までの絶対距離といった、物体の奥行き方向の位置を求めるのに必要な情報を付加しておくことで、物体の奥行き方向の位置を推定することも可能である。
以上、第1実施形態では、まず、図1に示したような、1辺10cmの立方体であって、8個の各頂点それぞれが、ユニークなカラーでマーキングされている物体10の、物体モデルを記述する方法の例として説明した。また、記述した物体モデルを用いて、この物体10をカラーカメラで撮影した画像に対して、この物体10が画像上のどの位置に、どのような姿勢で存在するかを識別する方法の例として説明した。
(第2実施形態)
第2実施形態では、物体モデル記述方法を実現する別形態として、物体モデルを記述する対象の物体を撮影した多数の画像を用い、EMアルゴリズムを利用した学習により物体モデルを生成する物体モデル生成方法の例を示す。また、生成した物体モデルを用い、入力された画像中に、その物体が存在するか否か、および、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例を示す。
第2実施形態では、物体モデル記述方法を実現する別形態として、物体モデルを記述する対象の物体を撮影した多数の画像を用い、EMアルゴリズムを利用した学習により物体モデルを生成する物体モデル生成方法の例を示す。また、生成した物体モデルを用い、入力された画像中に、その物体が存在するか否か、および、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例を示す。
第1実施形態では、物体モデルを記述する対象物体にマーキングが施され、画像上で容易に検出可能なマーカがあるとした。そのため、そのマーカを特徴点として利用し、物体モデルを記述する例を示した。物体モデルを記述する対象物体が、第1実施形態のように検出容易な特徴を有しているならば、それらを利用して物体モデルを記述すれば良い。しかし、一般的な物体においては、このような特徴が、予め判明している可能性は少ない。そこで、本実施形態では、物体モデルを記述する対象となる物体を、様々な位置、方向から撮影した画像を用いて、この物体モデルを記述する際に利用する特徴点の属性を学習により獲得する。そして、学習により獲得した特徴点の属性を用い、この物体の物体モデルを生成する。また、第1実施形態に係る物体モデルでは、特徴点の属性と、物体の中心位置から特徴点への3次元的な方向とを、物体モデルとして用いた。これに対し、本実施形態では、特徴点の属性と3次元的な方向とを用いてモデル化するという基本的な概念は同じであるが、この物体モデルを確率モデルとして記述する。以下では、第1実施形態とは異なる、多数の画像を用いて特徴点の属性を学習する点と、物体モデルを確率モデルで記述するという点の2点について詳細に説明する。そして、その他の第1実施形態と同様の部分(例えば、座標系の定義等も含む)に関しては説明を省略する。
まず、本実施形態における前提条件について説明する。本実施形態において、物体モデルを記述する対象物体は、いわゆる3Dモデルを持っているものとする。ここで、3Dモデルとは、例えばポリゴンモデルのように、対象物体の表面が、3次元情報として表現されているものである。このような3Dモデルを予め持っていない物体に関しては、例えば特許文献2に開示の手法を用いて、物体の3Dモデルを生成すれば良い。
このような3Dモデルは、通常、3次元の座標系が既に設定されている。つまり、3Dモデルが有する点や面の情報を記述するために、何らかの3次元座標系が設定されている。そこで、本実施形態では、物体に対して設定する物体座標系に、この3Dモデルに既に設定されている座標系(この座標系が直交座標系でない場合は、直交座標系に変換したもの)を設定する。なお、物体に対して設定する物体座標系は、図2(a)に示した、第1の実施形態における物体座標系設定部200での処理にて設定するものに対応する。
ただし、物体に対して設定する物体座標系は、第1実施形態の説明においても述べたように、座標系の原点が、物体の中心付近にあることが望ましい。もし、3Dモデルに既に設定されている座標系の原点が、物体の中心付近から離れた位置に設定されている場合は、この座標系の原点が、物体の中心付近となるように座標系を平行移動し、それを、この物体に対して設定する物体座標系とすれば良い。
また、上述のように、本実施形態においては、物体モデルを記述する対象物体を、様々な方向、位置から撮影した多数の画像を利用する。この多数の画像は、できるだけ満遍なく、様々な方向、位置から対象物体を撮影した画像であることが望ましい。本実施形態に係る物体モデル生成方法においては、このような画像をN枚用意し、それらを用いて物体モデルを生成する。また、本実施形態に係る物体モデル生成方法では、このN枚の画像それぞれについて、画像を撮影したカメラと、画像内に存在する、物体モデルを生成する対象となる物体との、相対位置姿勢の情報を、物体モデル生成における処理において利用する。ここでのカメラと物体との相対位置姿勢の情報は、第1実施形態に係る物体位置姿勢決定方法で推定した物体の位置姿勢とは多少異なる。第1実施形態に係る物体位置姿勢決定方法で推定した物体の位置姿勢は、画像面に投影した物体中心の、画像座標系における位置(x”、y”)と、物体座標系の3軸に関する回転角(α、β、γ)とで表現されるものであった。これに対して、第2実施形態では、カメラと物体との相対位置姿勢は、物体中心位置の表現が異なり、物体中心の、カメラ座標系における位置(x、y、z)と、物体座標系の3軸に関する回転角(α、β、γ)で表現されるものである。
このようなカメラと物体との相対位置姿勢の情報は、物体モデル生成において利用する画像の枚数(N)が少なければ、手動でこの情報を設定しておいても良い。ただし、上述の通り、この物体モデル生成において利用する画像は、できるだけ満遍なく、様々な方向、位置から対象物体を撮影した画像であることが望ましいので、手動でこの情報を設定するのは困難である。そこで、本実施形態で物体モデルを生成する対象物体は、上述の通り、3Dモデルが存在するので、例えば、非特許文献5に開示の手法等を用いることにより、この相対位置姿勢の情報を予め求めておくようにすればよい。ここで非特許文献5に開示の手法とは、3Dモデルを利用して、カメラと物体との相対位置姿勢を推定する方法である。
また他の方法としては、まず、物体モデル生成に利用するための、対象物体のN枚の画像を撮影する際に、予め、撮影するカメラと、対象物体の、カメラからは観測できないような位置(例えば、物体の内側等)とに、多数の磁気センサ等を取り付けておく。そしてこのカメラで撮影した時の、これらの磁気センサの情報に基づいて、カメラと物体との相対位置姿勢を算出するというようにしてもよい。このように、N枚の各画像それぞれについて、その画像を撮影した時の、カメラと対象物体との相対位置姿勢を設定できるならば、上述したものに限らず、どのような手法を用いて相対位置姿勢を設定してもよい。
このように、本実施形態の物体モデル生成方法では、物体モデルを生成する対象物体の3Dモデルと、その物体を様々な方向、位置から撮影した多数の画像と、各画像内に存在する対象物体の、カメラと物体の相対位置姿勢と、を用いる。これらのデータは、物体モデル生成の処理に先立って、予め用意されているものとする。
図12を参照して、第2実施形態に係る物体モデルを生成する装置の処理ブロック図について説明する。また、併せて、図13を参照して、第2実施形態に係る物体モデルを生成する方法の処理フローについて説明する。
まず、画像・位置姿勢データ入力部1200では、上述の物体モデルを生成する対象物体を様々な方向、位置から撮影した多数の画像(本実施形態ではN枚)、および、各画像内に存在する対象物体の、カメラと物体の相対位置姿勢の情報を入力する。そして、ここで入力された画像、および、各画像に対応するカメラと物体の相対位置姿勢の情報(以下、「相対位置姿勢データ」と称する)を、画像・位置姿勢データ保持部1201に記録して保持する。ここでの処理は、図13のステップS1301に対応する。
次いで、3Dモデル入力部1202において、上述の物体モデルを生成する対象物体の3Dモデルを入力し、入力された3Dモデルを、3Dモデル保持部1203に記録して保持する。ここでの処理は、図13のステップS1302に対応する。ここまでの処理は、予め用意されたデータを入力し、記録して保持する処理であって、以降の処理で、実際にこれらのデータを用いた物体モデル生成処理が行われる。
画像入力部1204では、画像・位置姿勢データ保持部1201から、画像を1枚ずつ順に選択して、初期特徴点検出部1205に入力する。画像を選択する順は任意であるので、例えば、画像に1からNまでの番号が付与されていたとするならば、その順に従って選択して入力すれば良い。以下の説明では、この画像入力部1204において、n番目(n=1、2、・・・、N)の画像を入力したとする。ここでの処理は、図13のステップS1303に対応する。
次に、初期特徴点検出部1205において、画像入力部1204により入力されたn番目の画像に対して、多数の初期特徴点を検出し、それらの初期特徴点の画像座標系での位置と、各初期特徴点の属性を算出する処理を行う。本実施形態では、ここでの初期特徴点およびその属性として、非特許文献6に開示されているSIFT特徴を用いる。
本実施形態における初期特徴点の位置は、非特許文献6に開示のSIFT特徴における、Key Pointsの位置であり、これらの画像座標系における位置を求める。また、初期特徴点の属性は、非特許文献6に開示のSIFT特徴における、Descriptor(本実施形態では、128次元のベクトルa)であり、これを各初期特徴点の属性として算出する。そして、ここで求めた多数の初期特徴点の位置と、その属性の情報とを、初期特徴点位置情報変換部1207に送る。ここでの処理は、図13のステップS1304に対応する。本実施形態では、このように、初期特徴点としてSIFT特徴を用いる。しかし、本発明はこれに限るものではなく、例えば、非特許文献7に開示の手法等のように、画像から何らかの特徴点の位置と、その特徴点に関する属性が得られるような手法であれば、その他の手法を用いても構わない。また、SIFTのような局所的な輝度勾配方向のヒストグラムに類する他の特徴記述を用いても良い。
続いて、位置姿勢データ入力部1206において、画像・位置姿勢データ保持部1201から、画像入力部1204で入力されたn番目の画像に対応するカメラと物体との相対位置姿勢データを選択し、初期特徴点位置情報変換部1207に送る。ここで、相対位置姿勢データは、上述のように、物体モデルを生成する対象物体の中心(つまり、物体に設定された物体座標系の原点)の、カメラ座標系での位置(x、y、z)、および、物体座標系の3軸に関する回転角(α、β、γ)である。この位置姿勢データ入力部1206では、画像入力部1204で入力されたn番目の画像に対応する、これら6つの値からなるデータを、画像・位置姿勢データ保持部1201から読み出して、初期特徴点位置情報変換部1207に送ることになる。ここでの処理は、図13のステップS1305に対応する。
次に、初期特徴点位置情報変換部1207では、まず、初期特徴点検出部1205において検出された多数の初期特徴点から、物体モデルを生成する対象物体表面上のものでないものを削除する。次いで、削除されなかった初期特徴点(以下、「物体上初期特徴点」と称する)のそれぞれについて、その初期特徴点の画像座標系における位置を、物体座標系での位置情報に変換する。そして、物体上初期特徴点のそれぞれについて、物体座標系に変換した位置情報と、初期特徴点検出部1205で求められた初期特徴点の属性、および、画像入力部1204で入力された画像の番号を、初期特徴点情報保持部1208に記録して保持する。ここでの処理の詳細について、図14(a)を参照して説明する。
図14(a)は、初期特徴点位置情報変換部1207における処理の概要を示すための、仮想的なカメラ座標系空間を示す図である。ここで、カメラ140は、仮想的なカメラであり、画像入力部1204で入力されたn番目の画像を撮影したカメラに対応し、このカメラの主点が、カメラ座標系の原点1400である。このカメラ140が、図14(a)に示した、仮想的なカメラ座標系を形成することになる。このカメラ座標系の3軸は、煩雑になるため図示していないが、第1実施形態でのカメラ座標系と同様である。画像面141は、第1実施形態における画像面と同様のもので、画像入力部1204で入力された画像に対応する。画像面141上の、物体像143は、画像入力部1204で入力されたn番目の画像内の、物体モデルを生成する対象物体の像である。また、画像面141上の、初期特徴点144、および、初期特徴点145は、初期特徴点検出部1205で検出された初期特徴点の位置を示している。
まず、初期特徴点位置情報変換部1207における、初期特徴点検出部1205で検出された多数の初期特徴点から、物体モデルを生成する対象物体表面上のものでないものを削除する処理について説明する。初期特徴点位置情報変換部1207では、まず、3Dモデル保持部1203を参照し、3Dモデル入力部1202により入力された、物体モデルを生成する対象物体の3Dモデルを読み込む。そして、位置姿勢データ入力部1206により入力された、相対位置姿勢データに基づいて、読み込んだ3Dモデルを、仮想的なカメラ座標系に配置する。図14(a)の3Dモデル142は、この処理により、カメラ座標系に配置されたものを示している。ここで、原点1420と、x’軸1421、y’軸1422、z’軸1423の3軸からなる3次元座標系は、予め、物体モデルを生成する対象となる物体に定めておいた物体座標系である。つまり、図14(a)に示した物体座標系が、位置姿勢データ入力部1206により入力された相対位置姿勢データで仮想的なカメラ座標系に配置され、その物体座標系に基づいて、3Dモデル142が配置されていることになる。なお、相対位置姿勢データとは、物体座標系の原点の、カメラ座標系での位置(x、y、z)、および、物体座標系の3軸に関する回転角(α、β、γ)を意味する。そして、初期特徴点検出部1205で検出された多数の初期特徴点のそれぞれについて、その初期特徴点の画像面141上での位置と、カメラ座標系の原点1400とを結ぶ直線を引く。この時、この直線が、仮想的なカメラ座標系に配置した、3Dモデル142の表面と交差するならば、対応する初期特徴点は、物体モデルを生成する対象物体表面上にあると判定する。逆に、この直線が、3Dモデル142の表面と交差しない場合、対応する初期特徴点は、物体モデルを生成する対象物体表面上にないと判定して削除する。この処理を、具体的に図14(a)に示した初期特徴点144、および、初期特徴点145を例として説明する。初期特徴点144は、図14(a)に示す通り、物体モデルを生成する対象物体の像、つまり物体像143上にある。この初期特徴点144とカメラ座標系の原点1400とを結ぶ直線144Lは、逆投影点144Nにおいて、3Dモデル142の表面と交差している。一方、初期特徴点145は、図14(a)に示す通り、物体像143の外に存在している。つまり、この初期特徴点145は、この物体ではなく、背景から得られた初期特徴点である。このような場合、この初期特徴点145とカメラ座標系の原点1400とを結ぶ直線145Lは、図14に示す通り、3Dモデル142の表面と交差しない。このように、上記示した直線と3Dモデル142の表面とが交差するか否かを基準にする方法を用いることにより、画像上で観測された初期特徴点が、物体の表面上の特徴点であるか否かを判定することが可能となる。初期特徴点位置情報変換部1207では、まずこのような処理により、初期特徴点検出部1205において検出された多数の初期特徴点の全てについて、物体モデルを生成する対象物体表面上のものでないものを削除し、物体上初期特徴点のみを残す処理を行う。
次に、削除されずに残った物体上初期特徴点のそれぞれについて、その物体上初期特徴点の位置(画像座標系における位置)を、物体座標系での位置情報に変換する処理について説明する。ここでは、まず上記説明した、物体上初期特徴点の画像面141上での位置とカメラ座標系の原点1400とを結ぶ直線と、3Dモデル142の表面とが交差する点を考え、その点の物体座標系における位置を求める。そして、この点の物体座標系における位置を極座標表現(θ’、φ’、r’)に変換し、この内θ’とφ’を、対応する物体上初期特徴点の位置情報とする。つまり、図14(a)に示した初期特徴点144の場合は、直線144Lが物体モデル142と交差する逆投影点144Nの、物体座標系での位置を求め、それを極座標表現に変換し、これを、初期特徴点144の位置情報とすることになる。ここで、この極座標表現におけるθ’とφ’は、第1実施形態における方位角θと仰角φと同じ定義のものである。従って、直線と物体モデル142が交差する点の、物体座標系における位置が(x’、y’、z’)=(X’、Y’、Z’)であるなら、極座標表現(θ’、φ’、r’)には、以下の式(8)により変換できる。
仮に、この直線と物体モデル142が交差する点が複数ある場合は、その複数の点の内、最もカメラ座標系の原点1400に近い点を選択し、その点に関して求めた物体座標系の位置を極座標表現に変換したものを、その初期特徴点の位置情報とする。初期特徴点位置情報変換部1207では、削除されずに残った全ての物体上初期特徴点に対し、このような極座標表現の位置情報を求める処理を行う。
最後に、初期特徴点位置情報変換部1207では、削除されずに残った全ての物体上初期特徴点に関する、以下の表5に示す3種類のデータを、初期特徴点情報保持部1208に記録して保持する。
つまり、残された全ての物体上初期特徴点について、1つの物体上初期特徴点につき128+2+1=131個のパラメータからなる情報を、初期特徴点情報保持部1208に記録することになる。この表5に示した、131個のパラメータからなる情報を、以下では初期特徴点情報と記載する。以上が、初期特徴点位置情報変換部1207での処理となる。ここでの処理は、図13のステップS1306に対応する。上述のように画像入力部1204から初期特徴点位置情報変換部1207までの処理により、画像入力部1204で入力されたn番目の画像中に存在する複数の物体上初期特徴点に関する表5に示した初期特徴点情報が初期特徴点情報保持部1208に記録される。
上記説明した、画像入力部1204から初期特徴点位置情報変換部1207までの処理を、画像・位置姿勢データ保持部1201に保持されているN枚の画像全てに対して行うまで繰り返し上記処理を行う。ここでの処理は、図13の、ステップS1307に対応する。これにより、画像・位置姿勢データ保持部1201に保持されているN枚の画像それぞれについて、各画像中に存在する、複数の物体上初期特徴点に関する上記表5に示した初期特徴点情報が、初期特徴点情報保持部1208に記録されることになる。画像・位置姿勢データ保持部1201に保持されているN枚の画像全てに対して、上記処理を行った場合(ステップS1307;YES)、次の初期モデル設定部1209での処理に進む。
初期モデル設定部1209では、まず、初期特徴点情報保持部1208に保持された多数の初期特徴点情報から、複数個の初期特徴点情報をランダムにサンプリングする。そして、詳細な処理は後に説明するが、このランダムにサンプリングした複数個の初期特徴点情報に基づいて、初期の物体モデルを生成し、その情報を、特徴点モデル保持部1211に記録する。ここでランダムにサンプリングする個数が、本実施形態における物体モデルの特徴点の数となる。本実施形態の説明においては、ここでランダムにサンプリングする個数をk個とする。つまり、本実施形態における物体モデルの生成では、k個の特徴点からなる物体モデルを生成することになる。ここでの個数は、凡そ、数個から数百個程度の値で、予め適当な数に決めておけば良い。ただし、この個数が少なすぎると充分な物体モデルが生成されない可能性が高い。しかし、逆にこの個数が多すぎると、例えば、後に説明する物体識別方法における処理負荷が高くなる等の問題が発生する。そのため、好適には、この個数を変えたいくつかのパターンで物体モデルを生成しておき、後に説明する物体識別方法等、この物体モデルを利用した処理における精度や、処理負荷に応じて決めてやれば良い。
初期モデル設定部1209での、複数個の初期特徴点情報に基づいて、初期の物体モデルを生成する処理の詳細と、本実施形態における物体モデルの概要について説明する。
本実施形態に係る物体モデルも、第1実施形態で説明した物体モデルと同様に、基本的には、複数の特徴点(本実施形態ではk個)の属性と、それぞれの3次元的な方向の情報から成るものである。
まず、本実施形態の物体モデルにおける、特徴点の属性について説明する。第1実施形態の物体モデルでは、特徴点の属性として色相情報を用いた。これに対して、本実施形態で生成する物体モデルでは、この特徴点の属性として、非特許文献6に開示のSIFT特徴におけるDescriptorの確率密度分布を用いる。以下では簡単のため、SIFT特徴におけるDescriptorを「SIFT記述子」と称する。このSIFT記述子は、上述のように、本実施形態では128次元のベクトルaであり、本実施形態では、この確率密度分布を、式(9)に示すような正規分布PA(a)としてモデル化する。
式(9)に示した、正規分布でモデル化した確率密度分布は、128次元のベクトル値である、平均SIFT記述子ベクトルA、および、SIFT記述子標準偏差σAにより決まる。そこで、この平均SIFT記述子ベクトルA、および、SIFT記述子標準偏差σAを、各特徴点の属性を記述するための情報として用いる。以下では、i番目(i=1、2、・・・、k)の特徴点に対応する平均SIFT記述子ベクトルをAi、また、SIFT記述子標準偏差をσAiと記載する。
続いて、本実施形態の物体モデルにおける、物体中心から特徴点への3次元的な方向の情報について説明する。第1実施形態の物体モデルでは、検出が容易な特徴点を用いていたので、特に特徴点の位置ずれ等を考慮せず、物体の中心から、その特徴点への方向を、単純に方位角θおよび仰角φを用いてモデル化した。これに対して、本実施形態では、第1実施形態に比べて、特徴点の曖昧性が強いため、第1実施形態と比較すると、特徴点の位置がずれる可能性が高い。そこで本実施形態では、このような特徴点の位置ずれを考慮し、物体中心から特徴点への3次元的な方向の情報を、特徴点の属性と同様に、方位角θ’と、仰角φ’の確率密度分布としてモデル化する。本実施形態では、この確率密度分布を、特徴点の属性と同様に、式(10)に示すような正規分布PS(θ’、φ’)としてモデル化する。
ここで、Angle({θ、φ}、{θ’、φ’})は、方位角θ、仰角φの方向と、方位角θ’、仰角φ’の方向との成す角であり、以下の式(11)により求められる。
式(10)に示した、正規分布でモデル化した確率密度分布は、平均方位角θと、平均仰角φ、および、平均方向からの標準偏差σSにより決まる。そこで、この平均方位角θと、平均仰角φ、および、平均方向からの標準偏差σSを、各特徴点の方向のモデルを記述するための情報として用いる。以下では、i番目(i=1、2、・・・、k)の特徴点に対応する平均方位角をθi、平均仰角をφi、および、平均方向からの標準偏差をσSiと記載する。
以上をまとめると、本実施形態における物体モデルは、各特徴点についての、以下の表6に示す情報で構成されることになる。
初期モデル設定部1209では、まず、k個の初期特徴点情報をランダムにサンプリングする。そして、i番目にサンプリングした初期特徴点情報(表5を参照)のデータの内、表5に示した1番目の項目のデータである128次元のベクトルaを、この表6に示した1番目の項目である、平均SIFT記述子ベクトルAiの初期値として設定する。また、表5に示した2番目の項目のデータ(θ’、φ’、r’)の内、θ’を表6に示した3番目の項目である平均方位角θi、φ’を4番目の項目であるφiの初期値として設定する。表6に示した項目の内、残りの2つの項目(2番目と5番目の項目である標準偏差)に関しては、k個全ての特徴点に対して、予め定めた所定の値を設定する。ここで設定する予め定めた所定の値は、正の値であれば任意である。ただし、この値として非常に小さい値を設定すると、後述のEMアルゴリズムを利用した学習がうまく行われない可能性が高くなる。しかし、逆にこの値を非常に大きい値にしてしまっても、やはり学習がうまく行われない可能性が高くなる。そこで、ここで設定する予め定めた所定の値は、後述のEMアルゴリズムを利用した学習がうまく行われるような、小さすぎず、且つ、大きすぎない値を、実験的に設定してやれば良い。EMアルゴリズムを利用した学習がうまく行われるとは、具体的には後に詳細に述べるが、N枚の画像に対する尤度が増加していくことを意味する。ここで実験的に設定する値のオーダは、表6に示した2番目の項目であるSIFT記述子標準偏差σAiについては、SIFT記述子の正規化方法(詳細は、非特許文献6を参照)に依存する。本実施形態においては、この正規化方法として、128次元のベクトル値であるSIFT記述子の、各要素の総和が1となるような正規化を行う。このような場合、SIFT記述子標準偏差σAiの値のオーダは、凡そ0.1から0.9程度の値で実験的に設定すれば良い。また、表6に示した5番目の項目である平均方向からの標準偏差σSiについては、凡そ30から100程度の値で実験的に設定すれば良い。初期モデル設定部1209では、上述のように、全部でk個の特徴点に関する上記表6に示した値を設定し、これらを特徴点モデル保持部1211に記録する。ここでの処理は、13のステップS1308に対応する。
ここまでの処理により、初期特徴点情報保持部1208に、N枚の画像分の、上記表5に示した初期特徴点情報が記録される。また、特徴点モデル保持部1211に、初期のモデルとして、本実施形態の物体モデルにおけるk個の特徴点ごとに上記表6に示した情報が記録される。以降の、最適特徴点検出部1210からの処理では、これらの情報を用いて、特徴点モデル保持部1211に記録された情報を、EMアルゴリズムを利用した学習により更新していくことになる。
最適特徴点検出部1210では、まず、初期特徴点情報保持部1208に保持された初期特徴点情報から、画像番号ごとに、特徴点モデル保持部1211に記録された各特徴点のそれぞれに最も一致する初期特徴点情報を検出する。そして、検出された最も一致する初期特徴点に関する情報を、画像ごとに特徴点分記録すると共に、その画像における尤度を算出する処理を行う。
この最適特徴点検出部1210における具体的な処理の詳細について、ここでの処理フローを示した図14(b)参照して説明する。
まず、ステップS1401において、1からNまでの画像番号を順に選択していく。以下では、ここで、画像番号nを選択したとして説明する。
続いて、ステップS1402において、1からkまでの特徴番号を順に選択していく。以下では、ここで、特徴番号iを選択したとして説明する。
次の、ステップS1403において、初期特徴点情報保持部1208に保持された初期特徴点情報から、まず、画像番号nに対応する初期特徴点情報のみを抽出する。そして、抽出された初期特徴情報の全てに対して、特徴番号iに対応する特徴点との一致度を算出する。ここで、この一致度F1は、以下の式(12)により求める。
この式(12)中、Ai、σAi、θi、φi、σSiは、ステップS1402で選択された特徴番号iに対応する特徴の、上記表6に示した情報に対応するものである。また、a、θ’、φ’は、一致度を算出する対象の初期特徴情報であって、上記表5に示したものに対応する。この式(12)を用いた一致度の算出を、画像番号に基づいて抽出された初期特徴情報全てに対して求め、最大の一致度である初期特徴情報を検索する。そして、ここで検索された初期特徴情報を、以下の表7に示す形式で記録しておく。
表7の5番目の項目であるδniは、表にも示した通り、ここで求めた最大の一致度が、所定値以上であるか否かを示すデータである。具体的には、求めた最大の一致度が、例えば、0.1以上ならば、特徴番号iに対応する初期特徴情報が検出できたとみなして、δni=1とし、0.1以下ならば、対応する初期特徴情報が検出できなかったとみなし、δni=0とするといったデータである。ステップS1403では、このように、画像番号nに対応する初期特徴情報の中から、特徴番号iに対応する特徴点との一致度が最も高いものを検索し、その初期特徴情報について、上記表7に示した情報を記録する処理を行う。
続いて、ステップS1404において、ステップS1402で、k個の特徴番号を全て選択したか否かを判定する。ステップS1402において、k個の特徴番号の全てを選択したならば(ステップS1404;YES)、次のステップS1405に進む。まだ選択していない特徴番号があるならば(ステップS1404;NO)、ステップS1402に戻り、新たな特徴番号を選択して、ステップS1403の処理を、新たな特徴番号に対して実行することになる。このループ処理により、ステップS1401で選択された画像番号に対応する初期特徴情報の中から、k個の特徴それぞれについて、最も一致度が高かった初期特徴情報が検索される。そして、それぞれについて、上記表7に示したデータ(つまり、k個分の表7に示したデータ)が記録されることになる。
次のステップS1405において、ステップS1401で選択された画像番号nに対応する尤度Lnを算出して記録する。この尤度Lnは、次の式(13)により求める。
この式(13)中の、mni、δniは、それぞれ上記表7に示したものである。この画像番号nに対応する尤度Lnは、端的に言えば、最大の一致度が所定値以下であったものに関しては無視し、求めた最大の一致度が所定値以上であったものに関してのみ、その一致度の積を求め、それを記録しておくことになる。
そして、ステップS1406において、ステップS1401で、N個の画像番号を全て選択したか否かを判定する。ステップS1401において、N個の特徴番号の全てを選択したならば(ステップS1406;YES)、この最適特徴点検出部1210での処理が終了となる。まだ選択していない画像番号があるならば(ステップS1406;NO)、ステップS1401に戻り、新たな画像番号を選択して、新たな画像番号に対して処理を実行することになる。このループ処理により、N枚全ての画像のそれぞれについて、k個の特徴点分の、上記表7に示したデータ、および、その画像に対応する尤度が記録されることになる。このようなデータの記録が全て終了した段階で、最適特徴点検出部1210での処理が終了となる。
このように、最適特徴点検出部1210では、まず、初期特徴点情報保持部1208に保持された初期特徴点情報から、画像番号ごとに、特徴点モデル保持部1211に記録された、各特徴点と、最も一致度が高い初期特徴点情報とを検出する。そして、検出された最も一致度が高い初期特徴点に関して、上記表7に示した情報を、画像ごとに特徴点分記録すると共に、その画像における尤度を算出する処理を行う。ここでの処理は、図13のステップS1309の最適特徴点の検出処理に対応する。
続いて、特徴点モデル更新部1212において、まず、最適特徴点検出部1210において記録した、画像ごとの尤度を用い、式(14)によりN枚の画像に対する尤度L(以下、「データセット尤度」と称する)を求める。そして、このデータセット尤度Lが収束したか否かを判定する。
データセット尤度Lが収束したか否かの判定では、まず、前回の特徴点モデル更新部1212で求めたデータセット尤度LPastに対する、今回求めたデータセット尤度Lの変化率(=abs{1−abs(L/LPast)}:absは絶対値を意味する)を算出する。そして、この変化率が予め定めた所定値より小さい(例えば、0.1%以内等)場合は、データセット尤度Lが収束したと判定する。ここで、データセット尤度Lが収束したと判定された場合は、最後の物体モデル出力部1213での処理に進む。一方、データセット尤度Lが収束したと判定されなかった場合は、引き続き、この特徴点モデル更新部1212において、特徴点モデル保持部1211に記録されている、k個の特徴点に関する情報を更新する処理を行う。ここでの処理の分岐は、図13のステップS1310に対応する。ここで求めたデータセット尤度Lは、次回の特徴点モデル保持部1211における処理において、変化率を求めるために用いるので、このデータセット尤度Lを、LPastとして記録しておく。また、このデータセット尤度Lが収束したか否かの判定では、データセット尤度の変化率を求めるために、前回の特徴点モデル更新部1212で求めたデータセット尤度LPastが必要となる。しかし、初回の特徴点モデル更新部1212での処理では、この前回のデータセット尤度LPastが存在しないため、変化率を求めることができない。そこで、初回の特徴点モデル更新部1212での処理では、このデータセット尤度Lが収束したか否かの判定はスキップする。そして、引き続きこの特徴点モデル更新部1212において、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報を更新する処理を行うようにすればよい。
以下、特徴点モデル更新部1212において、データセット尤度Lが収束したと判定されなかった場合に行う、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報を更新する処理について説明する。ここでは、最適特徴点検出部1210で記録されたN枚全ての画像のそれぞれについての、k個の特徴点分の上記表7に示したデータを用いて、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報を更新する。具体的には、上記表6に示した、物体モデルにおける各特徴点に関する情報を、全ての特徴点に関して更新する。この表6に示した、i番目の特徴点に関する情報の、更新後の値は、以下の式(15)から式(19)により求められる。
1.平均SIFT記述子ベクトルAi
2.SIFT記述子標準偏差σAi
式(16)において、Aiは式(15)で求めた、更新後の平均SIFT記述子Aiである。
3.平均方位角θi
4.平均仰角θi
5.平均方向からの標準偏差σSi
式(19)において、θi、および、φiは、式(17)、および、式(18)で求めた、更新後の平均方位角θi、および、更新後の平均仰角φiである。
特徴点モデル更新部1212において、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報を更新する処理では、式(15)から式(19)を用い、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報を更新する。ここでの処理は、図13のステップS1311に対応する。
上記特徴点モデル更新部1212での更新処理が終了した後、最適特徴点検出部1210に戻り、最適特徴点検出部1210での処理を行って、再び特徴点モデル更新部1212での処理を行う。このような繰り返し処理を、特徴点モデル更新部1212において、データセット尤度Lが収束したと判定されるまで続ける。このようなEMアルゴリズム的な学習処理により、特徴点モデル保持部1211に記録されているk個の特徴点に関する情報が、徐々に精度の高いものにすることができる。
最後に、物体モデル出力部1213において、特徴モデル保持部1211に記録されているk個の特徴点に関する情報を、対象物体の物体モデルとして外部に出力する。これにより、本実施形態に係る物体モデル生成方法の処理が終了となる。ここでの処理は、図13のステップS1312に対応する。
このように、本実施形態の物体モデル生成方法では、物体モデルを記述する対象となる物体を、様々な位置、方向から撮影した画像を用いて、この物体モデルを記述する際に利用する特徴点の属性を学習により獲得することができる。そして、この学習により獲得した特徴点の属性を用い、この物体の物体モデルを生成することが可能になる。また、本実施形態の物体モデル生成方法は、特徴点の属性と、3次元的な方向とを、確率的にモデル化することができる。これにより、特徴点の属性に関する不安定性や、特徴点位置の曖昧さをモデルに表現することが可能になる。
本実施形態では、上記説明したように、物体の位置姿勢が既知である多数の画像と、物体の3Dモデルとを用いることによって、物体モデルの生成を行った。しかし、本発明はこれに限るものではなく、例えば、物体の3Dモデルが無く、多数の画像内の、物体の位置姿勢が未知であった場合でも、EMアルゴリズムを適用することにより、精度が低下する可能性は高いものの、同様の物体モデルを生成することが可能である。具体的には、初期の物体モデルを適当に定めておき、この物体モデルを用いて、逐次、各画像内に存在する物体の位置姿勢と、特徴点の3次元的な位置とを推定し、この推定値を用いて、上記と同様の学習を行うようにすれば良い。
続いて、本実施形態の物体モデル生成方法により生成した物体モデルを用い、入力された画像中に対象物体が存在するか否か、および、対象物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例を示す。本実施形態の物体識別方法は、基本的には第1実施形態の物体位置姿勢決定方法と同様である。そこで、第1実施形態の物体位置姿勢決定方法とは異なる部分のみ説明し、同様の部分については説明を省略する。
図15(a)を参照して、本実施形態における、物体識別装置の処理ブロック図について説明する。また、図15(b)を参照して、本実施形態における、物体識別方法の処理フローについて説明する。
まず、物体モデル入力部150において、上記示した本実施形態の物体モデル生成方法により生成した物体モデルを入力し、それを物体モデル保持部151に記録して保持する。これにより、全部でk個の特徴点からなる物体モデルであって、それぞれの特徴点について、上記表6に示したデータからなる物体モデルが、物体モデル保持部151に保持されることになる。ここでの処理は、図15(b)のステップS1501に対応する。
次に、画像入力部152において、識別対象となる画像を入力する。ここでの処理は、図15(b)のステップS1502に対応する。
次いで、初期特徴点検出部153において、画像入力部152で入力された画像に対して、図12の初期特徴点検出部1205での処理と同様の処理を行う。ここでの処理の内容は、初期特徴点検出部1205と全く同様の処理であるので説明を省略する。ここまでの処理により、入力された画像中から、多数の初期特徴点が検出され、その初期特徴点の位置と、それぞれの属性とが得られることになる。
続いて、最大一致度位置姿勢探索部154において、物体モデル保持部151に保持されている物体モデルと、初期特徴点検出部153により得られた多数の初期特徴点の位置(画像座標系での位置)および属性とに基づいて、画像中の物体の位置姿勢を推定する。そして、この推定された位置姿勢における物体モデル一致度を算出する。ここでの処理の基本的な流れは、図5に示した、第1実施形態における最大一致度位置姿勢探索部504の処理と同様である。しかし、第1実施形態の最大一致度位置姿勢探索部504での処理における、図8に示した、ステップS804、ステップS805、および、ステップS810の処理が少々異なる。そこで、図8を参照して、本実施形態における最大一致度位置姿勢探索部154の処理の、上記3つの、第1実施形態とは異なる部分のみを詳細に説明する。
ステップS804では、第1実施形態では、物体モデルが持つ各特徴点の方向の、画像面41へ投影したモデル方向ベクトルを求めた。本実施形態でも、同様のモデル方向ベクトルを、各特徴点について求める。第1実施形態では、各特徴点の方向に関する情報は、方位角と仰角であり、この情報に基づいてモデル方向ベクトルを求めた。これに対して、本実施形態では、各特徴点の方向に関する情報は、平均方位角と平均仰角(および、平均方向からの標準偏差)である。そこで、本実施形態では、この平均方位角、および、平均仰角を、第1実施形態における方位角、および、仰角とみなして、同様の処理により、モデル方向ベクトルを求める。つまり、方位角と仰角からモデル方向ベクトルを求めるのか、平均方位角と平均仰角からモデル方向ベクトルを求めるのかが異なるのみで、その他に関しては、第1実施形態と全く同様である。
続くステップS805では、第1実施形態では、式(6)を用いて物体モデル一致度を求めた。これに対して、本実施形態では、以下のような方法で、物体モデル一致度を算出する。まず、物体モデルが持つ特徴点を1つずつ順に選択していく。以下では、i番目の特徴点を選択したとして説明する。次に、図15(a)の初期特徴点検出部153で検出された、全ての初期特徴点を、1つずつ順に選択していく。以下では、ここで選択した初期特徴点の属性、つまりSIFT記述子がベクトルa、画像座標上の位置が(ξ”,ζ”)であったとする。この時、ステップS802において、物体モデルの中心位置から、ここで選択された初期特徴点への観測特徴ベクトルq”を求める。この観測特徴ベクトルq”は、物体モデルの中心が、画像座標系で(x”、y”)=(X”、Y”)と設定されていたならば、ベクトルq”=(ξ”−X”,ζ”−Y”)Tと求められる。そして、先にステップS804で求めておいたモデル方向ベクトルの内、i番目の特徴点に対応するモデル方向ベクトルをpi”とする。そして、選択された初期特徴点に関するSIFT記述子ベクトルa、および、観測特徴ベクトルq”を用い、次の式(20)を用いて、選択された初期特徴点に関する一致度を算出する。
この式(20)中、Ai、σAi、θi、φi、σSiは、選択したi番目の特徴点に関する、上記表6に示した情報に対応するものである。このようなモデル一致度を、図15(a)の初期特徴点検出部153で検出された、全ての初期特徴点全てに対して求める。そして、最も一致度が高かった一致度miを記録しておく。そして、物体モデルが持つ特徴点を順に全て選択し、k個全ての特徴点について、上記示した一致度を求める。そして最後に、次の式(21)により、物体モデル一致度M’を算出する。
この式(21)中、miは先に述べた式(20)により求められる、物体モデルが持つi番目の特徴に対する一致度である。本実施形態のステップS805における処理は、この物体モデル一致度の算出方法のみが異なる。
最後に、ステップS810は、第1実施形態では、単純に最も物体モデル一致度が高かった時の物体モデルの中心位置と姿勢とを、物体の位置姿勢推定値として決定したのみであった。これに対して、本実施形態では、これに加えて最も高かった物体モデル一致度の値(つまり、式(21)により求められる値)を、図15(a)の物体識別結果出力部155に出力する処理を行う。本実施形態のステップS810における処理は、この最も高かった物体モデル一致度の値を出力する点のみが異なる。
以上が、本実施形態の最大一致度位置姿勢探索部154での処理における、第1実施形態と異なる部分である。これ以外の部分に関しては、基本的に図5に示した第1実施形態の最大一致度位置姿勢探索部504での処理と同様であるので説明を省略する。この最大一致度位置姿勢探索部154での処理は、図15(b)のステップS1504に対応する。このように、本実施形態でも、第1実施形態と同様に、物体モデルを様々な位置姿勢に変化させ、物体モデル一致度が最も高い物体モデルの位置姿勢を探索する。しかし、本発明はこれに限るものではない。第1実施形態において説明したのと同様に、例えば最小二乗法等を用いて、モデル方向ベクトルと、観測方向ベクトルとの成す角が最小になるような物体モデルの位置姿勢を探索しても構わない。また、平均SIFT記述子と、初期特徴点に対応するSIFT記述子とのユークリッド距離が最小になるような物体モデルの位置姿勢を探索しても構わない。
最後に、物体識別結果出力部155において、最大一致度位置姿勢探索部154から出力され、最も高かった物体モデル一致度の値に基づいて、画像入力部152で入力された画像中に、物体モデル入力部150で入力された物体モデルに対応する物体が存在するか否かの判定を行う。ここでは単純に、この最も高かった物体モデル一致度の値が、予め定められた所定の値より大きければ、物体が存在すると判定し、小さければ物体が存在しないと判定する。ここで用いる所定の値は、実験的に決定すればよい。例えば、本実施形態の物体モデル生成方法において、データセット尤度Lが収束した段階における、式(13)により求められる画像の尤度程度の値にすればよい。そして、この最も高かった物体モデル一致度の値が、予め定められた所定の値より大きい場合、画像入力部152で入力された画像中に当該物体モデルに対応する物体が存在すると判定される。そして、その物体の位置姿勢が、最大一致度位置姿勢探索部154で決定された位置姿勢であると外部に出力する。これにより、本実施形態の物体識別方法の処理が終了となる。
一方、この最も高かった物体モデル一致度の値が、予め定められた所定の値より小さかった場合は、画像入力部152で入力された画像中に、当該物体モデルに対応する物体が存在しないという結果を外部に出力する。そして、これにより、本実施形態の物体識別方法の処理が終了となる。
上記説明した、物体モデル入力部150から物体識別結果出力部155までの処理により、本実施形態の物体モデル生成方法により生成された物体モデルを用いて、入力された画像中にその物体が存在するか否かを識別する処理が可能になる。また、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する処理が可能になる。本実施形態の物体識別方法でも、第1実施形態と同様に、基本的には、物体の中心位置から、各特徴点への3次元的な方向をモデルとする物体モデルを用いている。このため、物体の3次元的な向きの変動に対応可能であり、且つ、画像上での物体のサイズ変動に対して不変であるという、第1実施形態で示したのと同様の効果をもって物体を識別することが可能になる。
また、本実施形態の物体識別方法でも、第1実施形態と同様、本実施形態の物体モデルの情報に加えて、物体の中心から各特徴点までの絶対距離等の物体の奥行き方向の位置を求めるのに必要な情報を持たせておくことにより、物体の奥行き方向の位置を推定することも可能である。
以上、第2実施形態は、物体モデルを記述する対象の物体を撮影した多数の画像を用い、EMアルゴリズムを利用した学習により物体モデルを生成する物体モデル生成方法を説明した。また、生成した物体モデルを用い、入力された画像中にその物体が存在するか否か、および、物体が存在する場合は、その物体がどのような位置姿勢であるのかを識別する物体識別方法の例として説明した。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (12)
- モデル入力手段が、対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた3次元座標の原点から前記特徴点への3次元方向ベクトルと、により記述される物体モデルを入力するモデル入力工程と、
取得手段が、前記対象物体を撮像した画像を取得する取得工程と、
検出手段が、前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を2次元特徴点の位置として検出する検出工程と、
変更手段が、前記物体モデルの位置および姿勢をそれぞれ変更する変更工程と、
投影手段が、前記変更工程で変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記3次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影工程と、
算出手段が、前記投影原点から前記2次元特徴点への第1方向ベクトルと、前記投影原点から前記投影特徴点への第2方向ベクトルとの一致度を算出する算出工程と、
決定手段が、前記算出工程で算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定工程と、
を有することを特徴とする位置姿勢決定方法。 - 前記特徴量が、前記特徴点の色相を示す色相情報であることを特徴とする請求項1に記載の位置姿勢決定方法。
- 前記算出工程は、前記第1方向ベクトルと前記第2方向ベクトルとの内積を正規化した値を前記一致度として算出することを特徴とする請求項1又は2に記載の位置姿勢決定方法。
- 前記物体モデルが、前記対象物体を撮像する撮像手段から前記対象物体までの奥行き方向の位置を決定するのに必要な情報として、前記対象物体の中心から前記特徴点までの絶対距離の情報を更に有し、
前記決定工程は、前記絶対距離の情報に基づいて、前記画像上の前記対象物体の奥行き方向の位置も併せて決定することを特徴とする請求項1乃至3の何れか1項に記載の位置姿勢決定方法。 - 座標決定手段が、対象物体に対して3次元座標系を決定する座標決定工程と、
位置決定手段が、前記対象物体の特徴を示す特徴点の前記3次元座標系における位置を決定する位置決定工程と、
生成手段が、前記特徴点の特徴を示す特徴量と、前記3次元座標の原点から前記特徴点の3次元的な位置への方向を示す方向情報とを含む物体モデルを、前記対象物体の3次元モデルとして生成する生成工程と、
を有することを特徴とする物体モデル生成方法。 - 前記方向情報が、前記座標決定工程で決定された前記3次元座標系における方位角および仰角であることを特徴とする請求項5に記載の物体モデル生成方法。
- 前記方向情報が、前記座標決定工程で決定された前記3次元座標系における3次元の方向ベクトルであることを特徴とする請求項5に記載の物体モデル生成方法。
- 前記3次元モデルが、前記対象物体を撮像する撮像手段から前記対象物体までの奥行き方向の位置を決定するのに必要な情報として、前記対象物体の中心から前記特徴点までの絶対距離の情報を更に有することを特徴とする請求項5乃至7の何れか1項に記載の物体モデル生成方法。
- 対象物体に対応するモデルの特徴点の特徴を示す特徴量と、前記モデルに定められた3次元座標の原点から前記特徴点への3次元方向ベクトルと、により記述される物体モデルを入力するモデル入力手段と、
前記対象物体を撮像した画像を取得する取得手段と、
前記特徴量に基づいて、前記物体モデルの特徴点に対応する前記対象物体の特徴点の、前記画像上における位置を2次元特徴点の位置として検出する検出手段と、
前記物体モデルの位置および姿勢をそれぞれ変更する変更手段と、
前記変更手段により変更された各位置および各姿勢における前記物体モデルの前記特徴点および前記3次元座標の原点を、投影特徴点および投影原点として前記画像上に投影する投影手段と、
前記投影原点から前記2次元特徴点への第1方向ベクトルと、前記投影原点から前記投影特徴点への第2方向ベクトルとの一致度を算出する算出手段と、
前記算出手段により算出された各特徴点についての前記一致度に基づく評価値が最大となる前記変更工程で変更された物体モデルの位置および姿勢を、前記対象物体の位置姿勢として決定する決定手段と、
を備えることを特徴とする位置姿勢決定装置。 - 対象物体に対して3次元座標系を決定する座標決定手段と、
前記対象物体の特徴を示す特徴点の前記3次元座標系における位置を決定する位置決定手段と、
前記特徴点の特徴を示す特徴量と、前記3次元座標の原点から前記特徴点の3次元的な位置への方向を示す方向情報とを含む物体モデルを、前記対象物体の3次元モデルとして生成する生成手段と、
を備えることを特徴とする物体モデル生成装置。 - 請求項1に記載の位置姿勢決定方法をコンピュータに実行させるためのプログラム。
- 請求項5に記載の物体モデル生成方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010185575A JP2012043308A (ja) | 2010-08-20 | 2010-08-20 | 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010185575A JP2012043308A (ja) | 2010-08-20 | 2010-08-20 | 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012043308A true JP2012043308A (ja) | 2012-03-01 |
Family
ID=45899504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010185575A Withdrawn JP2012043308A (ja) | 2010-08-20 | 2010-08-20 | 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012043308A (ja) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013185871A (ja) * | 2012-03-06 | 2013-09-19 | Nissan Motor Co Ltd | 移動物体位置姿勢推定装置及び方法 |
JP2014032623A (ja) * | 2012-08-06 | 2014-02-20 | Kddi Corp | 画像処理装置 |
JP2014038566A (ja) * | 2012-08-20 | 2014-02-27 | Kddi Corp | 画像処理装置 |
KR20140055937A (ko) * | 2013-06-01 | 2014-05-09 | (주)지오투정보기술 | 보정 영상으로부터 추출된 대상 객체의 좌표 정보와 항공사진의 좌표 정보를 비교하여 공통점을 추출함으로써 공간데이터를 모델링하는 공간 모델링 시스템 |
CN108197356A (zh) * | 2017-12-20 | 2018-06-22 | 中国铁路总公司 | 一种基于bim技术的四电设施定位优化方法及装置 |
JP2018536244A (ja) * | 2015-12-04 | 2018-12-06 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 再位置特定システムおよび方法 |
JP2020173795A (ja) * | 2019-03-21 | 2020-10-22 | トヨタ リサーチ インスティテュート,インコーポレイティド | オブジェクトの姿勢推定を生成するシステム、デバイス、および方法 |
WO2021014538A1 (ja) * | 2019-07-22 | 2021-01-28 | オムロン株式会社 | テンプレート作成装置、物体認識処理装置、テンプレート作成方法、物体認識処理方法及びプログラム |
US11073699B2 (en) | 2016-08-02 | 2021-07-27 | Magic Leap, Inc. | Fixed-distance virtual and augmented reality systems and methods |
US11206507B2 (en) | 2017-01-23 | 2021-12-21 | Magic Leap, Inc. | Localization determination for mixed reality systems |
US11256090B2 (en) | 2015-03-05 | 2022-02-22 | Magic Leap, Inc. | Systems and methods for augmented reality |
US11315214B2 (en) | 2017-03-17 | 2022-04-26 | Magic Leap, Inc. | Mixed reality system with color virtual content warping and method of generating virtual con tent using same |
US11379948B2 (en) | 2018-07-23 | 2022-07-05 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
US11410269B2 (en) | 2017-03-17 | 2022-08-09 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
US11423626B2 (en) | 2017-03-17 | 2022-08-23 | Magic Leap, Inc. | Mixed reality system with multi-source virtual content compositing and method of generating virtual content using same |
US11429183B2 (en) | 2015-03-05 | 2022-08-30 | Magic Leap, Inc. | Systems and methods for augmented reality |
-
2010
- 2010-08-20 JP JP2010185575A patent/JP2012043308A/ja not_active Withdrawn
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013185871A (ja) * | 2012-03-06 | 2013-09-19 | Nissan Motor Co Ltd | 移動物体位置姿勢推定装置及び方法 |
JP2014032623A (ja) * | 2012-08-06 | 2014-02-20 | Kddi Corp | 画像処理装置 |
JP2014038566A (ja) * | 2012-08-20 | 2014-02-27 | Kddi Corp | 画像処理装置 |
KR101879858B1 (ko) * | 2013-06-01 | 2018-07-19 | (주)지오투정보기술 | 보정 영상으로부터 추출된 대상 객체의 좌표 정보와 항공사진의 좌표 정보를 비교하여 공통점을 추출함으로써 공간데이터를 모델링하는 공간 모델링 시스템 |
KR20140055937A (ko) * | 2013-06-01 | 2014-05-09 | (주)지오투정보기술 | 보정 영상으로부터 추출된 대상 객체의 좌표 정보와 항공사진의 좌표 정보를 비교하여 공통점을 추출함으로써 공간데이터를 모델링하는 공간 모델링 시스템 |
US11429183B2 (en) | 2015-03-05 | 2022-08-30 | Magic Leap, Inc. | Systems and methods for augmented reality |
US11619988B2 (en) | 2015-03-05 | 2023-04-04 | Magic Leap, Inc. | Systems and methods for augmented reality |
US11256090B2 (en) | 2015-03-05 | 2022-02-22 | Magic Leap, Inc. | Systems and methods for augmented reality |
JP2018536244A (ja) * | 2015-12-04 | 2018-12-06 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 再位置特定システムおよび方法 |
US11288832B2 (en) | 2015-12-04 | 2022-03-29 | Magic Leap, Inc. | Relocalization systems and methods |
US11536973B2 (en) | 2016-08-02 | 2022-12-27 | Magic Leap, Inc. | Fixed-distance virtual and augmented reality systems and methods |
US11073699B2 (en) | 2016-08-02 | 2021-07-27 | Magic Leap, Inc. | Fixed-distance virtual and augmented reality systems and methods |
US11711668B2 (en) | 2017-01-23 | 2023-07-25 | Magic Leap, Inc. | Localization determination for mixed reality systems |
US11206507B2 (en) | 2017-01-23 | 2021-12-21 | Magic Leap, Inc. | Localization determination for mixed reality systems |
US11315214B2 (en) | 2017-03-17 | 2022-04-26 | Magic Leap, Inc. | Mixed reality system with color virtual content warping and method of generating virtual con tent using same |
US11410269B2 (en) | 2017-03-17 | 2022-08-09 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
US11423626B2 (en) | 2017-03-17 | 2022-08-23 | Magic Leap, Inc. | Mixed reality system with multi-source virtual content compositing and method of generating virtual content using same |
CN108197356A (zh) * | 2017-12-20 | 2018-06-22 | 中国铁路总公司 | 一种基于bim技术的四电设施定位优化方法及装置 |
US11379948B2 (en) | 2018-07-23 | 2022-07-05 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
US11790482B2 (en) | 2018-07-23 | 2023-10-17 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
JP7193494B2 (ja) | 2019-03-21 | 2022-12-20 | トヨタ リサーチ インスティテュート,インコーポレイティド | オブジェクトの姿勢推定を生成するシステム、デバイス、および方法 |
JP2020173795A (ja) * | 2019-03-21 | 2020-10-22 | トヨタ リサーチ インスティテュート,インコーポレイティド | オブジェクトの姿勢推定を生成するシステム、デバイス、および方法 |
JPWO2021014538A1 (ja) * | 2019-07-22 | 2021-01-28 | ||
JP7251631B2 (ja) | 2019-07-22 | 2023-04-04 | オムロン株式会社 | テンプレート作成装置、物体認識処理装置、テンプレート作成方法、物体認識処理方法及びプログラム |
WO2021014538A1 (ja) * | 2019-07-22 | 2021-01-28 | オムロン株式会社 | テンプレート作成装置、物体認識処理装置、テンプレート作成方法、物体認識処理方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012043308A (ja) | 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム | |
US9940756B2 (en) | Silhouette-based object and texture alignment, systems and methods | |
Ulrich et al. | CAD-based recognition of 3D objects in monocular images. | |
Aldoma et al. | OUR-CVFH–oriented, unique and repeatable clustered viewpoint feature histogram for object recognition and 6DOF pose estimation | |
Ulrich et al. | Combining scale-space and similarity-based aspect graphs for fast 3D object recognition | |
TWI656510B (zh) | 用於基於圖像的物件識別之圖像特徵組合 | |
JP6216508B2 (ja) | 3dシーンにおける3d物体の認識および姿勢決定のための方法 | |
JP5812599B2 (ja) | 情報処理方法及びその装置 | |
Wang et al. | A LINE-MOD-based markerless tracking approachfor AR applications | |
Li et al. | 3D object recognition and pose estimation for random bin-picking using Partition Viewpoint Feature Histograms | |
JP5468824B2 (ja) | 3次元における形状の一致を判定する方法および装置 | |
Gedik et al. | 3-D rigid body tracking using vision and depth sensors | |
Wiedemann et al. | Recognition and tracking of 3D objects | |
JP2014134856A (ja) | 被写体識別装置、被写体識別方法および被写体識別プログラム | |
JP5647072B2 (ja) | 被写体認識装置、被写体認識方法及び被写体認識プログラム | |
Huang et al. | Toward user-specific tracking by detection of human shapes in multi-cameras | |
Sahin et al. | A learning-based variable size part extraction architecture for 6D object pose recovery in depth images | |
Li et al. | Fast and globally optimal rigid registration of 3d point sets by transformation decomposition | |
JP6086491B2 (ja) | 画像処理装置およびそのデータベース構築装置 | |
JP5734000B2 (ja) | 物体識別システムおよび方法、並びに、特徴点位置抽出システムおよび方法 | |
Lotfian et al. | View-invariant object recognition using homography constraints | |
Martínez et al. | Object recognition for manipulation tasks in real domestic settings: A comparative study | |
Shah et al. | Performance evaluation of 3d local surface descriptors for low and high resolution range image registration | |
Azad et al. | Accurate shape-based 6-dof pose estimation of single-colored objects | |
Azad | Visual perception for manipulation and imitation in humanoid robots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131105 |