计算机视觉中,常用的有三个坐标系:图像坐标系、相机坐标系和世界坐标系。
它们之间的关系,可以通过三个变换来表示:仿射变换,投影变换,刚体变换,这三个变换是三维重构几何框架的基础。
通过这三个变换,可将三维空间中的点坐标 (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,则在忽略相机成像畸变的情况下,像素坐标和物理尺寸坐标的转换关系如下:
$egin{cases} u = dfrac{x}{d_{x}} + u_{0} \ v = dfrac{y}{d_{y}} + v_{0} end{cases} $
两者的齐次坐标转换关系为:
$egin{bmatrix} u \ v \ 1 end{bmatrix} = egin{bmatrix} dfrac{1}{d_{x}} & 0 & u_{0} \ 0 & dfrac{1}{d_{y}} & v_{0} \ 0 & 0 & 1 end{bmatrix} egin{bmatrix} x\ y \ 1 end{bmatrix} $
这样,就建立了图像中,像素坐标和物理尺寸坐标之间的对应关系。
2 相机坐标系
相机坐标系 $(Xc, Yc, Zc)$中,原点 为相机透镜的中心,坐标轴 Xc 轴与 x 轴平行,Yc 轴与 y 轴平行,Zc 轴与相机光轴重合
2.1 小孔成像
相机是三维物体和所成二维图像之间的一种映射,常用的小孔成像模型,如下图所示:
2.2 投影变换
设相机的焦距为 f,则根据小孔成像模型,可知相机坐标系下空间点 $(Xc, Yc, Zc)$,与物理尺寸坐标 $(x, y)$ 的关系如下:
$egin{cases} dfrac{x}{f} = dfrac{X_{c}}{Z_{c}} \ dfrac{y}{f} = dfrac{Y_{c}}{Z_{c}} end{cases} $ => $egin{cases} Z_{c} cdot x = f cdot {X_{c}} \ Z_{c} cdot y = f cdot {Y_{c}} end{cases} $ => $ Z_{c} egin{bmatrix} x \ y \ 1 end{bmatrix} = egin{bmatrix} f & 0 & 0 & 0 \ 0 & f & 0 & 0 \ 0 & 0 & 1 & 0 end{bmatrix} egin{bmatrix} X_{c} \ Y_{c} \ Z_{c} \ 1 end{bmatrix} $
像素坐标 $(u, v)$ 与相机坐标点 $(Xc, Yc, Zc)$ 的关系为:
$ Z_{c} egin{bmatrix} u \ v \ 1 end{bmatrix} = egin{bmatrix} dfrac{1}{d_{x}} & 0 & u_{0} \ 0 & dfrac{1}{d_{y}} & v_{0} \ 0 & 0 & 1 end{bmatrix} egin{bmatrix} f & 0 & 0 & 0 \ 0 & f & 0 & 0 \ 0 & 0 & 1 & 0 end{bmatrix} egin{bmatrix} X_{c} \ Y_{c} \ Z_{c} \ 1 end{bmatrix} = egin{bmatrix} dfrac{f}{d_{x}} & 0 & u_{0} & 0 \ 0 & dfrac{f}{d_{y}} & v_{0} & 0 \ 0 & 0 & 1 & 0 end{bmatrix} egin{bmatrix} X_{c} \ Y_{c} \ Z_{c} \ 1 end{bmatrix}$
3 世界坐标系
世界坐标系,是实际物体位置的参考系,它和 相机坐标系 的转换关系,就是一个刚体变换,具体见 立体视觉 之 刚体变换
$ egin{bmatrix} X_{c} \ Y_{c} \ Z_{c} end{bmatrix} = egin{bmatrix} R & T end{bmatrix} egin{bmatrix} X_{w} \ Y_{w} \ Z_{w} end{bmatrix}$
这样,就建立了图像中的 像素点 (u, v) 和 世界坐标中的 空间点 (Xw, Yw, Zw) 之间的对应关系。
世界坐标系,可根据运算的方便,来自由放置。若世界坐标系和相机坐标系重合,则 $R$ 为单位矩阵,$T$ 为零矩阵,即:
$ egin{bmatrix} X_{c} \ Y_{c} \ Z_{c} end{bmatrix} = egin{bmatrix} 1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & 1 & 0 end{bmatrix} egin{bmatrix} X_{w} \ Y_{w} \ Z_{w} end{bmatrix}=egin{bmatrix} X_{w} \ Y_{w} \ Z_{w} end{bmatrix}$
小结
这样,像素点 (u, v), 通过相机内参 A,转换为相机坐标下的 (Xc, Yc, Zc),再经过 $RT$ 变换,便可得到世界坐标下的 (Xw, Yw, Zw)
$ Z_{c} egin{bmatrix} u \ v \ 1 end{bmatrix} = egin{bmatrix} dfrac{f}{d_{x}} & 0 & u_{0} & 0 \ 0 & dfrac{f}{d_{y}} & v_{0} & 0 \ 0 & 0 & 1 & 0 end{bmatrix} egin{bmatrix} R & T \ 0^{T} & 1 end{bmatrix} egin{bmatrix} X_{w} \ Y_{w} \ Z_{w} \ 1 end{bmatrix}$
后记
两个问题:第一,上式 $Z_{c}$ 未知,也即投影变换的缩放比例不确定;第二,一个像素坐标点 (u,v),虽能转化为空间点坐标 (Xw, Yw, Zw),但并没有 成像物体的特征点 与其对应
针对上述问题,有三个解决思路:一是放置 比例尺,另一个是 双目视觉,最后是 结构光
参考资料
<视觉测量> 张广军,第2章,第 7章