両眼立体視の空間座標精度の解析

参考リンク:https://zhuanlan.zhihu.com/p/362718946

この記事は主にリンクブロガーの理論的導出に言及し、あなた自身の理解に基づいて分析および修正します

1. 考慮すべき質問:

  1. 双眼立体視システムの精度は、これらの要因によって決まりますか?

  2. X/Y/Zの3方向の精度は同じですか?同じでない場合、どちらの方向がより精度が高いですか?

両眼ステレオ ビジョンの最終的な出力は、左カメラ座標系の XYZ 座標であることが最も一般的であり、この記事ではこの 3 つの成分を精密解析の対象とします。

まず、いくつかの変数定義を行います。

b : 基線の長さ、単位 mm

f : 焦点距離

x, y : 像点の座標 (像主点を原点とする)

X、Y、Z : カメラ座標系の座標 (mm)

d : 視差

まず、これら 3 つのコンポーネントの解の式を見てみましょう。

Z = bfd , X = Z fx , Y = Z fy Z = \frac{bf}{d},\ \ X = \frac{Z}{f}x,\ \ Y = \frac{Z}{f} yZ=dbf _  バツ=Z×   =Zy

ハードウェアパラメータbとfが固定されている場合、XYZの値はピクセル座標値に直接関係し、XYZの精度は実際にはピクセル精度の下の空間偏差値であることが式からわかります。精度の基本 (分) 単位としてのピクセル精度。

2. ブロガーの派生を修正:

変数が次のように定義されている場合

ピクセル x はサイズ (mm) を表します

焦点距離 f は物理的なサイズ (mm) を表します。

視差 d は物理的なサイズを表し、単位は mm

ブロガーの導出式を利用するために、Z方向の精度導出について説明します。

画像点 x, y の精度 (ピクセル サイズ) をsx, sy s_{x},\ s_{y}とします。s× sy、視差 d の精度はsd s_{d}sd. 一般に、x と y の精度は同じ、つまりsx = sy = s s_{x} = s_{y} = s と見なされます。s×=sy=s であり、視差の精度は一般に次の式で表すことができます。

sd = sx 2 s_{d} = \frac{s_{x}}{\sqrt{2}}sd=2 s×

Z方向精度

まず、Z の場合、独立変数は d です。d の偏導関数を取得すると、

∂ Z ∂ d = − bfd 2 = − Z 2 bf \frac{\partial Z}{\partial d} = - \frac{bf}{d^{2}} = - \frac{Z^{2}} {bf}∂d _∂Z _=d2bf _=b fZ2

∂ Z / ∂ d \partial Z/\partial dZ / d
の単位は mm/mm であり、物理的な意味はミリメートルあたりの視差値で表される空間距離であり、視差精度 sd s_{d}sd、単一の視差精度で表される空間距離を取得するために、単位は mm/pix です。

利用可能:

s Z = Z b Z fsd = Z b Z f sx 2 s_{Z} = \frac{Z}{b}\frac{Z}{f}s_{d} = \ \frac{Z}{b}\ \frac{Z}{f}\ \frac{s_{x}}{\sqrt{2}}sZ=bZZsd= bZ Z 2 s×


Z方向の精度はZの2乗、つまり被写体とカメラの距離(厳密にはZ方向の距離)の2乗に正の相関があることがわかります。.

假式= Z b , m = Z fq = \frac{Z}{b},m = \frac{Z}{f}q=bZメートル=Zの場合、q は
よく知られている底辺の高さの比率の逆数であり、m は画像のスケール (つまり、GSD、ピクセルで表される空間サイズ) です。この式は、底辺の高さの比率と GSD が重要な役割を果たすことを示しています。 Z 方向の精度に大きな役割を果たし、さらにベース高さ (1/q) を大きくし、GSD (m) を小さくすると、Z 方向の精度が向上します。これは、双眼立体視システムの設計を導くために使用できます。

同様に、ブロガーの導出過程を参考にすると、XY方向の精度が得られます。

3. 導出の簡略化

上記の導出では、カメラのピクセルの実際のサイズと焦点距離を知る必要がありますが、これは面倒です。

通常、キャリブレーション ファイルの内部パラメーター データは pix 単位であり、以下はピクセル pix 単位で推定されます。

変数が次のように定義されている場合

ピクセル x はピクセル座標を表し、単位はピックスです

焦点距離 f は、ピクセルの比率を pix 単位で表します。

視差 d はピクセル比、単位 pix を表します

Z方向精度

まず、Z の場合、独立変数は d です。d の偏導関数を取得すると、

∂ Z ∂ d = − bfd 2 = − Z 2 bf \frac{\partial Z}{\partial d} = - \frac{bf}{d^{2}} = - \frac{Z^{2}} {bf}∂d _∂Z _=d2bf _=b fZ2

このとき∂ Z / ∂ d \partial Z/\partial dZ / dの単位は mm/pix であり、物理的な意味は 1 つのピクセル ピクセルで表される空間距離であり、 2 \sqrt{2}
で割る必要があります。2 、単一の視差精度で表される空間距離を取得する

利用可能:

s Z = 1 2 Z b Z f s_{Z} = \frac{1}{\sqrt{2}}\frac{Z}{b}\frac{Z}{f}\sZ=2 1bZZ 


Z 方向の精度は Zの 2 乗、つまり物体とカメラの距離 (厳密には
Z 方向の距離)の 2 乗と正の相関があることがわかります。.

XY方向精度

同様に、X の場合、独立変数は Z と x であり、Z と x の偏導関数を取得すると、次のようになります。

∂ X ∂ Z = xf , ∂ X ∂ x = Z f \frac{\partial X}{\partial Z} = \frac{x}{f},\ \ \frac{\partial X}{\partial x} = \frac{Z}{f}Z∂X _=×  ×∂X _=Z

X 方向の精度は次のように表すことができます。

s X = ( xfs Z ) 2 + ( Z f ) 2 s_{X} = \sqrt{ { (\frac{x}{f}s_{Z})}^{2} + {(\frac{Z} {f})}^{2}}sX=(×sZ)2+(Z)2

同様に、Y 方向の精度は次のように表すことができます。

s Y = ( yfs Z ) 2 + ( Z f ) 2 s_{Y} = \sqrt{ { (\frac{y}{f}s_{Z})}^{2} + {(\frac{Z} {f})}^{2}}s=(ysZ)2+(Z)2

ハンドルZ = Z 2 2 bf , X = Z fx , Y = Z fy s_{Z} = \frac{Z^{2}}{\sqrt{2}bf},\ \ X = \frac{Z} {f}x,\ \ Y = \frac{Z}{f}ysZ=2 b fZ2  バツ=Z×   =Z式にy を代入すると

s X = Z f 1 + ( x Z 2 fb ) 2 = Z f 1 + ( X 2 b ) 2 s_{X} = \frac{Z}{f}\sqrt{1 + {(\frac{xZ} {\sqrt{2}fb})}^{2}}\ = \frac{Z}{f}\sqrt{1 + {(\frac{X}{\sqrt{2}b})}^{2 }}\sX=Z1+(2 f bxZ _)2  =Z1+(2 bX)2  

s Y = Z f 1 + ( y Z 2 fb ) 2 = Z f 1 + ( Y 2 b ) 2 s_{Y} = \frac{Z}{f}\sqrt{1 + {(\frac{yZ} {\sqrt{2}fb})}^{2}}\ = \frac{Z}{f}\sqrt{1 + {(\frac{Y}{\sqrt{2}b})}^{2 }}\s=Z1+(2 f by Z)2  =Z1+(2 b)2  

X 方向と Y 方向の精度は、Z の距離と正の相関があるだけでなく、X 方向と Y 方向のそれぞれの距離とも正の相関があることがわかります。

Y/Z 精度曲線

Y/Z 方向の精度が Z 値によって変化する傾向をより明確に観察するために、シミュレーションを行い、Z 方向と Y 方向の精度曲線を計算して描画してみましょう (Y 方向と X 方向は同じスケールを持ち、傾向は同じです)。

実際のケースパラメータデータ分析によると

ケース番号1:

Y = 58 mm、Y 方向 58 mm での精度

f = 275 ピクセル

b = 32mm

描画された精度曲線は次のとおりです。
ここに画像の説明を挿入
ケース 2:

Y = 580 mm、Y 方向 580 mm での精度

f = 275 ピクセル

b = 32mm
ここに画像の説明を挿入

精度計算の結果とトレンドチャートからわかるように、Z の値が大きいほど精度の値が大きくなり(精度が悪化していることを意味します)、Z の値が大きいほど Z 方向の精度が低下します。は Y 方向のそれよりも悪く
、Z が増加するにつれて、ギャップはより顕著になります。

シミュレーションデータから、Z 方向の距離が 1000mm の場合、精度値は 80mm と高く、これは 8% の精度誤差です。実際、それはそれほど大きくはありません。これは、両眼ステレオ ビジョン アルゴリズムに関連しています。アルゴリズムの後処理ではサブピクセル フィッティングが行われ、精度は subpix で表される空間サイズであるため、実際の精度はシミュレートされたデータの一部にすぎない場合があります。

Y 方向の精度は Z 値だけでなく、Y 値自体にも正の関係があり、Y が大きいほど Y 方向の精度は悪くなります。

おすすめ

転載: blog.csdn.net/h1527820835/article/details/128275652