URL: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/zhan99.pdf
簡介
張正友標定法
論文提出一種靈活的新技術來輕松校准相機。 它僅需要照相機觀察幾個(至少兩個)不同方向顯示的平面圖案。 相機或平面圖案均可自由移動。 不需要知道運動。 徑向透鏡畸變被建模。 所提出的過程包括一個解析解的解決方案,然后是基於最大似然准則的非線性修正。 計算機仿真和實際數據都已用於測試該技術,並獲得了很好的結果。 與使用昂貴的設備(例如兩個或三個正交平面)的經典技術相比,該技術易於使用且靈活。 它使3D計算機視覺從實驗室環境向現實世界的使用邁出了一步。
Algorithm
Notation
像素坐標系坐標 \(m = [u, v]^T\). 世界坐標系下坐標 \(M = [X, Y, Z]^T\), 使用 \(\tilde{x}\) 表示齊次坐標. \(\tilde{m} = [u, v, 1]^T, \space \tilde{M} = [X, Y, Z, 1]^T\)
\(A\) 為相機內參, \([R|t]\) 為相機外參, 設標定板的\(Z=0\), 有
模型平面與其圖像之間的單應性矩陣
單應性: 定義為從一個平面到另一個平面的投影映射
由於標定板上 \(Z=0\), 令 $ \tilde{M} = [X, Y, 1]^T$
可以根據給定模型平面的圖片估計單應性矩陣(見后面), 設單應性矩陣 \(H = [h_1, h_2, h_3]\), 有
其中, λ是任意標量。
\(r_1, r_2\)為外參旋轉矩陣R(正交矩陣)的列向量, 滿足如下約束:
Solving Camera Calibration
設 H \(i^{th}\) 列向量表示為 \(h_i = [h_{i1}, h_{i2}, h_{i3}]^T\)
則
將 \(h^T_iBh_j\) 展開, 可知 \(v_{ij}\) 為
由(3)(4) 可知
關於式(9)解法參照 Ax =0
一旦得到了b, 那么可得內參A
外參
其中,
關於切向畸變的非線性估計方法詳見論文
Estimation of the Homography Between the Model Plane and its Image
理想情況下,模型平面上點M和像素坐標m應該滿足式(2). 實際上,並不能滿足, 因為提取的圖像點中存在噪聲. 假設\(m_i\)上噪聲為服從均值為0和協方差矩陣為\(Λ_{mi}\)的高斯噪聲。 單應矩陣可以最大似然估計最小化如下函數
這里\(\hat{h}_i\) 也是采用列向量表示法
假設 \(\space \forall i, \space \Lambda_{m_i} = \sigma^2I\), 那么上述問題等價於非線性最小二乘問題. 即 \(\sum_i||m_i - \hat{m_i}||^2\). 可以通過Levenberg-Marquardt Algorithm 來優化, 優化算法的初值可以通過如下方案獲得.
令\(H = x = [\bar{h1}^T_1, \bar{h}^T_2, \bar{h}^T_3]\)
如上表達式為將 HM = m 展開后所得