[读书笔记]Self-calibration - 2

使用绝对二次曲面来定标

绝对二次曲面clip_image002是一个退化的对偶二次曲面,使用秩为3的4*4齐次矩阵表示。重要的一点是它用一种简洁的方式包含了clip_image002[4]clip_image002[6]clip_image002[4]clip_image002的零向量,我们可以得到一个简单的图像投影的公式(Muitiple View Geometry P201,(对偶)二次曲面的投影):

clip_image002[12]                                                  (1)

也就是说,clip_image002投影到绝对二次曲线clip_image002[14]的双像。

我们通过已知的镜头矩阵Pi来将clip_image002[22]的约束转换成为clip_image002的约束。根据Ki的约束我们就可以在投影重建中得到表示clip_image002的矩阵。一旦得到了clip_image002,单应性矩阵H就会被求出来。我们的基本框架就是,指定Ki的约束来得到clip_image002,然后从clip_image002得到H。

描述:

给定几个视点下匹配的一些点,和标定矩阵Ki的约束。计算这些点和镜头的度量重建。

算法:

  • 计算视点集合的投影重建,得到镜头矩阵Pi和点Xj
  • Ki得到clip_image00222的约束,使用公式(1)求得clip_image002
  • clip_image002分解为clip_image002[16]格式,其中clip_image002[14]是对角矩阵(1,1,1,0)。
  • 对点施加H-1对镜头施加H获得度量重建
  • 使用迭代的最小二乘最小化来改进结果

    或者可以直接计算每个镜头的标定矩阵:

  • 对每个i使用公式(1)计算clip_image00222i
  • 使用Cholesky分解,从等式中计算标定矩阵Ki
  • 书上的定理19.3看不清楚,扫描版的。= =主要介绍了绝对二次曲面的性质,然后引出下面的论点,如何从一个给定的clip_image002得到H。

    定理19.4: 如果clip_image002可以分解为clip_image002[16]格式,则H-1是一个3D的单应,将投影坐标系转化为欧式坐标系。而H就是我们要求得的矩阵。可以通过p580雅克比算法来进行特征值分解求得。

    从图像集合中求取clip_image002的线性解

    之前有提到过,如果不需要求得度量重建,可以直接从约束计算clip_image002

    指定clip_image002线性约束:如果已知主点(principal point),可能会得到clip_image002的约束。假设点已知,就可以转换图像坐标系统使原点与主点一致。然后根据x0=0,y0=0,以及DIAC的矩阵(p464表1)可以得到DIAC:

    clip_image002[37]                              (2)

    根据矩阵中的零元和公式(1)可以得到clip_image002的线性约束。例如这两个等式:

    clip_image002[42]clip_image002[44]                 (3)

    如果对Ki有额外的约束作用于clip_image00222的元,则会提供更多的线性约束。例如,如果假设偏斜是0,则公式(2)中的(1,2)元可以消去。知道宽高比,又能得到一个线性约束。P465中表格2有列出一些线性约束。

    线性解:clip_image002是对称的,可以根据10个齐次参数线性地参数化,也就是对角加上三角的10个元。它们可以用一个长度为10的向量x表示。一般clip_image002的线性方程用Ax=0的方式表示,然后通过SVD进行最小二乘求得x

    例如,等式(3)为每个视图提供了矩阵的2行。从5幅图像中我们可以得到10个方程(假设主点已知),就可以得到一个线性解。4幅图像可以生成8个方程。通过7个点计算基础矩阵有一个2参数的相似的方法。clip_image002的行列式等于0提供了一个4-degree的方程,所以有了clip_image002的4个解。

    非线性求解clip_image002_thumb[7]

    根据上篇日志的公式(1),可以得到一些非线性方程。已知clip_image002[4]_thumb的每个元都可以表示为一个带有clip_image002_thumb[1]的参数的线性表达,说明在clip_image002[9]_thumb的元之间的关系可以转换为与clip_image002_thumb[2]的元有关的方程。clip_image002[9]_thumb[1]的元之间线性或者二次的关系会分别生成clip_image002_thumb[3]的元之间线性或者二次的关系。给出足够多的方程就会求出clip_image002_thumb[4]

    不变的内部参数:如果所有镜头的内部参数都一样,则对所有的ij,有clip_image002[24]_thumb,推导出clip_image002[26]_thumb。但由于有齐次量,等式只能得到一个不可知的比例系数。下面是生成的5个等式的集合:

    image_thumb

    根据3个视图获得的10个等式,可以求出clip_image002_thumb[8]

    假设0偏差的标定:在这样的前提下,DIAC的格式被简化了,P464的表格有给出,于是我们可以得到下面的约束:

    clip_image002[31]_thumb                                     (1)

    这是一个二次方程。对于m个视图,我们可以得到m个二次方程,加上det(clip_image002_thumb[9])=0,就可以从8个视点求得clip_image002_thumb[10]的10个齐次线性参数。

    迭代方法(略)

    要计算标定需要的参数数量是8个。这等价于绝对二次曲面的基本参数,包括模糊范围和秩为3的约束。考虑m个视点,假设在这些视点下,k个内部参数已知,f个参数未知但不变(k+f<=5)。一个固定且已知的标定参数可以为每个视图提供一个参数,于是我们得到mk个约束。一个固定且未知的标定参数提供的约束少一些,因为未知参数的值是缺失的。因此f提供了f(m-1)个约束,于是有

    mk + (m-1)f >= 8

    P469给出不同的约束组合需要的m的值。

    绝对二次曲面定标的方法的缺陷

    最小二乘代数求解的缺陷。由于最小二乘法仅仅最小化而不是加强了约束,得到的解并不能准确地满足要求的情况。有时通过计算得到的绝对二次曲面不是秩为3的。通过在特征值分解中设置最小的特征值是0,可以得到秩为3的clip_image002_thumb[11]矩阵。然后可以直接分解clip_image002_thumb[12]得到单应矩阵,或者作为迭代方法的初始值。

    正定的情况。这个方法最大的问题在于很难使得clip_image002_thumb[13]是正半定的。这要求clip_image002[49]_thumb是正定的。如果不是,则不可以根据cholesky因式分解得到标定矩阵。如果得到的数据有很多噪声,则预示着数据在度量重建中不一致。在这样的情况下,要寻找最接近的正定解是不合适的,这样一般会得到一个假的定标。

     

    本文原创,转载请注明出处

    http://www.cnblogs.com/luluathena/

    posted @ 2010-11-15 22:16  筱夏  阅读(811)  评论(0编辑  收藏  举报