再談「相機標定」

再談「相機標定」


前言

計算機視覺中,相機標定的重要性不言而喻,前面在公眾號【視覺IMAX】中寫過有多篇文章是關於相機標定的,包括一分鐘詳解OpenCV之相機標定函數calibrateCamera(),從零開始學習「張氏相機標定法」,但是,今天還想再次聊一聊相機標定,進一步加深對其基本方法與概念的理解。

一 基本問題

相機內外參數標定步驟主要包括如下:

  1. 考慮相機線性模型:
再談「相機標定」


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等工具包裡,考慮了其他畸變。簡單來說,計算畸變參數,主要是利用了重投影方法。



分享到:


相關文章: