1. 针孔模型&透镜摄像机标定问题
1.1 摄像机标定
(1)标定目标
摄像机标定:求解摄像机内、外参数矩阵 K [R T];
因为摄像机内外参数矩阵描述了三维世界到二维像素的映射关系;
后面:
世界坐标系下的点用P来表示,不用Pw
像素坐标系下的点用p来表示,不用P'
(2)标定装置
在标定问题上首先明确一个物体有多个点构成,实物的坐标和像的坐标都是已知的,即世界坐标系的位置已知,图像中的
位置已知,目标是去计算摄像机的内外参数。
可以定义投影矩阵M为一个3×4的矩阵,m是1×4的矩阵,即
Pi是4×1维的,那么像素坐标系的一个点就可以定义为(欧式空间,除以第三维):
1.2 投影矩阵M求解
(1)标定方程
此时摄像机投影矩阵有11个自由度(未知量),但是应该有12个未知量,第12个未知量是由前11个未知量线性变换而来。由于每一个点在像素坐标系下为二维的两个值,那么对于11个未知量来说最少需要12个方程来进行求解(由于像素坐标系下点的两个横纵坐标成对出现),那么就需要六对点来对应,但实际应用中一定是使用多于六对点来对应,通过最小二乘法消掉一部分错误的噪声点对,获得更好的鲁棒性效果。(超定问题)
下面公式就是将任意一个像素坐标系上的点,通过等式变换得到一个齐次线性方程,而多个点对又构成了齐次线性方程组。
大多数情况下,生成的齐次线性方程数是远大于11的,方程数大于未知参数,齐次线性方程组为一个超定方程组,所以可以用齐次线性方程组的最小二乘法求解方法来求解同样的问题。
- 一对点贡献两个表达式
- 摄像机内外参数共同构成了投影矩阵,投影矩阵共有11个未知量;
- 每对点可以列出两个方程,因此,最少需要6对对应点;
- 实际操作中通常使用多于6对点来获得更加鲁棒的结果;
- 方程个数2n个,且n>6;
- 未知参数11个;
- 这是一个超定齐次线性方程组;方程个数多于未知量个数
(2)投影矩阵M求解
超定齐次方程解求解:奇异值分解
求解之后的M矩阵还不准确,差系数
1.3 提取摄像机内参数
投影矩阵M用11个未知量展开表示,其中替代原来的
,对于零倾斜情况,
,对于像素宽高比为1时,则
。
对于旋转矩阵R来说,r1、r2、r3是列向量,互不相关,每个向量模为1,点乘为0
eg: r1·r2=0(两两向量夹角
=90度,垂直),r1×r1=0
r1×r2=r3(右手定则,垂直于r1r2组成的平面),r1×r1=1
其中满足叉乘关系:
满足点乘关系:
PS:一个向量的模=(向量的转置×自己)开根号
对于下面的投影矩阵展开,左一列为3*3的矩阵,右一列为3*1的向量,投影矩阵为一个3*4的矩阵,由于通过齐次线性方程组的最小二乘法求解内外参数,而导致真正的投影矩阵和求的投影矩阵之间存在一个比例系数ρ的关系,所以,括号里的为真实的投影矩阵,M为求解得到的投影矩阵。
通过对投影矩阵齐次线性方程组我们已经求出A和b,[A b]就是求解得到的M,也就是说对于下面的式子,a和b是已知的,所以我们要像求出内参K和外参[R T],就必须要知道比例系数ρ和A,b之间有什么关系。
(1)提取ρ,u0,v0
通过旋转矩阵满足的点乘关系,从上式第三行可得:
(2)提取θ
通过旋转矩阵的叉乘关系,可以得到下面式子成立:
得到:
上面式子左边上下点乘,右边上下式子点乘:
得到:
此时可以令θ=90°,cosθ为0,满足零倾斜透视情况,那么分子
为0,那么满足Faugeras定理中的第二条零倾斜透视矩阵性质。
(3)提取α,β
之前(2)中推导过:
得到:
令α=β那么一定满足α的平方等于β的平方,即
,且令θ=90°满足零倾斜透视情况,即
,此时满足Faugeras定理中的第三条零倾斜且宽高比为1的透视矩阵性质。
1.4 提取摄像机外参数
(1)提取r3
(2)提取r1
借用叉乘的性质
(3)提取r2
3个旋转变量:
(4)提取T
1.5 摄像机标定结果
结果的内外参数都可以用a,b来表示。
知道三维点就能知道对应的二维坐标。
2. 径向畸变摄像机标定
2.1 径向畸变摄像机模型
径向畸变会导致图像放大率随着距离光轴距离增加而减小,换句话说,距离摄像机中心近的影响小,距离摄像机中心远的畸变影响大。
所以定义一个λ,满足和摄像机中心d之间的多项式关系,对原来像素坐标系和世界坐标系的映射关系间添加一个矩阵,注意z轴方向是没有变化的,z轴垂直于像素坐标系平面。
λ与点到中心点的距离有关
Q:畸变后的投影矩阵
Q里面除了包含由3D点Pi和2D图像点pi构成的已知数外,还包含未知数λ,所以Q不是线性方程组;
2.2 径向畸变投影矩阵求解
对于标定问题可以转换成非线性问题的最小二乘法问题,此时应该有14个未知量,11个投影矩阵未知量,以及3个畸变因子用于计算λ。
由于从初始解开始迭代的话,若初始解与实际相距较远,可能收敛会很慢。
因此,可以求解系统的线性部分,以找到近似解;适用该解作为整个系统的初始条件
通过比值消掉未知数λ,变成线性,奇异值分解进行求解。
m1是4×1维向量, m2是4×1维向量
3. 2D平面变换
3.1 2D欧式变换
欧式变换下,图形的形状大小不发生变换,包括平移变换,旋转变换,反射变换(镜像变换,中心对称变换,一说为不属于欧式变换),在这里我们只介绍旋转变换和镜像变换+平移变换。(写成齐次表达方式)
在下图中的保向变换和逆向变换对应的就是旋转变换和镜像变换+平移变换的结果。对于2D平面的欧式变换而言自由度为3。
欧式变换是相似变换的特例
PS:
3.2 2D相似变换
均匀伸缩变化如下:
相似变换由缩放变换和欧式变换合成:
相似变换就在欧式变换基础上添加了一个缩放因子s,使得大小会有所变换,形状不变,保持相似性。 自由度:4
相似变换是仿射变换的特例
3.3 2D仿射变换
仿射变换中形状和大小已经完全变化,但是不同形状之间平行性,面积比值,平行线段长度比值仍然不变。 自由度:6
特点:平行性保持,角度没保持
3.4 2D透视变换
透视变换只保留了直线是直线,点是点。 自由度:8
特点:平行线延长后会相交(视网膜成像过程)
4. 3D空间变换
4.1 3D欧式变换
3D平面欧式变换的变换矩阵有三个,分别对于三个不同的角度进行变换,保持形状大小不发生变换,此时下图中的比例因子s恒为1。
自由度:7
R是xyz三个方向的旋转矩阵相乘的结果
PS:
4.2 3D仿射变换
仿射变换保留线与线,线与面,面与面平行性不变,角度不保持。 自由度:12
4.3 透视变换
透视变换只保留了点到点,线到线的透视关系,保持点的共线共面性,线的共面性,也不保持平行性。 自由度:15