[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2010239515A - Calculation method of camera calibration - Google Patents

Calculation method of camera calibration Download PDF

Info

Publication number
JP2010239515A
JP2010239515A JP2009086970A JP2009086970A JP2010239515A JP 2010239515 A JP2010239515 A JP 2010239515A JP 2009086970 A JP2009086970 A JP 2009086970A JP 2009086970 A JP2009086970 A JP 2009086970A JP 2010239515 A JP2010239515 A JP 2010239515A
Authority
JP
Japan
Prior art keywords
point
points
angle
camera
line
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.)
Pending
Application number
JP2009086970A
Other languages
Japanese (ja)
Inventor
Yutaka Yoshisaka
豊 吉阪
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.)
T4 CO Ltd
Original Assignee
T4 CO Ltd
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 T4 CO Ltd filed Critical T4 CO Ltd
Priority to JP2009086970A priority Critical patent/JP2010239515A/en
Publication of JP2010239515A publication Critical patent/JP2010239515A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a camera calibration technique for estimating the external parameter of a camera on the basis of coordinate information of four feature points when the internal parameter of the camera is a given parameter. <P>SOLUTION: In the case where a world coordinate system is identical to a camera coordinate system, on the basis of two angles formed by four feature points in the world coordinate system, coordinate positions of the feature points in the camera coordinate system are estimated. A distance T formed with a straight line obtained by extending a visual line vector A is divided into eight and it is estimated which one of eight divided points is closest to the coordinate position where a feature point A is present. In the estimation, points B', C' and D' equal to the length of sides AB, BC and DA are calculated from among points on visual line vectors B, C and D with the eight divided points as base points, differences of angles B' and D' formed by the base points and the points B', C' and D' from the angles B and D are calculated at the respective points, one of the eight divided points most approximate to the feature points A, B, C and D and points B', C' and D' corresponding to that point are calculated. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、カメラキャリブレーションの算出方法に関する。より詳細には、本発明は、内部パラメータが既知の場合に、少なくとも4つの特徴点が存在すれば、同一平面上、非同一平面上の区別なくカメラの外部パラメータの推定を行うことができる方法に関する。   The present invention relates to a camera calibration calculation method. More specifically, the present invention is a method capable of estimating external parameters of a camera without distinction on the same plane and non-coplanar if there are at least four feature points when the internal parameters are known. About.

まず、カメラキャリブレーションの概要および既存のカメラキャリブレーションについて説明する。   First, an overview of camera calibration and existing camera calibration will be described.

まず、3次元空間を「ワールド座標」とし、そのワールド座標上に絶対的な空間上の位置XYZが複数存在し、その位置をスクリーンに投影したスクリーン座標での位置UVが存在するとする。ワールド座標上の位置XYZとスクリーン座標での位置UVはそれぞれ1対1で対応しており、これらが複数(少なくとも5または6個)存在すれば、カメラの姿勢(3×3行列)と移動ベクトル(ワールド座標上でのカメラ位置)を推定することができる。ここで、カメラの姿勢と移動ベクトルは「外部パラメータ」と呼ばれる。また、ワールド座標上の位置XYZとしてサンプリングしたそれぞれの点を「特徴点」と呼ぶことにする。特徴点は、カメラ情報を推定するために使用されるが、特徴点は、ワールド座標において同一平面上にある場合もあれば、非同一平面上にある場合もある。   First, assume that the three-dimensional space is “world coordinates”, and there are a plurality of absolute space positions XYZ on the world coordinates, and there are positions UV in screen coordinates obtained by projecting the positions onto the screen. The position XYZ in the world coordinates and the position UV in the screen coordinates have a one-to-one correspondence, and if there are a plurality (at least 5 or 6) of these, the camera posture (3 × 3 matrix) and the movement vector (Camera position on world coordinates) can be estimated. Here, the camera posture and the movement vector are called “external parameters”. Further, each point sampled as the position XYZ on the world coordinates will be referred to as a “feature point”. The feature points are used to estimate camera information, but the feature points may be on the same plane or non-coplanar in world coordinates.

図1は、従来の、カメラから見たときのスクリーン座標での特徴点位置を示す図であり、図1の座標は右手系を示し、スクリーン手前に向かってZ軸が伸びている。   FIG. 1 is a diagram showing a conventional feature point position in screen coordinates as viewed from a camera. The coordinates in FIG. 1 indicate a right-handed system, and the Z-axis extends toward the front of the screen.

図1では、カメラから見たときのスクリーン座標上での特徴点が8つ与えられている。この例において、8つの特徴点は、それぞれワールド座標上の位置XYZとスクリーン上に投影された位置UVが確定しているものとする。カメラの手前に投影面があり、投影された座標値を(U1, V1)、(U2, V2)、〜(U8, V8)とし、対応するワールド座標を(Wx1, Wy1, Wz1)、(Wx2, Wy2, Wz2)、〜(Wx8, Wy8, Wz8)とする。   In FIG. 1, eight feature points on the screen coordinates when viewed from the camera are provided. In this example, it is assumed that the position XYZ on the world coordinates and the position UV projected on the screen are determined for the eight feature points. There is a projection plane in front of the camera, and the projected coordinate values are (U1, V1), (U2, V2), ~ (U8, V8), and the corresponding world coordinates are (Wx1, Wy1, Wz1), (Wx2 , Wy2, Wz2) to ~ (Wx8, Wy8, Wz8).

また、ワールド座標からスクリーン座標への変換は、
ワールド座標 → ビュー座標 → 透視座標 → スクリーン座標
の順番にて行われる。座標間のそれぞれの変換は、4×4行列にて表すことができる。ここで、ビュー座標は、視点を中心とした座標系のことであり、透視座標は、3次元空間を2次元空間に投影する座標系のことである。本明細書の説明において、ビュー座標から透視座標、スクリーン座標に変換する行列はあらかじめ算出できているものとする。
The conversion from world coordinates to screen coordinates is
World coordinates → view coordinates → perspective coordinates → screen coordinates. Each transformation between coordinates can be represented by a 4 × 4 matrix. Here, the view coordinates are a coordinate system centered on the viewpoint, and the perspective coordinates are a coordinate system that projects a three-dimensional space onto a two-dimensional space. In the description of the present specification, it is assumed that a matrix for converting view coordinates into perspective coordinates and screen coordinates can be calculated in advance.

特に、ビュー座標から透視座標変換に必要な要素としては、スクリーンサイズ、カメラの視野角度、カメラから投影面までの距離、ゆがみ係数、が存在する。これらはカメラの「内部パラメータ」と呼ばれる。   In particular, elements necessary for the transformation from the view coordinates to the perspective coordinates include a screen size, a camera viewing angle, a distance from the camera to the projection plane, and a distortion coefficient. These are called “internal parameters” of the camera.

このうち、ワールド座標からビュー座標に変換する行列を求める手法をカメラキャリブレーションと呼ぶ(厳密に言うと、内部パラメータを推定する部分もカメラキャリブレーションに含まれるが、今回の発明ではこの部分は既に計算できているものとして考えるため、本明細書の説明においてはその部分を省略する)。   Of these, a method for obtaining a matrix for converting from world coordinates to view coordinates is called camera calibration. (Strictly speaking, a part for estimating internal parameters is also included in camera calibration. Since this is considered as being calculated, that portion is omitted in the description of this specification).

ワールド座標上のカメラの外部パラメータとしては3×3の姿勢行列(回転行列)と移動ベクトル(ワールド座標上の位置)が存在する。カメラでの姿勢をあらわすXYZ軸を、CX(CX.x, CX.y, CX.z)、CY(CYx, CY.y, CY.z)、CZ(CZ.x, CZ.y, CZ.z)の正規直交基底として表した場合、以下の3×3行列にて回転行列を表すことができる。   As external parameters of the camera on the world coordinates, there are a 3 × 3 posture matrix (rotation matrix) and a movement vector (position on the world coordinates). The X, Y, and Z axes representing the camera posture are represented by CX (CX.x, CX.y, CX.z), CY (CYx, CY.y, CY.z), CZ (CZ.x, CZ.y, CZ. When expressed as an orthonormal basis of z), the rotation matrix can be represented by the following 3 × 3 matrix.

Figure 2010239515
Figure 2010239515

また、カメラの移動ベクトルをV(Vx, Vy, Vz)とすると、カメラの姿勢と移動ベクトルより、ワールド座標からビュー座標の変換行列は以下の4×4行列にてあらわすことができる。   If the camera movement vector is V (Vx, Vy, Vz), the transformation matrix from the world coordinates to the view coordinates can be expressed by the following 4 × 4 matrix from the camera attitude and the movement vector.

Figure 2010239515
Figure 2010239515

図2は、上記で説明したワールド座標上の8つの特徴点とカメラの関係を示す図である。図2では、カメラの前に投影面(スクリーン座標)があり、8つの特徴点を上述した変換によってスクリーン座標に投影した図が示されている。   FIG. 2 is a diagram showing the relationship between the eight feature points on the world coordinates described above and the camera. In FIG. 2, there is a projection plane (screen coordinates) in front of the camera, and eight feature points are projected onto the screen coordinates by the above-described transformation.

カメラキャリブレーションを求める手法としては、従来から様々な手法(例えば、DLT、Tsai、Zhang、マーカーを使用したカメラキャリブレーション)が知られている。   Various methods (for example, camera calibration using DLT, Tsai, Zhang, and markers) have been known as methods for obtaining camera calibration.

DLT手法(非特許文献1参照)は、三次元空間上の特徴点とスクリーンに投影された点を6つ以上与えることにより、内部パラメータ・外部パラメータの算出を行い、カメラキャリブレーションを行う手法である。DLT手法では、同一平面上に特徴点が存在する場合は正しい推定を行うことができず、また、計算後に視線方向(光軸方向)に誤差が出る可能性が高いため、補正を行う必要がある。   The DLT method (see Non-Patent Document 1) is a method of performing camera calibration by calculating internal parameters and external parameters by giving six or more feature points in a three-dimensional space and points projected on the screen. is there. In the DLT method, if there is a feature point on the same plane, correct estimation cannot be performed, and an error is likely to occur in the viewing direction (optical axis direction) after calculation. is there.

Tsai手法(非特許文献2参照)は、三次元空間上の特徴点とスクリーンに投影された点を6つ以上与えることにより、内部パラメータ・外部パラメータの算出を行い、カメラキャリブレーションを行う手法である。Tsai手法では、同一平面上に特徴点が存在する場合に使用できる。また、非同一平面上に特徴点がある場合でも推定できるが、その場合には同一平面上にしか特徴点がない場合に比べて大きな誤差が出てしまう。このため、同一平面上か非同一平面上のいずれに特徴点が存在するか、をあらかじめ判定しておく必要があり、また、計算結果の精度はそれほど高くはなく、計算後に視線方向(光軸方向)に誤差が出る可能性が高いため、補正を行う必要がある。   The Tsai method (refer to Non-Patent Document 2) is a method of calculating internal parameters and external parameters by giving six or more feature points in a three-dimensional space and projected points on a screen, and performing camera calibration. is there. The Tsai method can be used when feature points exist on the same plane. Further, although it can be estimated even when there are feature points on non-coplanar planes, in that case, a larger error occurs than when there are feature points only on the same plane. For this reason, it is necessary to determine in advance whether the feature point exists on the same plane or a non-coplanar plane, and the accuracy of the calculation result is not so high. Since there is a high possibility of an error in (direction), correction is necessary.

Zhang手法は、同一平面上の格子状のマーカーよりカメラキャリブレーションを行い、内部パラメータ・外部パラメータの算出を行う手法である。Zhang手法は、カメラキャリブレーションの精度が高いが、同一平面上に特徴点が格子状に存在している必要がある。また、カメラの内部パラメータの推定にて利用される。   The Zhang method is a method for calculating internal parameters and external parameters by performing camera calibration using a grid-like marker on the same plane. The Zhang method has high accuracy of camera calibration, but it is necessary that feature points exist in a grid pattern on the same plane. It is also used for estimation of camera internal parameters.

また、マーカーを使用したカメラキャリブレーションの手法は、特定の条件を満たす左右非対称の模様の書かれた正方形のマーカーを登録してパターンマッチングによりマーカーを識別し、これよりカメラキャリブレーションを行う手法である。この手法は、同一平面限定で適用可能であるという制限があり、また、あらかじめマーカーを登録しておく必要がある。   Also, the camera calibration method using markers is a method of registering square markers with asymmetrical patterns that meet specific conditions, identifying the markers by pattern matching, and performing camera calibration from this. is there. This method has a limitation that it can be applied only on the same plane, and it is necessary to register a marker in advance.

DLT Method(Young-Hoo Kwon 著)、http://www.kwon3d.com/theory/dlt/dlt.htmlDLT Method (Author Young-Hoo Kwon), http://www.kwon3d.com/theory/dlt/dlt.html Tsai's Camera Model(Steven Shafer, Takeo Kanade 著)、http://www-2.cs.cmu.edu/~rgw/TsaiDesc.htmlTsai's Camera Model (Steven Shafer, Takeo Kanade), http://www-2.cs.cmu.edu/~rgw/TsaiDesc.html マーカー追跡に基づく拡張現実感システムとそのキャリブレーション(加藤博一,Mark Billinghurst,浅野浩一,橘啓八郎 著)、http://intron.kz.tsukuba.ac.jp/tvrsj/4.4/kato/p-99_VRSJ4_4.pdfAugmented reality system based on marker tracking and its calibration (by Hirokazu Kato, Mark Billinghurst, Koichi Asano, Keihachi Tachibana), http://intron.kz.tsukuba.ac.jp/tvrsj/4.4/kato/p -99_VRSJ4_4.pdf 任意視点画像に適応したカメラキャリブレーションの研究(久保智裕 著)、http://www433.elec.ryukoku.ac.jp/Houbun/YOUSHI/2003/2003_master_thesis_kubo.pdfResearch on camera calibration adapted to arbitrary viewpoint images (by Tomohiro Kubo), http://www433.elec.ryukoku.ac.jp/Houbun/YOUSHI/2003/2003_master_thesis_kubo.pdf

しかしながら、従来技術は、特徴点が同一平面上に存在する場合のみ適用可能なもの、非同一平面上に存在する場合のみ適用可能なもの、あるいは両方の場合に適用できるが上述したような不都合も同時に内包しているという課題がある。   However, the conventional technology can be applied only when the feature points exist on the same plane, can be applied only when the feature points exist on the non-coplanar surface, or can be applied to both cases, but there is a disadvantage as described above. There is a problem of enclosing at the same time.

このような課題を解決するため、本発明の一実施形態に係る方法は、ワールド座標系(world coordinate system)とカメラ座標系(camera coordinate system)の原点、X軸、Y軸およびZ軸が同一の場合に、ワールド座標系における4つの特徴点が作る2つの角度を基にして、カメラ座標系での各特徴点の座標位置を推定することによってカメラのキャリブレーションを行う方法であることを特徴とする。この方法はコンピュータによって実行される。また、この方法は、(a)ワールド座標系における4つの特徴点A、B、C、Dを選択するステップ(401)と、(b)選択した特徴点を結んだ辺AB、辺BC、辺CD、辺DAの長さを計算するステップ(402)と、(c)辺ABおよび辺BCが作る角度B、並びに辺CDおよび辺DAが作る角度Dを計算するステップ(403)であって、角度Bおよび角度Dは0度より大きく90度以下であるステップと、(d)ワールド座標系での辺ABをX軸とする場合の回転行列Rを計算するステップ(404)と、(e)原点と、4つの特徴点A、B、C、Dをスクリーン座標系に変換した変換後の各点とを結ぶ4つの視線ベクトルA、B、C、Dを計算するステップ(405)と、(f)視線ベクトルAを延ばした直線で形成される距離Tを8分割して、該8分割した各地点のうち特徴点Aが存在する座標位置に最も近い地点がいずれかを推定するステップ(406)であって、該推定は、8分割した各地点のうち原点に最も近い地点から始め、各地点を基点にして視線ベクトルB、D上の点のうち辺AB、辺DAの長さと等しくなる点B´、D´をそれぞれ求め、点B´と視線ベクトルC上の点を結ぶ点のうち辺BCの長さと等しくなる点C´を求め、該基点、点B´、C´、D´で作られる角度B´、角度D´の角度B、角度Dとの差異を8分割した各地点で求め、特徴点A、B、C、Dに最も近似する8分割した地点のうちの一つの基点、および該一つの基点に対応するB´、C´、D´を求めるステップと、(g)距離Tを2分の1に収束した距離を求めるステップであって、収束された新たな距離Tは、推定された地点から距離Tの4分の1の距離だけ原点方向および視線ベクトルAを延ばした方向に離れた地点で形成されるステップ(407)と、(h)新たな距離Tが予め定められた値を下回る(408)まで、ステップ(f)および(g)を繰返すステップと、を含むことを特徴とする。さらに、本発明に係る方法は、新たな距離Tが予め定められた値を下回った後に、(i)ワールド座標系からカメラ座標系への変換行列Nを求めるステップ(409)であって、該変換行列Nは、回転行列Rおよびカメラの姿勢と位置の情報に基づいて計算されるステップと、(j)変換行列Nに基づいて、カメラの外部パラメータであるカメラの回転行列およびカメラの移動ベクトルを計算するステップ(410)と、(k)カメラの外部パラメータの誤差補正を行うステップ(411)と、を含むことを特徴とする。   In order to solve such a problem, the method according to an embodiment of the present invention uses the same origin, X axis, Y axis, and Z axis of the world coordinate system and the camera coordinate system. In this case, the camera is calibrated by estimating the coordinate position of each feature point in the camera coordinate system based on two angles formed by the four feature points in the world coordinate system. And This method is executed by a computer. This method also includes (a) a step (401) of selecting four feature points A, B, C, and D in the world coordinate system, and (b) a side AB, a side BC, and a side connecting the selected feature points. Calculating the length of CD and side DA (402); and (c) calculating the angle B created by side AB and side BC and the angle D created by side CD and side DA (403), The angle B and the angle D are greater than 0 degrees and less than or equal to 90 degrees; (d) a step (404) of calculating a rotation matrix R when the side AB in the world coordinate system is the X axis (404); (405) calculating four line-of-sight vectors A, B, C, D connecting the origin and the converted points obtained by converting the four feature points A, B, C, D into the screen coordinate system; f) Distance formed by a straight line extending the line-of-sight vector A Is divided into eight, and the step (406) of estimating the point closest to the coordinate position where the feature point A is present among the eight divided points is calculated. Starting from the point closest to the origin, the points B ′ and D ′ that are equal to the lengths of the side AB and the side DA are obtained from the points on the line-of-sight vectors B and D with each point as the base point. A point C ′ that is equal to the length of the side BC among points connecting the points on the vector C is obtained, and an angle B ′ formed by the base point, the points B ′, C ′, and D ′, an angle B of the angle D ′, and an angle The difference from D is obtained at each of the eight divided points, and one base point among the eight divided points closest to the feature points A, B, C, D, and B ′, C ′ corresponding to the one base point , D ′, and (g) a step of obtaining a distance converged by a half of the distance T, The bundled new distance T is formed at a point separated from the estimated point in the direction of the origin and the direction in which the line-of-sight vector A is extended by a distance of one quarter of the distance T (407), (h ) Repeating steps (f) and (g) until the new distance T falls below a predetermined value (408). Furthermore, the method according to the present invention includes (i) a step (409) of obtaining a transformation matrix N from the world coordinate system to the camera coordinate system after the new distance T falls below a predetermined value, The transformation matrix N is calculated based on the rotation matrix R and information on the posture and position of the camera. (J) Based on the transformation matrix N, the camera rotation matrix and the camera movement vector which are external parameters of the camera (410) and (k) a step (411) of correcting an error of an external parameter of the camera.

また、他の実施形態に係る方法は、ワールド座標系とカメラ座標系の原点、X軸、Y軸およびZ軸が同一の場合に、ワールド座標系における4つの特徴点が作る2つの角度を基にして、カメラ座標系での各特徴点の座標位置を推定する方法であることを特徴とする。この方法はコンピュータによって実行される。また、この方法は、(a)ワールド座標系における4つの特徴点A、B、C、Dを選択するステップ(401)と、(b)選択した特徴点を結んだ辺AB、辺BC、辺CD、辺DAの長さを計算するステップ(402)と、(c)辺ABおよび辺BCが作る角度B、並びに辺CDおよび辺DAが作る角度Dを計算するステップ(403)であって、角度Bおよび角度Dは0度より大きく90度以下であるステップと、(d)原点と、4つの特徴点A、B、C、Dをスクリーン座標系に変換した変換後の各点とを結ぶ4つの視線ベクトルA、B、C、Dを計算するステップ(405)と、(e)視線ベクトルAを延ばした直線で形成される距離Tを8分割して、該8分割した各地点のうち特徴点Aが存在する座標位置に最も近い地点がいずれかを推定するステップ(406)であって、該推定は、8分割した各地点のうち原点に最も近い地点から始め、各地点を基点にして視線ベクトルB、D上の点のうち辺AB、辺DAの長さと等しくなる点B´、D´をそれぞれ求め、点B´と視線ベクトルC上の点を結ぶ点のうち辺BCの長さと等しくなる点C´を求め、該基点、点B´、C´、D´で作られる角度B´、角度D´の角度B、角度Dとの差異を前記8分割した各地点で求め、特徴点A、B、C、Dに最も近似する8分割した地点のうちの一つの基点、および該一つの基点に対応するB´、C´、D´を求めるステップと、(f)距離Tを2分の1に収束した距離を求めるステップであって、収束された新たな距離Tは、推定された地点から距離Tの4分の1の距離だけ原点方向および視線ベクトルAを延ばした方向に離れた地点で形成されるステップ(407)と、(g)新たな距離Tが予め定められた値を下回る(408)まで、ステップ(e)および(f)を繰返すステップと、を含むことを特徴とする。   Further, the method according to another embodiment is based on two angles formed by four feature points in the world coordinate system when the origin, X axis, Y axis, and Z axis of the world coordinate system and the camera coordinate system are the same. Thus, it is a method for estimating the coordinate position of each feature point in the camera coordinate system. This method is executed by a computer. This method also includes (a) a step (401) of selecting four feature points A, B, C, and D in the world coordinate system, and (b) a side AB, a side BC, and a side connecting the selected feature points. Calculating the length of CD and side DA (402); and (c) calculating the angle B created by side AB and side BC and the angle D created by side CD and side DA (403), Steps in which the angle B and the angle D are greater than 0 degrees and less than or equal to 90 degrees, and (d) the origin and the converted points obtained by converting the four feature points A, B, C, and D into the screen coordinate system are connected. (405) calculating the four line-of-sight vectors A, B, C, and D; and (e) dividing the distance T formed by the straight line extending the line-of-sight vector A into 8 parts, Which point is closest to the coordinate position where feature point A exists In the estimation step (406), the estimation starts from a point closest to the origin among the eight divided points, and side AB, side DA among points on the line-of-sight vectors B, D with each point as a base point Points B ′ and D ′ that are equal to the length of the line B, and points C ′ that are equal to the length of the side BC among points connecting the point B ′ and the point on the line-of-sight vector C are obtained. The difference between the angle B ′ formed by C ′ and D ′, the angle B of the angle D ′, and the angle D is obtained at each of the eight divided points, and is divided into eight most approximate to the feature points A, B, C, and D. A step of obtaining one base point of the points and B ′, C ′, D ′ corresponding to the one base point, and (f) a step of obtaining a distance converged by a half of the distance T, The new converged distance T is the distance from the estimated point by a quarter of the distance T and the direction of the origin and the view. Step (407) formed at a point distant in the direction in which the vector A is extended, and (g) Steps (e) and (f) are repeated until the new distance T falls below a predetermined value (408). And a step.

本発明に係るカメラキャリブレーション手法によれば、内部パラメータは既に計算済みであるという前提条件に立つと、少なくとも4つの特徴点が存在すれば、同一平面上、非同一平面上の区別なくカメラの外部パラメータの推定を行うことができる。また、4つの特徴点のみでカメラの外部パラメータを推定するため、従来の計算負荷を大幅に軽減できる。さらに、既存の特徴点情報にて補正を行うため、計算結果の精度も確保することができる。   According to the camera calibration method according to the present invention, on the precondition that the internal parameters have already been calculated, if there are at least four feature points, the camera is not distinguished on the same plane or on the same plane. External parameter estimation can be performed. In addition, since the external parameters of the camera are estimated using only four feature points, the conventional calculation load can be greatly reduced. Furthermore, since the correction is performed with the existing feature point information, the accuracy of the calculation result can be ensured.

従来技術の、カメラから見たときのスクリーン座標での特徴点位置を示す図である。It is a figure which shows the feature point position in a screen coordinate when it sees from the camera of a prior art. 従来技術の、ワールド座標上の8つの特徴点とカメラの関係を示す図である。It is a figure which shows the relationship of eight feature points on a world coordinate, and a camera of a prior art. 本発明のカメラキャリブレーション算出方法を行うためのシステムのハードウェア構成の一例を示すブロック図である。It is a block diagram which shows an example of the hardware constitutions of the system for performing the camera calibration calculation method of this invention. 本発明のカメラキャリブレーション算出方法の全体的な流れを示す図である。It is a figure which shows the whole flow of the camera calibration calculation method of this invention. ワールド座標上の4つの特徴点をランダムに選択した例を示す図である。It is a figure which shows the example which selected four feature points on a world coordinate at random. 視点位置から4つのスクリーン座標上の特徴点を結ぶ視線ベクトルの概念を示す図である。It is a figure which shows the concept of the gaze vector which connects the feature point on four screen coordinates from a viewpoint position. Aの視線ベクトルを伸ばして特徴点Aのワールド座標位置を推定する概念を示す図である。It is a figure which shows the concept which extends the visual line vector of A and estimates the world coordinate position of the feature point A. 任意の特徴点のワールド座標上の位置を推定する処理の詳細を流れ図である。12 is a flowchart showing details of processing for estimating the position of an arbitrary feature point in world coordinates. 点B´から直線Cに下ろした直線のうちワールド座標でのBCの長さと同一のものを計算するための概念図である。It is a conceptual diagram for calculating the same length as the length of BC in the world coordinates among the straight lines drawn down from the point B ′ to the straight line C. minT、maxTを更新するための流れ図である。It is a flowchart for updating minT and maxT. カメラキャリブレーションにおいて解が2つ以上存在するパターンを示す概念図である。It is a conceptual diagram which shows the pattern in which two or more solutions exist in camera calibration. カメラの外部パラメータの誤差を補正する処理を加えたカメラキャリブレーションを示す流れ図である。It is a flowchart which shows the camera calibration which added the process which correct | amends the error of the external parameter of a camera. カメラの外部パラメータの誤差を補正する処理を加えたカメラキャリブレーションを示す流れ図である。It is a flowchart which shows the camera calibration which added the process which correct | amends the error of the external parameter of a camera.

図3は、本発明のカメラキャリブレーション算出方法を行うためのシステムのハードウェア構成の一例を示すブロック図である。このシステムは、装置300およびカメラ301を含んでおり、両者は有線/無線媒体302を介して接続されている。   FIG. 3 is a block diagram showing an example of a hardware configuration of a system for performing the camera calibration calculation method of the present invention. The system includes a device 300 and a camera 301, both connected via a wired / wireless medium 302.

カメラ301は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)などを搭載した一般的なカメラで構わない。また、カメラ301は、撮像した映像データを一時的に記憶しておくためのメモリ(例えば、フラッシュメモリ)を内蔵し、その映像データを装置300に送信する機能を有する。   The camera 301 may be a general camera equipped with a CCD (Charge Coupled Devices), a CMOS (Complementary Metal Oxide Semiconductor), or the like. In addition, the camera 301 has a built-in memory (for example, a flash memory) for temporarily storing captured video data, and has a function of transmitting the video data to the apparatus 300.

装置300は、制御部311、主記憶部312、補助記憶部313、入出力インターフェース(I/F)部314、及び出力表示部315を含み、これらの構成要素はバス316によって相互に接続されており、制御部311によって各構成要素312〜315は統括して制御される。なお、この装置300は、一般的なパーソナルコンピュータ(PC)などのコンピュータであって構わない。   The apparatus 300 includes a control unit 311, a main storage unit 312, an auxiliary storage unit 313, an input / output interface (I / F) unit 314, and an output display unit 315, and these components are connected to each other by a bus 316. The components 312 to 315 are collectively controlled by the control unit 311. The apparatus 300 may be a computer such as a general personal computer (PC).

制御部311は、中央処理装置(CPU)を含んでおり、上述したように各構成要素312〜315の制御やデータの演算を行い、また、補助記憶部313に格納されている各種プログラムを主記憶部312に読み出して実行する。なお、制御部311は、3Dグラフィックスの表示を行うために必要な演算処理を行うGPU(Graphics Processing Unit)を有していても良い。   The control unit 311 includes a central processing unit (CPU), controls the components 312 to 315 and calculates data as described above, and mainly executes various programs stored in the auxiliary storage unit 313. Read to the storage unit 312 and execute. Note that the control unit 311 may include a GPU (Graphics Processing Unit) that performs arithmetic processing necessary for displaying 3D graphics.

主記憶部312は、メインメモリとも呼ばれ、装置300に入力されたデータ、コンピュータ実行可能な命令及び当該命令による演算処理後のデータなどを記憶する。補助記憶部313は、ハードディスク(HDD)などに代表される記憶装置であり、データやプログラムを長期的に保存する際に使用される。つまり、制御部311がプログラムを実行してデータの演算を行う場合には、補助記憶部313から必要なデータだけ主記憶部312に読み出し、演算結果のデータを長期的に記憶・保存するには制御部311が補助記憶部313に演算結果のデータを書き込む。   The main storage unit 312 is also called a main memory, and stores data input to the apparatus 300, computer-executable instructions, data after arithmetic processing by the instructions, and the like. The auxiliary storage unit 313 is a storage device represented by a hard disk (HDD) or the like, and is used when data and programs are stored for a long period of time. That is, when the control unit 311 executes a program to perform data calculation, only necessary data is read from the auxiliary storage unit 313 to the main storage unit 312, and calculation result data is stored and stored in the long term. The control unit 311 writes the calculation result data in the auxiliary storage unit 313.

入出力インターフェース(I/F)部314は、カメラ301との間でデータ送受信を行うインターフェースであり、有線/無線媒体302に接続する。出力表示部315は、カメラ301によって撮像した映像データを表示するディスプレイなどの表示装置であり、本発明に係るカメラキャリブレーションの詳細処理も同時に表示可能である。   An input / output interface (I / F) unit 314 is an interface that transmits and receives data to and from the camera 301, and is connected to the wired / wireless medium 302. The output display unit 315 is a display device such as a display that displays video data captured by the camera 301, and can also display detailed processing of camera calibration according to the present invention at the same time.

図4は、本発明に係るカメラキャリブレーション手法の全体的な流れを示す図である。以後、図4を参照しながら、本発明の実施形態に係るカメラキャリブレーション手法を使用して、カメラの姿勢(3×3の回転行列)と移動ベクトル(ワールド座標上の位置)を計算する手順を詳細に説明する。以下の説明では、n個のサンプリングポイントが存在する場合、ワールド座標上の特徴点位置を(Wx1,Wy1,Wz1)、(Wx2,Wy2,Wz2)、〜(Wxn,Wyn,Wzn)とし、対応するスクリーン上の位置を(U1,V1)、(U2,V2)、〜(Un,Vn)とする。   FIG. 4 is a diagram showing the overall flow of the camera calibration method according to the present invention. Hereinafter, referring to FIG. 4, a procedure for calculating a camera posture (3 × 3 rotation matrix) and a movement vector (position on the world coordinates) using the camera calibration method according to the embodiment of the present invention. Will be described in detail. In the following explanation, when there are n sampling points, the feature point positions on the world coordinates are (Wx1, Wy1, Wz1), (Wx2, Wy2, Wz2), ~ (Wxn, Wyn, Wzn) The positions on the screen to be performed are (U1, V1), (U2, V2), to (Un, Vn).

ステップS401では、ワールド座標における4つの特徴点A、B、C、Dを、以下の条件、
0°< ∠B ≦90°
0°< ∠D ≦90°
を満たすようにランダムに選択する。図5a、bは、ワールド座標上の4つの特徴点A、B、C、Dをランダムに選択した例を示すが、図5bのように、4つの特徴点A、B、C、Dを結んだそれぞれの辺が交差していてもかまわない。
In step S401, the four feature points A, B, C, and D in the world coordinates are converted into the following conditions:
0 ° <∠B ≦ 90 °
0 ° <∠D ≦ 90 °
Select at random to satisfy. 5a and 5b show an example in which four feature points A, B, C, and D on the world coordinates are selected at random, but as shown in FIG. 5b, the four feature points A, B, C, and D are connected. However, it does not matter if the sides intersect.

この場合の4組分のワールド座標値とスクリーン座標値が、以下に説明するカメラキャリブレーション算出手法にて使用される。4つの特徴点A、B、C、Dのワールド座標上の空間の位置XYZは、それぞれ、w[0]、w[1]、w[2]、w[3]で表され、対応するスクリーン座標上の位置XYは、それぞれ、s[0]、s[1]、s[2]、s[3]で表されるものとする。   In this case, four sets of world coordinate values and screen coordinate values are used in a camera calibration calculation method described below. The space positions XYZ on the world coordinates of the four feature points A, B, C, and D are represented by w [0], w [1], w [2], and w [3], respectively, and corresponding screens. The coordinate positions XY are represented by s [0], s [1], s [2], and s [3], respectively.

ステップS402では、ワールド座標上での各辺の長さを計算する。AB、BC、CD、DAの長さは、それぞれ以下の計算式のようになる。   In step S402, the length of each side on world coordinates is calculated. The lengths of AB, BC, CD, and DA are as shown in the following calculation formulas.

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

ステップS403では、ワールド座標上の特徴点B、Dにおける角度を計算する。∠Bを求めるには、まず、辺AB、BCを正規化した上で、内積を計算する。そうすることで∠Bをcos値で求めることができる。   In step S403, the angles at feature points B and D on the world coordinates are calculated. In order to obtain ∠B, first, the sides AB and BC are normalized, and the inner product is calculated. By doing so, ∠B can be obtained as a cos value.

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

同様にして、辺AD、CDを正規化した上で、内積を計算する。そして、∠Dのcos値を求める。   Similarly, the inner product is calculated after normalizing the edges AD and CD. Then, the cos value of ∠D is obtained.

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

Figure 2010239515
Figure 2010239515

ステップS404では、ワールド座標上の辺ABをX軸方向と仮定したときの回転行列Rを計算する。以下の式で「cross」はベクトルの外積を求める関数である。   In step S404, a rotation matrix R when the side AB on the world coordinate is assumed to be in the X-axis direction is calculated. In the following equation, “cross” is a function for obtaining the outer product of vectors.

Figure 2010239515
Figure 2010239515

その上で、vX,vY,vZをベクトルを正規化する関数「normalize」を使用して、   Then, using the function “normalize” to normalize vX, vY, vZ to vectors,

Figure 2010239515
Figure 2010239515

とし、3×3の回転行列Rを以下のように計算する。   And a 3 × 3 rotation matrix R is calculated as follows.

Figure 2010239515
Figure 2010239515

ステップS405では、ビュー座標とワールド座標が等しいものとして、かつビュー座標を姿勢ベクトル=単位行列、視点位置=(0, 0, 0)として、視点位置(0, 0, 0)から4つのスクリーン座標上の特徴点を結ぶ視線ベクトルを計算する。図6はステップS405の処理内容の概念図を表している。本ステップでは、既知のカメラ内部パラメータより、透視座標からビュー座標への変換行列(ビュー座標から透視座標に変換する行列の逆行列)をあらかじめ求めておき、このときの方向ベクトルを正規化することで視線方向のベクトルを求めることができる。それぞれの正規化されたベクトルをvSDir[0]、vSDir[1]、vSDir[2]、vSDir[3]とする。それぞれのベクトルを伸ばした位置に、対象となる特徴点A、B、C、Dのワールド座標値が存在することになる。   In step S405, it is assumed that the view coordinates are equal to the world coordinates, and the view coordinates are set as posture vector = unit matrix, viewpoint position = (0, 0, 0), and four screen coordinates from the viewpoint position (0, 0, 0). A line-of-sight vector connecting the upper feature points is calculated. FIG. 6 shows a conceptual diagram of the processing content of step S405. In this step, a transformation matrix from perspective coordinates to view coordinates (inverse matrix of a matrix that transforms from view coordinates to perspective coordinates) is obtained in advance from known camera internal parameters, and the direction vector at this time is normalized. The vector of the line-of-sight direction can be obtained with Let the normalized vectors be vSDir [0], vSDir [1], vSDir [2], and vSDir [3]. The world coordinate values of the target feature points A, B, C, and D exist at positions where the respective vectors are extended.

ステップS406では、4つの特徴点のうちひとつを選択し、その特徴点に対応する視線ベクトルを延長した先のどの位置にワールド座標上の特徴点が存在するかを推定する。ここでは、まず特徴点Aのワールド座標上での位置を求めることにする。スクリーン座標でのAの視線ベクトルvSDir[0]を伸ばした先には必ず特徴点Aのワールド座標位置が存在する。本発明に係る方法では、以下に説明するように、Aの視線ベクトルを十分な距離伸ばしてその距離を8分割することを繰り返しながら、最適な位置を収束させる。また、走査する視点からの距離をminTからmaxTまで変化させるとし、例えば、初期値は、
minT = 5.0
maxT = 99999.0
などの十分小さい値と十分大きい値を設定する。そして、
dT = (maxT - minT) / 8.0
とし、視点位置(0, 0, 0)からの距離tは、minTから始まり、dTずつ増加させてmaxTまで走査していくものとする。
In step S406, one of the four feature points is selected, and it is estimated at which position in the world coordinates the line of sight vector corresponding to the feature point is extended. Here, first, the position of the feature point A on the world coordinates is determined. The world coordinate position of the feature point A always exists after the line-of-sight vector vSDir [0] of A is extended in the screen coordinates. In the method according to the present invention, as will be described below, the optimal position is converged while repeatedly repeating the distance vector of A by a sufficient distance and dividing the distance into eight. Also, assume that the distance from the scanning viewpoint is changed from minT to maxT, for example, the initial value is
minT = 5.0
maxT = 99999.0
Set a sufficiently small value and a sufficiently large value. And
dT = (maxT-minT) / 8.0
The distance t from the viewpoint position (0, 0, 0) starts from minT, increases by dT, and scans to maxT.

次に、図8を参照しながら、ステップS406で行われる処理の詳細を説明する。   Next, details of the process performed in step S406 will be described with reference to FIG.

ステップS801では、視線ベクトルAを伸ばした先のワールド座標上の仮の位置を計算する。スクリーン座標上の点Aを伸ばした先の仮のワールド座標上の点は、仮のワールド座標上の点の位置をvAとし、視点からの距離をtとした場合に、以下の式によって計算される。
vA = vSDir[0] * t
上述したように、距離tは、minTから始まるので、t = minTとする。
In step S801, a temporary position on the previous world coordinates obtained by extending the line-of-sight vector A is calculated. The point on the temporary world coordinate, which is the point on the screen coordinate extended, is calculated by the following formula, where the position of the point on the temporary world coordinate is vA and the distance from the viewpoint is t. The
vA = vSDir [0] * t
As described above, since the distance t starts from minT, t = minT.

ステップS802では、tがmaxTであるか否かを判定する。tがmaxTに到達した場合には、本ステップの処理を終了する。   In step S802, it is determined whether t is maxT. When t reaches maxT, the process of this step is terminated.

ステップS803では、点vAから視線ベクトルB上に、距離ABの拘束条件で下ろした位置を算出する。図7に示したように、視線ベクトルB(vSDir[1])で表される直線に対して点vAから下ろした垂線の足をpとする。また、点vAから垂線の足pまでの距離をhとし、ステップS402において既に求めているワールド座標上のABの距離と距離hとを比較する。   In step S803, a position lowered from the point vA onto the line-of-sight vector B under the constraint condition of the distance AB is calculated. As shown in FIG. 7, let p be the foot of a perpendicular line drawn from the point vA with respect to the straight line represented by the line-of-sight vector B (vSDir [1]). Further, the distance from the point vA to the perpendicular foot p is set as h, and the distance AB on the world coordinates already obtained in step S402 is compared with the distance h.

h>ABの関係が成立する場合は、視点位置(0, 0, 0)から見た仮のワールド座標上の点の位置vAが実際のワールド座標上の点Aの位置よりも遠くにあることを意味するので、この段階で計算を中断し、ステップS407での収束計算にてmaxTの値をさらに小さいものにしてからステップS801の処理からやり直す。   When the relationship h> AB is established, the position vA of the point on the temporary world coordinates viewed from the viewpoint position (0, 0, 0) is farther than the position of the point A on the actual world coordinates. Therefore, the calculation is interrupted at this stage, the value of maxT is further reduced by the convergence calculation in step S407, and the process from step S801 is started again.

h=ABの場合は、vAがワールド座標上の特徴点Aの位置であり、かつ垂線の足pがワールド座標上の特徴点Bの位置と仮定できる。   In the case of h = AB, it can be assumed that vA is the position of the feature point A on the world coordinates, and the perpendicular foot p is the position of the feature point B on the world coordinates.

また、h<ABの場合は、直線B上に仮の点vAからの距離がABとなる位置を計算して当てはめる。   If h <AB, a position where the distance from the temporary point vA is AB on the straight line B is calculated and applied.

Figure 2010239515
Figure 2010239515

計算された直線B上の点B´1とvAの距離、およびB´2とvAの距離は、共にABの長さと等しくなる。   The calculated distance between the points B′1 and vA on the straight line B and the distance between B′2 and vA are both equal to the length of AB.

ステップS804では、点vAから視線ベクトルD上に、距離ADの拘束条件で下ろした位置を算出する。ステップS803と同様に、視線ベクトルD(vSDir[3])で表される直線に対して点vAから下ろした垂線の足をp1とする。また、点vAから垂線の足p1までの距離をh1として、ADの距離と距離h1とを比較する。h1<ADの場合は、直線D上にてvAとの距離がADとなる位置を計算し、以下の式のように、D´1、D´2とする。   In step S804, a position lowered from the point vA onto the line-of-sight vector D under the constraint condition of the distance AD is calculated. Similarly to step S803, the foot of the perpendicular line drawn from the point vA with respect to the straight line represented by the line-of-sight vector D (vSDir [3]) is defined as p1. Further, the distance from the point vA to the perpendicular foot p1 is set as h1, and the AD distance is compared with the distance h1. In the case of h1 <AD, the position where the distance from vA is AD on the straight line D is calculated, and D′ 1 and D′ 2 are obtained as in the following equations.

Figure 2010239515
Figure 2010239515

ステップS805では、点B´から視線ベクトルC上に、距離BCの拘束条件で下ろした位置を算出する。点B´は、ステップS803において求めたB´1またはB´2である。   In step S805, the position lowered from the point B ′ onto the line-of-sight vector C under the constraint condition of the distance BC is calculated. Point B ′ is B′1 or B′2 obtained in step S803.

図9に示したように、点B´から視線ベクトルC(vSDir[2])で表される直線に下ろした垂線の足をp2とする。点B´とp2間の距離h2と、ステップS402において既に求めているワールド座標上のBCの距離とを対比する。なお、本ステップでは、h2がBCの距離より小さい値であることが条件となる(大きい値の場合は、ステップS803で既に処理が中断している)。   As shown in FIG. 9, let p2 be the leg of a perpendicular line drawn from the point B ′ to the straight line represented by the line-of-sight vector C (vSDir [2]). The distance h2 between the points B ′ and p2 is compared with the distance BC on the world coordinates already obtained in step S402. In this step, it is a condition that h2 is a value smaller than the BC distance (in the case of a large value, the processing has already been interrupted in step S803).

h2=BCとなる場合は、垂線の足p2がワールド座標上の点Cの位置と仮定できる。一方、h2<BCの場合は、直線C上で点B´からの距離がBCとなる位置を計算して当てはめる。   When h2 = BC, it can be assumed that the foot p2 of the perpendicular is the position of the point C on the world coordinates. On the other hand, when h2 <BC, the position on the straight line C where the distance from the point B ′ is BC is calculated and applied.

Figure 2010239515
Figure 2010239515

計算された直線C上の点C´1とB´の距離、およびC´2とB´の距離は、共にBCの長さと等しくなる。   The calculated distance between the points C′1 and B ′ on the straight line C and the distance between C′2 and B ′ are both equal to the length of BC.

ステップS806では、上記ステップまでで求めた仮の点ABC(vA、B´、C´)が作る角度を計算する。上記のステップまでで以下の点が計算できている。   In step S806, the angle formed by the temporary point ABC (vA, B ′, C ′) obtained up to the above step is calculated. Up to the above steps, the following points can be calculated.

スクリーン上の点Aを伸ばしたベクトルvSDir[0]上の点vA、
スクリーン上の点Bを伸ばしたベクトルvSDir[1]上の点B´1、B´2、
スクリーン上の点Cを伸ばしたベクトルvSDir[2]上の点C´1、C´2。
A point vA on the vector vSDir [0] obtained by extending the point A on the screen,
Points B′1, B′2 on the vector vSDir [1] obtained by extending the point B on the screen,
Points C′1 and C′2 on the vector vSDir [2] obtained by extending the point C on the screen.

このため、最大で以下の4つの組み合わせが存在するので、その組み合わせより、仮の点Bでの角度を計算する。
(vA,B´1,C´1)、
(vA,B´1,C´2)、
(vA,B´2,C´1)、
(vA,B´2,C´2)
For this reason, since the following four combinations exist at the maximum, the angle at the temporary point B is calculated from the combination.
(VA, B'1, C'1),
(VA, B'1, C'2),
(VA, B'2, C'1),
(VA, B'2, C'2)

4つの組み合わせの内積値より、仮の点Bをはさむ辺の角度(cos値)を計算し、それぞれ、angle[0]、angle[1]、angle[2]、angle[3]とする。ステップS403での計算より、ワールド座標上のオリジナルの点Bでの角度はangleBであるため、   From the inner product values of the four combinations, the angles (cos values) of the sides sandwiching the temporary point B are calculated as angle [0], angle [1], angle [2], and angle [3], respectively. From the calculation in step S403, the angle at the original point B on the world coordinates is angleB.

Figure 2010239515
Figure 2010239515

で求めた4つの絶対値のうちゼロ値(0.0)に最も近いものを採用し、仮の点B、Cの位置とする(これをB´、C´とする)。また、このときのv[i]の最小値を誤差sValとして格納する。なお、誤差sValの初期値は9999.0などの大きな値を予め代入しておく。   Among the four absolute values obtained in step (1), the one closest to the zero value (0.0) is adopted as the positions of temporary points B and C (this is referred to as B ′ and C ′). At this time, the minimum value of v [i] is stored as an error sVal. Note that a large value such as 9999.0 is substituted in advance for the initial value of the error sVal.

ステップS807では、上記で求めた仮の点ADCが作る角度を計算する。ステップS806において、点B´、C´は固定されたので、ステップS804で計算された直線D上の点D´1、D´2を使って、仮の点ADCで作られる点Dでの角度を計算する。ここで、以下の2つの組み合わせに分かれる。
(vA,D´1,C´)、
(vA,D´2,C´)
2つの組み合わせの内積値より、仮の点Dをはさむ辺の角度(cos値)を計算し、angle[4]、angle[5]とする。ステップS403での計算より、ワールド座標上のオリジナルの点Dでの角度はangleDであるため、
In step S807, the angle formed by the temporary point ADC obtained above is calculated. In step S806, since the points B ′ and C ′ are fixed, using the points D′ 1 and D′ 2 on the straight line D calculated in step S804, the angle at the point D created by the temporary point ADC. Calculate Here, it is divided into the following two combinations.
(VA, D′ 1, C ′),
(VA, D'2, C ')
From the inner product value of the two combinations, the angle (cos value) of the side sandwiching the temporary point D is calculated as angle [4] and angle [5]. From the calculation in step S403, the angle at the original point D on the world coordinates is angleD.

Figure 2010239515
Figure 2010239515

で求めた2つの絶対値のうちゼロ値(0.0)に最も近いものを採用し、仮のDの位置とする(これをD´とする)。また、このときのv[i]の最小値をステップS806で格納した誤差sValに加算する(sVal = sVal + v[i]の最小値)。   Of the two absolute values obtained in step 1, the one closest to the zero value (0.0) is adopted as the temporary D position (this is assumed to be D ′). Further, the minimum value of v [i] at this time is added to the error sVal stored in step S806 (sVal = sVal + v [i] minimum value).

このときの誤差値であるsValが完全に0.0になったとき、そのときのvA、B´、C´、D´が求めるグローバル座標上での座標位置になる。だが、ピンポイントで誤差が収束することは少ないため、誤差が収束するように上記ステップを反復させることになる。   When the error value sVal at this time becomes 0.0 completely, the vA, B ′, C ′, and D ′ at that time are coordinate positions on the global coordinates to be obtained. However, since the error hardly converges at the pinpoint, the above steps are repeated so that the error converges.

ステップS808では、視点からの距離tと誤差、求まった座標位置A、B´、C´、D´を配列に格納する。すなわち、tA[i]に距離tを、sValA[i]に誤差の値sValを、Apos[i]、Bpos[i]、Cpos[i]、Dpos[i]にワールド座標値を格納していく。ここで、iは配列の添え字でminTからmaxTの距離を8分割したため0〜8の値が入る。   In step S808, the distance t from the viewpoint, the error, and the obtained coordinate positions A, B ′, C ′, and D ′ are stored in the array. That is, the distance t is stored in tA [i], the error value sVal is stored in sValA [i], and the world coordinate values are stored in Apos [i], Bpos [i], Cpos [i], and Dpos [i]. . Here, i is a subscript of the array, and the value from 0 to 8 is entered because the distance from minT to maxT is divided into eight.

最後に、ステップS809では、tにdTを加算してステップS802に戻る。tがmaxTになるまで図8の処理を繰り返す。   Finally, in step S809, dT is added to t, and the process returns to step S802. The process of FIG. 8 is repeated until t reaches maxT.

再び、図4のステップS407に戻る。ステップS407では、収束計算を行う。図8で説明した各ステップの処理の結果、sValA[i]に誤差の値が格納されているので、この配列のうちで、一番値が小さくなるiの位置を求める。以後、この誤差の配列にて谷となる部分を狭めていく処理を繰り返すことにより、誤差が0.0に近づくように収束させることになる。   Again, it returns to step S407 of FIG. In step S407, convergence calculation is performed. As a result of the processing of each step described with reference to FIG. 8, since the error value is stored in sValA [i], the position of i having the smallest value in this array is obtained. Thereafter, by repeating the process of narrowing the valley portion in this error array, the error is converged so as to approach 0.0.

