[读书笔记]Self-calibration - 2
使用绝对二次曲面来定标
绝对二次曲面是一个退化的对偶二次曲面,使用秩为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个解。
非线性求解![clip_image002_thumb[7] clip_image002_thumb[7]](https://images.cnblogs.com/cnblogs_com/luluathena/Windows-Live-Writer/Self-calibration-2_B993/clip_image002_thumb%5B7%5D_thumb.png)
根据上篇日志的公式(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因式分解得到标定矩阵。如果得到的数据有很多噪声,则预示着数据在度量重建中不一致。在这样的情况下,要寻找最接近的正定解是不合适的,这样一般会得到一个假的定标。
本文原创,转载请注明出处