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