概率深度模型
贝叶斯推断
深度的测量包括两种,一种是正确的测量,一种是由于遮挡、图像变换或重复纹理导致的错误的测量。如块匹配时,有可能包括误差很大的外点。
研究发现:
好的测量值通常是分布在正确深度值附近的。
错误的测量是在深度范围[Zmin,Zmax]之间的均匀分布。
因此,我们得到的结果通常是二者的混合。使用高斯+均匀分布混合模型来描述测量值的似然概率分布:
p(xn∣Z,π)=πN(xn∣Z,τn2)+(1−π)U(xn∣Zmin,Zmax)(1)
其中Z是真实深度,π是为内点的概率,τn2是好的测量的方差,与两个相机的相对位置有关。
我们需要置信度来决定深度是否收敛,或者失败。最大后验不具有这个功能,EM算法容易陷入局部最优。使用贝叶斯推断,最大化后验分布。二阶矩来作为估计的置信度。
p(Z,π∣x1…xN)∝p(Z,π)n∏p(xn∣Z,π)(2)
求解这个问题,需要建立稠密的二维直方图如下图所示,会大大提升计算量。

参数近似后验
使用单模态参数后验,近似为深度高斯分布乘内点率Beta分布,有:
q(Z,π∣an,bn,μn,σn2):=Beta(π∣an,bn)N(Z∣μn,σn2)(3)
其中an,bn分别表示在种子点生命周期内的内点,外点测量值出现的次数。μn,σn2分别代表深度的均值和方差。若n-1是正确的后验,则递推的有新后验(Beta分布乘以二项分布还是Beta分布):
C×p(xn∣Z,π)q(Z,π∣an−1,bn−1,μn−1,σn−12)(4)
参数化近似之后的计算结果也会收敛到相同的值,若收敛到错误值也可以通过外点率很低判断出来。

深度估计的成功与否,与patch选择的好坏有直接关系。
种子点使我们想要估计深度的一个像素,通过内点率来判断是否为外点,当没有搜索到局部最大值时,增加bn的值作为惩罚。
文献1中由于帧间小运动,使用上一次估计均值附近的w个像素半径内进行搜索。

种子点的修剪
分为三种情况:
- 收敛,从list中移除,生成3D点;
- 未收敛,从list中删除;
- 等待,需要时间去收敛。
分别对应三种判断机制:
- 当前分布有99%概率内点率π<ηoutlier,则失败
- 内点率大于ηinlier,并且深度方差σn<ϵ,则成功
- 其它
参数近似推导
变分推断推导2
对于观测量X,隐变量Z:
lnp(X)=L(q)+KL(q∥p)(5)
其中定义:
L(q)=∫q(Z)ln{q(Z)p(X,Z)}dZ(6)
KL(q∥p)=−∫q(Z)ln{q(Z)p(Z∣X)}dZ(7)
与EM算法的差别在于,这里不包含参数θ,因为它是随机变量包含在了隐变量Z中了。
我们的目标是最大化下界函数(6),使它接近最大似然的效果,这等价于最小化KL差异。即可以选择合适的q(Z)使得
KL差异消失,所以我们选择q(Z)=p(Z∣X),带入公式(7)可以发现ln()中结果是1,即KL=0。
合理的限制q(Z)族的方法是使用参数分布q(Z∣ω),下界函数(6)也变成了参数ω的函数。
把Z分解成独立的连乘形式:
q(Z)=i=1∏Mqi(Zi)(8)
把公式(8)带入公式(6)得到:
L(q)=∫i∏qi{lnp(X,Z)−i∑lnqi}dZ=∫qj⎩⎨⎧∫lnp(X,Z)i̸=j∏qidZi⎭⎬⎫dZj−∫qjlnqjdZj+ const =∫qjlnp(X,Zj)dZj−∫qjlnqjdZj+const(9)
定义新的分布:
lnp(X,Zj)=Ei̸=j[lnp(X,Z)]+const(10)
其中:
Ei̸=j[lnp(X,Z)]=∫lnp(X,Z)i̸=j∏qidZi(11)
优化公式(9)可以把他想成负的qj(Zj)与 p~(X,Zj) 的KL差别,因此最大公式(6)就是使其最小化,取qj(Zj)=p(X,Zj),因此得到最优解:
lnqj⋆(Zj)=Ei̸=j[lnp(X,Z)]+const(12)
对其进行归一化:
qj⋆(Zj)=∫exp(Ei̸=j[lnp(X,Z)])dZjexp(Ei̸=j[lnp(X,Z)])(13)
以上是变分推断的一种方法。
后验参数近似
beta分布参考
对于公式(2)可以分为先验和似然两部分。
针对先验部分,假设深度Z和内点率π独立有:
p(Z,π)=p(Z)p(π)(14)
针对似然部分公式(1),引入二进制(0,1)的隐变量yn:
p(xn∣Z,π,yn)=N(xn∣Z,τn2)ynU(xn)1−yn(15)
p(yn∣π)=πyn(1−π)1−yn(16)
根据公式(14)~(16)可以得到联合分布函数:
p(XY,Z,π)=[n=1∏Np(xn∣Z,π,yn)p(yn∣π)]p(Z)p(π)(17)
其中将隐变量Y边缘化掉,就是后验分布。
使用q(Y,Z,π)来近似后验p(Y,Z,π∣X),使其满足
q(Y,Z,π)=qY(Y)qZ,π(Z,π)(18)
根据公式(12)可以得到,为什么可以?答:根据公式(5)可知,我们想要最大化(6)也就是最小化(7)。从公式(9)到(12)的推导中是最大化(6)的过程。即满足公式(12),就满足了公式(7)最小,也说明了q和p之间的差异最小,可以使用q(Y,Z,π) 来近似p(Y,Z,π∣X) :
lnqZ,π(Z,π)=EY[lnp(X,Y,Z,π)]+const(19)
lnqY(Y)=EZ,π[lnp(X,Y,Z,π)]+const(20)
将公式(17)带入公式(19)得到
lnqZ,π(Z,π)=n=1∑NEY[yn](lnN(xn∣Z,τn2)+lnπ)+n=1∑N(1−EY[yn])(lnU(xn)+ln(1−π))+lnp(Z)+lnp(π)+const.(21)
这里为什么只考虑公式(19),因为公式(20)之后是要被边缘化掉的。对公式(21)取exp指数:
qZ,π(Z,π)=[n=1∏NN(xn∣Z,τn2)rn]πS(1−π)N−Sp(Z)p(π)(22)
这里推导有些疑问,公式(21)中的均匀分布怎么没了?公式(22)中定义:
rn=EY[yn]S=n=1∑Nrn(23)
如果选择共轭先验即Z符合高斯先验,π符合均匀分布先验。因此我们可以认为公式(22)具有Gaussian×Beta 的形式。Beta分布的形式为:
Beta(π∣a,b)=Γ(a)Γ(b)Γ(a+b)πa−1(1−π)b−1(24)
因此有公式(3),根据公式(2)利用贝叶斯推断,使用一阶矩二阶矩进行匹配的方式进行更新:
p(x∣Z,π)q(Z,π∣a,b,μ,σ2)(25)
将公式(1)和公式(3)代入公式(25),就有:
(πN(x∣Z,τ2)+(1−π)U(x))N(Z∣μ,σ2)Beta(π∣a,b)(26)
根据Beta分布的性质,以及对高斯分布进行配方得到(推导可以参考3,参考笔记数学知识)
a+baN(x∣μ,σ2+τ2)N(Z∣m,s2)Beta(π∣a+1,b)+a+bbU(x)N(Z∣μ,σ2)Betaa(π∣a,b+1)(27)
在我推导过程中注意到公式(27)成立要有个条件即(μ−x)2=0才成立
其中定义:
s21=σ21+τ21m=s2(σ2μ+τ2x)(28)
我们设符号:
C1=a+baN(x∣μ,σ2+τ2)C2=a+bbU(x)C=C1+C2(29)
对公式(27)求一阶矩二阶矩(见数学知识笔记):
求Z的一阶矩和二阶矩分别为:
C1{C1m+C2μ}C1{C1(m2+s2)+C2(μ2+σ2)}(30)
对π求一阶矩和二阶矩分别为:
C1{C1a+b+1a+1+C2a+b+1a}C1{C1(a+b+1)(a+b+2)(a+1)(a+2)+C2(a+b+1)(a+b+2)a(a+1)}(31)
设新的后验分布为:
q(Z,π∣a′,b′,μ′,σ′2)(32)
对公式(32)求一阶矩和二阶矩为:
求Z的一阶矩和二阶矩分别为:
μ′μ′2+σ′2(33)
对π求一阶矩和二阶矩分别为:
a′+b′a′(a′+b′)(a′+b′+1)a′(a′+1)(34)
令公式(30)和公式(33),公式(31)和公式(34)分别相等就得到了参数的更新公式:
μ′μ′2+σ′2f=an′+bn′an′e=(an′+bn′)(an′+bn′+1)an′(an′+1)=C1′m+C2′μ=C1′(m2+s2)+C2′(μ2+σ2)=C1′a+b+1a+1+C2′a+b+1a=C1′(a+b+1)(a+b+2)(a+1)(a+2)+C2′(a+b+1)(a+b+2)a(a+b+2)(35)
其中:
C1′=CC1C2′=CC2(36)
Details4
测量更新
一个像素被初始化,然后被每个视图更新。设置初始参数如下:
a0=10, b0=10
μ0=0.5(dmin+dmax), σ=σmax
note: 这里σmax表示99%的概率位于[dmin,dmax]之间
使用逆深度表示,使用当前估计的方差限制极线搜索(怎么理解???)
不确定性测量
距离近的帧不容易发生遮挡,距离远的帧基线长有助于三角化但是容易有遮挡。

根据上图的关系,有:
a=rp−t(37)
α=arccos(∥t∥f⋅t)(38)
β=arccos(−∥a∥⋅∥t∥a⋅t)(39)
其中f=∥rp∥rp,根据公式(37)到(39)可以得到图中的参数。令f是相机的焦距,角度旋转一个像素加到β上,有如下计算:
β+=β+2tan−1(2f1)(40)
γ=π−α−β+(41)
∥∥rp+∥∥=∥t∥sinγsinβ+(42)
对于公式(40)因为焦距f是垂直于图像平面的,因此有这个公式,近似认为是等边三角形。
因此我们可以计算出不确定度:
τk2=(∥∥rp+∥∥−∥rp∥)2(43)
其中公式(40)求增角时,使用一种近似,焦距与图像平面垂直,认为足够小当做了中位线。
Reference