Belief Propagtion在计算机视觉视觉中有相当广泛的应用,当然这一切离不开MRF、CRF等图模型的使用。
很多视觉问题可以表述成一个能量函数的形式,例如,图像的语义分割或者叫做image parsing问题可以表述成一个能量函数的形式:
\begin{equation}
E(f)=\sum_{p\in \mathcal{P}}D_p(f_p)+\sum_{(p,q)\in \mathcal{N}}W(f_p,f_q)
\end{equation}
我们的目标是求这个函数的最小值,其中P 是图像的像素集合,L 是图像的像素所属的标签集合,这些标签对应的像素的我们要求的某些量值,例如图像恢复的像素值,或是更高级的图像语义分割中像素所属于的类别都可以表示。一个标注f 所做的就是给图像的每个像素一个标签,可以把f 看成一个向量或是矩阵,没了图像每个像素p∈P 一个标签f p ∈L 然后我们用一个能量函数衡量这个标注的好坏,就是上面这个式子。大部分都是由两个部分组成,第一个一般叫unary potential,暂且叫一元势函数,第二项一般叫pairwise potential,点对势函数。一般一元势函数的作用是体现单个像素点似然标签,例如在图像恢复里面,像素有很大的可能性是没有被noise更改的,或者在图像语义分割里面每个像素求到的类条件概率。pairwise potential一般是衡量像素与像素之间的标签关系的,关于像素之间的关系,一方面由于图像连续性,我们希望图像的相邻像素会有相同的标签,另一方面,我们也希望在一些必要的地方,例如物体的边缘什么的位置,能够保持这种边缘关系,不要都over smooth成一个标签了,一般这个叫做discontinuity preserving properity。N 在CV里面一般就是图像的四连接grid graph的边,在【1】中解释到,D p (f p ) 是想标签f p 分配给p 的cost,W(f p ,f q ) 是分配两个相邻像素的标签为f p ,f q 的cost,也叫不连续cost,最小化这个函数和最大化MRF的后验概率是等价的。
接着上面的讨论,一般来说discontinuity cost是和相邻像素的差值有关系的,所以一般可以这样定义W(f p ,f q )=V(f p ?f q ) ,这样的话要求的能量函数就成了
E(f)=∑ p∈P D p (f p )+∑ (p,q)∈N V(f p ?f q )
要解决这个问题可以用前一篇提到的belief propagation.也就是message passing
简单就是说对于每个像素都有一个属于某个类的belief,每个像素是四连接的,可以通过连接的边把这个belief传递出去。
参考:
【1】http://wenku.baidu.com/view/0483de18a76e58fafab00384.html