カメラキャリブレーションの基礎

この記事では、カメラ キャリブレーションの理論的基礎を簡単に紹介し、その後の実践のための強固な基盤を築きます。

1. カメラ内部パラメータの校正

1.1 理想的なカメラの撮像原理

理想的な状況では、カメラのイメージング モデルは通常、線形ピンホール イメージング モデルで表されます。前回の記事で紹介した 4 つの座標系とその関係によれば、Pある空間内の 3 次元点の世界座標は、(X_w,Y_w,Z_w,1)^T対応する投影点pのピクセル座標は であると仮定されます(u,v,1)^T回転行列はR回転運動を表し、並進行列はt並進運動を表します。射影行列は、M空間の 3 次元情報と画像の 2 次元情報の間の射影変換を表します。理想的なカメラ イメージング モデルにおける3D 点のワールド座標Ppそれに対応する投影点のピクセル座標との関係は次のとおりです。

s\left [ \begin{行列} u\\ v\\ 1 \end{行列} \right ]=\left [ \begin{行列} \frac{1}{dX} & 0 & u_0\\ 0 & \ frac{1}{dY} & v_0\\ 0 & 0 & 1 \end{行列} \right ]\left [ \begin{行列} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & 1 & 0 \end{行列} \right ]\left [ \begin{行列} R & t\\ 0 & 1 \end{行列} \right ]\left [ \begin{行列} X_w\\ Y_w\\ Z_w\\ 1 \end{行列} \right ]=\left [ \begin{行列} f_x & 0 & u_0 & 0\\ 0 & f_y & v_0 & 0\\ 0 & 0 & 1 & 1 \ end{行列} \right ]\left [ \begin{行列} R & t\\ 0 & 1 \end{行列} \right ]\left [ \begin{行列} X_w\\ Y_w\\ Z_w\\ 1 \ end{行列} \right ]=KT\left [ \begin{行列} X_w\\ Y_w\\ Z_w\\ 1 \end{行列} \right ]=M\left [ \begin{行列} X_w\\ Y_w\ \ Z_w\\ 1 \end{行列} \right ]

その中で、f_xf_yカメラの正規化された焦点距離、Kはカメラの内部パラメータ行列、Tはカメラの外部パラメータ行列です。

1.2 カメラの非線形モデルと歪み補正

実際のカメラ撮像プロセスでは、カメラレンズの加工誤差やカメラの組み立て誤差の存在により、実際のカメラ撮像モデルとカメラの理想的な線形モデルとの間に歪みが生じるため、歪みモデルを導入します。カメラ画像の非線形モデルを形成するためのカメラの理想的な画像モデルの基礎。カメラの非線形モデルはカメラの理想的な線形モデルよりも複雑ですが、カメラの非線形モデルはカメラの実際の結像モデルに近いものです。カメラの歪みとは、簡単に言うと、実際の3次元空間上の直線を画像上に投影したときに、直線として保たれなくなり、図1に示すように、実際の投影点と画像の理想的な投影点との間にずれが生じることです。画像平面上の空間内の 3 次元の点。一般に、カメラの歪みは、ラジアル歪みとタンジェンシャル歪みに分けられます。

図 1. カメラの歪みの概略図

1. ラジアル歪み

図 2. 放射状歪みの模式図

 

図 2 に示すように、放射状の歪みは、実際の直線が画像の中心付近よりも画像の端でより湾曲する形で現れます。デフォルトでは、カメラ レンズの光学中心の半径方向の歪みは 0 であり、画像の端に近づくほど半径方向の歪みは大きくなります。径方向の歪みは、次のテイラー級数展開によって補正できます。

x_{c,r}=x(1+k_1+r^2+k_2r^4+k_3r^6)

y_{c,r}=y(1+k_1r^2+k_2r^4+k_3r^6)

このうち、(x,y)は歪みのある像面上の点(つまり元の像面座標)の像面座標、 は(x_{c,r},y_{c,r})放射状の歪みを除去するために歪み補正を行って得られた点の座標、 は像面座標rからの距離です。画像中心を指します。

2. タンジェンシャルディストーション

接線方向の歪みは、カメラの組み立て中にカメラのレンズが結像面と厳密に平行にならないという事実によって発生します。接線方向の歪みは次の式で補正できます。

x_{c,t}=x+[2p_1xy+p_2(r^2+2x^2)]

y_{c,t}=y+[2p_2xy+p_1(r^2+2y^2)]

この中には、(x_{c,t},y_{c,t})タンジェンシャル歪みを除去するタンジェンシャル歪み補正を行った座標が含まれる。

上記の導入によれば、ある空間内の 3 次元点Pに対応する投影点pの像面座標について(x,y)、動径方向の歪みと接線方向の歪みの補正後の座標は次(x_{修正済み}、y_{修正済み})のようになります。(う、う)

x_{修正済み}=x(1+k_1r^2+k_2r^4+k_3r^6)+[2p_1xy+p_2(r^2+2x^2)]

y_{修正済み}=y(1+k_1r^2+k_2r^4+k_3r^6)+[2p_2xy+p_1(r^2+2y^2)]

u=f_xx_{修正}+u_0

v=f_yy_{修正}+v_0

このうち、5 つの歪み係数で歪み係数行列を構成できますD=(k_1,k_2,p_1,p_2,k_3)

1.3 チェッカーボードキャリブレーションボードに基づくカメラキャリブレーション方法

既存のカメラ キャリブレーション方法は、主に投影幾何学を使用して、カメラによってキャプチャされた画像内の空間的な 3 次元情報と 2 次元情報を関連付けて、カメラの内部パラメータと外部パラメータを計算します。Zhang Zhengyou のキャリブレーション方法は、市松模様のキャリブレーション ボードに基づいた古典的なカメラのキャリブレーション方法です。前のセクションの導入によると、カメラ画像モデルは次のように単純化できます。

Z_c \left[ \begin {行列} u\\ v\\ 1 \end {行列} \right] = M\left [ \begin{行列} X_w\\ Y_w\\ Z_w\\ 1 \end{行列} \右 ]

世界座標の原点がチェッカーボード キャリブレーション ボード上に設定され、チェッカーボード キャリブレーション ボードが配置されている平面が世界座標系の平面として設定されるとすると、チェッカーボード キャリブレーション ボード上の特徴点の世界座標は次のようになりX_wO_wY_wます(X_w,Y_w,0,1)次のように表現できます この点に対応する投影点のピクセル座標を とすると(u,v,1)、両者の関係は次のようになります。

Z_c\left [ \begin{行列} u\\ v\\ 1 \end{行列} \right ]=H\left [ \begin{行列} X_w\\ Y_w\\ 1 \end{行列} \right ]

H=\left [ \begin{行列} \vec{h_1} & \vec{h_2} & \vec{h_3} \end{行列} \right ]上記の 2 つの式を組み合わせると、次が得られるとします

\left [ \begin{行列} \vec{h_1} & \vec{h_2} & \vec{h_3} \end{行列} \right ]=\lambda K\left [ \begin{行列} \vec{r_1} & \vec{r_2} & t \end{行列} \right ]

ここで\ラムダ、 はゼロ以外の定数、\vec{r_1}、\vec{r_2}、\vec{r_3}は回転行列の列ベクトルです。

回転行列にはR次の 2 つのプロパティがあるため、

(1)R回転行列の列ベクトルは互いに直交する、つまり\vec{r_1}\vec{r_2}=0

(2)R回転行列の列ベクトルの係数は等しく、係数は 1 です。つまり\左 |  \vec{r_1} \右 |=\左 |  \vec{r_2} \right |=1、次の関係が存在します。

\vec{h_1}^{T}K^{-T}K^{-1}\vec{h_2}=0

\vec{h_1}^{T}K^{-T}K^{-1}\vec{h_1}=\vec{h_2}^{T}K^{-T}K^{-1}\vec {h_2}

仮定するB=K^{-T}K^{-1}=\left [ \begin{行列} b_{11} & b_{12} & b_{13}\\ b_{21} & b_{22} & b_ {23}\\ b_{31} & b_{32} & b_{33} \end{行列} \right ]

このとき、歪み率が考慮されるため\ガンマ、カメラの固有パラメータは次のように表すことができます。

K=\left [ \begin{行列} f_u & \gamma & u_0 \\ 0 & f_v & v_0\\ 0 & 0 & 1 \end{行列} \right ]

K利用可能なものをもたらしますB:

B=K^{-T}K^{-1}=\left [ \begin{行列} \frac{1}{f_{u}^{2}} & -\frac{\gamma }{f_{u }^{2}f_v} & \frac{\gamma v_0-u_0f_v}{f_{u}^{2}f_v}\\ -\frac{\gamma }{f_{u}^{2}f_v} & \ frac{\gamma }{f_{u}^{2}f_v}+\frac{1}{f_{v}^{2}} & -\frac{\gamma (\gamma v_0-u_0f_v)}{f_{ u}^{2}f_{v}^{2}}-\frac{v_0}{f_{v}^{2}}\\ \frac{\gamma v_0-u_0f_v}{f_{u}^{2 }f_v} & -\frac{\gamma (\gamma v_0-u_0f_v)}{f_{u}^{2}f_{v}^{2}}-\frac{v_0}{f_{v}^{2 }} & \frac{(\gamma v_0-u_0f_v)^2}{f_{u}^{2}f_{v}^{2}}+\frac{v_{0}^{2}}{f_{ v}^{2}}+1 \end{行列} \right ]

上の式からわかるようにB、これは対称行列であるため、Bパラメーターは 6 つだけであり、B6 次元ベクトルに書き換えられます。

\vec{b}=\left [ \begin{行列} b_{11} & b_{12} & b_{22} & b_{13} & b_{23} &b_{33} \end{行列} \right ] ^T

想定されるH列 番目私のベクトルは である\vec{h_i}=\left [ \begin{行列} h_{i1} & h_{i2} & h_{i3} \end{行列} \right ]^Tため、

\vec{h_i}^TB\vec{h_j}=c_{ij}^{T}\vec{b}

の、c_{ij}=\left [ \begin{matrix} h_{i1}h_{j1}, & h_{i1}h_{j2}+h_{i2}h_{j1}, & h_{i2}h_{j2} 、& h_{i3}h_{j1}+h_{i1}h_{j3}、& h_{i3}h_{j2}+h_{i2}h_{j3}、& h_{i3}h_{j3} \end {行列} \right ]^T

R回転行列の 2 つのプロパティを組み合わせると、次のようになります。

\left [ \begin{行列} c_{12}^{T} \\ (c_{12}-c_{22})^T \end{行列} \right ]\vec{b}=C\vec{b }=0

L 個のキャリブレーション画像がある場合、それはの行列となり、その時点でC方程式はベクトルの一意の解を持ちます。ベクトルが決まると、内部パラメータ行列も決まります。同時に、回転行列のプロパティに従って、各キャリブレーション画像の外部パラメータが次の式で計算されます。2L\×6L\geq 3\物{b}\物{b}KR

\left\{\begin{行列} \vec{r_1}=\lambda K^{-1}\vec{h_1}\\ \vec{r_2}=\lambda K^{-1}\vec{h_2}\ \ \vec{r_3}=\vec{r_1}\times \vec{r_2}\\ t=\lambda K^{-1}\vec{h_3} \end{matrix}\right。

の、

\lambda =\frac{1}{\left \|  K^{-1}\vec{h_1} \right \|}=\frac{1}{\left \|  K^{-1}\vec{h_2} \右 \|}

カメラの内部パラメータと外部パラメータの初期推定値を取得した後、再投影誤差を最小限に抑えることによって内部パラメータと外部パラメータの推定値が最適化されます。

min\sum_{i=1}^{n}\sum_{j=1}^{m}\left \|  p_{ij}-p(K,D,R_{i},t_{i},P_{j}) \right \|^2

その中には、カメラの内部パラメータと外部パラメータを使用して計算された投影点の予測値がp(K,D,R_i,t_i,P_j)あります。カメラが姿勢をとっているときの画像上の投影点の検出値ですP_{j}p_{ij}\left [ R_i, t_i \right ]P_j

2. 特徴抽出とマッチング

マルチカメラ システムの外部パラメータは、カメラ座標系と基準座標系の間の回転行列と並進行列を含む、同じ世界座標系内の異なるカメラ間の 3 次元空間の姿勢関係です。カメラの外部パラメータ、まず第一に、同じ世界座標系、つまり統一基準基準を決定する必要があります。カメラが配置されているシーンの 3 次元構造が既知であり、この 3 次元構造がカメラ外部パラメータ校正の基準として使用され、カメラ外部パラメータ校正の原理を説明すると仮定します。カメラ外部パラメータの校正には直接法と特徴点法があります。直接法は、グレーレベルが一定であるという仮定に基づいており、最初に 1 枚目の画像の姿勢推定結果に基づいて 2 枚目の画像における特徴点の投影位置を求め、次に特徴点の投影を計算します。 2 つのピクセルの測光誤差を最小限に抑えることで最適化されます。カメラ位置を計算する直接法の前提は、空間内の 3 次元点によってイメージされるグレースケールがすべての視野角で変化しないと仮定することですが、実際のアプリケーションでは、グレースケール値は照明やカメラの位置によって容易に影響を受けます。照明が変化したり、カメラのポーズが変化すると、画像のグレー値が変化するため、直接法ではカメラのポーズの計算に誤差が生じる可能性があります。特徴点法は手元照明の影響が少なく、直接法よりもロバスト性に優れています。したがって、カメラ位置特定のための特徴点法を直接導入します。

特徴点は画像内の比較的代表的な点であり、カメラが少し動いても画像内の特徴点は安定しており、異なる画像上でも同じ特徴点を判定できるため、同じ特徴点を使用して画像処理が行われます。異なる画像間の差異を計算します。スポーツ関係。一般的な画像特徴点検出アルゴリズムには、SIFT、SURF、ORB などが含まれます。SIFTアルゴリズムは、画像取得の過程で照明、スケール、回転の変化を十分に考慮しており、高精度であるという特徴がありますが、計算量が膨大であり、計算速度が遅くなります。SURF アルゴリズムは、SIFT アルゴリズムを最適化し、アルゴリズムの計算速度を向上させます。さらに、ORB アルゴリズムの画像特徴抽出は高速であり、ノイズ ポイントや画像変換の影響をある程度受けません。本稿では、ORB アルゴリズムを使用した特徴点検出のプロセスを 2 つのステップに分けます。

1. 高速コーナーポイント抽出。まず、最終的に抽出するコーナー点の数を N とし、FAST コーナー点のハリス応答値を計算し、応答値が最も大きい N 個のコーナー点を選択してコーナー点の集合を構成し、次のように構成してスケール不変性を実現します。画像のピラミッド、最後にグレーを使用 画像の主な方向を決定するために重心法が使用されます。

2. BRIEF 記述子。ORB アルゴリズムは、BRIEF 記述子を使用して FAST コーナー ポイントを記述します。このコーナー ポイントは多くの 0 と 1 で構成され、キー ポイントの周囲のピクセルの明るさの明暗関係を表すために使用されます。

ORB アルゴリズムは、BRIEF 記述子で 0 と 1 を使用して、キー ポイント付近の 2 つのピクセル (p と q など) 間の明暗関係を記述します。 の場合は 1 を取得し、それ以外の場合は 0 を取得しますp>qキーポイントの周囲の 256 個の p と q をランダムに選択すると、256 次元のバイナリ ベクトルが得られます。つまり、各特徴点は 256 次元のバイナリ記述子を持ちます。画像それからM個の特徴点が抽出されx_{t}^{m} (m=1,2,...,M)、画像私_{t+1}からN個の特徴点が抽出されると仮定するx_{t+1}^{n} (n=1,2,...,N)まず画像それ内の各特徴点と画像内のすべての特徴点記述子の間のハミング距離を計算し、次にハミング距離最小のマッチング点を選択し、最後にすべての特徴点に対応するマッチング点を順番に計算して完了します。画像とのマッチング。x_{t}^{m}私_{t+1}x_{t+1}^{n}x_{t+1}^{n}x_{t}^{m}それそれ私_{t+1}

おすすめ

転載: blog.csdn.net/panpan_jiang1/article/details/126810498