绝对二次曲面是一个退化的对偶二次曲面,使用秩为3的4*4齐次矩阵表示。重要的一点是它用一种简洁的方式包含了和,是的零向量,我们可以得到一个简单的图像投影的公式(Muitiple View Geometry P201,(对偶)二次曲面的投影):
我们通过已知的镜头矩阵Pi来将的约束转换成为的约束。根据Ki的约束我们就可以在投影重建中得到表示的矩阵。一旦得到了,单应性矩阵H就会被求出来。我们的基本框架就是,指定Ki的约束来得到,然后从得到H。
描述:
给定几个视点下匹配的一些点,和标定矩阵Ki的约束。计算这些点和镜头的度量重建。
算法:
计算视点集合的投影重建,得到镜头矩阵Pi和点Xj。 从Ki得到的约束,使用公式(1)求得。 将分解为格式,其中是对角矩阵(1,1,1,0)。 对点施加H-1,对镜头施加H,获得度量重建。 使用迭代的最小二乘最小化来改进结果。 或者可以直接计算每个镜头的标定矩阵:
对每个i,使用公式(1)计算i; 使用Cholesky分解,从等式中计算标定矩阵Ki。
书上的定理19.3看不清楚,扫描版的。= =主要介绍了绝对二次曲面的性质,然后引出下面的论点,如何从一个给定的得到H。
定理19.4: 如果可以分解为格式,则H-1是一个3D的单应,将投影坐标系转化为欧式坐标系。而H就是我们要求得的矩阵。可以通过p580雅克比算法来进行特征值分解求得。
指定线性约束:如果已知主点(principal point),可能会得到的约束。假设点已知,就可以转换图像坐标系统使原点与主点一致。然后根据x0=0,y0=0,以及DIAC的矩阵(p464表1)可以得到DIAC:
根据矩阵中的零元和公式(1)可以得到的线性约束。例如这两个等式:
如果对Ki有额外的约束作用于的元,则会提供更多的线性约束。例如,如果假设偏斜是0,则公式(2)中的(1,2)元可以消去。知道宽高比,又能得到一个线性约束。P465中表格2有列出一些线性约束。
线性解:是对称的,可以根据10个齐次参数线性地参数化,也就是对角加上三角的10个元。它们可以用一个长度为10的向量x表示。一般的线性方程用Ax=0的方式表示,然后通过SVD进行最小二乘求得x。
例如,等式(3)为每个视图提供了矩阵的2行。从5幅图像中我们可以得到10个方程(假设主点已知),就可以得到一个线性解。4幅图像可以生成8个方程。通过7个点计算基础矩阵有一个2参数的相似的方法。的行列式等于0提供了一个4-degree的方程,所以有了的4个解。
根据上篇日志的公式(1),可以得到一些非线性方程。已知的每个元都可以表示为一个带有的参数的线性表达,说明在的元之间的关系可以转换为与的元有关的方程。的元之间线性或者二次的关系会分别生成的元之间线性或者二次的关系。给出足够多的方程就会求出。
不变的内部参数:如果所有镜头的内部参数都一样,则对所有的i和j,有,推导出。但由于有齐次量,等式只能得到一个不可知的比例系数。下面是生成的5个等式的集合:
假设0偏差的标定:在这样的前提下,DIAC的格式被简化了,P464的表格有给出,于是我们可以得到下面的约束:
这是一个二次方程。对于m个视图,我们可以得到m个二次方程,加上det()=0,就可以从8个视点求得的10个齐次线性参数。
迭代方法(略)
要计算标定需要的参数数量是8个。这等价于绝对二次曲面的基本参数,包括模糊范围和秩为3的约束。考虑m个视点,假设在这些视点下,k个内部参数已知,f个参数未知但不变(k+f<=5)。一个固定且已知的标定参数可以为每个视图提供一个参数,于是我们得到mk个约束。一个固定且未知的标定参数提供的约束少一些,因为未知参数的值是缺失的。因此f提供了f(m-1)个约束,于是有
mk + (m-1)f >= 8
P469给出不同的约束组合需要的m的值。
最小二乘代数求解的缺陷。由于最小二乘法仅仅最小化而不是加强了约束,得到的解并不能准确地满足要求的情况。有时通过计算得到的绝对二次曲面不是秩为3的。通过在特征值分解中设置最小的特征值是0,可以得到秩为3的矩阵。然后可以直接分解得到单应矩阵,或者作为迭代方法的初始值。
正定的情况。这个方法最大的问题在于很难使得是正半定的。这要求是正定的。如果不是,则不可以根据cholesky因式分解得到标定矩阵。如果得到的数据有很多噪声,则预示着数据在度量重建中不一致。在这样的情况下,要寻找最接近的正定解是不合适的,这样一般会得到一个假的定标。
本文原创,转载请注明出处