以下、添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
[第1の実施形態]
本実施形態に係る情報処理装置は、撮像装置の推定位置に基づいて指標の同定を行う。
図1は、本実施形態における情報処理装置の構成を示している。本実施形態における情報処理装置100は、画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部190によって構成されている。情報処理装置100は、客観視点カメラ180、及び、撮像装置130に接続されている。なお、客観視点カメラ180は、その位置が固定されており、撮像装置130は、例えば、頭部搭載型の装置であり、操作者の頭部に搭載して移動可能である。
現実空間中の複数の位置には、撮像装置130によって撮影するための指標(以下、主観視点指標)として、世界座標系(現実空間の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)における位置xW Qkが既知である複数個の主観視点指標Qk(k=1,,,KQ)が配置されている。また、撮像装置130上には、客観視点カメラ180によって撮影するための指標(以下、客観視点指標)として、撮像装置座標系(撮像装置130上の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)上における位置xC Pが既知である客観視点指標Pが設定されている。
客観視点カメラ180の視野内の複数の地点のそれぞれに撮像装置130を位置させた時に、撮像装置130によって取得される主観視点画像上において少なくとも3個以上の主観視点指標Qkが常に観測されるように撮像装置130が位置するようにすることが望ましい。また、客観視点カメラ180によって取得される客観視点画像上において客観視点指標Pが常に観測されるように撮像装置130が位置するようにすることが望ましい。図1の例は、4個の主観視点指標Q1,Q2,Q3,Q4と1個の客観視点指標Pが設定されており、また、客観視点指標Pと似た偽指標P’が現実空間中に存在していて、そのうちの3個の主観視点指標Q1,Q3,Q4が撮像装置130の視野内に含まれており、1個の客観視点指標Pと1個の偽指標P’が客観視点カメラ180の視野内に含まれている状況を示している。
なお、主観視点指標Qkは、例えば、それぞれが異なる色を有する円形状のマーカによって構成してもよいし、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成してもよい。また、ある程度の面積を有する四角形の単色領域によって形成されるような、四角形指標を用いることも可能である。撮影画像上における投影像の画像座標が検出可能であって、かついずれの指標であるかが何らかの方法で同定可能であるような指標であれば、何れの形態であってもよい。主観視点指標は、操作者により設定されたものであっても良いし、操作者により設定されたものではない、自然形状のものを用いても良い。
一方、客観視点指標Pは、広画角の客観視点カメラで遠くから撮影した画像上で安定的に検出する必要があるため、例えばLEDや再帰性反射材などによって構成される。
撮像装置130が出力する画像(以下、これを主観視点画像と呼ぶ)は、画像入力部160に入力される。また、客観視点カメラ180が出力する画像(以下、これを客観視点画像と呼ぶ)も、画像入力部160に入力される。
客観視点カメラ180は、撮像装置130上の客観視点指標Pを常に撮像可能な位置に固定して配置されている。ここで、客観視点カメラ180の世界座標系における位置及び姿勢は、データ記憶部170に既知の値として予め保持されているものとする。
画像入力部160は、情報処理装置100へ入力される主観視点画像及び客観視点画像をデジタルデータに変換し、データ記憶部170に保存する。
主観視点指標検出部110は、データ記憶部170より主観視点画像を入力し、入力した画像中に撮影されている主観視点指標の画像座標を検出する。例えば、主観視点指標の各々が異なる色を有するマーカによって構成されている場合には、画像上から各々のマーカ色に対応する領域を検出し、その重心位置を主観視点指標の検出座標とする。また、主観視点指標の各々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、既知の情報として予め保持している各々の主観視点指標のテンプレート画像によるテンプレートマッチングを画像上に施すことにより、主観視点指標の位置を検出する。また、四角形指標を用いる場合は、画像に2値化処理を施した後にラベリングを行い、4つの直線によって形成されている領域を指標候補として検出する。さらに、候補領域の中に特定のパターンがあるか否かを判定することによって誤検出を排除し、また、指標の識別子を取得する。なお、このようにして検出される四角形指標は、本実施例では、4つの頂点の個々によって特定される4つの指標であると考える。なお、撮像装置130の位置の推定値(後述する位置姿勢推定部120の出力)をデータ記憶部170からさらに入力し、この推定値に基づいて画像上における主観視点指標の位置を予測し探索範囲を限定することにより、主観視点指標の検出処理の計算負荷を軽減したり、主観視点指標の誤検出や誤同定を低減させたりすることが可能である。
主観視点指標検出部110は、さらに、検出された指標の画像座標とその指標の識別子をデータ記憶部170へと出力する。なお、以下では、主観視点画像上で検出された指標を、検出された指標の夫々に付けられた識別子n(n=1,,,N)を用いて、Qknと表記する。ここで、Nは主観視点画像上で検出された指標の数を表している。また、検出された指標Qknの画像座標をuQknと表記する。例えば図1の場合には、N=3であり、指標の識別子k1=1,k2=3,k3=4と、これらに対応する画像座標uQk1,uQk2,uQk3が出力される。
位置姿勢推定部120は、主観視点指標検出部110によって検出された各々の主観視点指標の画像座標uQknと、既知な情報として予め保持されている世界座標xW Qknの組をデータ記憶部170から入力し、これらの情報に基づいて撮像装置130の位置及び姿勢を算出(推定)する。推定した位置及び姿勢は、例えば、位置を表す3次元ベクトルxW Cと姿勢を表す3×3行列RWCとの組の形態によってデータ記憶部170に出力される。主観視点指標の世界座標と画像座標の組から撮像装置130の位置及び姿勢を算出する方法は、写真測量等の分野において知られている(例えば、非特許文献4、非特許文献5を参照)ため、その詳細については、省略する。
客観視点指標候補検出部140は、データ記憶部170より客観視点画像を入力し、入力した客観視点画像中に撮影されている客観視点指標(及び偽指標)の画像座標を検出する。例えば、画像上からLEDや再帰性反射材などの明るさに対応する領域を検出し、その重心位置を客観視点指標の検出座標とする。
客観視点指標候補検出部140は、さらに、検出された客観視点指標候補の画像座標をデータ記憶部170へと出力する。なお、以下では、客観視点画像上で検出された客観視点指標候補を、検出された客観視点指標候補の夫々に付けられた識別子m(m=1,,,M)を用いて、Pmと表記する。ここで、Mは客観視点画像上で検出された客観視点指標候補の数を表している。また、検出された客観指標候補Pmの画像座標をuPmと表記する。例えば図1の場合には、M=2であり、画像座標uP1,uP2が出力される。
位置拘束条件算出部150は、客観視点指標候補検出部140によって検出された各々の客観視点指標候補の画像座標uPmと、客観視点カメラの世界座標における位置及び姿勢をデータ記憶部170から入力し、これらの情報に基づいて夫々の客観視点指標候補の位置拘束条件(本実施形態では位置を拘束する直線を記述するパラメータ)を算出する。
客観視点指標同定部190は、位置姿勢推定部120によって推定された撮像装置の位置及び姿勢と、位置拘束条件算出部150によって算出された夫々の客観視点指標候補の位置拘束条件とに基づいて、客観視点指標を同定する。
データ記憶部170は、画像入力部160から入力される画像、位置姿勢推定部120から入力される位置の推定値、主観視点指標検出部110から入力される各々の指標の画像座標及び識別子、客観視点指標候補検出部140から入力される各々の指標候補の画像座標、さらに、既知の値である主観視点指標の世界座標、客観視点指標の撮像装置座標(撮像装置座標系における座標値)、客観視点カメラ180のカメラパラメータ等のデータを保持し、必要に応じてこれらを入出力する。
なお、図1に示した画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部190の夫々は、独立した装置として扱っても良いし、夫々ソフトウェアとして1つもしくは複数のコンピュータにインストールし、夫々のコンピュータのCPUにより実行することで、その機能を実現するようにしても良い。本実施形態では、各部(画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部190)は1台のコンピュータ内で実行対象となるソフトウェア実行することにより実現される機能として扱う。
図2は画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部190の夫々をソフトウェアとして実行するコンピュータの基本構成を示す図である。
1001はCPUで、RAM1002やROM1003に格納されたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部190の夫々のソフトウェアの実行を制御して、各部の機能を実現する。
1002はRAMで、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータを一時的に記憶するエリアを備えると共に、CPU1001が各種の処理を行うために必要とするワークエリアを備える。データ記憶部170の機能は、RAM1002によって実現される。
1003はROMで、一般にコンピュータの記憶プログラムや設定データなどが格納されている。1004、1005は夫々キーボード、マウスで、操作者は夫々を用いて、各種の指示をCPU1001に入力することができる。
1006は表示部で、CRTや液晶画面などにより構成されており、例えば、撮像装置130の位置姿勢計測のために表示すべきメッセージ等を表示することができる。
1007は外部記憶装置で、ハードディスクなどの大容量情報記憶装置として機能する装置であって、ここにOS(オペレーティングシステム)やソフトウェアのプログラム等を保存する。また本実施形態の説明において、既知であると説明する情報はここに保存されており、必要に応じてRAM1002にロードされる。
1008は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記憶されているプログラムやデータをCPU1001からの指示に従って読み出して、RAM1002や外部記憶装置1007に出力する。
1009はI/Fで、客観視点カメラ180や撮像装置130を接続するためのアナログビデオポートあるいはIEEE1394等のデジタル入出力ポートや、同定した指標に関わる情報を外部へ出力するためのイーサネット(登録商標)ポート等によって構成される。夫々が入力したデータはI/F1009を介してRAM1002に取り込まれる。画像入力部160の機能の一部は、I/F1009によって実現される。
1010は、上述の各部を繋ぐバスである。
図3は、客観視点指標候補Pmの位置を拘束する直線を算出する処理のフローチャートであり、CPU1001がソフトウェアプログラムを実行することで位置拘束条件算出部150として機能する。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
ステップS4000において、位置拘束条件算出部150は、客観視点指標候補検出部140において検出された夫々の客観視点指標候補Pmの画像座標uPmをデータ記憶部170から入力する。
ステップS4010において、位置拘束条件算出部150は、画像座標uPmに基づいて、世界座標系における夫々の客観視点指標候補Pmの位置を拘束する直線を表すパラメータを算出する。すなわち、世界座標系における直線の傾きhxm,hym,hzmを、
によって画像座標uPmに基づいて算出し、このhxm,hym,hzmを直線のパラメータとする。ここで、fB x及びfB yは、それぞれx軸方向及びy軸方向における客観視点カメラ180の焦点距離であって、データ記憶部170に既知の値として予め保持されているものとする。また、RWBは客観視点カメラ座標系における姿勢を世界座標に変換する回転行列であり、データ記憶部170に既知の値として予め保持されている世界座標系における客観視点カメラ180の姿勢に基づいて、予め算出されているものとする。このとき、世界座標系における直線上の点は、媒介変数τの関数として
のように表すことができる。ここで、xWB,yWB,zWBは世界座標系における客観視点カメラ180の位置であって、データ記憶部170に既知の値として予め保持されているものとする。
ステップS4020において、位置拘束条件算出部150は、夫々の客観視点指標候補Pmの世界座標系における直線の傾きhxm,hym,hzmをデータ記憶部170に出力する。
従って式(2)で表される直線は、世界座標系における客観視点カメラ180の位置と世界座標系における客観視点指標候補Pmの位置とを通る直線であって、世界座標系における客観視点指標候補Pmの位置は、上記媒介変数τが適当な値を取ることにより得られるものである。
図4は、客観視点指標を同定する処理のフローチャートであり、CPU1001がソフトウェアプログラムを実行することで客観視点指標同定部190として機能する。同フローチャートに従った処理は、ステップS5000の処理を行った後、夫々の客観視点指標候補についてステップS5010〜ステップS5030の処理を行うことによって成されるものである。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
ステップS5000において、客観視点指標同定部190は、位置姿勢推定部120で推定した撮像装置の位置を表す3次元ベクトルxW Cと姿勢を表す3×3行列RWCをデータ記憶部170から入力し、それに基づいて客観視点指標Pの推定位置を算出する。すなわち、世界座標系における客観視点指標Pの推定位置xW Pを、
によって算出する。ここで、xC Pは、撮像装置座標系における客観視点指標Pの座標値であり、データ記憶部170に既知な情報として予め保持されている。
なお、客観視点指標Pの位置が撮像装置座標系の原点と十分に近い場合には、本ステップの処理を行わずに、撮像装置の推定位置を客観視点指標Pの推定位置としてそのまま用いてもよい。その場合には、位置姿勢推定部120において、撮像装置の姿勢を表す3×3行列RWCをデータ記憶部170に保持しておかなくてもよい。
ステップS5010において、客観視点指標同定部190は、客観視点指標Pの推定位置xW Pから注目する客観視点指標候補Pmの位置を拘束する直線lWm(τ)までの距離を算出する。すなわち、距離dmを表す次式、
の右辺(τの二次関数)の最小値を求め、その値の正の平方根を取ることによって算出する。
ステップS5020において、客観視点指標同定部190は、ステップS5010で求めた距離dmが所定の範囲内であるかを判断する。
所定範囲内であれば処理をステップS5030に進め、ステップS5030において、客観視点指標同定部190は、この客観視点指標候補が客観視点指標であると判定し、例えばその客観視点指標の画像座標をI/F1009を介して外部へと出力して、本処理を終了する。
一方、所定範囲外の場合には処理をステップS5040に進め、ステップS5040において、客観視点指標同定部190は、全ての客観視点指標候補PmについてステップS5010〜S5030の処理を行ったのか否かを判断する。行っているのであれば本処理を終了するのであるが、行っていないのであれば処理をステップS5010に戻し、未だステップS5010以降の処理対象となっていない客観視点指標候補PmについてステップS5010以降の処理を行う。
以上の処理によって客観視点指標を同定することができる。
なお、本実施形態では、撮像装置が1つ(客観視点指標が1つ)の場合を想定していたが、撮像装置が複数(客観視点指標が複数)の場合であっても良いことは言うまでもない。即ち、ステップS5000〜S5040の処理を夫々の客観視点指標Pに対して行うことによって、客観視点画像から検出した客観視点指標候補が、どの客観視点指標に対応するのかを同定すればよい。
以上のように、本実施形態に係る情報処理装置及び情報処理方法によると、上記[従来技術3]で利用されていたような発光タイミングの制御機構や高速度カメラは不要となり、その結果、コストを低く抑えることができる。
[第2の実施形態]
本実施形態に係る情報処理装置は、第1の実施形態の情報処理装置にさらにもう1台の客観視点カメラを追加した構成となっている。
図5は、本実施形態に係る情報処理装置の構成を示す図である。なお、図1と同じ部分については同じ番号、記号を付けており、その説明を省略する。図5に示したように、本実施形態における情報処理装置600は、画像入力部660、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部640、位置拘束条件算出部650、及び客観視点指標同定部690によって構成されている。情報処理装置600は、客観視点カメラ180a,180b、及び、計測対象である撮像装置130に接続されている。なお、客観視点カメラ180a及び180bは、その位置が固定されており、撮像装置130は、例えば、頭部搭載型の装置であり、操作者の頭部に搭載して移動可能である。
現実空間中の複数の位置には、第1の実施形態と同様に主観視点指標Qkが配置されている。また、撮像装置130上には、撮像装置座標系上における位置が既知である客観視点指標Pが配置されている。
客観視点カメラ180a及び180bの視野内の複数の地点のそれぞれに撮像装置130を位置させた時に、撮像装置130によって取得される主観視点画像上において少なくとも3個以上の主観視点指標Qkが常に観測されるように撮像装置130が位置するようにすることが望ましい。また、客観視点カメラ180a,180bの各々によって取得される客観視点画像上において客観視点指標Pが常に観測されるように撮像装置130が位置するようにすることが望ましい。図5の例は、4個の主観視点指標Q1,Q2,Q3,Q4と1個の客観視点指標Pが設定されており、また、客観視点指標Pと似た偽指標P’が現実空間中に存在していて、そのうちの3個の主観視点指標Q1,Q3,Q4が撮像装置130の視野内に含まれており、1個の客観視点指標Pと1個の偽指標P’が客観視点カメラ180a及び180bの視野内に含まれている状況を示している。
客観視点カメラ180a及び180bは、撮像装置130上の客観視点指標Pを常に撮像可能な位置に固定して配置されている。ここで、世界座標系における客観視点カメラ180a及び180bの位置及び姿勢は、データ記憶部170に既知の値として予め保持されているものとする。
画像入力部660は、情報処理装置600へ入力される主観視点画像及び2枚の客観視点画像(夫々、客観視点カメラ180a,180bによって撮影)をデジタルデータに変換し、データ記憶部170に保存する。
客観視点指標候補検出部640は、データ記憶部170より2枚の客観視点画像を入力し、客観視点指標候補の画像座標を夫々で検出し、夫々の画像座標をデータ記憶部170へと出力する。なお、以下では、客観視点カメラ180aによって撮影された客観視点画像上で検出された客観視点指標候補を、検出された客観視点指標候補の夫々に付けられた識別子ma(ma=1,,,Ma)を用いて、Pa maと表記する。ここで、Maは客観視点カメラ180aによって撮影された客観視点画像上で検出された客観視点指標候補の数を表している。また、検出された客観指標候補Pa maの画像座標をuPamaと表記する。一方、客観視点カメラ180bによって撮影された客観視点画像上で検出された客観視点指標候補を、検出された客観視点指標候補の夫々に付けられた識別子mb(mb=1,,,Mb)を用いて、Pb mbと表記する。ここで、Mbは客観視点カメラ180bによって撮影された客観視点画像上で検出された客観視点指標候補の数を表している。そして、検出された客観指標候補Pb mbの画像座標をuPbmbと表記する。例えば図5の場合には、Ma=Mb=2であり、画像座標uPa1a,uPa2a,uPb1b,uPb2bが出力される。
位置拘束条件算出部650は、客観視点指標候補検出部640によって検出された各々の客観視点指標候補の画像座標(図5の例ではuPa1a,uPa2a,uPb1b,uPb2b)と、夫々の客観視点カメラの世界座標における位置及び姿勢をデータ記憶部170から入力し、これらの情報に基づいて夫々の客観視点指標候補の位置拘束条件(本実施形態では3次元位置)を算出する。
客観視点指標同定部690は、位置姿勢推定部120によって推定された撮像装置130の位置と、位置拘束条件算出部650によって算出された夫々の客観視点指標候補の位置拘束条件とに基づいて、客観視点指標を同定する。
なお、図5に示した画像入力部660、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部640、位置拘束条件算出部650、及び客観視点指標同定部690の夫々は独立した装置として扱っても良いし、夫々ソフトウェアとして1つもしくは複数のコンピュータにインストールし、夫々のコンピュータのCPUにより実行することで、その機能を実現するようにしても良い。本実施形態では、各部(画像入力部660、データ記憶部170、主観視点指標検出部110、位置姿勢推定部120、客観視点指標候補検出部640、位置拘束条件算出部650、及び客観視点指標同定部690)は1台のコンピュータ内で実行対象となるソフトウェアを実行することで実現する機能として扱う。またこのコンピュータの基本構成は図2に示した構成とする。
図6は、客観視点指標候補Pmの3次元位置を算出する処理のフローチャートであり、CPU1001がソフトウェアプログラムを実行することで位置拘束条件算出部650として機能する。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
ステップS7000において、位置拘束条件算出部650は、客観視点指標候補検出部640において検出された夫々の客観視点指標候補(図5の例ではPa ma,Pb mb)の画像座標(図5の例ではuPa1a,uPa2a,uPb1b,uPb2b)をデータ記憶部170から入力する。
ステップS7010において、位置拘束条件算出部650は、エピポーラ拘束を用いて客観視点指標候補の画像間での対応付けを行い、三角測量の原理に基づいて、対応付けられた客観視点指標候補Pm(m=1,,,M)の画像座標を用いて、世界座標系における客観視点指標候補Pmの3次元位置xW Pmを算出する。ここで、Mは対応付けられた客観視点指標候補の数を表している。
ステップS7020において、位置拘束条件算出部650は、世界座標系における客観視点指標候補Pmの3次元位置xW Pmをデータ記憶部170に出力する。
図7は、客観視点指標を同定する処理のフローチャートであり、CPU1001がソフトウェアのプログラムを実行することで客観視点指標同定部690として機能する。同フローチャートに従った処理は、ステップS8000の処理を行った後、夫々の客観視点指標候補についてステップS8010〜ステップS8030の処理を行うことによって成されるものである。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
ステップS8000において、客観視点指標同定部690は、位置姿勢推定部120で推定した撮像装置の位置を表す3次元ベクトルxW Cと姿勢を表す3×3行列RWCをデータ記憶部170から入力し、式3に基づいて客観視点指標Pの推定位置xW Pを算出する。
ステップS8010において、客観視点指標同定部690は、客観視点指標Pの推定位置xW Pと注目する客観視点指標候補Pmの3次元位置xW Pmとの距離を算出する。すなわち、距離dmを、
によって算出する。
ステップS8020において、客観視点指標同定部690は、ステップS8010で求めた距離dmが所定の範囲内であるかを判断する。
所定範囲内であれば処理をステップS8030に進め、ステップS8030において、客観視点指標同定部690は、この客観視点指標候補が客観視点指標であると判定し、例えばその客観視点指標の画像座標をI/F1009を介して外部へと出力して、本処理を終了する。
一方、所定範囲外の場合には処理をステップS8040に進め、ステップS8040において、客観視点指標同定部690は、全ての客観視点指標候補PmについてステップS8010〜S8030の処理を行ったのか否かを判断し、行っているのであれば本処理を終了するのであるが、行っていないのであれば処理をステップS8010に戻し、未だステップS8010以降の処理対象となっていない客観視点指標候補PmについてステップS8010以降の処理を行う。
以上の処理によって客観視点指標を同定することができる。
以上のように、本実施形態に係る情報処理装置及び情報処理方法によっても、上記[従来技術3]で利用されていたような発光タイミングの制御機構や高速度カメラは不要となり、その結果、コストを低く抑えることができる。
[第3の実施形態]
第1の実施形態では、空間中を移動する撮像装置に客観視点指標が設定されていた。本実施形態に係る情報処理装置は、任意の対象物体に客観視点指標が設定された情報処理装置であって、第1の実施形態の情報処理装置に対象物体を追加した構成となっている。
図8は、本実施形態に係る情報処理装置の構成を示す図である。図8に示したように、本実施形態に係る情報処理装置900は、客観視点カメラ180、画像入力部160、データ記憶部170、主観視点指標検出部110、位置姿勢推定部920、客観視点指標候補検出部140、位置拘束条件算出部150、及び客観視点指標同定部990、及び主観視点カメラ930によって構成されている。
第1の実施形態と同じ機能を有する部分については図1と同じ番号を付けており、その説明を省略する。ただし、対象物体935に固定された主観視点カメラ930によって取得された画像が主観視点画像として画像入力部160に入力されるという点は第1の実施形態とは異なっている。
本実施形態では、客観視点指標は対象物体935上に設定されているとする。
主観視点カメラ930は、対象物体935に固定して装着されている。ここで、主観視点カメラ座標系における対象物体935の位置及び姿勢は既知であるとする。
また、対象物体935上には、客観視点指標として、対象物体座標系上における位置が既知である客観視点指標Pが設定されているとする。
位置姿勢推定部920は、主観視点指標検出部110によって検出された各々の主観視点指標の画像座標uQknと、既知な情報として予め保持されている世界座標xW Qknの組をデータ記憶部170から入力し、これらの情報に基づいて主観視点カメラ930の位置及び姿勢を推定する。
位置姿勢推定部920はさらに、上記によって推定した(世界座標系における)主観視点カメラ930の位置及び姿勢と、既知の値である主観視点カメラ座標系における対象物体935の位置及び姿勢とに基づいて、対象物体935の位置及び姿勢を推定する。
客観視点指標同定部990は、位置姿勢推定部920によって推定された対象物体935の位置及び姿勢と、位置拘束条件算出部150によって算出された夫々の客観視点指標候補の位置拘束条件とに基づいて、客観視点指標を同定する。
以上によって、任意の対象物体に設定された客観視点指標の同定が実現される。
なお、本実施形態における位置姿勢推定部920は、主観視点カメラ930の位置及び姿勢を一旦求めた後に対象物体935の位置及び姿勢を求めていたが、対象物体935の位置及び姿勢を直接求めてもよい。
なお、本実施形態における対象物体935は、情景を撮像する撮像装置であってもよい。そして、主観視点カメラ930を、情景を撮像する撮像装置の視野とは異なる視野となるように例えば上向きに配置し、それに伴って主観視点カメラ930の視野内に主観視点指標Qkを配置してもよい。そうすることにより、情景を撮像する撮像装置の視野内に主観視点指標Qkが入らなくなるため、美観を損ねるという問題の軽減等に貢献する。
また、本実施形態において、対象物体935に複数の主観視点カメラ930を装着することによって、対象物体935の位置及び姿勢の推定を、位置と姿勢のいずれにおいても高い精度で実現されるようにしてもよい。
(変形例1)
上記の実施形態の夫々において、撮像装置に慣性センサを装着して、例えば非特許文献6の手法によって、撮像装置の位置及び姿勢を推定してもよい。この場合、撮像装置によって取得される主観視点画像上において、少なくとも2個以上の主観視点指標が常に観測されるように設定されていればよい。そして、この場合には、画像情報のみを用いる場合と比較して、撮像装置の位置及び姿勢を安定的に推定することができる。
(変形例2)
上記の実施形態の夫々で用いる主観視点カメラまたは客観視点カメラには、可視光とは異なる波長の光を撮像するカメラを用いることも可能である。例えば、客観視点カメラとして赤外光を撮像するカメラを用い、客観視点指標として赤外光を発光または反射する指標を用いてもよい。この場合、主観視点指標は客観視点カメラには写らないため、客観視点画像上で主観視点指標を誤検出することがなくなるという効果がある。
なお、主観視点カメラとして赤外光を撮像するカメラを用い、主観視点指標として赤外光を発光または反射する指標を用いることも可能である。さらに、主観視点カメラと客観視点カメラの両方に赤外光を撮像するカメラを用い、主観視点指標と客観視点指標の両方に赤外光を発光または反射する指標を用いてもよい。
また、可視光とは異なる波長の光を撮像するカメラとしては、赤外光を撮像するカメラに限らず、紫外光を撮像するカメラなどを用いてもよい。さらに、可視光とは異なる波長の光と可視光の両方を同時に撮像するカメラを用いてもよい。
(変形例3)
上記の実施形態の夫々における客観視点指標同定部では、客観視点指標の推定位置との距離が所定の範囲内である指標候補を客観視点指標であると判定していたが、全ての指標候補と推定位置との距離を求め、それが最小であるものを客観視点指標と判定してもよい。また、最小の距離が閾値以上の場合には、客観視点指標に対応する指標候補が無いと判断してもよい。
(変形例4)
上記の実施形態の夫々における客観視点指標同定部では、客観視点指標の推定位置と指標候補との3次元距離を求めて指標の同定を行っていたが、客観視点画像上の2次元距離を求めて指標の同定を行ってもよい。すなわち、客観視点カメラの世界座標における位置及び姿勢をデータ記憶部170から入力し、これらの情報に基づいて客観視点指標の推定位置を客観視点画像上に投影し、その画像座標と指標候補の画像座標との2次元距離を求めて指標の同定を行ってもよい。この場合、位置拘束条件算出部が不要となることは言うまでもない。
(変形例5)
上記の実施形態の夫々における客観視点指標同定部では、客観視点指標の画像座標をI/F1009を介して外部へと出力していた。しかし、外部に出力する情報は客観視点指標の画像座標に限定されるものではない。例えば特許文献3の方法によって、客観視点指標の画像座標と主観視点指標の画像座標とに基づいて撮像装置(または対象物体)の位置姿勢を算出し、それを外部へと出力してもよい。
図12は、撮像装置(または対象物体)の位置及び姿勢を算出する処理のフローチャートである。本処理を実現するための構成は、第1の実施形態の構成に、位置姿勢算出部を付加した構成であり、例えばCPU1001がソフトウェアプログラムを実行することで位置姿勢算出部として機能する。なお、他の実施形態と同じ構成については、その説明を省略する。
ステップS12000において、位置姿勢算出部は、主観視点指標検出部において検出された主観視点指標の画像座標と、客観視点指標同定部において同定された客観視点指標の画像座標と、位置拘束条件算出部において算出された客観視点指標の位置を拘束するパラメータとを入力する。客観視点指標の位置を拘束するパラメータとしては、客観視点カメラが1台の場合には3次元直線を表すパラメータを入力すればよく、客観視点カメラが2台以上の場合には3次元位置を入力すればよい。
ステップS12010において、位置姿勢算出部は、客観視点指標が存在すべき位置の拘束条件の下で,主観視点画像上における主観視点指標の誤差を最小とするような撮像装置(または対象物体)の位置及び姿勢を算出する。具体的には,例えば特許文献3の方法によって撮像装置(または対象物体)の位置及び姿勢を算出する。
ステップS12020において、位置姿勢算出部は、算出した撮像装置(または対象物体)の位置及び姿勢の情報を、例えばモデリング変換行列の形態によって出力する。
なお、客観視点指標の位置を拘束するパラメータを用いるのではなく、主観視点指標及び客観視点指標の画像座標とそれらの点の計算値との間の誤差の総和を最小化するような演算を行って、撮像装置(または対象物体)の位置及び姿勢を算出してもよい。具体的には、例えば特許文献3の方法を使えばよい。
(変形例6)
上記の実施形態の夫々では、まず主観視点画像の情報を用いて撮像装置(または対象物体)の位置及び姿勢を推定し、その位置及び姿勢に基づいて客観視点指標の同定を行っていた。しかし、主観視点画像の情報を利用して客観視点指標の同定を行う方法は、これに限定されるものではない。
例えば、以下に述べるような方法で客観視点指標を同定してもよい。まず、夫々の客観視点指標候補が客観視点指標であると仮定する。次に、客観視点指標であると仮定した客観視点指標候補の画像座標と主観視点指標の画像座標とを使って、例えば特許文献3の方法によって、撮像装置の位置及び姿勢を夫々算出する。そして、その算出過程で得られる投影誤差の残差を最小にするような客観視点指標候補を客観視点指標と判定してもよい。この場合、主観視点画像のみを用いて撮像装置の位置及び姿勢を推定できなくてもよい。なお、この場合、位置姿勢推定部と位置拘束条件算出部が不要となる。
(変形例7)
上記の実施形態の夫々では、各主観視点指標が何らかの方法で識別可能である場合について説明したが、客観視点指標と同様に各主観視点指標も識別できなくてもよい。つまり、図1または図5または図8において、主観視点指標Qk(k=1〜4)を、略同一色を有する円形状のマーカや、エッジ等の自然特徴によって構成してもよい。この場合には、以下に述べるような方法で客観視点指標を同定することができる。
図13は、客観視点指標を同定する処理のフローチャートである。本処理は、例えばCPU1001がソフトウェアプログラムを実行することで客観視点指標同定部として機能する。
ステップS13000において、客観視点指標同定部は、各客観視点指標候補の画像座標及び3次元位置、及び各主観視点指標候補の画像座標、及び各主観視点指標の3次元位置をデータ記憶部170から入力する。
ステップS13010において、客観視点指標同定部は、客観視点指標候補の3次元位置の一つを撮像装置(または対象物体)の位置と仮に設定する。
ステップS13020において、客観視点指標同定部は、撮像装置の仮定位置を中心とする仮想球面上に各主観視点指標の3次元位置を投影し、それらと主観視点指標候補の夫々とを、例えば非特許文献7の方法によって仮に対応付ける。
ステップS13030において、客観視点指標同定部は、客観視点指標候補の画像座標と、ステップS13020において仮に対応付けられた主観視点指標候補の画像座標とを使って、例えば特許文献3の方法によって撮像装置の位置及び姿勢を算出する。そして、その算出過程で得られる投影誤差の残差を求める。
ステップS13040において、客観視点指標同定部は、全ての客観視点指標候補に対してステップS13010〜S13030の処理を行ったのか否かを判断する。全ての客観視点指標候補に対して処理を終えていない場合はステップS13010に処理を戻し、未処理の客観視点指標候補に対してステップS13010〜S13030の処理を行う。一方、全ての客観視点指標候補に対して処理を終えた場合は、ステップS13050に処理を進める。
ステップS13050において、客観視点指標同定部は、夫々の客観視点指標候補に対してステップS13030で算出した残差を比較し、それが最も小さい客観視点指標候補が客観視点指標であると判定して、データ記憶部170へと出力する。
なお、選択された客観視点指標候補を仮定した際にステップS13020で仮に対応付けられる主観視点指標の情報を、主観視点指標の同定情報として同時に出力してもよい。また、選択された客観視点指標候補を仮定した際にステップS13030で算出される撮像装置の位置及び姿勢を、撮像装置の位置及び姿勢として出力してもよい。
以上の処理によって、客観視点指標を同定することができる。
(変形例8)
変形例7では、客観視点指標候補の3次元位置が算出可能な場合、つまり客観視点カメラが複数台の場合について説明したが、客観カメラは1台であってもよい。この場合には、以下に述べるような方法で客観視点指標を同定することができる。
図14は、客観カメラが1台の場合に客観視点指標を同定する処理のフローチャートである。本処理は、例えばCPU1001がソフトウェアプログラムを実行することで客観視点指標同定部として機能する。
ステップS14000において、客観視点指標同定部は、各客観視点指標候補の画像座標、及び各主観視点指標候補の画像座標、及び各主観視点指標の3次元位置をデータ記憶部170から入力する。
ステップS14010において、客観視点指標同定部は、客観視点指標候補の一つを選択する。
ステップS14020において、客観視点指標同定部は、選択された客観視点指標の位置を拘束する3次元直線を例えば10cm間隔で分割して、分割された夫々の位置を撮像装置の位置と仮に設定する。
ステップS14030において、客観視点指標同定部は、撮像装置の仮定位置を中心とする仮想球面上に各主観視点指標の3次元位置を投影し、それらと主観視点指標候補の夫々とを、例えば非特許文献7の方法によって仮に対応付ける。
ステップS14040において、客観視点指標同定部は、選択された客観視点指標候補の画像座標と、ステップS14030において仮に対応付けられた主観視点指標候補の画像座標とを使って、例えば特許文献3の方法によって撮像装置の位置及び姿勢を算出する。そして、その算出過程で得られる投影誤差の残差を求める。
ステップS14050において、客観視点指標同定部は、撮像装置の全ての仮定位置に対してステップS14020〜S14040の処理を行ったのか否かを判断する。全ての仮定位置に対して処理を終えていない場合はステップS14020に処理を戻し、未処理の仮定位置に対してステップS14020〜S14040の処理を行う。一方、全ての仮定位置に対して処理を終えた場合は、ステップS14060に処理を進める。
ステップS14060において、客観視点指標同定部は、撮像装置の全ての仮定位置で算出した残差を比較し、その最小値を選択する。
ステップS14070において、客観視点指標同定部は、全ての客観視点指標候補に対してステップS14010〜S14060の処理を行ったのか否かを判断する。全ての客観視点指標候補に対して処理を終えていない場合はステップS14010に処理を戻し、未処理の客観視点指標候補に対してステップS14010〜S14060の処理を行う。一方、全ての客観視点指標候補に対して処理を終えた場合は、ステップS14080に処理を進める。
ステップS14080において、客観視点指標同定部は、夫々の客観視点指標候補に対してステップS14060で選択された残差の最小値を比較し、それが最も小さい客観視点指標候補が客観視点指標であると判定して、データ記憶部170へと出力する。
なお、変形例7と同様に、選択された客観視点指標候補を仮定した際に得られる主観視点指標の同定情報や撮像装置の位置及び姿勢を出力することも、もちろん可能である。
以上の処理によって、客観視点指標を同定することができる。
(変形例9)
変形例7のステップS13020や変形例8のステップS14030における主観視点指標と主観視点指標候補とを対応付ける方法は、非特許文献7の方法に限らない。例えば、撮像装置に慣性センサを装着して傾斜角の絶対値を計測して方位角のみを未知とすることで、より効率的な対応付けをおこなうことができる。
図15は、主観視点指標を同定する処理のフローチャートである。本処理は、変形例7のステップS13020や変形例8のステップS14030の代わりとなる処理であって、例えばCPU1001がソフトウェアのプログラムを実行することで客観視点指標同定部として機能する。ここで、傾斜角の計測値は予めデータ記憶部170から入力されているものとする。
ステップS15000において、客観視点指標同定部は、未知な方位角を例えば1度刻みで仮に設定する。
ステップS15010において、客観視点指標同定部は、撮像装置の傾斜角及び仮定方位角及び仮定位置に基づいて、撮像画像上に夫々の主観視点指標の3次元位置を投影する。そして、主観視点指標の夫々と主観視点指標候補の夫々とを、夫々の主観視点指標の投影座標と主観視点指標候補の画像座標との2次元距離に基づいて仮に対応付ける。例えば、夫々の主観視点指標と、その投影座標と最も距離の近い画像座標を有する主観視点指標候補とを、仮に対応付ける。
ステップS15020において、客観視点指標同定部は、ステップS15010における主観視点指標と主観視点指標候補との対応付けの評価値を算出する。例えば、夫々の主観視点指標の投影座標と、仮に対応付けられた主観視点指標候補の画像座標との2次元距離を求め、その距離が予め設定した閾値よりも小さくなるような対応付けの個数を評価値とすればよい。または、夫々の2次元距離と前記個数の両方を考慮した評価値を用いてもよい。例えば、前記閾値から前記2次元距離の二乗平均値を引いた値と前記個数の和を評価値としてもよい。もちろん、これらに限らず、対応付けの正しさの度合が測れる評価値であれば何を用いてもよい。
ステップS15030において、客観視点指標同定部は、全ての仮定方位角に対してステップS15000〜S15020の処理を行ったのか否かを判断する。全ての仮定方位角に対して処理を終えていない場合はステップS15000に処理を戻し、未処理の仮定方位角に対してステップS15000〜S15020の処理を行う。一方、全ての仮定方位角に対して処理を終えた場合は、ステップS15040に処理を進める。
ステップS15040において、客観視点指標同定部は、全ての仮定方位角に対してステップS15020で算出した評価値を比較する。そして、評価値が最も大きくなるような主観視点指標と主観視点指標候補との対応付け結果を選択する。
このように、傾斜角を既知とすることにより、主観視点指標と主観視点指標候補とを対応付ける処理に要する時間を、非特許文献7の方法と比べて短縮することができる。
なお、撮像装置に慣性センサを装着すると、主観視点指標と主観視点指標候補との対応付けが1次元の探索に基づいて行われることになる。したがって、主観視点指標にエッジ等の自然特徴を用いる場合にも、従来よりも高い精度で対応付けることができる。
ここで、さらに例えば磁気式のコンパスを撮像装置に装着して大まかな方位角を計測することによって、方位角の探索範囲をコンパスの計測誤差の範囲内(例えば±30度)に絞り込んでもよい。
以上のようにして同定された客観視点指標と主観視点指標を用いて、例えば特許文献3の手法によって、撮像装置の位置及び姿勢を算出することができる。
なお、客観視点指標候補が一つだけの場合や何らかの他の手段によって客観視点指標が同定可能な場合、すなわち、客観視点指標が既に同定済みの場合であっても、本変形例で示した主観視点指標の同定方法は効果的である。
[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。