JP4612804B2 - Position and orientation measurement method and information processing apparatus - Google Patents
Position and orientation measurement method and information processing apparatus Download PDFInfo
- Publication number
- JP4612804B2 JP4612804B2 JP2004144894A JP2004144894A JP4612804B2 JP 4612804 B2 JP4612804 B2 JP 4612804B2 JP 2004144894 A JP2004144894 A JP 2004144894A JP 2004144894 A JP2004144894 A JP 2004144894A JP 4612804 B2 JP4612804 B2 JP 4612804B2
- Authority
- JP
- Japan
- Prior art keywords
- orientation
- value
- index
- posture
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Length Measuring Devices With Unspecified Measuring Means (AREA)
- Gyroscopes (AREA)
Description
本発明は、物体の位置及び姿勢を計測するものに関する。 The present invention relates to an object that measures the position and orientation of an object.
物体の位置及び姿勢を計測する方法として、環境に磁場発生装置を固定して設置し、物体に装着した磁場検出装置によってその磁場を計測することで物体の位置及び姿勢を計測する磁気式センサが広く用いられている。しかし、磁気式センサは周辺の磁場環境の影響を大きく受けるため、鉄骨に囲まれたオフィスビル内等の環境においては、満足な計測精度を得ることができなかった(特許文献1)。 As a method for measuring the position and orientation of an object, there is a magnetic sensor that measures the position and orientation of an object by installing a magnetic field generator fixed in the environment and measuring the magnetic field by a magnetic field detection device attached to the object. Widely used. However, since the magnetic sensor is greatly affected by the surrounding magnetic field environment, satisfactory measurement accuracy cannot be obtained in an environment such as an office building surrounded by a steel frame (Patent Document 1).
一方、本出願人は、特願2003−004945号において、物体上に3点以上の指標を設置し、天井等に固定して配置した撮像装置(以下、客観視点カメラと呼ぶ)によってこれを撮影し、得られた画像から指標の画像座標を検出することで、物体の位置及び姿勢を算出することを提案している。
この方法は環境に対する制約が少ないという利点を有しているが、画像上における指標間の距離(あるいは指標によって構成される凸包の面積)が不十分な場合に、期待するような性能を得ることができなかった。特に姿勢に関しては精度及び安定性の両面で非常に性能が悪く、その改善のためには、画像上における指標がなす凸包が十分に大きくなるように工夫する必要があった。しかし、指標が大写しになるように画角の狭いカメラを用いて物体を撮影すると、移動に対する計測範囲が極度に限定されてしまうという問題が発生する。また、物体上における指標の配置間隔を広く設けることである程度の改善も期待できるが、物体の大きさによってはそれを行うことが困難であった。 This method has the advantage that there are few restrictions on the environment, but when the distance between the indices on the image (or the area of the convex hull formed by the indices) is insufficient, the expected performance is obtained. I couldn't. In particular, the posture is extremely poor in terms of both accuracy and stability, and in order to improve the posture, it is necessary to devise so that the convex hull formed by the index on the image becomes sufficiently large. However, if an object is photographed using a camera with a narrow angle of view so that the index becomes a large image, there arises a problem that the measurement range for movement is extremely limited. In addition, although a certain degree of improvement can be expected by providing a wide interval between the indicators on the object, it is difficult to do so depending on the size of the object.
物体の位置姿勢を算出する情報処理装置であって、前記物体に配置された指標を、固定された位置が既知である客観視点位置姿勢から、撮像した撮像画像を入力する画像入力手段と、前記物体の姿勢計測値を計測する姿勢計測手段と、前記姿勢計測手段の方位ドリフト誤差補正値、前記指標の前記物体に対する位置、および前記客観視点位置を保持する保持手段と、前記姿勢計測値および前記方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測手段と、前記撮像画像に撮像された指標の画像座標を検出する指標検出手段と、前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出手段と、前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新手段と、を有し、前記位置姿勢算出手段が、前記物体の位置姿勢の設定値を入力する設定値入力手段と、前記検出した指標が2点以上あるか否かを判定する指標判定手段と、前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出手段と、前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出手段と、前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出手段と、前記算出された補正値に基づいて、前記設定値を補正する補正手段と、を有することを特徴とする。 An information processing apparatus for calculating the position and orientation of an object, the arranged index on the object, from an objective viewpoint position and orientation are known fixed position, an image input unit for inputting a captured image captured, the Attitude measurement means for measuring an attitude measurement value of an object, an orientation drift error correction value of the attitude measurement means, a position of the index with respect to the object, and a holding means for holding the objective viewpoint position; the attitude measurement value and the Based on the azimuth drift error correction value, the posture prediction means for calculating the posture prediction value of the object, the index detection means for detecting the image coordinates of the index captured in the captured image, the posture prediction value, and the detected image coordinates of the indices, position relative to the object of the indicator, and on the basis of the objective viewpoint position and orientation, the position and orientation calculation means for calculating the position and orientation of the object, the calculated The based on the position and orientation, anda updating means for updating the azimuth drift error correction value the held, the position and orientation calculation means, set value input means for inputting a set value of the position and orientation of the object And an index determination means for determining whether or not the detected index is two or more, and when it is determined that the detected index is two or more, the posture predicted value, the set value, and the index Based on the position with respect to the object and the objective viewpoint position and orientation, estimated value calculation means for calculating an estimated value of the image coordinates of the index, image coordinates of the detected index, and estimated values of the image coordinates of the index An error calculation means for calculating the error of the object, a correction value calculation means for calculating a correction value of the position and orientation of the object based on the calculated error, and the set value based on the calculated correction value. Correction means for correcting , Characterized by having a.
本発明に係る位置姿勢計測装置によれば、画像上における指標のなす凸包が小さい場合であっても、物体の位置及び姿勢の計測を安定かつ高精度に行うことが可能となる。すなわち、同じ配置の指標を用いる場合であれば、従来手法と比べて安定した位置及び姿勢を得ることが可能であるし、指標の配置の制約が少ないので、従来手法よりも多種の物体を計測することができる。また、より広範囲をカバーする広角の客観視点カメラを用いることができるので、移動に対する計測範囲を広く保つことが可能となる。 According to the position and orientation measurement apparatus of the present invention, it is possible to stably and accurately measure the position and orientation of an object even when the convex hull formed by the index on the image is small. In other words, if the same placement index is used, it is possible to obtain a stable position and posture compared to the conventional method, and there are fewer restrictions on the placement of the index, so a wider variety of objects can be measured than the conventional method. can do. In addition, since a wide-angle objective viewpoint camera that covers a wider area can be used, it is possible to keep a wide measurement range for movement.
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。 Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.
[第1の実施形態]
本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢の計測を行う。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[First Embodiment]
The position and orientation measurement apparatus according to the present embodiment measures the position and orientation of an arbitrary measurement target object. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.
図1は、本実施形態における位置姿勢計測装置の構成を示している。同図に示したように、本実施形態における位置姿勢計測装置100は、客観視点カメラ180(180a,180b,180c,180d)、画像入力部160、データ記憶部170、指標検出部110、姿勢センサ140、姿勢予測部150、及び位置姿勢算出部120によって構成されており、計測対象物体130に接続されている。
FIG. 1 shows a configuration of a position / orientation measurement apparatus according to the present embodiment. As shown in the figure, the position /
姿勢センサ140上の複数の位置には、客観視点カメラ180によって撮影するための指標として、物体座標系(計測対象物体130上の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)上における位置xC Pkが既知である指標Pk(k=1,,,K)が設定されている。
At a plurality of positions on the
これらの指標は、位置及び姿勢を計測しようとする計測対象範囲内の各々の地点に計測対象物体130を位置させた時に、客観視点カメラ180によって取得される客観視点画像上において観測される指標の総数が常に少なくとも2個以上となるように設置されていることが望ましい。図1の例は、2個の指標P1,P2が設定されており、そのうちの指標P1が客観視点カメラ180cの視野内に、指標P2が客観視点カメラ180c及び180dの視野内に含まれている状況を示している。
These indices are indices observed on the objective viewpoint image acquired by the objective viewpoint camera 180 when the
なお、指標Pkは、例えば、それぞれが異なる色を有する円形状のマーカによって構成してもよいし、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成してもよい。撮影画像上における投影像の画像座標が検出可能であって、かついずれの指標であるかが識別可能であるような指標であれば、何れの形態であってもよい。また指標は故意に設定されたものであっても良いし、故意に設定されたものではない、自然形状のものを用いても良い。 The index P k may be configured by, for example, circular markers each having a different color, or may be configured by feature points such as natural features each having a different texture feature. Any form may be used as long as the image coordinates of the projected image on the photographed image can be detected and the index can be identified. The indicator may be set intentionally, or may be a natural shape that is not set intentionally.
客観視点カメラ180(180a,180b,180c,180d)は、計測対象範囲内に計測対象物体130が位置するときに、そのいずれかが計測対象物体130を撮像可能な位置に固定して配置されている。ここで、各客観視点カメラ180の世界座標系における位置及び姿勢は、データ記憶部170に既知の値として予め保持されているものとする。客観視点カメラ180が出力する画像(以下、これを客観視点画像と呼ぶ)は、画像入力部160に入力される。
The objective viewpoint camera 180 (180a, 180b, 180c, 180d) is arranged with one of the
画像入力部160は、客観視点画像の夫々をデジタルデータに変換し、データ記憶部170に保存する。
The
姿勢センサ140は、計測対象物体130に装着されており、姿勢センサ140自身の現在の姿勢を計測して姿勢予測部150へと出力する。姿勢センサ140は、ジャイロセンサをベースとしたセンサユニットであり、例えば、株式会社トキメックのTISS−5−40や、米国InterSense社のInertiaCube2等によって構成される。これらのセンサによって計測される姿勢計測値は、真の姿勢とは異なった、誤差を有する姿勢である。ただし、これらの姿勢センサは、地球の重力方向を観測するセンサを構成要素として有しており、傾斜角方向のドリフト誤差の蓄積をキャンセルする機能を有しているので、傾斜角方向(ピッチ角及びロール角)に関してはドリフト誤差を発生しないという性質を有している。言い換えれば、方位角方向(ヨー角方向)に関しては時間の経過に伴って蓄積されるドリフト誤差を有している。
The
姿勢予測部150は、方位ドリフト誤差補正値φをデータ記憶部170から入力し、姿勢センサ140から入力した姿勢計測値を補正して計測対象物体130の姿勢を予測し、データ記憶部170へと出力する。
The
指標検出部110は、データ記憶部170より客観視点画像を入力し、入力した画像中に撮影されている指標の画像座標を検出する。例えば、指標の各々が異なる色を有するマーカによって構成されている場合には、客観視点画像上から各々のマーカ色に対応する領域を検出し、その重心位置を指標の検出座標とする。また、指標の各々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、既知の情報として予め保持している各々の指標のテンプレート画像によるテンプレートマッチングを客観視点画像上に施すことにより、指標の位置を検出する。なお、計測対象物体130の位置の算出値(位置姿勢算出部120の出力)及び姿勢の予測値(姿勢予測部150の出力)をデータ記憶部170からさらに入力し、これらの値に基づいて画像上における指標の位置を予測し探索範囲を限定することにより、指標検出処理の計算負荷を軽減したり、指標の誤検出や誤同定を低減させたりすることが可能である。
The
指標検出部110は、さらに、検出された指標の画像座標とその指標の識別子をデータ記憶部170へと出力する。以下では、客観視点カメラ180(a,b,c,d)の撮影画像に対して指標検出部110によって検出された指標を、カメラの識別子x(x=a,b,c,d)と、検出された指標の夫々に付けられた識別子m(m=1,,,Mx)を用いて、Pkxmと表記する。ここで、Mxは夫々の客観視点画像に対して検出された指標の数を表している。また、検出された指標Pkxmの画像座標を、その画像を撮影した客観視点カメラの識別子に応じて、各々ua Pkam,ub Pkbm,uc Pkcm,ud Pkdmと表記する。また、Mを、各画像上で検出された指標の総和とする。例えば図1の場合には、Ma=0,Mb=0,Mc=2,Md=1,M=3であり、指標の識別子kc1=1,kc2=2,kd1=2と、これらを撮影したカメラの識別子と、これらに対応する画像座標uc Pkc1,uc Pkc2,ud Pkd1が出力される。
The
位置姿勢算出部120は、計測対象物体130の姿勢の予測値と、指標検出部110によって検出された各々の指標の画像座標ua Pkam,ub Pkbm,uc Pkcm,ud Pkdmとそれに対応する物体座標(物体座標系における座標値)xC Pkam,xC Pkbm,xC Pkcm,xC Pkdmの組とをデータ記憶部170から入力し、これらの情報に基づいて計測対象物体130の位置及び姿勢を算出し、I/Fを介して外部へ出力する。また、算出した計測対象物体130の位置をデータ記憶部170に出力し、さらに、位置及び姿勢の算出工程で導出される姿勢センサ140の方位ドリフト誤差補正値の更新値によって、データ記憶部170が保持する方位ドリフト誤差補正値を更新する。
The position and
データ記憶部170は、方位ドリフト誤差補正値、画像入力部160から入力される画像、姿勢予測部150から入力される姿勢の予測値、位置姿勢算出部120から入力される位置の算出値、指標検出部110から入力される指標の画像座標及び識別子、さらに、既知の値である指標の物体座標(物体座標系における座標値)等のデータを保持し、必要に応じてこれらを入出力する。
The
なお、図1に示した画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々は、独立した装置として扱っても良いし、夫々ソフトウェアとして1つもしくは複数のコンピュータにインストールし、夫々のコンピュータのCPUにより実行することで、その機能を実現するようにしても良い。本実施形態では、各部(画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120)は1台のコンピュータ内で実行対象となるソフトウェアとして扱う。
Note that each of the
図2は画像入力部160、データ記憶部170、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々をソフトウェアとして実行するコンピュータの基本構成を示す図である。
FIG. 2 is a diagram illustrating a basic configuration of a computer that executes each of the
1001はCPUで、RAM1002やROM1003に格納されたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、画像入力部160、指標検出部110、姿勢予測部150、及び位置姿勢算出部120の夫々のソフトウェアの実行を制御して、各部の機能を実現する。
A
1002はRAMで、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータを一時的に記憶するエリアを備えると共に、CPU1001が各種の処理を行うために必要とするワークエリアを備える。データ記憶部170の機能は、RAM1002によって実現される。
A
1003はROMで、一般にコンピュータの記憶プログラムや設定データなどが格納されている。1004、1005は夫々キーボード、マウスで、操作者は夫々を用いて、各種の指示をCPU1001に入力することができる。
A
1006は表示部で、CRTや液晶画面などにより構成されており、例えば、計測対象物体130の位置姿勢計測のために表示すべきメッセージ等を表示することができる。
A display unit 1006 includes a CRT, a liquid crystal screen, and the like, and can display a message to be displayed for measuring the position and orientation of the
1007は外部記憶装置で、ハードディスクなどの大容量情報記憶装置として機能する装置であって、ここにOS(オペレーティングシステム)やソフトウェアのプログラム等を保存する。また本実施形態の説明において、既知であると説明する情報はここに保存されており、必要に応じてRAM1002にロードされる。
1008は記憶媒体ドライブで、CD−ROMやDVD−ROMなどの記憶媒体に記憶されているプログラムやデータをCPU1001からの指示に従って読み出して、RAM1002や外部記憶装置1007に出力する。
Reference numeral 1008 denotes a storage medium drive, which reads programs and data stored in a storage medium such as a CD-ROM or DVD-ROM in accordance with instructions from the
1009はI/Fで、計測対象物体130を接続するためのアナログビデオポートあるいはIEEE1394等のデジタル入出力ポート、姿勢センサ140を接続するためのRS232CあるいはUSBシリアルポート、また、算出した計測対象物体130の位置及び姿勢を外部へ出力するためのイーサネット(登録商標)ポート等によって構成される。夫々が入力したデータはI/F1009を介してRAM1002に取り込まれる。画像入力部160の機能の一部は、I/F1009によって実現される。
1010は上述の各部を繋ぐバスである。
A
図3は、姿勢予測部150の処理手順を示すフローチャートであり、CPU1001が姿勢予測部150のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
FIG. 3 is a flowchart showing a processing procedure of the
なお、姿勢を表現する方法には様々なものが存在するが、ここでは、3×3の回転行列Rによって表現されているものとする。 There are various methods for expressing the posture. Here, it is assumed that the posture is expressed by a 3 × 3 rotation matrix R.
ステップS3000において、姿勢予測部150は、姿勢センサ140から姿勢計測値R#( # はセンサによる計測値を表す記号)を入力する。
In step S3000, the
ステップS3010において、姿勢予測部150は、データ記憶部170から方位ドリフト誤差補正値φ*を入力する。
In step S3010,
ステップS3020において、姿勢予測部150は、姿勢計測値R#(姿勢センサ140の姿勢を表している)に、姿勢センサ140から計測対象物体130への姿勢変換と、方位ドリフト誤差補正値φ*によるドリフト誤差補正を反映させ、方位ドリフト誤差補正後の計測対象物体130の姿勢を算出し、これを、姿勢の予測値R*とする。
In step S3020, the
ここで、△R(φ)は、方位方向にφだけの回転を加える回転行列であり、φの関数として次式によって定義される。 Here, ΔR (φ) is a rotation matrix that adds rotation by φ in the azimuth direction, and is defined by the following equation as a function of φ.
ここで、l=(l1,l2,l3)は、世界座標系における鉛直上方向(地球の重力の反対方向)を表す既知のベクトルを表している。 Here, l = (l 1 , l 2 , l 3 ) represents a known vector representing the vertical upward direction (the direction opposite to the gravity of the earth) in the world coordinate system.
また、RSCは、物体座標系(計測対象物体130の位置及び姿勢を表す座標系)からセンサ座標系(姿勢センサ140の位置及び姿勢を表す座標系)へ姿勢を変換する3×3の行列であり、固定値である姿勢センサ140と計測対象物体130の相対姿勢に基づいて、既知の値として予め設定されている。
The RSC is a 3 × 3 matrix for converting the posture from the object coordinate system (the coordinate system representing the position and posture of the measurement target object 130) to the sensor coordinate system (the coordinate system representing the position and posture of the posture sensor 140). And is set in advance as a known value based on the relative posture of the
ステップS3030において、姿勢予測部150は、姿勢の予測値R*をデータ記憶部170へと出力する。
In step S <
ステップS3040において、姿勢予測部150は、処理を終了するか否かの判定を行い、処理を終了しない場合には、処理をステップS3000へと進める。
In step S3040,
図4は、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートであり、CPU1001が位置姿勢算出部120のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
FIG. 4 is a flowchart of processing for calculating parameters indicating the position and orientation of the
位置姿勢算出部120は、計測対象物体130の位置t=[xyz]Tと、姿勢センサ140の方位ドリフト誤差補正値の更新値φの合計4パラメータを、算出すべき未知パラメータとして取り扱う。すなわち、本実施形態では、姿勢についてはその全てを未知とするのではなく、姿勢の予測値R*には方位方向のドリフト誤差のみが含まれており、その方位ドリフト誤差補正値の更新値φのみを求めることで、計測対象物体130の姿勢が得られるというモデルを適用する。以下では、求めるべき未知パラメータを4値の状態ベクトルs=[xyzφ]Tによって記述する。
The position /
ステップS4000において、位置姿勢算出部120は、計測対象物体130の姿勢の予測値R*(姿勢予測部150の出力)をデータ記憶部170から入力する。
In step S4000, the position /
ステップS4010において、位置姿勢算出部120は、状態ベクトルsの初期値を、s=[xτ−1yτ−1zτ−10]Tと設定する。ここで、xτ−1,yτ−1,zτ−1は、1ループ前の処理(時刻τ−1とおく)におけるステップS4110において算出された計測対象物体130の位置を表している。
In step S <b> 4010, the position /
ステップS4020において、位置姿勢算出部120は、指標検出部110によって検出された指標の画像座標とその世界座標の組を、データ記憶部170から入力する。例えば図1の場合には、画像座標uc P1,uc P2,ud P2及びそれらに対応する物体座標(物体座標系における座標値)xC P1,xC P2が入力される。
In step S <b> 4020, the position /
ステップS4030において、位置姿勢算出部120は、入力された指標の情報が位置及び姿勢の推定に十分な情報を含むか否かを判定し、それに応じて処理の分岐を行う。具体的には、入力した指標の実体の総数が2点以上の場合はステップS4040に処理を進め、2点未満の場合はステップS4100に処理を進める。例えば図1の場合には、2つの指標(投影像は3点であるが、指標の実体は2つ)が検出されているので,ステップS4040へと処理が進められる。
In step S4030, the position /
ステップS4040において、位置姿勢算出部120は、各々の指標Pkmに対して、その画像座標の推定値uPkm*を算出する。uPkm*の算出は、既知な情報として予め保持している指標Pkm各々の物体座標(物体座標系における座標値)xC Pkmと、現在の状態ベクトルsの関数:
In step S4040, the position and
に基づいて行われる。具体的には、関数FB()は、世界座標系上における当該指標の座標xW PkmをxC Pkmとsから求める次式、 Based on. Specifically, the function F B () is obtained by the following formula for obtaining the coordinate x W Pkm of the index on the world coordinate system from x C Pkm and s:
及び、世界座標系xW Pkmから客観視点カメラ座標(客観視点カメラ座標系(客観視点カメラ180上の1点を原点として定義し、更に互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)上における当該指標の座標)xB Pkmを求める次式、 From the world coordinate system x W Pkm , an objective viewpoint camera coordinate (an objective viewpoint camera coordinate system (one point on the objective viewpoint camera 180 is defined as an origin, and three axes orthogonal to each other are defined as an X axis, a Y axis, and a Z axis, respectively). The coordinate of the index on the coordinate system defined as) x B Pkm
及び、客観視点カメラ座標xB Pkmから画像座標uPkm*を求める次式、 And the following equation for obtaining the image coordinates u Pkm * from the objective viewpoint camera coordinates x B Pkm ,
によって構成されている。ここで、R*は、ステップS4000で入力した姿勢の予測値を表している。また、△R(φ)は,方位方向にφだけの回転を加える回転行列を表しており、式2によって定義される。また、fB x及びfB yは夫々の客観視点カメラ180のx軸方向及びy軸方向における焦点距離、RWBは夫々の客観視点カメラ180の世界座標系における姿勢を表す3x3行列、tWBは夫々の客観視点カメラ180の世界座標系における位置を表す3次元ベクトルであり、客観視点カメラ180の夫々に対して既知の値として予め保持されている。 It is constituted by. Here, R * represents the predicted value of the posture input in step S4000. ΔR (φ) represents a rotation matrix for adding rotation by φ in the azimuth direction, and is defined by Equation 2. Further, f B x and f B y are focal lengths of the objective viewpoint cameras 180 in the x-axis direction and the y-axis direction, R WB is a 3 × 3 matrix representing the attitude of each objective viewpoint camera 180 in the world coordinate system, t WB Is a three-dimensional vector representing the position of each objective viewpoint camera 180 in the world coordinate system, and is held in advance as a known value for each objective viewpoint camera 180.
ステップS4050において、位置姿勢算出部120は、各々の指標Pkmに対して、画像座標の推定値uPkm*と実測値uPkmとの誤差ΔuPkmを、式7に基づいて算出する。
In step S4050, the position /
ステップS4060において、位置姿勢算出部120は、各々の指標Pkmに対して、状態ベクトルsに関する画像ヤコビアン(すなわち、式3の関数Fb( )を状態ベクトルsの各要素で偏微分した解を各要素に持つ2行×4列のヤコビ行列)Jus Pkm(=∂u/∂s)を算出する。具体的には、式6の右辺を客観視点カメラ座標xB Pkmの各要素で偏微分した解を各要素に持つ2行×3列のヤコビ行列JuxB Pkm(=∂u/∂xB)と、式5の右辺を世界座標xW Pkmの各要素で偏微分した解を各要素に持つ3行×3列のヤコビ行列JxBxW Pkm(=∂xB/∂xW)と、式4の右辺を状態ベクトルsの各要素で偏微分した解を各要素に持つ3行×4列のヤコビ行列JxWs Pkm(=∂xW/∂s)を算出し、次式によってJus Pkmを算出する。
In step S4060, the position /
ステップS4070において、位置姿勢算出部120は、ステップS4050及びステップS4060において算出した誤差ΔuPkm及び画像ヤコビアンJus Pkmに基づいて、状態ベクトルsの補正値Δsを算出する。具体的には、各々の指標Pkmに対して求めた誤差ΔuPkmを垂直に並べた2M次元の誤差ベクトルU及び、各々の指標Pkmに対して求めた画像ヤコビアンJus Pkmを垂直に並べた2M行×4列の行列θを作成し、θの擬似逆行列θ’を用いて、
In step S4070, the position /
として算出する。図1の例ではM=3であるので、Uは6次元ベクトル、θは6行×4列の行列となる。 Calculate as In the example of FIG. 1, since M = 3, U is a 6-dimensional vector, and θ is a 6 × 4 matrix.
ステップS4080において、位置姿勢算出部120は、ステップS4070において算出した補正値Δsを用いて、式10に従って状態ベクトルsを補正し、得られた値をsの新たな推定値とする。
In step S4080, the position /
ステップS4090において、位置姿勢算出部120は、誤差ベクトルUが予め定めた閾値より小さいかどうか、あるいは、補正値Δsが予め定めた閾値より小さいかどうかといった何らかの判定基準を用いて、計算が収束しているか否かの判定を行う。収束してない場合には、補正後の状態ベクトルsを用いて、再度ステップS4040以降の処理を行う。
In step S4090, the position /
ステップS4090において計算が収束したと判定されると、ステップS4100において、位置姿勢算出部120は、得られた状態ベクトルsから、計測対象物体130の姿勢を算出する。具体的には、前ステップまでで得られた状態ベクトルsから方位ドリフト誤差補正値の更新値φを得て、次式:
If it is determined in step S4090 that the calculation has converged, in step S4100, the position /
によって、計測対象物体130の姿勢Rを算出する。
To calculate the posture R of the
ステップS4110において、位置姿勢算出部120は、得られた計測対象物体130の位置及び姿勢の情報をI/F1009を介して外部へ出力する。また、計測対象物体130の位置tをデータ記憶部170へと出力する。なお、位置及び姿勢の出力形態は例えば姿勢を表す3×3行列Rと位置を表す3次元ベクトルtの組であってもよいし、姿勢成分をオイラー角に変換したものでもよいし、位置及び姿勢から算出したモデリング変換行列でもよいし、他のいずれの位置姿勢記述方法によるものでもよい。
In step S <b> 4110, the position /
ステップS4120において、位置姿勢算出部120は、以上の算出工程で得られた方位ドリフト誤差補正値の更新値φを用いて、データ記憶部170が保持している方位ドリフト誤差補正値φ*を次式によって更新する。
In step S4120, the position /
ステップS4130において、位置姿勢算出部120は、処理を終了するか否かの判定を行い、終了しない場合には再びステップS4000へと進み、次フレーム以降の入力データに対して同様の処理を実行する。
In step S4130, the position /
以上によって、計測対象物体の位置及び姿勢が計測される。 As described above, the position and orientation of the measurement target object are measured.
なお、上記の実施形態では複数台の客観視点カメラ180を用いていたが、必ずしも複数台の客観視点カメラが必要ではなく、客観視点カメラが1台の場合であっても本実施形と同様の効果が得られることはいうまでもない。 In the above embodiment, a plurality of objective viewpoint cameras 180 are used. However, a plurality of objective viewpoint cameras are not necessarily required, and even if there is only one objective viewpoint camera, it is the same as in the present embodiment. Needless to say, an effect can be obtained.
[第2の実施形態]
上記の実施形態では、姿勢センサの方位ドリフト誤差補正値の更新値φを未知数として求めていたが、姿勢センサの精度が良い場合や、使用時間が短時間である場合や、あるいは、方位ドリフト誤差補正値の更新値の入力を手作業で行うことが可能な場合には、位置姿勢算出部120で求めるべきパラメータを計測対象物体130の位置のみに限定してもよい。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であって、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Second Embodiment]
In the above embodiment, the update value φ of the orientation sensor error correction value of the orientation sensor is obtained as an unknown value. However, when the accuracy of the orientation sensor is good, the usage time is short, or the orientation drift error When the correction value update value can be input manually, the parameter to be obtained by the position /
本実施形態では、第1の実施形態におけるφをすべて0とおく。すなわち、本実施形態における位置姿勢算出部120では、求めるべき未知パラメータを3値の状態ベクトルs’=[xyz]Tによって記述する。また、本実施形態における位置姿勢算出部120では、第1の実施形態における位置姿勢算出部120の各処理工程(各ヤコビ行列や式4等)からφに関する項を取り除いたものを用いればよい。例えば式4は次式に変更する。
In this embodiment, all φ in the first embodiment are set to 0. That is, in the position /
本実施形態に係る位置姿勢計測装置によれば、求めるべき未知パラメータ数が少なくなるため、得られる解(計測対象物体130の位置及び姿勢)の安定性のさらなる向上が期待できる。 According to the position / orientation measurement apparatus according to the present embodiment, since the number of unknown parameters to be obtained is reduced, further improvement in the stability of the obtained solution (position and orientation of the measurement target object 130) can be expected.
なお、手作業で方位ドリフト誤差補正値の更新値を入力するためには、例えば、図1の構成に補正値更新手段を更に追加すればよい。補正値更新手段は、オペレータの入力に従って方位ドリフト誤差補正値の更新値φを得て、式12にしたがってデータ記憶部170に保存された方位ドリフト誤差補正値φ*を更新する。補正値更新手段は、例えば、キーボード1004の特定のキーをインターフェイスとして用いることで実現される。例えば、[+]キーにより+0.1度を、[−]キーにより−0.1度を更新値として設定するように構成すればよい。なお、第1の実施形態のような、画像情報に基づいて方位ドリフト誤差補正値の更新値を導出する形態においても、手入力による補正値更新手段を併用することが可能なことはいうまでもない。
In order to manually input the update value of the azimuth drift error correction value, for example, a correction value update means may be further added to the configuration of FIG. The correction value update means obtains the updated value φ of the azimuth drift error correction value according to the operator's input, and updates the azimuth drift error correction value φ * stored in the
[第3の実施形態]
上記の実施形態の各々では、未知の値として求めるパラメータを、位置及び方位ドリフト誤差補正値の更新値φか、位置のみかのいずれかに固定していた。しかし、何れのパラメータを未知とするかは必ずしも固定である必要はなく、夫々のパラメータの特性に応じて未知とするパラメータを適宜変更することにより、より好適な位置姿勢の推定を行うことができる。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であり、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Third Embodiment]
In each of the above-described embodiments, the parameter to be obtained as an unknown value is fixed to either the updated value φ of the position and orientation drift error correction value or only the position. However, it is not necessarily fixed which parameter is unknown, and a more suitable position and orientation can be estimated by appropriately changing the unknown parameter according to the characteristics of each parameter. . The position / orientation measurement apparatus according to the present embodiment is a position / orientation measurement apparatus for measuring the position and orientation of an arbitrary measurement target object, and the position / orientation calculation unit of the position / orientation measurement apparatus according to the first embodiment. It has a configuration in which 120 functions are changed. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.
本実施形態における位置姿勢算出部は、第1の実施形態における位置姿勢算出部と第2の実施形態における位置姿勢算出部の夫々の機能を併せ持っており、通常は位置のみを未知のパラメータとする第2の実施形態における位置姿勢算出部の処理を行い、一定時間間隔(例えば10秒(300フレーム)に1回)毎に、位置と方位ドリフト誤差補正値の更新値を未知のパラメータとする第1の実施形態における位置姿勢算出部の処理を実行する。なお、方位ドリフト誤差補正値を更新する時間間隔は、姿勢センサ140のドリフト特性に応じて設定するのが好ましく、オペレータによる対話的操作によって設定可能であることが好ましい。
The position / orientation calculation unit according to the present embodiment has both the functions of the position / orientation calculation unit according to the first embodiment and the position / orientation calculation unit according to the second embodiment. Normally, only the position is an unknown parameter. The position / orientation calculation unit according to the second embodiment performs the process, and the update value of the position and orientation drift error correction value is set as an unknown parameter at regular time intervals (for example, once every 10 seconds (300 frames)). The process of the position and orientation calculation unit in the embodiment is executed. Note that the time interval for updating the azimuth drift error correction value is preferably set according to the drift characteristics of the
本実施形態に係る位置姿勢計測装置によれば、姿勢センサ140として、短時間であれば方位ドリフト誤差を無視できる程度の精度が得られる姿勢センサを用いる場合に、方位ドリフト誤差を補正しつつ、得られる解の安定性を向上させることが期待できる。
According to the position and orientation measurement apparatus according to the present embodiment, when the
[第4の実施形態]
上記の実施形態の各々では、ある1時刻の画像情報から方位ドリフト誤差補正値の更新値を求めていた。しかし、方位ドリフト誤差の値はフレーム間での相関性が高いので、複数フレームの情報を利用することで、より高精度に求めることができる。本実施形態に係る位置姿勢計測装置は、任意の計測対象物体の位置及び姿勢を計測することを目的とした位置姿勢計測装置であり、第1の実施形態における位置姿勢計測装置の位置姿勢算出部120の機能を変更した構成となっている。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
[Fourth Embodiment]
In each of the above embodiments, the updated value of the azimuth drift error correction value is obtained from image information at a certain time. However, since the value of the azimuth drift error has a high correlation between frames, it can be obtained with higher accuracy by using information of a plurality of frames. The position / orientation measurement apparatus according to the present embodiment is a position / orientation measurement apparatus for measuring the position and orientation of an arbitrary measurement target object, and the position / orientation calculation unit of the position / orientation measurement apparatus according to the first embodiment. It has a configuration in which 120 functions are changed. Hereinafter, the position and orientation measurement apparatus and the position and orientation measurement method according to the present embodiment will be described.
本実施形態における位置姿勢算出部520は、第1の実施形態における位置姿勢算出部と第2の実施形態における位置姿勢算出部の夫々の機能を併せ持っており、夫々のパラメータ推定処理を共に実行する。図5は、計測対象物体130の位置及び姿勢を示すパラメータを算出する処理のフローチャートであり、CPU1001が位置姿勢算出部520のソフトウェアのプログラムを実行することで行われる。なお、以下の処理を行う前段で、同フローチャートに従ったプログラムコードは、RAM1002に既にロードされているものとする。
The position / orientation calculation unit 520 according to the present embodiment has both the functions of the position / orientation calculation unit according to the first embodiment and the position / orientation calculation unit according to the second embodiment, and executes both parameter estimation processes. . FIG. 5 is a flowchart of processing for calculating parameters indicating the position and orientation of the
ステップS5000において、位置姿勢算出部520は、第1の実施形態におけるステップS4000と同様に、計測対象物体130の姿勢の予測値R*(姿勢予測部150の出力)をデータ記憶部170から入力する。
In step S5000, the position / orientation calculation unit 520 inputs the predicted value R * of the posture of the measurement target object 130 (output of the posture prediction unit 150) from the
ステップS5010において、位置姿勢算出部520は、第1の実施形態におけるステップS4020と同様に、指標検出部110によって検出された指標の画像座標とその世界座標を、データ記憶部170から入力する。
In step S5010, as in step S4020 in the first embodiment, the position / orientation calculation unit 520 inputs the image coordinates of the index detected by the
ステップS5020において、位置姿勢算出部520は、計測対象物体130の位置t=[xyz]Tと姿勢センサ140の方位ドリフト誤差補正値の更新値φを未知のパラメータとして、第1の実施形態におけるステップS4010及びステップS4030からステップS4090と同様な処理によってこれらを推定する。
In step S5020, the position / orientation calculation unit 520 uses the position t = [xyz] T of the
ステップS5030において、位置姿勢算出部520は、ステップS5020で算出された方位ドリフト誤差補正値の更新値φを積算し、積算値φSUMを求める。 In step S5030, the position and orientation calculating section 520 integrates the update value phi azimuth drift error correction value calculated in step S5020, obtains the integrated value phi SUM.
ステップS5040において、位置姿勢算出部520は、予め定めたフレーム数(例えば30フレーム)の積算処理を行ったか否かの判定を行い、行っている場合は処理をステップS5050に進め、行っていない場合は処理をステップS5080へと進める。 In step S5040, the position / orientation calculation unit 520 determines whether or not an integration process for a predetermined number of frames (for example, 30 frames) has been performed. If yes, the process proceeds to step S5050, and has not been performed. Advances the process to step S5080.
ステップS5050において、位置姿勢算出部520は、ステップS5030で求めた積算値φSUMを処理フレーム数で除算することで、各フレームで得られた方位ドリフト誤差補正値の更新値の平均値を算出し、これを新たに、方位ドリフト誤差補正値の更新値φとする。このあと、積算値φSUMは0にクリアされる。 In step S5050, the position and orientation calculation unit 520, by dividing the integrated value phi SUM calculated in step S5030 by the number of processing frames, calculates an average value of the updated value of the azimuth drift error correction value obtained in each frame This is newly set as an updated value φ of the azimuth drift error correction value. Thereafter, the integrated value φSUM is cleared to zero.
ステップS5060において、位置姿勢算出部520は、第1の実施形態におけるステップS4120と同様に、ステップS5050で得られた方位ドリフト誤差補正値の更新値φを用いて、データ記憶部170が保持している方位ドリフト誤差補正値φ*を式12によって更新する。
In step S5060, the position / orientation calculation unit 520 is stored in the
ステップS5070において、位置姿勢算出部520は、ステップS5050で得られた方位ドリフト誤差補正値の更新値φを用いて、式11によって計測対象物体130の姿勢を算出し、得られた姿勢を新たな姿勢の予測値とする。
In step S5070, the position / orientation calculation unit 520 uses the updated value φ of the azimuth drift error correction value obtained in step S5050 to calculate the attitude of the
ステップS5080において、位置姿勢算出部520は、計測対象物体130の位置t=[xyz]Tを未知のパラメータとして、第2の実施形態と同様な処理によってこれを推定する。
In step S5080, the position / orientation calculation unit 520 estimates the position t = [xyz] T of the
ステップS5090において、位置姿勢算出部520は、第1の実施形態におけるステップS4110と同様に、得られた計測対象物体130の位置及び姿勢の情報を出力する。
In step S5090, the position / orientation calculation unit 520 outputs information on the position and orientation of the
ステップS5100において、位置姿勢算出部520は、処理を終了するか否かの判定を行い、終了しない場合には再びステップS5000へと進み、次フレーム(時刻τ+1)以降の入力データに対して同様の処理を実行する。 In step S5100, the position / orientation calculation unit 520 determines whether or not to end the process. If not, the process proceeds to step S5000, and the same processing is performed on input data after the next frame (time τ + 1). Execute the process.
以上によって、複数フレームの情報を用いることによる、方位ドリフト誤差の補正値の更新値の精度向上が実現される。なお、本実施形態では各フレームで得られる更新値の平均値を用いていたが、各フレームで得られる更新値の中央値を用いても良いし、他のいずれのローパスフィルタを用いても良い。また、第3の実施形態における位置とドリフト誤差補正値の更新値とを未知パラメータとする位置姿勢算出処理手段として、本実施形態における位置姿勢算出部を用いることも、もちろん可能である。 As described above, the accuracy of the update value of the correction value of the azimuth drift error can be improved by using information of a plurality of frames. In this embodiment, the average value of the update values obtained in each frame is used. However, the median value of the update values obtained in each frame may be used, or any other low-pass filter may be used. . Also, as a matter of course, the position / orientation calculation unit according to the present embodiment can be used as position / orientation calculation processing means using the position and the update value of the drift error correction value in the third embodiment as unknown parameters.
(変形例1)
上記の実施形態において、誤差ベクトルUと行列θに基づく状態ベクトルの補正値Δsの算出に式9で表現される最急降下法を用いているが、補正値Δsの算出は必ずしも最急降下法によって行わなくてもよい。例えば公知の非線形方程式の反復解法であるLM法(Levenberg−Marquardt法)を用いて求めてもよいし、公知のロバスト推定手法であるM推定等の統計的手法を組み合わせてもよいし、他の何れの数値計算手法を適用しても構わない。
(Modification 1)
In the above embodiment, the steepest descent method expressed by Equation 9 is used to calculate the state vector correction value Δs based on the error vector U and the matrix θ, but the correction value Δs is not necessarily calculated by the steepest descent method. It does not have to be. For example, the LM method (Levenberg-Marquardt method) which is an iterative solution of a known nonlinear equation may be used, or a statistical method such as M estimation which is a known robust estimation method may be combined. Any numerical calculation method may be applied.
また、上記の実施形態では、各入力画像に対して最適な(誤差を最小化する)解を求める非線形最適化手法を用いていたが、画像上での指標の誤差に基づいてその誤差を解消するような解を求める手法はこれに限られるものではなく、客観視点カメラによって撮影される画像情報から、計測対象物体の位置及び姿勢センサの方位ドリフト誤差補正値とを算出することにより、計測対象物体の位置及び姿勢を安定かつ高精度に得るという本発明の本質は、他の手法を用いた場合であっても損なわれるものではない。例えば、画像上での指標の誤差に基づいてその誤差を解消するような解を求める手法として知られている、拡張カルマンフィルタ(Extended Kalman Filter)や反復拡張カルマンフィルタ(iterativeExtended Kalman Filter)(これらについては”J.Park,B.Jiang,and U.Neumann,Vision−based pose computation:robust and accurate augmented reality tracking,Proc.Second International Workshop on Augmented Reality (IWAR’99),pp.3−12,1999.”に詳細が述べられている)を用いた場合、上記の実施形態におけるsを状態ベクトルと定義し、式3を観測方程式と定義することで、本発明の効果を有したフィルタを構成することができる。 In the above embodiment, the nonlinear optimization method for obtaining the optimum (minimizing error) solution for each input image is used. However, the error is eliminated based on the index error on the image. The method for obtaining such a solution is not limited to this. By calculating the position of the measurement target object and the azimuth drift error correction value of the orientation sensor from the image information captured by the objective viewpoint camera, the measurement target The essence of the present invention of obtaining the position and orientation of an object stably and with high accuracy is not impaired even when other methods are used. For example, an extended Kalman filter (iterative extended Kalman filter) or an iterative extended Kalman filter (it is known as a technique for obtaining a solution that eliminates the error based on the error of the index on the image) J. Park, B. Jiang, and U. Neumann, Vision-based posted computation: robust and accumulated augmented reality tracking, Proc. Second International Worship. Details are described) If the s in the above embodiment is defined as a state vector, by defining the formula 3 and the observation equation, it is possible to construct a filter having the advantages of the present invention.
(変形例2)
上記の実施形態において、指標Pとして一つの指標が一つの座標を表すような指標(以下、これを点指標と呼ぶ)を用いていた。しかし、他の指標の種類を適用することも可能である。
(Modification 2)
In the above embodiment, an index such that one index represents one coordinate (hereinafter referred to as a point index) is used as the index P. However, other indicator types can be applied.
例えば、公知の位置姿勢計測装置(例えば、“高橋,石井,牧野,中静,VRインターフェースのための単眼による長方形マーカ位置・姿勢の高精度実時間推定法,3次元画像コンファレンス96公演論文集,pp.167−172,1996.”を参照)に用いられているような、特定の幾何形状をもつマーカを指標として用いることも出来る。例えば、四角形のマーカを指標として用いる場合、四角形の各頂点の世界座標を既知の値として保持しておき(あるいは、マーカの位置、向き、サイズからこれらの値を演算し)、画像から各頂点の画像座標を検出することで、上記実施形態における4点の指標と同様の効果を得ることができる。特に、ID情報を有する一つの四角形マーカ(例えば、“加藤,M.BillingHurst,浅野,橘,マーカー追跡に基づく拡張現実感システムとそのキャリブレーション,日本バーチャルリアリティ学会論文誌,vol.4,no.4,pp.607−616,1999.”を参照)を計測対象物体に設置する構成(あるいは、姿勢センサに予め一つの四角形マーカを設置しておく構成)は、画像からのマーカの検出精度及び同定精度の良さが期待できるため、特に好適な形態といえる。 For example, a known position and orientation measurement device (for example, “Takahashi, Ishii, Makino, Nakashizuka, Monocular rectangular marker position / posture high-precision real-time estimation method for VR interface, 3D image conference 96 performance papers, pp. 167-172, 1996. "), a marker having a specific geometric shape can also be used as an index. For example, when a square marker is used as an index, the world coordinates of each vertex of the square are held as known values (or these values are calculated from the position, orientation, and size of the marker), and each vertex is obtained from the image. By detecting the image coordinates, it is possible to obtain the same effect as the four-point index in the above embodiment. In particular, one rectangular marker having ID information (for example, “Kato, M. Billing Hurst, Asano, Tachibana, Augmented Reality System based on marker tracking and its calibration, Journal of the Virtual Reality Society of Japan, vol. 4, no. 4, pp. 607-616, 1999.) is installed on the measurement target object (or a configuration in which a single quadrangular marker is previously installed on the attitude sensor). Since good identification accuracy can be expected, it can be said to be a particularly suitable form.
また、別の公知の位置姿勢計測装置(例えば、“D.G.Lowe:Fitting parameterized three−dimensional models to images, IEEE Transactions on PAMI,vol.13,no.5,pp.441−450,1991.”を参照)に用いられているような、線特徴によって構成される指標(以下、これを線指標と呼ぶ)を用いてもよい。例えば、直線の原点からの距離を評価のための基準として、画像からの検出値dと状態ベクトルsからの推定値d*から算出する誤差Δdによって誤差ベクトルUを構成し、d*の算出式を状態ベクトルsの各要素で偏微分した解を各要素に持つ1行×4列のヤコビ行列Jds(=∂d/∂s)によって行列θを構成することで、上記実施形態と同様な枠組みによって位置及び姿勢の計測を行うことが出来る。また、線指標と点指標、その他の指標から得られる誤差及び画像ヤコビアンを積み重ねることによって、それらの特徴を併用することが可能である。 In addition, another known position and orientation measurement apparatus (for example, “DG Low: Fitting parametrized three-dimensional models to images, IEEE Transactions on PAMI, vol. 13, pp. 441-450, 1991. An index composed of line features (hereinafter referred to as a line index), such as that used in “)”, may be used. For example, using the distance from the origin of the straight line as a reference for evaluation, an error vector U is constituted by the error Δd calculated from the detected value d from the image and the estimated value d * from the state vector s, and the calculation formula of d * Is formed by a 1 row × 4 column Jacobian matrix J ds (= ∂d / ∂s) having a solution obtained by partially differentiating each of the state vectors with each element of the state vector s. The position and orientation can be measured by the framework. In addition, it is possible to use these features together by stacking error and image Jacobian obtained from the line index, point index, and other indices.
(変形例3)
上記の実施形態では、方位ドリフト誤差を有する姿勢センサを用いていたが、姿勢センサとして方位方向にのみ顕著な誤差を有する他の姿勢センサを用いることも可能である。例えば、加速度センサによって傾斜方向の角度を計測し、地磁気センサによって方位方向の角度を計測するタイプの姿勢センサにおいても、位置と方位誤差補正値の更新値を未知パラメータとして、上記実施形態と同様な処理によって計測対象の位置と姿勢の計測を行うことができる。ただし、この場合、方位ドリフト誤差とは誤差の性質が異なるため、第3の実施形態や、第4の実施形態のような形態に用いるには適していない。また、傾斜方向のみを計測する姿勢センサを用いる場合でも、方位方向の計測値が常に0となる3軸の姿勢センサと仮定すると、同様な処理によって計測対象の位置と姿勢の計測を行うことができる。
(Modification 3)
In the above embodiment, an attitude sensor having an azimuth drift error is used, but another attitude sensor having a significant error only in the azimuth direction can be used as the attitude sensor. For example, in an orientation sensor of a type that measures an angle in an inclination direction with an acceleration sensor and measures an angle in an azimuth direction with a geomagnetic sensor, the update value of the position and the azimuth error correction value is used as an unknown parameter, as in the above embodiment. The position and orientation of the measurement target can be measured by the processing. However, in this case, since the nature of the error is different from the azimuth drift error, it is not suitable for use in the form as in the third embodiment or the fourth embodiment. Also, even when using an orientation sensor that measures only the tilt direction, the position and orientation of the measurement target can be measured by a similar process, assuming a 3-axis orientation sensor in which the measured value in the azimuth direction is always 0. it can.
[他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
[Other Embodiments]
An object of the present invention is to supply a storage medium (or recording medium) in which a program code of software for realizing the functions of the above-described embodiments is recorded to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus. Is also achieved by reading and executing the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention. Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Furthermore, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is determined based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
本発明を上記記憶媒体に適用する場合、その記憶媒体には先に説明したフローチャートに対応するプログラムコードが格納されることになる。 When the present invention is applied to the above-mentioned storage medium, the program code corresponding to the flowchart described above is stored in the storage medium.
Claims (5)
前記物体に配置された指標を、固定された位置が既知である客観視点位置姿勢から、撮像した撮像画像を入力する画像入力手段と、
前記物体の姿勢計測値を計測する姿勢計測手段と、
前記姿勢計測手段の方位ドリフト誤差補正値、前記指標の前記物体に対する位置、および前記客観視点位置を保持する保持手段と、
前記姿勢計測値および前記方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測手段と、
前記撮像画像に撮像された指標の画像座標を検出する指標検出手段と、
前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出手段と、
前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新手段と、
を有し、
前記位置姿勢算出手段が、
前記物体の位置姿勢の設定値を入力する設定値入力手段と、
前記検出した指標が2点以上あるか否かを判定する指標判定手段と、
前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出手段と、
前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出手段と、
前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出手段と、
前記算出された補正値に基づいて、前記設定値を補正する補正手段と、
を有することを特徴とする情報処理装置。 An information processing apparatus for calculating the position and orientation of an object,
An image input means for inputting a captured image of an index placed on the object from an objective viewpoint position and orientation whose fixed position is known;
Posture measuring means for measuring the posture measurement value of the object;
A holding means for holding the orientation drift error correction value of the posture measuring means, the position of the index with respect to the object, and the objective viewpoint position;
Posture prediction means for calculating a posture prediction value of the object based on the posture measurement value and the azimuth drift error correction value;
Index detecting means for detecting the image coordinates of the index imaged in the captured image;
Position and orientation calculation means for calculating the position and orientation of the object based on the predicted orientation value, the image coordinates of the detected index, the position of the index with respect to the object, and the objective viewpoint position and orientation;
Updating means for updating the held azimuth drift error correction value based on the calculated position and orientation;
Have
The position and orientation calculation means is
Setting value input means for inputting a setting value of the position and orientation of the object;
Index determining means for determining whether or not the detected index is two or more;
When it is determined that there are two or more detected indices, the image coordinates of the indices are estimated based on the predicted posture value, the set value, the position of the index with respect to the object, and the objective viewpoint position and orientation. An estimated value calculating means for calculating a value;
Error calculating means for calculating an error between the image coordinates of the detected index and an estimated value of the image coordinates of the index;
Correction value calculation means for calculating a correction value of the position and orientation of the object based on the calculated error;
Correction means for correcting the set value based on the calculated correction value;
An information processing apparatus comprising:
前記設定値入力手段が、前記前記算出された誤差もしくは前記算出された補正値が、予め保持された閾値よりも小さくないと判定された場合に、前記算出された位置姿勢を前記設定値として再入力することを特徴とする請求項1に記載の情報処理装置。 The position / orientation calculation means includes a convergence determination means for determining whether the calculated error or the calculated correction value is smaller than a threshold value held in advance .
When the set value input means determines that the calculated error or the calculated correction value is not smaller than a pre-stored threshold value, the calculated position / orientation is re-used as the set value. The information processing apparatus according to claim 1, wherein the information processing apparatus is input.
前記情報処理装置が有する画像入力手段が、前記物体に配置されて該物体に対する位置が既知である指標を、固定された位置が既知である客観視点位置姿勢から、撮像した撮像画像を入力する画像入力工程と、
前記情報処理装置が有する姿勢計測手段が、前記物体の姿勢計測値を計測する姿勢計測工程と、
前記姿勢計測値および予め保持された前記姿勢計測手段の方位ドリフト誤差補正値に基づいて、前記物体の姿勢予測値を計算する姿勢予測工程と、
前記情報処理装置が有する指標検出手段が、前記撮像画像に撮像された指標の画像座標を検出する指標検出工程と、
前記情報処理装置が有する位置姿勢算出手段が、前記姿勢予測値、前記検出された指標の画像座標、該指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、前記物体の位置姿勢を算出する位置姿勢算出工程と、
前記情報処理装置が有する更新手段が、前記算出された位置姿勢に基づいて、前記保持された方位ドリフト誤差補正値を更新する更新工程と、
を有し、
前記位置姿勢算出工程では、
前記位置姿勢算出手段が有する設定値入力手段が、前記物体の位置姿勢の設定値を入力する設定値入力工程と、
前記位置姿勢算出手段が有する指標判定手段が、前記検出した指標が2点以上あるか否かを判定する指標判定工程と、
前記位置姿勢算出手段が有する推定値算出手段が、前記検出した指標が2点以上あると判定された場合に、前記姿勢予測値、前記設定値、前記指標の前記物体に対する位置、および前記客観視点位置姿勢に基づいて、該指標の画像座標の推定値を算出する推定値算出工程と、
前記位置姿勢算出手段が有する誤差算出手段が、前記検出された指標の画像座標と当該指標の画像座標の推定値との誤差を算出する誤差算出工程と、
前記位置姿勢算出手段が有する補正値算出手段が、前記算出された誤差に基づいて、前記物体の位置姿勢の補正値を算出する補正値算出工程と、
前記位置姿勢算出手段が有する補正手段が、前記算出された補正値に基づいて、前記設定値を補正する補正工程と、
を有することを特徴とする位置姿勢計測方法。 A position and orientation measurement method performed by an information processing apparatus that calculates the position and orientation of an object,
The image input means of the information processing apparatus inputs an imaged image captured from an objective viewpoint position and orientation with a known fixed position and an index that is arranged on the object and whose position relative to the object is known Input process;
A posture measurement step in which the posture measurement means of the information processing apparatus measures a posture measurement value of the object;
A posture prediction step of calculating a posture prediction value of the object based on the posture measurement value and the orientation drift error correction value of the posture measurement means held in advance;
An index detection unit in which the index detection unit included in the information processing apparatus detects an image coordinate of the index captured in the captured image;
The position and orientation calculation means of the information processing device calculates the position and orientation of the object based on the predicted orientation value, the image coordinates of the detected index, the position of the index with respect to the object, and the objective viewpoint position and orientation. A position and orientation calculation step to calculate;
An updating step that the update unit included in the information processing apparatus updates the held azimuth drift error correction value based on the calculated position and orientation;
Have
In the position and orientation calculation step,
A set value input step in which the set value input means of the position and orientation calculation means inputs a set value of the position and orientation of the object;
An index determination unit included in the position and orientation calculation unit determines whether or not the detected index is two or more points; and
When the estimated value calculating means included in the position / orientation calculating means determines that there are two or more detected indices, the estimated attitude value, the set value, the position of the index with respect to the object, and the objective viewpoint An estimated value calculating step of calculating an estimated value of the image coordinates of the index based on the position and orientation;
An error calculating step of calculating an error between the detected image coordinates of the index and an estimated value of the image coordinates of the index;
A correction value calculation step in which the correction value calculation means included in the position and orientation calculation means calculates a correction value of the position and orientation of the object based on the calculated error; and
A correction step in which the correction means included in the position and orientation calculation means corrects the set value based on the calculated correction value;
A position and orientation measurement method characterized by comprising:
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004144894A JP4612804B2 (en) | 2004-05-14 | 2004-05-14 | Position and orientation measurement method and information processing apparatus |
US11/126,437 US7467061B2 (en) | 2004-05-14 | 2005-05-11 | Information processing method and apparatus for finding position and orientation of targeted object |
EP05252971.6A EP1596332B1 (en) | 2004-05-14 | 2005-05-13 | Information processing method and apparatus for finding position and orientation of targeted object |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004144894A JP4612804B2 (en) | 2004-05-14 | 2004-05-14 | Position and orientation measurement method and information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005326283A JP2005326283A (en) | 2005-11-24 |
JP4612804B2 true JP4612804B2 (en) | 2011-01-12 |
Family
ID=35472751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004144894A Expired - Fee Related JP4612804B2 (en) | 2004-05-14 | 2004-05-14 | Position and orientation measurement method and information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4612804B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100854672B1 (en) | 2007-07-10 | 2008-08-28 | 삼성중공업 주식회사 | How to provide data for the marking process |
JP5186873B2 (en) * | 2007-10-10 | 2013-04-24 | セイコーエプソン株式会社 | POSITIONING METHOD, PROGRAM, POSITIONING DEVICE, AND ELECTRONIC DEVICE |
JP5186874B2 (en) * | 2007-10-10 | 2013-04-24 | セイコーエプソン株式会社 | POSITIONING METHOD, PROGRAM, POSITIONING DEVICE, AND ELECTRONIC DEVICE |
CN103727885A (en) * | 2014-01-16 | 2014-04-16 | 深圳市华测检测技术股份有限公司 | Detection method for yo-yo elastic tether length |
CN103727886A (en) * | 2014-01-16 | 2014-04-16 | 深圳市华测检测技术股份有限公司 | Length measuring device for yoyo elastic tying rope |
JP7180170B2 (en) * | 2018-07-27 | 2022-11-30 | 三菱電機株式会社 | Output correction method of TMR sensor |
CN110414337B (en) * | 2019-06-21 | 2023-12-05 | 上海汽车工业(集团)总公司 | Target attitude detection system and detection method thereof |
CN114049394B (en) * | 2021-11-23 | 2022-06-21 | 智道网联科技(北京)有限公司 | Monocular distance measuring method, device, equipment and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001241928A (en) * | 2000-03-01 | 2001-09-07 | Sanyo Electric Co Ltd | Shape measuring apparatus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09189513A (en) * | 1996-01-10 | 1997-07-22 | Kawasaki Heavy Ind Ltd | Method and apparatus for measuring center of gravity of marker |
-
2004
- 2004-05-14 JP JP2004144894A patent/JP4612804B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001241928A (en) * | 2000-03-01 | 2001-09-07 | Sanyo Electric Co Ltd | Shape measuring apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2005326283A (en) | 2005-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4593968B2 (en) | Position and orientation measurement method and apparatus | |
JP4859205B2 (en) | Information processing apparatus, information processing method, and program | |
EP1596330B1 (en) | Estimating position and orientation of markers in digital images | |
JP5036260B2 (en) | Position and orientation calculation method and apparatus | |
US7848903B2 (en) | Information processing method and information processing apparatus | |
JP4886560B2 (en) | Information processing apparatus and information processing method | |
JP4136859B2 (en) | Position and orientation measurement method | |
JP5230114B2 (en) | Information processing apparatus and information processing method | |
US7630555B2 (en) | Position and orientation measuring method and apparatus | |
KR100934564B1 (en) | Information processing device and information processing method | |
JP5132138B2 (en) | Position and orientation measurement method, position and orientation measurement device | |
JP5196825B2 (en) | Image processing apparatus and image processing method | |
JP5728372B2 (en) | Information processing apparatus, information processing apparatus control method, and program | |
JP4956456B2 (en) | Image processing apparatus and image processing method | |
JP4612804B2 (en) | Position and orientation measurement method and information processing apparatus | |
JP2009168626A (en) | Position attitude measurement device and method | |
JP4726191B2 (en) | Position / orientation correction apparatus, position / orientation correction method, program thereof, and storage medium | |
JP5726024B2 (en) | Information processing method and apparatus | |
JP4566786B2 (en) | Position and orientation measurement method and information processing apparatus | |
JP4926598B2 (en) | Information processing method and information processing apparatus | |
JP5620972B2 (en) | Information processing apparatus and information processing method | |
JP2008140047A (en) | Information processing method and information processor | |
JP4810403B2 (en) | Information processing apparatus and information processing method | |
JP2015215191A (en) | Position-posture measurement device, method, and program | |
JP2016065830A (en) | Image processor and image processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100625 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20100630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100720 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100910 |
|
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: 20101005 |
|
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: 20101016 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4612804 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |