前言
計算機視覺中,相機標定的重要性不言而喻,前面在公眾號【視覺IMAX】中寫過有多篇文章是關於相機標定的,包括一分鐘詳解OpenCV之相機標定函數calibrateCamera(),從零開始學習「張氏相機標定法」,但是,今天還想再次聊一聊相機標定,進一步加深對其基本方法與概念的理解。
一 基本問題
相機內外參數標定步驟主要包括如下:
- 考慮相機線性模型:
2.解算mij項;
3.分解內、外參數;
4.考慮非線性項。
Zhang方法:由張正友提出,OpenCV等廣泛使用。在Zhang方法之前,一般都是使用立體靶標,對於立體靶標,很難計算其特徵點的三維座標。
Zhang方法特點:使用平面靶標擺多個pose(可未知)。
Zhang方法標定步驟:
(1)對一個pose,計算單應性矩陣;
(2)有三個以上pose,根據各單應矩陣計算線性相機參數;
(3)使用非線性優化方法計算非線性參數。
二 Zhang方法
- 第一步:求解單應矩陣——基本方程
Zhang方法的特點:使用平面靶標擺多個pose。
由於特徵點在平面上,我們此處令Z=0,則有上圖中的表達式,也可看出:單應矩陣H為3x3的矩陣。
那麼如何求解單應矩陣,建立內參數方程呢?
注:由於Z=0,故而上圖中r3一項沒有,也即為0。
對應每一個pose,可得到上述兩個方程。
- 第二步:求解內參數——建立方程
注:具體的詳細步驟,可參考《Learning OpenCV3》。
- 第三步:求解外參數
第四步(最後一步):非線性畸變參數求解
注:Zhang方法呢,只考慮了徑向畸變,對於OpenCV等工具包裡,考慮了其他畸變。簡單來說,計算畸變參數,主要是利用了重投影方法。
閱讀更多 視覺IMAX 的文章