JP2007271564A - 位置姿勢計測方法、位置姿勢計測装置 - Google Patents

位置姿勢計測方法、位置姿勢計測装置 Download PDF

Info

Publication number
JP2007271564A
JP2007271564A JP2006100388A JP2006100388A JP2007271564A JP 2007271564 A JP2007271564 A JP 2007271564A JP 2006100388 A JP2006100388 A JP 2006100388A JP 2006100388 A JP2006100388 A JP 2006100388A JP 2007271564 A JP2007271564 A JP 2007271564A
Authority
JP
Japan
Prior art keywords
index
orientation
image
imaging device
calculating
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.)
Granted
Application number
JP2006100388A
Other languages
English (en)
Other versions
JP5063023B2 (ja
JP2007271564A5 (ja
Inventor
Kiyohide Sato
清秀 佐藤
Shinichi Araya
真一 荒谷
Shinji Uchiyama
晋二 内山
Kenji Morita
憲司 守田
Rika Takemoto
利果 武本
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 JP2006100388A priority Critical patent/JP5063023B2/ja
Priority to US11/690,914 priority patent/US7860345B2/en
Publication of JP2007271564A publication Critical patent/JP2007271564A/ja
Publication of JP2007271564A5 publication Critical patent/JP2007271564A5/ja
Application granted granted Critical
Publication of JP5063023B2 publication Critical patent/JP5063023B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

【課題】 撮像画像を用いて計測対象物の位置や姿勢などを計測する際に、フレーム間の整合性と移動への追従性とを両立した計測技術を提供すること。
【解決手段】 注目フレーム画像中の全指標の座標位置を用いて撮像装置の位置姿勢の第1推定値を求める。注目フレーム画像中の第1指標群と前フレーム画像中の第2指標群とで同じ固有情報を有する指標を共通指標として検出する。第2指標群の固有情報のうち第1指標群の固有情報とは異なる固有情報が存在する場合、前フレーム画像中の共通指標の座標位置を用いて撮像装置の位置姿勢の第2推定値を求める。第1指標群の固有情報のうち第2指標群の固有情報と異なる固有情報が存在する場合、注目フレーム画像中の共通指標の座標位置を用いて撮像装置の位置姿勢の第3推定値を求める。第1乃至3推定値のうち求められたものに基づいて求める補正量を用いて第1の推定値を補正する。
【選択図】 図1

Description

本発明は、撮像装置の位置姿勢を求めるための技術に関するものである。
現実空間に文字やCG映像を重畳して提示する複合現実感に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、ビデオカメラ等で撮影した画像にカメラの位置及び姿勢に応じて生成した画像を重畳描画し、これを表示する。
このような画像表示装置を実現するには、現実空間中に定義した基準座標系と、カメラ座標系との間の、相対的な位置及び姿勢を計測することが不可欠である。例として、室内やテーブル上といった現実環境の所定位置に仮想物体を重畳表示する場合を考える。この場合は、その環境の適切な場所(例えば部屋の床面やテーブル面)に基準座標系を定義し、基準座標系におけるカメラの位置及び姿勢を求めればよい。
このような計測を実現するために、カメラが撮影した画像を利用して、カメラの位置及び姿勢を推定することが一般的に行われている(非特許文献1,非特許文献2,非特許文献3を参照)。例えば、以下の手順によって、基準座標系におけるカメラの位置及び姿勢を計測することができる。
(1) 室内の床や壁、テーブル面等に、基準座標系における位置(基準座標)が既知である複数の指標を配置あるいは設定する。ここで、指標とは、計測のために意図的に設置された人為的なマーカであってもよいし、元々その環境に存在している自然特徴などであってもよい。
(2) カメラが撮影した撮像画像内における指標の投影像の座標を検出する。
(3) 検出された指標の画像座標と、この指標の基準座標との対応関係に基づいて、カメラの位置及び姿勢を求める。
(従来例1)
上記の(3)の工程を実現する代表的な方法のひとつに、繰り返し演算によって指標の再投影誤差を最小化する非線形最適化手法がある(非特許文献1を参照)。この手法では、カメラの位置及び姿勢の推定値と各指標の基準座標に基づいて、この指標の画像座標の計算上の値(理論座標)が算出される。そして、この理論座標が指標の実際の検出座標に極力近づくように、カメラの位置及び姿勢の推定値に補正が加えられる。この理論座標の算出と推定値の補正を繰り返し行うことで、最適な位置及び姿勢が算出される。連続的に撮影される時系列画像に対してカメラの位置及び姿勢を求める場合には、入力されたフレーム毎に上述の最適化処理を実行する。これによって、個々のフレームにおいて最適な位置及び姿勢を算出する。
(従来例2)
一方、時系列画像におけるフレーム間の連続性を加味しながら上記の(3)の工程を実現する方法も提案されている。例えば、「前フレームでの位置及び姿勢から大きく外れない」という拘束条件を前述の非線形最適化手法に組み込むことで、フレーム間の連続性を極力維持しながら誤差最小化を行う手法が提案されている(非特許文献2を参照)。
(従来例3)
また、拡張カルマンフィルタを用いてカメラの位置及び姿勢を連続的に求めることが一般的に行われている(非特許文献3を参照)。拡張カルマンフィルタを利用する方法では、カメラの運動モデルが、等速度・等角速度運動、あるいは、等加速度・等角加速度運動といった仮定を用いてモデル化される。拡張カルマンフィルタの状態変数の構成要素としては、カメラの位置、姿勢、速度、加速度、角速度等が設定される。また、観測値として、各フレームにおける指標の画像座標と基準座標の組が入力される。拡張カルマンフィルタを用いた手法では、あるフレームにおいて出力される位置及び姿勢は、そのフレームの観測値だけでなく、仮定した運動モデルに基づいて、過去の状態の影響を受けたものとなる。仮定した運動モデルに対して実際のカメラの動きが大きく異なっていなければ、フレーム間の整合性が取れた状態で位置及び姿勢の推定値が変動し、時系列上でスムーズな動きを得ることができる。
(従来例4)
また、位置姿勢センサをカメラに装着することでカメラの位置及び姿勢を直接計測し、さらに、撮影した指標を利用してその誤差を補正することが行われている。特許文献1では、フレーム間で異なる補正値が得られた場合の不連続性を回避するために、複数フレームで求めた補正値を平均化した後に適用する工夫がなされている。
佐藤,内山,山本:UG+B法:主観及び客観視点カメラと姿勢センサを用いた位置合わせ手法,日本バーチャルリアリティ学会論文誌,vol.10, no.3, pp.391-400, 2005. I. Skrypnyk and D. Lowe: "Scene modeling, recognition and tracking with invariant image features," Proc. 3rd International Symposium on Mixed and Augmented Reality (ISMAR’04), pp.110-119, 2004. J. Park, B. Jiang, and U. Neumann: "Vision-based pose computation: robust and accurate augmented reality tracking," Proc. 2nd International Workshop on Augmented Reality (IWAR’99), pp.3-12, 1999. 特開2005-107247号公報
指標の再投影誤差を最小化する位置及び姿勢をフレーム毎に算出するアプローチ(従来例1)には、フレーム間の整合性の面で改善の余地がある。特に、撮影されている指標の組み合わせがフレーム間で異なる状況下において、前後のフレームで出力される位置及び姿勢の間に不連続性が生じる場合がある。これは、個々のフレームで得られる位置及び姿勢は誤差を含むものであり、入力される指標の組み合わせが変化することで、誤差の振る舞いが変化するためと考えられる。
一方、フレーム間の連続性を考慮する最適化手法(従来例2)では、過去に得られた位置及び姿勢に対する慣性力が働くので、カメラが急激に移動する状況に追従できない場合がある。拡張カルマンフィルタを用いる方法(従来例3)においても、カメラの速度や加速度が急激に変化する状況では、追従が困難であったり、オーバーシュートが発生したりする場合がある。これは、実際のカメラの動きが、仮定した運動モデルから大きく外れてしまうためである。このような状況が生じている区間においては、位置及び姿勢の計測精度が低下してしまう。
また、従来例4は、位置姿勢センサの計測誤差を「補正」することが目的なので、指標のみを利用して位置姿勢を計測する場合には適用できない。
本発明は以上の問題に鑑みてなされたものであり、撮像画像を用いて計測対象物の位置や姿勢などを計測する際に、フレーム間の整合性と移動への追従性とを両立した計測技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測方法は以下の構成を備える。
即ち、撮像装置から画像を入力する画像入力工程と、
前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
現在のフレームにおいて前記指標検出工程で検出された現在の指標の画像座標に関する情報を用いて、前記撮像装置の位置及び姿勢を算出する位置姿勢算出工程と、
過去のフレームにおいて前記撮像装置の位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置姿勢推定値のフレーム間での不連続性を緩和する位置及び姿勢の補正値を算出する補正値算出工程と、
前記補正値算出工程で算出した補正値を用いて、前記位置姿勢算出工程で算出した位置及び姿勢を補正する位置姿勢補正工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測方法は以下の構成を備える。
即ち、撮像装置から画像を入力する画像入力工程と、
前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
前記現在の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
前記第一の位置及び姿勢と前記第二の位置及び姿勢とを用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測方法は以下の構成を備える。
即ち、撮像装置から画像を入力する画像入力工程と、
前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
前記過去の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
前記第一の位置及び姿勢と前記第二の位置及び姿勢とを用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測方法は以下の構成を備える。
即ち、撮像装置から画像を入力する画像入力工程と、
前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
前記現在の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
前記過去の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第三の位置及び姿勢を算出する第三の位置姿勢算出工程と、
前記第一、第二、第三の位置及び姿勢を用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測方法は以下の構成を備える。
即ち、計測対象を撮影する1台以上の撮像装置から画像を入力する画像入力工程と、
前記計測対象上に存在する指標を前記画像から検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
現在のフレームにおいて前記指標検出工程で検出された現在の指標の画像座標に関する情報を用いて、前記計測対象の位置あるいは位置及び姿勢を算出する位置姿勢算出工程と、
過去のフレームにおいて前記計測対象の位置あるいは位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置あるいは位置姿勢推定値のフレーム間での不連続性を緩和する位置あるいは位置及び姿勢の補正値を算出する補正値算出工程と、
前記補正値算出工程で算出した補正値を用いて、前記位置姿勢算出工程で算出した位置あるいは位置及び姿勢を補正する位置姿勢補正工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測装置は以下の構成を備える。
即ち、撮像装置から画像を入力する画像入力手段と、
前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出手段と、
現在のフレームにおいて前記指標検出手段で検出された現在の指標の画像座標に関する情報を用いて、前記撮像装置の位置及び姿勢を算出する位置姿勢算出手段と、
過去のフレームにおいて前記撮像装置の位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置姿勢推定値のフレーム間での不連続性を緩和する位置及び姿勢の補正値を算出する補正値算出手段と、
前記補正値算出手段が算出した補正値を用いて、前記位置姿勢算出手段が算出した位置及び姿勢を補正する位置姿勢補正手段と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の位置姿勢計測装置は以下の構成を備える。
即ち、計測対象を撮影する1台以上の撮像装置と、
前記撮像装置から画像を入力する画像入力手段と、
前記計測対象上に存在する指標を前記画像から検出し、当該指標の画像座標に関する情報を取得する指標検出手段と、
現在のフレームにおいて前記指標検出手段で検出された現在の指標の画像座標に関する情報を用いて、前記計測対象の位置あるいは位置及び姿勢を算出する位置姿勢算出手段と、
過去のフレームにおいて前記計測対象の位置あるいは位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置あるいは位置姿勢推定値のフレーム間での不連続性を緩和する位置あるいは位置及び姿勢の補正値を算出する補正値算出手段と、
前記補正値算出手段が算出した補正値を用いて、前記位置姿勢算出手段が算出した位置あるいは位置及び姿勢を補正する位置姿勢補正手段と
を有することを特徴とする。
本発明の構成により、計測対象物体の位置や姿勢の計測を、フレーム間における指標の出現や消失を考慮しながら実行することができる。また、整合性を維持するための処理を、指標の組み合わせの変化分によって生じるずれに対してのみ行うので、急激な移動にも追従可能であり、フレーム間の整合性と移動への追従性を両立した計測を実現できる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
本実施形態では、撮像装置が撮像した現実空間の動画像を用いて、この撮像装置の位置姿勢の計測を行う。図1は、撮像装置の位置姿勢を計測するための本実施形態に係るシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、撮像装置150、情報処理装置100により構成されている。更に、情報処理装置100は、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140により構成されている。
先ず、本実施形態に係るシステムが配置される環境(現実空間)について説明する。同図に示す如く、現実空間中には、所定の1点を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする基準座標系が定義されている。更に、この現実空間中には、基準座標系における位置が既知である複数個の指標Qk(k=1,2,・・・,K)が配置されている。ここで、kは個々の指標に固有の識別子を表している。また、Kは配置されている指標の総数を表している。指標Qkは、例えば、それぞれが異なる色を有する同一形状のマーカによって構成してもよい。また、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成してもよい。また、ある程度の面積を有する矩形領域によって形成されるような、四角形指標を用いることも可能である。
即ち、指標として用いることができるものは、指標が存在する現実空間の画像を撮像した場合に、この画像上に位置するそれぞれの指標の識別子が識別可能であり、且つ画像上における指標座標位置が検出可能であれば、如何なるものを用いても良い。
また、指標は故意に設定されたものであっても良いし、故意に設定されたものではない自然形状のものを用いても良い。また、指標は、異なる性質のものを混在して用いてもよい。図1の場合には、7個の四角形指標Q1〜Q7が配置されている。
次に、本実施形態に係るシステムを構成している各部について説明する。
撮像装置150は、現実空間の動画像が撮像可能なカメラであり、例えば、ディジタルビデオカメラである。ここで、撮像装置150には、所定の1点(例えばレンズ焦点)を原点とし、視線方向を−Z軸、Z軸に直交してかつ互いに直交する2軸をX軸、Y軸とするカメラ座標系が定義されている。詳しくは後述するが、情報処理装置100は、基準座標系に対するこのカメラ座標系の位置姿勢を、撮像装置150の位置姿勢として計測する。
撮像装置150が撮像した各フレームの画像(現実空間の画像)は、画像信号として情報処理装置100が有する画像入力部110に入力される。画像入力部110は、入力された各フレームの画像信号をディジタルデータに変換し、後段の指標検出部120に送出する。即ち、画像入力部110は、各フレームの画像データを指標検出部120に供給することになる。
指標検出部120は、画像入力部110から入力された各フレームについて、画像中に位置している全ての指標を検出する処理を行う。より詳しくは、画像中に位置している指標(指標Q)を識別し、その指標の識別子を特定する。更に、画像中に位置する指標の画像座標を検出する。そして指標検出部120は、検出されたそれぞれの指標の識別子とその画像座標を、指標選択部130へと出力する。
指標の検出は、使用する指標の種類に応じた方法で行われる。例えば、指標の各々が異なる色を有するマーカによって構成されている場合には、画像上から各々のマーカ色に対応する領域を検出する。そして、その重心位置を指標の検出座標とする。また、指標の各々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、テンプレート画像を用いたテンプレートマッチングによって指標の位置を検出する。この場合、各々の指標のテンプレート画像は、既知の情報として予め保持しておく。
また、四角形指標を用いる場合は、画像に2値化処理及びラベリング処理を施し、4つの直線によって形成されているラベル領域を指標候補として検出する。さらに、各指標候補の矩形領域の中に特定のパターンがあるか否かを判定することによって誤検出の排除を行う。また、矩形領域中のパターンによって、指標の識別子を取得する。矩形領域の4頂点の座標が、指標の位置として出力される。
何れにせよ、画像中における指標の識別子、及びその画像座標を特定する方法については従来より様々な方法があるので、何れの方法を用いても良い。なお、以下では、検出指標の夫々に通し番号n(n=1,,,N)をつけ、画像上で検出された指標の識別子をknと表記する。ここで、Nは画像上で検出された指標の総数を表している。
図3は、撮像装置150が撮像した連続する2つのフレームの画像の例を示す図である。画像410をi番目のフレームの画像、画像420を(i+1)番目のフレームの画像と考える。画像410上には指標Q2,Q3,Q4が、画像420上には指標Q2,Q4,Q6が位置している。指標検出部120に画像420が入力された場合を考えると、指標検出部120からは、検出された夫々の指標の識別子(k1=2,k2=4,k3=6)と、画像420上における画像座標(四角形指標の場合は、夫々の指標毎に4点の座標)が出力される。
図1に戻って、指標選択部130は、指標検出部120から検出指標の識別子と画像座標を入力し、フレーム間での指標の消失・出現を監視し、撮像装置150の位置姿勢の計算のために必要な情報を選択し、位置姿勢算出部140へと出力する。
図2は、指標選択部130の機能構成を示すブロック図である。同図に示す如く、指標選択部130は、データ蓄積部210、データ比較部220によって構成されている。
データ蓄積部210は、指標検出部120から検出指標の識別子と画像座標のセットを受けると、これを複数のフレームに渡って格納する。従って、データ蓄積部210には、画像上におけるそれぞれの指標の識別子、画像座標のセットが、各フレームの画像毎に保持されていることになる。
データ比較部220は、データ蓄積部210から、注目フレームの画像上に位置する指標の識別子と、注目フレームよりも従前のフレーム(例えば1つ前のフレームであり、以下では前フレームと呼称する)の画像上に位置する指標の識別子とを読み出す。そして、これらの識別子を比較し、注目フレームの画像上に位置する指標の識別子のうち、前フレームの画像上に位置する指標の識別子と同じ識別子を有する指標(以下、共通指標と呼称する)を特定する。更に、前フレームの画像上には存在しないが、注目フレームの画像上には存在する指標(出現指標)、前フレームの画像上には存在するものの、注目フレームの画像上には存在しない指標(消失指標)を特定する。
この特定処理についてより詳細に説明すると、先ず、消失指標が存在するか否かを表すフラグDisappFlgと、出現指標が存在するか否かを表すフラグAppFlgを0に初期化する。そして、前フレームの画像上に位置する指標の識別子のうち、注目フレームの画像上に位置する指標の識別子とは異なる識別子が存在する場合には、前フレームから注目フレームに移行した場合に、画像上で消失した指標があると判断し、DisappFlgを1に設定する。また、注目フレームの画像上に位置する指標の識別子のうち、前フレームの画像上に位置する指標の識別子とは異なる識別子が存在する場合には、前フレームから注目フレームに移行した場合に、画像上で新たに出現した指標があると判断し、AppFlgを1に設定する。
また、注目フレームの画像中に位置している指標と、前フレームの画像中に位置している指標とで、同じ識別子を有する指標を共通指標として検出し、検出した共通指標の画像座標、識別子のセットを保持する。
そして、その後、データ比較部220は、下記の如く、条件に基づいて以下のようなデータを位置姿勢算出部140に出力する。
(1) 注目フレームの画像上に位置する全ての指標の識別子と画像座標
(2) フラグAppFlgの値(0または1)
(3) フラグDisappFlgの値(0または1)、
(4) AppFlg=1である場合にのみ、注目フレームの画像上に位置する共通指標の識別子と画像座標
(5) DisappFlg=1である場合にのみ、前フレームの画像上に位置する共通指標の識別子と画像座標
図3に示した画像410,420を例に取り説明すると、注目フレームの画像が画像420、前フレームの画像が画像410である場合、前フレームの画像上には指標Q2,Q3,Q4が、注目フレームの画像上には指標Q2,Q4,Q6が検出されている。データ比較部230は、それぞれのフレームの画像上に位置する指標の識別子を比較し、前フレームから注目フレームに移行した場合に、画像420上でQ3が消失、Q6が出現したと判定し、Q2,Q4を共通指標として検出する。その結果、データ比較部220は、上記(1)〜(5)に対応する情報として、以下の情報を位置姿勢算出部140へ出力する。
(1) 注目フレームの画像上に位置する全ての指標の識別子(2,4,6)と画像座標
(2) AppFlg=1
(3) DisappFlg=1
(4) 注目フレームの画像上に位置する共通指標の識別子(2,4)と画像座標
(5) 前フレームの画像上に位置する共通指標の識別子(2,4)と画像座標
位置姿勢算出部140は、データ比較部220から受けた指標の画像座標を用いて、撮像装置150の位置姿勢を算出する処理を行う。図4は、位置姿勢算出部140の機能構成を示すブロック図である。同図に示す如く、位置姿勢算出部140は、データ入力部410、第一位置姿勢演算部420、第二位置姿勢演算部430、第三位置姿勢演算部440、位置姿勢統合部450によって構成されている。
データ入力部410は、指標選択部130から出力された情報を受けると、これを振り分ける処理を行う。より詳しく説明すると、データ入力部410は、注目フレームの画像上に位置する全ての指標の画像座標、識別子のセットについては第一位置姿勢演算部420に出力する。また、データ入力部410は、AppFlgを受けるとこの値を参照し、AppFlg=1である場合には、注目フレームの画像上に位置する共通指標の識別子と画像座標のセットを第二位置姿勢演算部430に出力する。また、データ入力部410は、DisappFlgを受けるとこの値を参照し、DisappFlg=1である場合には、前フレームの画像上に位置する共通指標の識別子、画像座標のセット第三位置姿勢演算部440に出力する。
第一位置姿勢演算部420、第二位置姿勢演算部430、第三位置姿勢演算部440はそれぞれ、受けた識別子、画像座標、及び対応する指標の基準座標系における位置を用いて、撮像装置150の位置姿勢の推定値を算出する。複数の指標の基準座標系における位置と画像座標の組から撮像装置150の位置姿勢を算出する方法として、本実施形態では、非線形最適化による再投影誤差最小化手法(非特許文献1参照)を利用する。なお、複数の指標の基準座標系における位置と画像座標の組から撮像装置150の位置姿勢を算出する方法については、従来から様々なものが提案されており、何れの方法を用いても、以下の説明の本質は変わらない。また本実施形態では、3種の入力データに対して別々の位置姿勢算出部を用いているが、同一の位置姿勢算出部を時間分割で利用してもよい。
位置姿勢統合部450は、第一位置姿勢演算部420、第二位置姿勢演算部430、第三位置姿勢演算部440のそれぞれ得られた位置姿勢を入力する。また、データ入力部410から、AppFlg、DisappFlgを入力する。そして位置姿勢統合部450は、これらの情報を用いて、撮像装置150の位置姿勢を、前フレームとの整合性を加味ながら算出(決定)する。そして位置姿勢算出部140は、決定した撮像装置150の位置姿勢を外部に出力する。なお、出力先については特に限定するものではなく、ここでの説明の趣旨ではないので、説明は省略する。位置姿勢算出部140が行う処理の詳細については以下で、図6を用いて説明する。
図5は、情報処理装置100に適用可能なコンピュータのハードウェア構成を示すブロック図である。
CPU1001は、RAM1002やROM1003に格納されたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140として機能する。なお、指標選択部130が有するデータ蓄積部210に関しては、後述するRAM1002や外部記憶装置1007内に設ける。
RAM1002は、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータ、I/F1009を介して外部(ここでは撮像装置150)から入力したデータ等を一時的に記憶するエリアを備える。また、CPU1001が各種の処理を行うために必要とするワークエリアを備える。
ROM1003は、一般にコンピュータのプログラムや設定データなどを格納する。
キーボード1004、マウス1005は入力デバイスであり、本コンピュータの操作者がこれらの入力デバイスを操作することで、各種の指示をCPU1001に対して入力することができる。
表示部1006は、CRTや液晶ディスプレイなどにより構成されており、CPU1001による処理結果を画像や文字などでもって表示することができる。例えば、撮像装置150の位置姿勢計測のために表示すべきメッセージ等を表示する。
外部記憶装置1007は、ハードディスクドライブなどの大容量情報記憶装置として機能する装置である。ここには、OS(オペレーティングシステム)や、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140が行う各処理をCPU1001に実行させるためのプログラムやデータが保存されている。また、外部記憶装置1007には、本実施形態に係る処理の説明上、既知の情報として説明したものも保存されている。例えば、外部記憶装置1007には、現実空間中に存在する全ての指標について、識別子と基準座標系における位置とがセットになって保持されている。
そして、外部記憶装置1007に保存されているプログラムやデータはCPU1001による制御に従って適宜RAM1002にロードされる。そしてCPU1001がRAM1002にロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは、本実施形態で情報処理装置100が行う処理として説明した各処理を実行することになる。
記憶媒体ドライブ1008は、CD−ROMやDVD−ROMなどの記憶媒体に記憶されているプログラムやデータをCPU1001からの指示に従って読み出し、RAM1002や外部記憶装置1007に出力する。
I/F1009は、撮像装置150をバス1010に接続するためのアナログビデオポートあるいはIEEE1394等のデジタル入出力ポート、算出した撮像装置150の位置姿勢のデータを外部へ出力するためのイーサネット(登録商標)ポート等によって構成される。画像入力部110の機能の一部は、I/F1009によって実現される。
上述した各構成要素は、バス1010によって相互に接続される。
図9は、注目フレームにおける撮像装置150の位置姿勢を求めるために情報処理装置100が行う処理のフローチャートである。従って、撮像装置150が撮像した各フレームの画像について同様の処理を行う場合には、同図のフローチャートに従った処理をこの各フレームについて行えば良い。
なお、同図のフローチャートに従った処理をCPU1001に実行させるためのプログラムやデータは外部記憶装置1007に保存されている。そしてこれをCPU1001による制御に従ってRAM1002にロードし、CPU1001がこれを用いて処理を実行することで、後述の各処理を実現する。
先ずステップS900では、画像入力部110により、注目フレームの画像データが指標検出部120に供給される。次にステップS901では、指標検出部120が、注目フレームの画像中に位置している指標を識別し、その指標の識別子、画像座標を検出する。そして指標検出部120は、検出されたそれぞれの指標の識別子とその画像座標を、指標選択部130へと出力する。
次にステップS902では、データ蓄積部210は、指標検出部120から注目フレームの画像上に位置する指標の識別子と画像座標のセットを受けると、これを保持する。次にステップS903では、データ比較部220は、上記フラグDisappFlgを設定すると共に、ステップS904では、AppFlgを設定する。
DisappFlgフラグの設定については上述の通り、データ比較部220は先ず、データ蓄積部210から、注目フレームの画像上に位置する指標の識別子と、前フレームの画像上に位置する指標の識別子とを比較する。そして、前フレームの画像上に位置する指標の識別子のうち、注目フレームの画像上に位置する指標の識別子とは異なる識別子が存在する場合には、DisappFlgを1に設定する。また、AppFlgの設定についても上述の通り、注目フレームの画像上に位置する指標の識別子のうち、前フレームの画像上に位置する指標の識別子とは異なる識別子が存在する場合には、AppFlgを1に設定する。
次にステップS905では、データ比較部220は、注目フレームの画像中に位置している指標と、前フレームの画像中に位置している指標とで、同じ識別子を有する指標を共通指標として検出し、検出した共通指標の画像座標、識別子のセットを取得する。
次にステップS906では、データ比較部220は、注目フレームの画像上に位置する全ての指標の識別子と画像座標、フラグAppFlg、フラグDisappFlgを位置姿勢算出部140に出力する。
次にステップS907では、データ比較部220は、AppFlgの値を参照し、AppFlg=1であれば、処理をステップS908に進め、注目フレームの画像上に位置する共通指標の識別子と画像座標を位置姿勢算出部140に出力する。
次にステップS909では、データ比較部220は、DisappFlgの値を参照し、DisappFlg=1であれば処理をステップS910に進め、前フレームの画像上に位置する共通指標の識別子と画像座標を位置姿勢算出部140に出力する。
そして最後にステップS911では、位置姿勢算出部140が、注目フレームにおける撮像装置150の位置姿勢を求める処理を行う。
図6は、上記ステップS911における処理の詳細を示すフローチャートである。
ここで以下の説明では、撮像装置150の位置を、3値のベクトルt=[x y z]によって内部的に表現しているものとする。また、撮像装置150の姿勢を、カメラ座標系から基準座標系への回転変換を行う3×3の回転行列Rによって内部的に表現しているものとする。また、姿勢の情報は、必要に応じて、回転軸を表す3値のベクトルω=[ξ ψ ζ]と、その軸まわりの回転角θの形式で利用する。また、R(ω,θ)は、回転軸ω,回転角θの姿勢に対応する回転行列を表すものとする。回転行列Rによる姿勢表現と、回転軸ωと回転角θによる姿勢表現との間の相互変換方法は公知であるので、その説明は省略する。
先ず、ステップS6000では、データ入力部410が、指標選択部130から出力されたデータ(指標検出データ)を受ける。ステップS6010では先ず、第一位置姿勢演算部420が、データ入力部410から注目フレームの画像上に位置する全ての指標の画像座標を受ける。更に第一位置姿勢演算部420は、注目フレームの画像上に位置する全ての指標の識別子を用いて、注目フレームの画像上に位置する全ての指標の基準座標系における位置を外部記憶装置1007から取得する。
そして第一位置姿勢演算部420は、データ入力部410から受けた全ての指標の画像座標と、注目フレームの画像上に位置する全ての指標の基準座標系における位置とを用いて、撮像装置150の位置姿勢の推定値を算出する。ここで、算出した位置の推定値をt1,姿勢の推定値をR1とする。なお、本ステップで得られる位置姿勢の推定値は、フレーム間の連続性を考慮せずにフレーム毎に最適な位置姿勢を推定する従来方法の出力に相当する。
次にステップS6020では、位置姿勢統合部450が、経過フレーム数カウンタCt(初期値は0)に1を加算する。ここで、経過フレーム数カウンタとは、フレーム間での指標の出現や消失が生じたフレームからの経過フレーム数を示すカウンタである。
次にステップS6030では、位置姿勢統合部450が、経過フレーム数カウンタCtの値に基づいて、補正値の基準値(後述)に乗算する重みwを算出する。例えば、次式によって重みwを算出する。
w={cos(Ct/Dr×π)+1}/2 (式1)
ここで、Drは補正期間を表している。補正期間とは、あるフレーム間で指標の出現や消失が生じた際に、その現象に起因する不整合の回避処理(補正処理)をどの程度の期間行うかを表すパラメータである。例えば、30フレームの期間で補正処理を行う場合は、Drを30に設定する。この値は予め設定された所定値としても良いし、情報処理装置100の使用者がキーボード1004やマウス1005を用いて対話的に調整してもよい。(式1)において、Ct=0の時にw=1となり、Ct=Drの時にw=0となる。このようにwの値が徐々に減衰していく関数であれば、(式1)以外の関数によってwを決定してもよい。例えば、次式を用いてもよい。
w=(Dr−Ct)/Dr (式2)
次に、ステップS6040では、位置姿勢統合部450が、ステップS6030で求めた重みwを、現在の補正値の基準値に乗算することで、補正値の基準値を更新する。ここで、補正値とは、ステップS6010で得た位置姿勢の推定値(位置推定値t1、姿勢推定値R1)を、フレーム間での整合性が維持できるように補正するためのパラメータである。従って、ステップS6040では、位置の補正値Δtと、姿勢の補正値の回転成分Δθを、次式によって算出する。
Δt=w×tb (式3)
Δθ=w×θb (式4)
ここで、tbは、位置の補正値の基準値を表している。また、θbは、姿勢の補正値の基準値Rbの回転角を表している。さらにステップS6040では、(式4)で求めたΔθと、姿勢の補正値の基準値Rbの回転軸ωb=[ξb ψb ζb]を用いて以下の(式5)に従った計算処理を行い、姿勢の補正値ΔRを算出する。
ΔR=R(ωb、Δθ) (式5)
重みwは時間経過と共に減衰していくので、位置の補正値の値は、時間経過に応じて徐々に0向かって減少していくことになる。同様に、姿勢の補正値は、時間経過に応じて徐々に単位行列へと近づいていくことになる。
次に、前フレームの画像上には存在しないが、注目フレームの画像上には存在する指標、前フレームの画像上には存在するものの、注目フレームの画像上には存在しない指標の何れかが存在する場合(DisappFlg + AppFlg ≠ 0)には、処理をステップS6050を介してステップS6060に進める。一方、前フレームから注目フレームに移行した場合に、画像上で新たに出現した指標、消失した指標が存在しない場合(DisappFlg + AppFlg = 0)には、処理をステップS6050を介してステップS6150に進める。
ステップS6060では、データ入力部410がDisappFlgの値を参照し、DisappFlg=1である場合には処理をステップS6070に進め、DisappFlg=0である場合には処理をステップS6090に進める。
ステップS6070では先ず、第三位置姿勢演算部440が、データ入力部410から、前フレームの画像上に位置する共通指標の識別子、画像座標のセットを受ける。更に、第三位置姿勢演算部440は、前フレームの画像上に位置する共通指標の識別子を用いて、前フレームの画像上に位置する共通指標の基準座標系における位置を外部記憶装置1007から取得する。そして第三位置姿勢演算部440は、データ入力部410から受けた前フレームの画像上に位置する共通指標の画像座標と、前フレームの画像上に位置する全ての指標の基準座標系における位置とを用いて、撮像装置150の位置姿勢の推定値を算出する。ここで、算出した位置の推定値をt3,姿勢の推定値をR3とする。なお、本ステップで得られる位置姿勢の推定値は、注目フレームで消失した指標が、仮に、前フレームの段階で既に消失していたと仮定したときの、撮像装置150の位置姿勢を表している。
次にステップS6080では、位置姿勢統合部450は、前フレームから注目フレームに進めた場合に、画像上で消失指標が存在したことによる撮像装置150の位置の変化量、姿勢の変化量を算出する。この算出には、ステップS6070で求めた位置の推定値t3と姿勢の推定値R3と、前フレームにおける撮像装置150の位置姿勢として最終的に求めた位置t0,姿勢R0を用いる。位置の変化量をΔtd、姿勢の変化量をΔRdとすると、これらは以下の式に従って求める。
Δtd=t0−t3 (式6)
ΔRd=R0×R3−1 (式7)
なお、本ステップで得られる変化量は、指標の消失によって生じる位置及び姿勢の不連続性を直接的に表したものとなる。
次に、ステップS6090では、データ入力部410がAppFlgの値を参照し、AppFlg=1である場合には処理をステップS6100に進め、AppFlg=0である場合には処理をステップS6130に進める。
ステップS6100では、第二位置姿勢演算部430が、データ入力部410から、注目フレームの画像上に位置する共通指標の識別子、画像座標のセットを受ける。更に、第二位置姿勢演算部430は、注目フレームの画像上に位置する共通指標の識別子を用いて、注目フレームの画像上に位置する共通指標の基準座標系における位置を外部記憶装置1007から取得する。そして第二位置姿勢演算部430は、データ入力部410から受けた注目フレームの画像上に位置する共通指標の画像座標と、注目フレームの画像上に位置する全ての指標の基準座標系における位置とを用いて、撮像装置150の位置姿勢の推定値を算出する。ここで、算出した位置の推定値をt2,姿勢の推定値をR2とする。
次に、ステップS6110では、第二位置姿勢演算部430は、ステップS6100で求めた位置の推定値t2,姿勢の推定値R2を、ステップS6040で更新した補正値でもって補正する処理を行う。より具体的には、以下の式に従って、位置の推定値t2、姿勢の推定値R2を補正する。
t2’=t2+Δt (式8)
R2’=ΔR×R2 (式9)
t2’は補正後の位置の推定値、R2’は補正後の姿勢の推定値である。
次にステップS6120では、位置姿勢統合部450は、前フレームから注目フレームに進めた場合に、画像上で出現指標が存在したことによる撮像装置150の位置の変化量、姿勢の変化量を算出する。この算出には、ステップS6010で求めた位置の推定値t1と姿勢の推定値R1と、ステップS6110で求めたt2’、R2’とを用いる。位置の変化量をΔta、姿勢の変化量をΔRaとすると、これらは以下の式に従って求める。
Δta=t2’−t1 (式10)
ΔRa=R2’×R1−1 (式11)
なお、本ステップで得られる変化量は、指標の出現によって生じる撮像装置150の位置姿勢の不連続性を直接的に表したものとなる。
次に、ステップS6130では、位置姿勢統合部450は、注目フレーム以降のフレームについて本フローチャートに従った処理を行う際に用いる補正値の基準値を求める。具体的には、以下の式に従った計算処理を行うことで、補正値の基準値を求める。
tb=ΔRa×Δtd+Δta (式12)
Rb=ΔRa×ΔRd (式13)
補正値の基準値とは、あるフレーム間で指標の出現や消失が生じた場合に、そのフレーム間における不整合を回避するための補正値である。注目フレームにおけるt1,R1にそれぞれtb、Rbを付加することで、このフレームにおけるフレーム間の不整合を回避することができる。さらに、その後に続くフレームでは、時間経過に応じて減少していく重みをこの値に乗算することで得た補正値を付加していく。補正値を減衰させていくことで、補正を行わない状態(すなわち、フレーム内で最適な位置及び姿勢が得られている状態)に徐々に近づけていく。
次に、ステップS6140では、位置姿勢統合部450が、ステップS6130で算出した補正値の基準値を、注目フレームに対する補正値として以下のように設定する。
Δt=tb (式14)
Δθ=θb (式15)
以上説明したステップS6060からステップS6140における処理を行うことで、前フレームと注目フレームとの間で消失指標、出現指標が存在した場合に対処するために、補正値の基準値を設定することができる。
次にステップS6150では、位置姿勢統合部450が、ステップS6010で求めた位置の推定値t1と姿勢の推定値R1をそれぞれ、ステップS6040、又はステップS6140で求めた補正値Δt、ΔRを用いて補正し、「注目フレームにおける撮像装置150の位置姿勢」として最終的に求めるべき位置t1’、姿勢R1’を求める処理を行う。この処理は以下の計算式を計算することで行う。
t1’=t1+Δt (式16)
R1’=ΔR×R1 (式17)
ここで、指標の見え隠れがフレーム間で生じない期間がDrフレーム以上継続すると、Δtが0、ΔRが単位行列となるので、t1’、R1’としてt1,R1がそのまま用いられることになる。
次にステップS6160では、位置姿勢統合部450が、ステップS6150で求めた位置t1’、姿勢R1’を出力する。出力先としては、外部記憶装置1007のように、コンピュータ内部に対する出力でも良いが、I/F1009を介して外部に出力するようにしても良い。
なお、本実施形態では、撮像装置150の位置を3値のベクトルt1’で、姿勢を3×3の回転行列R1’によって表現した。しかし、位置姿勢の表現方法はこれに限定されるものではない。例えば、姿勢を、回転軸ベクトルと回転角、オイラー角、4元数等に変換して出力してもよい。また、同次座標表現による4×4の位置姿勢変換行列やその逆行列によって、位置及び姿勢を表してもよい。また、撮像装置150に対する基準座標系の位置及び姿勢を求めてこれを出力してもよい。もちろん、これらのいずれかの組み合わせを同時に出力してもよい。
最後にステップS6170では、ステップS6150で求めた、位置t1’、姿勢R1’を、注目フレーム以降のフレームについて同図のフローチャートに従った処理を行うために、それぞれt0,R0として外部記憶装置1007やRAM1002に格納する。
以上説明したように、本実施形態によれば、フレーム間における指標の出現・消失の状況を監視することで、指標の見え隠れに起因する撮像装置150の位置姿勢計測に係る不整合を解消することが可能となる。その結果、フレーム間の整合性と動きに対する追従性を両立しながら、撮像装置150の位置及び姿勢を計測することができる。
なお、本実施形態では、図1に示した画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140は、それぞれソフトウェアにより実現され、同一のコンピュータにインストールされているものとした。しかし、一部をハードウェアでもって実現するようにしても良い。例えば、指標検出部120をグラフィックボードでもって構成するようにしても良い。
更に、本実施形態では、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140の各部を1つの装置内にソフトウェアとしてインストールしていた。しかしこれに限定するものではなく、2以上のコンピュータに分けてインストールし、それぞれのコンピュータ間で共同動作を行うことで、上記各処理を実現させても良い。これは、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140のうち1以上をハードウェアでもって実現するようにしても同様である。
[第2の実施形態]
本実施形態では、現実空間中に配した複数の撮像装置を用いて、計測対象物体の位置を計測する。図7は、複数の撮像装置を用いて計測対象物体の位置を計測するための本実施形態に係るシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、撮像装置750a〜750d、情報処理装置700により構成されている。更に、情報処理装置700は、画像入力部710、指標検出部720、指標選択部730、位置算出部740により構成されている。
更に760は、本実施形態で計測対象物体の一例として用いるものであり、計測対象物体760には指標770が取り付けられている。情報処理装置700は、基準座標系に対するこの指標770の位置を、計測対象物体760の位置として計測する。
撮像装置750a〜750dは、現実空間の動画像が撮像可能なカメラであり、例えば、ディジタルビデオカメラである。それぞれの撮像装置750a〜750dが撮像した各フレームの画像は情報処理装置700が有する画像入力部710に入力される。なお、それぞれの撮像装置750a〜750dのカメラ内部パラメータ(焦点距離やフォーカス値など)や、基準座標系における位置姿勢は既知であるものとする。
画像入力部710は、入力された各フレームの画像信号をディジタルデータに変換し、後段の指標検出部720に送出する。即ち、画像入力部710は、各フレームの画像データを指標検出部720に供給することになる。なお、本実施形態では、撮像装置750a〜750dのそれぞれは、画像入力部710がそれぞれの撮像装置750a〜750dを識別可能なように画像入力部710に接続されているものとする。しかし、画像入力部710が撮像装置750a〜750dからの画像を受けた場合に、受けた画像がどの撮像装置からのものであるのかを画像入力部710が把握可能な構成であれば、その構成は如何なるものであっても良い。例えば、撮像装置750a〜750dは、撮像したフレーム画像と共に、自身に固有の識別情報を画像入力部710に送出するようにしても良い。
指標検出部720は、画像入力部710から入力された各フレームについて、画像中に位置している指標770を検出する処理を行う。より詳しくは、画像中に位置している指標770を識別し、その画像座標を検出する。そして指標検出部720は、検出された指標770の画像座標を、指標選択部730へと出力する。
ここで、指標検出部720が、画像から指標770を検出することができなかった場合には、その旨を指標選択部730に通知する。例えば、図7の例において、撮像装置750a,750c,750dから受けた画像からは指標770を検出したものの、撮像装置750bから受けた画像からは指標770が検出されなかったとする。この場合、指標検出部720からは、撮像装置750a,750c,750dのそれぞれから受けた画像における指標770の画像座標と、撮像装置750bから受けた画像からは指標770が検出されなかったという情報が出力される。なお、指標770の検出方法については第1の実施形態に記載の如く、如何なる手法を用いても良い。
指標選択部730は、指標検出部120から、「指標770の検出ができなかった旨」若しくは指標770の画像座標を入力する。そして、指標770の画像座標を受けた場合には、これを用いてフレーム間での指標770の消失・出現を監視し、計測対象物体760の位置の計算のために必要な情報を選択し、位置算出部740へと出力する。
ここで、指標選択部730が行う処理について、より詳細に説明する。指標選択部730は先ず、撮像装置750a〜750dのそれぞれから受けた前フレーム、注目フレームの両方のフレームから指標770が検出されたかをチェックする。そして、前フレーム、注目フレーム共に指標770の検出が成功した場合には、この2つのフレームの画像を撮像した撮像装置のリストを作成する。
図7の構成の場合、撮像装置750aから受けた前フレーム、注目フレームの両方のフレームから指標770を検出した場合には、撮像装置750a固有の識別情報を保持する。撮像装置750bから受けた前フレーム、注目フレームの両方のフレームから指標770を検出した場合には、撮像装置750b固有の識別情報を保持する。撮像装置750cから受けた前フレーム、注目フレームの両方のフレームから指標770を検出した場合には、撮像装置750c固有の識別情報を保持する。撮像装置750dから受けた前フレーム、注目フレームの両方のフレームから指標770を検出した場合には、撮像装置750d固有の識別情報を保持する。
このように、前フレーム、注目フレームの両方のフレームから指標770が検出された場合には、この2つのフレームを撮像した撮像装置固有の識別情報のリストを作成し、保持する。
更に、指標選択部730は、撮像装置750a〜750dから受けた注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった場合には、この撮像装置に固有の識別情報を保持する。図7の構成の場合、撮像装置750aから受けた注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった場合には、撮像装置750a固有の識別情報を保持する。撮像装置750bから受けた注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標が検出されなかった場合には、撮像装置750b固有の識別情報を保持する。撮像装置750cから受けた注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標が検出されなかった場合には、撮像装置750c固有の識別情報を保持する。撮像装置750dから受けた注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標が検出されなかった場合には、撮像装置750d固有の識別情報を保持する。
このように、注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった場合には、この2つのフレームを撮像した撮像装置固有の識別情報のリストを作成し、保持する。
更に、指標選択部730は、撮像装置750a〜750dから受けた前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、この撮像装置に固有の識別情報を保持する。図7の構成の場合、撮像装置750aから受けた前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、撮像装置750a固有の識別情報を保持する。撮像装置750bから受けた前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、撮像装置750b固有の識別情報を保持する。撮像装置750cから受けた前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、撮像装置750c固有の識別情報を保持する。撮像装置750dから受けた前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、撮像装置750d固有の識別情報を保持する。
このように、前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、この2つのフレームを撮像した撮像装置固有の識別情報のリストを作成し、保持する。
そして、指標選択部730は、下記の如く、条件に基づいて以下のようなデータを位置算出部740に出力する。
(1) 撮像装置750a〜750dが撮像した注目フレームの画像上に位置する指標770の画像座標、若しくは指標の検出ができなかった旨を示す情報
(2) フラグAppFlgの値(0または1)
(3) フラグDisappFlgの値(0または1)、
(4) AppFlg=1である場合 → 前フレーム、注目フレームの両方のフレームから指標770が検出された場合に、この2つのフレームの画像を撮像した撮像装置から受けた注目フレームの画像上に位置する指標770の画像座標
(5) DisappFlg=1である場合 → 前フレーム、注目フレームの両方のフレームから指標770が検出された場合に、この2つのフレームの画像を撮像した撮像装置から受けた前フレームの画像上に位置する指標770の画像座標
ここで、AppFlgは、注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった、というような両方のフレームを撮像した撮像装置が1以上の存在した場合に1となるものである。AppFlgはデフォルトでは0に初期化されている。
また、DisappFlgは、前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった、というような両方のフレームを撮像した撮像装置が1以上の存在した場合に1となるものである。DisappFlgはデフォルトでは0に初期化されている。
位置算出部740は、指標選択部730から受けた指標の画像座標を用いて、計測対象物体760の位置を算出する処理を行う。
なお、本実施形態においても、情報処理装置700のハードウェア構成については第1の実施形態と同様、即ち、図5に示した構成を有するコンピュータを適用する。更に、本実施形態においても、上記画像入力部710、指標検出部720、指標選択部730、位置算出部740は、それぞれソフトウェアにより実現され、同一のコンピュータにインストールされているものとする。しかし、一部をハードウェアでもって実現するようにしても良い。例えば、指標検出部720をグラフィックボードでもって構成するようにしても良い。
更に、画像入力部710、指標検出部720、指標選択部730、位置算出部740を2以上のコンピュータに分けてインストールし、それぞれのコンピュータ間で共同動作を行うことで、計測対象物体760の位置計測処理を実現させても良い。これは、画像入力部710、指標検出部720、指標選択部730、位置算出部740のうち1以上をハードウェアでもって実現するようにしても同様である。
図10は、注目フレームにおける計測対象物体760の位置を求めるために情報処理装置700が行う処理のフローチャートである。従って、各フレームについて同様の処理を行う場合には、同図のフローチャートに従った処理をこの各フレームについて行えば良い。
なお、同図のフローチャートに従った処理をCPU1001に実行させるためのプログラムやデータは外部記憶装置1007に保存されている。そしてこれをCPU1001による制御に従ってRAM1002にロードし、CPU1001がこれを用いて処理を実行することで、後述の各処理を実現する。
先ずステップS1000では、画像入力部710により、各撮像装置750a〜750dが撮像した注目フレームの画像データを指標検出部720に供給する。次にステップS1001では、指標検出部720が、それぞれの注目フレームの画像中に位置している指標770を識別し、その画像座標を検出する。そして指標検出部720は、検出された指標770の画像座標を、指標選択部730へと出力する。なお、検出ができなかった場合には、その旨を指標選択部730に通知する。
次にステップS1002では、指標選択部730は、指標検出部720から注目フレームの画像上に位置する指標の画像座標、若しくは指標770が検出できなかった旨を受けると、これを保持する。次にステップS1003では、指標選択部730は、上記フラグDisappFlgを設定すると共に、ステップS1004では、AppFlgを設定する。
DisappFlgフラグの設定については上述の通り、注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった、というような両方のフレームを撮像した撮像装置が1以上の存在した場合には1に設定する。AppFlgはデフォルトでは0に初期化されている。また、DisappFlgについても上述の通り、前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった、というような両方のフレームを撮像した撮像装置が1以上の存在した場合には1を設定する。DisappFlgはデフォルトでは0に初期化されている。
そしてステップS1005では、指標選択部730は、前フレーム、注目フレーム共に指標770の検出が成功した場合には、この2つのフレームの画像を撮像した撮像装置固有の識別情報のリストを作成し、保持する。更に、指標選択部730は、注目フレームの画像からは指標770が検出されたものの、前フレームの画像からは指標770が検出されなかった場合には、この2つのフレームの画像を撮像した撮像装置に固有の識別情報のリストを作成し、保持する。更に、指標選択部730は、前フレームの画像からは指標770が検出されたものの、注目フレームの画像からは指標770が検出されなかった場合には、この2つのフレームの画像を撮像した撮像装置に固有の識別情報のリストを作成し、保持する。
次に、ステップS1006では、指標選択部730は、それぞれの撮像装置750a〜750dからの注目フレームの画像上に位置する指標770の画像座標若しくは指標の検出ができなかった旨を示す情報、フラグAppFlg、フラグDisappFlgを位置算出部740に出力する。
次にステップS1007では、指標選択部730は、AppFlgの値を参照する。そしてAppFlg=1であれば、処理をステップS1008に進める。ステップS1008では、前フレーム、注目フレームの両方のフレームから指標770が検出された場合には、この2つのフレームの画像を撮像した撮像装置から受けた注目フレームの画像上に位置する指標770の画像座標を位置算出部740に出力する。
次にステップS1009では、指標選択部730は、DisappFlgの値を参照する。そして、DisappFlg=1であれば処理をステップS1010に進める。ステップS1010では、前フレーム、注目フレームの両方のフレームから指標770が検出された場合には、この2つのフレームの画像を撮像した撮像装置から受けた前フレームの画像上に位置する指標770の画像座標を位置算出部740に出力する。
そして最後にステップS1011では、位置算出部740が、注目フレームにおける計測対象物体760の位置を求める処理を行う。
図8は、上記ステップS1011における処理の詳細を示すフローチャートである。以下では、計測対象物体760の位置を、3値のベクトルt=[x y z]によって内部的に表現しているものとする。
先ず、ステップS8000では、指標選択部730から出力された、2以上の撮像装置による注目フレーム上における指標770の座標位置データ(指標検出データ)を受ける。ステップS8010では、各注目フレームの画像上に位置する指標770の座標位置を用いて、三角測量の原理に基づいて、計測対象物体760の位置の推定値を算出する。もちろん、この三角測量に基づく計算には、それぞれの撮像装置の基準座標系における位置も用いる。
ここで、算出した位置の推定値をt1とする。具体的には、各注目フレームの画像上における指標770の再投影誤差の和が最小となるように、最小二乗法によって推定値t1を決定する。
次にステップS8020では、経過フレーム数カウンタCt(初期値は0)に1を加算する。次にステップS8030では、経過フレーム数カウンタCtの値に基づいて、補正値の基準値(後述)に乗算する重みwを算出する。ステップS8020,S8030における処理内容はそれぞれ、上記ステップS6020,S6030と同様にして行う。
次に、ステップS8040では、ステップS8030で求めた重みwを、現在の補正値の基準値に乗算することで、補正値の基準値を更新する。この処理は、上記(式3)に従った計算処理を行うことでなされるものである。
次に、DisappFlg + AppFlg ≠ 0の場合には、処理をステップS8050を介してステップS8060に進める。一方、DisappFlg + AppFlg = 0の場合には、処理をステップS8050を介してステップS8150に進める。
ステップS8060では、DisappFlgの値を参照し、DisappFlg=1である場合には処理をステップS8070に進め、DisappFlg=0である場合には処理をステップS8090に進める。
ステップS8070では、それぞれの撮像装置から得られた前フレームの画像上における指標770の画像座標を用いて、三角測量の原理でもって、計測対象物体760の位置の推定値を算出する。ここで、算出した位置の推定値をt3とする。
次にステップS8080では、ステップS8070で求めた位置の推定値t3と、前フレームにおける計測対象物体760の位置として最終的に求めた位置t0との差分値Δtdを上記(式6)に従って求める。
次に、ステップS8090では、AppFlgの値を参照し、AppFlg=1である場合には処理をステップS8100に進め、AppFlg=0である場合には処理をステップS8130に進める。
ステップS8100では、それぞれの撮像装置から得られた注目フレームの画像上における指標770の画像座標を用いて、三角測量の原理でもって、計測対象物体760の位置の推定値を算出する。ここで、算出した位置の推定値をt2とする。
次にステップS8110では、ステップS8100で求めた位置の推定値t2を、ステップS8040で更新した補正値でもって補正する処理を行う。より具体的には、上記(式8)に従った処理を行う。補正後の位置の推定値をt2’とする。
次にステップS8120では、ステップS8010で求めた位置の推定値t1、ステップS8110で求めたt2’を用い、上記(式10)を用いてΔtaを求める。
次に、ステップS8130では、注目フレーム以降のフレームについて本フローチャートに従った処理を行う際に用いる補正値の基準値を求める。具体的には、以下の式に従った計算処理を行うことで、補正値の基準値を求める。
tb=Δtd+Δta (式18)
次に、ステップS8140では、ステップS8130で算出した補正値の基準値を、注目フレームに対する補正値として、上記(式14)に示す如く設定する。
以上説明したステップS8060からステップS8140における処理を行うことで、前フレームと注目フレームとの間で消失指標、出現指標が存在した場合に対処するために、補正値の基準値を設定することができる。
次にステップS8150では、ステップS8010で求めた位置の推定値t1を、ステップS8040、又はステップS8140で求めた補正値Δtを用いて補正することで、「注目フレームにおける計測対象物体760の位置」として最終的に求めるべき位置t1’を求める。この処理は上記(式16)に従った計算処理を行うことでなされる。
次にステップS8160では、ステップS8150で求めた位置t1’を出力する。出力先としては、外部記憶装置1007のように、コンピュータ内部に対する出力でも良いが、I/F1009を介して外部に出力するようにしても良い。
最後にステップS8170では、ステップS8150で求めた、位置t1’を、注目フレーム以降のフレームについて同図のフローチャートに従った処理を行うためにt0として外部記憶装置1007やRAM1002に格納する。
以上説明したように、本実施形態によれば、フレーム間における指標の出現・消失の状況を監視することで、指標の見え隠れに起因する計測対象物体760の位置計測に係る不整合を解消することが可能となる。その結果、フレーム間の整合性と動きに対する追従性を両立しながら、計測対象物体760の位置を計測することができる。
[第3の実施形態]
<変形例1>
第1の実施形態では、撮像装置により撮像された画像のみを用いて、この撮像装置の位置姿勢の計測を行った。換言すれば、第1の実施形態に係る位置姿勢計測方法は、撮像装置により撮像された画像のみを用いて位置姿勢の計測を行う一般的な位置姿勢計測方法を、スムーズかつ高精度な計測が可能なように改良したものといえる。しかし、指標を利用して位置姿勢を求める方法であれば、これ以外の方法であっても、第1の実施形態に係る計測方法との組み合わせによって同様な改良を行うことができる。
<変形例2>
上記非特許文献1には、計測対象物体に装着した1台以上の主観視点カメラと、天井や壁に配置した1台以上の客観視点カメラを用いて、物体の位置及び姿勢を計測する方法が開示されている。この方法では、主観視点カメラの撮影画像から環境中の指標が検出され、客観視点カメラの撮影画像から計測対象物体上の指標が検出される。そして、これらの全ての検出指標の情報を利用して、計測対象物体の位置及び姿勢が算出される。
第1の実施形態で示した手法は、画像入力部110、指標検出部120、指標選択部130、位置姿勢算出部140の一部の機能を変更することで、このような複数の撮像装置を用いる方法と容易に組み合わせることができる。この場合、画像入力部110は、夫々のカメラからの画像を入力する。また、指標検出部120は、夫々のカメラの入力画像から指標を検出し、識別子と検出座標を出力する。そして、指標選択部130は、各カメラの検出結果に対して、連続フレーム間における共通指標の選択と、指標の出現・消失の有無の判定を行う。複数の撮像装置を用いる場合には、新たな指標を検出したカメラが1台でもあれば、AppFlgを1に設定する。同様に、前フレームまで検出していた指標を見失ったカメラが1台でもあれば、DisappFlgを1に設定する。そして、以下のデータを出力する。
(A) 注目フレームの入力画像に対する、全カメラの全検出指標の識別子と画像座標(指標の出現・消失の状況によらずに出力)
(B) フラグAppFlg(0または1)
(C) 注目フレームの入力画像に対する、全カメラの共通指標の識別子と画像座標(出現した指標が存在する場合のみ)
(D) フラグDisappFlg(0または1)
(E) 前フレームの入力画像に対する、全カメラの共通指標の識別子と画像座標(消失した指標が存在する場合のみ)
位置姿勢算出部140の動作は、位置姿勢演算部420、430、440の夫々が複数のカメラからの情報を利用すること以外は、第1の実施形態と同様である。なお、複数のカメラからの情報を利用して計測対象物体の位置及び姿勢を求める方法は、非特許文献1に開示されているので、ここでの詳細な説明は省略する。
なお、1台以上の客観視点カメラを用いて複数の指標を配置した物体の位置及び姿勢を求める場合にも、同様な改良により発明の効果を得ることができる。この場合は、上記の変形例から、主観視点カメラを除去して考えればよい。
<変形例3>
一方、撮像装置150に姿勢センサを装着し、その姿勢計測値と指標の検出座標とを併用することで、撮像装置150の位置及び姿勢を求めることがなされている。例えば、非特許文献1では、姿勢センサで計測した姿勢を、撮像装置150の姿勢としてそのまま利用する方法が開示されている。この方法では、撮像装置150の位置のみが未知パラメータであり、この未知パラメータが指標の検出座標を用いて算出される。また、非特許文献1には、撮像装置150の位置と方位角を未知パラメータとして、指標の検出座標を用いて該未知パラメータを算出する方法も開示されている。
第1の実施形態で示した手法は、位置姿勢算出部140の一部の機能を変更することで、このような他の計測手段を利用する方法と容易に組み合わせることができる。この場合、データ入力部410は、姿勢センサからの姿勢計測値をさらに入力する。また、第一位置姿勢演算部420は、現フレームの姿勢計測値と現フレームの全検出指標の情報に基づいて、撮像装置150の位置(及び方位角)を推定する。また、第二位置姿勢演算部430は、現フレームの姿勢計測値と現フレームの共通指標の情報に基づいて、撮像装置150の位置(及び方位角)を推定する。また、第三位置姿勢演算部440は、前フレームの姿勢計測値と前フレームの共通指標の情報に基づいて、撮像装置150の位置(及び方位角)を算出する。
そして、位置姿勢統合部450は、夫々の位置姿勢演算部で得られた位置(及び方位角)に基づいて、現フレームにおける撮像装置150の位置(及び方位角)を算出する。この位置の統合処理は、第1の実施形態におけるフローチャートにおいて、位置のみの補正値を考えた場合と同様である。また、方位角の統合処理も位置と同様であり、指標が出現した場合の不連続性と消失した場合の不連続性をそれぞれ求め、その和として方位角補正値の基準値を求めてこれを用いればよい。
このように、フレーム間における指標の出現と消失を監視し、共通指標を用いて求めた位置及び姿勢(あるいはそれに準ずる方位角等のパラメータ)を利用して指標の見え隠れに起因する不整合を検知し、これを解消する補正を加えることが本発明の本質である。従って、指標を監視するカメラの数や種類(客観/主観視点)、指標の種類や検出方法、センサ等の付加情報の有無、位置及び姿勢の計算方法によらず、本発明の効果を得ることができる。
<変形例4>
上記の実施形態では、前フレームで検出された全ての指標と、注目フレームで検出された全ての指標とを比較していた。しかし、指標の比較方法はこれに限定されるものではない。例えば、上記の実施形態で示した提案手法は、誤検出や誤同定された指標の情報(アウトライア)を除去するような位置及び姿勢の算出方法と組み合わせることができる。この場合、フレーム毎の処理においてアウトライアと判定された指標は、比較の対象として使用されない。
また、検出指標数が非常に多い場合に、計算量を削減するために、一部の指標のみを使用して位置及び姿勢を推定する場合がある。上記の実施形態で示した提案手法は、このような方法と組み合わせることができる。この場合、位置及び姿勢の推定に実際に使用された指標のみが、フレーム間での比較対象となる。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
撮像装置の位置姿勢を計測するための本発明の第1の実施形態に係るシステムの機能構成を示すブロック図である。 指標選択部130の機能構成を示すブロック図である。 撮像装置150が撮像した連続する2つのフレームの画像の例を示す図である。 位置姿勢算出部140の機能構成を示すブロック図である。 情報処理装置100に適用可能なコンピュータのハードウェア構成を示すブロック図である。 ステップS911における処理の詳細を示すフローチャートである。 複数の撮像装置を用いて計測対象物体の位置を計測するための本発明の第2の実施形態に係るシステムの機能構成を示すブロック図である。 ステップS1011における処理の詳細を示すフローチャートである。 注目フレームにおける撮像装置150の位置姿勢を求めるために情報処理装置100が行う処理のフローチャートである。 注目フレームにおける計測対象物体760の位置を求めるために情報処理装置700が行う処理のフローチャートである。

Claims (13)

  1. 撮像装置から画像を入力する画像入力工程と、
    前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
    現在のフレームにおいて前記指標検出工程で検出された現在の指標の画像座標に関する情報を用いて、前記撮像装置の位置及び姿勢を算出する位置姿勢算出工程と、
    過去のフレームにおいて前記撮像装置の位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置姿勢推定値のフレーム間での不連続性を緩和する位置及び姿勢の補正値を算出する補正値算出工程と、
    前記補正値算出工程で算出した補正値を用いて、前記位置姿勢算出工程で算出した位置及び姿勢を補正する位置姿勢補正工程と
    を有することを特徴とする位置姿勢計測方法。
  2. 前記補正値算出工程では、指標の出現/消失を検出しなかった場合は、指標の出現/消失を検出した際に算出した補正値に、その時点からの時間経過に応じて減衰する重みを掛け合わせたものを現在のフレームにおける補正値とすることを特徴とする請求項1に記載の位置姿勢計測方法。
  3. 撮像装置から画像を入力する画像入力工程と、
    前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
    現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
    前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
    前記現在の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
    前記第一の位置及び姿勢と前記第二の位置及び姿勢とを用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
    を有することを特徴とする位置姿勢計測方法。
  4. 前記位置姿勢統合工程では、前記第一の位置及び姿勢と前記第二の位置及び姿勢との間の変化分を求め、得られた変化分を前記第一の位置及び姿勢に加重して付加することで前記撮像装置の位置及び姿勢を算出することを特徴とする、請求項3に記載の位置姿勢計測方法。
  5. 撮像装置から画像を入力する画像入力工程と、
    前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
    現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
    前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
    前記過去の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
    前記第一の位置及び姿勢と前記第二の位置及び姿勢とを用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
    を有することを特徴とする位置姿勢計測方法。
  6. 前記位置姿勢統合工程では、前記第二の位置及び姿勢と前記過去のフレームにおいて適用されている位置及び姿勢との間の変化分を求め、得られた変化分を前記第一の位置及び姿勢に付加することで前記撮像装置の位置及び姿勢を算出することを特徴とする、請求項5に記載の位置姿勢計測方法。
  7. 撮像装置から画像を入力する画像入力工程と、
    前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
    現在のフレームにおいて前記指標検出工程で検出された現在の指標と、過去のフレームにおいて当該撮像装置の位置及び姿勢の算出に使用した過去の指標とを比較し、両者に共通して含まれている共通指標を選択する指標選択工程と、
    前記現在の指標の画像座標に関する情報を用いて、前記撮像装置の第一の位置及び姿勢を算出する第一の位置姿勢算出工程と、
    前記現在の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第二の位置及び姿勢を算出する第二の位置姿勢算出工程と、
    前記過去の指標のうち、共通指標として選択された指標のみの画像座標に関する情報を用いて、前記撮像装置の第三の位置及び姿勢を算出する第三の位置姿勢算出工程と、
    前記第一、第二、第三の位置及び姿勢を用いて、現在のフレームにおける前記撮像装置の位置及び姿勢を算出する位置姿勢統合工程と
    を有することを特徴とする位置姿勢計測方法。
  8. 前記位置姿勢統合工程では、前記第一の位置及び姿勢と前記第二の位置及び姿勢との間の変化分と、前記第三の位置及び姿勢と前記過去のフレームにおいて適用されている位置及び姿勢との間の変化分を求め、得られた夫々の変化分を前記第一の位置及び姿勢に加重して付加することで前記撮像装置の位置及び姿勢を算出することを特徴とする、請求項7に記載の位置姿勢計測方法。
  9. 計測対象を撮影する1台以上の撮像装置から画像を入力する画像入力工程と、
    前記計測対象上に存在する指標を前記画像から検出し、当該指標の画像座標に関する情報を取得する指標検出工程と、
    現在のフレームにおいて前記指標検出工程で検出された現在の指標の画像座標に関する情報を用いて、前記計測対象の位置あるいは位置及び姿勢を算出する位置姿勢算出工程と、
    過去のフレームにおいて前記計測対象の位置あるいは位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置あるいは位置姿勢推定値のフレーム間での不連続性を緩和する位置あるいは位置及び姿勢の補正値を算出する補正値算出工程と、
    前記補正値算出工程で算出した補正値を用いて、前記位置姿勢算出工程で算出した位置あるいは位置及び姿勢を補正する位置姿勢補正工程と
    を有することを特徴とする位置姿勢計測方法。
  10. 撮像装置から画像を入力する画像入力手段と、
    前記画像中に撮像されている指標を検出し、当該指標の画像座標に関する情報を取得する指標検出手段と、
    現在のフレームにおいて前記指標検出手段で検出された現在の指標の画像座標に関する情報を用いて、前記撮像装置の位置及び姿勢を算出する位置姿勢算出手段と、
    過去のフレームにおいて前記撮像装置の位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置姿勢推定値のフレーム間での不連続性を緩和する位置及び姿勢の補正値を算出する補正値算出手段と、
    前記補正値算出手段が算出した補正値を用いて、前記位置姿勢算出手段が算出した位置及び姿勢を補正する位置姿勢補正手段と
    を有することを特徴とする位置姿勢計測装置。
  11. 計測対象を撮影する1台以上の撮像装置と、
    前記撮像装置から画像を入力する画像入力手段と、
    前記計測対象上に存在する指標を前記画像から検出し、当該指標の画像座標に関する情報を取得する指標検出手段と、
    現在のフレームにおいて前記指標検出手段で検出された現在の指標の画像座標に関する情報を用いて、前記計測対象の位置あるいは位置及び姿勢を算出する位置姿勢算出手段と、
    過去のフレームにおいて前記計測対象の位置あるいは位置及び姿勢の算出に使用した過去の指標と、前記現在の指標との間における指標の出現及び/または消失を判定し、該指標の出現及び/または消失に起因する位置あるいは位置姿勢推定値のフレーム間での不連続性を緩和する位置あるいは位置及び姿勢の補正値を算出する補正値算出手段と、
    前記補正値算出手段が算出した補正値を用いて、前記位置姿勢算出手段が算出した位置あるいは位置及び姿勢を補正する位置姿勢補正手段と
    を有することを特徴とする位置姿勢計測装置。
  12. 請求項1乃至請求項9のいずれか1項に記載の位置姿勢計測方法をコンピュータに実行させるための制御プログラム。
  13. 請求項12に記載の制御プログラムを格納するコンピュータ読み取り可能な記録媒体。
JP2006100388A 2006-03-31 2006-03-31 位置姿勢補正装置、位置姿勢補正方法 Expired - Fee Related JP5063023B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006100388A JP5063023B2 (ja) 2006-03-31 2006-03-31 位置姿勢補正装置、位置姿勢補正方法
US11/690,914 US7860345B2 (en) 2006-03-31 2007-03-26 Position and orientation measurement method and position and orientation measurement apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006100388A JP5063023B2 (ja) 2006-03-31 2006-03-31 位置姿勢補正装置、位置姿勢補正方法

Publications (3)

Publication Number Publication Date
JP2007271564A true JP2007271564A (ja) 2007-10-18
JP2007271564A5 JP2007271564A5 (ja) 2010-04-22
JP5063023B2 JP5063023B2 (ja) 2012-10-31

Family

ID=38604895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006100388A Expired - Fee Related JP5063023B2 (ja) 2006-03-31 2006-03-31 位置姿勢補正装置、位置姿勢補正方法

Country Status (2)

Country Link
US (1) US7860345B2 (ja)
JP (1) JP5063023B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103116A (ja) * 2010-11-10 2012-05-31 Nippon Telegr & Teleph Corp <Ntt> カメラポーズ情報算出装置およびカメラポーズ情報算出プログラム
JP2016021097A (ja) * 2014-07-11 2016-02-04 Kddi株式会社 画像処理装置、画像処理方法、およびプログラム
CN106488143A (zh) * 2015-08-26 2017-03-08 刘进 一种生成视频数据、标记视频中物体的方法、系统及拍摄装置

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8355434B2 (en) * 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
US7868904B2 (en) * 2005-04-01 2011-01-11 Canon Kabushiki Kaisha Image processing method and image processing apparatus
JP4739004B2 (ja) * 2005-12-15 2011-08-03 キヤノン株式会社 情報処理装置及び情報処理方法
JP4916167B2 (ja) * 2005-12-15 2012-04-11 キヤノン株式会社 指標識別方法及び指標識別装置
JP5403861B2 (ja) * 2006-11-06 2014-01-29 キヤノン株式会社 情報処理装置、情報処理方法
JP5538667B2 (ja) * 2007-04-26 2014-07-02 キヤノン株式会社 位置姿勢計測装置及びその制御方法
DE102007045834B4 (de) 2007-09-25 2012-01-26 Metaio Gmbh Verfahren und Vorrichtung zum Darstellen eines virtuellen Objekts in einer realen Umgebung
DE102007045835B4 (de) * 2007-09-25 2012-12-20 Metaio Gmbh Verfahren und Vorrichtung zum Darstellen eines virtuellen Objekts in einer realen Umgebung
US9058764B1 (en) * 2007-11-30 2015-06-16 Sprint Communications Company L.P. Markers to implement augmented reality
JP2009152827A (ja) * 2007-12-20 2009-07-09 Nikon Corp タイムラプス画像の画像処理方法、画像処理プログラム及び画像処理装置
JP5111210B2 (ja) * 2008-04-09 2013-01-09 キヤノン株式会社 画像処理装置、画像処理方法
US8542906B1 (en) 2008-05-21 2013-09-24 Sprint Communications Company L.P. Augmented reality image offset and overlay
JP2010134649A (ja) 2008-12-03 2010-06-17 Canon Inc 情報処理装置、その処理方法及びプログラム
JP5388932B2 (ja) * 2009-04-30 2014-01-15 キヤノン株式会社 情報処理装置およびその制御方法
JP5290864B2 (ja) * 2009-05-18 2013-09-18 キヤノン株式会社 位置姿勢推定装置及び方法
JP5247590B2 (ja) * 2009-05-21 2013-07-24 キヤノン株式会社 情報処理装置及びキャリブレーション処理方法
JP5567908B2 (ja) * 2009-06-24 2014-08-06 キヤノン株式会社 3次元計測装置、その計測方法及びプログラム
JP5746477B2 (ja) 2010-02-26 2015-07-08 キヤノン株式会社 モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
JP5297403B2 (ja) 2010-02-26 2013-09-25 キヤノン株式会社 位置姿勢計測装置、位置姿勢計測方法、プログラムおよび記憶媒体
US8400471B2 (en) * 2010-03-08 2013-03-19 Empire Technology Development, Llc Interpretation of constrained objects in augmented reality
US9626696B2 (en) 2010-06-17 2017-04-18 Microsoft Technology Licensing, Llc Techniques to verify location for location based services
JP5612916B2 (ja) 2010-06-18 2014-10-22 キヤノン株式会社 位置姿勢計測装置、その処理方法、プログラム、ロボットシステム
JP5624394B2 (ja) 2010-07-16 2014-11-12 キヤノン株式会社 位置姿勢計測装置、その計測処理方法及びプログラム
JP5671281B2 (ja) 2010-08-20 2015-02-18 キヤノン株式会社 位置姿勢計測装置、位置姿勢計測装置の制御方法及びプログラム
US20120113141A1 (en) * 2010-11-09 2012-05-10 Cbs Interactive Inc. Techniques to visualize products using augmented reality
JP5838747B2 (ja) * 2011-11-11 2016-01-06 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US20150029222A1 (en) * 2011-11-29 2015-01-29 Layar B.V. Dynamically configuring an image processing function
JP6004809B2 (ja) 2012-03-13 2016-10-12 キヤノン株式会社 位置姿勢推定装置、情報処理装置、情報処理方法
JP6286123B2 (ja) * 2012-12-27 2018-02-28 サターン ライセンシング エルエルシーSaturn Licensing LLC 情報処理装置、コンテンツ提供方法及びコンピュータプログラム
JP6110256B2 (ja) * 2013-08-21 2017-04-05 株式会社日本自動車部品総合研究所 対象物推定装置および対象物推定方法
JP6253368B2 (ja) 2013-11-25 2017-12-27 キヤノン株式会社 三次元形状計測装置およびその制御方法
US9191620B1 (en) 2013-12-20 2015-11-17 Sprint Communications Company L.P. Voice call using augmented reality
GB2524983B (en) * 2014-04-08 2016-03-16 I2O3D Holdings Ltd Method of estimating imaging device parameters
JP2017129567A (ja) * 2016-01-20 2017-07-27 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
CN106022295B (zh) * 2016-05-31 2019-04-12 北京奇艺世纪科技有限公司 一种数据位置的确定方法及装置
JP7093833B2 (ja) * 2018-04-26 2022-06-30 オリンパス株式会社 移動支援システム及び移動支援方法
US10607105B1 (en) * 2019-03-27 2020-03-31 Disney Enterprises, Inc. Perceptual data association
TWI793390B (zh) * 2019-12-25 2023-02-21 財團法人工業技術研究院 資訊顯示方法及其處理裝置與顯示系統

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01148983A (ja) * 1987-12-07 1989-06-12 Matsushita Electric Ind Co Ltd Gps受信機の測位計算方法
JPH05288824A (ja) * 1992-04-14 1993-11-05 Japan Radio Co Ltd Gps受信装置
JPH05288825A (ja) * 1992-04-14 1993-11-05 Japan Radio Co Ltd Gps受信装置
JPH0843516A (ja) * 1994-07-27 1996-02-16 Matsushita Electric Ind Co Ltd Gps受信装置
JPH11136706A (ja) * 1997-09-01 1999-05-21 Mr System Kenkyusho:Kk 位置姿勢検出装置、位置姿勢検出方法、複合現実感提示装置、ゲーム装置、複合現実感提示方法および記憶媒体
JP2000227309A (ja) * 1999-02-04 2000-08-15 Olympus Optical Co Ltd 3次元位置姿勢センシング装置
JP2002090118A (ja) * 2000-09-19 2002-03-27 Olympus Optical Co Ltd 3次元位置姿勢センシング装置
JP2002122654A (ja) * 2000-10-18 2002-04-26 Japan Marine Sci & Technol Center Gpsを用いた位置制御方法とその装置
JP2003254716A (ja) * 2002-03-04 2003-09-10 Sony Corp 3次元位置・姿勢計測装置及び方法、記憶媒体、並びにコンピュータ・プログラム
JP2004056343A (ja) * 2002-07-18 2004-02-19 Sony Corp データ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法
JP2005107247A (ja) * 2003-09-30 2005-04-21 Canon Inc 位置姿勢推定方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3796449B2 (ja) 2002-01-31 2006-07-12 キヤノン株式会社 位置姿勢決定方法および装置並びにコンピュータプログラム
EP1349114A3 (en) 2002-03-19 2011-06-15 Canon Kabushiki Kaisha Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus
JP4136859B2 (ja) 2003-01-10 2008-08-20 キヤノン株式会社 位置姿勢計測方法
JP4367926B2 (ja) 2004-05-17 2009-11-18 キヤノン株式会社 画像合成システムおよび画像合成方法、および画像合成装置
JP4914039B2 (ja) 2005-07-27 2012-04-11 キヤノン株式会社 情報処理方法および装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01148983A (ja) * 1987-12-07 1989-06-12 Matsushita Electric Ind Co Ltd Gps受信機の測位計算方法
JPH05288824A (ja) * 1992-04-14 1993-11-05 Japan Radio Co Ltd Gps受信装置
JPH05288825A (ja) * 1992-04-14 1993-11-05 Japan Radio Co Ltd Gps受信装置
JPH0843516A (ja) * 1994-07-27 1996-02-16 Matsushita Electric Ind Co Ltd Gps受信装置
JPH11136706A (ja) * 1997-09-01 1999-05-21 Mr System Kenkyusho:Kk 位置姿勢検出装置、位置姿勢検出方法、複合現実感提示装置、ゲーム装置、複合現実感提示方法および記憶媒体
JP2000227309A (ja) * 1999-02-04 2000-08-15 Olympus Optical Co Ltd 3次元位置姿勢センシング装置
JP2002090118A (ja) * 2000-09-19 2002-03-27 Olympus Optical Co Ltd 3次元位置姿勢センシング装置
JP2002122654A (ja) * 2000-10-18 2002-04-26 Japan Marine Sci & Technol Center Gpsを用いた位置制御方法とその装置
JP2003254716A (ja) * 2002-03-04 2003-09-10 Sony Corp 3次元位置・姿勢計測装置及び方法、記憶媒体、並びにコンピュータ・プログラム
JP2004056343A (ja) * 2002-07-18 2004-02-19 Sony Corp データ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法
JP2005107247A (ja) * 2003-09-30 2005-04-21 Canon Inc 位置姿勢推定方法および装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103116A (ja) * 2010-11-10 2012-05-31 Nippon Telegr & Teleph Corp <Ntt> カメラポーズ情報算出装置およびカメラポーズ情報算出プログラム
JP2016021097A (ja) * 2014-07-11 2016-02-04 Kddi株式会社 画像処理装置、画像処理方法、およびプログラム
CN106488143A (zh) * 2015-08-26 2017-03-08 刘进 一种生成视频数据、标记视频中物体的方法、系统及拍摄装置
CN106488143B (zh) * 2015-08-26 2019-08-16 刘进 一种生成视频数据、标记视频中物体的方法、系统及拍摄装置

Also Published As

Publication number Publication date
US7860345B2 (en) 2010-12-28
US20070242899A1 (en) 2007-10-18
JP5063023B2 (ja) 2012-10-31

Similar Documents

Publication Publication Date Title
JP5063023B2 (ja) 位置姿勢補正装置、位置姿勢補正方法
JP4785416B2 (ja) 位置姿勢計測方法及び装置
EP1596330B1 (en) Estimating position and orientation of markers in digital images
US7092109B2 (en) Position/orientation measurement method, and position/orientation measurement apparatus
JP5746477B2 (ja) モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
JP5832341B2 (ja) 動画処理装置、動画処理方法および動画処理用のプログラム
JP4599184B2 (ja) 指標配置計測方法、指標配置計測装置
US8130385B2 (en) Information processing apparatus and information processing method
US10930008B2 (en) Information processing apparatus, information processing method, and program for deriving a position orientation of an image pickup apparatus using features detected from an image
JP2002228442A (ja) 位置姿勢の決定方法及び装置並びに記憶媒体
KR102169309B1 (ko) 정보 처리장치 및 그 제어방법
JP2006242943A (ja) 位置姿勢計測方法及び装置
JP2002259992A (ja) 画像処理装置およびその方法並びにプログラムコード、記憶媒体
JP2003222509A (ja) 位置姿勢決定方法および装置並びに記憶媒体
US20210374978A1 (en) Capturing environmental scans using anchor objects for registration
Brunetto et al. Fusion of inertial and visual measurements for rgb-d slam on mobile devices
KR100248374B1 (ko) 증강현실 시스템에서 카메라와 트랙커간의 오차 보정방법
JP2006215924A (ja) 位置姿勢計測方法及び装置
JP2018173882A (ja) 情報処理装置、方法、及びプログラム
JPWO2008032375A1 (ja) 画像補正装置及び方法、並びにコンピュータプログラム
JP4612804B2 (ja) 位置姿勢計測方法および情報処理装置
JP4926598B2 (ja) 情報処理方法、情報処理装置
KR102456872B1 (ko) 영상센서와 관성센서의 강결합 융합을 이용한 손동작 추적시스템 및 방법
CN110785792A (zh) 3d建模方法、电子设备、存储介质及程序产品
CN111489376A (zh) 跟踪交互设备的方法、装置、终端设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120717

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: 20120806

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: 20120807

R151 Written notification of patent or utility model registration

Ref document number: 5063023

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: 20150817

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees