SLAM之相機模型

相機模型

描述了一束光線通過針孔之後,在針孔背面投影成像的關係。
相機透鏡的存在會使得光線投影到成像平面的過程中產生畸變
因此,我們用針孔畸變兩個模型來描述整個投影過程。這兩個模型能夠把外部的三維點投影到相機內部成像平面,構成相機的內參數

針孔相機模型

\[\frac{Z}{f}=\frac{X}{X^\prime}=\frac{Y}{Y^\prime} \]

整理得:

\[X^\prime=f\frac{X}{Z} \]

\[Y^\prime=f\frac{Y}{Z} \]

不過,我們獲得的是一個個的像素,還需要對成像平面進行採樣和量化。並將傳感器感受到的光線轉換成圖像像素。

像素座標

  • 像素座標系的定義方式通常爲原點\(o\prime\)位於圖像的左上角,u軸向右與x軸平行,v軸向下與y軸平行。
  • 像素座標系與成像平面之間,相差了一個縮放和一個原點的平移
    設像素座標在\(u\)軸上縮放了\(\alpha\)倍,在\(V\)軸上縮放了\(\beta\)倍。同時,原點平移了\([c_x,c_y]^T\)。則\(P^\prime\)的座標和像素座標\([u,v]^T\)的關係爲:

\[\begin{cases}u=\alpha X^\prime + c_x \\ v=\beta Y^\prime + c_y\end{cases} \]

將$X^\prime $ 和 $Y^\prime $ 代入,並把\(\alpha f\) 合併成\(f_x\),把$\beta f $ 合併成$ f_y$ ,得:

\[\begin{cases} u=f_x \frac{X}{Z} + c_x \\ v=f_y \frac{Y}{Z} + c_y \end{cases} \]

其中f的單位爲米,\(\alpha\)\(\beta\)的單位爲像素/米,所以\(f_x\)\(f_y\)\(c_x\)\(c_y\)的單位爲像素。
最終,可得:

\[Z \left(\begin{matrix} u\\ v\\ 1\\ \end{matrix} \right)=\left( \begin {matrix} f_x& 0 &c_x\\ 0 & f_y &c_y\\ 0&0&1 \end{matrix} \right) \left(\begin{matrix} X\\Y\\Z\end{matrix}\right) \stackrel{\mathrm{def}}{=}KP \]

其中K稱爲相機的內參數矩陣K ,並且通常認爲相機的內參在出廠後是固定的。可以通過標定的方法獲得。
在此式中,我們使用的是\(P\)在相機座標系下的座標,所以與世界座標系\(P_w\)的關係如下,其中相機的位姿由它的旋轉矩陣R和平移向量t來描述:

\[ZP_{uv}=Z \left[\begin{matrix} u\\v\\1 \end{matrix}\right]=K(RP_w+t)=KTP_w \]

相機的位姿R,t又稱爲相機的外參數。
投影過程還可以從另一個角度來看,我們可以把一個世界座標點先轉換到相機座標系,再除掉它最後一維的數值,即該點距離相機成像平面的深度。相當於將最後一維進行歸一化處理,得到點P在相機歸一化平面上的投影:

\[(RP_w+t)=\left[X,Y,Z\right]^T\rightarrow[X/Z,Y/Z,1]^T \]

這也代表着點的深度在投影過程中被丟失掉了

畸變模型

  • 將三維空間點投影在到歸一化圖像平面。設它的歸一化座標爲\([x,y]^T\)
  • 對歸一化平面上的點計算徑向畸變和切向畸變:

\[\begin{cases} x_{distorted}=x(1+k_1 r^2+k_2 r^4+k_3 r^6)+2p_1xy+p_2(r^2+2x^2)\\ y_{distorted}=y(1+k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2y^2)+2p_2xy \end{cases} \]

  • 將畸變後的點通過內參數矩陣投影到像素平面,得到該點在圖像上的正確位置

\[\begin{cases} x_{distorted}=f_xx_{distorted}+c_x\\ y_{distorted}=f_yy_{distorted}+c_y \end{cases} \]

總結單目相機成像過程

1.世界座標系下點\(P_w\)
2.相機的運動由\(R,t\)或變換矩陣\(T\)描述,\(P\)的相機座標\(P_{camera}=RP_w+t\)
3.這時的\(P_{camera}\)的分量爲X,Y,Z將他們投影到歸一化平面Z=1上,得到\(P\)的歸一化座標\(P_c=[X/Z,Y/Z,1]^T\)
4.有畸變時,根據畸變參數計算\(P_c\)發生畸變後的座標。
5.P的歸一化座標經過內參後,得到像素座標\(P_uv=KP_c\)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章