分享

多视角几何3-2D射影变换估计-迭代最小化方法

 SLAM之路 2022-04-24
本文介绍最小化损失函数的方法,函数已在章节4.2和4.3阐述。最小化损失函数需迭代技巧。这是非常不幸的,因为迭代技巧与线性算法(如算法4.2归一化DLT)相比,具有某些缺点:
i.迭代更加慢;
ii.迭代初始需要一个初始估计值;
iii.迭代存在不收敛的风险,或收敛到局部最小值而非全局最小值;
iv.迭代终止条件的选择具有技巧性;
因此,迭代在应用时需格外小心。
迭代最小化的技巧一般包含五个步骤:
i.损失函数.选择最小化需要的损失函数;
ii.参数化.变换矩阵(元素)通常以有限个参数形式表示,一般不要求是最小参数集,事实上超参通常存在优势。
iii.函数确认.必须指定表达函数的参数集合。
iv.初始化.计算合理的初始参数估计值。一般使用线性算法(如DLT算法)进 行初始值估计。
v.迭代.从初始解开始,不断迭代参数直到达到最小化损失函数的终止条件。
关于参数化
给定损失函数,参数集通常存在多个选择。一般选择策略是,选择能覆盖最小化的整个空间并能方便计算损失函数的参数集。例如,H可以用9个参数实现参数化--也就是超参化,因为H实际仅有8个自由度,总体比值并不重要,最小参数集仅有8个参数,也就是和自由度相同。
一般,只要对于所有选择的参数,对应的目标是所要求的的类型,那么最小化问题超参化并不会发生糟糕的影响。尤其对齐次对象,例如3×3射影矩阵,通常不必也不建议采用最小参数集(即移除比例系数);
理由如下:使用最小参数集并无必要,因为运行良好的非线性算法会发现没有必要冗余方向移动,例如矩阵缩放方向。Gill和Murray的算法是高斯牛顿方法的修改版,该方法有效地处理参数冗余组合。类似地,LM算法也容易地处理参数冗余问题。这里我们不建议使用最小化参数集,经验表明,使用最小化参数集会使损失函数曲面复杂化,因此,程序在局部最小处停滞不前的可能性更大。
另一个问题在选择参数集时限制变换在某个类型。例如,假设H是投射,那么它可以参数化为,
其中μ是标量,v和a是三维向量。投射自由度是5,对应于标量μ、和方向v、a。如果H被矩阵9个元素参数化,那么H的估计值不可能正好是投射。但如果H被μ、v、a参数化(自由度7),那么H的估计值肯定是投射。这种参数化与投射保持一致。后续我们将讨论一致、局部、全局、超参的问题。
函数确定
在4.2.7已说明,一般估计问题涉及包含模型曲面S的测量空间RN。给定测量X∈RN,估计问题是在S上寻找最靠近X的点。当非同向同性高斯误差分布施加于空间RN时,“最靠近”可用Mahalanobis距离解释。迭代最小化方法现在以这种估计模型进行描述。在参数拟合的迭代估计中,模型曲面S是局部参数化,调整参数以最小化和测量点的距离。具体说是,
i.有协方差矩阵∑的测量向量X∈RN
ii.参数集以向量P∈RM的形式表示;
iii.定义映射f:RM->RN,映射的值域是RN空间的模型曲面S,其表示可行的测量数据;
iv.损失函数是平方MaHalanobis距离,
我们尝试寻找参数集P,以满足f(P)=X,若无法满足,则关于Mahalanobis距离f(P)尽量靠近X。当损失函数是这种类型时,LM算法是迭代最小化的常用工具。现在我们来看看不同类型损失函数如何规范为这种格式。
单幅图像误差.这里我们固定第一幅图像中点xi的坐标,调整H最小化损失函数(4.6)
测量向量X由点xi'的2n个非齐次坐标组成。我们可以选择单应矩阵H的元素构成的向量h作为参数,函数f定义为,
f:h->(Hx1,Hx2,......,Hxn)
这里和下面方程中的Hxi都代表非齐次坐标,我们可以证实||X-f(h)||2等于(4.6)
对称转移误差.当采用对称损失函数(4.7)时,
我们可以选择点xi的非齐次坐标和后跟点xi'的非齐次坐标组成的四维向量作为测量向量X。与此前一样,参数向量是H元素组成的向量h,函数f定义为,
与此前一样,我们发现||X-f(h)||2等于(4.7)。
重投影误差.最小化损失函数(4.8)最为复杂。难点在于,要求同时最小化对所有点i和矩阵H的元素。如果对应点过多,那么这将是一个非常大的最小化问题。因此,问题将由点i矩阵元素-共计2n+9个参数组成。'i坐标不做要求,因为它们与其他参数相关联,'i=i。因此参数向量是P=(h,1,...,n)。测量向量包括所有点xi和点xi'的非齐次坐标。函数定义为,
这里'i=i。我们可以验证,||X-f(h)||2等于损失函数(4.8),其中X是4n向量。这种损失函数必须基于全部2n+9个参数最小化。
Sampson近似.与重投影误差2n+9个参数不同,单幅图像最小化误差(4.6)、或对称转移误差(4.7)要求基于矩阵H9个元素进行最小化--一般是较容易处理问题。重投影误差的Sampson近似值使重投影误差也可基于9个元素最小化。
这是一个重要思路,因为当使用如LM算法,m个参数的非线性最小化问题的迭代求解在每一步迭代过程中都涉及求解m×m线性方程组。这是一个复杂度为O(m3)的问题。因此,应取小规模的m。
Sampson误差避免了基于重投影误差的2n+9个参数进行最小化,因为对于每个h选择能有效确定2n个变量{i}。因此,最小化仅需要h的9个参数。实际中,若误差相对测量值相差很小,这种近似方法能给出非常好的结果。
初始化
参数的初始估计值可利用线性技巧求得。例如,算法4.2归一化DLT算法可直接提供H,进而9维向量用于迭代初始化。一般来说,如果有n≥4对应关系,那么所有对应关系都可以用于线性求解。但是,在4.7节鲁棒性估计中会看到,当对应关系包含离群值时,建议小心选择对数点关系以形成集合(例如4对)。线性技巧或最小配置解是本书推荐的两种初始化技巧。
另一种常用的方法是在参数空间进行足够密度的采样,从采样起点迭代并保留最好结果。如果参数空间的维度足够小,那么这是可行的。参数空间的采样也可随机进行,或按照其他某种方式。另一种初始化方法无须进行有效的初始化,而是从参数空间某个固定点开始进行迭代。这种方法不常有效。迭代可能得到错误的最小值或者无法收敛。即使在最好的情况下,初始点离最终解越远,所需的迭代数也就越大。因此,使用好的初始化方法才能得到好的结果。
迭代方法
有许多迭代方法可进行最小化损失函数,其中较受欢迎的是牛顿迭代和LM方法。
总结
这一节的思路展现在上面的图标中,算法4.3,具体介绍了黄金标准和Sampson方法基于两幅图像间点对应关系进行单应估计。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多