https://blog.csdn.net/humanking7/article/details/44756073
相機標定內容詳解:轉載自 祥的博客
預備知識
標定中的四個坐標系
1.1.平面旋轉
首先看一下平面坐標系之間的轉換。
兩個平面坐標系 Oxy
和 Ox'y'
之間的夾角是 a
。如下圖所示:
順時針旋轉 (Oxy -> Ox'y')
,變換關系如下:
公式(1)
和 公式(2)
等價。注意坐標順序,下面論證會用到。
1.2.三維旋轉
1.2.1.基元旋轉
1. 繞 Ox
軸順時針旋轉(右手定則),但是坐標排列次序相反使用上述 公式(2)
。
2. 繞 Oy
軸順時針旋轉(右手定則),坐標排列次序使用上述 公式(1)
。
3. 繞 Oz
軸順時針旋轉(右手定則),但是坐標排列次序相反使用上述 公式(2)
。
1.2.2.點在不同三維坐標系下的轉換(坐標系之間沒有平移)
假如兩個坐標軸之間的變換關系為,坐標系1 先繞 Oz
軸旋轉, 再繞 Oy
軸旋轉, 最后繞 Ox
軸旋轉,最終得到了坐標系2,則 旋轉矩陣R 為這三個 基元旋轉矩陣 依次 左乘 。
1.2.3.點在不同三維坐標系下的轉換(坐標系可能存在平移)
2.四個坐標系
在視覺測量中,需要進行的一個重要預備工作是定義四個坐標系的意義,即 攝像機坐標系 、 圖像物理坐標系 、 像素坐標系 和 世界坐標系(參考坐標系) 。
2.1.圖像物理坐標系(x,y) 到 像素坐標系(u,v)
1. 最簡單的情況 (兩坐標軸都為直角坐標系)
圖像上的每點坐標 (u,v) 分別表示每一幀采集的圖像在系統中的存儲的數組的列數與行數,坐標 (u,v) 所對應的值就是該點的灰度信息,因此坐標系 uOv
又稱為 像素坐標系。
同時,為了建立圖像中各點的像素與實際的物理尺寸的聯系,我們還要建立 圖像物理坐標系 xO1y
。設點 O1
在圖像像素坐標系中記為 (u0,v0)
,每個像素沿 x 軸的實際物理尺寸大小是 dx,沿 y 軸的實際物理尺寸大小是dy ,單位值毫米,則能得到兩個坐標系間的關系式 。
2. 一般情況 (兩坐標軸有一個軸平行,一個軸不平行)
為了方便以后公式的推導,將公式寫為:
2.2. 攝像機坐標系(Xc,Yc,Zc)到圖像物理坐標系(x,y)
三角形相似 問題可以解決。
2.3. 世界坐標系(Xw,Yw,Yw)到攝像機坐標系(Xc,Yc,Zc)
2.4.合並公式 + 總結
將公式合並后,如下所示:
綜上所述,大家可以看出四個坐標系之間存在着下述關系 ( 矩陣依次左乘 )
張正友標定推導詳解
為了和 張正友教授 的論文相統一,現在把公式符號統一一下。
數學基礎
第一點 : 旋轉向量 R 為正交矩陣,所以又以下的性質:
第二點 : 就是 S 。它是尺度因子,它的出現只是為了方便運算,而且對於齊次坐標,尺度因子不會改變坐標值 。
2. 正戲
Step.1 標定平面到圖像平面的單應性(Homography)
因為張氏標定是一種基於平面棋盤格的標定,所以想要搞懂張氏標定,首先應該從兩個平面的單應性(Homography)映射開始着手。
單應性(Homography) : 在計算機視覺中被定義為一個平面到另一個平面的投影映射。首先看一下,圖像平面與標定物棋盤格平面的單應性。
因為標定物是平面,所以我們可以把世界坐標系構造在 Z = 0 的平面上。然后進行單應性計算。令 Z = 0
可以將上式轉換為如下形式 ( 直接截取論文中的推導 ) :
H 是一個3x3的矩陣,並且有一個元素作為齊次坐標。因此,H有8個未知量待解 ( 可以分析一下, A 有5個未知量,后面的 [r1,r2,t] 有三個未知量,一共8個) 。
(X,Y) 作為標定物的坐標,可以由設計者人為控制,是已知量 。 (u,v) 是像素坐標,我們可以直接通過攝像機獲得。一組對應的 (X,Y) => (u,v) 我們可以獲得兩組方程。
現在有 8個未知量 待求,所以至少要8個方程。所以至少需要4組對應的點。所以有 4組 (X,Y) => (u,v)就可以算出,圖像平面到世界平面的 單應性矩陣H ,這也是張正友標定采用四個角點的棋盤作為標定物的一個原因
Step.2 利用約束條件求解內參矩陣A
從Step1可知,應用4個點我們可以獲得單應性矩陣H。但是H是內參陣和外參陣的合體。我們想要最終分別獲得內參和外參。所以需要想個辦法,先把內參求出來。然后外參也就隨之解出了。
上式中的 h1,h2 是通過求解單應性矩陣 H 求出來的,所以未知量只剩下 內參矩陣A 。 A中含有5個參數,如果需要完全解出來這5個未知量,則需要 3個不同的單應性矩陣H ( 因為 3個不同的單應性矩陣H在2個約束條件下可以產生6個方程 ) , 那么如何得到 3個不同的單應性矩陣H 呢? 那就是 3張不同的標定平面的照片, 我們大多是通過改變攝像機與標定板間的相對位置來獲得不同的標定照片。( 如果用2張照片進行標定,就要舍去一個內參 r=0 )
當然這只是張正友標定法不斷變換標定板方位的 第一個原因 。第二個原因 是張正友提到的 最大似然估計 ( Maximum-Likelihood Estimation )
首先令
可以看出 矩陣B 是一個對稱矩陣,有效的元素只有 6個 ,所以令一個 6維的向量b ,然后簡化公式 ( 就是那兩個約束條件 )
將運算的結果帶入到兩個約束條件中,可得到方程組:
英文部分也提出了3張圖片的作用 ( 不懂的可以再看看前面的分析 )
應用上述公式解出b后,就得到了B,在進行 cholesky分解 就可以得到 攝像機內參矩陣A 。
Step.3 利用內參矩陣A求解外參矩陣
已經有了內參矩陣A,通過下面的公式,就可以解出來,外參矩陣了。
以上就是張正友標定法的數學原理和推導,但是張正友自己也說這沒有啥實際的物理意義,只是為后面的極大似然參數估計提供初值。而張正友標定中用於提高標定精度的極大似然算法,我也在研究當中,希望以后可以發一篇博客。
halcon相機標定