標定相機引數 張正友方法

2021-09-18 05:13:44 字數 2550 閱讀 9282

一、實驗原理

1.計算外參

設三維世界座標的點為m=[x,y,z,1]t,二維相機平面畫素座標為m=[u,v,1]t,所以標定用的棋盤格平面到影象平面的單應性關係為: sm=a[r,t]m

其中

不妨設棋盤格位於z = 0,定義旋轉矩陣r的第i列為 ri, 則有:

令h=[h1 h2 h3]=λa[r1 r2 t]

於是空間到影象的對映可改為: sm=hm,

其中h是描述homographic矩陣,h是乙個齊次矩陣,所以有8個未知數,至少需要8個方程,每對對應點能提供兩個方程,所以至少需要四個對應點,就可以算出世界平面到影象平面的單應性矩陣h

外參具體計算公式。注意:r3是 t

一般而言,求解出的r = [r1 r2 t] 不會滿足正交與歸一的標準

在實際操作中,r 可以通過svd分解實現規範化(詳見原文)

2.計算內參

由r1和r2正交,且r1和r2的模相等,可以得到如下約束:

正交模相等

可以推到出

根據推到的結果可知如果有n組觀察影象,則v 是 2n x 6 的矩陣

根據最小二乘定義,v b = 0 的解是 vtv 最小特徵值對應的特徵向量。

因此, 可以直接估算出 b,後續可以通過b求解內參

因為b中的未知量為6個,

所以當觀測平面 n ≥ 3 時,可以得到b的唯一解

當 n = 2時, 一般可令畸變引數γ = 0

當 n = 1時, 僅能估算出α 與 β, 此時一般可假定像主點座標 u0 與 v0 為0

內部引數可通過如下公式計算(cholesky分解):

內參具體計算公式

3.最大似然估計

上述的推導結果是基於理想情況下的解,但由於可能存在高斯雜訊,所以使用最大似然估計進行優化。設我們採集了n副包含棋盤格的影象進行定標,每個影象裡有棋盤格角點m個。令第i副影象上的角點mj在上述計算得到的攝像機矩陣下影象上的投影點為:

這裡的k為相機內參矩陣a

其中ri和ti是第i副圖對應的旋轉矩陣和平移向量,k是內引數矩陣。則角點mij的概率密度函式為:

這裡的k為相機內參矩陣a

構造似然函式:

這裡的k為相機內參矩陣a

讓l取得最大值,即讓下面式子最小。這裡使用的是多引數非線性系統優化問題的levenberg-marquardt演算法[2]進行迭代求最優解。

這裡的k為相機內參矩陣a

4.徑向畸變估計

張氏標定法只關注了影響最大的徑向畸變。則數學表示式為:

其中,(u,v)是理想無畸變的畫素座標,(u,v)(u,v)是實際畸變後的畫素座標。(u0,v0)代表主點,(x,y)是理想無畸變的連續影象座標,(x,y)(x,y)是實際畸變後的連續影象座標。k1和k2為前兩階的畸變引數。

化作矩陣形式:

記做:dk=d

則可得:

計算得到畸變係數k。

使用最大似然的思想優化得到的結果,即像上一步一樣,lm法計算下列函式值最小的引數值:

這裡的k為相機內參矩陣a

到此,張氏標定法介紹完畢。我們也得到了相機內參、外參和畸變係數。

二、實驗步驟

1.列印一張棋盤格a4紙張(黑白間距已知),並貼在乙個平板上

2.針對棋盤格拍攝若干張(一般10-20張)

3.在中檢測特徵點(harris特徵)

4.利用解析解估算方法計算出5個內部引數,以及6個外部引數

5.根據極大似然估計策略,設計優化目標並實現引數的refinement

三、實驗結果

手機型號:iphone6sp

棋盤是一塊由黑白方塊間隔組成的標定板,我們用它來作為相機標定的標定物(從真實世界對映到數字影象內的物件)。之所以我們用棋盤作為標定物是因為平面棋盤模式更容易處理(相對於複雜的三維物體),但與此同時,二維物體相對於三維物體會缺少一部分資訊,於是我們會多次改變棋盤的方位來捕捉影象,以求獲得更豐富的座標資訊。下面將依次對剛體進行一系列變換,使之從世界座標系進行仿射變換、投影透射,最終得到畫素座標系下的離散影象點,過程中會逐步引入各引數矩陣。標定需要使用標定板在不同位置、不同角度、不同姿態下拍攝,最少需要3張,以10~20張為宜。標定板需要是黑白相間的矩形構成的棋盤圖,製作精度要求較高。

張氏標定 相機標定 1

公式如下 為了和 張正友教授 的 相統一,現在把公式符號統一一下。第一點 旋轉向量 r 為正交矩陣,所以又以下的性質 第二點 就是 s 它是尺度因子,它的出現只是為了方便運算,而且對於齊次座標,尺度因子不會改變座標值 剛開始不知道 中 homography 不知道是何方神聖,搜尋到了最後這番解釋 因...

張正友相機標定

1.關於資料說明 張正友標定2000 lm演算法1978 the levenberg marquardt algorithm,implementation and theory opencv 參考 其中關於calibratecamera函式可見 此函式會輸出乙個3x3內參矩陣,乙個5維畸變係數,n幅...

張正友相機標定法

1.為什麼需要相機標定 因為每個鏡頭在生產和組裝過程中可能會出現不同程度的畸變 畸變是一種光學錯位現象,通俗的講就是本來是直線的物體,實際拍出的效果是扭曲的 而通過相機標定可以矯正這種畸變,避免拍出的影象出現畸變。另外,可以根據相機標定得到的相機引數建立相機成像幾何模型,將世界座標系中的3d影象對映...