摄影测量与计算机视觉坐标系统转换和一些基本量的关系

本博客试图用一些最直观,形象,实例的方式解释相关概念

对于一个摄影测量学(photogrammetry)或者三维计算机视觉(3D computer vision)的学习者来说,第一个要接触的应该就是各种坐标系之间的转换,摄影测量领域有一套自己的坐标系统规则,计算机视觉也有一套自己的规则。下面就让我们看看到底它们之间是如何转换的?摄影测量中的旋转欧拉角构成的旋转矩阵 R (rotation),基线 (baseline) B 和计算机视觉中的旋转矩阵 (camera rotation) R ,平移向量 (camera translation) T ,相机位置 (camera position) C 之间到底是什么关系?

为了回答这些问题,首先我们给出两个非常直观的例子来理清楚三维空间中的旋转问题.
当谈及到空间中的旋转,我们需要特别注意两个问题:
(1)旋转的方向,即从 A 旋转到 B 还是从 B 旋转到 A
(2)旋转是顺时针 (clockwise) 还是逆时针 (counter-clockwise).
当然,它们都是相对的关系,顺时针从 AB 就是逆时针 从 BA 。好了,说的这么抽象,看一个简单的二维坐标系的例子:

假设 P 点的在 OXY 坐标系下的坐标是 (1,1),那么 P 点在 o1XY 坐标系下的坐标是多少呢?从图中我们可以直接看出是 (1,1)。但是从理论上是如何计算出来的呢?我们知道 P 点在 o1XY 下的坐标是将 oXY 坐标系逆时针旋转 π2 得到的,这里需要注意的是,在旋转坐标系的时候,P 点并没有变化,我们要得到的仅仅是 P 点在不同坐标系下的表示,那么如何用矩阵来表示这一过程呢?
这里,我们首先直接给出二维坐标系顺时针旋转 θ 的公式(这里就不做推导,有兴趣可以自己推导,也很简单)。

[cosθsinθsinθcosθ]

所以上述旋转过程用矩阵表示即为:
[0110]1[11]=[11]

因为是逆时针旋转与公式中的顺时针刚好相反,所以要用逆,用转置也可以,对于旋转矩阵有这样的性质,就是:RRT=I,所以旋转矩阵的逆和转置是一样的。
摄影测量与计算机视觉坐标系统转换和一些基本量的关系
上面给的是一个二维坐标下的旋转问题,当扩展到三维坐标,会稍稍复杂一些,会涉及到旋转轴的顺序。在这里统一使用欧拉角(Euler Angle)的表示方法,三维空间表示还有其他表示方法(如,四元数(Quaternion)和轴角(Axis-Angle)表示法),这里先不做讨论。这里统一按顺时针绕 X(ω)Y(ϕ)Z(κ) 的顺序(注意,这里的角是从相机坐标系旋转到坐标系的角)。这个一般是国外摄影测量采用的标准,而国内摄影测量的标准采用的为 Y(ϕ)X(ω)Z(κ),而且绕 Y 轴为逆时针,XZ 轴还是顺时针旋转。这篇文章中,均采用的是国际摄影测量标准。

如图,假设点 O1OXYZ 坐标系下的坐标为 (1,0,0),那么点 O1O1X1Y1Z1 下的坐标为多少呢?从图中可以看出是 (0,0,0),如果用矩阵的形式该如何表示呢?这里,我们也先给出三维坐标系下,绕旋转轴顺时针旋转的公式:

Rx(ω)=1000cosωsinω0sinωcosω

Ry(ϕ)=cosϕ0sinϕ010sinϕ0cosϕ

Rz(κ)=cosκsinκ0sinκcosκ0001

所以最终的旋转矩阵为:
R=Rz(κ)Ry(ϕ)Rx(ω)=r00r10r20r01r11r21r02r12r22

r00r01r02r10r11r12r20r21r22=cosϕcosκ=cosϕsinκ=sinϕ=cosωsinκ+sinωsinϕcosκ=cosωcosκsinωsinϕsinκ=sinωcosϕ=sinωsinκcosωsinϕcosκ=sinωcosκ+cosωsinϕcdotsinκ=cosωcosϕ

摄影测量与计算机视觉坐标系统转换和一些基本量的关系

摄影测量与计算机视觉坐标系统转换和一些基本量的关系

摄影测量与计算机视觉坐标系统转换和一些基本量的关系

摄影测量与计算机视觉坐标系统转换和一些基本量的关系

摄影测量与计算机视觉坐标系统转换和一些基本量的关系