本文首先展示了基于马尔科夫随机场的噪声图像分割例子,然后提供了C++源代码。本文的源代码是学习MRF入门的好例子。
1. MRF用于求解最优化问题的原理
在本网站的另外一篇文章《Levenberg-Marquardt快速入门教程》展示了如何运用LM算法进行最优化计算。可是,在图像处理或计算机视觉问题中,往往不能直接使用LM方法求解析解。根据贝叶斯定理,大量的图像处理问题,最终都能被转化成为求后验分布的最值问题。以图像分割为例,如果图像大小是128x128,假设每个像素有4种状态,那么共有4128*128 ≈10^9864种可能。如何寻找最合适的解?
马尔科夫随机场模型是在图像处理中广泛运用的模型[1][2]。本文主要讨论在MRF框架下的图像分割。
可以使用随机抽样的方法,也就是蒙特卡洛仿真方法来求最优解。下图是基于蒙特卡洛(随机抽样)的图像分割原理:通过一系列随机抽样,运用模拟退火的思想求全局最值,最终获得图像分割问题的MAP解。
2 源代码下载:
点击下载此文件(26KB)
上面的C++源代码包含3个主要的近似推理算法。该源代码还用到了OPENCV进行显示。
2.1 Gibbs sampling, simulated annealing
2.2 Iterated condtional modes (ICM)
2.3 Metroplis sampling
参考文献
[1]G Winkler. Image analysis, random fields and dynamic Monte Carlo methods. 1995
[2] 沈乐君. 马尔科夫随机场与实时多目标跟踪算法(讲座). 2011
关键词:马尔可夫链,马尔可夫模型,随机场,马尔可夫随机场,源代码,source code,去噪,图像分割