选自论文 Acquisition, compression and rendering of depth and texture for multi-view video(2009)里的第二章 Projective Geometry
投影几何
在欧几里得空间,一个点 表示为三维向量 (X, Y, Z)T ,称为非齐次坐标
在投影空间,相同的点描绘成四维向量 (X1, X2, X3, X4)T,称为齐次坐标
对应关系 X = X1 / X4, Y = X2 / X4, Z = X3 / X4
总之,n 维欧几里得空间的点 在投影空间中为 n + 1 维,λ 为缩放因子
相机内参
所有射线相交的点记为光心或相机中心,过光心的垂直于像平面的直线记为光轴,与像平面相交的是主点
光轴与Z轴共线,光心位于3d坐标的原点
3d世界的点 (X, Y, Z)T 在图像平面的像素位置 (u, v)T,f 为焦距
可以用投影几何的框架表示:
λ = Z 均与缩放因子 矩阵表示: (相机坐标相对3d世界坐标)
主点偏差
图像坐标、相机坐标系、3d世界坐标系
假设像素坐标系原点对应主点 (ox, oy)T,位于图像中心。(图像坐标相对3d世界坐标)
成像系统的缺陷
在实际中,像素纵横比往往由象感器厂商提供。其次,像素可能会发生倾斜,特别是在图像是由帧抓取器获取的情况下。在这种特殊情况下,像素网格可能由于像素取样过程的不准确同步而发生倾斜
在模型中把成像系统的缺陷考虑进去,使用参数 竖向偏移η 和 横向偏移τ
P = (X, Y, Z, 1)T 是3d世界坐标系的齐次坐标。相机内参记为 K
径向镜头扭曲
真实相机镜头通常会受到非线性镜头畸变的影响
( xu , yu )T 和 ( xd , yd )T 分别为 校正和测量的畸变像素位置
无畸变像素和畸变像素之间关系可以用多项式函数建模:
K1 = 0 时,就没有发生畸变,xu = xd yu = yd
为了生成无畸变图像,就需要函数L(rd)。但是 k1需要评估测量,所以使用逆投影的方法。逆映射技术包括扫描输出图像中的每个像素,并从输入图像中重采样和插值出正确的像素。
类似上面的公式,无畸变半径:
内积后:
畸变函数的多项式关系
可得逆透镜畸变函数:
rd 的解法:Cardano方法
定义 判别式 ∆ :
有三种情况,只有 ∆ > 0 时适合
畸变参数的估计 和 镜头畸变校正方法 需要镜头的参数 k1 和 (ox, oy)T 。畸变参数的估计可以通过最小化一个衡量畸变图像中线条曲率的代价函数来实现。为了测量这种曲率,一种实际的解决方案是在标定台上检测属于同一条直线的特征点,例如棋盘格标定图案。
畸变图像中属于同一条直线的每一个点都形成了一条弯曲的直线,而不是一条直线。通过比较弯折线与理论直线模型的偏差,可以计算出畸变参数。
相机外参
内参:焦距、镜像镜头参数
外参:外部位置、朝向角
相机的位置、朝向角由一个 3×1 向量 C 定义,经过 3 × 3 的旋转矩阵 R。为了获得像素位置 p = (x, y, 1)T,相机坐标转换到3d世界坐标,再旋转
合并:
2D点到3D的反投影
存在一组3D点,它们被映射并投影到同一个点 p 上。
这个3D点的集合构成了一条连接相机中心 C = ( Cx、Cy、Cz)T 和 p = ( x , y , 1)T 的射线
射线上的3d点集合 P (λ) 与 像素 p = ( x , y , 1)T 的关系:
λ 是定义射线上3D点位置的正比例因子
假设 Z 已知,通过计算 λ 可以获得坐标 X、Y
坐标系统转换
为了获得更高效的计算过程,需要对坐标系进行转换。
两种方法转换投影矩阵:一是改变图片坐标系;二是改变世界坐标系
改变图片坐标系
通常,像素坐标被定义为使得2D图像坐标系的原点位于图像的左上方。在这种情况下,x轴和y轴分别水平向右和垂直向下。然而,另一种常规是将图像坐标系的原点定位在左下方,y图像轴垂直向上指向。要对图像坐标系进行变换,需要对 y 像轴进行翻转,将原点沿 y 像轴平移。(矩阵B1)
此外,人们可以区分定义3D世界轴方向的两种可能的约定:可以采用左手或右手坐标系。左手到右手坐标系的转换可以通过翻转 Y 世界轴来实现(矩阵 B2)
h对应图像的高度
得到的转换投影矩阵在图像坐标系中使用(x和y轴分别水平指向右和垂直向下)表示法和在右手世界坐标系中进行定义。最后需要指出的是,图像坐标系的转换是通过修改内参数来实现的,而世界坐标系的转换是通过变换外参数来实现的。
改变世界坐标系
一个转换用于将深度图像重新指定到一个新的世界坐标系中。这个转换涉及到计算一个3D点在另一个相机坐标系中的位置,以及这个3D点在另一个像平面上的投影。世界坐标系的位置和方向的改变采用与上述方法类似的方式进行。世界坐标系的改变涉及到投影矩阵和三维点坐标的同时转换。
考虑一个三维世界点P 和 一个由带有内参K,外参R、C的投影矩阵定义的摄像机,坐标系转换可以分两步进行。首先,在一个新的世界坐标系中指定投影矩阵,其中只需要修改相机的位置和方向,即外参数。利用定义的新坐标系相对于原坐标系的位置 Cn 和方向 Rn,对外部参数进行转换。第二,指定三维点P在新坐标系中的位置
相机参数评估
我们考虑定义右手3D世界坐标系的平面棋盘格。摄像机标定过程的第一阶段是建立图像中的2D点和棋盘格上的3D点之间的对应关系,即所谓的点对应关系。在实际应用中,点对应的稳健提取可以通过利用棋盘格模式的拓扑结构来实现。
由于每个3D特征点属于板平面Z = 0,每个2d 点的投影在像平面上:
ri 对应于 旋转矩阵R 的第 i 列,t = −RC。K [ r1 r2 t ] 是 一个 3 × 3 矩阵,齐次变换 H 。
相机参数的计算需要估计齐次变换 H: