單目視覺標定原理


在計算機視覺中,通過相機標定能夠獲取一定的參數,其原理是基於三大坐標系之間的轉換和攝像機的畸變參數矩陣。在實驗中經常用張正友標定發,進行攝像機標定,獲取到內參數矩陣和外參數矩陣以及畸變參數矩陣。在應用中要區分三者作用。這也是在程序中函數輸入量。

一、三大坐標系

在計算機視覺中,利用圖像中目標的二維信息獲取目標的三維信息,肯定需要相機模型的之間轉化。

1、圖像坐標系

在計算機系統中,描述圖像的大小是像素,比如圖像分辨率是1240*768.也就就是以為圖像具矩陣rows是1024,cols是768.那圖像的原點是在圖像的左上角。

clip_image001

以圖像左上角為原點建立以像素為單位的直接坐標系u-v。像素的橫坐標u與縱坐標v分別是在其圖像數組中所在的列數與所在行數。這是像素坐標,而不是物理坐標,為了后續的模型轉換,有必要建立圖像坐標系。

圖像坐標系是以圖像中心為原點,X軸和u軸平行,Y軸和v軸平行。dx和dy標示圖像中每個像素在X軸和Y軸的物理尺寸,其實就是換算比例。比如圖像大小是1024*768,圖像坐標系x-y中大小為19*17.那么dx就是19/1024.

則圖像中的每個像素在u-v坐標系中的坐標和在x-y坐標系中的坐標之間都存在如下的關系:

(上述公式中我們假設物理坐標系中的單位為毫米,那么dx的的單位為:毫米/像素。那么x/dx的單位就是像素了,即和u的單位一樣都是像素)

為了使用方便,可將上式用齊次坐標與矩陣形式表示為:

其逆關系可表示為:

比如我們知道圖像分辨率是1024*768,此時像素為(100,50),圖像坐標系為是19*17mm。那么在圖像坐標系是多少

根據轉化和平移關系,知道U0為1024/2 = 512,v0位768/2 = 384.代入公式為x= (100-512)*19/1024.實際中圖像坐標系還是比較容易獲取。這是需要初始化,就能獲取到的參數。

2、相機坐標系

a、相機坐標系概念


 

相機成像的幾何關系可由圖2.2表示。其中O點為攝像機光心(投影中心),Xc軸和Yc軸與成像平面坐標系的x軸和y軸平行,Zc軸為攝像機的光軸,和圖像平面垂直。光軸與圖像平面的交點為圖像的主點O1,由點O與Xc,Yc,Zc軸組成的直角坐標系稱為攝像機的坐標系。OO1為攝像機的焦距。

 

b、相機坐標系和圖像坐標系之間的關系

在模型中我們將圖像坐標放在相機坐標系前方,如圖所示,兩者之間的轉化關系是有透鏡原理獲取的。

根據相似三角形的原理。X = (X/Z)*f。所以相機的焦距也是很重要的參數。y的獲取同樣道理。

實際中往往不會這么精確,會存在誤差。

1、在實際中主點不一定在成像儀(圖像平面)的中心,為了對光軸可能存在的偏移進行建模,我們引入兩個新的參數:cx和cy。

2、在實際中,由於單個像素的在低價的成像儀上是矩形而不是正方形,我們引入了兩個不同的焦距參數:fx和fy。(這里的焦距是以像素為單位)

則,我們假定物體在相機坐標系統中的點Q,其坐標為(X,Y,Z),以某些偏移的方式投影為點q(xsrceen,yscrreen),其中srceen為下表,坐標關系如下:

fx,fy和物理焦距F之間的關系為:fx=Fsx和fy=Fsy。其中sx表示x方向上的1毫米長度所代表像素值,即單位像素/每毫秒,fx,fy是在相機標定中整體計算的,而不是通過該公式計算的。

3、世界坐標系

世界坐標系是為了描述相機的位置而被引入的,如圖2.2中坐標系OwXwYwZw即為世界坐標系。平移向量t和旋轉矩陣R可以用來表示相機坐標系與世界坐標系的關系。所以,假設空間點P在世界坐標系下的齊次坐標是(Xw,Yw,Zw,1)T,(這里T是上標轉置),在相機坐標下的齊次坐標是(Xc,Yc,Zc,1)T,則存在如下的關系:

上式中R是3×3的正交單位矩陣(也成為旋轉矩陣),t是三維的平移向量。矢量0=(0,0,0),M1是4×4矩陣。

在實驗中,比如我們設定經緯坐標是(48,42,15)的為世界坐標系的原點,X方向指向正北。但是在試驗場中點(46,40,5)是相機坐標的系的原點,方向是正東。那么兩者之間就存在一個轉換關系。

1、旋轉矩陣R:

通常,任何維的旋轉可以表示為坐標向量與合適尺寸的方陣的乘積。最終一個旋轉等價於在另一個不同坐標系下對點位置的重新表述。坐標系旋轉角度θ,則等同於目標點繞坐標原點反方向旋轉同樣的角度θ。圖11-8顯示了矩陣乘法對二維旋轉的描述。在三維空間中,旋轉可以分解為繞各自坐標軸的二維旋轉(例如圖11-8就是繞z軸旋轉),其中旋轉的軸線的度量保存不變(這就是為什么旋轉矩陣為正交矩陣的緣由)。如果依次繞x,y,z軸旋轉角度ψ,φ和θ,那么總的旋轉矩陣R是三個矩陣Rx(ψ),Ry(φ),Rz(θ)的乘積,其中:

因此R=Rx(ψ),Ry(φ),Rz(θ).在繞X軸旋轉時,到YZ的平面距離沒有變化,所以X坐標沒有變化,只是YZ坐標需要誠意旋轉系數,其他矩陣同理。這個需要記住即可

image

平移向量T:

平移向量用來表示怎么樣將一個坐標系的原點移動到另外一個坐標系的原點,或者說平移向量是第一個坐標系原點與第二個坐標系原點的偏移量。因此,從以目標中心為原點的坐標系移動到以攝像機為中心的原點的另外一個坐標系,相應的平移向量為T=目標原點—攝像機原點。那么點在世界坐標系的中的坐標Po到在攝像機坐標系中Pc:

Pc=R(Po-T)

故,用三個角度ψ,φ和θ表示三維旋轉,用三個參數(x,y,z)表示三維平移,共6個參數,對攝像機而言,OpenCV內參數矩陣有4個參數:fx,fy,cx,cy。故對於每一個視場的解需要10個參數。我們知道一個四邊形的4個點可以提供8個方程,故至少需要兩個視角才能解出全部幾何參數。8*2=6+6+4。

二、相機模型

在計算機視覺中通過相機模型講三維空間的點和二維圖像中的點聯系起來。如果不考慮畸變的原因,則是線性模型,如果考慮,則是非線性模型。

1、線性模型

可用針孔模型來近似表示任一點P(Xc,Yc,Zc)在像平面的投影位置,也就是說,任一點P(Xc,Yc,Zc)的投影點p(x,y)都是OP(即光心(投影中心)與點P(Xc,Yc,Zc)的連線)與像平面的交點如上一篇文章中的圖2.2。對應比例關系可得:

(說明:Xc的c下表表示camera相機,上述公式是在相機坐標系內,利用三角形相似原理,即x/f=Xc/Z,其中上述公式的單位為毫米,f表示焦距單位毫米)

上式可以用齊次坐標與矩陣的形式表示為:

將上一篇文章中的(2.3)和(2.4)代入(2.6)式就可以得到點P的世界坐標與其投影坐標(u,v)之間的關系為:

(說明:上述公式中完成了從世界坐標系到圖像坐標系的轉變,中間經過了相機坐標系的過度,Xw中的w表示world世界,單位為毫米,而u,v是的 單位為像素,即完成了從毫米——像素的轉換。)

