相機的焦距、感測器尺寸、**畫素尺寸等都屬於相機內部引數,內部引數的確定是相機位置、姿態估算過程中的重要環節,直接影響相機位置和姿態的估算誤差。為了降低位置、姿態的估算誤差,可以首先使用自動標定的方法來提高內部引數的精確度。
相機內部引數通常使用矩陣形式表達,稱為相機內部引數矩陣(intrinsic cameral matrix,簡稱「內部矩陣」,用k表示),相機自動標定的目的是自動計算內部矩陣,內部矩陣是對極幾何計算中的基礎引數之一,在單目、雙目等機械人視覺條件下,進行相機位置、姿態估算和三維重建時,內部矩陣都是必須提前獲取的。而內部矩陣的自動標定則能夠減少人工操作,甚至可以提高計算精度,在opencv中已經作為基礎庫提供了,在matlab中也有相關庫可以使用,由此,相機自動標定是乙個值得嘗試的內容。
三 實驗測試
相機自動標定以內部矩陣k(見簡介)與ica(the image of the absolute conic,稱為「絕對二次曲線」,用ω表示)的數學關係為中介,在計算得到ω之後,利用cholesky factorization可以得到k(可參考[hartley, 2003] section a 4.2.1 p582)。
ica與vanishing point、vanishing line和單應矩陣(homography,用h表示)有關,因此ica依靠上述三種條件的約束進行估算。這些約束的數學表示參見[hartley, 2003]。根據這些約束,可以構建對應的方程(constraint),下面將逐一介紹。
圖1 ica(表中以ω表示)與vanishing point, vanishing line和homography的數學關係([hartley, 2003] table 8.1 p224)
第一種約束利用的是垂直線,大意為「兩條互相垂直的直線的滅點可以構建乙個約束方程」。令兩條互相垂直的直線的滅點分別稱為v1
和v2 ,則存在方程vt
1ωv2
=0。其中,v1是滅點在投影平面(也就是相機拍攝的**)上,v2
與v1 相同。
根據書[hartley, 2003]中例子(fig. 8.22, p226,見下圖),計算內部矩陣所使用的是三個滅點,這三個滅點所屬的直線互相垂直。雖然書中沒有詳細介紹計算流程,但可以推斷,計算方法是對三個滅點兩兩組合,得到三種組合方式,每種組合得到乙個約束方程,一共得到三個約束。
相機內部矩陣k與相機的成像原理有關,小孔成像是最簡單的成像原理,但同時也是最基本的,能夠引申出透視投影的相機模型(projective camera,可參考[hartley, 2003],p154),這種相機模型可以近似地描述普通相機,我們之前做過類似驗證。下圖所使用的相機可用透視投影模型描述,而且是焦距有限長的模型(finit projective camera),這種透視投影模型所建立的相機內部矩陣含有5個未知引數,分別與焦距、鏡頭畸變、畫素中心座標、感測器單位距離所佔據的畫素數量有關(可參考[hartley, 2003],p157)。由於一般的數位相機已經處理好了鏡頭畸變,而且感測器的畫素格為矩形(表示感測器單位距離所佔據的畫素數量在兩個軸向上具有固定比例關係,甚至是直接相等的),因此可以將內部矩陣k中的未知引數數量減少到3個,同時表示iac的ω矩陣中的未知引數數量也同樣降為3個,此時,已經可以用上述的三個約束方程進行求解了。
滅點的計算過程中會經常求解兩條直線的交點,其求解方法可參考[hartley, 2003] (p27),使用直線和點的齊次座標形式,交點通過兩條直線的向量叉乘得到,而直線同樣通過在其上的兩個點的向量進行叉乘得到。在真實測量中,由於點的選取存在誤差,考慮提高精度時,可以通過引入最小二乘估計,我們在這裡尚未使用,暫不介紹。
圖2 利用垂直線約束進行相機校準([hartley, 2003] fig. 8.22, p226)
**見圖3。內部矩陣的估算流程如下:首先計算三個滅點,然後建立滅點與ica之間的關係方程,組成方程組,使用最小二乘法估算ica,最後使用cholesky factorization估算k。
第一步,計算滅點。將向量叉乘改為矩陣乘法,直線和點均適用齊次座標表示,直線的齊次座標可用兩點的齊次座標的叉乘得到,而交點的座標也同樣可用兩條直線的座標的叉乘得到(參考[hartley, 2003], p27)。本例的計算結果見表2.
圖3 垂直線測試
直線方向
齊次座標
x335.1, -220.9, 1
y11921.9, -1133.6, 1
z3552.3, 8430.9, 1
表2 滅點計算結果
[hartley, 2003]: hartley r, zisserman a. multiple view geometry in computer vision[m]. cambridge university press, 2003.
深度學習 相機標定 相機標定
術語 內參矩陣 intrinsic matrix 焦距 focal length 主點 principal point 徑向畸變 radial distortion 切向畸變 tangential distortion 旋轉矩陣 rotation matrices 平移向量 translation ...
相機標定之棋盤標定
該文章主要學習如何進行相機標定,原理部分只是比較多,不多贅述。首先,相機標定主要是去求解內參k和外參 r t 以下為相機標定過程中常用的opencv自帶的幾個重要函式。1.opencv 提供的函式projectpoints2 投影三維點到影象二維點。函式引數如下 void cvprojectpoin...
基於消失點的相機自動標定
as you seen,在一些場景下,比如交通監控 道路引數獲取 港口碼頭監控等,需要將相機架設在高處,此時,鑑於複雜的場景環境,基於傳統的相機標定方法 即鋪設標定板,利用張正友或者tsai標定方法進行標定,是不現實的。通俗的說 總不能在馬路上擺個標定板,告訴來往的車輛 你等一下,我拍二十張 你再走...