【コンピュータビジョンにおける多視点幾何学シリーズ】ピンホールカメラモデルをわかりやすく理解する

過去を振り返り、新しいことを学べば、あなたも教師になれる!

1. 参考資料

「コンピュータ ビジョンにおけるマルチビュー ジオメトリ - 第 5 章」 - Richard Hartley、Andrew Zisserman。

2. ピンホールモデルの紹介

1. 重要な概念

ここに画像の説明を挿入します

1.1 投影中心/カメラ中心/光学中心

投影センター呼ばれたカメラセンター、 としても知られている光学中心投影の中心はユークリッド座標系の原点に位置します。

1.2 像面/焦点面

平面Z = f Z=fZ=fと呼ばれますイメージプレーンまたは焦点面

1.3 主軸/主光線

カメラの中心から画像面までの垂直線をカメラのスピンドルまたはチーフ・レイ

1.4 要点

主軸と像面の交点を主なポイント

1.5 メインプレーン(カメラ)

カメラの中心を通り画像平面に平行な平面を次のように呼びます。カメラのメインプレーン

2. カメラ投影

3D 世界から 2D 画像への縮小は投影プロセスであり、1 つの次元が失われます。このプロセスをモデル化する一般的な方法は、次のとおりです。中央投影, 3D ワールド ポイントから空間内の点から空間内の固定点 (投影中心) まで光線が描画され、この光線は空間内の画像平面として選択された特定の平面と交差します。光線と画像平面との交点は、その点での画像を表します。
ここに画像の説明を挿入します

ピンホール カメラ モデルでは、3 次元空間座標はX = (X, Y, Z) TX=(X, Y, Z)^T となります。バツ=バツやあZ )TのポイントXXX は、接続点XXである画像平面上の点に投影されます。Xと投影中心との間の直線と画像平面との交点。相似三角形に従って、点(X, Y, Z) T (X, Y, Z)^T をバツやあZ )Tは、画像平面上の点( f X / Z , f Y / Z , f ) T (fX/Z, fY/Z, f)^T( f X / Z ,f Y / Z f )T._ _ 最後のイメージ座標を省略した後、ワールド座標からイメージ座標への中心投影は次のようになります:
( X , Y , Z ) T ↦ ( f X / Z , f Y / Z ) T ( 1 ) (X,Y,Z) ^ {T}\mapsto(fX/Z,fY/Z)^{T}\quad(1)バツやあZ )T( f X / Z ,f Y / Z )T( 1 )
これは3 次元ユークリッド空間IR 3 \text{IR}^3よりそして3から 2 次元ユークリッド空間IR 2 \text{IR}^2そして2のマッピング

3. 射影行列

同次座標の概念: 同次座標では、N+1 次元を使用して N 次元の座標を記述します。
点の同次座標x = ( x 1 , x 2 , x 3 ) T x=(x_1,x_2,x_3)^Tバツ=バツ1バツ2バツ3T (3 次元ベクトル) と非同次座標( x , y ) T (x,y)^Tバツy T (2 次元ベクトルです)。

世界と画像の点が同次ベクトルで表される場合、中心投影は同次座標間の線形マッピングとして単純に表現できます。具体的には、式(1)式(1)( 1 )を次の変数に代入します
: [ XYZ 1 ] ↦ [ fxfyz ] = [ f 0 f 0 1 0 ] [ XYZ 1 ] ( 2 ) \left.\left[\begin{array}{c}\ mathbf{ X}\\\mathbf{Y}\\\mathbf{Z}\\\mathbf{1}\end{array}\right.\right]\mapsto\left[\begin{array}{c}f \mathbf {x}\\f\mathbf{y}\\\mathbf{z}\end{array}\right]=\left[\begin{array}{cc}f&&&0\\&f&&0\\&&1&0\end{ array} \right]\left[\begin{array}{c}\mathbf{X}\\\mathbf{Y}\\\mathbf{Z}\\\mathbf{1}\end{array}\right] \quad (2) バツYZ1 fx _年度_z = ff1000 バツYZ1 ( 2 )
インデックス[ f 0 f 0 1 0 ] \left[\begin{array}{cc}f&&&0\\&f&&0\\&&1&0\end{array}\right] ff1000 は3 ∗ 4 3*4を意味します34台の同種カメラ射影行列PPとして記録されますPP_P は、 diag ( f , f , 1 ) [ I ∣ 0 ] diag(f,f,1)[I|0]と書くことができます。dia g ( f , _f 1 ) [ I ∣0 ]、ここでdiag ( f , f , 1 ) diag(f,f,1)dia g ( f , _f 1 )は対角行列であり[ I ∣ 0 ] [I|0][ I |0 ]は行列が3 ∗ 3 3*333恒等行列ゼロ列ベクトル次に、中心に投影されたピンホール モデルのカメラ投影行列は次のように表すことができます。
P = diag ( f , f , 1 ) [ I ∣ 0 ] P=diag(f,f,1)[I|0]P=dia g ( f , _f 1 ) [ I ∣0 ]

単位行列の概念: 単位行列 (単位行列としても知られる) は、次の正方行列です。対角線上の要素は 1、残りの要素は 0,记作 I I I或者 E E E._ _ 単位行列のサイズはその次元によって決まります。たとえば、3 次単位行列は 3x3 行列です。

恒等行列には、線形代数において多くの重要な特性があります。例えば、任意の行列 A について、単位行列 1 と A の積は A 自体に等しいこれは、単位行列の各要素に A の対応する要素を乗算して加算し、その結果が A そのものになるためです。この特性は、行列の転置と逆演算に重要な用途があります。

恒等行列も深層学習において重要な役割を果たします。ニューラルネットワークでは、恒等行列は、初期化重み行列としてよく使用されます。重み行列を初期化するときに、それを恒等行列に設定すると、ニューラル ネットワークの初期状態をより安定させることができます。これは単位行列がある程度の対称性とバランスを持っているため、勾配の消失や勾配の爆発などの問題を回避でき、モデルのトレーニング効果を向上させるのに役立ちます

恒等行列は、行列の類似性を測定するためにも使用できます。画像処理やパターン認識では、2 つの行列の類似性を比較する必要がよくあります。2 つの行列の差を計算することにより、それらの類似性の尺度を取得できます。特殊な行列である恒等行列は、他の行列と比べて明らかな違いがあり、行列間の類似性を測定するために使用できます。

ここで次の表記法を導入します: world point XXX は4 次元の同次ベクトルを使用します(X, Y, Z, 1) (X,Y,Z,1)バツやあZ 1 )意味; 画像点xxxは 3 次元の同次ベクトルとして表現されます。すると式(2) 式(2)( 2 )は次のように簡潔に書くことができます:
x = PX x=PXバツ=PX

4. メインポイントオフセット

公式 ( 1 ) 公式(1) は、像面の座標原点が主点にあると仮定している。以下の図に示すように、実際の状況はこのようにはならない場合があります。

ここに画像の説明を挿入します
カメラ座標系(xcam, ycam) T (x_{cam},y_{cam})^Tバツさあ_yさあ_Tの座標原点はカメラ中心であり、この原点の画像平面への投影が主点 p です。画像座標系(x,y) T (x,y)^Tバツy Tの座標原点は画像の左下隅です。

したがって、一般的な場合のマッピングは次のようになります:
( X , Y , Z ) T ↦ ( f p_x,fY/Z+p_y)^{T} \\バツやあZ )T( f X / Z+p×f Y / Z+pはいT
その中( px , py ) T (p_x,p_y)^T( p×pはいグラフィカル座標系を使用しましょう: [
XYZ 1 ] ↦ [ fx + Z pxfy + Z pyz ] = [ fpx 0 fpx 0 1 0 ] [ XYZ 1 ] ( 3 ) \left. \left[\begin{array} {c}\mathbf{X}\\\mathbf{Y}\\\mathbf{Z}\\\mathbf{1}\end{配列}\right.\right]\mapsto \left[\begin{配列} {c}f\mathbf{x+Zp_x}\\f\mathbf{y+Zp_y}\\\mathbf{z}\end{array}\right]=\left[\begin {array}{cc}f&&p_x&0\ \&f&p_x&0\\&&1&0\end{array}\right]\left[\begin{array}{c}\mathbf{X}\\\mathbf{Y}\\\mathbf{Z }\\\mathbf{1} \end{配列}\right]\quad(3) バツYZ1 fx _+Z P×年度_+Z Pはいz = ffp×p×1000 バツYZ1 ( 3 )
定義K
= [ fpxfpx 1 ] ( 4 ) K=\left[\begin{array}{cc}f&&p_x\\&f&p_x\\&&1\end{array}\right]\quad(4)K= ffp×p×1 ( 4 )
(3) 式 (3)( 3 )は簡潔な形式です:
x = K [ I ∣ 0 ] X cam ( 5 ) x=K[I|0]X_{cam}\quad(5)バツ=K [ I ∣0 ] Xさあ_( 5 )
マトリックス株式会社Kはカメラ キャリブレーション マトリックスと呼ばれ、式 (5) 式 (5)( 5 )では、 (X, Y, Z, 1) T (X,Y,Z,1)^T を記録しますバツやあZ 1 )TX カム X_{カム}バツさあ_カメラがユークリッド座標系の原点に設定され、主軸がzzに沿っていることを強調するためです。Z軸の方向、その間の点X カム X_{cam}バツさあ_この座標系に従って表現されます。このような座標系は次のように呼ぶことができます。カメラ座標系

カメラ座標系の原点はカメラの中心zzです。z軸方向は主軸を指します

5. カメラの回転と変位

一般に、3 次元空間点は、世界座標系と呼ばれるさまざまなユークリッド座標系で表されます。カメラ座標系とワールド座標系は、回転平行移動によって接続されます。
ここに画像の説明を挿入します

世界座標系とカメラ座標系の間のユークリッド変換

if X ~ \widetilde{X}バツ は 3 次元の不均一ベクトルであり、ワールド座標系の点の座標を表します。X ~ cam \widetilde{X}_{cam}バツ さあ_カメラ座標系で表される点と同じである場合、 X ~ cam = R ( X ~ − C ~ ) \widetilde{X}_{cam}=R\left(\widetilde{X}-\widetilde{ C}\右)バツ さあ_=R(バツ C )、ここでC ~ \widetilde{C}C ワールド座標系RRにおけるカメラ中心の座標を表します。R3*3 3*333の回転行列は、カメラ座標系の方向を表します。この方程式は次のように書くことができます:
X cam = [ R − RC ~ 0 T 1 ] [ XYZ 1 ] = [ R − RC ~ 0 T 1 ] X ( 6 ) X_{cam}=\begin{bmatrix }R&-R \widetilde{C}\\0^{T}&1\end{bmatrix}\begin{bmatrix}X\\Y\\Z\\1\end{bmatrix}=\begin{bmatrix}R&- R\widetilde{ C}\\0^{T}&1\end{bmatrix}\mathbf{X}\quad(6)バツさあ_=[R0TRC 1] バツYZ1 =[R0TRC 1]バツ( 6 )式(5)
と比較してください。( 5 )を組み合わせると次の式が形成されます:
x = KR [ I ∣ − C ~ ] X ( 7 ) x=KR\left[I|-\widetilde{C}\right]X\quad(7)バツ=K R[C ]バツ( 7 )
ここでXXXはワールド座標系で表されます。これはピンホール モデルによって与えられる一般的なマッピングです。

6. カメラの内部パラメータと外部パラメータ

式(7)より式(7)( 7 )から次のことがわかります。一般的なピンホールカメラP = KR [ I ∣ − C ~ ] P=KR\left[I|-\widetilde{C}\right]P=K R[C ]には 9 つの自由度があります:K (要素 f、px、py) K (要素 f、p_x、p_y)K (要素f ,p×pはい) 、 RRから3R , 3 fromC ~ \widetilde{C}C KKに含まれるKのパラメータはカメラの内部パラメータまたはカメラの内部キャリブレーションRRに含まれるRC ~ \widetilde{C}C のパラメータは、ワールド座標系におけるカメラの方向と位置に関連しており、次のように呼ばれます。外部パラメータまたは外部校正

便宜上、通常、カメラの中心は明確にマークされておらず、ワールド座標系から画像座標系への変換はX ~ cam = RX ~ + t \widetilde{X}_{cam}=R\widetilde{ として表されます。 X}+tバツ さあ_=Rバツ +この場合、カメラ行列は次のように単純化されます:
P = k [ R ∣ t ] ( 8 ) P=k[R|t]\quad(8)P=k [ R t ]( 8 )ここで、式 (7)
によると、公式(7) t = − R C ~ t=-R\widetilde{C} t=RC

7.CCDカメラ

基本的なピンホール モデルの場合、画像座標は両方の軸に等しいスケールのユークリッド座標を持つと想定されます。ただし、CCD カメラのピクセルは正方形ではない場合があります。画像座標がピクセル単位で測定される場合は、各方向に不等なスケーリング係数を導入する必要があります具体的には、 xxの場合xyy画像座標のy方向の単位距離あたりのピクセル数はmx m_xメートル×メートルはい、ワールド座標からピクセル座標への変換は式 (4) 式 (4)で与えられます。( 4 )には追加の係数が乗算されたままになりますdiag (mx, my, 1) diag(m_x,m_y,1)直径( m _ _×メートルはい1 )を取得します。したがって、CCD カメラのキャリブレーション行列の一般的な形式は次のようになります。
K = [ axx 0 ayy 0 1 ] ( 9 ) K=\left[\begin{array}{cc}a_x&&x_0\\&a_y&y_0\\&&1\end{array} \右 ]\クアッド(9)K= ある×あるはいバツ0y01 (9)
其中 a x = f m x a_x=fm_x ある×=fm _×ay = fmy a_y=fm_yあるはい=fm _はいカメラの焦点距離をそれぞれxxに変換しますxyyy方向のピクセル寸法。同様に、x ~ 0 = ( x 0 , y 0 ) T \widetilde{x}_0=(x_0,y_0)^Tバツ 0=バツ0y0Tはピクセル次元で表される主点であり、その座標はx 0 = mxpx x_0=m_xp_xバツ0=メートル×p×y 0 = mypy y_0=m_yp_yy0=メートルはいpはいしたがって、CCD カメラには 10 の自由度があります

おすすめ

転載: blog.csdn.net/m0_37605642/article/details/135158486