ここで、図10に示したように、谷の部分での視点位置からの距離tA[i]を中心にminT、maxTを更新する。すなわち、一番値が小さくなるiの位置に相当する距離tA[i]と、従来のminT、maxTの間の距離の4分の1の距離とを各々減算、加算して、新たにminT、maxTとする。なお、新たなminTが初期値より小さくなる場合は初期値にし、新たなmaxTが初期値より大きくなる場合は初期値にする。新たなminT、maxTの間の距離を8等分した値をdTとし、距離tを新たなminTとする。その後、図8のステップS801に処理に戻る。   Here, as shown in FIG. 10, minT and maxT are updated around the distance tA [i] from the viewpoint position at the valley portion. That is, the distance tA [i] corresponding to the position of i where the smallest value is reduced and the distance of 1/4 of the distance between the conventional minT and maxT are subtracted and added, respectively, and a new minT, maxT. Note that when the new minT is smaller than the initial value, the initial value is used. When the new minT is larger than the initial value, the initial value is used. A value obtained by dividing the distance between the new minT and maxT into eight equal parts is dT, and the distance t is a new minT. Thereafter, the process returns to step S801 in FIG.

なお、maxTとminTの差が1.0より小さくなれば(ステップS408)、そのときのsValA[i]が最終的な誤差値であり、このときの特徴点位置がApos[i]、Bpos[i]、Cpos[i]、Dpos[i]と確定される。本発明によれば、距離は1回の処理のループにて2分割されていくため、例えば、初期値minT = 5.0、maxT = 99999.0の場合は14回の繰り返し処理にて最小の位置で誤差は収束する。   If the difference between maxT and minT is smaller than 1.0 (step S408), sValA [i] at that time is the final error value, and the feature point positions at this time are Apos [i] and Bpos [i]. , Cpos [i], Dpos [i]. According to the present invention, since the distance is divided into two in one processing loop, for example, in the case of the initial value minT = 5.0 and maxT = 99999.0, the error is minimized at the minimum position in 14 iterations. Converge.

ステップS409では、ワールド座標からビュー座標に変換する行列を求める。ステップS406〜407およびステップS801〜S809にて求められた3次元上の座標値Apos[i]、Bpos[i]、Cpos[i]、Dpos[i]を改めてw2[0]、w2[1]、w2[2]、w2[3]とおく。このw2[i]は、カメラを姿勢ベクトル=単位行列、視点位置=(0, 0, 0)としたときの座標値である。これらの座標値w2[0]、w2[1]、w2[2]、w2[3]を実際のワールド座標位置w[0]、w[1]、w[2]、w[3]の座標系に変換するときの変換行列からカメラの姿勢と移動ベクトルが算出することができる。回転行列は以下の式にて計算することができる。   In step S409, a matrix for converting from world coordinates to view coordinates is obtained. The three-dimensional coordinate values Apos [i], Bpos [i], Cpos [i], and Dpos [i] obtained in steps S406 to S407 and steps S801 to S809 are changed to w2 [0] and w2 [1]. , W2 [2], w2 [3]. This w2 [i] is a coordinate value when the camera is set to the posture vector = unit matrix and the viewpoint position = (0, 0, 0). These coordinate values w2 [0], w2 [1], w2 [2], w2 [3] are the coordinates of the actual world coordinate position w [0], w [1], w [2], w [3] The camera posture and the movement vector can be calculated from the transformation matrix when the system is transformed. The rotation matrix can be calculated by the following formula.

Figure 2010239515
Figure 2010239515

ここで、4×4行列にてオリジナルの姿勢と位置を含めたカメラ情報を以下のようにする。   Here, the camera information including the original posture and position in the 4 × 4 matrix is as follows.

Figure 2010239515
Figure 2010239515

同様に、推定された回転行列Rと位置w2[0]より、推定後の4×4行列は以下のようになる。   Similarly, from the estimated rotation matrix R and the position w2 [0], the estimated 4 × 4 matrix is as follows.

Figure 2010239515
Figure 2010239515

ここで、N=inv(orgM)*Mを計算する(invは、4×4行列の逆行列を計算する関数)。計算された4×4行列Nが、ワールド座標からビュー座標への変換行列に相当する。   Here, N = inv (orgM) * M is calculated (inv is a function for calculating an inverse matrix of 4 × 4 matrix). The calculated 4 × 4 matrix N corresponds to a transformation matrix from world coordinates to view coordinates.

ステップS410では、ワールド座標からビュー座標に変換する行列Nからカメラの回転行列と移動ベクトルを逆算する。   In step S410, the camera rotation matrix and the movement vector are calculated backward from the matrix N for converting the world coordinates to the view coordinates.

Figure 2010239515
Figure 2010239515

ここで求まったrMatがカメラの回転行列、tVecがカメラの移動ベクトルとなる。
ステップS411では、ステップS410にて推定されたカメラの外部パラメータの誤差を補正する。上述した各ステップの処理にて、カメラの外部パラメータ(回転行列、移動ベクトル)が求まるが、特徴点4点のみの計算であるため、誤差が発生している可能性がある。また、図11に示すように、カメラキャリブレーションでは解が2つ以上存在するパターンもあり、その場合は軸が大きく反転することになる。カメラ位置と姿勢が原点を中心に反対に位置し、かつ、カメラ姿勢の軸が反転している場合は、ワールド座標上の特徴点とカメラの投影面に投影した座標とは、共に正しく対応している関係になる。本発明では、この現象の回避策として、1つ前のカメラ姿勢でのX軸とY軸と、新しいカメラ姿勢でのX軸とY軸との傾きを調べ、傾きが小さい方を採用する手法をとることができる。
The rMat obtained here is the rotation matrix of the camera, and tVec is the movement vector of the camera.
In step S411, the camera external parameter error estimated in step S410 is corrected. Although the external parameters (rotation matrix, movement vector) of the camera are obtained by the processing of each step described above, there is a possibility that an error has occurred because only four feature points are calculated. In addition, as shown in FIG. 11, there is a pattern in which there are two or more solutions in camera calibration, and in that case, the axis is largely reversed. If the camera position and orientation are opposite from the origin and the camera orientation axis is reversed, the feature points on the world coordinates and the coordinates projected on the camera projection plane both correspond correctly. It becomes a relationship. In the present invention, as a workaround for this phenomenon, a method of examining the inclinations of the X axis and Y axis in the previous camera posture and the X axis and Y axis in the new camera posture and adopting the one having the smaller inclination. Can be taken.

一方、誤差の補正処理は、上記で求めたカメラの外部パラメータ(回転行列、移動ベクトル)よりワールド座標からビュー座標への変換行列を計算し、その行列を使って特徴点のワールド座標位置(Wxn, Wyn, Wzn)をスクリーン座標値に変換する。このときのスクリーン上の点の位置を(U'n, V'n)とし、オリジナルのスクリーン上の点(Un, Vn)との距離の二乗和を評価のための誤差とする。   On the other hand, the error correction process calculates a transformation matrix from world coordinates to view coordinates from the camera external parameters (rotation matrix, movement vector) obtained above, and uses the matrix to calculate the world coordinate position of the feature point (Wxn , Wyn, Wzn) to screen coordinate values. The position of the point on the screen at this time is (U'n, V'n), and the sum of squares of the distance to the point (Un, Vn) on the original screen is used as an error for evaluation.

Figure 2010239515
Figure 2010239515

この二乗和の値Fが0.0に近いほど推定されたカメラの外部パラメータの精度が高いことを示す。   The closer the square sum value F is to 0.0, the higher the accuracy of the estimated external parameters of the camera.

また、本発明では、この誤差値が大きい場合は、スクリーン上の位置(Un, Vn)に微小のノイズを加えて揺らすことにより収束を早める、という手段をとることができる。スクリーン上の特徴点位置にノイズを加える理由は、スクリーン上の特徴点は特徴点検出などですでにノイズが加わった状態で与えられる場合があるためである。   Further, in the present invention, when this error value is large, it is possible to take a means of speeding up convergence by adding a minute noise to the position (Un, Vn) on the screen and shaking it. The reason for adding noise to the feature point position on the screen is that the feature point on the screen may be given in a state where noise has already been added by feature point detection or the like.

このような誤差の補正処理を加えたカメラキャリブレーションを図12及び図13のフローチャートで示す。   Camera calibration to which such error correction processing is added is shown in the flowcharts of FIGS.

本発明は、一般的なカメラキャリブレーションの算出方法として利用することができる。より詳細に言えば、本発明は、拡張現実(AR:Augmented Reality)の分野に利用することができる。   The present invention can be used as a general camera calibration calculation method. More specifically, the present invention can be used in the field of augmented reality (AR).

ARとは、カメラで撮影した動画に対してコンピュータで生成した三次元空間をオーバーラップさせることにより、現実空間に人工的な付加価値をつけることができる表現手法である。ARを利用することにより、カメラを通して見た市街地の個々の建物に対して、その建物に入居している会社や店舗情報をオーバーラップして表示したり(タグ付け)、待ち合わせ場所までの道順を仮想的なラインを引いて導いたり、あるいは、室内のインテリアの配置や壁の装飾を仮想的に生成・配置して、実画像を通しながら仕上がりを確認する、などの応用を実現することができる。   AR is an expression technique that can add artificial added value to a real space by overlapping a three-dimensional space generated by a computer with a moving image taken by a camera. By using AR, for each building in the city area seen through the camera, the company and store information occupying the building is displayed in an overlapping manner (tagging), and the directions to the meeting place are displayed. It is possible to realize applications such as drawing virtual lines and guiding them, or creating and arranging indoor interiors and wall decorations virtually and checking the finish through actual images. .

本発明に係るカメラキャリブレーションは、ARでのカメラの位置と姿勢を推定する部分にて使用することが可能である。従来技術のようにカメラキャリブレーションの精度が悪いと、3次元空間を構築するときにずれやカメラのぶれが生じてしまうという不都合が発生するが、本発明によりそのような従来技術の不都合を解消することができる。   The camera calibration according to the present invention can be used in a portion for estimating the position and orientation of the camera in the AR. If the accuracy of camera calibration is poor as in the prior art, there will be inconveniences such as displacement and camera shake when constructing a three-dimensional space. However, the present invention eliminates such inconveniences of the prior art. can do.

300 装置
301 カメラ
302 有線/無線媒体
311 制御部
312 主記憶部
313 補助記憶部
314 入出力I/F
315 出力表示部
300 device 301 camera 302 wired / wireless medium 311 control unit 312 main storage unit 313 auxiliary storage unit 314 input / output I / F
315 Output display

Claims (6)

ワールド座標系(world coordinate system)とカメラ座標系(camera coordinate system)の原点、X軸、Y軸およびZ軸が同一の場合に、ワールド座標系における4つの特徴点が作る2つの角度を基にして、カメラ座標系での各特徴点の座標位置を推定することによってカメラのキャリブレーションを行う方法であって、
コンピュータが実行する前記方法は、
(a)ワールド座標系における4つの特徴点A、B、C、Dを選択するステップ(401)と、
(b)前記選択した特徴点を結んだ辺AB、辺BC、辺CD、辺DAの長さを計算するステップ(402)と、
(c)前記辺ABおよび辺BCが作る角度B、並びに前記辺CDおよび辺DAが作る角度Dを計算するステップ(403)であって、角度Bおよび角度Dは0度より大きく90度以下であるステップと、
(d)ワールド座標系での辺ABをX軸とする場合の回転行列Rを計算するステップ(404)と、
(e)前記原点と、前記4つの特徴点A、B、C、Dをスクリーン座標系に変換した変換後の各点とを結ぶ4つの視線ベクトルA、B、C、Dを計算するステップ(405)と、
(f)前記視線ベクトルAを延ばした直線で形成される距離Tを8分割して、該8分割した各地点のうち前記特徴点Aが存在する座標位置に最も近い地点がいずれかを推定するステップ(406)であって、該推定は、前記8分割した各地点のうち原点に最も近い地点から始め、各地点を基点にして視線ベクトルB、D上の点のうち前記辺AB、辺DAの長さと等しくなる点B´、D´をそれぞれ求め、点B´と視線ベクトルC上の点を結ぶ点のうち前記辺BCの長さと等しくなる点C´を求め、該基点、点B´、C´、D´で作られる角度B´、角度D´の前記角度B、角度Dとの差異を前記8分割した各地点で求め、特徴点A、B、C、Dに最も近似する8分割した地点のうちの一つの基点、および該一つの基点に対応するB´、C´、D´を求めるステップと、
(g)前記距離Tを2分の1に収束した距離を求めるステップであって、前記収束された新たな距離Tは、前記推定された地点から距離Tの4分の1の距離だけ原点方向および視線ベクトルAを延ばした方向に離れた地点で形成されるステップ(407)と、
(h)前記新たな距離Tが予め定められた値を下回る(408)まで、ステップ(f)および(g)を繰返すステップと
を含み、
前記新たな距離Tが予め定められた値を下回った後に、
(i)ワールド座標系からカメラ座標系への変換行列Nを求めるステップ(409)であって、該変換行列Nは、前記回転行列Rおよびカメラの姿勢と位置の情報に基づいて計算されるステップと、
(j)前記変換行列Nに基づいて、カメラの外部パラメータであるカメラの回転行列およびカメラの移動ベクトルを計算するステップ(410)と、
(k)前記カメラの外部パラメータの誤差補正を行うステップ(411)と
をさらに含むことを特徴とする方法。
Based on the two angles created by the four feature points in the world coordinate system when the origin, X axis, Y axis, and Z axis of the world coordinate system and the camera coordinate system are the same. A method of calibrating the camera by estimating the coordinate position of each feature point in the camera coordinate system,
The method performed by the computer comprises:
(A) a step (401) of selecting four feature points A, B, C, D in the world coordinate system;
(B) calculating the length of side AB, side BC, side CD, and side DA connecting the selected feature points (402);
(C) A step (403) of calculating an angle B formed by the side AB and the side BC and an angle D formed by the side CD and the side DA, wherein the angle B and the angle D are greater than 0 degree and 90 degrees or less. A step and
(D) calculating a rotation matrix R when the side AB in the world coordinate system is the X axis (404);
(E) calculating four line-of-sight vectors A, B, C, and D connecting the origin and the converted points obtained by converting the four feature points A, B, C, and D into a screen coordinate system ( 405),
(F) The distance T formed by the straight line extending the line-of-sight vector A is divided into eight, and the point closest to the coordinate position where the feature point A exists is estimated from among the eight divided points. In step (406), the estimation starts from a point closest to the origin among the eight divided points, and the side AB and side DA among points on the line-of-sight vectors B and D with each point as a base point The points B ′ and D ′ that are equal to the length of the line B are respectively obtained, and the point C ′ that is equal to the length of the side BC among the points connecting the point B ′ and the point on the line-of-sight vector C is obtained. , C ′, D ′, the difference between the angle B ′ and the angle D ′ of the angle B ′ and the angle D ′ is obtained at each of the eight divided points, and is closest to the feature points A, B, C, D 8 One base point of the divided points and B ′, C ′, D ′ corresponding to the one base point are obtained. And the step that,
(G) A step of obtaining a distance obtained by converging the distance T by a half, wherein the new converged distance T is the origin direction by a distance of a quarter of the distance T from the estimated point. And a step (407) formed at a point distant in the direction in which the line-of-sight vector A is extended,
(H) repeating steps (f) and (g) until the new distance T falls below a predetermined value (408), and
After the new distance T is below a predetermined value,
(I) A step (409) of obtaining a transformation matrix N from the world coordinate system to the camera coordinate system, wherein the transformation matrix N is calculated based on the rotation matrix R and information on the posture and position of the camera. When,
(J) calculating a camera rotation matrix and a camera movement vector, which are external parameters of the camera, based on the transformation matrix N (410);
(K) further comprising a step (411) of correcting an error of an external parameter of the camera.
前記ステップ(f)は、
(f1)前記8分割された視線ベクトルA上の地点の一つの基点を点vAとするステップ(801)と、
(f2)前記点vAからの長さが前記辺ABの長さと等しくなる視線ベクトルB上の1つまたは複数の点B´を求めるステップ(803)と、
(f3)前記点vAからの長さが前記辺DAの長さと等しくなる視線ベクトルD上の1つまたは複数の点D´を求めるステップ(804)と、
(f4)前記点B´からの長さが前記辺BCの長さと等しくなる視線ベクトルC上の1つまたは複数の点C´を求めるステップ(805)と、
(f5)前記点vA、点B´、点C´によって作られる1つまたは複数の角度B´を求め、前記角度Bに最も近似する前記点vA、点B´、点C´の組み合わせを決定するステップであって、該決定された組み合わせでの角度B´と前記角度Bの差異を第1の差異値として記憶しておくステップ(806)と、
(f6)前記点vA、点D´、前記一つに決定された点C´によって作られる1つまたは複数の角度D´を求め、前記角度Dに最も近似する前記点vA、該点C´、点D´の組み合わせを決定するステップであって、該決定された組み合わせでの角度D´と前記角度Dの差異である第2の差異値を前記第1の差異値に加算して合計値を算出するステップ(807)と、
(f7)前記一つに決定された点vA、点B´、点C´、点D´の組み合わせ、並びに前記合計値を格納するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
The step (f)
(F1) a step (801) of setting one base point of the points on the line-of-sight vector A divided into eight points vA;
(F2) obtaining one or more points B ′ on the line-of-sight vector B whose length from the point vA is equal to the length of the side AB (803);
(F3) obtaining one or more points D ′ on the line-of-sight vector D whose length from the point vA is equal to the length of the side DA (804);
(F4) obtaining one or more points C ′ on the line-of-sight vector C in which the length from the point B ′ is equal to the length of the side BC (805);
(F5) One or a plurality of angles B ′ formed by the points vA, B ′, and C ′ are obtained, and a combination of the points vA, B ′, and C ′ that is closest to the angle B is determined. Storing the difference between the angle B ′ and the angle B in the determined combination as a first difference value (806);
(F6) One or a plurality of angles D ′ created by the point vA, the point D ′, and the one determined point C ′ are obtained, and the point vA that is closest to the angle D, the point C ′ , A step of determining a combination of the points D ′, and adding a second difference value, which is a difference between the angle D ′ and the angle D in the determined combination, to the first difference value, thereby obtaining a total value Calculating (807),
(F7) The step of storing the combination of the point vA, the point B ′, the point C ′, and the point D ′ determined as the one and the total value is further included. Method.
前記合計値が値ゼロに等しい場合、前記一つに決定された点vA、点B´、点C´、点D´が4つの特徴点A、B、C、Dにそれぞれ対応することを特徴とする請求項2に記載の方法。   When the total value is equal to zero, the one determined point vA, point B ′, point C ′, and point D ′ correspond to four feature points A, B, C, and D, respectively. The method according to claim 2. ワールド座標系(world coordinate system)とカメラ座標系(camera coordinate system)の原点、X軸、Y軸およびZ軸が同一の場合に、ワールド座標系における4つの特徴点が作る2つの角度を基にして、カメラ座標系での各特徴点の座標位置を推定する方法であって、
コンピュータが実行する前記方法は、
(a)ワールド座標系における4つの特徴点A、B、C、Dを選択するステップ(401)と、
(b)前記選択した特徴点を結んだ辺AB、辺BC、辺CD、辺DAの長さを計算するステップ(402)と、
(c)前記辺ABおよび辺BCが作る角度B、並びに前記辺CDおよび辺DAが作る角度Dを計算するステップ(403)であって、角度Bおよび角度Dは0度より大きく90度以下であるステップと、
(d)前記原点と、前記4つの特徴点A、B、C、Dをスクリーン座標系に変換した変換後の各点とを結ぶ4つの視線ベクトルA、B、C、Dを計算するステップ(405)と、
(e)前記視線ベクトルAを延ばした直線で形成される距離Tを8分割して、該8分割した各地点のうち前記特徴点Aが存在する座標位置に最も近い地点がいずれかを推定するステップ(406)であって、該推定は、前記8分割した各地点のうち原点に最も近い地点から始め、各地点を基点にして視線ベクトルB、D上の点のうち前記辺AB、辺DAの長さと等しくなる点B´、D´をそれぞれ求め、点B´と視線ベクトルC上の点を結ぶ点のうち前記辺BCの長さと等しくなる点C´を求め、該基点、点B´、C´、D´で作られる角度B´、角度D´の前記角度B、角度Dとの差異を前記8分割した各地点で求め、特徴点A、B、C、Dに最も近似する8分割した地点のうちの一つの基点、および該一つの基点に対応するB´、C´、D´を求めるステップと、
(f)前記距離Tを2分の1に収束した距離を求めるステップであって、前記収束された新たな距離Tは、前記推定された地点から距離Tの4分の1の距離だけ原点方向および視線ベクトルAを延ばした方向に離れた地点で形成されるステップ(407)と、
(g)前記新たな距離Tが予め定められた値を下回る(408)まで、ステップ(e)および(f)を繰返すステップと
を含むことを特徴とする方法。
Based on the two angles created by the four feature points in the world coordinate system when the origin, X axis, Y axis, and Z axis of the world coordinate system and the camera coordinate system are the same. A method for estimating the coordinate position of each feature point in the camera coordinate system,
The method performed by the computer comprises:
(A) a step (401) of selecting four feature points A, B, C, D in the world coordinate system;
(B) calculating the length of side AB, side BC, side CD, and side DA connecting the selected feature points (402);
(C) A step (403) of calculating an angle B formed by the side AB and the side BC and an angle D formed by the side CD and the side DA, wherein the angle B and the angle D are greater than 0 degree and 90 degrees or less. A step and
(D) calculating four line-of-sight vectors A, B, C, and D connecting the origin and the converted points obtained by converting the four feature points A, B, C, and D into a screen coordinate system ( 405),
(E) A distance T formed by a straight line extending the line-of-sight vector A is divided into eight to estimate which of the eight divided points is closest to the coordinate position where the feature point A exists. In step (406), the estimation starts from a point closest to the origin among the eight divided points, and the side AB and side DA among points on the line-of-sight vectors B and D with each point as a base point The points B ′ and D ′ that are equal to the length of the line B are respectively obtained, and the point C ′ that is equal to the length of the side BC among the points connecting the point B ′ and the point on the line-of-sight vector C is obtained. , C ′, D ′, the difference between the angle B ′ and the angle D ′ of the angle B ′ and the angle D ′ is obtained at each of the eight divided points, and is closest to the feature points A, B, C, D 8 One base point of the divided points and B ′, C ′, D ′ corresponding to the one base point are obtained. And the step that,
(F) A step of obtaining a distance obtained by converging the distance T by a half, wherein the new converged distance T is the origin direction by a distance of a quarter of the distance T from the estimated point. And a step (407) formed at a point distant in the direction in which the line-of-sight vector A is extended,
(G) repeating steps (e) and (f) until the new distance T falls below a predetermined value (408).
前記ステップ(e)は、
(e1)前記8分割された視線ベクトルA上の地点の一つの基点を点vAとするステップ(801)と、
(e2)前記点vAからの長さが前記辺ABの長さと等しくなる視線ベクトルB上の1つまたは複数の点B´を求めるステップ(803)と、
(e3)前記点vAからの長さが前記辺DAの長さと等しくなる視線ベクトルD上の1つまたは複数の点D´を求めるステップ(804)と、
(e4)前記点B´からの長さが前記辺BCの長さと等しくなる視線ベクトルC上の1つまたは複数の点C´を求めるステップ(805)と、
(e5)前記点vA、点B´、点C´によって作られる1つまたは複数の角度B´を求め、前記角度Bに最も近似する前記点vA、点B´、点C´の組み合わせを決定するステップであって、該決定された組み合わせでの角度B´と前記角度Bの差異を第1の差異値として記憶しておくステップ(806)と、
(e6)前記点vA、点D´、前記一つに決定された点C´によって作られる1つまたは複数の角度D´を求め、前記角度Dに最も近似する前記点vA、該点C´、点D´の組み合わせを決定するステップであって、該決定された組み合わせでの角度D´と前記角度Dの差異である第2の差異値を前記第1の差異値に加算して合計値を算出するステップ(807)と、
(e7)前記一つに決定された点vA、点B´、点C´、点D´の組み合わせ、並びに前記合計値を格納するステップと
をさらに含むことを特徴とする請求項4に記載の方法。
The step (e)
(E1) A step (801) of setting one base point of the points on the line-of-sight vector A divided into eight points vA;
(E2) obtaining one or more points B ′ on the line-of-sight vector B whose length from the point vA is equal to the length of the side AB (803);
(E3) obtaining one or more points D ′ on the line-of-sight vector D whose length from the point vA is equal to the length of the side DA (804);
(E4) obtaining one or more points C ′ on the line-of-sight vector C whose length from the point B ′ is equal to the length of the side BC (805);
(E5) One or more angles B ′ created by the points vA, B ′, and C ′ are obtained, and a combination of the points vA, B ′, and C ′ that is closest to the angle B is determined. Storing the difference between the angle B ′ and the angle B in the determined combination as a first difference value (806);
(E6) One or a plurality of angles D ′ formed by the point vA, the point D ′, and the one point C ′ determined as described above are obtained, and the point vA that is closest to the angle D, the point C ′ , A step of determining a combination of the points D ′, and adding a second difference value, which is a difference between the angle D ′ and the angle D in the determined combination, to the first difference value, thereby obtaining a total value Calculating (807),
(E7) The method further comprises the step of storing the combination of the point vA, the point B ′, the point C ′, and the point D ′ determined as the one and the total value. Method.
前記合計値が値ゼロに等しい場合、前記一つに決定された点vA、点B´、点C´、点D´が4つの特徴点A、B、C、Dにそれぞれ対応することを特徴とする請求項5に記載の方法。   When the total value is equal to zero, the one determined point vA, point B ′, point C ′, and point D ′ correspond to four feature points A, B, C, and D, respectively. The method according to claim 5.
JP2009086970A 2009-03-31 2009-03-31 Calculation method of camera calibration Pending JP2010239515A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009086970A JP2010239515A (en) 2009-03-31 2009-03-31 Calculation method of camera calibration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009086970A JP2010239515A (en) 2009-03-31 2009-03-31 Calculation method of camera calibration

Publications (1)

Publication Number Publication Date
JP2010239515A true JP2010239515A (en) 2010-10-21

Family

ID=43093438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009086970A Pending JP2010239515A (en) 2009-03-31 2009-03-31 Calculation method of camera calibration

Country Status (1)

Country Link
JP (1) JP2010239515A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103213A (en) * 2010-11-12 2012-05-31 Fujitsu Ltd Image processing program and image processing device
CN102980528A (en) * 2012-11-21 2013-03-20 上海交通大学 Calibration method of pose position-free constraint line laser monocular vision three-dimensional measurement sensor parameters
JP2016197780A (en) * 2015-04-02 2016-11-24 日本電信電話株式会社 Image data processing method, image data processing device and image data processing program
KR20180105875A (en) * 2017-03-16 2018-10-01 한국전자통신연구원 Camera calibration method using single image and apparatus therefor
CN114062265A (en) * 2021-11-11 2022-02-18 易思维(杭州)科技有限公司 Method for evaluating stability of supporting structure of visual system
JP2023174456A (en) * 2022-05-27 2023-12-07 3アイ インコーポレイテッド Method and apparatus for calculating actual distance between coordinates in image

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012103213A (en) * 2010-11-12 2012-05-31 Fujitsu Ltd Image processing program and image processing device
CN102980528A (en) * 2012-11-21 2013-03-20 上海交通大学 Calibration method of pose position-free constraint line laser monocular vision three-dimensional measurement sensor parameters
JP2016197780A (en) * 2015-04-02 2016-11-24 日本電信電話株式会社 Image data processing method, image data processing device and image data processing program
KR20180105875A (en) * 2017-03-16 2018-10-01 한국전자통신연구원 Camera calibration method using single image and apparatus therefor
KR102354299B1 (en) 2017-03-16 2022-01-24 한국전자통신연구원 Camera calibration method using single image and apparatus therefor
CN114062265A (en) * 2021-11-11 2022-02-18 易思维(杭州)科技有限公司 Method for evaluating stability of supporting structure of visual system
JP2023174456A (en) * 2022-05-27 2023-12-07 3アイ インコーポレイテッド Method and apparatus for calculating actual distance between coordinates in image
JP7575805B2 (en) 2022-05-27 2024-10-30 3アイ インコーポレイテッド Method and apparatus for calculating actual distances between coordinates in an image

Similar Documents

Publication Publication Date Title
JP5248806B2 (en) Information processing apparatus and information processing method
JP6775776B2 (en) Free viewpoint movement display device
JP5013961B2 (en) Position / orientation measuring apparatus and control method thereof
JP5538667B2 (en) Position / orientation measuring apparatus and control method thereof
JP5624394B2 (en) Position / orientation measurement apparatus, measurement processing method thereof, and program
JP4708752B2 (en) Information processing method and apparatus
US10157478B2 (en) Enabling use of three-dimensional locations of features with two-dimensional images
JP6338021B2 (en) Image processing apparatus, image processing method, and image processing program
US20050253870A1 (en) Marker placement information estimating method and information processing device
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
KR101410273B1 (en) Method and apparatus for environment modeling for ar
US20150062123A1 (en) Augmented reality (ar) annotation computer system and computer-readable medium and method for creating an annotated 3d graphics model
WO2013111229A1 (en) Camera calibration device, camera calibration method, and camera calibration program
US20120120113A1 (en) Method and apparatus for visualizing 2D product images integrated in a real-world environment
CN111161336B (en) Three-dimensional reconstruction method, three-dimensional reconstruction apparatus, and computer-readable storage medium
US20040176925A1 (en) Position/orientation measurement method, and position/orientation measurement apparatus
JP2004062758A (en) Information processor and information processing method
JP2010154920A (en) Three-dimensional shape data processor, three-dimensional shape data processing method, and program
WO2020031950A1 (en) Measurement calibration device, measurement calibration method, and program
JP2005326274A (en) Arrangement information inferring method and information processor
JP2010239515A (en) Calculation method of camera calibration
EP3633606B1 (en) Information processing device, information processing method, and program
WO2019093457A1 (en) Information processing device, information processing method and program
CN113744340A (en) Calibrating cameras with non-central camera models of axial viewpoint offset and computing point projections
JP6922348B2 (en) Information processing equipment, methods, and programs