分享

多视角几何3-2D射影变换估计-损失函数

 SLAM之路 2022-04-24

本节主要学习损失函数,通过最小化损失函数求解超定方程组的解H。此外,也会介绍最小化损失函数的方法。

4.2.1 代数距离

DLT算法最小化范数||Ah||。令向量ε=Ah,称为残差向量,该向量的范数需要最小化。残差向量的元素源自于各个点对应关系形成矩阵A的各行。每对对应关系xi<->xi'按照(4.1)或(4.3)构成部分残差εi,最后合并在一起构成εεi是与每对点xi<->xi'和单应H相关的代数误差向量,该项量的范数是一个标量,称为代数距离:(4.4)

对任意两向量x1和x2来说,更加一般且简洁的写法是,

代数距离和几何距离的关系会在后文描述。若给定对应关系集合,ε=Ah是整个集合的代数误差向量,由此可知,(4.5)

代数距离的缺点在于,最小化的数量并不具有几何或统计学上意义。最小化代数距离的解也许与直觉上预期不一致。但无论怎样,选择较好的归一化,最小化代数距离的方法会给出理想的结果。其特殊优势是,线性解以及计算成本低。通常来说,基于代数距离的解用作几何或统计损失函数的非线性最小化的初始点。非线性最小化给这个解一个最后的“抛光”。

4.2.2 几何距离

接下来,我们讨论另外一种误差函数,基于测量图像中几何距离,最小化图像测量值与估计值之间差值。

记号.向量x表示图像坐标测量值,表示点坐标估计值,是点坐标真值。

单图像误差.首先仅考虑第二幅图像中存在误差,第一幅图像测点值准确。显然,实际情况中并不可能。举例,该例中假设这种情况可能,该例是关于估计校正模块或世界平面(其中点测量准确)与它们图像之间的射影变换。适合最小化的量是转移误差。这是第二幅图像中测量点x'和(对应点从第一幅图像映射到第二幅中的)点H之间的欧式图像距离。我们使用记号d(x,y)代表,x和y表示非齐次点间的欧式距离。点对应关系集合的转移误差是,(4.6)


单应估计值是使误差(4.6)最小化的值。

对称转移误差.在实际场景中,图像测量误差会出现在两张图像,两张图像误差均最小化,比单独一张误差最小化要更可取。误差函数的构建方法之一是,考虑前向(H)和后向(H-1)变换,以及这两个变换对应的几何误差。因此,误差是,(4.7)

求和公式中第一项是,第一幅图像中的转移误差,第二项是第二幅图像中的转移误差。单应估计值是使误差(4.7)最小化的值。

4.2.3 重投影误差-两幅图像

量化每幅图像误差的另一方法,需估计每对对应关系的“修正值”。人们会问,是否有必要为获得完美的图像对应点点集而校正每幅图像的测量值。比较它与单幅几何转移误差(4.6),(4.6)测量的是校正值:为了得到完美的匹配点集有必要在一幅图像上(第二幅图像)对测量进行校正。
此时,我们需要寻找单应和完全匹配的点集i'i,从而最小化误差函数,(4.8)

最小化(4.8),涉及确定和对应关系{i}和{'i}。这种估计可对世界平面点的图像对应点xi<->x'i的测量建模。我们希望根据xi<->x'i对应关系估计世界平面的一个点i,然后该点再投射到估计上认为是完美匹配的对应点i<->'i上。

该重投影误差函数与对称误差函数对比如图所示。4.3部分会看到,(4.8)与单应和对应关系的最大似然估计有关。

4.2.4 几何和代数距离对比
我们回到仅第二幅图像有误差的情况。令x'i=(x'i,y'i,w'i)T,定义向量
('i,'i,'i)T='i=Hi。使用这种记号,(4.3)的左半部分变成,
这个向量是与对应点xi<->xi'和相机映射H有关的代数误差向量。因此,
对于点xi''i,几何距离是[两点非齐次形式间的欧式距离],

因此,几何距离与代数距离有关,但并不相同。注意,如果'i=wi'=1,那么两个距离相同。
我们总可以假设wi=1,因此点xi表示为xi=(xi,yi,1)T。对应一类重要的2D单应,'i的值也总是1。2D仿射变换可以用矩阵表示,(4.9)
我们可以从'i=HAi验证,如果wi=1那么'i=1。这表明,在仿射变换情况下,几何距离和代数距离是相同的。DLT算法很容易做到使H最后一行是(0,0,1)。因此,对于仿射变换,最小化几何距离可以用基于代数距离的线性DLT算法
4.2.5 重投影误差的几何释义
两平面间单应估计可以视作用4D空间的"曲面"拟合点。每对图像点xx'都定义测量空间中的点X,它是由点xx'的非齐次部分组成。对于给定的单应H,满足x'×(Hx)的图像对应关系x<->x’定义一个R4空间的代数簇vH,它是由两个超二次曲面的相交部分组成。该曲面是R4的二次曲面,因为(4.1)中每行都是关于x,y,x',y'的自由度为2的多项式。H的元素决定多项式每项的系数,所以H指定二次型曲面。(4.1)的两个独立方程定义这样两个二次曲面。
给定R4空间的点Xi=(xi,yi,xi',yi')T,估计单应的任务转为寻找通过点Xi代数簇vH。一般来说,准确匹配的代数簇是不可能的。在这个例子中,令vH是关于变换H的某一个簇,对于每个点Xi,令i=(i,i,'i,'i)是代数簇上最接近Xi的点,可得到,
因此,R4空间的几何距离等同于两幅图像测量的重投影误差,求vH和其上到测量点Xi距离平方和最小的点i,等同于寻找能使重投影误差函数(4.8)最小化的单应和估计点i'i
vH上最接近测量点X的点与X的连线垂直于vH的过的切平面。因此,
d(X,vH)是点X到vH的垂直距离。正如二次曲线拟合类比中所见,有超过一个这样X到vH的垂线。距离d(X,vH)R4空间刚体变换的不变量,这包含每幅图像的坐标(x,y)T,(x',y')T单独进行刚体变换的特殊情况。
二次曲线类比.在进一步讨论前,我们首先简要描绘一种比较容易可视化的估计问题。该问题是拟合2D点为二次曲线,它在拟合直线和拟合单应中占据中间位置。
考虑用二次曲线拟合位于平面上的点集(xi,yi)T,点的数量超过5,保证基于几何距离误差最小化。点可以视作是对应关系xi<->yi。转移距离和重投影距离如图所示,从图可知,d小于等于转移距离。
点x到二次曲线C的代数距离定义为,dalg(x,C)2=xTCx。C的线性解可在C适当归一化后最小化∑idalg(x,C)2得到。点(x,y)到C的垂直距离没有线性解,因为通过每个点有多达四条直线垂直于C。可以由二次曲面的根求解。但是,定义的函数d(x,C)得到的是二次曲线和点的最短距离。二次曲线可通过在C的五个参数上最小化id(x,C)2来估计,虽然它不能由线性解得到。给定二次曲线C和测量点x,校正点可选择最接近C的点获得。
我们回到估计单应的问题上,在仿射变换作用下,该代数簇是两个超平面的相交部分,也就是说,它是一个2维线性子空间。由于遵循仿射矩阵的(4.9)形式:x'=HAx对x,x',y产生于一个约束,对x,y,y'产生另一个线性约束,每个约束都定义了R4空间的一个超平面。相类似的情况是,用直线拟合平面上的点。这两种情况下,通过最小化点和代数簇的垂直距离估计关系(仿射变换或直线)。在这两种情况下,都存在封闭形式的解。
4.2.6 Sampson误差
几何误差(4.8)本质上非常复杂,最小化几何误差要求同时估计单应矩阵和点i'i。这种非线性估计问题将在4.5部分进一步讨论。它的复杂性与最小化代数误差(4.4)的简洁性形成鲜明对比。4.2.5部分解释的几何误差形成另一种损失函数,它的复杂性处于代数和几何损失函数中间,但是更接近于几何误差。我们称这种误差是Sampson误差,因为他使用它用于二次曲线的拟合。
如4.2.5节所述,最小化几何误差||X-||的向量是代数簇上最接近测量点X的点。这个点无法通过迭代以外的其他方法估计,因为代数簇是非线性的。Sampson误差的核心是估计点的一阶近似值,并假设损失函数能在被估计点附近很好地线性近似。下面我们将直接讨论2D单应估计问题,但实际上可以把它不加改变地应用到本书讨论的其他估计问题上。
给定单应H,任意在代数簇vH上的点X=(x,y,x',y')满足方程(4.3),或Ah=0。为强调对X的依赖性,我们重写公式为CH(X)=0,在这种情况下CH(X)是2维向量。按照第一顺序,损失函数可用泰勒展开式近似,(4.10)

如果δx=-X,并期望在代数簇vH上满足CH()=0,那么结果

因此把它集成Jδx=-ε,其中J是偏导数矩阵,ε是与X有关联的损失函数CH(X)。我们所面对的最小化问题是,寻找最小δx满足这个方程,也就是说

寻找向量δx,在满足Jδx=-ε的前提下,最小化||δx||。

解决这种类型问题的标准方法是,使用拉格朗日乘子。首先引入拉格朗日乘子向量λ,该问题简化为寻找δTxδx-2λT(Jδx+ε),其中系数2是为方便而引入。对δx求偏导,并令其等于0,则

通过该等式,我们得到δx=JTλ。对λ求导数,则得到Jδx+ε=0,即原约束。消去δx得到,

对λ求解得到λ=-(JJT)-1ε,最终,(4.11)

=X+δx,范数||δx||2正式Sampson误差,(4.12)

例4.2 二次曲线Sampson近似

我们计算如图4.3所示点x和二次曲线C之间几何距离d(x,C)的Sampson近似值。在这种情况下代数簇vc是由方程xTCx=0定义,所以X=(x,y)T是二维向量,ε=xTCx是标量,J是1×2矩阵,由下式确定,

这代表,JTJ是标量。J的元素可根据复合求导规则计算,

这里(Cx)i表示三维向量Cx的第i个元素,根据(4.12),

有若干点需要注意:

(i)对2D单应估计问题的X=(x,y,x',y')T,其中2D测量是x=(x,y,1)T,x'=(x',y',1)T

(ii)ε=CH(X)是代数误差向量Aih-一个二维向量-Ai由(4.3)定义。

(iii)J=∂CH(X)/X是2×4矩阵,例如,

(iv)(4.12)与代数误差||ε||=εTε的相似性。Sampson误差可以解释为Mahalanobis范数,|||ε||JTJ

(v)我们也可采用(4.1)定义的A,在这种情况下,J是3×4矩阵,ε是三维向量。但是,一般来说,Sampson误差和其解δx与使用(4.1)或(4.2)定义无关。

Sampson误差是针对一组对应点,在应用Sampson误差根据对应点xi<->x'i进行2D单应H估计时,需要对所有对应点误差求和,因此(4.13)

ε和J都是依赖于H。为估计H,必须在所有值H上最小化该等式。这就是简化的最小化问题,其中变参数集合仅由H的元素组成。

Sampson误差的推导嘉定,所有点有各向同性误差分布,在每幅图像中都如此。

线性损失函数

代数误差向量CH(X)=A(X)h,是关于X元素的多元线性的。A(X)h是线性的对其自身很有意义。第一,在这种情况下,由(4.10)泰勒展开式确定的几何误差近似值是准确的,这意味着Samposon误差等同于几何误差。
此外,由方程CH(X)=0定义的代数簇vH,即线性方程的集合,是依赖于H的超平面。寻找H的问题成为超平面拟合的问题,在H参数化的超平面中,寻找对数据Xi最好的拟合。




    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多