相機標定原理2
座標轉換基礎
在視覺測量中,需要進行的一個重要預備工作是定義四個座標系的意義,即 攝像機座標系 、 影象物理座標系、 畫素座標系 和 世界座標系(參考座標系) 。
一、影象座標系(x,y)至畫素座標系(u,v)
1。兩座標軸互相垂直
畫素座標系是一個二維直角座標系,原點位於影象的左上角O,X軸、Y軸分別於像面的兩邊平行。
畫素座標系中座標軸的單位是畫素(整數)
畫素座標系不利於座標變換,因此需要建立影象座標系,其座標軸的單位通常為毫米(mm),原點是相機光軸與相面的交點(稱為主點)O1,即影象的中心點,X軸、Y軸分別與u軸、v軸平行。故兩個座標系實際是平移關係,即可以透過平移就可得到。
此時有
2。一般情況,兩軸不互相垂直
此時有
寫成矩陣形式為:
其中dx、dy分別為畫素在X、Y軸方向上的物理尺寸,u0、v0為主點(影象原點)座標
二、相機座標系(Xc,Yc,Zc)至影象座標系(x,y)
(根據小孔成像原理,影象座標系應在相機座標系的另一邊,為倒立反向成像,但為方便理解和計算,故投影至同側。)
根據三角形相似性原理得:
三、世界座標系(Xw,Yw,Zw)至相機座標系(Xc,Yc,Zc)
四、合併公式
R、T矩陣為相機的外參矩陣。
畸變
畸變一般可以分為:徑向畸變、切向畸變
徑向畸變來自於透鏡形狀。
切向畸變來自於整個攝像機的組裝過程。
畸變還有其他型別的畸變,但是沒有徑向畸變、切向畸變顯著,所以忽略不計。
徑向畸變(桶形畸變和枕形畸變):
實際攝像機的透鏡總是在成像儀的邊緣產生顯著的畸變,這種現象來源於“筒形”或“魚眼”的影響。
如下圖,光線在原理透鏡中心的地方比靠近中心的地方更加彎曲。對於常用的普通透鏡來說,這種現象更加嚴重。筒形畸變在便宜的網路攝像機中非常厲害,但在高階攝像機中不明顯,因為這些透鏡系統做了很多消除徑向畸變的工作。
對於徑向畸變,成像儀中心(光學中心)的畸變為0,隨著向邊緣移動,畸變越來越嚴重。
對於徑向畸變可以透過下面的泰勒級數展開式進行校正:
這裡的x、y是影象中的畸變後的位置座標,透過校正得到真實座標。r是該點距成像中心的距離。
切向畸變(薄透鏡畸變和離心畸變):
切向畸變是由於透鏡製造上的缺陷使得透鏡本身與影象平面不平行而產生的。
切向畸變可以透過如下公式來矯正:
這裡的x、y是影象中的畸變後的位置座標,透過校正得到真實座標。r是該點距成像中心的距離。
opencv畸變模型
徑向畸變模型:
切向畸變模型:
可得:
由公式可得畸變有k1,k2,k3,p1,p2五個引數,對於質量比較好的相機來說,切向畸變很小,可忽略,徑向畸變係數k3也可忽略,只計算k1,k2兩個引數。張正友標定中就預設為p1,p2為0。
張正友標定中的畸變模型:
標定方法
1、傳統相機標定
最簡單的相機標定為線性標定,即不考慮相機的畸變而只考慮空間座標轉換。
每個座標點有X,Y兩個變數,可列兩個方程,相機內參有5個未知數,外參平移和旋轉各3個,共有11個變數,因此至少需要6個特徵點來求解。
2、非線性標定
當鏡頭畸變明顯時必須考慮畸變,一般較為便宜的網路攝像頭畸變特別大,而價格較貴的工業攝像頭則畸變很小,因為其中已經嵌入了許多消除畸變的程式。這時線性模型轉化為非線性模型,需要透過非線性標定方法求解。有最速下降法,遺傳演算法,高斯牛頓法和神經網路演算法等。
3、張正友標定介紹
(張正友標定只考慮了徑向畸變,沒有考慮切向畸變)
由上面的座標轉換可得:
我們把世界座標系放置在標定板平面上,令Z=0,這時有:
H為3X3矩陣,並且有一個元素作為齊次座標,則有8個未知元素,一組座標對應兩個方程,則至少需要四組對應的點即可算出單應性矩陣H。
由此可求出單應性矩陣A,因A有5個元素,則至少需要三個單應性矩陣方能求解,那麼就需要三張不同的標定圖片,這就是為什麼標定需要用至少3張以上的圖片的原因之一(我還不是完全確定是這樣)
個人站點
1、CSDN地址:
2、知乎
3、微信公眾號《Qt學視覺》
上一篇:不同CAD怎樣帶座標複製貼上
下一篇:為什麼我的朋友總說我醜?