前言
经常在论文中看到一些熟悉又陌生的算法名,例如EM,例如GMM,HMM等等,这些算法好像都是知道个大概,但是要我自己去实现,感觉总是这里缺先验那里缺先验,不能完整地复述出来,就是不是自己的东西,有必要像矩阵求导那样,推导一个完整的式子来。
期望最大化算法
英文原名:Expectation-Maximization,缩写名:EM
问题描述
给定某个概率分布X的系列观测值X(θ),其中θ是某个未知的,需要被优化的参数,现假设待观测值Z X,参数估计要求算法使得似然函数L(θ;X)取得最大值。即使得在出现观测值X的概率最大:
L(θ;X)=p(X∣θ)=z∈Z∑p(X,Z∣θ)z
算法核心
由于不能直接得到隐变量θ的值,且随机变量Z的分布情况也未知,不能直接使用求导等方式求最值,可通过迭代求解。EM只是提供了一个计算的框架,而没有给出最优化的具体方法,这需要使用最优化的理论来解决之。
期望最大化算法就分为两步:期望+最大化
求解期望
直接使用期望的定义式求出在当前似然函数L(X,Z∣θ)情况下的数学期望
EZ∼X(θ)[p(X,Z∣θ)]
使用中,通常遇到高斯分布的随机变量,因此为了简化上述表示,且不影响最值的位置,可求对数期望:
EZ∼X(θ)[lnp(X,Z∣θ)]
最大化期望
在当前(对数)期望表达式已知的情况下,在θ的定义域内,使用搜索算法找到一个最优解,使得:
θ˜=θargmaxEZ∼X(θ)[p(X,Z∣θ)]
然后用这个搜索得到的最优θ˜代替之前分布参数θ,获得新的参数分布:
θ:=θ˜
然后重新计算期望,并进行下一步迭代。
使用小结
本算法有一点强化学习的味道,表演家得到结果,评论家对表演结果作出评价,然后从最好的表演结果中选择一个作为下一次表演的基准,使模型能够作出最佳的表演行为(最大化期望)。
应用实例推导
高斯混合模型GMM是期望最大化算法的直接应用,其问题描述为:
现有一线性组合的高斯叠加模型G(X)=k=1∑KλkN(μk,σk),通过先验知识和前期观测操作得到了一系列观测数据集{xi},常见的一种情况是,在高斯分布类别数目K已知的情况下,求解各项高斯分布函数的参数。
RANSAC方法
随机抽样一致性方法Random Sample Consensus,是用于从带有较多噪声的数据样本中提取准确模型分布、并完成模型拟合的稳健方法。该方法最早于1981年由Fischler等人[1]提出,用于解决一类高度噪声化的位置确定问题Locatioon Determination Problem。传统的最小二乘方法将使用全部数据样本点,而不管该样本点是否符合模型的拟合,因此高度偏离模型的点将会对拟合结果产生显著的不利影响;即使使用加权的最小二乘方法,也需要人工确定点的权重,一定程度上不是自动化实现的。RANSAC的提出解决了这一难题。
算法表述
设某个模型需要的最少标定点为n,现有一个带噪声的标注集P,其中标注点数多于n。按照以下逻辑进行模型的拟合:
- 从标注集P中随机抽取n个点的子集S1,用其完成模型参数拟合,得到结果θ1;
- 对子集S1的补集,使用一次模型θ1计算残差,将其中残差小于某个容许值ϵ的点加入至当前集合S1中,并排除其中残差大于容许值的点,得到一致性集合S1∗;
- 判断一致性集合的基数,当∣S1∗∣大于预设的阈值t后,用集合S1∗计算新的模型θ2,并重复执行步骤2;
- 否则∣S1∗∣<t时,重新随机抽取n个点的子集S2,重复执行步骤1。
- 如果在某个预设的步骤数中,取得的一致性集合基数都小于阈值t,宣告模型拟合失败,强制终止。否则,以最后一步取得的一致性集合为拟合数据集S∗,完成输出模型θ∗的拟合。
说明
关于RANSAC算法部分超参数的设置,论文原文[1]中提到了以下几点注意事项:
- 最大迭代次数不宜过少,以避免在随机抽样时最不利情况下错过模型的拟合,应当保证抽样次数k≥log(1−b)log(1−z),其中z是需要的置信度,b=wn是n个抽样点计算得到的残差都恰好位于容许值以内的概率。
- 关于基数阈值t,作者认为应当足够大,以保证一致性集合包含足够多的点,便于解出正确的模型与后期的模型平滑。
双目立体视觉
这玩意在运动物体成像中也有应用,被称为homography estimation,即同质性估计,是一种计算机视觉中的基础问题,用于计算两个平面之间的映射关系,常用于计算相机的运动轨迹,或者计算两个平面之间的变换关系。
双目系统极线几何关系
如下图,对极几何关系是双目系统中最为重要的几何关系之一。
首先介绍几个基本的概念:
基本概念
- 基线:两个相机的光心之间的距离,图中的O1O2;
- 极点:两个相机的光心在另一个相机的成像平面上的投影点,图中的e1,e2;
- 极平面:两个相机的光心和空间点P所在的平面,图中的O1O2P;
- 极线:极平面与图像平面的交线,图中的l1,l2;
- 极平面簇:基线随空间点P变化所形成的平面簇,所有的极平面相交于基线。
极线约束
称图中p2极点与极线l1满足对极关系,同理可称图中的p1极点和极线l2满足对极关系。在双目立体视觉中,极点不能与极点形成对应,而只能与极线对应,由此引出了极线约束的概念。极线约束是指,极点所对应的极点必定在对极线上。该约束关系极大了减少了搜索的范围,从而提高了立体视觉算法效率。约束方程如下:
{slpl=HlPsrpr=HrP
式中,Hl,Hr是左右两个相机的内外参矩阵之乘积,即变换矩阵,可得:
Hl=Kl[Rl∣tl]≜[Ml∣ml]Hr=Kr[Rr∣tr]≜[Mr∣mr]
利用中间量P=[X,Y,Z,1]T=[PXYZT,1]消元,可得:
(slpl−ml)Ml−1⟹srpr−slMrMl−1pl=(srpr−mr)Mr−1=mr−MrMl−1ml
上式即为极线约束的第一种形式,可根据图像坐标p1,p2的齐次化消去尺度因子sl,sr。经过齐次化后,可以得到第二种形式,以下为推导过程:
记上式右边的向量为m,则根据齐次向量相等关系(即向量与自己的向量积为0),对左式向量积m,可得:
m×(srpr−slMrMl−1pl)⟹m×pr=0=m×sMrMl−1pl
可见左式得到的结果是一个向量,且这个向量必定与pr正交,因此,其与pr的内积为0,即:
prTm×pr⟹prTm×sMrMl−1pl⟹prTm×MrMl−1pl=prTm×sMrMl−1pl=0=0
可见消元完成的结果,可以写为二次型的形式,本质上该式是极平面方程的表达式,即:
prTFpl=0
两者的对极线关系可以非常明显地写出:
l2=Fpl⟷pll1=FTpr⟷pr
约束方程
本部分参考文献 Determining the Epipolar Geometry and its Uncertainty: A Review。
下面推导矩阵F的具体形式,从上式中可以看出,该矩阵只与左右两个摄像机的内参数和两者摆放的相对位置(结构参数),进一步地,选取左相机图像坐标系为参考坐标系,则可以将两个相机的成像方程写为:
Hl=Al[I∣0]Hr=Ar[R∣t]
则成像结果为:
{srprslpl=ArRPXYZ+Art=AlPXYZ
注意到这里的R是一个4×3的矩阵,其中每列是正交的,因此其不是方阵,对上述方程作变形可得:
{srAr−1pr−tslRAl−1pl=RPXYZ=RPXYZ⟹srAr−1pr−slRAl−1pl=t
同理,对左式向量积右式使得上式归零,可得:
[t]×(Ar−1pr−sRAl−1pl)=0
然后,内积括号里面的第一项,使得前一项归零,从而消去尺度因子s,可得:
prTAr−T[t]×RAl−1pl=0
从而得到《机器视觉》(张广军著)书上111页,或者论文中第163页公式(1)的结果式,称该结果为共平面约束,所得矩阵F=Ar−T[t]×RAl−1称为基本矩阵。此式即为三角测量、双目视觉中最重要的约束公式。
参考文献
[1] Fischler M. A. , Bolles R. C. .Random sample Consensus[J/OL].Commun. ACM,1981,24(6):381-395