其中ax=f/dx,ay=f/dy;M是3×4的矩陣—投影矩陣,M1完全由相機的內參數ax,ay,u0,v0決定,(u0,v0)為主點坐標,ax,ay分別表示圖像u軸和v軸上的尺度因子,M2則完全由相機的外部參數決定。而相機標定就是確定相機的內外參數。

由式(2.7)可知,若已知相機的內外參數,則相當於已知投影矩陣M.當已知M和空間點P的坐標:矢量Xw=(Xw,Yw,Zw,1)T,(矢量Xw上面有一個矢量標識杠,T表示矢量的轉置)。式(2.7)可以給出三個方程,消去Zc就可以得到其投影點p的坐標(u,v)(其實也就是我用一個相機就可以拍攝一個物體的圖片了)。但是由於M為3×4不可逆矩陣,當 點P的投影坐標(u,v)和投影矩陣M為已知時,我們只能得到關於Xw,Yw,Zw的兩個線性方程,即射線OP的方程,由上一篇圖2.2我們可以看出,位於射線OP上的所有空間點的投影點(即圖像點)都是p點。所以不能唯一確定空間點P的世界坐標矢量Xw.

2、非線性模型

1、徑向畸變

現實中第一是由於成像平面和透鏡平面不死絕對平行的,所以存在徑向畸變。對徑向畸變成像儀中心是畸變為0,越到邊緣畸變越嚴重,比如魚眼透鏡。

對於便宜的網絡攝像機,我們通常使用前兩項,其中通常第一項為k1,而第二項為k2。對畸變很大的攝像機,比如魚眼透鏡,我們使用第三個徑向畸變項k3。通常成像儀某點的徑向位置按下式調節:

這里(x,y)是畸變點在成像儀上的原始位置,(xcorrected,ycorrected)表示矯正后的新位置。

2、切向畸變

切向畸變是由於透鏡制造上的缺陷使得透鏡本身與圖像平面不平行而產生的。徑向畸變可以有兩個額外的參數p1和p2來描述,如下:

因此總共有5個我們需要的畸變參數。由於在OpenCV程序中5個參數是必需的,所以它們被放置到一個畸變向量中,這是一個5×1的矩陣,按順序依次包含k1,k2,p1,p2和k3。

在實際的成像過程中,考慮鏡頭的失真,一般都存在非線性畸變,所以線性模型不能准確描述成像幾何關系。非線性畸可用下列公式描述:

若考慮非線性畸變,則對相機標定時需要使用非線性優化算法。而有研究表明引入過多的非線性參入(如離心畸變和薄棱畸變)不僅不能提高精度,還會引起解的不穩定。一般情況下徑向畸變就足以描述非線性畸變,所有本課題只是考慮徑向畸變。則將式(2.9)中的徑向畸變代入式(2.8)可得:

單個攝像頭的定標主要是計算出攝像頭的內參(焦距f和成像原點cx,cy、 五個畸變參數(一般只需要計算出k1,k2,p1,p2,
對於魚眼鏡頭等徑向畸變特別大的才需要計算k3))以及外參 (標定物的世界坐標)。

所以,為了得到空間物體的三維世界坐標,就必須有兩個或更多的相機構成立體視覺系統模型才能實現。

三 、單目標定矩陣關系

根據前面兩章節的介紹,描述了坐標系之間的轉化,同時也講解了畸變矩陣的由來。那如果獲取到圖像中二維坐標,如何獲取到現實中三維坐標呢?當然單目攝像機無法獲取三維坐標,但能反映一定關系。綜上來講,矩陣變換公式為:

根據坐標系之間轉化和相機模型(線性和非線性模型),研究了極幾何及基本矩陣的知識,證明了基本矩陣是求得攝像機投影矩陣的關鍵,根據基本矩陣F和攝像機標定階段獲取的內參數矩陣K,計算得到本質矩陣E,通過對E進行奇異值分解求得外參數矩陣R,T,接着求出投影矩陣P1和P2.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM