3D空間内の点を決定する方法
コンピュータビジョン において 、 三角測量 とは、2 枚以上の画像への投影に基づいて 3D 空間内の点を決定するプロセスを指します。この問題を解決するには、関係するカメラの 3D から 2D へのカメラ投影関数のパラメータを知る必要があります。最も単純なケースでは、 カメラ マトリックスによって表されます。三角測量は、 再構成 または 交差 とも呼ばれることがあります 。
三角測量の問題は、原理的には簡単です。画像内の各点は 3D 空間の線に対応するため、3D の線上のすべての点は画像内の点に投影されます。2 枚以上の画像で 対応する点 のペアが見つかった場合、それらは共通の 3D 点 x の投影である必要があります。画像点によって生成される線のセットは、 x (3D 点) で交差する必要があり、 x (3D 点) の座標の代数式は 、以下に示すようにさまざまな方法で計算できます。
しかし、実際には、画像点の座標を任意の精度で測定することはできません。代わりに、レンズの歪みによる幾何学的ノイズや関心点の検出エラーなど、さまざまな種類のノイズが、測定された画像座標の不正確さにつながります。その結果、対応する画像点によって生成された線は、3D 空間で常に交差するわけではありません。問題は、測定された画像点に最適に適合する 3D ポイントを見つけることです。文献には、最適性を定義する方法と最適な 3D ポイントを見つける方法について複数の提案があります。それらは異なる最適性の基準に基づいているため、 ノイズが関係する場合、
さまざまな方法で 3D ポイント xの異なる推定値が生成されます。
導入
以下では、 ピンホールカメラ によって生成された2つのビューから対応する画像点に対して三角測量が行われると仮定します。
エピポーラ幾何学の理想的なケース。3D ポイント x は 、各カメラの焦点 O 1 および O 2 と交差する線 (緑) を通じて 2 つのカメラ画像に投影されます。結果として得られる画像ポイントは y 1 と y 2 です。緑の線は x で交差します。
実際には、画像ポイント y 1 と y 2 を 任意の精度で測定することはできません。代わりに、ポイント y' 1 と y' 2 が検出され、三角測量に使用されます。対応する投影線 (青) は、一般に 3D 空間で交差せず、ポイントx とも交差しない可能性があります 。
左の画像は、 ピンホール モデル の一対のステレオ カメラの エピポーラ幾何学 を示しています。3D 空間の点 x (3D 点) は、カメラの 焦点 、 および を通る線 (緑) に沿ってそれぞれの画像平面に投影され 、 2 つの対応する画像点 および が生成されます 。 および が与えられ、2 台のカメラの幾何学が分かっている 場合、2 つの投影線 (緑の線) を決定することができ、それらは点 x (3D 点)で交差する必要があります。基本的な 線形代数 を使用すると、 その交差点は簡単な方法で決定できます。
お
1
{\displaystyle \mathbf {O} _{1}}
お
2
{\displaystyle \mathbf {O} _{2}}
ええ
1
{\displaystyle \mathbf {y} _{1}}
ええ
2
{\displaystyle \mathbf {y} _{2}}
ええ
1
{\displaystyle \mathbf {y} _{1}}
ええ
2
{\displaystyle \mathbf {y} _{2}}
右の画像は実際のケースを示しています。画像の位置はポイントであり 、 正確に測定することはできません。その理由は、次のような要因の組み合わせです。
ええ
1
{\displaystyle \mathbf {y} _{1}}
ええ
2
{\displaystyle \mathbf {y} _{2}}
幾何学的歪み、たとえば レンズ歪みは 、カメラの 3D から 2D へのマッピングが ピンホール カメラ モデル から外れていることを意味します。これらのエラーはある程度補正できますが、幾何学的エラーが残ります。
x (3D ポイント)からの単一の光線は、 点像分布関数 に従ってカメラのレンズ システム内で分散されます 。画像内の分散強度関数の測定から対応する画像ポイントを復元すると、エラーが発生します。
デジタル カメラでは、画像の強度関数は個別のセンサー要素でのみ測定されます。実際の強度関数を復元するには、個別の強度関数の不正確な補間を使用する必要があります。
三角測量に使用される画像ポイント y 1 ' および y 2 'は、コーナーや一般的な関心ポイントなど、さまざまなタイプの特徴抽出器を使用して検出されることがよくあります。 近傍操作 に基づくあらゆる種類の特徴抽出には、固有の位置特定エラーがあります 。
その結果、測定された画像点は、 およびではなく、 およびに なります。ただし、それらの投影線(青)は、3D 空間で交差したり、 x に近づいたりする必要はありません 。実際、これらの線が交差するのは 、およびが 基本行列 によって定義された エピポーラ制約を 満たす場合のみです 。および の測定ノイズを考えると 、 エピポーラ制約が満たされず、投影線が交差しない可能性が高くなります。
ええ
1
′
{\displaystyle \mathbf {y} '_{1}}
ええ
2
′
{\displaystyle \mathbf {y} '_{2}}
ええ
1
{\displaystyle \mathbf {y} _{1}}
ええ
2
{\displaystyle \mathbf {y} _{2}}
ええ
1
′
{\displaystyle \mathbf {y} '_{1}}
ええ
2
′
{\displaystyle \mathbf {y} '_{2}}
ええ
1
′
{\displaystyle \mathbf {y} '_{1}}
ええ
2
′
{\displaystyle \mathbf {y} '_{2}}
この観察は、三角測量で解決される問題につながります。 カメラのジオメトリと 与え られた x の最適な推定値はどの 3D ポイント x est でしょうか ? 答え は、多くの場合、 x est に依存する誤差尺度を定義し、この誤差を最小化することで見つかります。次のセクションでは、文献で紹介されている
x est を計算するさまざまな方法について簡単に説明します。
ええ
1
′
{\displaystyle \mathbf {y} '_{1}}
ええ
2
′
{\displaystyle \mathbf {y} '_{2}}
すべての三角測量法は 、 かつの場合、つまりエピポーラ制約が満たされる場合(特異点を除く、下記参照)、 x est = x を生成します。制約が満たされない場合に何が起こるかは、方法によって異なります。
ええ
1
=
ええ
1
′
{\displaystyle \mathbf {y} _{1}=\mathbf {y} '_{1}}
ええ
2
=
ええ
2
′
{\displaystyle \mathbf {y} _{2}=\mathbf {y} '_{2}}
プロパティ
三角測量法は次のような
関数で記述できる。
τ
{\displaystyle \tau \,}
x
〜
τ
(
ええ
1
′
、
ええ
2
′
、
C
1
、
C
2
)
{\displaystyle \mathbf {x} \sim \tau (\mathbf {y} '_{1},\mathbf {y} '_{2},\mathbf {C} _{1},\mathbf {C} _{2})}
ここで、 は 検出された画像ポイントの同次座標であり、 はカメラ行列です。 x (3D ポイント) は、結果として得られる 3D ポイントの同次表現です。 の符号は、 同次ベクトルが関係するため、非ゼロのスカラーによる乗算まで
x に等しいベクトルを生成するためにのみ必要であることを意味します。
ええ
1
′
、
ええ
2
′
{\displaystyle \mathbf {y} '_{1},\mathbf {y} '_{2}}
C
1
、
C
2
{\displaystyle \mathbf {C} _{1},\mathbf {C} _{2}}
〜
{\displaystyle \sim \,}
τ
{\displaystyle \tau \,}
特定の方法、つまり特定の機能を見る前に 、その方法に関連する一般的な概念について説明する必要があります。特定の問題に対してどの三角測量法を選択するかは、ある程度これらの特性に依存します。
τ
{\displaystyle \tau \,}
特異点
いくつかの方法では、 x (3D 点) が 3D 空間の特定のサブセット ( の組み合わせに対応) 内にある場合、 x の推定値を正しく計算できません 。このサブセット内の点は、三角測量法の 特異点になります。失敗の理由は、解くべき方程式系の一部が不完全決定であるか、 x est の射影表現が 特異点のゼロ ベクトルになることです。
ええ
1
′
、
ええ
2
′
、
C
1
、
C
2
{\displaystyle \mathbf {y} '_{1},\mathbf {y} '_{2},\mathbf {C} _{1},\mathbf {C} _{2}}
不変性
アプリケーションによっては、三角測量が 3D ポイントを表すのに使用される座標系から独立していることが望ましい場合があります。つまり、三角測量の問題をある座標系で定式化し、別の座標系に変換すると、結果として得られる推定値 x est も 同じように変換される必要があります。この特性は一般に不変性 と呼ばれます 。すべての三角測量法が不変性を保証するわけではありません。少なくとも一般的なタイプの座標変換では不変性は保証されません。
3D座標の同次表現の場合、最も一般的な変換は射影変換であり、 行列で表される 。同次座標が次のように変換されると、
4
×
4
{\displaystyle 4\times 4}
T
{\displaystyle \mathbf {T} }
x
¯
〜
T
x
{\displaystyle \mathbf {\bar {x}} \sim \mathbf {T} \,\mathbf {x} }
カメラ行列は( C k )
のように変換する必要がある。
C
¯
け
〜
C
け
T
−
1
{\displaystyle \mathbf {\bar {C}} _{k}\sim \mathbf {C} _{k}\,\mathbf {T} ^{-1}}
同じ同次画像座標( y k )
を生成する
ええ
け
〜
C
¯
け
x
¯
=
C
け
x
{\displaystyle \mathbf {y} _{k}\sim \mathbf {\bar {C}} _{k}\,\mathbf {\bar {x}} =\mathbf {C} _{k}\, \mathbf {x} }
三角関数 が不変であれば 、次の関係が成立するはずである。
τ
{\displaystyle \tau}
T
{\displaystyle \mathbf {T} }
x
¯
e
s
t
〜
T
x
e
s
t
{\displaystyle \mathbf {\bar {x}} _{\rm {est}}\sim \mathbf {T} \,\mathbf {x} _{\rm {est}}}
そこから
τ
(
ええ
1
′
、
ええ
2
′
、
C
1
、
C
2
)
〜
T
−
1
τ
(
ええ
1
′
、
ええ
2
′
、
C
1
T
−
1
、
C
2
T
−
1
)
、
{\displaystyle \tau (\mathbf {y} '_{1},\mathbf {y} '_{2},\mathbf {C} _{1},\mathbf {C} _{2})\sim \mathbf {T} ^{-1}\,\tau (\mathbf {y} '_{1},\mathbf {y} '_{2},\mathbf {C} _{1}\,\mathbf {T} ^{-1},\mathbf {C} _{2}\,\mathbf {T} ^{-1}),}
全ての
ええ
1
′
、
ええ
2
′
{\displaystyle \mathbf {y} '_{1},\mathbf {y} '_{2}}
各三角測量法について、この最後の関係が有効かどうかを判断できます。有効である場合、この関係は、たとえば剛体変換やアフィン変換などの射影変換のサブセットに対してのみ満たされる可能性があります。
計算の複雑さ
関数は 、実際には比較的複雑になる可能性がある計算の抽象的な表現にすぎません。方法によっては、閉じた形式の連続関数である が得られますが、他の方法では、たとえば SVD や多項式の根を求めるなど の一連の計算ステップに分解する必要があります。また、別の種類の方法では 、いくつかのパラメータの反復推定に依存する が得られます。つまり、計算時間と関連する操作の複雑さは、方法によって異なる可能性があります。
τ
{\displaystyle \tau}
τ
{\displaystyle \tau}
τ
{\displaystyle \tau}
方法
中点法
2つの画像点 とにはそれぞれ 対応する投影線(上の右の画像では青)があり、ここではおよびで示され 、 カメラ行列 が与えられれば決定できます 。を(3D線) L と x (3D点)
の間の距離関数とし、 を と の 間のユークリッド距離とします 。 中点法 では、を最小化する
点 x estを見つけます。
ええ
1
′
{\displaystyle \mathbf {y} '_{1}}
ええ
2
′
{\displaystyle \mathbf {y} '_{2}}
ら
1
′
{\displaystyle \mathbf {L} '_{1}}
ら
2
′
{\displaystyle \mathbf {L} '_{2}}
C
1
、
C
2
{\displaystyle \mathbf {C} _{1},\mathbf {C} _{2}}
d
{\displaystyle d\,}
d
(
ら
、
x
)
{\displaystyle d(\mathbf {L} ,\mathbf {x} )}
ら
{\displaystyle \mathbf {L} }
x
{\displaystyle \mathbf {x} }
d
(
ら
1
′
、
x
)
2
+
d
(
ら
2
′
、
x
)
2
{\displaystyle d(\mathbf {L} '_{1},\mathbf {x} )^{2}+d(\mathbf {L} '_{2},\mathbf {x} )^{2} }
x est は 、2 つの投影線を結ぶ最短の線分のちょうど中央に位置すること
がわかります。
本質的なマトリックスを介して
ここで解決すべき問題は、 与えられた対応する正規化された画像座標 とを計算する方法です 。 必須行列 がわかっていて、対応する回転変換と平行移動変換が決定されている場合、このアルゴリズム(Longuet-Higgins の論文で説明)が解決策を提供します。
(
x
1
、
x
2
、
x
3
)
{\displaystyle (x_{1},x_{2},x_{3})}
(
ええ
1
、
ええ
2
)
{\displaystyle (y_{1},y_{2})}
(
ええ
1
′
、
ええ
2
′
)
{\displaystyle (y'_{1},y'_{2})}
回転行列の k 行目を次のように表すとし ます 。
r
け
{\displaystyle \mathbf {r} _{k}}
R
{\displaystyle \mathbf {R} }
R
=
(
−
r
1
−
−
r
2
−
−
r
3
−
)
{\displaystyle \mathbf {R} ={\begin{pmatrix}-\mathbf {r} _{1}-\\-\mathbf {r} _{2}-\\-\mathbf {r} _{3}-\end{pmatrix}}}
2つの座標系における3D座標間の上記の関係と、先に説明した3D点と2D点間のマッピングを組み合わせると、次のようになります。
ええ
1
′
=
x
1
′
x
3
′
=
r
1
⋅
(
x
〜
−
t
)
r
3
⋅
(
x
〜
−
t
)
=
r
1
⋅
(
ええ
−
t
/
x
3
)
r
3
⋅
(
ええ
−
t
/
x
3
)
{\displaystyle y'_{1}={\frac {x'_{1}}{x'_{3}}}={\frac {\mathbf {r} _{1}\cdot ({\tilde {\mathbf {x} }}-\mathbf {t} )}{\mathbf {r} _{3}\cdot ({\tilde {\mathbf {x} }}-\mathbf {t} )}}={\frac {\mathbf {r} _{1}\cdot (\mathbf {y} -\mathbf {t} /x_{3})}{\mathbf {r} _{3}\cdot (\mathbf {y} -\mathbf {t} /x_{3})}}
または
x
3
=
(
r
1
−
ええ
1
′
r
3
)
⋅
t
(
r
1
−
ええ
1
′
r
3
)
⋅
ええ
{\displaystyle x_{3}={\frac {(\mathbf {r} _{1}-y'_{1}\,\mathbf {r} _{3})\cdot \mathbf {t} }{(\mathbf {r} _{1}-y'_{1}\,\mathbf {r} _{3})\cdot \mathbf {y} }}}
が決定したら 、他の2つの座標は次のように計算できる。
x
3
{\displaystyle x_{3}}
(
x
1
x
2
)
=
x
3
(
ええ
1
ええ
2
)
{\displaystyle {\begin{pmatrix}x_{1}\\x_{2}\end{pmatrix}}=x_{3}{\begin{pmatrix}y_{1}\\y_{2}\end{pmatrix}}}
上記の導出は一意ではない。 の式から始めて、 の式を 次のよう
に導出する こともできる。
ええ
2
′
{\displaystyle y'_{2}}
x
3
{\displaystyle x_{3}}
x
3
=
(
r
2
−
ええ
2
′
r
3
)
⋅
t
(
r
2
−
ええ
2
′
r
3
)
⋅
ええ
{\displaystyle x_{3}={\frac {(\mathbf {r} _{2}-y'_{2}\,\mathbf {r} _{3})\cdot \mathbf {t} }{(\mathbf {r} _{2}-y'_{2}\,\mathbf {r} _{3})\cdot \mathbf {y} }}}
理想的なケースでは、カメラが完全なピンホールカメラに従って 3D ポイントをマッピングし、結果として得られる 2D ポイントがノイズなしで検出できる場合、 の 2 つの式は 等しくなります。ただし、実際には等しくないため、 たとえば何らかの平均に関して の 2 つの推定値を組み合わせると有利になる場合があります。
x
3
{\displaystyle x_{3}}
x
3
{\displaystyle x_{3}}
上記の計算には、他のタイプの拡張も可能です。プライム付き画像座標の式から始めて、プライムなしシステムで 3D 座標を導き出しました。プライムなし画像座標から始めてプライム付き 3D 座標を取得し、最終的にプライムなし 3D 座標に変換することも可能です。この場合も、理想的なケースでは結果は上記の式と同じになるはずですが、実際には異なる可能性があります。
最後に、基本的なマトリックスが対応する画像座標から決定される場合(3D ポイントがこのように決定される場合が多い)には、変換ベクトルは 未知の正のスケーリングまでしか分からないという事実について述べます。その結果、再構成された 3D ポイントも正のスケーリングに関しては未決定となります。
t
{\displaystyle \mathbf {t} }
参照
参考文献
リチャード・ハートリー、アンドリュー・ジッサーマン (2003)。『 コンピュータ ビジョンにおけるマルチビュージオメトリ 』ケンブリッジ大学出版局。ISBN 978-0-521-54051-3 。
外部リンク
Matlab での 2 ビューおよびマルチビューの三角測量