基于置信传播(BP,Belief Propagation)的立体匹配算法

简介

基于置信传播的立体匹配算法是一种经典的全局立体匹配算法,其主要思想是在立体匹配过程中引入置信度的概念,置信度表示相邻节点的不同视差标记的可信度,通过一定迭代次数的消息迭代传播更新后,全局能量函数区域稳定,该节点的最优视差就是使得后验概率最大处节点的视差标记。

基础知识

条件概率:是指在Y事件发生的条件下X事件的概率。例如:明天下雨的概率是多少?明天路上拥堵的概率是多少?知道明天要下雨的话,路上拥堵的概率又是多少?它应该比没有下雨的情况下要高,这就是条件概率。

从上面两个等式我们可以轻松地推导出贝叶斯公式

在这个公式中,我们把P(X|Y)叫做是给定Y下X的后验分布。因此,我们也把P(X)叫做先验分布。

联合概率指的是包含多个条件且所有条件同时成立的概率。

p(XH, XP, XC, XW) = p(XH | XP) * p(XP | XC, XW) * p(XC) * p(XW)

在这里插入图片描述
边缘概率:即某个事件发生的概率,而与其他事件无关。边缘概率是这样计算的:在联合概率中,把最终结果中不需要的那些事件合并成其事件的全概率而消失(在两个离散随机变量的条件下,对于其中任一行或任一列求和,得到的概率就是边缘概率)。在本例中,指的是各种状态下所有其他节点对本节点影响的概率的和,即针对不同的Hangover进行求和,得到的就是Hangover的边缘概率:
在这里插入图片描述
优化得到如下公式
在这里插入图片描述
接下来就是获得观测变量XH的估计,需要使p(XH)的值最大,即:
在这里插入图片描述
如果贝叶斯网络比较小,我们可以很简单的做边缘求和运算,但是如果问题规模较大,整个运算复杂度和数据将会以指数级增长。而利用BP算法去计算这样的网络问题,可以使得运算复杂度只和节点数线性相关。在这种意义上,BP算法在大型贝叶斯网络推断问题中扮演着越来越重要的作用。

马尔可夫随机场(Markov Random Field,MRF)

在概率图模型中,每个结点表示一个随机变量,结点之间的边表示这些随机变量之间的概率关系。在概率图模型中,所有随机变量的联合概率分布可以表示成若干随机变量子集的乘积。典型的概率图模型包括贝叶斯网和马尔可夫网。贝叶斯网是有向图模型,用于表示随机变量之间的因果关系,而马尔可夫网是无向图模型,用于表示随机变量的概率分布和概率推理,或者说是随机变量之间的软约束关系。

BP算法的基础就是建立于MRF上,MRF是一种条件概率模型,它可以被认为是马尔可夫链的一种推广,其对于场内所有节点的相关性都能很有效的描述。

假设我们观察到yi的一些信息,需要利用这些已知信息去推断关于隐含的场景xi的另外一些信息。每个顶点i都有一个状态xi和一个观测值yi每个状态值和观测值之间的似然函数为ϕ\phiϕi(xi,yi),反映了i处xi和yi存在统计依赖性,表示节点i的联合相容度,相邻邻居节点之间的势能量为ψ\psiψij(xi,yj),ψ\psiψij(xi,yj)也称为相邻节点的不连续代价,反映了节点变量xi和xj之间的相容性,体现了随机场自身具备的约束条件。

灰色点表示隐含节点xi,黑色点表示显式节点yi,实线表示存在似然函数ϕ\phiϕi,虚线表示存在一对是函数ψ\psiψijψ\psiψji
在这里插入图片描述
联合概率为:
在这里插入图片描述
其中,Z是一个归一化常数。
边缘概率为:
在这里插入图片描述
马尔可夫随机场被认为是成对的,正是因为隐含节点和显式节点的成对性,而每一对节点中的隐含节点的似然函数只受其对应的显式节点所影响。成对的MRF相比较与贝叶斯网络来说它是非直接的。同样的,直接计算边缘概率也会导致时间上的指数级增长。

标准置信传播算法思想

置信传播算法将待匹配空间看作是三个耦合的马尔可夫随机场,把视点图像中的像素点与MRF中的节点一一对应起来,然后对MRF网络节点间的消息进行迭代更新与传播,迭代完成后,求出所有节点的置信度值,最后通过结点的置信度得到稠密的视差图。

标准的置信传播算法根据引用数学模型的不同分为和-积(Sum-Product)和最大-积(Max-Product)置信传播算法两种。和-积计算每个节点的边缘分布概率,而最大-积计算整个MRF的最大后验概率。立体匹配中的置信传播算法使用的是最大-积置信传播算法。算法的主要思想是通过相邻节点之间相互传递消息而更新整个MRF的标记状态,所有节点的消息并行传播迭代更新,当所有节点的置信度都收敛时,就将此时每一个节点的标记称为最优标记,MRF达到了收敛状态,消息传播是进行加速传播的,消息只沿一个方向传播,能够马上更新各个节点的消息且不需要存储上次迭代的消息。

标准置信传播算法步骤

标准最大-积置信传播算法主要包括四个步骤:1)给初始节点的消息赋初值;2)迭代传播消息;3)迭代更新消息的置信度;4)计算节点置信度的最大后验概率获得节点的视差值

(1)给初始节点的消息赋初值
根据下面的公式初始化节点的消息值
在这里插入图片描述
其中,节点{ xsx_sxs}是隐藏的变量,节点{ ysy_sys}是已知变量,msm_smst_tt(xsx_sxs,xtx_txt)表示从节点xsx_sxsxtx_txt传播的消息,msm_sms(xsx_sxs,ysy_sys)表示从节点ysy_sysxsx_sxs的信息,简单的分别把msm_sms

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值