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