JP4898464B2 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
JP4898464B2
JP4898464B2 JP2007008496A JP2007008496A JP4898464B2 JP 4898464 B2 JP4898464 B2 JP 4898464B2 JP 2007008496 A JP2007008496 A JP 2007008496A JP 2007008496 A JP2007008496 A JP 2007008496A JP 4898464 B2 JP4898464 B2 JP 4898464B2
Authority
JP
Japan
Prior art keywords
information
orientation
candidate position
candidate
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007008496A
Other languages
English (en)
Other versions
JP2008176509A (ja
Inventor
大輔 小竹
晋二 内山
博一 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007008496A priority Critical patent/JP4898464B2/ja
Priority to US12/013,123 priority patent/US8391589B2/en
Publication of JP2008176509A publication Critical patent/JP2008176509A/ja
Application granted granted Critical
Publication of JP4898464B2 publication Critical patent/JP4898464B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/16Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Image Analysis (AREA)

Description

本発明は、撮像装置の位置、姿勢を求めるための技術に関するものである。
近年、現実空間に仮想空間の情報を重ね合わせてユーザに提示する拡張現実感(Augmented Reality、以下AR)技術の研究が盛んである。AR技術における情報提示装置としては、ビデオシースルー型のヘッドマウントディスプレイ(Head Mounted Display、以下HMD)が代表的である。ビデオシースルー型HMDには、現実空間を撮影するカメラが内蔵されている。一方で、このカメラの現実空間における位置及び姿勢に応じて、コンピュータグラフィクス(以下、CG)によって仮想物体が描画される。そして、描画された仮想物体を現実空間の画像上に重畳することにより合成画像を生成し、この合成画像を液晶パネルなどのHMDの表示デバイス上に表示させる。このような情報提示装置により、利用者は、あたかも仮想物体が現実空間中に実在するかのように感じることができる。
AR技術を実現する上で解決しなければならない大きな問題の一つとして、位置合わせの問題がある。仮想物体が現実空間中に実在するように利用者に感じさせるためには、仮想物体と現実空間との間の幾何学的な整合性が取れている必要がある。即ち、仮想物体は常に現実空間中に存在すべき位置に存在しているように利用者から観察されなければならない。
ビデオシースルー型HMDを利用するAR技術では、HMDに内蔵されているカメラから現実空間の画像を取得する毎に、現実空間中におけるカメラの画像撮影時における位置及び姿勢を計測する。そしてこのカメラの位置及び姿勢と、焦点距離などのカメラの固有パラメータに基づいてCGを描画し、現実空間の画像上に重畳する。このような一連の処理が、AR技術ではでは一般的に行われる。そのため、ビデオシースルー型HMDを利用するAR技術の場合、位置合わせの問題は、HMDに内蔵したカメラの現実空間における位置及び姿勢を計測する問題となる。カメラの位置及び姿勢の計測は、例えば磁気センサや超音波センサ、光学式センサなどの6自由度のカメラの位置及び姿勢を計測する物理センサによって行うことが可能である。
ところで、ビデオシースルー型HMDを利用する場合には、HMDに内蔵されているカメラからの画像情報を位置合わせのために利用することが可能である。画像情報を利用する位置合わせ方法は、物理センサを利用する方法に比べて手軽でかつ低コストであるため広く利用されている。画像情報を利用する位置合わせ手法は、一般に、現実空間中における3次元位置が既知の指標をカメラで撮影し、指標の撮影画像上での位置と3次元位置との対応をもとにカメラの位置及び姿勢を算出する。
指標として、現実空間中に人為的に配置したマーカを用いる場合と、現実空間中に元来存在するコーナー点やエッジなどの自然特徴を利用する場合がある。実用上は、画像からの検出や識別がしやすい人工的なマーカが、安定性や計算負荷の点から広く利用されている。
非特許文献1には、固有の2次元パターンが内部に描かれた正方形形状のマーカを指標として用いた位置合わせ方法が開示されている。この方法では、画像中から正方形指標の領域を抽出し、内部の2次元パターンを用いてマーカの識別を行う。さらに、カメラによって撮影された画像上における正方形マーカの各頂点の位置と、正方形マーカの各頂点のマーカ座標系における位置との対応をもとに、カメラの位置及び姿勢を算出している。このような正方形マーカなどの人工的なマーカは手軽に利用できるため広く利用されている。しかしながら、マーカを配置することが物理的に不可能な場合や、美観を損ねるなどの理由のためにマーカを配置したくない場合にはマーカを利用することができない。
一方、近年の計算機の能力向上に伴い、現実空間中に元来存在する自然特徴を利用した位置合わせ手法の研究が盛んに行われている。位置合わせに用いられる自然特徴としては、コーナー点などの点形状の特徴(以下、点特徴)と、エッジなどの線特徴が主に用いられる。
非特許文献2、3、4、5、6、7には、エッジを利用した位置合わせの方法が開示されている。エッジはスケールや観察方向に対して不変であるため、エッジを利用した位置合わせは精度が高いという特徴がある。エッジを利用した位置合わせでは、線分の集合により記述されている現実空間や現実物体の3次元モデルデータを持つことが前提となっている。非特許文献2、3、4で開示されているエッジを利用した位置合わせは、次の1から3の処理によって実現される。
1. 前フレームでのカメラの位置及び姿勢、及び予め校正済みのカメラの固有パラメータに基づいて、前述の3次元モデルデータ(線分モデル)を画像上に投影する。
2. 投影された線分モデルを構成する各線分を、画像上で一定間隔となるように分割し、分割点を設定する。そして各分割点について、該分割点を通過し向きが投影された線分の法線方向である線分(探索ライン)上でエッジ探索を行い、探索ライン上における輝度値の勾配が極大でありかつ分割点に最も近い点を対応エッジとして検出する。
3. 各分割点毎に検出された対応エッジと、投影される線分との間の画像上での距離の総和が最小となるようなカメラの位置及び姿勢の補正値を算出し、カメラの位置及び姿勢を補正する。
前述のエッジを利用した位置合わせ方法では、前フレームで算出されたカメラの位置及び姿勢に基づいてエッジ検出を行っている。そして、画像上で検出されるエッジの情報をもとに前フレームの位置及び姿勢に対する補正値を算出し、前フレームにおけるカメラの位置及び姿勢を該補正値により補正すること現フレームにおけるカメラの位置及び姿勢を算出している。そのため、例えば前フレームで位置姿勢算出が失敗した場合、以降のフレームにおいても正しくカメラの位置及び姿勢を算出することはできなくなり、位置合わせが破綻する。このような状況は、例えばカメラが高速に移動する場合や、移動物体がカメラの前を横切る場合などにしばしば起こり得る。このような位置合わせの破綻を回避するために、各フレームにおいて一つのカメラの位置及び姿勢を出力するのではなく、複数のカメラの位置及び姿勢を出力し、それらを複数の仮説として次フレームで利用する手法が提案されている。
非特許文献5では、点特徴の情報を併用し、1フレームにおいて複数のカメラの位置及び姿勢を算出することによって、エッジを利用した位置合わせが破綻することを回避している。非特許文献5では、エッジを利用した位置合わせと共に、フレーム間での点特徴の対応に基づいて、現フレームにおけるカメラの位置及び姿勢を反復演算により算出する。この際に、前フレームにおいてエッジ情報から得られるカメラの位置及び姿勢と、点特徴の情報から得られるカメラの位置及び姿勢を夫々初期値とすることにより、2種類のカメラの位置及び姿勢を算出する。このようにして得られた2種類のカメラの位置及び姿勢のうち、尤度の大きい方を現フレームにおける点特徴の情報から得られるカメラの位置及び姿勢とする。そしてこのカメラの位置及び姿勢を一つの仮説として次フレームに出力すると共に、エッジを用いた位置合わせにおけるカメラの位置及び姿勢の初期値とする。さらに前述のエッジを用いた位置合わせを行って、その結果得られるカメラの位置及び姿勢をもう1つの仮説として次フレームに出力する。このようにして、非特許文献5では、常に2つのカメラの位置及び姿勢を次フレームに出力し、常に妥当性の高い位置及び姿勢を選択することにより、位置合わせが破綻することを回避している。
また、非特許文献6、7では、パーティクルフィルタによってカメラの複数の位置及び姿勢を保持することで、エッジを用いた位置合わせが破綻することを回避している。パーティクルフィルタでは、複数のカメラの位置及び姿勢を6次元空間における離散的なパーティクルの集合として保持する。各パーティクルは、カメラの位置及び姿勢とともに、該位置及び姿勢の信頼度を表す重みをデータとして持つ。各フレームにおいては、前フレームから得られるパーティクルの集合から、各パーティクルの重みに基づいて新たにパーティクルの集合を発生させる。次に、新たに発生させた各パーティクルの位置及び姿勢を動きモデルに基づいて変化させる。さらに、各パーティクルについて尤度を求め、尤度に応じた重みを与えたパーティクルの集合を複数のカメラの位置及び姿勢として次フレームに出力する。現フレームにおけるカメラの位置及び姿勢としては、各パーティクルの位置及び姿勢の重み付け平均が一般に用いられる。このように、非特許文献6、7では、複数のカメラの位置及び姿勢をパーティクルとして保持することにより、位置合わせが破綻することを回避している。
加藤, M. Billinghurst, 浅野, 橘, "マーカー追跡に基づく拡張現実感システムとそのキャリブレーション", 日本バーチャルリアリティ学会論文誌, vol.4, no.4, pp.607-617, 1999. T. Drummond and R. Cipolla, "Real-time visual tracking of complex structures," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.24, no.7, pp.932-946, 2002. A. I. Comport, E. Marchand, and F. Chaumette, "A real-time tracker for markerless augmented reality," Proc. The 2nd IEEE/ACM International Symposium on Mixed and Augmented Reality (ISMAR03), pp.36-45, 2003. L. Vacchetti, V. Lepetit, and P. Fua, "Combining edge and texture information for real-time accurate 3D camera tracking," Proc. The 3rd IEEE/ACM International Symposium on Mixed and Augmented Reality (ISMAR04), pp.48-57, 2004. E. Rosten and T. Drummond, "Fusing points and lines for high performance tracking," Proc. The 10th IEEE International Conference on Computer Vision (ICCV’05), pp.1508-1515, 2005. M. Pupilli and A. Calway, "Real-time camera tracking using known 3D models and a particle filter," Proc. The 18th International Conference on Pattern Recognition (ICPR’06), pp.199-203, 2006. G. Klein and D. Murray, "Full-3D edge tracking with a particle filter," Proc. British Machine Vision Conference 2006, 2006. I. Skrypnyk and D. G. Lowe, "Scene modelling, recognition and tracking with invariant image features," Proc. The 3rd IEEE/ACM International Symposium on Mixed and Augmented Reality (ISMAR04), pp.110-119, 2004. H. Wuest, F. Vial, and D. Stricker, "Adaptive line tracking with multiple hypotheses for augmented reality," Proc. The Fourth Int’l Symp. on Mixed and Augmented Reality (ISMAR05), pp.62-69, 2005. K. Satoh, S. Uchiyama, H. Yamamoto, and H. Tamura, "Robust vision-based registration utilizing bird’s-eye view with user’s view," Proc. The Second Int’l Symp. on Mixed and Augmented Reality (ISMAR03), pp.46-55, 2003.
(従来の課題)
非特許文献5で開示されている手法は、位置合わせの破綻を回避するために、点特徴の情報を利用することで複数のカメラの位置及び姿勢を生成していた。しかしながら、コーナー点などの点特徴が現実空間中に存在しない又は少ない場合や、見た目が類似している点特徴が多い場合には、非特許文献5で開示されている手法は利用することができない。また、カメラの2つの位置及び姿勢のどちらが用いられるかは次フレームにならないとわからないため、AR技術において仮想物体を描画する際に、必ずしも正しいカメラの位置及び姿勢を用いることができないという問題がある。
また、非特許文献6、7で開示されている手法は、数百個単位のパーティクルについて尤度の計算をしなければならないため、計算負荷が高い。そのため実時間性が求められるARアプリケーションに向いていない。また、パーティクルフィルタを用いる手法は、カメラの位置及び姿勢をパーティクルの集合として表現するため、得られるカメラの位置及び姿勢が不正確であったり、フレーム間でジッタを生じてしまうという問題がある。
本発明は以上の問題に鑑みてなされたものであり、現実空間中における撮像装置の位置及び姿勢を求める際に生ずる「位置合わせの破綻」を回避しつつ、より簡便且つより高精度に撮像装置の位置及び姿勢を求めるための技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
即ち、現実空間の動画像を撮像する撮像装置に接続されている情報処理装置であって、
前記動画像を構成する各フレームの画像を前記撮像装置から取得する毎に、取得したフレームの画像の撮像時における前記撮像装置の撮像位置、撮像姿勢を求める計算手段と、
前記計算手段が求めた撮像位置及び撮像姿勢を示す撮像位置姿勢情報を、メモリに記録する記録手段とを備え、
前記計算手段は、
前記メモリに記録されている複数の撮像位置姿勢情報に基づいて、予め設定された個数の候補位置姿勢情報を求める候補位置姿勢算出手段と、
前記取得したフレームの画像中における観察対象物体の画像特徴を検出する検出手段と、
前記候補位置姿勢算出手段が求めたそれぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報からそれぞれ異なる候補位置情報及び候補姿勢情報の組み合わせを複数個生成し、該生成した複数個の組み合わせと前記画像特徴に対応する既知の3次元情報とから推定される該画像特徴の前記取得したフレームの画像中における推定位置と、前記検出手段による前記画像特徴の検出位置と、の誤差に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報の補正値を算出し、該補正値に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報を補正する補正手段と、
前記補正手段が補正した前記それぞれの候補位置姿勢情報について評価値を求め、求めたそれぞれの評価値に基づいて、該それぞれの候補位置姿勢情報のうち1つを選択する選択手段とを備え、
前記記録手段は、
前記選択手段が選択した候補位置姿勢情報を、前記撮像位置姿勢情報として前記メモリに記録する
ことを特徴とする。
本発明の構成によれば、現実空間中における撮像装置の位置及び姿勢を求める際に生ずる「位置合わせの破綻」を回避しつつ、より高精度に撮像装置の位置及び姿勢を求めることができる。
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係る位置姿勢計測装置1の機能構成を示すブロック図である。図1に示す如く、位置姿勢計測装置1は、画像入力部110、画像特徴検出部120、モデルデータ保存部130、位置姿勢算出部140、位置姿勢選択部150、位置姿勢生成部160、位置姿勢保存部170により構成されている。また、画像入力部110には、撮像装置100が接続されている。
図2は、撮像装置100を装着したユーザと、このユーザが観察する空間とを模式的に示した図である。
観察者40は、ビデオシースルー型のHMD30を装着している。ビデオシースルー型HMD30には、左眼、右眼のそれぞれ対応した撮像装置100L、100Rが内蔵されている。撮像装置100R、100Lは、現実空間の動画像をそれぞれ撮像するものであり、図2では、現実物体としての観察対象物体10を含む現実空間の動画像を撮像している。撮像装置100L(100R)が撮像した各フレームの画像は順次、位置姿勢計測装置1に入力される。位置姿勢計測装置1は、撮像装置100L(100R)から入力された画像と、モデルデータ保存部130に保存されている観察対象物体10の3次元モデルデータとに基づいて、撮像装置100L(100R)の位置及び姿勢を算出する。
そして位置姿勢計測装置1は、算出した撮像装置100L(100R)の位置及び姿勢に基づいて仮想物体20の画像を、この算出のために用いたフレームの画像上に重ねて描画することで、合成画像を生成する。そして位置姿勢計測装置1は、この生成した合成画像を、ビデオシースルー型HMD30が有する表示デバイスに対して出力するので、この表示デバイスは、この合成画像を表示する。ここで、ビデオシースルー型HMD30が有する表示デバイスは、ビデオシースルー型HMD30を装着した観察者40の眼前に位置するようにビデオシースルー型HMD30に取り付けられているものである。従って観察者40の眼前には、この合成画像が表示されることになる。
なお、撮像装置100Lによって撮像された画像に加えて、撮像装置100Rによって撮像された画像をも用いることで以上のような位置姿勢算出処理を行っても良い。本実施形態では撮像装置100Lによって撮像された画像のみを用いて、観察者の視点(観察者の位置及び姿勢)に相当する撮像装置100Lの位置及び姿勢を算出するものとする。
次に、位置姿勢計測装置1を構成する各部について説明する。
画像入力部110は、撮像装置100Lから順次送出される各フレームの画像(現実空間画像)を受け、後段の画像特徴検出部120に対して転送する。画像入力部110は、撮像装置100Lの出力がNTSCなどのアナログ出力であればアナログビデオキャプチャボードによって実現される。また撮像装置100Lの出力がIEEE1394などのデジタル出力であれば、例えばIEEE1394インタフェースボードによって実現される。なお、現実空間の動画像のファイルが、例えば、ハードディスク装置などに予め保存されており、位置姿勢計測装置1がこれを用いる場合には、画像入力部110は、このファイルを読み出し、後段の画像特徴検出部120に対して転送する処理を行う。
画像特徴検出部120は、画像入力部110から画像を受けると、この画像から、撮像装置100Lの位置及び姿勢を算出する為に用いる画像特徴を検出する。本実施形態では、画像特徴検出部120は画像上のエッジの検出を行うものとする。エッジの検出方法については後述する。
モデルデータ保存部130は、撮像装置100Lの位置及び姿勢を算出する際の基準となる、観察対象物体10の3次元モデルデータを記憶する。
図3は、本実施形態における3次元モデルの定義方法を説明する図である。3次元モデルは、頂点の情報、各頂点を結んで構成される面の情報、面を構成する線分の情報、によって定義される。図3(a)の左側に示すように、本実施形態における3次元モデルは点P1〜点P8の8点から構成される直方体である。そして、直方体の座標系のX軸を点P1から点P4に向かう方向に、Y軸を点P5から点P1に向かう方向に、Z軸を点P1から点P2に向かう方向に取る。また原点をP5に取る。また、図3(a)の中央、及び右側に示すように、直方体は面F1〜F6により構成されており、直方体は線分L1〜L12により構成されている。
図3(b)に示すように、点P1〜点P8は3次元座標値によって表される。また図3(c)に示すように、面F1〜F6は、面を構成する点のIDと、各点を接続する順番によって表される。また図3(d)に示すように、線分L1〜L14は、両端の点のIDによって表される。
従って、本実施形態では、モデルデータ保存部130には、観察対象物体10の3次元モデルを再現可能なデータ、即ち、図3(b)、(c)、(d)に示すようなテーブルのデータが、3次元モデルデータとして保存されているものとする。しかし、3次元モデルデータの表現方法については様々なものがあり、以下の説明は、特定の表現方法に従った3次元モデルデータを用いることに限定されるものではない。
位置姿勢保存部170は、過去数フレーム分の画像(例えば現フレームから過去3フレーム分の画像)のそれぞれについて位置姿勢算出部140が算出した撮像装置100Lの位置及び姿勢を保存する。換言すれば、位置姿勢保存部170は、過去数フレーム分の画像(例えば現フレームから過去3フレーム分の画像)のそれぞれの撮像時における撮像装置100Lの位置及び姿勢を保存する。なお、保存するものは厳密には「位置を示す位置情報、姿勢を示す姿勢情報」である。このように以下の説明では、「位置を保存する」とは「位置を示す位置情報を保存する」ことを意図しており、「姿勢を保存する」とは「姿勢を示す姿勢情報を保存する」ことを意図している。
本実施形態では、位置姿勢保存部170には、1つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの位置及び姿勢、2つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの位置及び姿勢、3つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの位置及び姿勢、が保存されるものとする。
なお、最初のフレームの画像(例えば1フレーム目の画像)を用いて算出された撮像装置100Lの位置及び姿勢を位置姿勢保存部170に保存する前には、後述する初期化処理から得られる撮像装置100Lの初期位置及び初期姿勢を保存しているものとする。
位置姿勢生成部160は、位置姿勢保存部170に保存されている位置及び姿勢から、複数の位置及び姿勢を生成する。
位置姿勢算出部140は、位置姿勢生成部160が生成した各位置及び姿勢を、反復演算を行うために用いる初期値とし、それぞれの初期値から求められる複数の位置及び姿勢を求める。より具体的には、画像特徴検出部120が検出した画像特徴の情報と、モデルデータ保存部130に保存されているモデルデータに基づいて、観察対象物体10を基準とした座標系(以下、基準座標系)における撮像装置100Lの位置及び姿勢を算出する。
位置姿勢選択部150は、位置姿勢算出部140が算出した複数の位置及び姿勢から、最も妥当な位置及び姿勢を選択し、位置姿勢保存部170に保存する。なお、位置姿勢選択部150が選択した位置及び姿勢を用いて、仮想物体20の画像が描画される。
なお、図1には、撮像装置100Lの位置及び姿勢を求めるための構成のみを記しており、係る位置及び姿勢を用いて仮想物体の画像を生成し、現実空間画像と合成してHMD等に出力するための構成については記していない。しかし、求めた撮像装置100Lの位置及び姿勢は如何なる目的で使用しても良い。
次に、位置姿勢計測装置1が行う、撮像装置100Lの位置及び姿勢を求める処理について、同処理のフローチャートを示す図4を用いて説明する。
(ステップS1010)
ステップS1010では、位置姿勢保存部170に、撮像装置100Lの初期位置を示す初期位置情報、初期姿勢を示す初期姿勢情報を格納する。
ここでは、基準座標系における撮像装置100Lの概略の位置及び姿勢の設定(初期化)を行う。本実施形態における位置姿勢計測方法は、概略の撮像装置100Lの位置及び姿勢を、画像上でのエッジ情報を利用して逐次更新していく方法である。そのため、位置姿勢計測を開始する前に予め撮像装置100Lの概略の位置及び姿勢を初期位置及び初期姿勢として与える必要がある。そこで、例えば予め決まった位置及び姿勢を設定しておき、撮像装置100Lをその位置及び姿勢になるように移動することで初期化を行う。または、非特許文献1で開示されているような、画像内で検出するだけで認識可能な人工的な指標を配置し、該指標の各頂点の画像座標と基準座標系における3次元位置との対応から撮像装置100Lの位置及び姿勢を求めて概略の位置及び姿勢としてもよい。また、非特許文献8に示すような識別性の高い自然特徴点を予め検出してその3次元位置を求めておき、初期化時に画像上で該特徴点を検出し、その画像座標と3次元位置との対応から撮像装置100Lの位置及び姿勢を求めてもよい。さらに、磁気式や光学式、超音波式などの6自由度位置姿勢センサによって撮像装置100Lの位置及び姿勢を計測し、それを概略の位置及び姿勢としてもよい。人工的な指標や自然特徴点などの画像情報と、前述の6自由度位置姿勢センサや3自由度の姿勢センサ、3自由度の位置センサを併用して計測される撮像装置100Lの位置及び姿勢を用いて初期化してもよい。
このような初期化を行えば、撮像装置100Lの初期位置、初期姿勢が得られるので、得た初期位置を示す初期位置情報、初期姿勢を示す初期姿勢情報をそれぞれ位置姿勢保存部170に格納する。そして処理をステップS1020に進める。
(ステップS1020)
ステップS1020では、撮像装置100Lが撮像した画像(現実空間画像)のデータを画像入力部110が取得し、後段の画像特徴検出部120に転送する。
(ステップS1030)
ステップS1030では、画像特徴検出部120は、画像入力部110から受けた現実空間画像から、画像特徴の検出処理を行う。本実施形態では画像特徴はエッジであるとする。図5は、ステップS1030における処理の詳細を示すフローチャートである。
先ずステップS1110では、モデル投影を行う。ここでのモデル投影とは先ず、モデルデータ保存部130に保存されている3次元モデルデータに基づいて観察対象物体10の3次元モデルを生成する。そして、生成した3次元モデルを、位置姿勢保存部170に保存されている最新の位置及び姿勢に基づいて、現実空間画像上に投影する。
具体的には、3次元モデルを表す線分を現実空間画像上に投影したときの、該線分の現実空間画像上での直線の方程式を求めることである。直線の方程式は、線分の両端を現実空間画像上に投影し、現実空間画像上での両端の座標を結んだ直線の方程式として算出する。モデル投影を行うためには、撮像装置100Lの位置及び姿勢とともに、焦点距離や主点位置等、撮像装置100L固有のパラメータが既知である必要がある。本実施形態では、焦点距離や主点位置等、撮像装置100Lに固有のパラメータは予め計測され、データとして画像特徴検出部120が保持しているものとして説明する。
図6は、ステップS1110において行われる、現実空間画像上への3次元モデルの投影を示す図である。図6(a)は現実空間画像そのものを示しており、600は観察対象物体10の像である。図6(b)は3次元モデルを投影した現実空間画像を示しており、601は、投影した3次元モデルの像である。
位置姿勢保存部170に保存された最新の位置及び姿勢と、現在の実際の撮像装置100Lの位置及び姿勢とが異なる場合には、図6(b)に示すように実際に撮像された像600と、投影した3次元モデルの像601との間にはずれが生じる。図6(b)において、破線で示されている線分は、3次元モデルを構成する線分のうち、実際には隠れて見えない線分を表している。
次にステップS1120では、分割点の設定を行う。ステップS1110において算出された各線分の方程式を利用して、投影された線分を現実空間画像上で等間隔に分割するように分割点を設定する。図7は、3次元モデルの現実空間画像上での分割点を示す図である。分割点の総数をNとし、各分割点をDPj(j=1,2,...,N)で表す。分割点の数Nが多いほど、処理時間が長くなる。そのため、現実空間画像上での分割点の間隔を変えることで処理時間を制御できる。また、分割点の数を一定として処理時間が一定になるように、現実空間画像上での分割点間の間隔を逐次変更してもよい。
次にステップS1130では変数jを1に初期化する。
ステップS1140では、分割点DPjが隠蔽されているかどうかの判定を行う。具体的には、分割点DPjが3次元モデルの他の面に隠蔽されている場合、すなわち図7の破線上の分割点である場合には分割点DPjは隠蔽されている状態にある。分割点DPjが可視かどうかの判定は、例えば非特許文献9に示されるように、グラフィクスハードウェアを利用して上述の3次元モデルを描画した後、該分割点を描画してグラフィクスハードウェアにデプスバッファが更新されたかどうかを確認することで行える。分割点DPjが隠蔽されている場合には処理をステップS1160に進め、隠蔽されていない場合には処理をステップS1150に進める。
ステップS1150では、分割点DPjに対応するエッジの検出を行う。図8は、本実施形態におけるエッジ検出方法を説明する図である。図8(a)に示すように、各分割点において、投影された線分の法線方向に平行でかつ該分割点を通過する線分(以下、探索ライン)上においてエッジを1次元探索する。エッジは、探索ライン上において濃度勾配が極値をとる位置に存在する(図8(b)参照)。本実施形態では、探索ライン上でエッジが複数検出される場合には、現実空間画像上で最も分割点に近いエッジを対応点とする。しかしながら対応点の決定方法はこれに限るものではなく、探索ライン上で濃度勾配の極値の絶対値が最大のエッジを対応点としてもよい。
ステップS1160では、変数jが保持する値を1つインクリメントする。
ステップS1170では、すべての分割点DPjについて処理が終了している場合(j>Nの場合)には本処理を終了し、ステップS1031にリターンする。一方、すべての分割点DPjについて処理が終了していない場合(j≦Nの場合)には処理をステップS1140に進め、以降の処理を行う。
このようにして、現実空間画像から画像特徴を検出する。
(ステップS1031)
ステップS1031では、位置姿勢算出部140は、3フレーム分の位置情報、姿勢情報が位置姿勢保存部170に格納されているか否かをチェックする。即ち、1つ前のフレームにおける撮像装置100Lの位置及び姿勢、2つ前のフレームにおける撮像装置100Lの位置及び姿勢、3つ前のフレームにおける撮像装置100Lの位置及び姿勢、が位置姿勢保存部170に格納されているか否かをチェックする。係るチェックの結果、格納されている場合には処理をステップS1040に進める。一方、格納されていない場合には、処理をステップS1032に進める。
(ステップS1040)
次にステップS1040では先ず、位置姿勢生成部160は、位置姿勢保存部170に保存されている位置情報(Porg t-1、Porg t-2、Porg t-3)を用いて、複数の位置情報(候補位置情報)p(i=1,2,…,I)を求める。また、位置姿勢生成部160は、位置姿勢保存部170に保存されている姿勢情報(qorg t-1、qorg t-2、qorg t-3)を用いて、複数の姿勢情報(候補姿勢情報)q(i=1,2,…,I)を求める。
ここで、porg、piは3次元空間における撮像装置100Lの位置を表す3次元ベクトルであり、qorg、qiは撮像装置100Lの姿勢を表すクォータニオンである。
また、porg t-1、porg t-2、porg t-3はそれぞれ、1フレーム前、2フレーム前、3フレーム前において位置姿勢保存部170に保存された撮像装置100Lの位置情報である。また、qorg t-1、qorg t-2、qorg t-3はそれぞれ、1フレーム前、2フレーム前、3フレーム前において位置姿勢保存部170に保存された撮像装置100Lの姿勢情報である。
ここで、位置姿勢保存部170に保存されている位置情報、姿勢情報に基づいて生成する位置情報、姿勢情報の数(I)は、撮像装置100Lの動きモデルとして予め決めたモデルの個数に一致する。本実施形態では、撮像装置100Lの位置の動きモデルとして位置静止、等速度運動、等加速度運動の3つを仮定する。また、撮像装置100Lの姿勢の動きモデルとして、姿勢静止、等角速度運動、等角加速度運動の3つを仮定する。従ってI=3となる。
即ち、生成する3つの位置情報はそれぞれ、位置静止モデル、等速度運動モデル、等加速度運動モデルに対応するものである。従って、位置情報pは位置姿勢モデルに対応するものであり、位置情報pは等速度運動モデルに対応するものであり、位置情報pは等加速度運動モデルに対応するものである。
,p、pはそれぞれ、以下のようにして求められる。
Figure 0004898464
Figure 0004898464
Figure 0004898464
また、姿勢情報についても同様である。即ち、生成する3つの姿勢情報はそれぞれ、姿勢静止モデル、等速度運動モデル、等加速度運動モデルに対応するものである。従って、姿勢情報qは姿勢姿勢モデルに対応するものであり、姿勢情報qは等速度運動モデルに対応するものであり、姿勢情報qは等加速度運動モデルに対応するものである。
,q、qはそれぞれ、以下のようにして求められる。
Figure 0004898464
Figure 0004898464
Figure 0004898464
ここで
Figure 0004898464
はクォータニオンqの共役クォータニオンを表す。
図13は、ステップS1040における位置及び姿勢の生成方法について説明する図である。図13では、位置P、p、pの生成方法を示している。図13に示すように、位置姿勢保存部170に保存されている位置情報Porg t-1, porg t-2, porg t-3(図中白丸にて示す)を用いて、位置情報p、p、p(図中三角形にて示す)が生成される。p、p、pはそれぞれ、静止モデル、等速度モデル、等加速度モデルに応じて生成される。この生成されたp、p,pを反復演算における初期値とし、ステップS1060において非線形最適化計算を行う。最適化の結果、異なる位置及び姿勢(図13では位置のみ黒丸で示している)が得られる。そして、これらの中から、最も適する位置及び姿勢がステップS1090で選択され、フレームtにおける位置及び姿勢として位置姿勢保存部170に保存される。
本ステップでは更に、位置姿勢生成部160は、p〜pから1つを選択したものと、q〜qから1つを選択したものとを組み合わせてセットにした場合に、全ての組み合わせについてセットを生成する。本実施形態の場合、St(1)=(p,q)、St(2)=(p,q)、St(3)=(p,q)、St(4)=(p,q)、St(5)=(p,q)、St(6)=(p,q)、St(7)=(p,q)、St(8)=(p,q)、St(9)=(p,q)の9(=M)セットが生成されることになる。
(ステップS1050)
次にステップS1050では、変数i(例えば、位置姿勢算出部140が有するレジスタ)の値を1に初期化する。
(ステップS1060)
ステップS1060では、非線形最適化計算を用いて、St(i)を構成する位置情報、姿勢情報を反復演算により補正することで、撮像装置100Lの位置及び姿勢を算出する。ここで、分割点DPjのうち、隠蔽されておらず、ステップS1030において対応点が求まった分割点の総数をNcとする。
図9は、エッジの情報を利用して撮像装置100Lの位置及び姿勢を算出する方法を説明する図である。図9では、現実空間画像の水平方向、垂直方向をそれぞれx軸、y軸としている。ある分割点の投影された画像座標を(u0,v0)、該分割点が所属する線分Lの現実空間画像上での傾きをx軸に対する傾きθと表す。傾きθは、線分の両端の3次元座標を、St(i)を構成する位置情報、姿勢情報に基づいて現実空間画像上に投影し、現実空間画像上での両端の座標を結んだ直線の傾きとして算出する。線分Lの現実空間画像上での法線ベクトルは(sinθ,−cosθ)となる。また、該分割点の対応点の画像座標を(u’,v’)とする。
ここで、点(u,v)を通り、傾きがθである直線の方程式は、
Figure 0004898464
と表せる。分割点が現実空間画像上に投影される座標は、撮像装置100Lの位置及び姿勢により変化する。また、撮像装置100Lの位置及び姿勢の自由度は6自由度である。ここで撮像装置100Lの位置及び姿勢を表すパラメータをsで表す。sは6次元ベクトルであり、撮像装置100Lの位置を表す3つの要素と、姿勢を表す3つの要素からなる。姿勢を表す3つの要素は、例えばオイラー角による表現や、方向が回転軸を表して大きさが回転角を表す3次元ベクトルなどによって表現される。分割点の画像座標(u,v)は(u,v)の近傍で1次のテイラー展開によって次の式9のように近似できる。
Figure 0004898464
u,vの偏微分∂u/∂s、∂v/∂sの導出方法は例えば非特許文献10に開示されているように、広く知られているのでここではその詳細な説明は省略する。
式9を式8に代入することにより、以下の式10を得る。
Figure 0004898464
ここで、式10に示す直線が該分割点の対応点の画像座標(u’,v’)を通過するように、撮像装置100Lの位置及び姿勢sの補正値Δsを算出する。r=usinθ−vcosθ(定数)、d=u’sinθ−v’cosθ(定数)とすると、
Figure 0004898464
が得られる。式11はNc個の分割点について成り立つため、式12のようなΔsに対する線形連立方程式が成り立つ。
Figure 0004898464
ここで、式12を以下の式13のように簡潔に表す。
Figure 0004898464
式13に基づいて、Gauss−Newton法などによって、行列Jの一般化逆行列(JT・J)−1を用いてΔsが求められる。しかしながら、エッジの検出には誤検出が多いので、次に述べるようなロバスト推定手法を用いる。一般に、誤検出されたエッジに対応する分割点では誤差(d−r)が大きくなる。そのため式12,13の連立方程式に対する寄与度が大きくなり、その結果得られるΔsの精度が低下してしまう。そこで、誤差(d−r)が大きい分割点のデータには小さな重みを与え、誤差(d−r)が小さい分割点のデータには大きな重みを与える。重みは例えば次の式14に示すようなTukeyの関数により与える。
Figure 0004898464
cは定数である。なお、重みを与える関数はTukeyの関数である必要はない。例えば、次式で示されるようなHuberの関数など、誤差(d−r)が大きい分割点には小さな重みを与え、誤差(d−r)が小さい分割点には大きな重みを与える関数であれば良い。
Figure 0004898464
分割点DPiに対応する重みをwiとする。ここで、式16のように重み行列Wを定義する。
Figure 0004898464
重み行列Wは、対角成分以外はすべて0のNc×Nc正方行列であり、対角成分には重みwiが入る。この重み行列Wを用いて、式13を式17のように変形する。
Figure 0004898464
そして式18のように式17を解くことにより、補正値Δsを求める。
Figure 0004898464
これにより得られたΔsを用いて、s+Δs→sというように、撮像装置100Lの位置及び姿勢を更新する。
次に、撮像装置100Lの位置及び姿勢の反復演算が収束しているかどうかを判定する。補正値Δsが十分に小さかったり、誤差(r−d)の総和が十分小さい、誤差(r−d)の総和が変化しないといった場合には、撮像装置100Lの位置及び姿勢の計算が収束したと判定する。収束していないと判定された場合には、更新された撮像装置100Lの位置及び姿勢を用いて再度、線分の傾きθ、r0、d、及びu、vの偏微分を計算し直し、式18に従って再度補正値Δsを求め直す。
なお、ここでは非線形最適化手法としてGauss−Newton法を用いた。しかしながら、非線形最適化手法はこれに限るものではなく、Newton−Raphson法、Levenberg−Marquardt法、最急降下法、共役勾配法などのその他の非線形最適化手法を用いてもよい。
(ステップS1070)
ステップS1070では、全てのセットSt(1)〜St(9)について、ステップS1060における処理を行ったか否かをチェックする。即ち、i=Mであるか否かをチェックする。係るチェックの結果、全てのセットSt(1)〜St(9)についてステップS1060における処理を行った場合(i=Mの場合)には処理をステップS1090に進める。一方、全てのセットSt(1)〜St(9)についてステップS1060における処理を行っていない場合(i<Mの場合)には処理をステップS1080に進める。
(ステップS1080)
ステップS1080では変数iの値を1つインクリメントする。
(ステップS1090)
ステップS1090では、位置姿勢選択部150は、ステップS1060において算出されたSt(1)〜St(9)のうち、最も妥当なものを一つ選択し、選択したセットを構成する位置情報、姿勢情報を位置姿勢保存部170に保存する。本実施形態では、位置及び姿勢の妥当性の評価尺度としてとして、上述したロバスト推定で用いられる重みの平均値を用いる。妥当性Cは次式により算出される。
Figure 0004898464
即ち、各セットについて係る妥当性C(評価値)を計算し、妥当性Cが最も大きいセットを構成する位置情報、姿勢情報を位置姿勢保存部170に保存する。
(ステップS1032)
ステップS1032では、位置姿勢保存部170には、k(1≦k<3)フレーム分の位置情報、姿勢情報しか格納されていないので、p〜p、q〜qを用いてステップS1040〜ステップS1090の処理を行う。即ち、位置姿勢保存部170に格納されている位置情報、姿勢情報が何フレーム分であるのかが異なる以外、ステップS1032において行う処理と、ステップS1040〜ステップS1090で行う処理とは実質的には同じである。
(ステップS1095)
ステップS1095では、図4のフローチャートに従った処理の終了指示が外部から入力された、若しくは終了する条件が満たされた場合には、本処理の終了させる。一方、終了指示は入力されていないし、終了する条件も満たされていない場合には、処理をステップS1020に戻し、以降の処理を繰り返す。
以上の説明により、本実施形態によれば、撮像装置100Lの高速な動きなどによって位置合わせが破綻することを回避することができ、自然特徴を利用した位置合わせの安定性を向上させることができる。
<変形例>
以上の説明では、各フレームにつきエッジ検出は一回しか行わなかった。すなわち、位置姿勢保存部170に保存された最新の位置情報、姿勢情報を用いて、エッジ検出を一回行っていた。しかしながら、エッジ検出は1フレームに一回だけ行うことに限るものではない。
エッジ検出処理にかける時間に余裕があれば、上記各セット毎にモデル投影を行って、エッジ検出を行ってもよい。上記各セット毎にエッジ検出を行うことによって、反復演算の収束性が向上することが期待されるため、位置姿勢計測の精度が向上する。
[第2の実施形態]
第1の実施形態では、フレーム毎に、1組の位置情報、姿勢情報を位置姿勢保存部170に格納していた。本実施形態では、フレーム毎に、複数組の位置情報、姿勢情報を位置姿勢保存部270に格納する。
なお、以下の説明において、特に触れないものについては、第1の実施形態と同じであるとする。
図10は、本実施形態に係る位置姿勢計測装置2の機能構成を示すブロック図である。同図において図1に示したものと同じものについては同じ番号を付けており、その説明は省略する。
位置姿勢保存部270は、過去数フレーム分の画像(例えば現フレームから過去3フレーム分の画像)のそれぞれについて、位置姿勢算出部140が算出した撮像装置100Lの複数の位置及び姿勢を保存する。なお、位置姿勢保存部270は、過去数フレーム分の画像(例えば現フレームから過去3フレーム分の画像)のそれぞれについて、位置姿勢算出部140が算出した撮像装置100Lの複数の位置及び姿勢のうち、最も妥当性の高いもの(主要位置、主要姿勢)を、その他のものとは識別可能なように保存している。
本実施形態では、位置姿勢保存部270には、1つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの複数の位置及び姿勢、2つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの複数の位置及び姿勢、3つ前のフレームにおいて位置姿勢算出部140が求めた撮像装置100Lの複数の位置及び姿勢、が保存されるものとする。もちろん、各フレームにおける主要位置、主要姿勢については、その他のものとは識別可能なように保存される。
なお、最初のフレームの画像(例えば1フレーム目の画像)を用いて算出された撮像装置100Lの位置及び姿勢を位置姿勢保存部270に保存する前には、第1の実施形態で説明したような初期化処理から得られる撮像装置100Lの初期位置及び初期姿勢をそれぞれ、主要位置、主要姿勢として保存しているものとする。
画像特徴検出部220は、位置姿勢保存部270に保存された主要位置、主要姿勢を用いて、第1の実施形態と同様の処理でもって、画像からエッジの検出を行う。
位置姿勢生成部260は、位置姿勢保存部270に保存されている複数の位置及び姿勢から、複数の位置及び姿勢を生成する。
位置姿勢選択部250は、位置姿勢算出部140が算出した複数の位置及び姿勢の中から、同一の位置及び姿勢と見なせるものを統合するとともに、最も妥当な位置及び姿勢を主要位置、主要姿勢として選択し、位置姿勢保存部270に保存する。また、妥当性が上位の複数の位置及び姿勢を位置姿勢保存部270に保存する。なお、位置姿勢選択部250が選択した主要位置及び主要姿勢を用いて、仮想物体20の画像が描画される。
次に、位置姿勢計測装置2が行う、撮像装置100Lの位置及び姿勢を求める処理について、同処理のフローチャートを示す図11を用いて説明する。
(ステップS2010)
ステップS2010では、位置姿勢保存部270に、撮像装置100Lの初期位置を示す初期位置情報、初期姿勢を示す初期姿勢情報をそれぞれ、主要位置情報、主要姿勢情報として格納する。本ステップにおいて行われる処理は上記ステップS1010と同じである。
(ステップS2020)
ステップS2020では、上記ステップS1020と同様に、撮像装置100Lが撮像した画像(現実空間画像)のデータを画像入力部110が取得し、後段の画像特徴検出部220に転送する。
(ステップS2030)
ステップS2030では、画像特徴検出部220は、位置姿勢保存部270に保存された主要位置、主要姿勢を用いて、上記ステップS1030と同様の処理でもって、画像からエッジの検出を行う。
(ステップS2031)
ステップS2031では、位置姿勢算出部140は、3フレーム分の位置情報、姿勢情報が位置姿勢保存部270に格納されているか否かをチェックする。係るチェックの結果、格納されている場合には処理をステップS2040に進める。一方、格納されていない場合には、処理をステップS2032に進める。
(ステップS2040)
次にステップS2040では先ず、位置姿勢生成部260は、位置姿勢保存部270に保存されている位置情報(porg t-1(j) (j=1,2,…,N)、porg t-2、porg t-3を用いて、複数の位置情報p(j) (i=1,2,…,I)を求める。なお、位置情報は第1の実施形態と同様、3次元空間における撮像装置100Lの位置を表す3次元ベクトルである。
ここで、porg t-1(j)は、1フレーム前において位置姿勢保存部270に保存されたN個の位置情報のうちj番目の位置情報である。位置情報porg t-1(j)には、1フレーム前における主要位置情報も含まれている。また、porg t-2は、2フレーム前において位置姿勢保存部270に保存された主要位置情報である。また、porg t-3は、3フレーム前において位置姿勢保存部270に保存された主要位置情報である。
また、位置姿勢生成部260は、位置姿勢保存部270に保存されている姿勢情報(qorg t-1(j) (j=1,2,…,N)、qorg t-2、qorg t-3を用いて、複数の姿勢情報q(j) (i=1,2,…,I)を求める。なお、姿勢情報は第1の実施形態と同様、撮像装置100Lの姿勢を表すクォータニオンである。
ここで、qorg t-1(j)は、1フレーム前において位置姿勢保存部270に保存されたN個の姿勢情報のうちj番目の姿勢情報である。姿勢情報qorg t-1(j)には、1フレーム前における主要姿勢情報も含まれている。また、qorg t-2は、2フレーム前において位置姿勢保存部270に保存された主要姿勢情報である。また、qorg t-3は、3フレーム前において位置姿勢保存部270に保存された主要姿勢情報である。
ここで、生成する位置情報、姿勢情報の数(I)は、第1の実施形態と同様、撮像装置100Lの動きモデルの数に対応させるので、I=3となる。
そして、各jについて、p(j)、p(j)、p(j)、q(j)、q(j)、q(j)を、第1の実施形態と同様にして求める。
即ち、p(j)は、porg t-1(j)のみを用いて求める。p(j)は、porg t-1(j)、porg t-2を用いて求める。p(j)は、porg t-1(j)、porg t-2、porg t-3を用いて求める。
また、姿勢情報についても同様に、q(j)は、qorg t-1(j)のみを用いて求める。q(j)は、qorg t-1(j)、qorg t-2を用いて求める。q(j)は、qorg t-1(j)、qorg t-2、qorg t-3を用いて求める。
本ステップでは更に、位置姿勢生成部160は、p(j)〜p(j)から1つを選択したものと、q(j)〜q(j)から1つを選択したものとを組み合わせてセットにした場合に、全ての組み合わせについてセットを生成する。本実施形態の場合、St(1)=(p(j),q(j))、St(2)=(p(j),q(j))、St(3)=(p(j),q(j))、St(4)=(p(j),q(j))、St(5)=(p(j),q(j))、St(6)=(p(j),q(j))、St(7)=(p(j),q(j))、St(8)=(p(j),q(j))、St(9)=(p(j),q(j))の9セットが生成されることになる。そして係るセットは、j=1〜Nの全てについて求めるので、結果としてセットは9×N(=M)個生成されることになる。
(ステップS2050)
ステップS2050では、変数iの値、変数jの値を共に1に初期化する。
(ステップS2060)
ステップS2060では、非線形最適化計算を用いて、St(i)を構成する位置情報、姿勢情報を反復演算により補正することで、撮像装置100Lの位置及び姿勢を算出する。係る処理については、上記ステップS1060と同様にして行う。
(ステップS2070)
ステップS2070では、i=9であるか否かをチェックする。係るチェックの結果、i=9である場合には処理をステップS2071に進め、i<9である場合には処理をステップS2080に進める。
(ステップS2080)
ステップS2080では、変数iの値を1つインクリメントし、処理をステップS2060に戻す。
(ステップS2071)
ステップS2071では、j=Nであるか否かをチェックする。係るチェックの結果、j=Nである場合には処理をステップS2090に進め、j<Nである場合には、処理をステップS2072に進める。
(ステップS2072)
ステップS2072では、変数jの値を1つインクリメントする。
(ステップS2073)
ステップS2073では、変数iの値を1に初期化し、処理をステップS2060に戻す。
(ステップS2090)
ステップS2090では、位置姿勢選択部250は、ステップS2060において算出されたM個の位置及び姿勢のうち、同一の位置及び姿勢と見なせるものについては統合する。そして、最も妥当な位置及び姿勢を選択し、主要位置情報、主要姿勢情報として位置姿勢保存部270に保存する。また、妥当性が上位の複数の位置及び姿勢を位置姿勢保存部270に保存する。
図12は、ステップS2090におけるの処理の詳細を示すフローチャートである。

先ずステップS2110では、位置姿勢選択部250は、ステップS2060において算出されたM個のセット(位置及び姿勢)のうち、位置姿勢保存部270に格納する数(最大値)T(上記Nに相当)を設定する。係る最大数Tは予め定められたものでも良いし、ユーザが適宜選択入力するようにしても良い。
次にステップS2120では、位置姿勢選択部250は、ステップS2060において算出されたM個のセットのそれぞれについて、上記式19に基づいて妥当性Cを求める。そして、このM個のセットを、妥当性Cの大きい順に並び替える。そして各セットの処理済みフラグFk(k=1,2,...,M)をFALSEにセットする。
次にステップS2130では、変数i、jのそれぞれの値を1に初期化する。
ステップS2140では、ソートされた各セットにおいて、j番目のセット中の位置及び姿勢と同一と見なせる位置及び姿勢を含むセットk(k=j+1,j+2,...,M)を探索し、検索したセットの処理済みフラグFkをTRUEにセットする。位置及び姿勢が同一かどうかは次のように判定する。
ここで、j番目のセットを構成する位置情報をp、姿勢情報をqと表す。更に、j番目のセットと比較する対象のセットを構成する位置情報をpcomp、姿勢情報をqcompと表す。
このような場合、2つの位置情報の差は次式のように2点間の距離として計算される。
Figure 0004898464
また、2つの姿勢情報の差はを次式のように算出する。まず次のようにクォータニオンqdifを算出する。
Figure 0004898464
difの回転角をθとした場合、クォータニオンqdifの実数部分adifはcos(θ/2)を表す。2つの姿勢の差を次式のように回転角θの絶対値として算出する。
Figure 0004898464
同一位置及び同一姿勢であるかどうかは、式20,22によって計算される値の両方が、予め設定した閾値より小さいか否かによって決定される。どちらも予め設定した閾値より小さければ、2つの位置及び姿勢は同一であるとみなす。
次にステップS2150では、セットk(k=j+1,j+2,...,M)の処理済みフラグがTRUEであるか否かをチェックする。係るチェックの結果、全てのセットの処理済みフラグがTRUEである場合には本処理を終了し、処理をステップS2095にリターンする。一方、処理済みフラグがTRUEではないセットが1つでも存在する場合には処理をステップS2160に進める。
次にステップS2160では、処理済みフラグがFALSEであり、且つj番目のセットに対する妥当性Cの次に高い妥当性Cを有するセットの、上記ソートによる最上位(j=1)からの順位を変数jにセットする。
ステップS2170では、変数iの値を1つインクリメントする。
次にステップS2180では、i>Tであるか否かをチェックする。係るチェックの結果、i>Tである場合には本処理を終了し、処理をステップS2095にリターンする。一方、i≦Tである場合には、処理をステップS2140に戻し、以降の処理を行う。
図12のフローチャートに従った処理の終了後、処理済みフラグがFALSEであるセットのうち、妥当性Cの大きいものから上位T個が、位置姿勢保存部270に保存される。なお、この保存されたT個のセットのうち、最も妥当性Cの大きいセットを構成する位置情報、姿勢情報がそれぞれ、主要位置情報、主要姿勢情報となる。
(ステップS2032)
ステップS2032では、位置姿勢保存部270には、k(1≦k<3)フレーム分の位置情報、姿勢情報しか格納されていないので、p(j)〜p(j)、q(j)〜q(j)を用いてステップS2040〜ステップS2090の処理を行う。即ち、位置姿勢保存部270に格納されている位置情報、姿勢情報が何フレーム分であるのかが異なる以外、ステップS2032において行う処理と、ステップS2040〜ステップS2090で行う処理とは実質的には同じである。
(ステップS2095)
図11に戻って、次にステップS2095では、図11のフローチャートに従った処理の終了指示が外部から入力された、若しくは終了する条件が満たされた場合には、本処理の終了させる。一方、終了指示は入力されていないし、終了する条件も満たされていない場合には、処理をステップS2020に戻し、以降の処理を繰り返す。
以上の説明により、本実施形態によれば、前フレームから得られる複数の位置及び姿勢をもとに複数の位置及び姿勢を発生させ、それぞれについて非線形最適化により撮像装置の位置及び姿勢を求め、その中から最も妥当な位置及び姿勢を選択することにより、位置姿勢算出が破綻することを防止することが可能になる。
<変形例>
第2の実施形態では、各フレームにつきエッジ検出は一回しか行わなかった。すなわち、位置姿勢保存部270に保存された主要位置姿勢に基づきエッジ検出を一回行っていた。しかしながら、エッジ検出は1フレームに一回に限るものではない。エッジ検出処理にかける時間に余裕があれば、位置姿勢生成部260にて生成された各位置及び姿勢に応じてモデル投影を行って、エッジ検出を行ってもよい。また、位置姿勢保存部270に保存されているN個の位置及び姿勢に基づいてモデル投影を行ってエッジ検出を行ってもよい。なるべく近い値の位置及び姿勢を用いてエッジ検出を行うことによって、反復演算の収束性が向上することが期待されるため、位置姿勢計測の精度が向上する。
[第3の実施形態]
以下に、各種の変形例を示す。
[変形例1]
第1,2の実施形態において、エッジ検出を行う際に、各分割点について一つのエッジを対応点として検出していた。しかしながら、検出される対応点の数は一つに限るものではなく、非特許文献4に示すように、複数のエッジを対応点候補として検出してもよい。
位置姿勢算出部140において、位置姿勢算出の際に、ある位置及び姿勢に基づいて画像上に投影された線分に最も近い対応点候補を用いる。複数の対応点候補を持ち反復演算の繰り返しステップごとに対応点を変化させることにより、初期値の精度が悪い場合に誤対応の影響を受けにくくなる。
[変形例2]
第1,2の実施形態において、位置姿勢選択部150、250は、位置及び姿勢の妥当性に基づいて、位置及び姿勢を選択するだけであった。しかしながら、最も妥当性の高い位置及び姿勢の妥当性が十分でない場合、即ち式19により算出される妥当性がある閾値以下の場合には、位置姿勢算出が破綻していると考えられるため、位置姿勢計測装置に再初期化処理を促してもよい。
再初期化処理は、例えば図4のステップS1010のような処理により自動的に行ってもよいし、ユーザに再初期化するように通知してもよい。これによって、位置姿勢算出が破綻しても、再初期化を行って再び位置姿勢算出を継続することが可能になる。
[変形例3]
第1,2の実施形態では、位置姿勢生成部160、260において、静止モデル、等速度/等角速度モデル、等加速度/等角加速度モデルといった運動モデルに基づいて位置及び姿勢を生成していた。しかしながら、位置及び姿勢の生成方法はこれに限るものではなく、例えば、位置姿勢保存部170、または270に保存されている位置及び姿勢を起点としたランダムな動きによって生成してもよい。また、上述の運動モデルと、ランダムな動きの両方から新たな位置及び姿勢を生成してもよい。その他、物体の動きを規定するものであればいかなる動きモデルであってもよい。
[変形例4]
第1,2の実施形態では、位置姿勢選択部150、250において、ロバスト推定の重みの平均値に基づいて位置及び姿勢の妥当性を決定していた。しかしながら、妥当性の決定方法はこれに限るものではない。
例えば、算出された位置及び姿勢を用いて再度3次元モデルの線分を描画し、該描画された線分と対応点との距離の総和を用いてもよい。また、前述の距離をロバスト推定の重みで重み付けした距離の総和を用いてもよい。さらには、前述の距離に閾値に対して閾値を設定し、該閾値より距離が小さい対応点の数を用いてもよい。また、重みが0でない分割点の総数、分割点の総数に対する重みが0でない分割点の割合などでもよい。このように計算された位置姿勢の妥当性を評価するものであればいかなる方法であってもよい。
[変形例5]
第1,2の実施形態では、同一位置であるかどうかの判定は二点間の距離、同一姿勢であるかどうかの判定は二つの姿勢の間の回転角の絶対値に基づいて行っていた。しかしながら、同一位置、同一姿勢の判定方法はこれに限るものではない。
例えば、姿勢を表すクォータニオンを4次元ベクトルと考えて、4次元ベクトルの距離に基づいて判定してもよい。また、姿勢をクォータニオンではなく3×3の回転行列で表して、2つの姿勢の間の相対姿勢を表す回転行列が、単位行列に近いかどうかにより判定してもよい。さらには、位置と姿勢を両方含む4×4の変換行列を用いて、2つの4×4変換行列の各要素の差分を用いて判定してもよい。このように、二つの位置と姿勢の差を測るものであれば、同一位置、同一姿勢の判定方法はいかなるものであってもよい。
[変形例6]
第1、2の実施形態では、自然特徴としてエッジを用いたが、これに限るものではない。例えば、Harris検出器や非特許文献8に示されるSIFT検出器などによって検出される点特徴を利用してもよい。この場合、3次元モデルとしては、点特徴の基準座標系における3次元位置と、特徴周辺における画像情報がモデルデータ保存部に保存される。また、自然特徴に限らず、人工的なマーカであっても良い。
[第4の実施形態]
図1,10にそれぞれ示した位置姿勢計測装置1,2を構成する各部は、第12の実施形態ではそれぞれハードウェアで構成されているものとして説明した。しかし、モデルデータ保存部130、位置姿勢保存部170、270を除く各部についてはソフトウェアでもって構成するようにしても良い。この場合、このソフトウェアをPC(パーソナルコンピュータ)等のコンピュータに読み込ませ、このコンピュータが有するCPUが係るソフトウェアを実行することで、このコンピュータは、第1,2の実施形態で説明したような動作を行うことになる。
図14は、位置姿勢計測装置1、2に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
1401はCPUで、RAM1402やROM1403に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、本コンピュータを適用する位置姿勢計測装置1、2が行う上記各処理を実行する。
1402はRAMで、外部記憶装置1406からロードされたプログラムやデータ、I/F(インターフェース)1407を介して撮像装置100Lから送出される各フレームの画像データを一時的に記憶するためのエリアを有する。また、CPU1401が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1402は各種のエリアを適宜提供することができる。
1403はROMで、本コンピュータの設定データや、ブートプログラムなどを格納する。
1404は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をCPU1401に対して入力することができる。
1405は表示部で、CRTや液晶画面等により構成されており、CPU1401による処理結果を画像や文字などでもって表示することができる。
1406は、ハードディスクドライブ装置に代表される大容量情報記憶装置として機能する外部記憶装置である。ここには、OS(オペレーティングシステム)や、図1,11に示したモデルデータ保存部130、位置姿勢保存部170、270を除く各部の機能をCPU1401に実行させるためのプログラムやデータなどが保存されている。また、予め設定されているものとして説明した情報、既知の情報として説明したものについても、この外部記憶装置1406に保存されてる。外部記憶装置1406に保存されているプログラムやデータはCPU1401による制御に従って適宜RAM1402にロードされる。CPU1401はこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは位置姿勢計測装置1、2が行う上述の各処理を実行することになる。
1407はI/Fで、上記撮像装置100Lを本コンピュータに接続するためのものであり、撮像装置100Lが撮像した動画像を構成する各フレームの画像データは、このI/F1407を介してRAM1402や外部記憶装置1406に送出される。
1408は上述の各部を繋ぐバスである。
なお、図14に示した構成は一例であり、係る構成に限定するものではない。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
本発明の第1の実施形態に係る位置姿勢計測装置1の機能構成を示すブロック図である。 撮像装置100L、100Rを装着したユーザと、このユーザが観察する空間とを模式的に示した図である。 本発明の第1の実施形態における3次元モデルの定義方法を説明する図である。 位置姿勢計測装置1が行う、撮像装置100Lの位置及び姿勢を求める処理のフローチャートである。 ステップS1030における処理の詳細を示すフローチャートである。 ステップS1110において行われる、現実空間画像上への3次元モデルの投影を示す図である。 3次元モデルの現実空間画像上での分割点を示す図である。 本発明の第1の実施形態におけるエッジ検出方法を説明する図である。 エッジの情報を利用して撮像装置100Lの位置及び姿勢を算出する方法を説明する図である。 本発明の第2の実施形態に係る位置姿勢計測装置2の機能構成を示すブロック図である。 位置姿勢計測装置2が行う、撮像装置100Lの位置及び姿勢を求める処理のフローチャートである。 ステップS2090におけるの処理の詳細を示すフローチャートである。 ステップS1040における位置及び姿勢の生成方法について説明する図である。 位置姿勢計測装置1、2に適用可能なコンピュータのハードウェア構成例を示すブロック図である。

Claims (16)

  1. 現実空間の動画像を撮像する撮像装置に接続されている情報処理装置であって、
    前記動画像を構成する各フレームの画像を前記撮像装置から取得する毎に、取得したフレームの画像の撮像時における前記撮像装置の撮像位置、撮像姿勢を求める計算手段と、
    前記計算手段が求めた撮像位置及び撮像姿勢を示す撮像位置姿勢情報を、メモリに記録する記録手段とを備え、
    前記計算手段は、
    前記メモリに記録されている複数の撮像位置姿勢情報に基づいて、予め設定された個数の候補位置姿勢情報を求める候補位置姿勢算出手段と、
    前記取得したフレームの画像中における観察対象物体の画像特徴を検出する検出手段と、
    前記候補位置姿勢算出手段が求めたそれぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報からそれぞれ異なる候補位置情報及び候補姿勢情報の組み合わせを複数個生成し、該生成した複数個の組み合わせと前記画像特徴に対応する既知の3次元情報とから推定される該画像特徴の前記取得したフレームの画像中における推定位置と、前記検出手段による前記画像特徴の検出位置と、の誤差に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報の補正値を算出し、該補正値に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報を補正する補正手段と、
    前記補正手段が補正した前記それぞれの候補位置姿勢情報について評価値を求め、求めたそれぞれの評価値に基づいて、該それぞれの候補位置姿勢情報のうち1つを選択する選択手段とを備え、
    前記記録手段は、
    前記選択手段が選択した候補位置姿勢情報を、前記撮像位置姿勢情報として前記メモリに記録する
    ことを特徴とする情報処理装置。
  2. 前記候補位置姿勢算出手段は、複数の動きモデルに基づいて候補位置姿勢情報を求めることを特徴とする請求項1に記載の情報処理装置。
  3. 前記候補位置姿勢算出手段は、位置と姿勢について同一または異なる動きモデルを用いて独立に候補位置情報及び候補姿勢情報を求めて候補位置姿勢情報とすることを特徴とする請求項2に記載の情報処理装置。
  4. 前記動きモデルには、静止、等速度、等加速度、ランダムが含まれていることを特徴とする請求項2乃至3の何れか1項に記載の情報処理装置。
  5. 前記補正手段は、前記それぞれの候補位置姿勢情報について、
    前記補正値の算出の際に、画像特徴毎に前記誤差の大小に応じた重みを求めることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記選択手段は、前記それぞれの候補位置姿勢情報について、前記重みの平均値を前記評価値として算出し、当該平均値の最も大きい候補位置姿勢情報を選択することを特徴とする請求項に記載の情報処理装置。
  7. 前記選択手段は、前記補正手段によって補正されたそれぞれの候補位置姿勢情報を用いて3次モデルの線分を描画して得られる画像上の該線分の画像特徴の位置と、前記取得したフレームの画像中における画像特徴の位置と、の距離の総和を求め、該総和を用いて、候補位置姿勢情報を選択することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  8. 前記選択手段は、前記補正手段によって補正されたそれぞれの候補位置姿勢情報を用いて3次モデルの線分を描画して得られる画像上の該線分の画像特徴の位置と、前記取得したフレームの画像中における画像特徴の位置と、の距離の総和を求め、該総和に前記重みを乗じた値を算出し、該算出した値を用いて候補位置姿勢情報を選択することを特徴とする請求項5に記載の情報処理装置。
  9. 前記補正手段は、前記評価値が所定の値以下の場合に、再初期化処理を行うことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記画像特徴は、画像中におけるエッジであり、前記3次元情報は当該エッジの集合によって表現されるものであることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 現実空間の動画像を撮像する撮像装置に接続されている情報処理装置であって、
    前記動画像を構成する各フレームの画像を前記撮像装置から取得する毎に、取得したフレームの画像の撮像時における前記撮像装置の撮像位置、撮像姿勢の候補として予め設定された個数の撮像位置、撮像姿勢を求める計算手段と、
    前記予め設定された個数の撮像位置及び撮像姿勢を示す撮像位置姿勢情報を、メモリに記録する記録手段とを備え、
    前記計算手段は、
    前記メモリに記録されている複数の撮像位置姿勢情報に基づいて、予め設定された個数の候補位置姿勢情報を求める候補位置姿勢算出手段と、
    前記取得したフレームの画像中における観察対象物体の画像特徴を検出する検出手段と、
    前記候補位置姿勢算出手段が求めたそれぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報からそれぞれ異なる候補位置情報及び候補姿勢情報の組み合わせを複数個生成し、該生成した複数個の組み合わせと前記画像特徴に対応する既知の3次元情報とから推定される該画像特徴の前記取得したフレームの画像中における推定位置と、前記検出手段による前記画像特徴の検出位置と、の誤差に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報の補正値を算出し、該補正値に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報を補正する補正手段と、
    前記補正手段が補正した前記それぞれの候補位置姿勢情報について評価値を求め、求めたそれぞれの評価値に基づいて、該それぞれの候補位置姿勢情報のうち予め設定された個数の候補位置姿勢情報を選択する選択手段とを備え、
    前記記録手段は、
    前記選択手段が選択した予め設定された個数の候補位置姿勢情報を、最も評価値の大きい候補位置姿勢情報とそれ以外の候補位置姿勢情報とを区別して、前記撮像位置姿勢情報として前記メモリに記録する
    ことを特徴とする情報処理装置。
  12. 前記選択手段は、参照した候補位置姿勢情報が示す位置及び姿勢に近い位置、姿勢を有するものとして判断された候補位置姿勢情報を、被統合候補位置姿勢情報として前記参照した候補位置姿勢情報に統合し、
    前記被統合候補位置姿勢情報以外の候補位置姿勢情報のうち、評価値の大きいものから上位予め設定された個数分の候補位置姿勢情報を選択することを特徴とする請求項11に記載の情報処理装置。
  13. 現実空間の動画像を撮像する撮像装置に接続されている情報処理装置が行う情報処理方法であって、
    前記動画像を構成する各フレームの画像を前記撮像装置から取得する毎に、取得したフレームの画像の撮像時における前記撮像装置の撮像位置、撮像姿勢を求める計算工程と、
    前記計算工程で求めた撮像位置及び撮像姿勢を示す撮像位置姿勢情報を、メモリに記録する記録工程とを備え、
    前記計算工程は、
    前記メモリに記録されている複数の撮像位置姿勢情報に基づいて、予め設定された個数の候補位置姿勢情報を求める候補位置姿勢算出工程と、
    前記取得したフレームの画像中における観察対象物体の画像特徴を検出する検出工程と、
    前記候補位置姿勢算出工程で求めたそれぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報からそれぞれ異なる候補位置情報及び候補姿勢情報の組み合わせを複数個生成し、該生成した複数個の組み合わせと前記画像特徴に対応する既知の3次元情報とから推定される該画像特徴の前記取得したフレームの画像中における推定位置と、前記検出工程による前記画像特徴の検出位置と、の誤差に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報の補正値を算出し、該補正値に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報を補正する補正工程と、
    前記補正工程で補正した前記それぞれの候補位置姿勢情報について評価値を求め、求めたそれぞれの評価値に基づいて、該それぞれの候補位置姿勢情報のうち1つを選択する選択工程とを備え、
    前記記録工程は、
    前記選択工程で選択した候補位置姿勢情報を、前記撮像位置姿勢情報として前記メモリに記録する
    ことを特徴とする情報処理方法。
  14. 現実空間の動画像を撮像する撮像装置に接続されている情報処理装置が行う情報処理方法であって、
    前記動画像を構成する各フレームの画像を前記撮像装置から取得する毎に、取得したフレームの画像の撮像時における前記撮像装置の撮像位置、撮像姿勢の候補として予め設定された個数の撮像位置、撮像姿勢を求める計算工程と、
    前記予め設定された個数の撮像位置及び撮像姿勢を示す撮像位置姿勢情報を、メモリに記録する記録工程とを備え、
    前記計算工程は、
    前記メモリに記録されている複数の撮像位置姿勢情報に基づいて、予め設定された個数の候補位置姿勢情報を求める候補位置姿勢算出工程と、
    前記取得したフレームの画像中における観察対象物体の画像特徴を検出する検出工程と、
    前記候補位置姿勢算出工程で求めたそれぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報からそれぞれ異なる候補位置情報及び候補姿勢情報の組み合わせを複数個生成し、該生成した複数個の組み合わせと前記画像特徴に対応する既知の3次元情報とから推定される該画像特徴の前記取得したフレームの画像中における推定位置と、前記検出工程による前記画像特徴の検出位置と、の誤差に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報の補正値を算出し、該補正値に基づいて、前記それぞれの候補位置姿勢情報を構成する候補位置情報及び候補姿勢情報を補正する補正工程と、
    前記補正工程で補正した前記それぞれの候補位置姿勢情報について評価値を求め、求めたそれぞれの評価値に基づいて、該それぞれの候補位置姿勢情報のうち予め設定された個数の候補位置姿勢情報を選択する選択工程とを備え、
    前記記録工程は、
    前記選択工程で選択した予め設定された個数の候補位置姿勢情報を、最も評価値の大きい候補位置姿勢情報とそれ以外の候補位置姿勢情報とを区別して、前記撮像位置姿勢情報として前記メモリに記録する
    ことを特徴とする情報処理方法。
  15. コンピュータに請求項13又は14に記載の情報処理方法を実行させるためのコンピュータプログラム。
  16. 請求項15に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
JP2007008496A 2007-01-17 2007-01-17 情報処理装置および方法 Expired - Fee Related JP4898464B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007008496A JP4898464B2 (ja) 2007-01-17 2007-01-17 情報処理装置および方法
US12/013,123 US8391589B2 (en) 2007-01-17 2008-01-11 Information processing apparatus and method for calculating the position and orientation of an image sensing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007008496A JP4898464B2 (ja) 2007-01-17 2007-01-17 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2008176509A JP2008176509A (ja) 2008-07-31
JP4898464B2 true JP4898464B2 (ja) 2012-03-14

Family

ID=39618418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007008496A Expired - Fee Related JP4898464B2 (ja) 2007-01-17 2007-01-17 情報処理装置および方法

Country Status (2)

Country Link
US (1) US8391589B2 (ja)
JP (1) JP4898464B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI493506B (zh) * 2009-06-09 2015-07-21 Univ Nat Taiwan 三維指標裝置及三維指標裝置定位方法
JP5393318B2 (ja) * 2009-07-28 2014-01-22 キヤノン株式会社 位置姿勢計測方法及び装置
JP5746477B2 (ja) * 2010-02-26 2015-07-08 キヤノン株式会社 モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
KR101856947B1 (ko) 2011-10-07 2018-05-11 삼성전자주식회사 촬영장치, 움직임 추정장치, 영상 보정 방법, 움직임 추정방법 및 컴퓨터 판독가능 기록매체
JP6083857B2 (ja) * 2012-11-26 2017-02-22 Kddi株式会社 情報端末装置
JP5693691B2 (ja) * 2013-10-21 2015-04-01 キヤノン株式会社 情報処理装置、その処理方法及びプログラム
US10311595B2 (en) * 2013-11-19 2019-06-04 Canon Kabushiki Kaisha Image processing device and its control method, imaging apparatus, and storage medium
US10043319B2 (en) 2014-11-16 2018-08-07 Eonite Perception Inc. Optimizing head mounted displays for augmented reality
US10636168B2 (en) 2015-06-12 2020-04-28 Sony Corporation Image processing apparatus, method, and program
US11017712B2 (en) 2016-08-12 2021-05-25 Intel Corporation Optimized display image rendering
US9928660B1 (en) 2016-09-12 2018-03-27 Intel Corporation Hybrid rendering for a wearable display attached to a tethered computer
JP6842039B2 (ja) 2017-03-02 2021-03-17 富士通株式会社 カメラ位置姿勢推定装置、方法およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307959B1 (en) * 1999-07-14 2001-10-23 Sarnoff Corporation Method and apparatus for estimating scene structure and ego-motion from multiple images of a scene using correlation
JP4144888B2 (ja) * 2005-04-01 2008-09-03 キヤノン株式会社 画像処理方法、画像処理装置
US8305430B2 (en) * 2005-09-16 2012-11-06 Sri International System and method for multi-camera visual odometry
JP4916167B2 (ja) * 2005-12-15 2012-04-11 キヤノン株式会社 指標識別方法及び指標識別装置

Also Published As

Publication number Publication date
JP2008176509A (ja) 2008-07-31
US20080172201A1 (en) 2008-07-17
US8391589B2 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
JP4898464B2 (ja) 情報処理装置および方法
JP5111210B2 (ja) 画像処理装置、画像処理方法
JP4789745B2 (ja) 画像処理装置および方法
JP2010134649A (ja) 情報処理装置、その処理方法及びプログラム
JP5388932B2 (ja) 情報処理装置およびその制御方法
JP4976756B2 (ja) 情報処理方法および装置
JP5290864B2 (ja) 位置姿勢推定装置及び方法
JP4136859B2 (ja) 位置姿勢計測方法
US9355453B2 (en) Three-dimensional measurement apparatus, model generation apparatus, processing method thereof, and non-transitory computer-readable storage medium
JP5618569B2 (ja) 位置姿勢推定装置及びその方法
JP5058686B2 (ja) 情報処理方法及び情報処理装置
JP4926817B2 (ja) 指標配置情報計測装置および方法
JP5290865B2 (ja) 位置姿勢推定方法および装置
JP6744747B2 (ja) 情報処理装置およびその制御方法
JP6762913B2 (ja) 情報処理装置、情報処理方法
JP5693691B2 (ja) 情報処理装置、その処理方法及びプログラム
JP7379065B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP5726024B2 (ja) 情報処理方法および装置
JP6109213B2 (ja) 情報処理装置および方法、プログラム
JP7029501B2 (ja) 情報処理装置、情報処理方法
EP4292777A1 (en) Assistance system, image processing device, assistance method and program
van Liere et al. An Experimental Comparison of Three Optical Trackers for Model Based Pose Determination in Virtual Reality.
Gava et al. A Unifying Structure from Motion Framework for Central Projection Cameras

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

R151 Written notification of patent or utility model registration

Ref document number: 4898464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees