在視覺slam中,有幾個基本的座標系
如何在各座標系之間相互轉換,把攝像頭輸出的2d影象和我們所在的三維世界一一對應,是slam技術研究的一大重點,從世界座標系如何在各座標系之間相互轉換,把攝像頭輸出的2d影象和我們所在的三維世界一一對應,是slam技術研究的一大重點
[1]o點表示camera centre
,即相機的中心點,也是相機座標系的中心點;
[2]z軸表示principal axis
,即相機的主軸;
[3]q點所在的平面表示image plane
,即相機的像平面,也就是座標系所在的二維平面;
[4]o1
點表示principal point
,即主點,主軸與像平面相交的點;
[5]o點到o1
點的距離,也就是右邊圖中的f,即相機的焦距;
[6]像平面上的x和y座標軸是與相機座標系上的x和y座標軸互相平行的;
[7]相機座標系是以x,y,z(大寫)三個軸組成的且原點在o點,度量值為公尺(m
);
[8]像平面座標系是以x,y(小寫)兩個軸組成的且原點在o1點,度量值為公尺(m
);
[9]畫素座標系一般指相對座標系,在這裡可以認為和像平面座標繫在乙個平面上,不過原點是在的角上,而且度量值為畫素的個數(pixel
);
2、相機座標系
→
成像平面座標系
[1]以o點為原點建立攝像機座標系。點q(x,y,z)為攝像機座標系空間中的一點,該點被光線投影到影象平面上的q(x,y,f)點。
影象平面與光軸z軸垂直,和投影中心距離為f (f是相機的焦距)
。按照三角比例關係可以得出:
x/f = x/z y/f = y/z ,即x = fx/z y = fy/z
以上將座標為(x,y,z)的q點對映到投影平面上座標為(x,y)的q點的過程稱作投影變換。
上述q點到q點的變換關係用3*3的矩陣可表示為:q = mq,其中
最終得出透視投影變換矩陣為:
m稱為攝像機的內引數矩陣,單位均為物理尺寸。
通過上面,可以把相機座標系轉換到像影象座標系的物理單位[即(x,y,z)→(x
,y)]
3、成像平面
座標系→
畫素座標系
通過下面,可以把像平面座標系物理單位到畫素單位[即→(u,v)
] 以影象平面的左上角或左下角為原點建立座標系。假設像平面座標系原點位於影象左下角,水平向右為u軸,垂直向上為v軸,均以畫素為單位。
以影象平面與光軸的交點o1
為原點建立座標系,水平向右為x軸,垂直向上為y軸。
原點o1
一般位於影象中心處,o1
在以畫素為單位的影象座標系中的座標為(u0,
v0)。
像平面座標系和畫素座標系雖然在同乙個平面上,但是原點並不是同乙個。
設每個畫素的物理尺寸大小為 dx * dy (mm) ( 由於單個畫素點投影在影象平面上是矩形而不是正方形,因此可能dx != dy),
影象平面上某點在成像平面座標系中的座標為(x, y),在畫素座標系中的座標為(u, v),則二者滿足如下關係:[即(x, y)→(u, v)
]
u = x / dx + u0
v = y / dy +
v0
用齊次座標與矩陣形式表示為:
將等式兩邊都乘以
點q(x,y,z)
座標中的z可得:
將攝像機座標系中的(1)式代入上式可得:
則右邊第乙個矩陣和第二個矩陣的乘積亦為
攝像機的內引數矩陣(單位為畫素),相乘後可得:
和(1)式相比,此
內引數矩陣中f/dx, f/dy, cx
/dx+u0,cy
/dy+v0
的單位均為畫素。令
內引數矩陣為k,則上式可寫成:
(3)
SLAM中座標轉換解法
本篇的轉換方式是參考高翔老師在視覺slam十四講中的程式進行解讀,目的是編寫乙個標頭檔案和原始檔,實現相機座標 世界座標以及畫素座標之間任意兩項的相互轉化。首先是原始檔 include myslam camera.h namespace myslam vector3d camera world2ca...
opengl各個座標系理解與轉換公式
1 標準化裝置座標 normalized device coordinates,ndc 頂點座標已經在頂點著色器中處理過,它們就應該是標準化裝置座標了,標準化裝置座標是乙個x y和z值在 1.0到1.0的一小段空間。任何落在範圍外的座標都會被丟棄 裁剪,不會顯示在你的螢幕上。2 uv座標系 uv座標...
不同平面直角座標系之間的座標轉換公式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!1.單純移軸.設oxy,o x y 是兩個直角座標系,座標軸有相同的方向,o 在oxy中的座標為 x0,y0 我們用 x,y x y 分別代表點m在座標系oxy,o x y 中的座標.在移軸下,座標轉換公式是 x x x0,y y y0.2.單純轉...