世界坐標系、相機坐標系、影像坐標系、像素坐標系
1、四個坐標系簡介
? 世界坐標系:描述相機位置,(Xw,Yw,Zw)
? 相機坐標系:相機坐標系是連接影像物理坐標系與世界坐標系的橋梁,鏡頭的光心為原點,(Xc,Yc,Zc),也是投影中心
? 影像物理坐標系:相機坐標系的Z軸與影像的交點為原點,(x,y)
? 像素坐標系:影像的左上角為原點,單位pixel,(u,v)
我們可以從拍攝的圖片上一個點的坐標,利用相機內參外參,反推出世界中那個點的坐標,進行三維重建,
構建世界坐標系是為了更好的描述相機的位置在哪,在雙目視覺中一般將世界坐標系原點定在左相機或者右相機或者baseline的中點,
2、世界坐標系與相機坐標系
? 屬于剛體變換:物體不會發生形變,只需要發生旋轉和平移(旋轉矩陣R和平移向量T)



3、相機坐標系與影像坐標系
? 透視投影關系,從3D轉換成2D
)
4、影像坐標系與像素坐標系
? 確定它們的關系之前,我們可以假設每一個像素在u軸和v軸方向上的物理尺寸為dx和dy,像素坐標系和影像坐標系都在成像平面上,只是各自的原點和度量單位不一樣,影像坐標系的原點為相機光軸與成像平面的交點,通常情況下是成像平面的中點或者叫principal point,影像坐標系的單位是mm,屬于物理單位,而像素坐標系的單位是pixel,我們平常描述一個像素點都是幾行幾列,

我們也可以用另一種矩陣表示方式:

解釋:1、dx和dy表示感光芯片上像素的實際大小,是連接像素坐標系和真實尺寸坐標系的,u0和v0是影像平面中心,這些都是我們求的內外引數,
通過上面四個坐標系的轉換就可以得到一個點從世界坐標系如何轉換到像素坐標系的

? 一個三維中的坐標點,的確可以在影像中找到一個對應的像素點,但是反過來,通過影像中的一個點找到它在三維中對應的點就很成了一個問題,因為我們并不知道等式左邊的Zc的值,
Realsense SDK直接能利用相機的內參和深度資訊,將影像坐標系下的點還原到相機坐標系下,
相機內參:焦距(fx,fy),成像原點,畸變系數,相機坐標系使用毫米制單位,影像平面使用像素為單位,內參的作用就是在這兩個坐標系之間進行線性的變換
dx和dy表示x方向和y方向的一個像素分別占多少個單位,是反映現實中的影像物理坐標關系與像素坐標系轉換的關鍵
u0,v0代表影像的中心像素坐標和影像原點像素坐標之間相差的橫向和縱向像素數,u0和v0一般不是正好是影像解析度的一半,其是有偏差的,一般越好的攝像頭則其越接近于解析度的一半
相機外參:平移矩陣,旋轉向量,世界坐標通過旋轉平移到相機坐標
MATLAB標定工具箱:標定的像素誤差在0.1左右
opencv的StereoClibration標定函式:標定的像素誤差在0.4以上
realsense 相機內參結構體 intrinsics
int width; 圖片寬度(以像素為單位)
int height; 圖片高度(以像素為單位)
float ppx; 圖片主點水平坐標,以距左邊緣的像素偏移量
float ppy; 圖片主點垂直坐標,以距上邊緣的像素偏移量
float fx; x方向上以像素為單位的焦距fx = f/dx, fy = f/dy
float fy; y方向上以像素為單位的焦距
rs2_distortion model; 圖片畸變模型
float coeffs[5]; 畸變系數
什么是攝像機標定
為確定空間物體表面某點的三維幾何位置與其在影像中對應點之間的相互關系,必須建立攝像機成像幾何模型,這些幾何模型引數就是攝像機引數,求解這些引數的程序稱之為攝像機標定,
傳統標定方法
- 線性標定方法:運算速度快,標定精度不高
- 非線性優化標定方法:標定精度高,模型復雜,計算量過大
仿射變換中的基本變換:平移、旋轉、縮放、剪切
- 繞原點二維旋轉
首先明確旋轉在二維中是繞著某一點進行旋轉,三維中是繞著某一個軸進行旋轉,二維中最簡單的場景是繞著坐標原點進行旋轉
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356602.html
標籤:其他
