深度滤波器(3)——深度滤波器的原理及实现

在前两篇文章中,咱们介绍了三角化恢复深度信息,并对三角化过程当中的偏差进行了分析和讨论。spa

今天,咱们就进入咱们这个系列的正题:深度滤波器的原理及实现blog

一提到深度滤波器,你们确定首先会以为深不可测,听名字就以为高大上。其实,有了前面的预备知识,不难理解今天要讲解的深度滤波器的原理。原理

 

咱们今天给你们介绍的是比较简单的高斯分布假设下的深度滤波器。im

高斯分布是天然界中最多见的一种分布形式,而且也符合绝大部分的天然状况。简单起见,咱们先假设三角化后恢复的深度值符合高斯分布。对于像素点的深度值d,知足:数据

P(d) = N(μ,σ2)img

每当新的数据过来,咱们就要利用新的观测数据更新原有的深度d的分布。e2e

 

这里的数据融合的方式与经典的Kalman滤波方式大同小异。思考

这里,咱们利用观测方程进行信息融合。解决方案

假设新计算出来的深度数据的分布为:co

P(dobs) = N(μobs,σobs2)

咱们将新计算出来的深度数据乘在原来的分布上,进行信息融合的更新:

咱们知道,利用两个高斯分布的乘积的分布公式,能够获得融合后的高斯分布:

P(dfuse) = N(μfuse, σfuse2)

其中,

 

那么问题来了,这里的μobs,σobs2该如何才能获得呢?

这里的μobs实际上就是每次咱们新三角化出来的深度值,而对于σobs2,若是你还对上一篇文章有印象的话,就会记得咱们推导了一系列公式所获得的那个 δp(不肯定度σobs),若是你忘记了,能够回去上一篇文章再复习一下。

那么原始的分布μ,σ2该如何获得呢?

这个很简单,第一次三角化出来的μ,σ2就能够做为初始值,而后每次新三角化出一个三维点,就去更新深度值的分布。

 

至此,咱们彷佛获得了一个不错的结果:既简单又优美的公式。

实际上还会存在什么问题呢?

(1)实际的深度值分布是否真的符合高斯分布?

(2)若是咱们中间过程有一次三角化的过程求错了,而且还进行了信息融合,会有什么后果?

(3)咱们如何避免第二个问题中所提出的状况?

 

这些问题留给读者去思考,也欢迎在下方给我留言,一块儿探讨这些问题的解决方案。

下篇文章我将会带着你们一块儿分析一下高博的单目稠密重建的代码,有了前三篇文章的理论铺垫,相信你读起来下一篇文章中的代码会如鱼得水。

咱们下一期再见!

相关文章
相关标签/搜索