机器视觉中,有三个常用的坐标系:图像坐标系、相机坐标系和世界坐标系。它们之间的转换关系,是三维重构几何框架的基础。
本文主要介绍,这三个坐标系的定义和转换关系,最后,通过这些转换关系,将三维空间中的点坐标 (Xw, Yw, Zw),与二维图像中的像素坐标 (u, v) 对应起来。
1 图像坐标系
图像坐标系,是以二维图像为基准所建立的坐标系。根据单位的不同,可分为 像素坐标 (单位 = 像素个数) 和 物理尺寸坐标 (单位 = mm)
1.1 分类
像素坐标 (u, v) 中,原点 为图像左上角点,坐标轴 为 u 轴 和 v 轴,表示物体所在的行数和列数
物理尺寸坐标 (x, y) 中,原点 为图像的主点,也即光轴与像平面的交点,坐标轴 为 x 轴 (平行 u 轴) 和 y 轴 (平行 v 轴),表示物体的尺寸大小
1.2 转换关系
假设每一个像素,在 x 轴和 y 轴 方向上的物理尺寸为 dx 和 dy,则在忽略相机成像畸变的情况下,像素坐标和物理尺寸坐标的转换关系如下:
$\begin{cases} u = \dfrac{x}{d_{x}} + u_{0} \\ v = \dfrac{y}{d_{y}} + v_{0} \end{cases} $
两者的齐次坐标转换关系为:
$\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{1}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{1}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y \\ 1 \end{bmatrix} $
2 相机坐标系
相机坐标系 $(Xc, Yc, Zc)$中,原点 为相机透镜的中心,坐标轴 Xc 轴与 x 轴平行,Yc 轴与 y 轴平行,Zc 轴与相机光轴重合
设相机的焦距为 f,则根据小孔成像模型,可知相机坐标系下空间点 $(Xc, Yc, Zc)$,与物理尺寸坐标 $(x, y)$ 的关系如下:
$\begin{cases} \dfrac{x}{f} = \dfrac{X_{c}}{Z_{c}} \\ \dfrac{y}{f} = \dfrac{Y_{c}}{Z_{c}} \end{cases} $ => $\begin{cases} Z_{c} \cdot x = f \cdot {X_{c}} \\ Z_{c} \cdot y = f \cdot {Y_{c}} \end{cases} $ => $ Z_{c} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix} $
像素坐标 $(u, v)$ 与相机坐标点 $(Xc, Yc, Zc)$ 的关系为:
$ Z_{c} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{1}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{1}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{f}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{f}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix}$
3 世界坐标系
世界坐标系,是实际物体位置的参考系,从 世界坐标系 转换为 相机坐标系 的过程,可视为刚体变换,具体见 机器视觉 之 刚体变换
$ \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \\ 1 \end{bmatrix} = \begin{bmatrix} R & T \\ 0^{T} & 1 \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \\ 1 \end{bmatrix}$
这样,就建立了图像中的 像素点 (u, v) 和 世界坐标中的 空间点 (Xw, Yw, Zw) 之间的对应关系。
世界坐标系,可根据运算的方便*放置。若世界坐标系和相机坐标系重合,则 $R$ 为单位矩阵,$T$ 为零矩阵,即:
$ \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \end{bmatrix}$
4 后记
表面上看,像素点 (u, v), 通过相机内参 A,转换为相机坐标下的 (Xc, Yc, Zc),再经过 $RT$ 变换,便可得到世界坐标下的 (Xw, Yw, Zw)
$ Z_{c} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \dfrac{f}{d_{x}} & 0 & u_{0} \\ 0 & \dfrac{f}{d_{y}} & v_{0} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} R & T \\ 0^{T} & 1 \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \\ 1 \end{bmatrix}$
实际上,这还留有两个问题: 一是,决定远近的 Zc 未知; 二是,成像物体的特征未知。
工程中,解决这两个问题的一个方法是:加光学投射器,组成结构光。
光学投射器,投射出具有固定特征的光模式 (例如光线、光平面、光栅或光网格等);当打在物体表面上,可对物体在空间的位置进行约束;
之后,再经过上述的坐标变换,便可得到物体对应点的唯一坐标值。
参考资料
<视觉测量> 张广军,第2章,第 7章