本文為 Multiple View Geometry 第七章 Computation of the Camera Matrix P 的筆記。
直觀的解
假設我們有 n 組三維至二維的對應點 \(\mathbf{X_i}, \mathbf{x_i}\),目標是計算矩陣 P 使得 \(\mathbf{x_i} = P \mathbf{X_i}\)。與前文介紹的 homography 矩陣的解法類似,我們可以寫成以下式子:
\[ \begin{bmatrix} \mathbf{0}^T & -w_i\mathbf{X_i}^T & y_i\mathbf{X_i}^T\\ w_i\mathbf{X_i}^T & \mathbf{0}^T & -x_i\mathbf{X_i}^T\\ -y_i\mathbf{X_i}^T & x_i\mathbf{X_i}^T & \mathbf{0}^T \end{bmatrix}_{3 \times 12} \begin{bmatrix} P^1\\ P^2\\ P^3 \end{bmatrix}_{12 \times 1} = \mathbf{0}_{3 \times 1} \]由於前兩個 row 與第三個 row 是 linearly dependent,我們只取前兩個 row 來解,當有 n 組對應點時將會是個 \(2n \times 12\) 的矩陣。由於 P 為 up-to-scale,其自由度為 11,因此理論上只要有 5.5 組對應點即能求解。另外要注意的是與 homography 矩陣相同,必須先 normalize 座標後再來解 DLT,差別是 normalize factor 為 \(\sqrt{3}\)。
Geometric error
直接解上面等式得到的是 algebraic error,如同前文所說其並無幾何意義。因此當能計算非線性最佳化時,我們會用 geometric error:\[\underset{P}{\mathrm{min}} \sum_i d(\mathbf{x_i}, P_\mathbf{X_i})^2\]一般來說最少需要未知數的五倍個觀測資料來得到好的結果,也就是說在估計相機矩陣 P 時,由於有 11 個未知數,最少需要 55 個已知式子來解,也就是 27.5 組對應點。
Algebraic error 的物理意義
用 DLT 計算得到的 algebraic error 是 \(f\sum_i d(\mathbf{X_i}, \mathbf{X_i}')^2\),其中 \(\mathbf{X_i}\) 代表投影至 \(x_i\) 的三維向量與 \(X_i\) 垂直光軸平面上的交點,如下圖:
在與光軸不遠的時候,algebraic error 與 geometric error 非常接近,但當有深度比較大的點時他們的差距就會變大,也因此 DLT 得到的結果會傾向於算出比較小的 f 來調整 algebraic error 與 geometric error 不會相差太遠。Affine camera matrix
用相同的方法可以用來解 affine camera matrix:由於 affine camera matrix 的第三個 row 為零,只要用前兩組式子組成 \(2n \times 8\) 的矩陣即可求解。
從任意的 camera matrix P 至固定的 intrinsics matrix
一般來說 camera intrinsics matrix 有五個參數:
- Focal length x 與 y
- Principal point x 與 y
- Skew
與前面的解法想同,可以最佳化 geometric error 或 algebraic error。
估計 residual error 的式子
當有 N 個觀測資料,要估計 d 個參數的問題時,假設 data 為 variance \(\sigma\) 的高斯分布,則:
- RMS residual error(measured <> estimated):\(\epsilon_{res}=\sigma(1-\frac{d}{N})^{1/2}\)
- RMS estimation error(estimated <> true):\(\epsilon_{res}=\sigma(\frac{d}{N})^{1/2}\)
上述的式子可用來估計 residual 與 estimation error 的下界,因此我們可以用 residual error 估計高斯分布的變異數,進而判斷結果是否理想。
沒有留言:
張貼留言