【视觉SLAM十四讲】4个坐标系变换总结

本文为视觉 SLAM 学习总结,总结 4 个坐标系变换的关系。

在视觉 SLAM 中,我们引入了 4 个坐标系,通过不同坐标系观测到同一个点会得到不同的坐标位置,并且存在一定的关系。

  • 世界坐标系 P W ( m ) P_W(m) ( x w , y w , z w ) (x_w,y_w,z_w) 。一般取相机的初始位置或特殊位置。
  • 相机坐标系 P C ( m ) P_C(m) ( x c , y c , z c ) (x_c,y_c,z_c) 。以相机光心为原点,见下图
  • 图像坐标系 P ( m m ) P(mm) ( x , y ) (x,y) 。在物理成像平面上,以成像平面中心为原点
  • 像素坐标系 p p (pixel): ( u , v ) (u,v) 。在成像平面上,以成像平面左上角为原点

在这里插入图片描述

我们有 4 个不同的坐标系,则坐标系之间就需要 3 个变换,我们接下来一一进行讲解:

世界坐标系到相机坐标系( P W P C P_W\to P_C

世界坐标系与相机坐标系之间仅相差一个旋转和一个平移,我们将图像中的坐标系旋转到与世界坐标系相同的方向,再将两个原点通过平移重合到一起即可完成变换。详细过程见【三维空间刚体运动】。

在这里插入图片描述

相机坐标系到图像坐标系( P C P P_C\to P

这部分的原理为小孔成像。

在这里插入图片描述

在相机坐标系中是三维坐标,投影到成像平面变为二维坐标,丢失的一个维度为焦距。其变换关系为:
z c f = x c x = y c y \frac{z_c}{f}=\frac{x_c}{x}=\frac{y_c}{y}

图像坐标系到像素坐标系( P p P\to p

在这里插入图片描述

像素坐标系与图像坐标系的原点相差一个平移,但是两个坐标系的单位不同,还需要一个比例缩放。变换关系为:
u = α x + c x u=\alpha x+c_x

v = β y + c y v=\beta y+c_y

然后我们就可以将这三个变换联立

相机坐标系到像素坐标系

首先从图像坐标系和相机坐标系间的变换关系中解出 x , y x,y ,然后代入图像坐标系到像素坐标系的变换:
u = α f x c z c + c x u=\alpha f\frac{x_c}{z_c}+c_x

v = β f y c z c + c y v=\beta f\frac{y_c}{z_c}+c_y

写成矩阵形式:
( u v 1 ) = 1 z c ( f x 0 c x 0 f y c y 0 0 1 ) ( x c y c z c ) = 1 z c K P C = p \left( \begin{matrix} u \\ v\\ 1 \end{matrix} \right)=\frac{1}{z_c}\left( \begin{matrix} f_x & 0 & c_x\\ 0 & f_y & c_y\\ 0 & 0& 1 \end{matrix} \right)\left( \begin{matrix} x_c \\ y_c\\ z_c \end{matrix} \right)=\frac{1}{z_c}KP_C=p
当然齐次坐标中的 z c z_c 可以省略,省略后可以表示为 p = K P C p=KP_C

世界坐标系到像素坐标系

这一步更加简单,只需要将 P C P_C 替换即可:
p = ( u v 1 ) = 1 z c ( f x 0 c x 0 f y c y 0 0 1 ) ( x c y c z c ) = 1 z c K T P W p=\left( \begin{matrix} u \\ v\\ 1 \end{matrix} \right)=\frac{1}{z_c}\left( \begin{matrix} f_x & 0 & c_x\\ 0 & f_y & c_y\\ 0 & 0& 1 \end{matrix} \right)\left( \begin{matrix} x_c \\ y_c\\ z_c \end{matrix} \right)=\frac{1}{z_c}KTP_W

猜你喜欢

转载自blog.csdn.net/weixin_44413191/article/details/107702406
今日推荐