相机坐标系映射到机器人坐标系 python_归一化


一、坐标系简介

1、世界坐标系:三维世界中定义的坐标系,用(X, Y, Z)表示其坐标值。

2、相机坐标系:以相机的光心为坐标原点,通常情况下定义Z轴指向相机前方,X轴指向相机平面向右,Y轴向上,满足右手法则。其坐标值表示为(x, y, z)。

3、相机归一化坐标系:该坐标系没有实际的物理意义,与相机坐标系只差一个尺度缩放因子。

4、图像坐标系:以相机光心在图像平面的投影点为坐标原点,X轴和Y轴方向与相机坐标系方向一致,用(u,v)表示其坐标值。

5、像素坐标系:以图像平面的左上角顶点为原点,u轴(X轴)向右与x轴平行,v轴(Y轴)向下与y轴平行。像素坐标系与图像坐标系之间差了一个缩放和原点的平移。

(注:上图中的图像坐标系与此处第五条像素坐标系相对应)

二、各坐标系之间的变换关系

如下图所示,O-x-y-z为相机坐标系,O’-x’-y’-z’为图像坐标系。点P是空间中一点,在成像平面上的投影点是P’。

相机坐标系映射到机器人坐标系 python_缩放_02


设P在相机坐标系下的坐标是 [X,Y,Z]T,P’在图像坐标系的坐标是 [X′,Y′,Z′]T,在像素坐标系下的坐标是 (u,v)。且成像平面到光心的焦距f已知。以此推导相机坐标系与像素坐标系之间的关系。首先由三角形相似原理可以得到各坐标的绝对值之间有如下等式。

相机坐标系映射到机器人坐标系 python_归一化_03


相机坐标系映射到机器人坐标系 python_图像平面_04


这便是相机坐标系与图像坐标系之间的关系。之前说了,像素坐标系与图像坐标系之间差了一个缩放和平移,因此假设其在u轴(X轴)上缩放了α倍,平移了cx;v(Y轴)上缩放了β倍,平移了cy。因此可以自然的写出下面的公式。

相机坐标系映射到机器人坐标系 python_缩放_05


再将上面的两个公式合并,得到如下结果。即P点相机坐标与像素坐标的关系。

相机坐标系映射到机器人坐标系 python_归一化_06


这里可以取

相机坐标系映射到机器人坐标系 python_图像平面_07


于是

相机坐标系映射到机器人坐标系 python_缩放_08


可以将这个式子写成矩阵的形式

相机坐标系映射到机器人坐标系 python_图像平面_09


这里的变换用到了齐次坐标,多了一个1=1的恒等式,能看懂就行。中间的3×3矩阵便是相机的内参矩阵K。所以更简单的形式如下。

相机坐标系映射到机器人坐标系 python_归一化_10


更多时候我们可能已知的是相机内参和像素坐标求解该点在相机坐标系下的坐标,因此稍作变换即可。

相机坐标系映射到机器人坐标系 python_缩放_11


这里还有最后一个问题,就是Z我是不知道的,但是在等式右边出现了,因此需要移到左边来,左右两边同时乘以1/Z。

相机坐标系映射到机器人坐标系 python_归一化_12


这样便可以计算了。只是需要注意的是,这里的Z被归一化了,同时X、Y坐标也不再是真实的坐标了,和真实坐标相比都差了Z倍。但是它们彼此的比例关系还是没变的。三、对极几何

相机坐标系映射到机器人坐标系 python_缩放_13


相机坐标系映射到机器人坐标系 python_缩放_14


相机坐标系映射到机器人坐标系 python_图像平面_15


相机坐标系映射到机器人坐标系 python_归一化_16


相机坐标系映射到机器人坐标系 python_缩放_17



该博客内容写得非常详细,非常感谢该博主的精心总结!!!