SLAM--深度滤波器

本文探讨了概率密度函数的归一化积在深度估计中的应用,详细介绍了如何通过高斯分布的深度融合来计算不确定性。通过极线搜索方法处理几何误差,计算深度值的平均与方差,从而实现对深度不确定性的量化。这一过程对于视觉SLAM等领域的深度估计具有重要意义。
摘要由CSDN通过智能技术生成

一、归一化积

p 1 ( x ) p_1(x) p1(x) p 2 ( x ) p_2(x) p2(x)是两个不同的概率密度函数,归一化积为:
p ( x ) = η ⋅ p 1 ( x ) p 2 ( x ) p(x)=\eta \cdot p_1(x)p_2(x) p(x)=ηp1(x)p2(x)
其中:
η = ∫ p 1 ( x ) p 2 ( x ) d x \eta=\int p_1(x)p_2(x)\mathrm{d}x η=p1(x)p2(x)dx
η \eta η是为了满足概率公理的归一化常数。

定理:对于 p ( x ∣ y 1 , y 2 ) p(x|y_1,y_2) p(xy1,y2) y 1 y_1 y1 y 2 y_2 y2是两次独立测量,有:
p ( x ∣ y 1 , y 2 ) = η ⋅ p ( x ∣ y 1 ) p ( x ∣ y 2 ) p(x|y_1,y_2) = \eta \cdot p(x|y_1)p(x|y_2) p(xy1,y2)=ηp(xy1)p(xy2)
推导,利用全概率公式我们可以知道:
p ( x ∣ y 1 , y 2 ) = p ( y 1 , y 2 ∣ x ) p ( x ) p ( y 1 , y 2 ) p(x|y_1,y_2) = \frac {p(y_1,y_2|x)p(x)} {p(y_1,y_2)} p(xy1,y2)=p(y1,y2)p(y1,y2x)p(x)
这里:
p ( y 1 , y 2 ∣ x ) = p ( y 1 ∣ x ) p ( y 2 ∣ x ) = p ( x ∣ y 1 ) p ( y 1 ) p ( x ) p ( x ∣ y 2 ) p ( y 2 ) p ( x ) p(y_1,y_2|x)=p(y_1|x)p(y_2|x)=\frac {p(x|y_1)p(y_1)} {p(x)} \frac {p(x|y_2)p(y_2)} {p(x)} p(y1,y2x)=p(y1x)p(y2x)=p(x)p(xy1)p(y1)p(x)p(xy2)p(y2)
则:
η = p ( y 1 ) p ( y 2 ) p ( y 1 , y 2 ) p ( x ) \eta = \frac {p(y_1)p(y_2)} {p(y_1,y_2)p(x)} η=p(y1,y2)p(x)p(y1)p(y2)
p ( x ∣ y i ) , i = 1 , 2 p(x|y_i),i=1,2 p(xyi),i=1,2高斯分布的概率密度函数;
p ( x ∣ y 1 ) = N ( μ 1 , σ 1 2 )   p ( x ∣ y 2 ) = N ( μ 2 , σ 2 2 ) p(x|y_1)=N(\mu_1,\sigma_1^2)\\~\\p(x|y_2)=N(\mu_2,\sigma_2^2) p(xy1)=N(μ1,σ12) p(xy2)=N(μ2,σ22)
对于新的分布 p ( x ∣ y 1 , y 2 ) = N ( μ , σ 2 ) p(x|y_1,y_2) =N(\mu,\sigma^2) p(xy1,y2)=N(μ,σ2):
1 σ 2 = 1 σ 1 2 + 1 σ 2 2   μ σ 2 = μ 1 σ 1 2 + μ 2 σ 2 2   ⟹ σ 2 = σ 1 2 σ 2 2 σ 1 2 + σ 2 2 \frac {1}{\sigma^2} = \frac {1}{\sigma_1^2} +\frac {1}{\sigma_2^2} \\~\\ \frac {\mu}{\sigma^2} = \frac {\mu_1}{\sigma_1^2} +\frac {\mu_2}{\sigma_2^2} \\~\\ \Longrightarrow \sigma^2=\frac {\sigma_1^2\sigma_2^2} {\sigma_1^2+\sigma_2^2} σ21=σ121+σ221 σ2μ=σ12μ1+σ22μ2 σ2=σ12+σ22σ12σ22

我们可以推导出K个归一化:
p ( x ∣ y 1 , y 2 , ⋯   , y k ) = η k ⋅ p ( x ∣ y 1 ) p ( x ∣ y 2 ) ⋯ p ( x ∣ y k ) p(x|y_1,y_2,\cdots,y_k) = \eta_k\cdot p(x|y_1)p(x|y_2)\cdots p(x|y_k) p(xy1,y2,,yk)=ηkp(xy1)p(xy2)p(xyk)
有:
( σ 2 ) − 1 = ∑ i = 1 k ( σ i 2 ) − 1   ( σ 2 ) − 1 ⋅ μ = ∑ i = 1 k ( σ i 2 ) − 1 ⋅ μ k (\sigma^2)^{-1} = \sum_{i=1}^{k} (\sigma_i^2)^{-1}\\~\\ (\sigma^2)^{-1}\cdot \mu= \sum_{i=1}^{k} (\sigma_i^2)^{-1}\cdot \mu_k (σ2)1=i=1k(σi2)1 (σ2)1μ=i=1k(σi2)1μk

 
 

