(57)【要約】【課題】  計測対象物体における計測線分と、撮像画像上の計測対象物体のエッジとを正確に対応付け、この対応の関係を用いてより正確に撮像装置の位置姿勢を計測するための技術を提供すること。【解決手段】  計測線分投影部４００は、現実物体１９９の位置姿勢に３次元モデルを配置させた後、３次元モデルを撮像画像上に投影する。撮像画像上に投影された３次元モデルを構成する辺の周辺で、撮像画像上の現実物体１９９の辺を探索する。探索の結果に基づいて決まる、撮像画像上に投影された３次元モデルを構成する各辺と、撮像画像上に位置する現実物体１９９を構成する各辺との対応関係を用いて、現実物体１９９と撮像装置５０との位置姿勢関係を計算する。上記探索は、注目辺の周辺で探索を行う場合、撮像画像上に投影された３次元モデルを構成する各辺と注目辺との位置関係に応じて、探索範囲を設定する。【選択図】  図１
2008275341.tif 000002
【特許請求の範囲】
【請求項１】
現実空間中に配置されている現実物体を含む現実空間を、撮像装置が撮像することで得られる撮像画像を取得する取得手段と、
前記現実物体の位置姿勢に当該現実物体を模した仮想物体を配置させた後、当該仮想物体を前記撮像画像上に投影する投影手段と、
前記投影手段により前記撮像画像上に投影された仮想物体を構成する辺の周辺で、前記撮像画像上の前記現実物体の辺を探索する探索手段と、
前記探索手段による探索の結果に基づいて決まる、前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺と、前記撮像画像上に位置する前記現実物体を構成する各辺との対応関係を用いて、前記現実物体と前記撮像装置との位置姿勢関係を計算する計算手段とを備え、
前記探索手段は、
注目辺の周辺で探索を行う場合、前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺と前記注目辺との位置関係に応じて、探索範囲を設定することを特徴とする情報処理装置。
【請求項２】
前記探索手段は、
前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺のうち、一端を共有する辺が複数存在する場合、当該複数の辺の間の領域については１回のみの探索を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記探索手段は、
前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺のうち、平行な２つの辺の中線に投影すると重複する部分が発生するような当該２つの辺と当該中線との間の領域については１回のみの探索を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記計算手段により求める位置姿勢関係に基づいて決まる視点から見える仮想空間の画像を生成する手段と、
前記仮想空間の画像と前記撮像画像とを合成した合成画像を出力する手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
現実空間中に配置されている現実物体を含む現実空間を、撮像装置が撮像することで得られる撮像画像を取得する取得工程と、
前記現実物体の位置姿勢に当該現実物体を模した仮想物体を配置させた後、当該仮想物体を前記撮像画像上に投影する投影工程と、
前記投影工程で前記撮像画像上に投影された仮想物体を構成する辺の周辺で、前記撮像画像上の前記現実物体の辺を探索する探索工程と、
前記探索工程での探索の結果に基づいて決まる、前記投影工程で前記撮像画像上に投影された仮想物体を構成する各辺と、前記撮像画像上に位置する前記現実物体を構成する各辺との対応関係を用いて、前記現実物体と前記撮像装置との位置姿勢関係を計算する計算工程とを備え、
前記探索工程では、
注目辺の周辺で探索を行う場合、前記投影工程で前記撮像画像上に投影された仮想物体を構成する各辺と前記注目辺との位置関係に応じて、探索範囲を設定することを特徴とする情報処理方法。
【請求項６】
コンピュータに請求項５に記載の情報処理方法を実行させるためのコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置の位置姿勢を計測するための技術に関するものである。
【背景技術】
【０００２】
現実空間を撮像する撮像装置の位置姿勢の計測は、例えば現実空間と仮想空間とを融合した画像をユーザに提示する複合現実感システムにおいては必要となる。
【０００３】
従来から撮像装置の位置姿勢を計測する方法として、３次元位置が既知の指標を用いる方法が開示されている。係る方法では、撮像装置のおおよその位置姿勢を用いて各指標の３次元位置を撮像画像上へ投影した投影位置と、撮像画像上から検出される指標の撮像画像上の位置と、の距離を用いた目的関数を最適化することで、撮像装置の位置姿勢を推定している。
【０００４】
さらに指標としては、現実空間中に含まれる物体構成面の境界を既知の指標として用いる方法が開示されている。以降、観察可能な物体構成面の境界を「エッジ」と呼称する。
【０００５】
非特許文献１には次のような方法が開示されている。即ち、計測対象物体における計測線分をおおよその撮像装置の位置姿勢を用いて撮像画像上に投影し、投影した線分と、撮像画像から検出されたこの計測線分に対応するエッジと、の距離を目的関数として、位置姿勢を推定する方法が開示されている。
【０００６】
係る手法の概略は以下のとおりである。
【０００７】
・  推定したおおよその撮像装置の位置姿勢を用いて、計測対象物体における計測線分を、この撮像装置が撮像した撮像画像上に投影する。
【０００８】
・  投影した計測線分の周辺の撮像画像上の画素を探索し、濃度が局所的に変化する領域（エッジ領域）の位置を求める、
・  エッジ領域の位置と、投影した計測線分との距離を小さくするような最適化計算を行う。
【０００９】
・  推定したおおよその撮像装置の位置姿勢を、係る最適化計算に応じて更新させる。
【００１０】
この計測対象物体の計測線分を用いる位置姿勢推定は、係る計測対象物体の形状が既知であり、係る計測対象物体の３次元モデルが得られるのであれば可能であるので、利用範囲が広い。
【００１１】
さらに、撮像画像上のエッジを探索する範囲が、計測線分が投影された周辺の画像のみを処理するので、撮像画像全体から画像処理によりエッジを検出してからモデルとの距離を求める方法に比べ、処理時間を短くすることができるという利点がある。そのため、係る位置姿勢推定の方法は、複合現実感等、実時間処理が必要な撮像装置の位置合わせの為に用いられている。
【００１２】
非特許文献１では、計測対象物体として比較的簡素な形態を有するものを用いており、探索領域が重ならない粗な計測線分を用いている。
【００１３】
また、実際の環境では、照明や計測対象物体以外のものが設置されているので、計測対象物体以外のエッジも多く観察されることになる。
【００１４】
計測線分とエッジとの対応が不十分であると、他の計測線分のエッジとの差を計算する可能性もあり、誤った値へと解が収束する場合が発生する。そこで、複数のエッジが観測されることを前提として、複数の対応を保持しながら目的関数を最小化する方法が非特許文献２において開示されている。
【００１５】
複数の観察されたエッジから、対応する線分のエッジの一つを対応付け、対応付けたエッジと撮像画像上へ投影された計測線分との距離を小さくするように最適化計算を行う。対応付けに関する想定を何度か繰り返して最も誤差が少なくなるように収束させることで、計測対象外のエッジが混在した環境でも頑健に位置姿勢の推定が行える。
【非特許文献１】Ｔｏｍ  Ｄｒｕｍｍｏｎｄ  ａｎｄ  Ｒｏｂｅｒｔｏ  Ｃｉｐｏｌｌａ．“Ｒｅａｌ−ｔｉｍｅ  ｖｉｓｕａｌ  ｔｒａｃｋｉｎｇ  ｏｆ  ｃｏｍｐｌｅｘ  ｓｔｒｕｃｔｕｒｅｓ．”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｆ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ．  Ｖｏｌ．２４，Ｎｏ．７，ｐｐ．９３２−９４６，２００２
【非特許文献２】Ｌ．Ｖａｃｃｈｅｔｔｉ，Ｖ．Ｌｅｐｅｔｉｔ  ａｎｄ  Ｐ．Ｆｕａ，“Ｃｏｍｂｉｎｉｎｇ  ｅｄｇｅ  ａｎｄ  ｔｅｘｔｕｒｅ  ｉｎｆｏｒｍａｔｉｏｎ  ｆｏｒ  ｒｅａｌ−ｔｉｍｅ  ａｃｃｕｒａｔｅ  ３Ｄ  ｃａｍｅｒａ  ｔｒａｃｋｉｎｇ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｘｅｄ  ａｎｄ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ，ｐｐ．４８−５７，２００４
【発明の開示】
【発明が解決しようとする課題】
【００１６】
計測対象物体として任意のものを用いると、計測線分が密に成る可能性がある。１つの計測線分の周辺に複数の計測線分が存在するような計測対象物体、例えば、ジャングルジムのようなワイヤーフレームで構成された計測対象物体では、撮像画像上に投影されたそれぞれの計測線分における探索領域はお互いに重なり合う。この場合、重複した探索領域におけるエッジ探索処理は無駄となる。
【００１７】
更に、計測線分同士の関係を考慮していないため、計測対象物体の角付近や、平行な計測線分が撮像画像上で近接する場合には、計測線分とエッジとの対応関係を誤る可能性がある
また、計測対象物体が遠方にあると、撮像画像上における計測対象物体のサイズも小さくなるので、結果として計測線分同士の間隔が小さくなり、探索領域が重複する可能性は高くなる。これにより、検出されたエッジと計測線分との対応関係を誤る頻度も増えるため、位置姿勢の推定結果に影響が出てくる。
【００１８】
本発明は以上の問題に鑑みてなされたものであり、計測対象物体における計測線分と、撮像画像上の計測対象物体のエッジとを正確に対応付け、この対応の関係を用いてより正確に撮像装置の位置姿勢を計測するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００２０】
即ち、現実空間中に配置されている現実物体を含む現実空間を、撮像装置が撮像することで得られる撮像画像を取得する取得手段と、
前記現実物体の位置姿勢に当該現実物体を模した仮想物体を配置させた後、当該仮想物体を前記撮像画像上に投影する投影手段と、
前記投影手段により前記撮像画像上に投影された仮想物体を構成する辺の周辺で、前記撮像画像上の前記現実物体の辺を探索する探索手段と、
前記探索手段による探索の結果に基づいて決まる、前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺と、前記撮像画像上に位置する前記現実物体を構成する各辺との対応関係を用いて、前記現実物体と前記撮像装置との位置姿勢関係を計算する計算手段とを備え、
前記探索手段は、
注目辺の周辺で探索を行う場合、前記投影手段により前記撮像画像上に投影された仮想物体を構成する各辺と前記注目辺との位置関係に応じて、探索範囲を設定することを特徴とする。
【００２１】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００２２】
即ち、現実空間中に配置されている現実物体を含む現実空間を、撮像装置が撮像することで得られる撮像画像を取得する取得工程と、
前記現実物体の位置姿勢に当該現実物体を模した仮想物体を配置させた後、当該仮想物体を前記撮像画像上に投影する投影工程と、
前記投影工程で前記撮像画像上に投影された仮想物体を構成する辺の周辺で、前記撮像画像上の前記現実物体の辺を探索する探索工程と、
前記探索工程での探索の結果に基づいて決まる、前記投影工程で前記撮像画像上に投影された仮想物体を構成する各辺と、前記撮像画像上に位置する前記現実物体を構成する各辺との対応関係を用いて、前記現実物体と前記撮像装置との位置姿勢関係を計算する計算工程とを備え、
前記探索工程では、
注目辺の周辺で探索を行う場合、前記投影工程で前記撮像画像上に投影された仮想物体を構成する各辺と前記注目辺との位置関係に応じて、探索範囲を設定することを特徴とする。
【発明の効果】
【００２３】
本発明の構成により、計測対象物体における計測線分と、撮像画像上の計測対象物体のエッジとを正確に対応付け、この対応の関係を用いてより正確に撮像装置の位置姿勢を計測することができる。
【発明を実施するための最良の形態】
【００２４】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【００２５】
［第１の実施形態］
図１は、本実施形態に係る情報処理装置を、撮像装置５０の位置姿勢を計測する位置姿勢計測装置１００に適用した場合に、係る位置姿勢計測装置１００を含むシステムの機能構成を示すブロック図である。図１に示す如く、本実施形態に係るシステムは、撮像装置５０、位置姿勢計測装置１００、概略位置姿勢計測装置７０により構成されている。以下、図１を用いて、これら各部について説明する。
【００２６】
現実空間中には、多角形の面で構成された任意の形状を有する現実物体１９９が、計測対象物体として配置されている。図１では係る現実物体１９９は直方体であるが、係る形状に限定するものではない。
【００２７】
撮像装置５０は、係る現実物体１９９を含む現実空間の動画像を撮像するものであり、撮像した各フレームの画像（撮像画像、若しくは現実空間画像と呼称する）は、位置姿勢計測装置１００に順次入力される。なお、撮像装置５０は、位置姿勢計測装置１００に対して撮像画像を入力することができるのであれば、有線で位置姿勢計測装置１００に接続されても良いし、無線で位置姿勢計測装置１００と通信しても良い。また図１では、撮像装置５０は、位置姿勢計測装置１００とは別個の装置として示されているが、位置姿勢計測装置１００と一体化されても良い。
【００２８】
概略位置姿勢計測装置７０は、位置姿勢計測装置１００が後述する処理を実行する際に初期値として用いる「撮像装置５０の位置姿勢」を示すデータを取得し、取得した「撮像装置５０の位置姿勢」を示すデータを位置姿勢計測装置１００に提供する装置である。概略位置姿勢計測装置７０に適用可能な装置としては様々なものが考えられる。
【００２９】
ここでは一例として、概略位置姿勢計測装置７０に、磁気センサシステムを適用した場合について説明する。磁気センサシステムは、トランスミッタ、レシーバ、コントローラにより構成されている。概略位置姿勢計測装置７０として磁気センサシステムを用いる場合、概略位置姿勢計測装置７０は撮像装置５０の位置姿勢を示すデータを、以下のようにして取得する。
【００３０】
先ず、撮像装置５０の撮像視点近傍にレシーバを装着する。そして現実空間中の予め定められた位置には、トランスミッタを配置する。トランスミッタは、コントローラによる制御に従って周囲に磁界を発生する。レシーバは係る磁界中で自身の位置姿勢に応じた磁界の変化を検知する。検知した結果を示す信号はコントローラに送出される。コントローラは、係る信号に基づいて、センサ座標系におけるレシーバの位置姿勢を求める。ここでセンサ座標系とは、トランスミッタの位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、ｘ、ｙ、ｚ軸とする座標系である。このように、磁気センサシステムを概略位置姿勢計測装置７０に適用した場合、概略位置姿勢計測装置７０は上述した磁気センサシステムが行う処理と同じ処理を行うことで、センサ座標系におけるレシーバの位置姿勢を取得する。ここで、センサ座標系が世界座標系と一致していれば、磁気センサシステムが求めたものは、世界座標系におけるレシーバの位置姿勢となる。また、一致していなくても、センサ座標系と世界座標系との位置姿勢関係が既知であれば、センサ座標系で求めたものを係る位置姿勢関係で変換することで、世界座標系における位置姿勢を得ることができる。なお、係る説明では、レシーバの位置姿勢が撮像装置５０の位置姿勢として取り扱われることになる。また、レシーバと撮像装置５０のレンズ位置（視点）との位置姿勢関係をバイアスとして予め測定しておき、係るバイアスをレシーバの位置姿勢に加えることで、概略位置姿勢計測装置７０は視点の位置姿勢を求めることができる。そして概略位置姿勢計測装置７０は、取得した位置姿勢のデータを、位置姿勢計測装置１００に送出する。
【００３１】
もちろん、予め人が測定した撮像装置５０の位置姿勢をデータとしてコンピュータのメモリに登録しておき、概略位置姿勢計測装置７０が係るメモリからこのデータを読み出して位置姿勢計測装置１００に入力するようにしても良い。このように、概略位置姿勢計測装置７０が撮像装置５０の位置姿勢を示すデータを取得し、位置姿勢計測装置１００に入力するための構成については様々なものが考えられる。なお、概略位置姿勢計測装置７０は最初に一度だけ撮像装置５０の位置姿勢のデータを位置姿勢計測装置１００に入力すると、位置姿勢計測装置１００は係るデータを初期値として用い、後述する処理により、より精度の高い撮像装置５０の位置姿勢を求める。そして、求めたより精度の高い位置姿勢を次の演算処理の初期値とするため、それ以降は概略位置姿勢計測装置７０は必要ない。
【００３２】
次に、現実物体１９９の３次元モデル（仮想物体）のデータ６０について説明する。３次元モデルのデータ６０は、現実物体１９９の３次元的な幾何学形状について記した情報群で構成されている。３次元モデルのデータ６０についての詳細は後述するが、３次元モデルのデータ６０は、例えば、市販の３次元ＣＡＤやＣＧ作成用のソフトウェア等を用いて作成しても良いし、その作成方法については特に限定するものではない。係る３次元モデルのデータ６０は、例えば、位置姿勢計測装置１００の外部に接続されているサーバ装置やハードディスク装置などにデータとして保存されており、必要に応じて読み出され、位置姿勢計測装置１００に入力される。なお、位置姿勢計測装置１００が有する不図示のメモリに予め３次元モデルのデータ６０が登録されている場合には、係る３次元モデルのデータ６０を使用する際に、係るメモリから読み出せばよい。
【００３３】
次に、位置姿勢計測装置１００について説明する。本実施形態では、現実物体１９９を撮像している撮像装置５０の、現実物体１９９に対する相対的な位置姿勢を、位置姿勢計測装置１００によって求めることを目的としている。なお、以下説明する「撮像装置５０の位置姿勢を求める処理」は、撮像装置５０から１フレーム分の撮像画像が位置姿勢計測装置１００に入力される毎に、位置姿勢計測装置１００が行う処理である。即ち、位置姿勢計測装置１００は、撮像装置５０から入力される撮像画像毎に、「撮像装置５０の位置姿勢を求める処理」を行う。
【００３４】
位置姿勢計測装置１００は、各種の処理を実行する処理部と、情報を保持するための保持部とで構成されている。後者は図１において情報保持部３００に相当する。前者は、情報保持部３００以外の各部に相当する。
【００３５】
撮像画像入力部１５０は、撮像装置５０を位置姿勢計測装置１００に接続するためのコネクタにより構成されており、撮像装置５０から送出される撮像画像は係る撮像画像入力部１５０を介して後段の画像取得部２００に信号として入力される。
【００３６】
画像取得部２００は、撮像画像入力部１５０を介して入力された撮像画像の映像信号の水平同期信号、垂直同期信号を参照し、サンプリングを行う。そしてサンプリングした映像信号に基づいて、２次元画像のデータを生成する。そして係る２次元画像のデータを撮像画像のデータとして情報保持部３００に送出する。
【００３７】
情報保持部３００は、画像取得部２００から受けた撮像画像のデータを、撮像画像３１０として保持する。
【００３８】
一方、計測線分抽出部１６０には、上述の３次元モデルのデータ６０が入力される。計測線分抽出部１６０は、３次元モデルのデータ６０から計測用線分データ３２０を抽出し、情報保持部３００に送出する。情報保持部３００は、係る計測用線分データ３２０を保持する。
【００３９】
計測用線分データ３２０は、（３次元モデルのデータ６０が示す）３次元モデルを構成する各線分の両端の頂点の３次元座標値のデータにより構成されている。例えば、３次元モデルがポリゴンでもって構成されているのであれば、計測用線分データ３２０は、各頂点の３次元座標値のデータでもって構成されていることになる。３次元モデルのデータ６０から計測線分抽出部１６０により計測用線分データ３２０を読み出し、情報保持部３００に登録する処理は、位置姿勢計測装置１００を起動し、以下説明する撮像装置５０の位置姿勢を求める算出処理の開始前に行うようにしても良い。また、前回の位置姿勢の算出処理にて用いた計測用線分データ３２０を不揮発性メモリに格納したのであれば、係る計測用線分データ３２０をそのまま用いても良い。
【００４０】
また、３次元モデルのデータ６０が、設計ＣＡＤデータのフォーマットを有するものであれば、計測線分抽出部１６０は、係るフォーマットを解析し、計測用線分データ３２０を得、これを情報保持部３００に登録する。即ち、３次元モデルのデータ６０がどのようなフォーマットであっても、係るフォーマットを解析し、計測用線分データ３２０を得、これを情報保持部３００に登録する。
【００４１】
一方、概略位置姿勢入力部１７０には、概略位置姿勢計測装置７０から送出された撮像装置５０の位置姿勢を示すデータが入力される。上述のように、概略位置姿勢計測装置７０から入力したデータは、位置姿勢計測装置１００が初期値として用いるものであり、正確なものでなくても良い。なお、概略位置姿勢計測装置７０から送出されたデータが、世界座標系における位置姿勢を示すものであれば、これをそのまま撮像装置５０の位置姿勢を示すデータ３３０として後段の情報保持部３００に登録する。一方、概略位置姿勢計測装置７０から送出されたデータが、センサ座標系等、世界座標系以外の座標系における位置姿勢を示すものであれば、係る座標系と世界座標系との位置姿勢関係を用いてこのデータを世界座標系における位置姿勢を示すデータに変換する。そして変換したデータをデータ３３０として情報保持部３００に登録する。何れにせよ、データ３３０として、「世界座標系における撮像装置５０の位置姿勢を示すデータ」を情報保持部３００に登録する。
【００４２】
次に、情報保持部３００に登録されたこれらの情報を用いて、現実物体１９９に対する撮像装置５０の位置姿勢を求めるための処理について説明する。上述の通り、係る処理は、撮像画像３１０が情報保持部３００に登録される毎に行われる。
【００４３】
ここで、世界座標系における現実物体１９９の位置姿勢、現実物体１９９を構成する各面（多角形）の各辺（計測線分）の両端の位置、は予め何らかの方法でもって測定されている。そして、測定された結果を示すデータは、位置姿勢計測装置１００が有する不図示のメモリに登録されているものとする。また、上述の通り、計測用線分データ３２０には、現実物体１９９を模した３次元モデルを構成する各面（多角形）の各辺（計測線分）の両端の座標位置が登録されている。従って計測線分投影部４００は、世界座標系における現実物体１９９の位置姿勢に、現実物体１９９を模した３次元モデルを配置させる処理を、各座標位置を世界座標系における位置に変換することで行う。なお、係る投影では、より手前の面によって隠れて見えない辺については投影しないものとする。係る技術については周知のものであるので、これについての説明は省略する。
【００４４】
ここで、世界座標系における位置［ｘｗ  ｙｗ  ｚｗ］Ｔと、係る位置を撮像画像上に投影した座標位置［ｕｘ  ｕｙ］Ｔとの間には、透視投影変換行列Ｐにより、以下のような関係がある。
【００４５】
【数１】
2008275341.tif 000003
【００４６】
ここで、左辺のｈは同次座標変換の表現を用いており、定数倍の項としてｈが得られると、それぞれの項をｈで除することで値が得られる。また、Ｒ１１、Ｒ１２、Ｒ１３、Ｒ２１、Ｒ２２、Ｒ２３、Ｒ３１、Ｒ３２、Ｒ３３を要素とする行列Ｒ（３×３行列）を世界座標系における姿勢の回転行列、ｔ＝［ｔｘ  ｔｙ  ｔｚ］Ｔを平行移動ベクトルとすると、上式のＰは以下のように表せる。
【００４７】
【数２】
2008275341.tif 000004
【００４８】
ここで、ｆｘ、ｆｙはそれぞれ、水平方向の焦点距離、垂直方向の焦点距離であり、ｐｘ、ｐｙはそれぞれ、撮像画像上における水平方向の主点座標、垂直方向の主点座標である。
【００４９】
情報保持部３００が保持する位置姿勢のデータ３３０は、位置ｔ＝［ｔｘ  ｔｙ  ｔｚ］Ｔのデータと、姿勢ω＝［ωｘ  ωｙ  ωｚ］Ｔのデータと、で構成されている。また、姿勢ωのデータと回転行列Ｒとの関係は以下のようになる。
【００５０】
【数３】
2008275341.tif 000005
【００５１】
計測線分投影部４００は、上述の式を用いて、世界座標系に配置した３次元モデルの計測線分毎に、その両端を、撮像装置５０の撮像面に投影する。これにより、計測線分毎に、撮像面上における両端の座標位置を得ることができる。また、撮像面上には、撮像装置５０が撮像した画像が写っており、係る画像には現実物体１９９が撮像されている。即ち、係る画像には、現実物体１９９と、現実物体１９９を模した３次元モデルとが、若干ずれてはいるものの、だいたい重なって位置している。しかし、現実物体１９９、３次元モデルのそれぞれにおいて対応する辺同士はずれている。以降の処理では、現実物体１９９を構成する各辺が、３次元モデルを構成する各辺のどれに対応するのかを探索する。
【００５２】
計測線分投影部４００が、３次元モデルの全ての計測線分の両端を撮像面上に投影すると、エッジ探索設定部５００は、投影した各計測線分の両端の座標位置を参照し、投影した計測線分同士の位置関係を判断する。そして、投影した計測線分の周囲で後述するエッジの探索処理を行う場合に、その探索範囲の設定を行う。
【００５３】
エッジ探索設定部５００の主な処理は、ある計測線分についての探索範囲と、他の計測線分についての探索範囲とが重複している箇所の判定と、新たな探索領域の設定である。さらに、撮像面上に投影された計測線分の周辺領域に対して、撮像装置５０によって撮像された撮像画像上の局所的に濃度変化がある領域を検出する処理を行う。局所的に濃度変化がある領域はエッジと呼ぶ。周辺領域の探索を効率的に行うために、非特許文献１では、投影計測線分の垂直の一次元方向にエッジを探索する処理を行っている。これにより、周辺領域全ての画素に対してエッジであるかどうかのチェックをする回数よりも少ない回数で効率的にエッジの場所を検出することができる。
【００５４】
ここで、エッジ探索設定部５００が行う処理について詳細に説明する。
【００５５】
図２は、３次元モデルを構成する各辺（各計測線分）に対応する、現実物体１９９を構成する各辺（各エッジ）を探索する処理を説明する図である。図２において２９９は、上記３次元モデルのデータ６０が示す３次元モデルである。２５０は、撮像装置５０により撮像された撮像画像である。撮像画像２５０には、撮像装置５０が撮像した現実物体１９９が位置している。また計測線分投影部４００が上述のように、仮想物体２９９を現実物体１９９の位置姿勢に配置した後、撮像画像２５０上に投影したので、撮像画像２５０上には、仮想物体２９９が位置している。仮想物体２９９を構成する辺毎に、辺の周辺で局所的に濃度変化があるエッジを探索する。ここで、撮像画像上のエッジを探索する範囲をエッジ探索領域と呼ぶ。さらに、投影された計測線分を投影計測線分と呼ぶ。
【００５６】
図３は、ｉ番目の投影計測線分（注目辺）の周辺でエッジを探索する処理について説明する図である。ここでｉは、撮像画像上における３次元モデルの投影計測線分について付けられたインデックスである。以下ではｉ番目の投影計測線分を「投影計測線分ｉ」と呼称する。
【００５７】
また、以下では、投影計測線分ｉの撮像画像上における始点の座標位置をＰｓ（ｉ）＝［ｘｓｉ  ｙｓｉ］Ｔ、終点をＰｅ（ｉ）＝［ｘｅｉ  ｙｅｉ］Ｔとする。
【００５８】
始点と終点とを結ぶベクトルｖｉは、ｖｉ＝［ｘｅｉ−ｘｓｉ  ｙｅｉ−ｙｓｉ］Ｔとなり、正規化ベクトルｖｉ−は以下のようになる。
【００５９】
【数４】
2008275341.tif 000006
【００６０】
次に、ベクトルｖｉ上に等間隔（＝ｂｉ）に探索開始点ｃ（ｉ、ｍ）を設定する。ここで、０≦ｍ≦Ｍｉとし、既Ｍｉは下記の式に従う。
【００６１】
【数５】
2008275341.tif 000007
【００６２】
ここで［ｘ］はｘを越えない最大の整数を示し、Ｂは、予め定められた探索線分間隔を示す。従って以上の式から、上記ｂｉは下記の式によって求めることができる。
【００６３】
【数６】
2008275341.tif 000008
【００６４】
以上の式から、探索開始点ｃ（ｉ、ｍ）は以下のようにして求めることができる。
【００６５】
【数７】
2008275341.tif 000009
【００６６】
そして、探索開始点から、ベクトルｖｉに垂直な方向に所定の距離範囲内でエッジを探索する。ここでは、図３に示す如く、探索開始点ｃ（ｉ、ｍ）を挟んでｓ＋（ｉ、ｍ）からｓ−（ｉ、ｍ）の範囲内でエッジを探索する。
【００６７】
ここで、上記正規化ベクトルｖｉ−に垂直なベクトルをｖｉ−⊥と表現する。即ち、ｖｉ−・ｖｉ−⊥＝０（「・」は内積）となる。
【００６８】
ｃ（ｉ、ｍ）とｓ＋（ｉ、ｍ）、ｓ−（ｉ、ｍ）との関係は以下のようになる。
【００６９】
【数８】
2008275341.tif 000010
【００７０】
【数９】
2008275341.tif 000011
【００７１】
ここでｄは適宜決めて良い。
【００７２】
従って、ｍ毎に、ｓ＋（ｉ、ｍ）からｓ−（ｉ、ｍ）の範囲内でエッジを探索することで、投影計測線分ｉについてエッジの探索を行うことができる。しかし、他の投影計測線分について同様の処理を行うと、エッジ探索領域が重複するおそれがあり、処理が冗長する。
【００７３】
図４は、それぞれの投影計測線分についてエッジの探索を行う場合に発生する処理の冗長を説明する図である。
【００７４】
図４（ａ）に示す如く、投影計測線分４０１と投影計測線分４０２とに対して上述のエッジの探索処理を行うと、それぞれのエッジ探索領域（投影計測線分４０１，４０２に垂直な線分群）には冗長箇所が存在する。図４（ａ）では、投影計測線分４０１と投影計測線分４０２とに挟まれた領域が冗長している。本実施形態では図４（ｂ）に示す如く、網掛けしている領域については一回だけ探索する様にし、係る冗長の領域をできるだけ削減することを目的とする。
【００７５】
図５は、一端を共有する投影計測線分が２つである（複数存在する）場合に、これらの投影計測線分に対するエッジ探索領域を設定する処理を説明する図である。図５では、ベクトルｖｉとｖｊとが始点を共有している。
【００７６】
ベクトルｖｉとｖｊとが成す各をθとすると、以下の式が成立する。
【００７７】
【数１０】
2008275341.tif 000012
【００７８】
ここで中線ベクトルｖ’−を下記の式に基づいて求める。
【００７９】
【数１１】
2008275341.tif 000013
【００８０】
次に、それぞれのベクトルｖｉ、ｖｊから中線ベクトルｖ’−に降ろした垂線の長さがｄ以下となるような領域（図４（ｂ）において網掛けした領域）については、一回だけ探索するようにする。
【００８１】
ベクトルｖｉ（ｖｊ）から中線ベクトルに降ろした垂線の長さがｄとなる場合の、垂線と中線ベクトルとの交点から、中線ベクトルの始点（ベクトルｖｉ、ｖｊの始点と一致する）までの距離をｈとすると、下記の式が成り立つ。
【００８２】
【数１２】
2008275341.tif 000014
【００８３】
上記式から、下記の式が成り立つ。
【００８４】
【数１３】
2008275341.tif 000015
【００８５】
中線ベクトルには、等間隔で探索開始点ｃ’（ｍ’）を設定するのであるが、ｍ’は、０≦ｍ’≦Ｍ’で、Ｍ’は上記Ｂを用いて下記のようになる。
【００８６】
【数１４】
2008275341.tif 000016
【００８７】
そして、探索開始点から、ベクトルｖ’−に垂直な方向に所定の距離範囲内でエッジを探索する。ここでは、図５に示す如く、探索開始点ｃ（ｍ’）を挟んでｓ’＋（ｍ’）からｓ’−（ｍ’）の範囲内でエッジを探索する。
【００８８】
ここで、中線ベクトルｖ’−に垂直なベクトルをｖ’−⊥と表現する。この場合、ｃ’（ｍ’）とｓ’＋（ｍ’）、ｓ’−（ｍ’）との関係は以下のようになる。
【００８９】
【数１５】
2008275341.tif 000017
【００９０】
そして、ベクトルｖｉ、ｖｊについてエッジの探索処理を行う場合、それぞれのベクトルの始点からＨ（＝√（ｈ２＋ｄ２））以内についてはエッジの探索処理は行わない。Ｈについては下記の式で表される。
【００９１】
【数１６】
2008275341.tif 000018
【００９２】
そして、中線ベクトル上での各探索開始点ｃ’（ｍ’）におけるエッジの探索処理を行う。即ち、図４（ｂ）の斜線部分については、中線ベクトル上での各探索開始点ｃ’（ｍ’）におけるエッジの探索処理を行う。また、それ以外については上述の通り、それぞれのベクトルｖｉ、ｖｊ上における探索開始点におけるエッジの探索処理を行う。これにより２つのベクトルが始点を共有している場合、２つのベクトルが近すぎる領域内では、その中線となるベクトル上の各探索開始点についてエッジの探索処理を１回だけ行う。従って、それぞれのベクトルにおけるエッジの探索処理を行うという冗長を省くことができる。
【００９３】
なお、３本以上のベクトルが始点を共有している場合には、両端のベクトルを上記２本のベクトルと見なして同様の処理を行えばよい。
【００９４】
以上のようにしてエッジ探索設定部５００は投影計測線分の位置関係に応じて、投影計測線分の周囲でエッジを探索する領域と、中線ベクトルの周囲でエッジを探索する領域とを設定する。その後、エッジ探索部６００はこのようにして設定された領域でエッジの探索を行う。
【００９５】
次に、投影計測線分同士が略平行な場合であっても、エッジ探索設定部５００は、処理が冗長する領域を省くための処理を行う。ここで、「略平行」とは、例えば、２つの線分が略平行であるという場合には、それぞれの線分の方向ベクトルの各成分の差（「差」の定義は様々であり特に限定するものではない）が所定の閾値内に収まるような場合を差す。
【００９６】
図６は、それぞれの投影計測線分についてエッジの探索を行う場合に発生する処理の冗長を説明する図である。
【００９７】
図６（ａ）に示す如く、投影計測線分６０１と投影計測線分６０２とに対して上述のエッジの探索処理を行うと、それぞれのエッジ探索領域（投影計測線分６０１，６０２に垂直な線分群）には冗長箇所が存在する。同図では、投影計測線分６０１と投影計測線分６０２とに挟まれた領域が冗長している。例えば、ビルの窓枠などの繰り返しパターンが多い３次元モデルを用いた場合、平行する投影計測線分が多数ある。本実施形態では図６（ｂ）に示す如く、網掛けしている領域については一回だけ探索する様にし、係る冗長の領域をできるだけ削減することを目的とする。
【００９８】
図７は、略平行な投影計測線分が２つである場合に、これらの投影計測線分に対する探索領域を設定する処理を説明する図である。なお、事前に略平行な投影計測線分となりうる計測線分を予め何らかの方法でもって選択し、選択した計測線分についてのみ以下の処理を行うことで、より処理の効率を上げることができる。
【００９９】
本実施形態では、計測用線分データ３２０のうち、表示対象となった計測線分のうち、予め略平行な計測線分として選択されたもののみが、以下の処理対象となる。もちろん、投影計測線分において略平行となるものを画像処理でもって検出しても良いが、処理が煩雑になる。
【０１００】
図７において計測線分７５１と計測線分７５２とは、その両端の３次元座標から、平行であるとする。ここで、計測線分７５１の撮像画像上における始点、終点をそれぞれＰｓ（ｉ）＝［ｘｓｉ  ｙｓｉ］Ｔ、Ｐｅ（ｉ）＝［ｘｅｉ  ｙｅｉ］Ｔとする。また、計測線分７５２の撮像画像上における始点、終点をそれぞれＰｓ（ｉ＋１）＝［ｘｓｉ＋１  ｙｓｉ＋１］Ｔ、Ｐｅ（ｉ＋１）＝［ｘｅｉ＋１  ｙｅｉ＋１］Ｔとする。それぞれの始点、終点は上述した処理でもって、３次元空間における点を撮像画像に投影したものである。
【０１０１】
そして、Ｐｓ（ｉ）、Ｐｅ（ｉ）を結ぶベクトルをｖｉ、Ｐｓ（ｉ＋１）、Ｐｅ（ｉ＋１）を結ぶベクトルをｖｊとする。
【０１０２】
ここで、２つの投影計測線分の始点同士、終点同士を結ぶ各線分の中点を通る線を中線７６３とする。
【０１０３】
始点Ｐｓ（ｉ）と始点Ｐｓ（ｉ＋１）との中点Ｐｓ−は下記の式でもって求められる。
【０１０４】
【数１７】
2008275341.tif 000019
【０１０５】
一方、終点Ｐｅ（ｉ）と終点Ｐｅ（ｉ＋１）との中点Ｐｅ−は下記の式でもって求められる。
【０１０６】
【数１８】
2008275341.tif 000020
【０１０７】
そして、中点Ｐｓ−とＰｅ−とを結ぶベクトルｖ’及びその正規化ベクトルｖ’−は下記の式でもって表される。
【０１０８】
【数１９】
2008275341.tif 000021
【０１０９】
次に、上記始点Ｐｓ（ｉ）、Ｐｓ（ｉ＋１）、終点Ｐｅ（ｉ）、Ｐｅ（ｉ＋１）のそれぞれから中線７６３に降ろした点をそれぞれ、Ｐｓ’（ｉ）、Ｐｓ’（ｉ＋１）、Ｐｅ’（ｉ）、Ｐｅ’（ｉ＋１）とする。そして、Ｐｓ’（ｉ）〜Ｐｅ’（ｉ）の区間と、Ｐｓ’（ｉ＋１）〜Ｐｅ’（ｉ＋１）の区間とで重複した区間を求める。図７の場合、Ｐｓ’（ｉ＋１）〜Ｐｅ’（ｉ）の区間が重複した区間となる。従って係る区間については、始点を共有するベクトルに挟まれた領域と同様にして、探索開始点を設定し、各探索開始点毎にエッジの探索処理を行う。
【０１１０】
以上のようにしてエッジ探索設定部５００が投影計測線分の位置関係に応じて、投影計測線分の周囲でエッジを探索する領域と、中線の周囲でエッジを探索する領域とを設定するので、エッジ探索部６００はこのようにして設定された領域でエッジの探索を行う。
【０１１１】
なお、ここで述べたエッジの探索領域を設定する方法は、基本的には重複する領域をまとめるように動作する手段であれば良く、装置の計算能力や対象となる計測線分の個数に応じて適宜変更しても良い。ここでは、全体の探索領域の個数ｎが（ｎ−１）個以下になれば良い。
【０１１２】
エッジ探索部６００は、以上のようにして設定された探索開始点から、投影計測線分に垂直な方向に撮像画像３１０の画素の濃度を読み取る。ここで読み取る範囲は、現実物体１９９と撮像装置５０との位置関係を配慮して設定されるほうが良い。読み取った濃度が、隣接する画素に対して濃度勾配が大きい画素については「エッジを構成する画素」と判断し、その画素の座標位置を記録する。このような処理を、各探索開始点について行う。
【０１１３】
図８は、各投影計測線分と、探索されたエッジの画素との位置関係を示す図である。図８において、画素Ｑ１は投影計測線分Ａから探索されたものであり、画素Ｑ２は投影計測線分Ｂから探索されたものである。ここで、画素Ｑ１を探索した投影計測線分Ａ上の探索開始点を中心とする確率密度分布Ｐｒ（Ａ）を設定し、画素Ｑ２を探索した投影計測線分Ｂ上の探索開始点を中心とする確率密度分布Ｐｒ（Ｂ）を設定する。そして、Ｐｒ（Ａ）およびＰｒ（Ｂ）に対する画素Ｑ１のそれぞれの確率密度を求め、求めた確率密度が大きい方の分布を設定した方の投影計測線分が、画素Ｑ１に対応するものであると判断する。同様に、Ｐｒ（Ａ）およびＰｒ（Ｂ）に対する画素Ｑ２のそれぞれの確率密度を求め、求めた確率密度が大きい方の分布を設定した方の投影計測線分が、画素Ｑ２に対応するものであると判断する。
【０１１４】
以上のようにして、１つの投影計測線分に対応するエッジの画素群を特定することができるので、結果として、各投影計測線分に対応するエッジ（対応関係）を検出することができる。
【０１１５】
次に、位置姿勢更新部８００は、エッジ探索部６００により検出されたエッジの両端の画像座標と、係るエッジに対応する投影計測線分との距離に基づいて、撮像装置５０の位置姿勢を求める処理を行う。
【０１１６】
ここで、位置姿勢更新部８００が行う処理について詳細に説明する。位置姿勢更新部８００は、撮像画像上に写っている対象物の位置と、現在求まっている撮像装置５０の位置姿勢に基づいて推定される撮像画像上の対象物の位置との誤差を極小化することで、撮像装置５０の位置姿勢を再推定するものである。
【０１１７】
本実施形態では、上記「誤差」を表す誤差関数Ｅを用いる。Ｅは下記のパラメータを入力とする関数である。
【０１１８】
・  撮像装置５０の位置ｔ＝［ｔｘ  ｔｙ  ｔｚ］Ｔ
・  撮像装置５０の姿勢ω＝［ωｘ  ωｙ  ωｚ］Ｔ
・  現実物体１９９を構成する各面（多角形）の各辺（計測線分）の両端の位置ｘｗ＝［ｘｗ  ｙｗ  ｚｗ］Ｔ
そして、投影計測線分の両端の画像座標ｕ’＝［ｕ’ｘ  ｕ’ｙ］Ｔ、投影計測線分の両端に対応するエッジの画像座標ｕ＝［ｕｘ  ｕｙ］Ｔとすると、下記の式が成り立つ。
【０１１９】
【数２０】
2008275341.tif 000022
【０１２０】
一般に、上記誤差関数Ｅは非線形の関数となる。本実施形態では、投影計測線分と直交し且つｕ＝［ｕｘ  ｕｙ］Ｔを通る直線が、この投影計測線分と交差する点をｕ”とした場合の下記の式を誤差関数Ｅとして用いる。
【０１２１】
【数２１】
2008275341.tif 000023
【０１２２】
撮像装置５０の位置姿勢がわずかに変化する範囲において、上記式２１を１次のテイラー展開を用いて線形近似すると下記の式が成り立つ。
【０１２３】
【数２２】
2008275341.tif 000024
【０１２４】
ここで、Ｅ’０は、上記誤差関数Ｅにｔ０、ω０、ｘｗ０、ｕ０を代入したときに得られる誤差である。ｔ０、ω０、ｘｗ０、ｕ０は以下の通りである。
【０１２５】
・  ｔ０＝［ｔｘ０  ｔｙ０  ｔｚ０］Ｔ
・  ω０＝［ωｘ０  ωｙ０  ωｚ０］Ｔ
・  ｘｗ０＝［ｘｗ０  ｙｗ０  ｚｗ０］Ｔ
・  ｕ０＝［ｕｘ０  ｕｙ０］Ｔ
これにより、ｔ０、ω０、ｘｗ０、ｕ０の近傍において線形化された式を用いてΔｔｘ、Δｔｙ、Δｔｚ、Δωｘ、Δωｙ、Δωｚ、Δｘｗ、Δｙｗ、Δｚｗを求めることができる。そして求めたこれらをｔ０、ω０、ｘｗ０、ｕ０に補正値として加えることで、誤差関数Ｅを極小化することができる。
【０１２６】
通常、方程式の数と変数の数は一致しないため、多数の参照点の情報を用いて最小二乗法によって補正ベクトルΔを求める。そこで、補正ベクトルΔについてまとめる。まず、各変数の偏微分をまとめた行列をＪとし、補正ベクトルΔと誤差ベクトルＥ’は上式より以下の式となる。
【０１２７】
【数２３】
2008275341.tif 000025
【０１２８】
次に、Ｊの転置行列ＪＴを左右に掛け合わせ、補正ベクトルΔの式としてまとめると以下のように表せる。
【０１２９】
【数２４】
2008275341.tif 000026
【０１３０】
そして以上の計算処理を、補正ベクトルΔの各成分の値が閾値以下となるまで繰り返し行うことで、撮像装置５０のより精度の高い位置姿勢を求めることができる。そして位置姿勢更新部８００は、補正ベクトルΔの各成分の値が閾値以下となる等、所定の条件が満たされた時点で求めている撮像装置５０の位置姿勢を示すデータを、データ８０として出力する。なお、出力先については特に限定するものではない。
【０１３１】
上述した方法は、Ｎｅｗｔｏｎ法による求解法に基づいているが、他の方法でもって上記誤差関数Ｅを極小化するようにしても良い。観測される線分と推定する位置姿勢により投影された３次元モデルの線分との撮像画像上での差が小さくすることができれば良いので、公知の非線形最適化手法を適用することで同様の効果は得られる。
【０１３２】
例えば、おおよその推定中の位置姿勢に対して、その各変数値の周辺に僅かな差を有するランダムな組み合わせを多数生成し、それぞれの組み合わせに対して誤差を求め、誤差の値が小さい組み合わせを利用する方法でも同様な効果は得られる。
【０１３３】
図１１は、位置姿勢計測装置１００が、撮像装置５０の位置姿勢を求めるための処理のフローチャートである。なお、同図のフローチャートに従った処理は上述の通りであるので、ここでは簡単に説明する。
【０１３４】
ステップＳ１１０１では、撮像画像入力部１５０は、撮像装置５０から送出される撮像画像を画像取得部２００に信号として入力し、画像取得部２００は、この撮像画像の映像信号の水平同期信号、垂直同期信号を参照し、サンプリングを行う。そしてサンプリングした映像信号に基づいて、２次元画像のデータを生成し、情報保持部３００に送出する。情報保持部３００は、画像取得部２００から受けた撮像画像のデータを、撮像画像３１０として保持する。
【０１３５】
ステップＳ１１０２では、概略位置姿勢入力部１７０には、概略位置姿勢計測装置７０から送出された撮像装置５０の位置姿勢を示すデータが入力されるので、これを撮像装置５０の位置姿勢を示すデータ３３０として後段の情報保持部３００に登録する。なお、概略位置姿勢計測装置７０から送出されたデータが、センサ座標系等、世界座標系以外の座標系における位置姿勢を示すものであれば、係る座標系と世界座標系との位置姿勢関係を用いてこのデータを世界座標系における位置姿勢を示すデータに変換する。そして変換したデータをデータ３３０として情報保持部３００に登録する。
【０１３６】
次にステップＳ１１０３では、計測線分抽出部１６０は、３次元モデルのデータ６０から計測用線分データ３２０を抽出し、情報保持部３００に送出する。情報保持部３００は、係る計測用線分データ３２０を保持する。そして計測線分投影部４００は、世界座標系に配置した３次元モデルの計測線分毎に、その両端を、撮像装置５０の撮像面に投影する。
【０１３７】
ステップＳ１１０４では、エッジ探索設定部５００は、投影した各計測線分の両端の座標位置を参照し、投影計測線分同士の位置関係を判断する。そして、一端を共有する投影計測線分が２つ以上存在するか否かをチェックする。係るチェックの結果、存在しない場合には処理をステップＳ１１０６に進め、存在する場合には処理をステップＳ１１０５に進める。
【０１３８】
ステップＳ１１０５では、エッジ探索設定部５００が、投影計測線分の位置関係に応じて、投影計測線分の周囲でエッジを探索する領域と、中線ベクトルの周囲でエッジを探索する領域とを設定する。そして、エッジ探索部６００は、一端を共有するそれぞれのベクトルの一端から上記距離Ｈ未満については中線ベクトル上での各探索開始点ｃ’（ｍ’）におけるエッジの探索処理を行う。また、距離Ｈ以上については上述の通り、それぞれのベクトル上における探索開始点におけるエッジの探索処理を行う。
【０１３９】
次にステップＳ１１０６では、エッジ探索設定部５００は、各計測線分の両端の座標位置を参照し、計測線分同士の位置関係を判断する。そして、略平行な投影計測線分が存在するか否かをチェックする。係るチェックの結果、存在しない場合には処理をステップＳ１１０８に進め、存在する場合には処理をステップＳ１１０７に進める。
【０１４０】
ステップＳ１１０７では、エッジ探索設定部５００が、投影計測線分の位置関係に応じて、投影計測線分の周囲でエッジを探索する領域と、中線の周囲でエッジを探索する領域とを設定する。そしてエッジ探索設定部５００は、一方の投影計測線分の区間と、他方の投影計測線分の区間とで重複した区間を求め、求めた区間については、始点を共有するベクトルに挟まれた領域と同様にして探索開始点を設定し、各探索開始点毎にエッジの探索処理を行う。また、それぞれの投影計測線分について重複しない区間については上述の通り、それぞれの投影計測線分上における探索開始点におけるエッジの探索処理を行う。
【０１４１】
そしてステップＳ１１０８では、各計測線分に対応するエッジを検出すると、位置姿勢更新部８００は、上述の処理を行い、撮像装置５０の位置姿勢を推定する為の演算処理を行う。係る演算処理にて終了条件が満たされた場合、例えば、補正ベクトルΔの各成分の値が閾値以下となった場合には処理をステップＳ１１０９を介して本処理を終了する。一方、終了条件が満たされていない場合には処理をステップＳ１１０９を介してステップＳ１１０８に戻し、演算処理を繰り返す。
【０１４２】
以上の説明により、本実施形態によれば、撮像画像上のエッジ探索領域の重複を減らすことができる。また、エッジ探索領域の重複を減らすことは、画像を保持しているメモリへのアクセス数を減らすことになるので、処理全体に要する時間の短縮にもつながり、処理の効率化が期待できる。
【０１４３】
［第２の実施形態］
本実施形態では、第１の実施形態で説明した位置姿勢計測装置１００を、複合現実空間をユーザに提示するシステムに適用した場合について説明する。
【０１４４】
図９は、本実施形態に係るシステムの機能構成を示すブロック図である。図９において図１と同じ部分については同じ番号を付けている。
【０１４５】
図９において１０は、現実物体であり、多角形の面で構成されている立体物である。撮像装置５０は現実物体１０を含む現実空間の動画像を撮像し、各フレームの画像は画像入力部９２１を介してクロマキー合成装置９２０に入力されると共に、撮像画像入力部１５０を介して位置姿勢計測装置１００に入力される。
【０１４６】
位置姿勢計測装置１００内には、上記３次元モデルのデータ６０の代わりに、現実物体１０に対応する３次元モデルのデータが登録されている。データの構造については同じである。
【０１４７】
位置姿勢計測装置１００は第１の実施形態で説明したような処理を行い、現実物体１０に対する撮像装置５０の位置姿勢を求め、求めた位置姿勢を示すデータを位置姿勢入力部９１１を介してＣＧ（コンピュータグラフィックス）描画装置９１０に入力する。
【０１４８】
ＣＧ描画装置９１０は、位置姿勢計測装置１００から位置姿勢を示すデータを受けると、係るデータが示す位置姿勢を有する視点を仮想空間中に設け、係る視点から見える仮想空間の画像（ＣＧ）を生成する。図９において９５０は、ＣＧ描画装置９１０が生成した画像を示す。係る画像のデータは、画像入力部９２２を介してクロマキー合成装置９２０に入力される。
【０１４９】
ここで本実施形態では、ＣＧ描画装置９１０で生成した背景画像は全てクロマキー色であるとする。
【０１５０】
クロマキー合成装置９２０は、撮像装置５０から受けた撮像画像上に、ＣＧ描画装置９１０から受けたＣＧをクロマキー合成した画像（合成画像）を生成する。図９において９３０は、係る合成画像を示す。係る合成画像は、例えば、ＣＲＴや液晶画面などにより構成されている表示装置上に表示させても良いし、周知のＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔ  Ｄｉｓｐｌａｙ）が有する表示装置に表示させても良い。
【０１５１】
係るシステムを用いれば、例えば、部品と部品との干渉等を、実際の部品とＣＡＤで設計中の仮想部品を画面で観察することが可能となる。例えば、合成画像９３０をＨＭＤを用いて観測することで、作業者の確認も容易になる。
【０１５２】
その際、ＨＭＤを頭部に装着するユーザの視線方向と撮像装置５０の撮像方向とを同じにしておけば、ユーザの頭部の位置姿勢に応じた合成画像をこのユーザに提供することができる。
【０１５３】
さらに、位置姿勢計測装置１００とＣＧ描画装置９１０とクロマキー合成装置９２０とを同じ装置内で実現することも可能である。
【０１５４】
図１０は、現実物体と、計測線分との関係を示す図である。図１０（ａ）は、撮像画像を示す図である。図１０（ｂ）は、現実物体を模した３次元モデルを構成する各計測線分を撮像画像上に投影した投影計測線分を示す図である。さらに、図１０（ｂ）中の白丸は、投影計測線分上の探索開始点を表している。探索開始点から、図１０（ａ）の撮像画像上の現実物体のエッジに対して垂直方向に探索する様子を図１０（ｃ）に示す。各白丸で示し探索開始点の位置から伸びている短い線分は、撮像画像上の現実物体の観測されるエッジまでの距離を示す。投影計測線分からエッジまでの距離が短くなるほど、撮像装置５０の位置姿勢の推定精度は高くなる。
【０１５５】
なお、上記実施形態で説明した構成は一例であり、例えば、撮像装置５０と位置姿勢計測装置１００とを有する装置、例えば、カメラ付き携帯電話や、カメラ付きノート型コンピュータなどもまた、第１の実施形態で説明したシステムに適用することができる。さらに、位置姿勢の計測結果を利用して、近隣の施設や場所に関する情報を呈示するような２次的なサービスを実施することも可能である。
【０１５６】
［第３の実施形態］
第１の実施形態では、図１に示した位置姿勢計測装置１００を構成する各部は全てハードウェアでもって構成されているものとして説明した。しかし、その一部をソフトウェアでもって構成しても良い。例えば、情報保持部３００をメモリとして実装し、各入力部１１５０，１７０、抽出部１６０、出力部１８０をＩ／Ｆ（インターフェース）でもって実装し、それ以外をソフトウェアでもって実装しても良い。
【０１５７】
この場合、係るソフトウェアは、一般のＰＣ（パーソナルコンピュータ）が有するメモリに格納され、係るＰＣが有するＣＰＵにより実行させる。このように、図１に示した位置姿勢計測装置１００を構成する各部のうち一部をソフトウェアでもって構成した場合に、係るソフトウェアを実行するコンピュータは、位置姿勢計測装置１００に適用可能である。
【０１５８】
図１２は、位置姿勢計測装置１００に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【０１５９】
ＣＰＵ１２０１は、ＲＡＭ１２０２やＲＯＭ１２０３に格納されているコンピュータプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、本コンピュータを適用する位置姿勢計測装置１００が行う上述の各処理を実行する。
【０１６０】
ＲＡＭ１２０２は、外部記憶装置１２０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ１２０７を介して外部から受信したデータなどを一時的に記憶するためのエリアを有する。また、ＲＡＭ１２０２は、ＣＰＵ１２０１が各処理を実行する際に用いるワークエリアも有する。例えば、ＲＡＭ１２０２は、図１に示した情報保持部３００に相当する。ＣＰＵ１２０１はＲＡＭ１２０２に保持されているコンピュータプログラムやデータなどを用いて処理を実行する。
【０１６１】
ＲＯＭ１２０３には、ブートプログラムや本コンピュータの設定データなどが格納されている。
【０１６２】
操作部１２０４は、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ１２０１に対して入力することができる。
【０１６３】
表示部１２０５はＣＲＴや液晶画面などにより構成されており、ＣＰＵ１２０１による処理結果を画像や文字などでもって表示することができる。例えば、上記撮像画像や合成画像等を表示することができる。
【０１６４】
外部記憶装置１２０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１２０６は、ＯＳ（オペレーティングシステム）や、位置姿勢計測装置１００が行う上述の各処理をＣＰＵ１２０１に実行させるためのコンピュータプログラムやデータなどが保存されている。係るコンピュータプログラムは、例えば、画像取得部２００、計測線分投影部４００、エッジ探索設定部５００、エッジ探索部６００、位置姿勢更新部８００の上述の機能をＣＰＵ１２０１に実行させるためのコンピュータプログラムに相当する。また、上述の説明において既知の情報として説明したものも、この外部記憶装置１２０６に保存されている。外部記憶装置１２０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１２０１による制御に従って適宜ＲＡＭ１２０２にロードされ、ＣＰＵ１２０１による処理対象となる。
【０１６５】
Ｉ／Ｆ１２０７には、上記撮像装置５０や概略位置姿勢計測装置７０等が接続される。なお、それぞれの装置毎にこのＩ／Ｆ１２０７を設けても良い。
【０１６６】
１２０８は上述の各部を繋ぐバスである。
【０１６７】
なお、コンピュータのハードウェア構成については当業者であれば、適宜変形することは容易である。
【０１６８】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１６９】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１７２】
【図１】本発明の第１の実施形態に係る情報処理装置を、撮像装置５０の位置姿勢を計測する位置姿勢計測装置１００に適用した場合に、係る位置姿勢計測装置１００を含むシステムの機能構成を示すブロック図である。
【図２】３次元モデルを構成する各辺（各計測線分）に対応する、現実物体１９９を構成する各辺（各エッジ）を探索する処理を説明する図である。
【図３】ｉ番目の投影計測線分（注目辺）の周辺でエッジを探索する処理について説明する図である。
【図４】それぞれの投影計測線分についてエッジの探索を行う場合に発生する処理の冗長を説明する図である。
【図５】一端を共有する投影計測線分が２つである場合に、これらの投影計測線分に対するエッジ探索領域を設定する処理を説明する図である。
【図６】それぞれの投影計測線分についてエッジの探索を行う場合に発生する処理の冗長を説明する図である。
【図７】略平行な投影計測線分が２つである場合に、これらの投影計測線分に対する探索領域を設定する処理を説明する図である。
【図８】各投影計測線分と、探索されたエッジの画素との位置関係を示す図である。
【図９】本発明の第２の実施形態に係るシステムの機能構成を示すブロック図である。
【図１０】現実物体と、計測線分との関係を示す図である。図１０（ａ）は、撮像画像を示す図である。
【図１１】位置姿勢計測装置１００が、撮像装置５０の位置姿勢を求めるための処理のフローチャートである。
【図１２】位置姿勢計測装置１００に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図１】
2008275341.tif 000027
【図２】
2008275341.tif 000028
【図３】
2008275341.tif 000029
【図４】
2008275341.tif 000030
【図５】
2008275341.tif 000031
【図６】
2008275341.tif 000032
【図７】
2008275341.tif 000033
【図８】
2008275341.tif 000034
【図９】
2008275341.tif 000035
【図１０】
2008275341.tif 000036
【図１１】
2008275341.tif 000037
【図１２】
2008275341.tif 000038