射影矩阵
内参部分,图像平面到像素平面
在有
的情况下:
其他的参数还是那样的,此时:
外参部分,世界坐标系到像素坐标系
是相机坐标系的点,就是和内参相关的公式的右边的
是世界坐标系的点
此时:
关于
,是一个很重要的信息,而且是和
、
相关的,现在假定
是
的三行,那么:
是列啊,怎么能和P点乘,还是说这里不是矩阵运算,而是对位相乘? 的第三行
这里应该就是点乘的意思
外参相关公式也常写成下面这种形式,这种形式有利于求
:
再假定
是
矩阵的行,
是
向量的元素,此时
矩阵可以写成:
解决的问题
从场景的特定位置估计相机的内外参,通过校正可以让实际的位置和理论上的位置之间的误差最小化。
假设
是一直的齐次坐标向量
的基准点,位置是
。
在没有建模和测量误差的情况下,校正就相当于寻找一个内外参的参数
:
表示射影矩阵
的
行,
:
一般,测量出来的值的数量要大于未知数的数量(比如11个参数需要6个点,但是现实中采集的数据一般都是有噪声的,所以会使用很多点),上面的式子解不出精确的结果,还是要看最小二乘法的解。
校准装置也就是个坐标系,通过对这个坐标系中的点进行投影,得到图像点的信息,就能看出校准程度,也能用来校准
线性方法
校准问题分为两步:
- 与摄像机相关的透视投影矩阵 的计算
- 利用该矩阵估计相机的内外参数
里面不是已经包含内外参了吗?
估计投影矩阵
首先假定是nonzero skew,投影矩阵 不是奇异的,而是任意的
只有行数和列数相同才有奇异非奇异概念,显然 是 矩阵
奇异矩阵就是不可逆矩阵
对 公式 1 做去分母操作,然后移项让右边为0 ( 省略没写):
其中的
就是像素平民啊这两个式子包含了
的所有参数,然后联立所有的
个基准点,就能得到
个等式,约束所有的等式,得到方程:
如上所说,11个参数,至少要12个信息,就是
。
解法:
齐次线性最小二乘可以用最小化
来计算单位向量m的值,其中
服从于
,求出来的值
矩阵
的和最小的特征值相关的特征向量
最小二乘计算的条件就是等式和误差值,这两个都有了
也可以用上节课学到的方法,直接计算P的SVD,其中V的列,也就是 的行就是 的特征向量, 的最小一列就是最小特征值对应的解,就是想要的
但是这个 是有比例因子在其中的,就是下文的
Degenerate Point Configurations
这块没看懂,就是说这个方法有失效的时候,比如说所有的点都在一个平面的时候,就无法求解
估计内外参
现在把估计出来的 写成 ,用 来表示 的行。
就跟第一节课的约束一样,将 拆分开,其中 部分与 相关,与 无关。
不过为什么约束只拿 做文章呢?
这里的
是一个未知的比例因子,复原出来的单位矩阵
具有 unit Frobeius 形式:
这个约束有什么用呢?
利用旋转矩阵的每一行都有单位长度并且互相垂直,可以得出:
其中
这里, 是旋转矩阵的行,而 是未经缩放的 的 的行,由 公式 3 得出的,这里应该是为了让 满足上面那个约束把,所以才需要一个缩放。
答:不是为了满足约束,而是本来就存在一个缩放因子
所以之前求出来的 ,就是未缩放的,也就是生成 的 ,所以 才是我们需要求的
而 只是单位向量,能表示某一轴的旋转即可
之后, 的大小是 附近,这个数值范围内的 是正的,用如下公式可得 :
并没有手动算,应该就是利用了不同的 之间相互垂直的属性,简化成了右式
剩下的
求法公式:
位移
可以由公式
得出:
由于之前使用的
有两个解,所以求出的
的解也有两个,这时候,一般
的正负是已知的,这样就能锁定一个解
的正负就是物体在摄像头的前面或后面,一般都是已知的
至此,相机的内外参数就已经全部求出来了