二、深度融合

我们假设所有的深度值都是服从高斯分布的,假设有两个状态 ξ 1 \xi_1 ξ1 ξ 2 \xi_2 ξ2分别对相机坐标 T w c 1 T_{wc_1} Twc1下的深度值进行观测,那么我们可以表示为:
p ( d   ∣   ξ 1 ) = N ( μ 1   , σ 1 2 )   p ( d   ∣   ξ 2 ) = N ( μ 2   , σ 2 2 ) p(d \space|\space \xi_1)= N(\mu_1 \space,\sigma_1^2)\\~\\ p(d \space|\space \xi_2)= N(\mu_2 \space,\sigma_2^2) p(d  ξ1)=N(μ1 ,σ12) p(d  ξ2)=N(μ2 ,σ22)
我们对这两个观测进行深度融合,即求出在共同观测 ξ 1 \xi_1 ξ1 ξ 2 \xi_2 ξ2下的分布:
p ( d   ∣   ξ 1 ,   ξ 2 ) = N ( μ   , σ 2 ) p(d \space|\space \xi_1,\space \xi_2)= N(\mu \space,\sigma^2) p(d  ξ1, ξ2)=N(μ ,σ2)
借助上述归一化积的方法,我们可以得到关系:
p ( d   ∣   ξ 1 ,   ξ 2 ) = η ⋅ p ( d   ∣   ξ 1 ) ⋅ p ( d   ∣   ξ 2 ) p(d \space|\space \xi_1,\space \xi_2) = \eta \cdot p(d \space|\space \xi_1)\cdot p(d \space|\space \xi_2) p(d  ξ1, ξ2)=ηp(d  ξ1)p(d  ξ2)
所以深度融合可以看作两个高斯分布的乘积(归一化乘积)。

即:
1 σ 2 = 1 σ 1 2 + 1 σ 2 2   μ σ 2 = μ 1 σ 1 2 + μ 2 σ 2 2 \frac {1}{\sigma^2} = \frac {1}{\sigma_1^2} +\frac {1}{\sigma_2^2} \\~\\ \frac {\mu}{\sigma^2} = \frac {\mu_1}{\sigma_1^2} +\frac {\mu_2}{\sigma_2^2} \\ σ21=σ121+σ221 σ2μ=σ12μ1+σ22μ2
然后求出:
σ 2 = σ 1 2 σ 2 2 σ 1 2 + σ 2 2   μ = σ 2 2 μ 1 + σ 1 2 μ 2 σ 1 2 + σ 2 2 \sigma^2=\frac {\sigma_1^2\sigma_2^2} {\sigma_1^2+\sigma_2^2}\\~\\ \mu = \frac {\sigma_2^2\mu_1+\sigma_1^2 \mu_2} {\sigma_1^2+\sigma_2^2} σ2=σ12+σ22σ12σ22 μ=σ12+σ22σ22μ1+σ12μ2
这就是深度融合的过程。
 
 

三、不确定度的计算

这里不考虑光度误差带来的影响,即光度不变性,只考虑几何误差。

我们利用极线搜索的方式,首先考虑对极约束
p 2 T F p 1 = 0 p_2^TFp_1 = 0 p2TFp1=0
p 1 p_1 p1 p 2 p_2 p2是两个相机下的像素坐标;
假设在相机2的极线方程为:
a u 2 + b v 2 + c = 0 , 即 p 2 T ⋅ [ a b c ] = 0 au_2+bv_2+c=0,即\quad p_2^T\cdot \begin{bmatrix} a \\ b \\ c\end{bmatrix} = 0 au2+bv2+c=0p2Tabc=0
根据对极约束,我们就可以得到:
F p 1 = [ a b c ] Fp_1 =\begin{bmatrix} a \\ b \\ c\end{bmatrix} Fp1=abc
这样利用极线搜索的方式就可以找到最佳的像素匹配点(不考虑光度误差,认为是完全匹配)。

另外我们需要求出原匹配特征点三角计算的深度值 p ′ p' p和最佳像素点(极线搜索方式得到)的深度值 p p p,如下图:
请添加图片描述
这样我们就可以计算第k个状态的深度 μ k \mu_k μk和方差 σ k 2 \sigma_k^2 σk2
μ k = p , σ k = ∣ ∣ p ∣ ∣ − ∣ ∣ p ′ ∣ ∣   p ( d k   ∣   ξ k ) = N ( μ k ,   σ k 2 ) \mu_k =p,\quad \sigma_k = ||p||-||p' ||\\ ~\\ p(d_k\space | \space \xi_k ) = N(\mu_k,\space \sigma_k^2) μk=pσk=pp p(dk  ξk)=N(μk, σk2)
这样,之后就可以利用深度融合的方法进行更新,直到计算收敛。】
 
 

参考文献

  1. 机器人学中的概率估计 — Timothy D. Barfoot
  2. 视觉SLAM 十四讲 从理论到实践 ---- 高翔
  3. Engel J, Sturm J, Cremers D. Semi-dense Visual Odometry for a Monocular Camera. 2013.
  4. Engel J, Schps T, Cremers D. LSD-SLAM: Large-scale direct monocular SLAM[J]. Springer, Cham, 2014.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值