(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下に、図面を参照しながら、本発明の実施形態について説明する。
【0012】
<第1実施形態>
第1実施形態では、現実空間における撮像装置の位置/姿勢を撮像装置から得られる画像に基づいて計測する構成について説明する。計測された撮像装置の位置/姿勢は、例えば、複合現実感システムが、現実空間と仮想物体とを位置合わせして仮想物体を描画することによりユーザに複合現実感を提供するのに利用される。第1実施形態の構成では、現実空間中に移動物体が存在する場合にも高精度にかつ安定して撮像装置の位置/姿勢を計測することが可能となる。複合現実感を体験するユーザは、頭部装着型表示装置(以下、HMD(Head-Mounted Display))を装着することにより、HMDを通して仮想物体が重畳された現実空間を観察する。HMDが搭載している撮像装置により撮像された画像上に、撮像装置の現実空間における位置/姿勢に基づいて仮想物体像が描画される。HMDは、撮像画像に仮想物体像が重畳された画像をユーザに提示する。
【0013】
撮像装置の位置/姿勢の算出には、撮像装置が撮像した画像から検出された画像特徴が用いられる。本実施形態では画像特徴として画像中に存在する特徴点を用いる。「特徴点」とは、画像中の角などの幾何的な構造を指し示す点のことである。撮像装置の時刻tにおける位置/姿勢の算出の概要は次のとおりである。まず、時刻tに撮像された画像(現フレーム)上で検出した特徴点と、時刻tよりも以前の時刻t−1に撮像された画像(前フレーム)上の特徴点とが対応付けられる。そして、前フレームの特徴点と現フレームの特徴点の画像上での二次元の位置および前フレームでの撮像装置の位置/姿勢を基に、現フレームの撮像装置の位置/姿勢が算出される。位置/姿勢の算出時には、安定して精度良く位置/姿勢を算出できる特徴点のみが選択され、利用される。各特徴点は、位置/姿勢の算出に利用すると安定性および精度が高くなるか低くなるかを表す指標である利用可能性情報を保持する。本実施形態においては、利用可能性情報とは当該特徴点が時刻t−1以前に移動物体であったかどうかの判定結果の履歴である。具体的には、利用可能性情報は、算出された位置/姿勢に基づくカメラの動きに対する各特徴点の整合度合いを示す指標である。時刻t−1以前にカメラの動きと整合していた特徴点のみを利用することで、高精度に、安定して位置/姿勢を算出することができる。
【0014】
第1実施形態における撮像装置の位置/姿勢とは、現実空間中に規定された世界座標における撮像装置の位置を表す3パラメータと、撮像装置の姿勢を表す3パラメータとを合わせた6パラメータである。本実施形態では、撮像装置としてステレオカメラが用いられており、とくに断りがない限りステレオカメラのうち左側のカメラの位置/姿勢を撮像装置の位置/姿勢と呼ぶ。また、撮像装置の光軸をZ軸、画像の水平方向をX軸、垂直方向をY軸とする、撮像装置上に規定される三次元の座標系をカメラ座標系と呼ぶ。本実施形態では、とくに断りがない限り、特徴点は左側のカメラの画像で検出した特徴点を指し、特徴点の位置は左側のカメラの画像の横軸をx軸、縦軸をy軸とする画像座標系の二次元位置を表す2パラメータで表わされる。また、本実施形態における移動物体とは例えば複合現実感を体験するユーザの手や他の体験者、机や椅子といった什器のことである。
【0015】
図1Aは、第1実施形態における画像処理システム100の機能構成例を示すブロック図である。画像処理システム100は、情報処理装置1、撮像装置180、画像合成部190、表示部1100を有する。情報処理装置1は、画像入力部110、検出部120、対応付け部130、保持部140、選択部150、算出部160、更新部170を備える。画像入力部110はHMDに搭載されている撮像装置180と接続されている。画像入力部110、算出部160は画像合成部190と接続されている。画像合成部190は表示部1100と接続されている。
【0016】
画像入力部110は、撮像装置180が撮像する画像を時系列(例えば毎秒60フレーム)に取得し、取得した画像を、検出部120、対応付け部130、画像合成部190に提供する。検出部120は、画像入力部110から入力された画像上で特徴点を検出し、特徴点の位置を算出する。検出部120は、算出した特徴点の位置を対応付け部130に提供する。対応付け部130は、保持部140が利用可能性情報141として保持している前フレームの特徴点と、前フレームが撮像された時刻以降に撮像された現フレームから検出部120が検出した特徴点との対応関係を探索し、対応付けを行う。
【0017】
保持部140は、各特徴点の幾何属性と位置/姿勢の算出への利用可能性を対応付けた利用可能性情報141を保持する。特徴点の幾何属性とは、例えば前フレームでの特徴点の位置である。利用可能性情報141のデータ構造の詳細については後述する。選択部150は、保持部140の保持する利用可能性情報を基に、現フレームについて検出された特徴点のうち位置/姿勢の算出に用いる特徴点を選択する。算出部160は、選択部150によって選択された特徴点と保持部140の保持する前フレームの特徴点との画像特徴対応付け部130の探索した対応関係を用いて撮像装置180の世界座標系における位置/姿勢を算出する。更新部170は、算出部160によって算出された撮像装置180の位置/姿勢と対応付け部130による特徴点の対応付け結果を基に、保持部140の保持する利用可能性情報141を更新する。
【0018】
撮像装置180はステレオカメラであり、搭載した左右2つのカメラでシーンのカラー画像を撮像する。画像合成部190は、算出部160が算出した撮像装置180の位置/姿勢と撮像装置の内部・外部パラメータを用いて、仮想物体のCG画像をレンダリングする。画像合成部190は、撮像されたステレオ画像上にCG画像を重畳した画像を合成する。表示部1100はHMD2(
図1B)に設けられており、画像合成部190が合成した画像を表示する。本実施形態ではHMD2はステレオHMDであり、左右の表示デバイスに異なる画像を表示することでユーザによる現実空間と仮想物体の立体視が可能であるとする。
【0019】
図1Bは、本実施形態における画像処理システム100のハードウエア構成例を示すブロック図である。情報処理装置1において、CPU11は、ROM12またはRAM13に格納されたプログラムを実行することにより情報処理装置1の制御、各種処理、機能を実現する。ROM12は読み出し専用の不揮発性メモリであり、RAM13は随時に読み書きが可能な揮発性メモリである。記憶装置14は、ハードディスクなどの大容量の記憶媒体である。インタフェース15は、外部機器と情報処理装置1を接続する。以上の各構成は、バス16により相互に通信が可能に接続されている。
【0020】
一方、HMD2において、CPU21は、メモリ23に格納されているプログラムを実行することによりHMD2の制御、各種処理、機能を実現する。インタフェース22は、外部機器とHMD2を接続する。撮像装置180、表示部1100は、
図1Aに関して上述したとおりである。HMD2における以上の各部は、バス24を介して相互に通信可能に接続されている。インタフェース15とインタフェース22を接続する接続30は、有線接続であってもよいし、無線接続であってもよい。また、接続30は、有線LANまたは無線LANを介した接続であってもよい。
【0021】
なお、
図1Aにおいて、画像入力部110、検出部120、算出部160、画像合成部190は情報処理装置1の内部の構成(機能)として示されているが、これらは、HMD2など、情報処理装置1の外部の構成により実現されてもよい。
【0022】
図2は、保持部140に保持される利用可能性情報141のデータ構造の例を示す図である。各特徴点の幾何属性と利用可能性の値が関連付けられ、保持されている。本実施形態においては、画像特徴の幾何属性は前フレームの特徴点の位置を表す二次元座標である。また、利用可能性は前フレームの処理時に各特徴点が移動物体であるかどうかの判定結果に基づいて算出した値であり、0から1の実数値が保持される。利用可能性は、位置/姿勢の算出に利用される可能性が低いほど0に近づく値である。
【0023】
以上のような構成を備えた本実施形態の画像処理システム100における処理手順について説明する。
図3は、第1実施形態の画像処理システムによる処理手順を示すフローチャートである。
【0024】
ステップS110(初期化処理)において、情報処理装置1は、撮像装置180の内部パラメータを読み込み、撮像装置180の初期位置及び初期姿勢を算出する。撮像装置180の内部パラメータ(焦点距離f
x(画像の水平方向)、f
y(画像の垂直方向)、画像中心位置c
x(画像の水平方向)、c
y(画像の垂直方向)、レンズ歪みパラメータ)は、Zhangの方法(非特許文献1)によって事前に校正される。また、情報処理装置1は、ステレオカメラである撮像装置180を構成する2台のカメラ間の相対的な位置/姿勢(外部パラメータ)を、例えば以下のようにして求める。情報処理装置1は、三次元形状が既知のパターンを左右のカメラで同時に撮影して得られた画像からパターンを基準としたそれぞれのカメラの位置/姿勢を求める。そして、情報処理装置1は、右カメラの位置/姿勢を、左カメラを基準とした位置/姿勢に変換することで、2台のカメラ間の相対的な位置/姿勢を得る。撮像装置180の世界座標系に対する位置/姿勢の初期値t
w→t(t=0)、R
w→t(t=0)は、例えば、サイズが既知の人工のマーカを用いたKatoらの手法(非特許文献2)によって算出される。
【0025】
ステップS120(画像入力処理)において、画像入力部110は、撮像装置180が撮像したステレオ画像を入力する。本実施形態では、撮像装置180がカラー画像を撮像するため、画像入力部110は、入力された画像を濃淡画像に変換し、さらに左右のカメラの内部パラメータを用いてレンズ歪みの影響を除去した画像に変換する。ステップS130(特徴点検出処理)において、検出部120は、画像入力部110が入力した画像(現フレーム)上の特徴点を検出する。特徴点を検出するには、たええば、Shiらの手法(非特許文献3)を用いることができる。
【0026】
ステップS140(特徴点の対応付け処理)において、対応付け部130は、利用可能性情報141に記録されている前フレームの特徴点と、ステップS130で検出された現フレームの特徴点とを特徴点マッチングにより対応付ける。なお、以下では、利用可能性情報141に記録されている前フレームの特徴点を保持特徴点、ステップS130で検出された現フレームの特徴点を検出特徴点と称する場合もある。特徴点マッチングでは、保持特徴点と検出特徴点の周囲の画素の正規化相互相関(SSD:差分二乗和)を算出し、算出された値が所定の閾値M
th以下であればそれら2つの特徴点は同一の物体上の同一の位置の特徴点であるとみなす。本実施形態では、以降、同一の位置であると見なすことを対応付けると呼び、画像上での特徴点の対応付けによって前フレームの特徴点と対応付いた現フレームの特徴点を対応特徴点と呼ぶ。
【0027】
ステップS150(特徴点選択処理)において、選択部150は、保持部140が保持している利用可能性情報141に基づいて、位置/姿勢の算出に用いる対応特徴点を決定する。選択部150は、利用可能性の値が所定の閾値V
thより大きい保持特徴点に対応する対応特徴点を選択する。こうして、複数の検出特徴点から、位置/姿勢の算出に用いられる特徴点が選択される。ステップS160(位置姿勢算出処理)において、算出部160は、ステップS150で選択された対応特徴点と保持部140が保持する保持特徴点とを用いて現フレームを撮影した撮像装置180の位置/姿勢を算出する。算出部160は、撮像装置180の位置/姿勢として、前フレームに対する現フレームの撮像装置180の位置を表す三次元ベクトルであるt
(t−1)→tと、姿勢を表す3×3回転行列であるR
(t−1)→tを算出する。撮像装置180の位置/姿勢の算出には、例えば、Badinoらの手法(非特許文献4)を用いることができる。また、世界座標系に対する撮像装置180の位置/姿勢t
w→t、R
w→tは、前フレームで算出した世界座標系に対する撮像装置180の位置/姿勢t
w→(t−1)、R
w→(t−1)に、前フレームのカメラ座標に対する撮像装置180の位置/姿勢t
(t−1)→t、R
(t−1)→tを積算することで算出される。
【0028】
ステップS170(利用可能性情報の更新処理)において、更新部170は、保持部140が保持している利用可能性情報141(前フレームの特徴点の位置の履歴)を、ステップS160で算出された位置/姿勢を基に更新する。利用可能性情報141の更新処理について、
図4のフローチャートを参照して詳細に説明する。
図4は、ステップS170における利用可能性情報の更新処理の手順を示すフローチャートである。
【0029】
ステップS171において、更新部170は、保持部140が保持する前フレームの特徴点(保持特徴点)の位置と、ステップ160で算出された位置/姿勢とを用いて、現フレームに保持特徴点を投影した位置(投影点)を算出する。より具体的には、まず、更新部170は、前フレームのステレオカメラの左右の画像でステレオマッチングを行い、保持特徴点の左右の画像での視差を求める。更新部170は、視差とカメラの外部パラメータを用いて、保持特徴点の奥行き方向の位置Dを算出する。更新部170は、前フレームの特徴点である保持特徴点の画像座標(u
t−1,v
t−1)、カメラの内部パラメータ(f
x、f
y、c
x、c
y)、奥行きDを用いて、当該保持特徴点の前フレームのカメラ座標系における三次元座標(X
t−1,Y
t−1,Z
t−1)を数1により算出する。
【数1】
【0030】
次に、更新部170は、前フレームを撮影した撮像装置180の位置に対する現フレームを撮影した撮像装置180の位置/姿勢(t
(t−1)→t、R
(t−1)→t)を用いて、現フレームのカメラ座標系における当該保持特徴点の三次元座標(X
t,Y
t,Z
t)を、数2により算出する。
【数2】
【0031】
次に、更新部170は、数3により現フレームのカメラ座標系における当該保持特徴点の三次元座標(X
t,Y
t,Z
t)を現フレームの画像座標(u
t,v
t)に変換する。
【数3】
【0032】
本実施形態では、数1から数3により示される処理を投影と呼ぶ。また、前フレームの特徴点の現フレーム上における投影位置(u
t,v
t)における点を投影点と呼ぶ。次に、更新部170は、対応特徴点と投影点との画像座標上における二次元のユークリッド距離(現フレームにおける対応特徴点の位置と投影位置との距離)を算出する。本実施形態では、算出されたユークリッド距離を再投影誤差と呼ぶ。
【0033】
ステップS172において、更新部170は、ステップS171で算出された再投影誤差に基づいて利用可能性情報を更新する。具体的には、更新部170は、現フレームの利用可能性の値c
tを、前フレームの利用可能性の値c
t−1と再投影誤差から求めた利用可能性の値c
calcのうちの小さい方となるように、利用可能性の値を更新する。すなわち、更新部170は、数4に示されるように、利用可能性の値を更新する。
【数4】
但しc
calcは数5のように定める。
【数5】
【0034】
但し、dはステップS171で算出された再投影誤差、d
thは利用可能性を0とする再投影誤差の所定の閾値とする。また、ステップS171において、更新部170は、次のフレームでの位置/姿勢の算出のために、保持部140が保持する利用可能性情報141の特徴点の幾何属性を、現フレームにおける特徴点の位置に更新する。
【0035】
図3に戻り、ステップS180(画像合成・表示処理)において、画像合成部190は、ステップS160で算出された撮像装置180の位置/姿勢を用いて仮想物体のCG画像をレンダリングする。そして、画像合成部190は、そのCG画像を、撮像装置180により得られたステレオ画像の各画像に重畳合成してHMDの表示部1100に表示する。
【0036】
ステップS190(終了判定処理)において、情報処理装置1は、システムを終了するか否かの判断を行う。マウスやキーボードなどを介して利用者からシステムを終了するコマンドが入力されている場合にはシステムを終了し、さもなければ処理はステップS120に戻り、位置/姿勢の計測処理が継続される。
【0037】
以上に述べたように、第1実施形態によれば、第一の時刻に撮像装置によって撮像された第一の画像から取得され、保持された保持特徴と、第一の時刻以降の第二の時刻に撮像装置によって撮像された第二の画像において検出された検出特徴とが対応付けられる。そして、対応付けられた検出特徴のうち、対応する保持特徴の利用可能性が高いもの(所定閾値以上のもの)が、撮像装置の位置/姿勢の算出に用いられる。よって、保持特徴の利用可能性を適切に設定することで、より正確な位置/姿勢の算出が可能になる。さらに、第1実施形態によれば、利用可能性の値が再投影誤差に基づいて更新される(より具体的には、再投影誤差の大きな特徴点の利用可能性の値を小さくする)。このような利用可能性情報を用いて位置/姿勢算出時に用いる特徴点を選択することで、移動物体が存在するシーンや繰り返し構造などにより特徴点の誤対応が生じるような物体の存在するシーンでも高精度に、且つ安定して、位置/姿勢を算出することができる。
【0038】
<変形例1−1>
なお、画像を撮像する撮像装置180はステレオカメラに限るものではなく、現実空間の画像を撮像するカメラであればよい。例えば、撮像装置180は、単眼カメラで構成されても良いし、相対的な位置/姿勢が既知な三台以上のカメラで構成されても良い。また、撮像装置180はカラー画像を撮像するカメラに限るものではなく、濃淡画像を撮像するカメラであっても良いし、奥行き情報を撮像するカメラであってもよい。但し、単眼カメラを用いる場合には、位置/姿勢の算出、再投影誤差の算出に当たっては奥行きが必要となるため、例えばKleinらの手法(非特許文献5)を用いてカメラの動きから奥行きを算出することが必要になる。また、位置/姿勢を算出するための画像を撮像する撮像装置とCGが合成される画像を撮像する撮像装置は同一のものであってもよいし、別々のものであってもよい。
【0039】
<変形例1−2>
第1実施形態では、画像特徴に特徴点を用いたがこれに限られるものではなく、画像特徴は画像の幾何情報から撮像装置180の位置/姿勢を算出できるものであれば良い。例えばKotakeらの手法(非特許文献6)のように画像中のエッジを画像特徴として用いても良い。この場合、保持部140が保持する画像特徴の幾何属性は、例えば、画像上のエッジの両端点の二次元位置とすればよい。また、物体の三次元モデルを画像特徴とし、モデルと入力画像とを比較して撮像装置180の位置/姿勢を得るKorkaloらの手法(非特許文献7)が用いられてもよい。また、三次元モデルの代わりにマーカを画像特徴とし、マーカに基づく位置姿勢推定であるKatoらの手法(非特許文献2)が用いられても良い。
【0040】
<変形例1−3>
第1実施形態では、画像特徴の対応付けに正規化相互相関を用いた(ステップS140)。しかしながら、画像特徴の対応付けに用いられ得る手法はこれに限られるものではなく、画像間での特徴点の対応関係を見つけることができるものであれば良い。例えば、Loweの手法であるSIFT特徴量のマッチング(非特許文献8)が用いられても良い。また、例えばTomasiらの手法(非特許文献9)のように、前フレームの特徴点から直接現フレームの特徴点位置が算出(追跡)されても良い。
【0041】
<変形例1−4>
また、第1実施形態では、利用可能性の値が所定の閾値V
th以上の特徴点を、撮像装置180の位置/姿勢の算出に使用する特徴点として選択している(ステップS150)。しかしながら、特徴点の選択方法はこれに限られるものではなく、利用可能性の値の大きな特徴点を選択するものであればよい。例えば、利用可能性の値が大きなものから順に所定個(P
max個)を選択するようにしても良い。また、例えばすべての特徴点の利用可能性の値の中央値や平均値の値よりも大きな利用可能性の値をもつ特徴点を選択するようにしても良い。
【0042】
<変形例1−5>
また、第1実施形態では、撮像装置180の位置/姿勢の算出に用いる特徴点を選択するための条件として、利用可能性の値が所定の閾値V
th以上であることを示したが、幾何属性(特徴点の位置)については考慮されていない。位置/姿勢の算出の精度を向上させるためには現フレーム上で密度が均一になるように特徴点が分布すると良い。したがって、例えば現フレームを格子上の小領域に区切り、各領域において利用可能性の値の大きい順に所定個(P
max個)を選択するようにしても良い。また、例えば、既に選択された特徴点との画像上の距離が所定の閾値よりも大きい特徴点の中から利用可能性の値の大きな順に特徴点を選択するようにしても良い。すなわち、画像上の距離が所定の閾値よりも大きくなるように、かつ、利用可能性の値の大きな順に特徴点が選択されてもよい。
【0043】
<変形例1−6>
第1実施形態では、複数の検出特徴点(対応特徴点)から、利用可能性の値をもとに位置/姿勢算出に用いる特徴点を選択したが、使用する特徴点を選択するのではなく、利用可能性の値に基づいて位置/姿勢の算出への重みを各特徴点に付与するようにしても良い。具体的には、利用可能性の値をそのまま重みとしても良いし、利用可能性の値が所定の閾値以下であれば重みを0とし閾値以上であれば利用可能性の値をそのまま重みとするよう定めても良い。位置/姿勢の算出においては、複数の検出特徴点(対応特徴点)の各々に付与された重みに基づいて特徴点の位置/姿勢の算出への寄与度が調整、変更される。
【0044】
<変形例1−7>
第1実施形態のステップS170では、時刻tの利用可能性情報における利用可能性の値c
tは、前フレームの利用可能性の値c
t−1とステップS171で求めた再投影誤差を基に算出した利用可能性の値c
calcとのうち小さい方の値で更新される(数4を参照)。しかしながら、利用可能性の値の更新の方法はこれに限られるものではなく、再投影誤差が大きい場合に利用可能性の値が小さくなるような更新を実現する方法であれば良い。例えば、前フレームの利用可能性の値c
t−1と再投影誤差から求めた利用可能性の値c
calcの単純な平均値で利用可能性の値が更新されてもよい。また、利用可能性の値c
t−1と利用可能性の値c
calcの重み付き平均で利用可能性の値が更新されても良い。また、算出した利用可能性の値c
calcが所定の閾値以下の場合に0を下回らない範囲で時刻t−1の利用可能性の値c
t−1から所定の値(例えば0.1)を減算した値を更新された利用可能性の値c
tとしてもよい。
【0045】
<変形例1−8>
第1実施形態のステップS172では、再投影誤差から求めた利用可能性の値c
calcを、数5を用いて算出していたがこれに限られるものではない。再投影誤差が大きいほど利用可能性の値c
calcが小さくなるようないかなる算出方法も適用可能である。例えば、再投影誤差が所定の閾値以上であれば1、閾値未満であれば0としても良い。また、例えば、1を再投影誤差に1を加えた値で割った値としても良い。また、例えば、ネイピア数を底とし再投影誤差に負の符号をかけた値を指数とした値でも良い。
【0046】
<変形例1−9>
第1実施形態では、利用可能性の値を0から1の実数値で保持していたが、2値や量子化した値でも良い。例えば、利用可能性の値を2値で保持する場合には、ステップS171で算出した再投影誤差が所定の閾値以上では0、閾値未満であれば1とすれば良い。また、量子化する場合は、例えば、所定の閾値を2つ定めておき、再投影誤差の大きさをL、2つの閾値をA,B(A>B)とした場合に、L≧Aであれば0、A>L≧Bであれば0.5、L<Bであれば1のように定めても良い。
【0047】
<変形例1−10>
第1実施形態では、保持部140は時刻t−1に撮像した前フレームの画像特徴の幾何属性と利用可能性を利用可能性情報として保持していた。しかしながら、前フレームは時刻t−1に限られるものではなく、複数の時刻の履歴が保持されても良い。この時、更新部170は、利用可能性情報を、複数の時刻の履歴を参照して更新するようにしても良い。例えば、更新部170は、数6に示されるように、過去n個のフレームで算出した利用可能性の値の重み平均を用いて利用可能性の値を更新しても良い。
【数6】
【0048】
但し、c
t−iは時刻t−iの利用可能性の値であり、nは過去いくつまでの履歴情報を参照するかに関する値である。α
tは時刻tの利用可能性情報の重みを表す値であり、数7を満たす値である。
【数7】
【0049】
なお、過去のフレームで算出した利用可能性の値の重み平均の代わりに中央値が用いられても良い。また、過去n個のフレームで算出した利用可能性の値が連続して所定の閾値以下であれば利用可能性の値を減少させるように定めても良い。
【0050】
<変形例1−11>
第1実施形態では、位置/姿勢の算出結果に基づいて(再投影誤差に基づいて)利用可能性情報を更新していた。しかしながら、利用可能性情報の更新は必須としない構成も可能である。以下に、利用可能性情報を更新しない画像処理システム100の構成について
図5、
図6を参照して説明する。
【0051】
図5は、変形例による画像処理システム100の構成例を示すブロック図である。情報処理装置1aは、
図1の情報処理装置1から算出部160および更新部170が取り除かれた構成となっている。また、情報処理装置1aの外部に算出部1120が接続されている。算出部1120は、情報処理装置1aの選択部150が撮像装置180の位置/姿勢の算出に利用可能と判定した特徴点を用いてカメラの位置/姿勢を算出する。なお、算出部1120は情報処理装置1aに組み込まれていてもよい。
【0052】
図6は画像処理システム100による処理手順を示したフローチャートである。第1実施形態の情報処理装置1による処理手順と異なる点は次のとおりである。すなわち、ステップS170の更新処理が除かれた点、ステップS110(初期化処理)において利用可能性情報が読み込まれる点、情報処理装置1aの外部に接続された算出部1120がステップS160(位置姿勢算出処理)を実行する点である。ステップS110(初期化)において、保持部140は、不図示の入力部を介して利用可能性情報141を外部の記憶装置から読み込み、保持する。ステップS160において、情報処理装置1aの外部に接続された算出部1120が、現フレームを撮影したカメラの位置/姿勢を算出する。この位置/姿勢の算出では、情報処理装置1aの選択部150が選択した対応特徴点と、対応付け部130が対応付けた保持部140の保持する保持特徴点とが用いられる。
【0053】
利用可能性情報の更新時における誤判定の可能性はゼロではない。あらかじめシーン中の移動物体上の画像特徴が既知であれば、利用可能性情報の更新を行わないことで利用可能性情報の更新における誤判定の影響を除去でき、高精度に位置/姿勢を算出できるようになる。また、このとき、「利用可能性情報」の更新が不必要になり計算速度の向上が見込まれる。
【0054】
<変形例1−12>
第1実施形態では、移動物体上の特徴点が位置/姿勢算出に利用されないように利用可能性情報を更新していた。しかしながら、テレビ画面に写る映像やプロジェクタが投影する像などといった、動く物体ではないが位置が変化する画像特徴もある。したがって、このような動く物体ではないが位置が変化する画像特徴が位置/姿勢算出に利用されないように利用可能性情を更新するようにしてもよい。具体的には、テレビ画面やプロジェクタが投影する領域などの動く物体ではないが位置が変化する画像特徴が現れる領域(以下、除外すべき領域)の情報を、ステップS110の初期化処理にて取得し、例えば保持部140に保持しておく。除外すべき領域を示す情報は、例えば、外部の記憶装置にデータベースとして記録されており、情報処理装置1はこのデータベースを読み込み、保持部140に保持する。もしくは、表示装置にGUIを提示し、ユーザの入力した除外すべき領域を指定するようにしてもよい。除外すべき領域内で検出された画像特徴については、更新部170が保持部140の該当する利用可能性の値を減少させる。
【0055】
<変形例1−13>
第1実施形態で用いた各種の閾値をユーザが設定するための構成が設けられてもよい。ユーザ設定を可能とする閾値としては、例えば、
・画像上での特徴点対応付けにおいて同一の特徴点とみなすかどうか判定するための閾値M
th(ステップS140)、
・特徴点を位置/姿勢算出に利用するか否かを判定するための利用可能性の値の閾値V
th(ステップS150)、
・利用可能性情報を更新する際の再投影誤差の閾値d
th(ステップS172)、などが挙げられる。
【0056】
これらの閾値は、ステップS110の初期化処理において、例えば、情報処理装置1が外部の記憶装置から読み込むようにしてもよいし、所定のGUIを介してユーザに設定させるようにしてもよい。そのようなGUIは、例えば情報処理装置1が備えるディスプレイにより実現され得る。
図7にGUIの表示例を示す。GUI700は、利用可能性情報の利用の有無の切り替えや各種閾値を変更するためのGUIの一例である。具体的には、GUI700は、利用可能性情報を利用するか否かを切り替える切り替えボタンG710、再投影誤差により利用可能性情報を更新するか否かの切り替えボタンG720を有する。また、GUI700は、位置/姿勢の算出に用いる特徴点の利用可能性の値の閾値V
thの設定用のスライダーG730、特徴点マッチングの閾値M
thの設定用のスライダーG740、再投影誤差の閾値d
thの設定用のスライダーG750を有する。GUIのボタン(G710,G720)の押下やスライダー(G730,G740,G750)の変化を検知すると、該当する処理の実行状態や該当する閾値の値を変化させる。
【0057】
<変形例1−14>
本実施形態では、本発明における情報処理装置1を、複合現実感を実現するためのHMDの位置姿勢を算出する場合における適用方法について説明した。しかしながら、本発明を適応するアプリケーションは複合現実感を実現するための用途にとどまらない。例えば、移動ロボットの制御のためにロボットの位置/姿勢を算出する場合や、自動運転のために自動車の位置/姿勢を算出する場合にも適用してもよい。このような場合には、他の移動ロボットや自動車、歩行者が移動物体となりうる。
【0058】
さらに、移動物体の種類が事前に判明している場合には、不図示の物体検出部が移動物体を画像入力部110が入力した画像中から検出し、当該領域中に存在する画像特徴の利用可能性の値を小さくしてもよい。なお、物体検出部は、例えば物体の有無を判定する物体検出学習モデルを用いて移動物体を物体検出してもよい。具体的には、物体検出学習モデルは例えば、入力した画像中の各画素が移動物体の領域に含まれていれば1を、含まれていなければ0を出力するようにDeep Learningを用いて学習されたShelhamerらのニューラルネットワークのことである(非特許文献10参照)。また、物体検出部は、不図示の記録手段に保持したあらかじめ移動物体の画像を切り出したテンプレート画像を入力画像とテンプレートマッチングしたときの正規化相互相関値が所定の閾値以下の領域を移動物体として検出してもよい。さらに、物体検出部が不図示の移動物体の三次元モデル(例えばCADデータ)を保持し、入力画像の微分である勾配画像とCADデータをさまざまな方向から観察したときのシルエットとの位置合わせを行うLine2D法により入力画像中に写っている物体にCADモデルを位置合わせした領域を移動物体として検出してもよい。これにより、あらかじめ移動物体の種類が判明している場合に、移動物体上の画像特徴が位置/姿勢の算出に利用されなくなり、高精度に、且つ安定して、位置/姿勢を算出することができる。
【0059】
<第2実施形態>
第1実施形態では、再投影誤差が大きい特徴点ほど利用可能性の値を小さくすることで、再投影誤差が大きい特徴点が位置/姿勢の算出へ利用されにくくなるようにしていた。第2実施形態では、前フレームと現フレームの特徴点の対応付けが連続して成功した回数が多い特徴点ほど利用可能性の値を大きくし、対応付けに失敗した特徴点は利用可能性の値を小さくする。このように、対応付けに連続して成功している特徴点を選択して用いることで高精度に、安定して撮像装置180の位置/姿勢を算出することができる。
【0060】
第2実施形態における画像処理システムの構成は第1実施形態(
図1)と同様である。但し、保持部140が保持する利用可能性情報141が第1実施形態と第2実施形態とで異なる。第2実施形態の利用可能性情報141は、第1実施形態(
図2)で説明した各特徴点の幾何属性と、各特徴点の位置姿勢算出への利用可能性の値に加え、各特徴点の対応付けが成功した回数(以降、連続対応回数)に関する情報を有する。本実施形態では、連続対応回数に関する情報として整数値が用いられる。また、第2実施形態における画像処理システムの処理手順は、ステップS140(特徴点の対応付け処理)とステップS170(利用可能性情報の更新処理)を除いて、第1実施形態(
図3)と同様である。
【0061】
ステップS140において、対応付け部130は、第1実施形態と同様に前フレームの特徴点(保持特徴点)と現フレームの特徴点(検出特徴点)とを特徴点マッチングにより対応付ける。この対応付け処理の結果に応じて、対応付け部130は、保持部140が保持する利用可能性情報141の連続対応回数に関する情報を更新する。すなわち、対応付け部130は、対応関係が見つかった場合には、連続対応回数に関する情報の値に1を加え、対応関係が見つからなかった場合には、連続対応回数に関する情報の値を0にする。
【0062】
また、ステップS170において、更新部170は、保持部140の保持する各保持特徴点の連続対応回数に基づいて、利用可能性情報141を更新する。具体的には、更新部170は、連続対応回数が小さいほど、保持特徴点の利用可能性を小さくする。本実施形態では、連続対応回数が所定回数以下の保持特徴の利用可能性を0に設定する。たとえば、更新部170は、連続対応回数をM回とすると、現フレームの利用可能性の値c
tを数8のように更新する。
【数8】
但しM
thは、特徴点が検出されてから位置/姿勢の算出に用いられるまでに連続して対応付けが成功しなければならない回数に関する閾値である。
【0063】
以上に述べたように、第2実施形態では、連続対応回数の少ない画像特徴を位置/姿勢の算出に利用しないようにする。これにより、例えば近づいてくる移動物体上で新たに検出された画像特徴を位置/姿勢算出に利用せず、高精度に、安定に位置/姿勢を算出することができる。
【0064】
<変形例2−1>
第2実施形態では、各特徴点の対応付けに成功した回数である連続対応回数を基に利用可能性の値を更新したがこれに限られるものではない。例えば、連続対応回数を基に算出した利用可能性の値と、第1実施形態で算出した再投影誤差に基づいて算出した利用可能性の値とを組み合わせた合成値を算出し、この合成値を用いて位置/姿勢に用いる特徴点を選択するようにしても良い。この場合、利用可能性情報141は連続対応回数を基に算出された利用可能性の値ccと再投影誤差を基に算出された利用可能性の値cp、及び合成値cを保持する。そして、ステップS150において選択部150が、合成値cが所定の閾値以上である特徴点を選択する。なお、合成値cは、連続対応回数が小さいほど、または再投影誤差が大きいほど、減少するような値であれば良い。例えば、利用可能性の値ccとcpのうち小さい値を合成値としても良いし、ccとcpを積算した値や和算した値を合成値としても良い。
【0065】
<第3実施形態>
第1実施形態では、再投影誤差が大きい特徴点ほど、その利用可能性を減少させることで位置/姿勢の算出に利用しにくくしていた。また、第2実施形態では、連続対応回数の少ない特徴点ほど、その利用可能性を減少させることで位置/姿勢の算出に利用しにくくしていた。第3実施形態では、利用可能性の値が低下した特徴点でも再投影誤差が連続して所定の閾値よりも小さければ利用可能性の値を向上させる。すなわち、再投影誤差の値が所定回数以上にわたって連続して所定の閾値より小さい保持特徴に関連付けられた利用可能性を大きくする。これにより、一度低下した利用可能性の値を向上させることができ、移動物体が静止した時にも高精度、高安定に位置/姿勢を算出することができる。なお、第3実施形態における移動物体が静止するというのは、例えば複合現実感体験中に机や椅子などの什器のレイアウトを変更するなどして移動させた場合や、自動運転において他の移動していた自動車が駐車し静止した場合に起こる現象である。
【0066】
第3実施形態における画像処理システム100の構成は第1実施形態(
図1)と同様である。但し、第1実施形態と第3実施形態とでは、保持部140が保持する利用可能性情報141が異なる。第3実施形態の利用可能性情報141は、
図2で示した幾何属性と利用可能性に加え、連続して再投影誤差が所定の閾値よりも小さかった回数(以降、連続整合回数)に関する情報を保持する。
【0067】
第3実施形態の画像処理システムにおける処理手順は、ステップS170(利用可能性情報の更新処理)を除いて第1実施形態(
図3)で説明した処理手順と同様である。第3実施形態におけるステップS170では、第1実施形態で説明した処理(再投影誤差に基づく利用可能性の値の更新)に加え、連続整合回数が考慮される。更新部170は、ステップS172において、各特徴点の再投影誤差を基に利用可能性情報141に含まれる連続整合回数を更新する。例えば、更新部170は、更新された連続整合回数が所定の閾値未満であれば利用可能性の値を0とし、更新された連続整合回数が所定の閾値以上であれば再投影誤差に応じて利用可能性の値を更新する。より具体的には、更新部170は、再投影誤差が所定の閾値d
th未満であれば連続整合回数に1を加え、再投影誤差が閾値d
th以上であれば連続整合回数を0にする。更新部170は、連続整合回数閾値未満であれば利用可能性の値cを0にし、連続整合回数が閾値以上であれば、利用可能性の値cを、再投影誤差値dを用いて数9のように更新する。
【数9】
【0068】
以上に述べたように、第3実施形態では、一度利用可能性の値が低下した特徴点についても、複数時刻で再投影誤差が小さければその利用可能性情報の値を増大させる。これにより、例えば一度動いた物体が静止した場合にはその物体上の特徴点も位置/姿勢算出に用いることが可能になり、高精度に、安定に位置/姿勢を算出することができる。
【0069】
<変形例3−1>
第3実施形態では、連続整合回数が閾値以上であれば、数9のように利用可能性情報を更新していた。しかしながら、これに限られるものではなく、利用可能性情報の更新は連続整合回数が閾値以上の場合に利用可能性を増加させる方法であれば良い。例えば、利用可能性の値が1を超えない範囲で前フレームの利用可能性の値に所定の実数値を加算(例えば0.1)するようにしてもよい。あるいは、1を再投影誤差dに1を加えた値で割った値(c=1/(d+1))としても良いし、再投影誤差が所定の閾値以上であればd=1、閾値未満であればd=0としても良い。
【0070】
<変形例3−2>
第3実施形態においては、連続整合回数をもとに利用可能性の値を算出していた。しかしながら、連続整合回数ではなく、連続して整合した時間をもとに利用可能性の値を算出してもよい。具体的には、各特徴点の再投影誤差が所定の時間所定の閾値未満であれば利用可能性の値を小さくしてもよい。これにより、移動物体が一定時間静止した場合にはその物体上の特徴点も位置/姿勢算出に用いることが可能になり、高精度に、安定に位置/姿勢を算出することができる。
【0071】
<第4実施形態>
第1実施形態から第3実施形態では、世界座標系に対する前フレームのカメラの位置/姿勢に前フレームに対する現フレームのカメラの位置/姿勢を積算することで、現フレームの世界座標系に対するカメラの位置/姿勢を算出していた。このため、時間が経過すると位置/姿勢に蓄積誤差が生じる可能性がある。第4実施形態では、移動物体が存在するシーンにおいて位置/姿勢の算出の指標となる三次元マップを作成しつつ、作成した三次元マップと現フレーム上の特徴点との対応関係を基にマップに対する位置/姿勢を算出する。このとき、現フレーム上の特徴点の利用可能性の値が所定の閾値より小さければその特徴点を位置/姿勢の算出に使用しないようにすることで、高精度、安定にカメラの位置/姿勢が算出される。また、三次元マップ作成時には、利用可能性の値が所定の閾値より小さい特徴点を三次元マップに追加しないようにすることで、移動物体上の特徴点が三次元マップに追加されることを防ぎ、高精度、安定にカメラの位置/姿勢を算出する。
【0072】
図8は、第4実施形態における画像処理システム100の構成例を示すブロック図である。第1実施形態(
図1)と同様の構成には、同一の参照番号を付してある。第4実施形態では、第1実施形態の情報処理装置1に三次元情報対応付け部260、三次元情報更新部290、三次元情報保持部2100が追加されている。
【0073】
三次元情報保持部2100は、三次元マップを保持する。三次元マップは、シーン中に存在する特徴の三次元幾何情報を含む。本実施形態では、三次元マップは世界座標系における特徴点(マップ点)の位置を表す三次元ベクトル(X
map、Y
map、Z
map)と、その特徴点を検出した時点での入力画像上の特徴点まわりの小領域の画素値(例えば縦横30ピクセル)を保持している。三次元情報対応付け部260は、選択部150が選択した現フレーム上の特徴点と、三次元情報保持部2100が保持するマップ点との対応関係を探索する。三次元情報更新部290は、保持部140が保持する利用可能性情報と、算出部160が算出した位置/姿勢とを基に、三次元情報保持部2100の保持する三次元マップに現フレームの特徴点を追加する。
【0074】
図9は第4実施形態における処理手順を示すフローチャートである。第1実施形態(
図3)と同様の処理には同一のステップ番号を付してある。第1実施形態と第4実施形態で異なる処理は、ステップS260(三次元情報対応付け処理)とステップS290(三次元情報更新処理)である。以下、ステップS260とステップS290について説明する。
【0075】
ステップS260において、三次元情報対応付け部260は、三次元情報保持部2100が保持する三次元マップ中のマップ点を前フレームの位置/姿勢で投影する。次に、三次元情報対応付け部260は、特徴点マッチングにより投影されたマップ点と前フレームの特徴点とを対応付ける。そして、三次元情報対応付け部260は、対応付いた前フレームの特徴点の位置を、投影されたマップ点の位置に置き換える。より具体的には、まずマップ点の三次元位置と、世界座標系に対する前フレームのカメラの位置/姿勢を基に、前フレームの画像上でのマップ点(投影されたマップ点)の三次元座標を数10により算出する。なお、数10において、マップ点の三次元位置を(X
map、Y
map、Z
map)、世界座標系に対する前フレームのカメラの位置/姿勢を(t
w→(t−1)、R
w→(t−1))としている。また、前フレームの画像上でのマップ点(投影されたマップ点)の三次元座標を(X
map(t−1)、Y
map(t−1)、Z
map(t−1))としている。
【数10】
【0076】
次に、数11により前フレームのカメラ座標系における当該特徴点の三次元座標(X
map(t−1),Y
map(t−1),Z
map(t−1))を、前フレームの画像座標(u
map(t−1),v
map(t−1))に変換する。
【数11】
【0077】
以上のようにして投影されたマップ点を以降、投影マップ点と呼ぶ。次に、三次元情報対応付け部260は、投影マップ点と前フレーム上の特徴点とを特徴点マッチングにより対応付ける。例えば、三次元情報対応付け部260は、投影マップ点と前フレームの特徴点との二次元ユークリッド距離が所定の閾値以下の場合に、投影マップ点と前フレームの特徴点の周囲の画素の正規化相互相関(SSD)を算出する。そして、三次元情報対応付け部260は、算出したSSD値が閾値以下であれば、それら投影マップ点と前フレームの特徴点とが同一の物体上の同一の位置であるとみなし、対応付ける。三次元情報対応付け部260は、対応付いた前フレーム上の特徴点の位置を投影マップ点の位置に置き換える。ステップS160において、算出部160は、特徴点の置き換え後の位置を用いて撮像装置180の位置/姿勢を算出する。
【0078】
ステップS290(三次元情報更新処理)において、三次元情報更新部290は、ステップS160で算出した撮像装置180の位置/姿勢及び利用可能性情報を基に現フレームの特徴点を三次元情報保持部2100が保持する三次元マップに登録する。具体的には、まず、三次元情報更新部290は、利用可能性の値が所定の閾値より大きい対応特徴点を選択し、選択した特徴点を例えばKleinらの手法(非特許文献5)によりマップに登録する。
【0079】
以上に述べたように、第4実施形態では、三次元マップに登録されたマップ点と利用可能性情報に基づいて選択された特徴点とを対応付けることにより位置/姿勢が算出されるので、高精度、高安定に位置/姿勢を算出することができる。三次元マップに基づいて位置/姿勢を計算するので、位置/姿勢の誤差が蓄積されることを防止できる。さらに、第4実施形態によれば、利用可能性情報を用いて三次元マップ上に登録する特徴点が選択される。このため、移動物体上などで検出された特徴点がマップに登録されることが防止され、高精度、安定に位置/姿勢を算出することができる。
【0080】
<変形例4−1>
第4実施形態では、前フレームと現フレームの対応特徴点、投影マップ点と前フレームの特徴点の対応マップ点の二つの関係を併用してカメラの位置/姿勢を算出していた。また、第1実施形態では、前フレームの特徴点と現フレームの対応特徴点の関係から位置/姿勢を算出していた。しかしながら、これらに限られるものではなく、Kleinらの手法(非特許文献5)のように、マップ点と現フレームの対応特徴点の関係のみを用いて位置/姿勢を算出するようにしても良い。具体的には、ステップS260で投影マップ点との対応関係が見つからなかった前フレームの特徴点を除外し、投影マップ点と現フレームの対応特徴点により位置/姿勢を算出するようにしても良い。
【0081】
<その他の実施形態>
上記各実施形態では、複合現実感システムにおける現実空間と仮想物体との位置合わせに利用するための現実空間における撮像装置(カメラ)の位置/姿勢の計測に本発明を適用する例を説明したが、これに限られるものではない。例えば、移動物体が含まれるシーンの中で、ロボットや自動車の自己位置推定を行う場合や、物体や空間の三次元モデリングを行う場合などに本発明を適用することができる。
【0082】
以上説明したように、第1実施形態では、再投影誤差の大きな特徴点の利用可能性の値を小さくすることで位置/姿勢算出に利用されにくくなる。この利用可能性情報を用いて位置/姿勢算出時に用いる特徴点を選択することにより、移動物体が存在するシーンや繰り返し構造などにより特徴点の誤対応が生じるような物体の存在するシーンでも、高精度、安定に位置/姿勢を算出することができる。
【0083】
また、第2実施形態では、前フレームと現フレームにおける特徴点の対応付けが連続して成功した回数が多い特徴点ほど利用可能性の値を大きくし、対応付けに失敗した特徴点は利用可能性の値を小さくする。このように、対応付けに連続して成功し、過去に位置/姿勢算出に連続して利用されている特徴点を選択して用いることで高精度に、安定して位置/姿勢を算出することができる。
【0084】
また、第3実施形態では、一度利用可能性情報の値が低下した画像特徴でも、複数時刻で再投影誤差が小さければ利用可能性情報の値を向上させる。これにより、例えば一度動いた物体が静止した場合にはその物体上の特徴点も位置/姿勢の算出に用いることができ、高精度に、安定に位置/姿勢を算出することができる。
【0085】
更に、第4実施形態では、三次元マップに登録されたマップ点と、利用可能性情報に基づいて選択された特徴点と、を対応付けることで位置/姿勢を算出することで、高精度、高安定に位置/姿勢を算出することができる。さらに、利用可能性情報を用いて三次元マップ上に登録する特徴点を選択することでマップ上に移動物体上などで検出された特徴点が登録されることを防ぎ、高精度、安定に位置/姿勢を算出することができる。
【0086】
なお、上記各実施形態では画像入力部110としてステレオカメラを用いたがこれに限られるものではなく、現実空間を撮像した画像を入力するものであればよい。例えば、単眼カメラが撮像した画像を入力しても良いし、ステレオカメラなど複数台のカメラ画像を入力しても良い。また、カラー画像の入力に限るものではなく、濃淡画像を入力しても良いし、奥行き情報を表す奥行き画像を入力してもよい。さらに、カメラが撮像した画像を直接入力しても良いし、ネットワークを介して入力しても良い。
【0087】
検出部120は、画像特徴として特徴点を検出するものとしたがこれに限られるものではなく、位置/姿勢の算出に用いるための画像特徴を検出するものであれば良い。例えば、Shiらの手法(非特許文献3)により特徴点を検出しても良いし、Kotakeらの手法(非特許文献6)でエッジを検出しても良い。或いは、Katoらの手法(非特許文献2)でマーカを検出しても良い。
【0088】
対応付け部130は、画像間で画像特徴が同一のものであるかどうかという対応関係を探索できるものであれば良い。例えば、画像特徴周辺の小領域の画像の正規化相互相関に基づいて対応付けしても良いし、LoweのSIFT特徴量を用いた特徴点マッチング手法(非特許文献8)を用いて対応付けても良い。また、TomasiらのKLTを用いた特徴点追跡(非特許文献9)を用いても良い。
【0089】
保持部140は、画像特徴の位置や向きを特定する幾何属性に関する情報と、各画像特徴を撮像装置の位置/姿勢の算出へ利用して良いか否かを表す利用可能性の情報の履歴を保持するものであれば良い。例えば、利用可能性の値は二値でも良いし、実数でも良い。また、複数の利用可能性の値が保持されても良い。また、幾何属性と利用可能性の情報は、過去のある一時刻のものであってもよいし、複数の時刻のものであってもよい。さらには、幾何属性及び利用可能性の履歴以外にも、画像特徴の対応付けが連続して成功した回数や再投影誤差が連続して所定の閾値未満であった回数といった履歴が保持されても良い。
【0090】
選択部150は、保持部140が保持する利用可能性情報141を用いて位置/姿勢の算出に用いる特徴点を選択するものであれば良い。例えば、利用可能性の値が所定の閾値以上である特徴点を選択しても良いし、利用可能性の値が大きなものから順に所定数の特徴点を選択しても良い。また、利用可能性情報の値に基づいて、位置/姿勢算出時の各特徴点の寄与度である重みを付与しても良い。
【0091】
算出部160は、選択部150が選択した特徴点を用いて撮像装置180の位置/姿勢を算出するものであれば良い。位置/姿勢の算出には、例えば、Badinoらの手法(非特許文献4)、Kotakeらの手法(非特許文献6)、Korkaloらの手法(非特許文献7)、Katoらの手法(非特許文献2)を用いることができる。また、各特徴点に重みが付与されている場合には、重みに基づいた各特徴点の位置/姿勢の算出への寄与度で位置/姿勢を算出するようにしても良い。
【0092】
更新部170は、特徴点の位置/姿勢算出への利用可能性の値を更新するものであれば良い。例えば、更新部170は、再投影誤差に基づいて利用可能性の値を更新しても良いし、画像特徴の対応付けが連続して成功した回数や再投影誤差が連続して所定の閾値未満であった回数に基づいて利用可能性の値を更新しても良い。さらには、複数の利用可能性情報を更新しても良い。
【0093】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。