(57)【要約】      （修正有）【課題】面の隠れや曲面を含んだ物体に対応できるような面情報を含んだ位置姿勢推定用モデルを生成する。【解決手段】撮像装置の観察対象物体に対する相対的な位置及び姿勢を推定するために、位置姿勢推定用３次元モデルを生成する装置であって、観察対象物体の形状を表す３次元情報を利用して、所定の点から観察対象物体までの相対的な距離が画素ごとに格納された奥行き画像を取得する奥行き画像取得手段と、前記奥行き画像取得手段により取得した奥行き画像から、観察対象物体の形状を表す３次元点群データを生成する点群生成手段と、前記３次元点群データから、位置姿勢推定用３次元モデルを生成するモデル生成手段とを有する位置姿勢推定用３次元モデル生成装置。【選択図】図１
2010079453.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置の観察対象物体に対する相対的な位置及び姿勢を推定するために、位置姿勢推定用の３次元モデルを生成する装置であって、
観察対象物体の形状を表す３次元情報を利用して、所定の点から観察対象物体までの距離が画素ごとに格納された奥行き画像を取得する取得手段と、
前記取得手段により取得した前記奥行き画像から、観察対象物体の形状を表す３次元点群データを生成する点群生成手段と、
前記３次元点群データから、位置姿勢推定用３次元モデルを生成するモデル生成手段とを備えることを特徴とする位置姿勢推定用モデル生成装置。
【請求項２】
前記取得手段は、前記観察対象物体の形状を表す３次元モデルを描画することにより得られるデプスバッファを利用して前記奥行き画像を取得することを特徴とする請求項１に記載の位置姿勢推定用モデル生成装置。
【請求項３】
前記取得手段は、観察対象物体の形状を表す３次元モデルとして、ＣＡＤモデルを利用して前記奥行き画像を取得することを特徴とする請求項２に記載の位置姿勢推定用モデル生成装置。
【請求項４】
前記取得手段は、モデル描画機能を有する外部アプリケーションの描画命令を監視して、前記外部アプリケーションによる描画時のデプスバッファを、前記奥行き画像として取得することを特徴とする請求項１に記載の位置姿勢推定用モデル生成装置。
【請求項５】
前記点群生成手段は、前記奥行き画像を構成する画素を間引いて前記３次元点群データを生成することを特徴とする請求項１乃至４のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項６】
前記点群生成手段は、位置姿勢推定に利用する範囲内で前記３次元点群データを生成することを特徴とする請求項１乃至５のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項７】
前記モデル生成手段は、位置姿勢推定において利用する特徴に応じた位置姿勢推定用モデルを、前記３次元点群データから生成することを特徴とする請求項１乃至６のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項８】
前記モデル生成手段は、エッジに基づく位置姿勢推定手法に利用することを前提とした位置姿勢推定用モデルを前記３次元点群データから生成することを特徴とする請求項７に記載の位置姿勢推定用モデル生成装置。
【請求項９】
前記モデル生成手段は、前記奥行き画像からエッジを抽出したときに、所定長さに満たないエッジとして抽出される形状情報を省略して、位置姿勢推定用モデルを生成することを特徴とする請求項８に記載の位置姿勢推定用モデル生成装置。
【請求項１０】
前記モデル生成手段は、位置姿勢推定において利用する範囲内について、前記３次元点群データから位置姿勢推定用モデルを生成することを特徴とする請求項１乃至９のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項１１】
前記モデル生成手段において、前記３次元点群データから生成する位置姿勢推定用モデルは、ポリゴンパッチにより構成されたメッシュモデルであることを特徴とする請求項１乃至１０のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項１２】
前記モデル生成手段は、前記３次元点群データから生成した位置姿勢推定用モデルの頂点数が所定数よりも多い場合には、ポリゴンリダクションを行ってデータ量を削減することを特徴とする請求項１１に記載の位置姿勢推定用モデル生成装置。
【請求項１３】
前記モデル生成手段において、前記３次元点群データから生成する位置姿勢推定用モデルは、陰関数多項式モデルであることを特徴とする請求項１乃至１０のいずれか１項に記載の位置姿勢推定用モデル生成装置。
【請求項１４】
撮像装置により撮像される観察対象物体と、観察対象物体の形状を表す３次元モデルとの対応付けに基づいて位置姿勢を算出する位置姿勢算出装置であって、
請求項１乃至１３のいずれか１項に記載された位置姿勢推定用モデル生成装置と、
前記撮像装置が撮像した撮影画像を入力する入力手段と、
前記位置姿勢推定用モデル生成装置により生成された位置姿勢推定用３次元モデルから位置姿勢推定用の特徴を抽出するモデル特徴抽出手段と、
前記モデル特徴抽出手段で抽出された特徴に対応する特徴を、前記撮影画像から抽出する画像特徴抽出手段と、
前記モデル特徴と前記画像特徴とを対応付けた結果に基づいて、前記撮像装置の前記観察対象物体に対する位置及び姿勢を算出する算出手段とを備えることを特徴とする位置姿勢算出装置。
【請求項１５】
前記モデル特徴抽出手段および前記画像特徴抽出手段は、エッジを特徴として抽出することを特徴とする請求項１４に記載の位置姿勢算出装置。
【請求項１６】
請求項１４または１５に記載された位置姿勢算出装置と、
前記位置姿勢算出装置が算出した撮像装置の観察対象物体に対する位置及び姿勢に基づいて仮想空間画像を生成する仮想空間画像生成手段と、
前記撮像装置によって得られた撮影画像に前記仮想空間画像を重畳した画像を合成する画像合成手段と、
前記画像合成手段によって合成された画像を表示する表示手段とを備えることを特徴とする画像処理装置。
【請求項１７】
撮像装置の観察対象物体に対する相対的な位置及び姿勢を推定するために、位置姿勢推定用の３次元モデルを生成する、情報処理装置による位置姿勢推定用モデル生成方法であって、
観察対象物体の形状を表す３次元情報を利用して、所定の点から観察対象物体までの距離が画素ごとに格納された奥行き画像を取得する取得工程と、
前記取得工程で取得した前記奥行き画像から、観察対象物体の形状を表す３次元点群データを生成する点群生成工程と、
前記３次元点群データから、位置姿勢推定用３次元モデルを生成するモデル生成工程とを有することを特徴とする位置姿勢推定用モデル生成方法。
【請求項１８】
撮像装置により撮像される観察対象物体と、観察対象物体の形状を表す３次元モデルとの対応付けに基づいて位置姿勢推定する、情報処理装置による位置姿勢算出方法であって、
請求項１７に記載された位置姿勢推定用モデル生成方法を実行する工程と、
前記撮像装置が撮像した撮影画像を入力する入力工程と、
前記位置姿勢推定用モデル生成装置により生成された位置姿勢推定用３次元モデルから位置姿勢推定用の特徴を抽出するモデル特徴抽出工程と、
前記モデル特徴抽出工程で抽出された特徴に対応する特徴を、前記撮影画像から抽出する画像特徴抽出工程と、
前記モデル特徴と前記画像特徴とを対応付けた結果に基づいて、前記撮像装置の前記観察対象物体に対する位置及び姿勢を算出する算出工程とを有することを特徴とする位置姿勢算出方法。
【請求項１９】
請求項１８に記載された位置姿勢算出方法を実行する工程と、
前記位置姿勢算出方法を実行して算出された、撮像装置の観察対象物体に対する位置及び姿勢に基づいて仮想空間画像を生成する仮想空間画像生成工程と、
前記撮像装置によって得られた撮影画像に前記仮想空間画像を重畳した画像を合成する画像合成工程と、
前記画像合成工程によって合成された画像を表示する表示工程とを有することを特徴とする画像処理方法。
【請求項２０】
請求項１７乃至１９のいずれか１項に記載された方法をコンピュータに実行させるプログラム。
【請求項２１】
請求項２０に記載されたプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、観察対象物体の表面形状を表す３次元モデルデータと撮像装置が撮像した観察対象物体の撮影画像を利用して、撮像装置と観察対象物体との相対的な位置姿勢を計測する位置姿勢計測技術に関する。特に、位置姿勢の推定に好適な３次元モデルを生成する位置姿勢推定用モデル生成装置及び位置姿勢算出装置、及びそれらを用いた画像処理装置に関する。
【背景技術】
【０００２】
現実空間を撮像するカメラなどの撮像装置を用いて、観察対象物体と上記観察対象物体を撮像する撮像装置との相対的位置姿勢を計測する技術が提案されている。この種の計測技術は、現実空間と仮想空間を融合表示する複合現実感システム（以下、ＭＲシステムという）や、ロボットの位置姿勢計測において、非常に有用な技術である。
【０００３】
従来から撮像装置の位置姿勢を計測する方法として、３次元位置が既知の指標を用いる方法が提案されている。この方法では、撮像装置のおおよその位置姿勢を用いて各指標の３次元位置を撮像面へ投影した投影位置と、撮像画像から検出される指標の撮像画像上の位置との距離を誤差として、この誤差を小さくする目的関数を最適化するように位置姿勢を推定する。指標としては、予め検出が容易な幾何学的または色相が特異な特徴を有するものを利用することが多い。
【０００４】
また、撮影画像中でのエッジと観察対象の３次元線分モデルとの対応をもとに撮像装置の位置及び姿勢を求める方法が提案されている。ここで、撮影画像上で撮像される観察対象物体において、観察される輝度が不連続に変化する領域をエッジと呼称する。エッジはスケールや観察方向に対して不変であるため、エッジを利用した位置合わせは精度が高いという特徴がある。非特許文献１に記載されているエッジを利用した位置合わせは、次の１から３の処理によって実現される。
【０００５】
１．前フレームでのカメラの位置及び姿勢及び予め校正済みのカメラの固有パラメータに基づいて、前述の３次元線分モデルを画像上に投影する．
２．投影された各線分を、画像上で一定間隔となるように分割し、分割点を設定する。そして各分割点について、該分割点を通過し向きが投影された線分の法線方向である線分（探索ライン）上でエッジ探索を行い、探索ライン上における輝度値の勾配が極大でありかつ分割点に最も近い点を対応エッジとして検出する．
３．分割点毎に検出された対応エッジと、投影される線分との間の画像上での距離の総和が最小となるようなカメラの位置及び姿勢の補正値を算出し、カメラの位置及び姿勢を補正する。
【０００６】
エッジ情報に基づいた位置姿勢推定手法では、撮影画像上に撮像された観察対象物体から抽出できるエッジと、観察対象物体の形状を表す３次元モデルを構成するエッジとを対応付け、対応付いたエッジ同士が画像平面上で重なるように位置姿勢を推定する。そのため、観察対象物体の形状を正確に表す３次元モデルが必要となる。しかし、現実の観察対象物体に重ねあわせることが出来るような３次元モデルを手動で作成するには、比較的複雑で、多くの時間を要する作業が必要となる。
【０００７】
これに対し、設計用ＣＡＤ（Computer Aided Design）モデルが製品設計の過程で作成されている工業製品のように、観察対象物体の形状を表す３次元モデルが既に作成されている場合もある。観察対象物体にあらかじめ作成されている３次元モデルを位置姿勢推定に利用することが出来れば、上述のモデル作成コストを低減することが出来る。
【０００８】
しかし、エッジを利用した位置姿勢推定では、撮影画像中から抽出したエッジと対応付けるための３次元的なエッジ情報を含んだ３次元モデルが必要であるため、一般的なＣＡＤモデルをそのまま利用することはできない。ＣＡＤモデルは、モデル形式によって、頂点と面により記述されるメッシュモデルや、パラメトリック曲面により記述されるソリッドモデルなど、モデル形式ごとに形状の記述が大きく異なる。また、位置姿勢推定に必要な３次元エッジ情報が形状情報に含まれていない場合も少なくない。そのため、ＣＡＤモデルを利用して位置姿勢推定するためには、ＣＡＤモデルから位置姿勢推定に必要な情報を抽出する、または、ＣＡＤモデルから位置姿勢推定用にモデルを変換するような工程が必要となる。
【０００９】
ＣＡＤモデルのデータを位置姿勢推定に利用する場合、単純にはＣＡＤモデル内のデータを解析し、位置姿勢推定に必要な部分のデータを抽出することで、位置姿勢推定用モデルを生成することが考えられる。しかし、この方法は、ＣＡＤモデルの内部データを解析するために大きな作業コストがかかるという課題がある。また、そのため、多様なモデル形式に対応することが困難である。
【００１０】
これに対し、特許文献１では、ＣＡＤモデルを描画することで位置姿勢推定用モデルを生成する方法が開示されている。この手法では、あらかじめ、複数の異なる視点と異なる光源設定からＣＡＤモデルを描画し、描画結果として得られるＣＡＤモデルの陰影画像からエッジ抽出を行う。そして、複数の視点から安定的に検出できるエッジをモデル座標上で投票することで、安定的に検出できるエッジのみから構成された３次元モデルを生成する。これにより、ＣＡＤモデルのレンダリングが出来れば、ＣＡＤモデルを基にして位置姿勢推定用のエッジモデルを作成することが可能となり、上述の位置姿勢推定用モデルを作成するコストを低減することが可能となる。また、ＣＡＤモデルのレンダリング結果から位置姿勢推定用モデルを生成するため、独自にＣＡＤモデルを解析する必要がなく、既存のレンダリングエンジンを利用することが可能である。
【００１１】
また、非特許文献２では、ＣＡＤモデルを直接的に利用して位置姿勢推定する手法が開示されている。この手法では、撮像装置で撮像される観察対象物体の位置姿勢に応じて３次元モデルをリアルタイムに描画する。そして、その描画結果として得られる、３次元モデルの奥行きを表すデプスバッファから抽出したエッジと、撮像画像中に撮像される観察対象物体から抽出したエッジとを対応付けることとで、位置姿勢を推定する。ＣＡＤモデルをリアルタイムにレンダリングした結果から、位置姿勢推定に利用する特徴を随時抽出することで、ＣＡＤモデルを位置姿勢推定用モデルに変換することなく、ＣＡＤモデルを直接的に利用して位置姿勢推定することが出来る。また、この手法は、上述の特許文献１と同様に、ＣＡＤモデルのレンダリング結果に基づいた手法であるため、既存のレンダリングエンジンを利用することができ、ＣＡＤモデルを利用するための準備コストを低減することが可能である。
【００１２】
非特許文献３には、表面属性が設定されたＣＡＤモデルを描画し、描画結果として得られたカラーバッファから抽出したエッジと、撮像画像中の撮像された観察対象物体から抽出したエッジとを対応付けることで、位置姿勢推定を行う手法が記載されている。ＣＡＤモデルに表面属性が設定されている必要があるが、上記非特許文献２と同様に、ＣＡＤモデルを利用して位置姿勢推定を行うことが可能である。
【非特許文献１】T. Drummond andR. Cipolla,“Real-time visual tracking of complex structures,” IEEE Transactionson PatternAnalysis and Machine Intelligence, vol.24, no.7, pp.932-946, 2002.
【非特許文献２】G . Bleser, H .Wuest, D. Stricker,“Online camera pose estimation in partially known anddynamic scenes,” Proc. The5th IEEE/ACM International Symposium on Mixed andAugmented Reality (ISMAR06),pp.56-65, 2006.
【非特許文献３】G. Reitmayr andT. W. Drummond,“Going out: robust model-based tracking for outdoor augmentedreality,” Proc.The 5th IEEE/ACM International Symposium on Mixed and AugmentedRality(ISMAR06), pp.109-118 2006.
【非特許文献４】Y Ohtake, ABelyaev, H Seidel, “Anintegrating approach to meshing scattered point data,”Proceedings of the 2005ACM symposium on Solid and physical modeling, p.61-69,June 13-15, 2005
【非特許文献５】Y Ohtake, ABelyaev. M Alexa,“Sparse Low-degree Implicit Surfaces with Applications to HighQualityRendering, Feature Extraction, and Smoothing,” Eurographics SymposiumonGeometry Processing (SGP2005), pp.145-158, 2005
【非特許文献６】K. Satoh, S.Uchiyama, H. Yamamoto,and H. Tamura, “Robust vision-based registration utilizingbird’s-eye view withuser’s view,” Proc. The 2nd IEEE/ACM InternationalSymposium on Mixed andAugmented Reality (ISMAR03), pp.46-55, 2003.
【特許文献１】特開２００７−２０７２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
特許文献１に記載されている手法では、事前に描画した複数の視点から、常に安定して検出されるエッジを選出することで、位置姿勢推定用のモデルを生成している。したがって、ＣＡＤモデルの観察方向の変化によって物体の後ろに隠れるエッジも検出が不安定なエッジと見なして除外されるため、物体自身によって隠されるエッジをモデリングすることはできない。そのため、特許文献１の手法では、物体を自由な方向から観察することはできないという課題がある。また、生成される位置姿勢推定用モデルは、エッジ情報のみから構成され、面の情報が無いため、物体自身によって物体を構成するエッジが隠れるような場合はエッジの隠れを判別することが出来ない。そのため、物体に対して回り込むような視点移動をした場合、位置姿勢推定用モデルのエッジ情報に対応するエッジが、撮影画像中から検出されなくなり、エッジの対応付けに誤対応が発生する。また、この手法では、エッジの３次元的な位置が不変であることを前提に位置姿勢推定用モデルを生成しているため、曲面を有する物体のような、視点によって観察されるエッジの３次元位置が異なるような物体に対応することが困難である。
【００１４】
これらの問題に対して、非特許文献２に記載されている手法では、観察対象物体の位置姿勢に応じてＣＡＤモデルを描画し、描画結果から逐次姿勢に応じたエッジを抽出する。そのため、非特許文献２に記載の手法によれば、上述の面の隠れおよび曲面を有する物体に関して上述した課題を解決することが出来る。しかし、この手法は、ＣＡＤモデルをリアルタイムにレンダリングする必要があるため、設計用ＣＡＤモデルのようなデータ量の大きいＣＡＤモデルを利用する場合には、計算コストが高くなるという課題がある。また、設計用ＣＡＤモデルは、基本的に必要な限り微細に作成されたモデルであるため、細かい形状情報を含む場合が多く、このような細かい形状情報に基づいてエッジを抽出した場合は、細かく短いエッジが抽出されることになる。しかし、非特許文献２に記載されているようなエッジを利用した位置姿勢推定では、細かいエッジ同士の対応をとることが困難であるため、細かいエッジは、誤対応の原因として除去される場合が多く、冗長な情報となる。
【００１５】
また、非特許文献３に記載されている手法は、上述の非特許文献２と同様の課題に加え、ＣＡＤモデルに現実の観察対象物体と同様の表面属性が設定されている必要がある。以上のように、ＣＡＤモデルを直接レンダリングする手法は、特許文献１のようなＣＡＤモデルから位置姿勢推定用モデルを生成する手法と比較して、計算コストと特徴対応付けの安定性の面で課題があるといえる。しかし、特許文献１の手法には上述したような課題があり、また、手動でＣＡＤモデルを解析、データ抽出して、面の情報を含んだ位置姿勢推定用モデルを作成する方法は、人的にも時間的にもコストがかかる。
【００１６】
また、上述の特許文献１および非特許文献２に示される従来手法は、ＣＡＤモデルの描画結果のみに基づく手法であるため、位置姿勢推定やモデル生成において、法線情報や頂点情報などのＣＡＤモデルの詳細な形状情報を利用することができない。しかし、位置姿勢推定手法によっては、法線情報や頂点情報などの詳細な形状情報を利用したい場面もある。ＣＡＤモデルの形状情報を読み込むためには、例えば、ＣＡＤモデルの形状記述を解析する、ＣＡＤモデルのレンダリングエンジンを利用する、などの方法が考えられる。しかし、上述のように、ＣＡＤモデルの解析にはコストがかかり、また、レンダリングエンジンを利用する場合も、エンジンによっては形状情報にアクセスできない場合があり、多様なモデル形式に対応することが困難である。また、そもそも、パラメトリックに面情報が記述されているソリッドモデルような、頂点情報や法線情報が形状記述に含まれていないようなモデル形式もある。以上のように、上述した従来手法では、モデル形式によっては、モデルの詳細な形状情報を位置姿勢推定に利用することが困難である場合が多い。
【００１７】
本発明は、上述の課題を鑑みてなされたものであり、面の隠れや曲面を含んだ物体に対応できるような面情報を含んだ位置姿勢推定用モデルを生成することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するための本発明の一態様による３次元モデル生成装置は以下の構成を備える。即ち、
撮像装置の観察対象物体に対する相対的な位置及び姿勢を推定するために、位置姿勢推定用の３次元モデルを生成する装置であって、
観察対象物体の形状を表す３次元情報を利用して、所定の点から観察対象物体までの距離が画素ごとに格納された奥行き画像を取得する取得手段と、
前記取得手段により取得した前記奥行き画像から、観察対象物体の形状を表す３次元点群データを生成する点群生成手段と、
前記３次元点群データから、位置姿勢推定用３次元モデルを生成するモデル生成手段とを備える。
【００１９】
また、上記の目的を達成するための本発明の一態様による３次元モデル生成方法は、
撮像装置の観察対象物体に対する相対的な位置及び姿勢を推定するために、位置姿勢推定用の３次元モデルを生成する、情報処理装置による位置姿勢推定用３次元モデル生成方法であって、
観察対象物体の形状を表す３次元情報を利用して、所定の点から観察対象物体までの距離が画素ごとに格納された奥行き画像を取得する取得工程と、
前記取得工程で取得した前記奥行き画像から、観察対象物体の形状を表す３次元点群データを生成する点群生成工程と、
前記３次元点群データから、位置姿勢推定用３次元モデルを生成するモデル生成工程とを有する。
【発明の効果】
【００２０】
本発明によれば、面の隠れや曲面を含んだ物体に対応できるような面情報を含んだ位置姿勢推定用モデルを生成することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して本発明の好適な実施形態について詳細に説明する。
【００２２】
［第１実施形態］（ＣＡＤモデルを描画して位置姿勢推定用モデルを生成）
本実施形態では、３次元モデルの描画結果を利用して位置姿勢推定用３次元モデルを生成する方法について説明する。
【００２３】
図１は、本実施形態における位置姿勢推定用モデル生成装置１の構成を示している。図１に示したように、位置姿勢推定用モデル生成装置１は、３次元モデル保存部１１０、３次元モデル描画部１２０、奥行き画像取得部１３０、３次元点群生成部１４０、位置姿勢推定用モデル生成部１５０を具備する。３次元モデル保存部１１０には、３次元モデルデータ１０が保存されている。位置姿勢推定用モデル生成装置１は、３次元モデル保存部１１０に保存されている観察対象物体の形状を表す３次元モデルデータ１０をもとに、位置姿勢推定用モデルを出力する。なお、本実施形態において、３次元モデル保存部１１０に保存された３次元モデルデータ１０が、現実に撮像される観察対象物体の形状に即していることを前提としている。なお、位置姿勢推定用モデル生成装置１は、コンピュータ（ＣＰＵ）がメモリに蓄積されたプログラムを実行して所定の機能を実現する、通常の情報処理装置によって実現され得ることは明らかである。
【００２４】
次に、位置姿勢推定用モデル生成装置１を構成する各部について説明する。３次元モデル保存部１１０は、観察対象物体の３次元モデルデータ１０を記憶する。３次元モデルデータ１０は、観察対象物体の３次元の幾何的な情報を有するモデルである。３次元モデルデータの形式は、面の情報がパラメトリックに記述されたソリッドモデルでも良いし、頂点と面とで構成されたメッシュモデルでも良い。即ち、３次元モデル描画部１２０で描画できるモデルであれば、いずれの形式でも良く、３次元モデルデータの形式の選択に特に制限は無い。また、任意の３次元モデラーのフォーマットを変換する処理部を３次元モデル保存部１１０に含むようにしてもよい。本実施形態では、頂点情報及び各頂点を結んで構成される面の情報を含むＣＡＤモデルを３次元モデルデータ１０として利用する。
【００２５】
３次元モデル描画部１２０は、３次元モデル保存部１１０に保存されている３次元モデルデータ１０を描画する。３次元モデル描画部１２０において描画に利用するグラフィックライブラリは、例えば、OpenGLやDirectXなどの広く利用されているグラフィックライブラリでも、独自に開発したグラフィックライブラリでもよい。即ち、３次元モデル保存部１１０に保存されたモデル形式を画像平面上に投影することができるものであれば、いずれの方式を用いても良い。本実施形態ではグラフィックライブラリとしてOpenGLを利用する。また、ＣＡＤモデルの読み込みのためのレンダリングエンジンとして、Coin3Dを利用する。
【００２６】
奥行き画像取得部１３０は、３次元モデル描画部１２０で描画するときに設定した視点位置から３次元モデルまでの距離が画素ごとに格納されたデプスバッファを取得する。取得されたデプスバッファは、３次元点群生成部１４０にて３次元点群生成のための奥行き画像として利用される。
【００２７】
３次元点群生成部１４０は、奥行き画像取得部１３０が取得した複数の奥行き画像から、観察対象物体の形状を表す３次元点群を生成する。奥行き画像に保存された値は、３次元モデル描画部１２０でＣＡＤモデルを描画したときに設定したクリッピング範囲に応じて、０から１の値に正規化されている。そのため、まず、正規化された奥行き画像の値を、カメラ座標系における値に変換する。そして、３次元モデル描画部１２０において描画に利用されたモデルビュー行列の逆行列をカメラ座標系上の３次元座標にかけることで、モデル座標系における３次元座標を算出する。奥行き画像から３次元点群への変換方法および、点群の結合方法の具体的な手順については、図２のステップＳ１０４０により後述する。
【００２８】
位置姿勢推定用モデル生成部１５０では、３次元点群生成部１４０で生成した３次元点群に対して、三角形パッチによる面貼りを行い、メッシュモデルを生成する。３次元点群からのメッシュモデル生成手法は、例えば、ドロネー網を利用した手法であってもよいし、非特許文献４に開示される手法を利用してもよい。３次元点群からメッシュモデルを生成する手法であれば、いずれの手法でもよく、手法の選択に特に制限は無い。本実施形態では、３次元点群データからのメッシュモデル生成には、非特許文献４に開示される手法を利用する。さらに、位置姿勢推定用モデル生成部１５０では、生成したメッシュに対して、利用する位置姿勢推定手法に応じて、メッシュのリファインを行う。３次元点群データからの３次元モデル生成の具体的な手順については、図２のステップＳ１０６０により後述する。
【００２９】
次に、第１実施形態における位置姿勢推定用３次元モデル生成方法の処理手順について説明する。図２は、第１実施形態における位置姿勢推定用３次元モデル生成方法の処理手順を示すフローチャートである。
【００３０】
（ステップＳ１０１０）
まず、ステップＳ１０１０において、３次元モデル描画部１２０は初期化を行う。初期化では、３次元モデル描画部１２０の３次元モデル描画におけるＣＡＤモデルに対する視点の位置と姿勢が決定される。３次元点群生成部１４０で生成される３次元点群データは、奥行き画像の画像範囲内のデータから生成されるため、描画範囲にＣＡＤモデルが入るように描画位置姿勢を設定する必要がある。ＣＡＤモデルに対する描画位置姿勢の設定は、例えば、描画の都度、ユーザが設定しても良いし、あらかじめ、決まった視点位置を複数設定しておき、それを選択するようにしてもよい。また、ＣＡＤモデル中から位置姿勢推定用モデルとしてモデル化したい部分をあらかじめユーザが設定しておき、その部分が描画されるように視点位置を移動させるように設定しても良い。また、ＣＡＤモデルに対する距離のみを設定しておき、ＣＡＤモデルを中心として、一定のインターバルで緯度と経度を変化させることで、ＣＡＤモデルの周囲を取りかこむように位置姿勢を決定してもよい。
【００３１】
なお、描画位置姿勢の設定方法は、以上の手法に限るものでなく、最終的に位置姿勢推定モデルとして利用する部位が描画できる範囲に含まれるように設定される限り、視点数を問わず、またいずれの位置姿勢で視点を設定してもよい。また、位置姿勢推定に利用する部位が限定できる場合は、その部位のみを描画することで、最終的に生成する位置姿勢推定用モデルを調整し、計算コストを低減することができる。本実施形態では、ＣＡＤモデルに対する距離のみを指定し、ＣＡＤモデルを中心にして、周囲を取りかこむように一定のインターバルで視点移動させるように視点の位置姿勢を設定するものとする。描画のための視点位置姿勢の設定が終わったら、ステップＳ１０２０に進む。
【００３２】
（ステップＳ１０２０）
次にステップＳ１０２０において、３次元モデル描画部１２０は、ステップＳ１０１０で設定した視点の位置姿勢に基づいて、３次元モデル保存部１１０に保持されたＣＡＤモデルを描画する。モデルの描画とは、ステップＳ１０１０で設定された視点の位置姿勢に基づいて、３次元モデル保存部１１０に保存された観察対象物体のＣＡＤモデルを画像平面上に投影することである。モデルの描画を行うためには、位置姿勢の設定とともに、射影行列の内部パラメータ（焦点距離や主点位置など）を設定する必要がある。本実施形態における位置姿勢推定用モデル生成装置１では、描画画像結果のみを利用して位置姿勢推定用モデルが生成されるため、内部パラメータの設定は基本的には任意の値でよい。本実施形態では、最終的に位置姿勢推定に利用する撮像装置の内部パラメータをあらかじめ計測することで、描画に利用する内部行列を設定する。また、視点からモデルまでの距離の最大値と最小値を設定しておき、その範囲外のモデルの描画は行わないことで、描画処理の計算コストを低減する。この処理はクリッピングと呼ばれ、一般的に行われている処理である。
【００３３】
モデルの描画により、画像平面上での２次元座標と２次元座標に対応する輝度値が格納されたカラーバッファ、および、画像平面から３次元モデルまでの奥行き値が格納されたデプスバッファが算出される。カラーバッファには、光源設定およびＣＡＤモデルの表面属性に応じた輝度値が格納される。設計用に作成されたＣＡＤモデルの場合、ＣＡＤモデルの表面属性には、素材や部品ごとに固有のＩＤとしての情報が格納されている場合が多く、実際の観察対象物体の表面属性に即した設定はなされていないことが多い。また、本実施形態では描画時に光源の設定を行っていないため、ＣＡＤモデルに設定された表面属性がそのまま描画され、カラーバッファ上の観察対象物体と現実の観察対象物体の相関は低い。一方、デプスバッファに格納された値は、ＣＡＤモデルの形状により決定された値であり、ＣＡＤモデルが観察対象物体の形状に即している限り、デプスバッファの内容も、観察対象物体の形状に即したデータが格納される。ＣＡＤモデルの描画が終わったら、ステップＳ１０３０に進む。
【００３４】
（ステップＳ１０３０）
ステップＳ１０３０において、奥行き画像取得部１３０は、ステップＳ１０２０におけるＣＡＤモデルの描画の結果として得られたデプスバッファを読み込み、メインメモリ上に保存する。一般的にデプスバッファはグラフィックカード上のメモリ（ビデオメモリ）に格納され、奥行き画像取得部１３０や３次元点群生成部１４０として動作するＣＰＵからは参照できない。そのため、ビデオメモリのデータを、メインメモリへ転送する処理を行う。この処理は、一般的に高速でない場合が多いため、デプスバッファの内容を全て転送すると計算コストが高くなる。しかし、デプスバッファ上のモデル領域が特定できる場合は、該領域のみを転送することで処理を高速化することが可能である。この操作は、デプスバッファ上において、観察対象物体の奥行き値が格納された領域の包括矩形を計算することで、容易に実現可能である。但し、本実施形態では、デプスバッファとして得られる領域すべてを取得するものとする。デプスバッファの取得が終わったら、ステップＳ１０４０に進む。
【００３５】
（ステップＳ１０４０）
ステップＳ１０４０において、３次元点群生成部１４０は、ステップＳ１０３０で取得したデプスバッファの各画素の、モデル座標系における３次元座標を求めることで、モデル座標系における３次元点群を求める。
【００３６】
まず、デプスバッファに格納された奥行き値をカメラ座標系における値に変換する。デプスバッファに格納された値は、ステップＳ１０２０のクリッピング処理において設定したクリッピング範囲に応じて０から１の値に正規化されて格納されている。そのため、デプスバッファの奥行き値から、直接に基準座標系における３次元座標を求めることはできない。そこで、クリッピング範囲の最小値と最大値を利用して、デプスバッファの値をカメラ座標系における視点からモデルまでの距離の値に変換する。次に、射影行列の内部パラメータを利用して、デプスバッファの画像平面上の２次元座標と、カメラ座標系における奥行き値から、カメラ座標系における３次元座標を求める。そして、カメラ座標系における３次元座標に対して、ステップＳ１０２０におけるＣＡＤモデルの描画で用いた位置姿勢変換の逆変換をほどこすことで、基準座標系における３次元座標を求める。以上の処理をデプスバッファの各座標に対して行うことで、３次元点群生成部１４０はデプスバッファから、基準座標系における３次元点群データを生成する。各視点のデプスバッファから生成した３次元点群データを、逐次基準座標系に追加していくことで、観察対象物体の形状を表す密な３次元点群データが得られる。
【００３７】
（ステップＳ１０５０）
次にステップＳ１０５０では、別の視点からの描画を行うかどうかを決定する。別の視点からの３次元点群データを生成する場合は、処理をステップＳ１０１０に戻し、上述した処理により別視点からの３次元点群データ生成を行う。こうして、所望の範囲の点群データを生成するまで、ステップＳ１０１０からステップＳ１０４０を繰り返す。ステップＳ１０５０において、別の視点からの３次元点群データを生成しないと判定された場合は、ステップＳ１０４０に進んで、点群データからのメッシュモデル生成を行う。
【００３８】
（ステップＳ１０６０）
次に、ステップＳ１０６０において、位置姿勢推定用モデル生成部１５０は、ステップＳ１０４０で生成した３次元点群データから、位置姿勢推定用のメッシュモデルを求める。例えば、位置姿勢推定用モデル生成部１５０は、３次元点群データに対して、点群を頂点とするドロネー網を計算することで、三角形パッチから構成されたメッシュモデルを生成する。本実施形態におけるドロネー網によるメッシュ生成には、非特許文献４の手法を利用することができる。その具体的な手順に関しては、非特許文献４にて広く公開されているため、ここでは詳細を述べない。なお、サーフェースモデルには、三角形パッチに限られるものではなく、四角形パッチを含むポリゴンパッチを適用できることは言うまでもない。
【００３９】
（ステップＳ１０７０）
次に、ステップＳ１０７０において、位置姿勢推定用モデル生成部１５０は、メッシュのリファインを行う。ステップＳ１０６０で生成されたメッシュモデルは、点群データ全てを利用して細かい三角形パッチから生成されるため、データ量が大きくなる。また、本来同一の面としてモデル化されるべき面も、必要以上に細かいパッチとして構成される場合が多い。そこで、モデルの形状と、位置姿勢推定に利用する特徴に応じたメッシュモデルのリファインを行う。ここで、メッシュモデルのリファインとは、メッシュモデルのパッチ同士を結合することで、形状情報として冗長なパッチを削減、または細かい形状を省略して、データ量を削減する操作のことをいう。
【００４０】
メッシュモデルをリファインする手法としては、非特許文献４に示される手法の他に、例えば、
・メッシュモデルを構成する全ての三角形パッチに対して近傍パッチの法線を計算し、同一法線方向と判別されたパッチ同士を結合する手法や、
・パッチのなす面と近傍パッチの頂点との距離を計算し、同一面上に乗ると識別されたパッチ同士を結合する手法を利用しても良い。メッシュモデルをリファインする手法は、上述の方法に限らず、何らかの閾値によりメッシュモデルの形状の詳細度を調節することができる手法であれば、いずれの手法でもよく、手法の選択により本発明の本質が損なわれることは無い。本実施形態では、非特許文献４で示される手法を利用して、メッシュモデルのリファインを行う。その具体的な手順に関しては、非特許文献４において広く公開されているため、ここでは詳細は述べない。
【００４１】
メッシュモデルのリファインでは、どの程度細かい情報を省略するかによって、最終的に位置姿勢推定用モデルとして生成されるモデルの形状が左右される。そのため、位置姿勢推定手法に好適な位置姿勢推定用モデルを生成するためには、適切な詳細度を設定してメッシュモデルをリファインする必要がある。ここで、詳細度とは、どの程度細かい形状を保持してメッシュモデルのリファインを行うかを決定する値である。詳細度を小さく設定した場合は、メッシュモデルの細かい形状が省略される代わりにデータ量が大きく削減され、詳細度を大きく設定した場合は、データ量の削減量が小さくなる代わりに、メッシュモデルの細かい形状が保存されたままリファインされる。
【００４２】
この詳細度は、最終的に位置姿勢推定用モデルとして、どの程度細かい形状のモデルが必要であるかによって変化するため、位置姿勢推定に利用する特徴や、元々のモデルの複雑さやデータ量に応じて、適切に設定する必要がある。例えば、非特許文献１に示されるようなエッジを利用する位置姿勢推定手法の場合、画像平面上で短く観察されるエッジは、フレーム間において、正確に対応付けることが困難である。そのため、位置姿勢推定用モデルから抽出したエッジに、短いエッジが多く含まれると、位置姿勢推定精度が低下する恐れがある。そのため、エッジを利用した位置姿勢推定を行う場合は、必要以上に詳細な形状は位置姿勢推定用モデルに含まないほうが安定的に対応付けを行うことができる。そこで、３次元点群データの生成に利用したデプスバッファからエッジ抽出を行い、短いエッジが細かく密集した領域を判別して、その部分の形状が省略されるように、モデルのリファインのための詳細度を決定する。即ち、位置姿勢推定用モデル生成部１５０は、奥行き画像（デプスバッファ）からエッジを抽出したときに、所定長さに満たないエッジとして抽出される形状情報を省略して、位置姿勢推定用モデルを生成するようにする。これにより、最終的に利用する位置姿勢推定に応じて、適切な詳細度の位置姿勢推定用モデルを生成することが可能となる。
【００４３】
また、詳細度の設定は、モデルの形状に応じて設定してもよい。例えば、モデルの形状が単純な形であることがあらかじめわかっている場合は、詳細度を低く設定することで、位置姿勢推定用モデルのデータ量を大きく削減することが可能である。また、詳細度の設定は、上述の方法に限るものでなく、例えば、モデルの形状およびスケールに応じて経験的に詳細度が設定されても良い。或いは、メッシュモデルの頂点数に応じて、頂点数が所定数以下になるように詳細度が決定されても良い。この場合、３次元点群データから生成した位置姿勢推定用モデル（例えばメッシュモデル）の頂点数が所定数よりも多い場合に、いわゆるポリゴンリダクションを行ってデータ量を削減するように構成されてもよい。最終的に位置姿勢推定において利用するために都合のよいモデルが生成されるように設定する限り、いずれの手法でも良く、詳細度を決定する方法に制限は特に無い。
【００４４】
また、位置姿勢推定に利用する特徴に応じてメッシュモデルをリファインする方法は、上述の詳細度を変更させる方法に限られるものではない。例えば、リファインした後の位置姿勢推定用モデルに対して、モデルの中で、短く密集したエッジが検出される部位を除くなどの方法をとっても良い。位置姿勢推定手法に利用する特徴に応じて、都合の良い特徴が出やすく、都合の悪い特徴が出にくくするようにモデルをリファインする方法であれば、いずれの手法でよく、リファインの方法に特に制限はない。本実施形態においては、モデルの形状に応じて具体的な閾値を決定する。以上の処理により、点群データからメッシュモデルが生成され、位置姿勢推定用モデル生成装置１の処理が終了する。
【００４５】
以上に述べたように、本実施形態によれば、複数の視点からのＣＡＤモデルの描画結果として得られるデプスバッファから３次元点群データが生成され、ドロネー網によるメッシュモデル生成が行われる。そして、最終的に利用する位置姿勢推定の用途に応じてメッシュモデルをリファインすることで、位置姿勢推定手法に応じた位置姿勢推定用モデルを、ＣＡＤモデルから生成することが可能になる。
【００４６】
以上の処理により、位置姿勢推定用のモデルが生成される。次に、このモデルを利用して、観察対象物体に対する撮像装置の位置及び姿勢を推定する。以下、本実施形態における位置姿勢推定用モデル生成装置により生成した位置姿勢推定用モデルを利用した位置姿勢の推定手法について、エッジに基づいた位置姿勢推定手法を適用した場合について説明する。
【００４７】
図３は、本実施形態における位置姿勢推定用モデル生成装置１により生成した位置姿勢推定用モデル２０を利用して位置姿勢推定を行う位置姿勢計測装置２の構成を示している。位置姿勢計測装置２は、位置姿勢推定用モデル保存部２１０と、画像取得部２２０と、モデル特徴抽出部２３０と、画像特徴抽出部２４０と、位置姿勢算出部２５０とを具備する。また、位置姿勢推定用モデル２０は、位置姿勢推定用モデル保存部２１０に保存され、撮像装置３０は、画像取得部２２０に接続されている。なお、位置姿勢計測装置２は、コンピュータ（ＣＰＵ）がメモリに蓄積されたプログラムを実行して所定の機能を実現する、通常の情報処理装置によって実現され得ることは明らかである。また、位置姿勢計測装置２と位置姿勢推定用モデル生成装置１とは、一つの情報処理装置で実現されてもよい。
【００４８】
図４は、位置姿勢計測装置２をＭＲの位置合わせに適用した場合を示す図である。観察者５０は、ビデオシースルー型のＨＭＤ６０を装着している。ビデオシースルー型のＨＭＤ６０には、それぞれ左眼、右眼に対応した撮像装置３０及び４０が内蔵されている。撮像装置３０及び撮像装置４０は、観察対象物体７０を撮像する。撮像装置３０が撮像した画像は位置姿勢計測装置２に入力される。位置姿勢計測装置２は、位置姿勢推定用モデル生成装置１により生成された位置姿勢推定用モデルを、位置姿勢推定用モデル保存部２１０に保存している。そして、位置姿勢計測装置２は、撮像装置３０が撮像した画像と、位置姿勢推定用モデル保存部２１０に保存された観察対象物体７０に対応する位置姿勢推定用３次元モデルをもとに撮像装置３０の位置及び姿勢を算出する。画像合成装置４は、仮想物体７５の仮想空間画像を生成する仮想空間画像生成部（不図示）を有する。そして、画像合成装置４は、位置姿勢計測装置２が算出した撮像装置３０の位置及び姿勢に基づいて仮想物体７５の仮想空間画像を撮像装置３０及び４０によって撮像された現実空間の画像に重畳合成して、ＭＲ画像を生成する。ＨＭＤ６０は、画像合成装置４により生成されたＭＲ画像を表示デバイス上に表示する。なお、位置姿勢計測装置２や画像合成装置４はＨＭＤ６０に組み込まれてもよい。なお、撮像装置３０によって撮像された画像とともに撮像装置４０によって撮像された画像も利用して位置姿勢算出を行っても良い。その場合、撮像装置３０と撮像装置４０の相対位置姿勢関係をあらかじめ算出しておくことで、対象物体−撮像装置３０−撮像装置４０のそれぞれの相対位置姿勢を計算する。ここで、例えば、撮像装置３０が何かで隠され、対象物体−撮像装置３０間の相対位置姿勢を直接計算することができない場合を考える。その場合でも、撮像装置４０の画像を利用して、対象物体−撮像装置４０間の相対位置姿勢と、撮像装置４０−撮像装置３０間の相対位置姿勢とに基づいて、対象物体−撮像装置３０間の相対位置姿勢を計算することが可能となる。ただし、本実施形態では撮像装置３０によって撮像された画像のみを用いるものとする。
【００４９】
次に、位置姿勢計測装置２を構成する各部について説明する。位置姿勢推定用モデル保存部２１０には、位置姿勢算出の基準となる、位置姿勢推定用モデル生成装置１により生成された位置姿勢推定用モデル２０が保存される。
【００５０】
画像取得部２２０は、撮像装置３０によって撮像された画像を位置姿勢計測装置２に入力する。画像取得部２２０は、撮像装置の出力がＮＴＳＣなどのアナログ出力であればアナログビデオキャプチャボードによって実現される。また撮像装置の出力がＩＥＥＥ１３９４などのデジタル出力であれば、例えばＩＥＥＥ１３９４インタフェースボードによって実現される。また、画像取得部２２０は、予め記憶装置に記憶してある静止画像や動画像のデジタルデータを読み出すことにより画像を取得するものであってもよい。
【００５１】
モデル特徴抽出部２３０では、位置姿勢推定用モデル２０から、撮影画像に位置姿勢推定用モデルを当てはめるための特徴を抽出する。本実施形態では、モデル特徴抽出部２３０においては、位置姿勢推定用モデルと概略位置姿勢に基づいて描画した描画画像から、エッジ情報を抽出する。モデルからの特徴抽出手法（エッジ情報抽出方法）については、後述する（図５のステップＳ２０３０）。なおエッジに代えて、画像中の輝度分布から点特徴などを検出して用いるようにしてもよい。
【００５２】
画像特徴抽出部２４０は、画像取得部２２０によって入力された画像上において、撮像装置３０の位置及び姿勢を算出するのに用いられる画像特徴を検出する。本実施形態では、画像特徴抽出部２４０は画像上のエッジの検出を行う。エッジの検出方法については後述する（図５のステップＳ２０４０）。
【００５３】
位置姿勢算出部２５０は、モデル特徴抽出部２３０と画像特徴抽出部２４０から抽出した特徴を対応付け、その対応付け結果に基づき、位置姿勢推定用モデル２０を基準として座標系における撮像装置３０の位置及び姿勢を算出する。
【００５４】
なお、位置姿勢推定用モデル生成装置１により生成された位置姿勢推定用モデル２０を利用した位置姿勢推定方法は、本実施形態における位置姿勢計測装置２に示される手法に限られるものではない。３次元モデルと撮影画像とを当てはめることで位置姿勢推定を行う手法である限り、いずれの手法でもよい。例えば、非特許文献２に記載されている位置姿勢推定手法を利用しても本発明の本質は損なわれない。
【００５５】
次に、本実施形態における位置姿勢推定方法の処理手順について説明する。図５は、本実施形態における位置姿勢推定方法の処理手順を示すフローチャートである。
【００５６】
（ステップＳ２０１０）
まずステップＳ２０１０では初期化を行う。ここでは、基準座標系における撮像装置３０と観察対象物体との相対的な概略位置姿勢の設定を行う。本実施形態における位置姿勢計測方法は、概略の撮像装置の位置姿勢を、撮影画像上に撮像される観察対象物体のエッジ情報を利用して逐次更新していく方法である。そのため、位置姿勢計測を開始する前に予め撮像装置の概略の位置及び姿勢を初期位置及び初期姿勢として与える必要がある。そこで、例えば予め決まった位置及び姿勢を設定しておき、撮像装置をその位置及び姿勢になるように移動することで初期化を行う。または、画像内で検出するだけで認識可能な人工的な指標を配置し、該指標の各頂点の画像座標と基準座標系における３次元位置との対応から撮像装置の位置姿勢を求めて概略の位置姿勢としてもよい。また、識別性の高い自然特徴点を予め検出してその３次元位置を求めておき、初期化時に画像上で該特徴点を検出し、その画像座標と３次元位置との対応から撮像装置の位置姿勢を求めてもよい。さらに、磁気式や光学式、超音波式などの６自由度位置姿勢センサによって撮像装置の位置姿勢を計測し、それを概略の位置姿勢としてもよい。人工的な指標や自然特徴点などの画像情報と、前述の６自由度位置姿勢センサや３自由度の姿勢センサ、３自由度の位置センサを併用して計測される撮像装置の位置姿勢を用いて初期化してもよい。
【００５７】
（ステップＳ２０２０）
ステップＳ２０２０では、画像取得部２２０は、撮像装置３０が撮像した画像を取得し、位置姿勢計測装置２に取り込む。
【００５８】
（ステップＳ２０３０）
次にステップＳ２０３０において、モデル特徴抽出部２３０は、位置姿勢推定用モデルから、撮影画像と対応付けるためのエッジ情報を抽出する。図６は、本実施形態における観察対象物体のエッジ特徴を抽出する処理の詳細な処理手順を示すフローチャートである。
【００５９】
まず、ステップＳ２１１０において、モデル特徴抽出部２３０は、ステップＳ２０１０で求めた観察対象物体の概略位置姿勢に基づいて、位置姿勢推定用モデル保存部２１０に保存された位置姿勢推定用モデルの描画を行う。本実施形態で、描画に利用する射影行列の内部パラメータは、撮像装置３０の内部パラメータをあらかじめ計測しておき、実際に用いるカメラと内部パラメータを一致させておく。モデル特徴抽出部２３０のモデル描画に関する処理内容は、基本的にステップＳ１０２０の処理と同様であるので説明は省略する。
【００６０】
次に、ステップＳ２１２０において、モデル特徴抽出部２３０は、ステップＳ２１１０の描画過程において生成されたデプスバッファに対して、エッジ検出を行う。デプスバッファに対してエッジ検出を行なうことで、奥行きが不連続に変化する領域を求めることができる。エッジを検出する手法としては、例えば、sobelフィルタなどのエッジ検出フィルタを利用しても良いし、Cannyアルゴリズムを利用しても良い。画像の画素値が不連続に変化する領域を検出することができれば、いずれの手法でも良く、手法の選択に特に制限は無い。本実施形態では、Cannyアルゴリズムを利用してエッジ検出を行う。デプスバッファに対してCannyアルゴリズムによるエッジ検出を行うことで、エッジ領域と非エッジ領域に分けられた２値画像が得られる。
【００６１】
次にステップＳ２１３０において、モデル特徴抽出部２３０は、ステップＳ２１２０で生成された２値化画像について、隣接エッジのラベリングを行い、エッジの連結成分を抽出する。ラベリングは、例えば、ある画素の周囲８画素の中にエッジが存在すれば、同一ラベルを割り当てることにより行われる。
【００６２】
次にステップＳ２１４０において、モデル特徴抽出部２３０は、ステップＳ２１３０で連結成分を抽出したエッジに対して、エッジ素の抽出を行う。エッジ素とは、画像上での端点間の距離が極短いエッジのことをいう。同一ラベルにラベリングされたエッジを画像上で等間隔に分割するように分割点を算出して、この分割点の周辺の極短い連結成分を求めエッジ素を抽出する。本実施形態では、分割点から３pixel離れた連結成分を端点(始点と終点)に設定して、分割点を中心としたエッジ素を抽出する。デプスバッファから抽出したエッジ素は、総数をＮとして、各エッジ素をEFi(i=1、2…N)で表す。エッジ素の数Nが多いほど、処理時間が長くなる。そのため、エッジ素の総数が一定になるように、画像上でエッジ素間の間隔を逐次変更しても良い。
【００６３】
次にステップＳ１２５０において、ステップＳ１２４０で算出されたエッジ素に対して、基準座標系における３次元座標を求める。これには、ステップＳ２１１０で生成したデプスバッファを利用する。デプスバッファ上の奥行き値を基準座標系上の３次元座標に変換する処理内容は、基本的にステップＳ１０４０の処理と同様であるので説明は省略する。エッジ素EFiの３次元座標の算出が終わったら、ステップＳ２０４０に進む。
【００６４】
（ステップＳ２０４０）
ステップＳ２０４０において、画像特徴抽出部２４０は、ステップＳ２０３０で求めた位置姿勢推定用モデルから抽出したエッジ素EFi（i=1、2、…、N）に対応するエッジを、撮像装置３０によって撮像された現フレーム撮影画像より検出する。エッジの検出は、エッジ素EFiの探索ライン（エッジ素の法線方向の線分）上において、撮影画像上の濃度勾配から極値を算出することにより行う。エッジは、探索ライン上において濃度勾配が極値をとる位置に存在する。本実施形態では、探索ライン上でエッジが複数存在する場合には、最もエッジ素の中心点に近いエッジを対応点とし、その画像座標とエッジ素EFiの３次元座標を保持する。なお、本実施形態では最もエッジ素EFiに近いエッジを対応点としているが、これに限るものではなく、濃度勾配の極値の絶対値が最も大きいエッジを対応点としてもよい。また、１つではなく複数の点を対応点候補として保持してもよい。以上の処理を全てのエッジ素EFiに対して繰り返し、全てのエッジ素EFiについて処理が終了すればステップＳ２０４０の処理を終了し、ステップＳ２０５０に進む。
【００６５】
（ステップＳ２０５０）
ステップＳ２０５０において、位置姿勢算出部２５０は、非線形最適化計算を用いて、撮像装置と観察対象物体との概略の相対的な位置姿勢を反復演算により補正することにより撮像装置の位置姿勢を算出する。ここで、ステップＳ２０３０において生成された物体特徴モデルのエッジ素EFiのうち、ステップＳ２０４０において対応点が求まったエッジ素の総数をLcとする。また、画像の水平方向、垂直方向をそれぞれｘ軸、ｙ軸とする。また、あるエッジ素の中心点の投影された画像座標を（ｕ0,ｖ0）、エッジ素の直線の画像上での傾きをｘ軸に対する傾きθと表す。傾きθは、エッジ素端点(始点と終点)の撮影画像上での２次元座標を結んだ直線の傾きとして算出する。エッジ素の直線の画像上での法線ベクトルは（ｓｉｎθ、−ｃｏｓθ）となる。また、該エッジ素の対応点の画像座標を（ｕ’、ｖ’）とする。
【００６６】
ここで、点（ｕ,ｖ）を通り、傾きがθである直線の方程式は、
【数１】
2010079453.tif 000003
と表せる。エッジ素の撮影画像上での画像座標は撮像装置の位置及び姿勢により変化する。
【００６７】
また、撮像装置の位置及び姿勢の自由度は6自由度である。ここで撮像装置の位置及び姿勢を表すパラメータをｓで表す。ｓは6次元ベクトルであり、撮像装置の位置を表す３つの要素と、姿勢を表す３つの要素からなる。姿勢を表す３つの要素は、例えばオイラー角による表現や、方向が回転軸を表して大きさが回転角を表す３次元ベクトルなどによって表現される。エッジ素中心点の画像座標（ｕ,ｖ）は（ｕ0,ｖ0）の近傍で1次のテイラー展開によって数３のように近似できる。
【００６８】
【数２】
2010079453.tif 000004
【００６９】
数２において、ｕ、ｖの偏微分の導出方法は例えば非特許文献６に開示されるように広く知られているのでここではその詳細は述べない。数２を数１に代入することにより、数３が得られる。
【００７０】
【数３】
2010079453.tif 000005
【００７１】
ここで、数３に示す直線が該エッジ素の対応点の画像座標（ｕ’、ｖ’）を通過するように、撮像装置の位置及び姿勢sの補正値Δsを算出する。r0=u0sinθ−v0 cosθ（定数）、d=u’ sinθ−v’ sinθ（定数）とすると、
【数４】
2010079453.tif 000006
が得られる。数４はLc個のエッジ素について成り立つため、数５のようなΔsに対する線形連立方程式が成り立つ。
【００７２】
【数５】
2010079453.tif 000007
【００７３】
ここで数５を数６のように簡潔に表す。
【００７４】
【数６】
2010079453.tif 000008
【００７５】
数６をもとにＧａｕｓｓ−Ｎｅｗｔｏｎ法などによって、行列Jの一般化逆行列（JT・J）−1を用いてΔsが求められる。しかしながら、エッジの検出には誤検出が多いので、次に述べるようなロバスト推定手法を用いる。一般に、誤検出されたエッジに対応するエッジ素では誤差d−rが大きくなる。そのため数５、数６の連立方程式に対する寄与度が大きくなり、その結果得られるΔsの精度が低下してしまう。そこで、誤差d−rが大きいエッジ素のデータには小さな重みを与え、誤差d−rが小さいエッジ素のデータには大きな重みを与える。重みは例えば数７Ａに示すようなＴｕｋｅｙの関数により与える。
【００７６】
【数７Ａ】
2010079453.tif 000009
【００７７】
数７Ａにおいて、cは定数である。なお、重みを与える関数はＴｕｋｅｙの関数である必要はなく、例えば次式で示されるようなＨｕｂｅｒの関数など、誤差d−rが大きいエッジ素には小さな重みを与え、誤差d−rが小さいエッジ素には大きな重みを与える関数であればなんでもよい。
【００７８】
【数７Ｂ】
2010079453.tif 000010
【００７９】
エッジ素EFiに対応する重みをwiとする。ここで数８のように重み行列Wを定義する。
【００８０】
【数８】
2010079453.tif 000011
【００８１】
重み行列Wは、対角成分以外はすべて0のLc×Lc正方行列であり、対角成分には重みwiが入る。この重み行列Wを用いて、数６を数９のように変形する。
【００８２】
【数９】
2010079453.tif 000012
【００８３】
数１０のように数９を解くことにより補正値Δsを求める。
【００８４】
【数１０】
2010079453.tif 000013
【００８５】
これにより得られたΔsを用いて、撮像装置の位置及び姿勢を更新する。次に、撮像装置の位置及び姿勢の反復演算が収束しているかどうかを判定する。補正値Δsが十分に小さかったり、誤差r−dの総和が十分小さい、誤差r−dの総和が変化しないといった場合には、撮像装置の位置及び姿勢の計算が収束したと判定する。収束していないと判定された場合には、更新された撮像装置の位置及び姿勢を用いて再度線分の傾きθ、r0、d及びｕ、ｖの偏微分を計算し直し、数１０より再度補正値Δsを求め直す。なお、ここでは非線形最適化手法としてＧａｕｓｓ−Ｎｅｗｔｏｎ法を用いた。しかしながら、非線形最適化手法はこれに限るものではなく、Ｎｅｗｔｏｎ−Ｒａｐｈｓｏｎ法、Ｌｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ法、最急降下法、共役勾配法などのその他の非線形最適化手法を用いてもよい。以上、ステップＳ２０５０における撮像装置の位置姿勢算出方法について説明した。
【００８６】
（ステップＳ２０６０）
ステップＳ２０６０では、位置姿勢算出を終了する入力がなされたかどうかを判定し、入力された場合には終了し、入力されなかった場合にはステップＳ２０２０に戻り、新たな画像を取得して再度位置姿勢算出を行う。
【００８７】
以上述べたように、第１実施形態では、位置姿勢推定用モデル生成装置１により生成した位置姿勢推定用モデルから随時抽出した特徴と、撮像画像から抽出できる特徴を対応付けることで観察対象物体と撮像装置との相対的な位置姿勢が算出される。
【００８８】
［第２実施形態］（ＣＡＤアプリからデプスバッファをフックしてメッシュモデル生成）
第１実施形態では、ＣＡＤモデルを描画するためのレンダリングエンジンを、装置の中に持ち、装置内部でＣＡＤモデルのレンダリングを行っている。第２実施形態では、ＣＡＤモデルの描画能力を有する外部のアプリケーションを利用し、ＣＡＤモデルのデプスバッファを取得することで、ＣＡＤモデルからの位置姿勢推定用モデルの生成を行う。
【００８９】
図７は、第２実施形態における位置姿勢推定用モデル生成装置３の構成を示している。図７に示したように、位置姿勢推定用モデル生成装置３は、外部アプリケーション監視部３１０、奥行き画像取得部３２０、３次元点群生成部３３０、位置姿勢推定用モデル生成部３４０を具備する。外部アプリケーション監視部３１０は、モデル描画機能（本実施形態ではＣＡＤモデルの描画能力）を有する外部アプリケーション８０に接続され、外部アプリケーション８０における描画命令に応じてデプスバッファをメインメモリに転送する。なお、ここで言う「接続」とは、メモリ上に保存されたデータを別の経路からアクセスし、データを書き換えることを意味する。奥行き画像取得部３２０は、外部アプリケーション８０の描画命令により保存されたデプスバッファを取得し、位置姿勢推定用モデル生成装置３の中に保存する。位置姿勢推定用モデル生成装置３は、取得したデプスバッファを利用して、位置姿勢推定手法に応じた位置姿勢推定用モデルを生成する。なお、本実施形態において、位置姿勢推定用モデル生成装置３が適用できる条件として、外部アプリケーション８０において、描画される３次元モデルが、位置姿勢推定の対象となる観察対象物体の形に即していることを前提としている。以下、位置姿勢推定用モデル生成装置３を構成する各部について説明する。
【００９０】
まず、外部アプリケーション監視部３１０は、外部アプリケーションの描画命令を監視し、描画されたタイミングで外部アプリケーション内に蓄積されたデプスバッファを取得する。外部アプリケーション監視部３１０によるデプスバッファの取得方法としては、例えば、
・グラフィックライブラリの描画命令の実行を監視し、描画命令が実行された時にビデオメモリに保存されているデプスバッファを取得する方法、
・描画命令が実行されるたびに、描画により生成されたデプスバッファがメインメモリに転送されるようにグラフィックライブラリの描画命令自体を書き換える方法、
が挙げられる。但し、外部アプリケーションのデプスバッファを取得できる方法であれば、いずれの手法でもよく、手法の選択に制限はない。本実施形態では、グラフィックライブラリの描画命令を書き換えることで、外部アプリケーションのデプスバッファを取得する。
【００９１】
また、外部アプリケーション監視部では、デプスバッファとともに、描画に利用されたプロジェクション行列とモデルビュー行列も同時に取得する。プロジェクション行列とは、射影行列の内部パラメータを表す行列であり、カメラ座標形状の３次元座標を画像平面上に投影するために利用される。また、モデルビュー行列とは、ＣＡＤモデルの位置及び姿勢を表す行列であり、基準座標系上の３次元座標をカメラ座標系に変換するために用いられる。外部アプリケーション監視部３１０による描画命令の書き換えにより、外部アプリケーションが描画命令を実行するたび、描画時のデプスバッファとプロジェクション行列、およびモデルビュー行列がメインメモリに随時保存される。
【００９２】
奥行き画像取得部３２０は、外部アプリケーション８０の描画命令によりメインメモリ上に随時保存された外部アプリケーション８０のデプスバッファとモデルビュー行列を取得し、点群データ生成のための奥行き画像として保存するかどうかを決定する。
【００９３】
３次元点群生成部３３０、位置姿勢推定用モデル生成部３４０は、第１実施形態における３次元点群生成部１４０、位置姿勢推定用モデル生成部１５０と同一であるので説明を省略する。
【００９４】
次に、本実施形態における位置姿勢推定用３次元モデル生成方法の処理手順について説明する。図８は、本実施形態における位置姿勢推定用３次元モデル生成方法の処理手順を示すフローチャートである。
【００９５】
（ステップＳ３０１０）
まず、ステップＳ３０１０では、初期化を行う。初期化では、外部アプリケーション監視部３１０において、外部アプリケーションの描画命令の書き換えを行う。まず、外部アプリケーションが利用するグラフィックライブラリに応じて、描画命令の関数アドレスを取得する。そして、描画実行と同時にデプスバッファとプロジェクション行列とモデルビュー行列をメインメモリに転送するように描画命令を書き換え、取得した関数アドレスを利用してグラフィックライブラリの描画命令を上書きする。これにより、外部アプリケーションがグラフィックライブラリの描画命令を読み出すたびに、上書きされた描画命令が読み出され、そのときのデプスバッファとプロジェクション行列とモデルビュー行列がメインメモリに随時保存される。
【００９６】
（ステップＳ３０２０）
ステップＳ３０２０において、外部アプリケーション監視部３１０は、デプスバッファを取得するかどうかを決定するために、外部アプリケーション８０のモデルビュー行列を取得する。外部アプリケーション８０のモデルビュー行列は、外部アプリケーション８０の描画命令が実行される度に随時更新される。モデルビュー行列を取得したら、ステップＳ３０３０に進む。
【００９７】
（ステップＳ３０３０）
ステップＳ３０３０において、奥行き画像取得部３２０は、ステップＳ３０２０で取得したモデルビュー行列を、現在の３次元点群データを生成するために利用されたモデルビュー行列と比較する。この比較により、奥行き画像取得部３２０は、新しい視点から描画されたデプスバッファであるかを判別し、外部アプリケーション８０のデプスバッファを保存するかどうかを決定する。また、位置姿勢推定用モデル生成装置３に３次元点群データが生成されていない場合は、奥行き画像取得部３２０は外部アプリケーション８０のデプスバッファを保存し、ステップＳ３０４０に進む。３次元点群データが既に生成されている場合は、奥行き画像取得部３２０は、現時点の外部アプリケーション８０のデプスバッファが、３次元点群データの生成に利用されたデプスバッファと十分異なる視点から描画されているかを判別する。即ち、上述したモデルビュー行列の比較により、新しい視点から描画されたデプスバッファであるかどうかを判定し、３次元点群データ生成のための奥行き画像として保存するかどうかを決定する。
【００９８】
なお、異なる視点から描画されたデプスバッファであるかどうかの判別には、モデルビュー行列の回転成分と平行移動成分の差分を利用する。まず、平行移動成分に関しては、外部アプリケーションのモデルビュー行列と、３次元点群データの生成に利用したモデルビュー行列との平行移動成分のL2距離（ユークリッド距離）を計算する。３次元点群データが複数のデプスバッファから生成されている場合は、その全ての視点のモデルビュー行列に対して、平行移動成分のL2距離を計算する。算出したL2距離の中で最も小さな値が、一定の閾値以上であれば、奥行き画像取得部３２０は、保存されている視点位置から離れた視点から描画されたデプスバッファであると判別し、外部アプリケーション８０のデプスバッファを保存する。また、回転成分に関しては、両回転成分がなす角度の差を計算し、回転成分の差が閾値以上の場合は、奥行き画像取得部３２０は、保存されている視点姿勢から異なる姿勢から描画されたデプスバッファであると判別する。そして、奥行き画像取得部３２０は、外部アプリケーション８０のデプスバッファを保存する。
【００９９】
以上の処理により、外部アプリケーション８０のデプスバッファのモデルビュー行列が、本装置内に保存されたモデルビュー行列の視点位置姿勢に十分異なると判別された場合は、処理はステップＳ３０４０に進む。ステップＳ３０４０では、デプスバッファを参照して３次元点群データの生成が行われる。対して、十分近いと判別された場合は、処理はステップＳ３０２０に戻り、異なる視点から描画されるまで、ステップＳ３０２０からステップＳ３０４０の処理が繰り返される。
【０１００】
（ステップＳ３０４０）
次に、ステップＳ３０４０において、３次元点群生成部３３０は、ステップＳ３０３０において取得したデプスバッファを利用して、観察対象物体の形状を表す３次元点群データを生成する。ステップＳ３０４０の処理内容は、基本的に第１実施形態におけるステップＳ１０４０の処理と同様であるので説明を省略する。
【０１０１】
（ステップＳ３０５０）
次に、ステップＳ３０５０において、別の視点からの点群データを生成する場合、処理はステップＳ３０２０に戻り、別視点からの点群データ生成を行う。本実施形態では、ＣＡＤモデルの描画は外部アプリケーションに依存しているため、描画の視点位置姿勢の設定を、本装置から操作することはできない。そのため、別の視点から描画されたデプスバッファを取得したい場合は、外部アプリケーションの視点設定が変化するまで、ステップＳ３０２０からＳ３０５０を繰り返し、外部アプリケーションにおいて所望の視点位置姿勢から描画されるのを待つ必要がある。しかし、ユーザが外部アプリケーションを任意に操作できる場合は、ユーザが外部アプリケーション８０を操作しながら、３次元点群データの生成に利用するデプスバッファをその都度指定しても良い。所望の範囲の３次元点群データが生成されたら、ステップＳ３０６０に進み、３次元点群データからのメッシュモデル生成を行う。
【０１０２】
（ステップＳ３０６０）
次に、ステップＳ３０６０において、位置姿勢推定用モデル生成部３４０は、ステップＳ３０４０で生成した３次元点群データから、位置姿勢推定用のメッシュモデルを生成する。ステップＳ３０６０の処理内容は、基本的に第１実施形態におけるステップＳ１０６０の処理と同様であるので説明を省略する。
【０１０３】
（ステップＳ３０７０）
次に、ステップＳ３０７０において、位置姿勢推定用モデル生成部３４０は、メッシュのリファインを行う。ステップＳ３０７０の処理内容は、基本的に第１実施形態におけるステップＳ１０７０の処理と同一であるので説明を省略する。以上の処理により、位置姿勢推定用のメッシュモデルが生成され、処理が終了する。
【０１０４】
以上述べたように、第２実施形態の位置姿勢推定用モデル生成装置３は、ＣＡＤモデルの描画自体を、ＣＡＤモデルの描画能力を有する外部アプリケーションにまかせる。そして、位置姿勢推定用モデル生成装置３は、外部アプリケーションのデプスバッファを取得して、３次元点群データを生成する。このため、位置姿勢推定用モデル生成装置３は、その内部にレンダリングエンジンを含む必要がなくなる。これにより、外部アプリケーションが対応する範囲内においてあらゆるモデル形式の３次元モデルを利用して、位置姿勢推定用モデルを生成することが可能となる。
【０１０５】
なお、位置姿勢推定用モデル生成装置３により生成された位置姿勢推定用モデルを用いて位置姿勢計測を行なう位置姿勢計測装置、その計測結果を用いてＭＲ画像を生成する画像合成装置は、第１実施形態と同様である。
【０１０６】
以上のように、第１及び第２実施形態によれば、観察対象物体の形状を表す３次元情報の描画結果から当該３次元情報に基づく３次元点群データを生成し、生成した３次元点群データから位置姿勢推定に利用するための位置姿勢推定用モデルを生成する。例えば、観察対象物体の形状を表す３次元情報の描画結果として得られるデプスバッファを用いて、位置姿勢推定用モデルを生成することが可能となる。このため、面の隠れや曲面を含んだ物体に対応できるような面情報を含んだ位置姿勢推定用モデルを生成することができる。また、位置姿勢推定手法に応じて、３次元点群データから一定以上細かい形状情報を省くことで、位置姿勢推定において安定した特徴対応付けができる位置姿勢推定用モデルを生成することができる。
【０１０７】
さらに、生成した位置姿勢推定用モデルには法線情報や頂点情報などの詳細な形状情報が含まれるため、詳細な形状情報を位置姿勢推定に利用することが可能である。
【０１０８】
また、特に第２実施形態によれば、外部のアプリケーションからデプスバッファを取得するので、レンダリングエンジンを内部に含む必要が無くなる。そのため、３次元情報のレンダリングに外部のアプリケーションを利用することで、多様なモデル形式を利用して位置姿勢推定用モデルを生成することが可能となる。
【０１０９】
［変形例１］デプスを間引いてサンプリングする
上述の第１および第２実施形態では、ステップＳ１０４０の点群データの生成において、点群データを生成するために、デプスバッファの全画素のデータを読み込んでいた。しかし、デプスバッファに必要以上な密度で、奥行き値が保存されている場合、生成した結果である点群データのデータ量が膨大なものになる恐れがある。
【０１１０】
そこで、デプスバッファから奥行き値を読み込むときに、全画素を読み込むのではなく、画素を間引いて読みこむ。これにより、点群として生成されるデータ量を低減することができ、また、以後のステップにおける処理を大幅に高速化することが可能となる。このとき、デプスバッファから奥行き値を読み出すときの間引き率は、モデルに対する前提知識に基づいて設定してもよいし、モデルに問わず、一定の値で設定しても良い。最終的に生成される位置姿勢推定用モデルが、位置姿勢推定に利用するために十分の精度がある限り、これを制限するものでなく、いずれの方法でも良い。
【０１１１】
［変形例２］（位置姿勢に利用する部分のみ位置姿勢推定用モデルを生成）
第１及び第２実施形態では、生成した３次元点群データに対して、全ての点群データを利用して、位置姿勢推定用モデルを生成していた。しかし、位置姿勢推定する対象となる物体が巨大で、一部分しか観察しないことがあらかじめわかっている場合や、観察対象物体を撮像する撮像装置の視点移動が小さいことがわかっている場合などは、観察対象物体の全ての形状を生成する必要はない。そこで、観察対象物体の被観察部位が限定できる場合は、点群データからその部分のみを位置姿勢推定用モデルとして生成する。これにより、位置姿勢推定用モデルデータの巨大化、モデル生成の手間を低減することが出来る。
【０１１２】
［変形例３］（位置姿勢推定用モデルとして、点群データからＩＰモデルを生成する）
第１及び第２実施形態では、位置姿勢推定用モデルとして、頂点と面により構成されたメッシュモデルを用いている。しかし、位置姿勢推定用モデルとして生成するモデルはこれに限るものではない。位置姿勢推定用モデルとしては、例えば、陰関数多項式で面の情報が記述された、陰関数多項式モデル（ＩＰモデル）を利用しても良い。ＩＰモデルは、面からの距離場を容易に計算することが可能であるため、撮影画像中に撮像される観察対象物体と位置姿勢推定用モデルとの当てはめにＩＰモデルの距離場を利用することが可能である。また、ＩＰモデルは、視点から観察される曲面の遮蔽輪郭を低い計算コストで算出することが可能であるため、エッジを利用した位置姿勢推定において、ＩＰモデルを利用するメリットは大きい。点群からのＩＰモデルの生成方法としては、例えば、非特許文献５に示される手法を用いればよい。また、ＩＰモデルの生成方法は、これに限るものでなく、点群を入力としＩＰモデルを出力とする手法であれば、いずれの手法でも良く、ＩＰモデル生成手法に特に制限はない。
【０１１３】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１４】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【０１１５】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１１７】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【０１１８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【０１２０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【０１２１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【０１２２】
【図１】第１実施形態における位置姿勢推定用モデル生成装置１の構成を示す図である。
【図２】第１実施形態における位置姿勢推定用モデルの生成方法の処理手順を示すフローチャートである。
【図３】第１、第２実施形態における位置姿勢推定用モデル生成装置１及び３により生成した位置姿勢推定用モデルを利用した位置姿勢計測装置２の構成を示す図である。
【図４】第１、第２実施形態における位置姿勢計測装置２をＭＲの位置合わせに適用した場合を示す図である。
【図５】第１、第２実施形態における位置姿勢推定用モデルを利用した位置姿勢の推定方法の処理手順を示すフローチャートである。
【図６】第１、第２実施形態における、位置姿勢推定のためのモデル特徴抽出の詳細な処理手順を示すフローチャートである。
【図７】第２実施形態における位置姿勢推定用モデル生成装置３の構成を示す図である。
【図８】第２実施形態における位置姿勢推定用モデルの生成方法の処理手順を示すフローチャートである。
【図１】
2010079453.tif 000014
【図２】
2010079453.tif 000015
【図３】
2010079453.tif 000016
【図４】
2010079453.tif 000017
【図５】
2010079453.tif 000018
【図６】
2010079453.tif 000019
【図７】
2010079453.tif 000020
【図８】
2010079453.tif 000021