介绍
综述
我将会用三篇博客来同大家讨论Graph Cut技术在图像分割上的应用,欢迎各位在评论中留言讨论。
这三篇内容分别是
(TODO list)
- MAP-MRF
- Max-flow/Min-cut
- Grab-cut
这三篇文章先是从estimation theory的角度讨论MAP-MRF从而可以引出:通过求一个能量函数的最小化来解决图像分割问题。这也就等同于 Max-flow/Min-cut问题,最后Max-flow的“升级版”是Grab-cut
在本篇中我将讨论MAP-MRF,目的是理解了MAP-MRF会帮助我们理解Max-flow。
图像分割及其应用方向
作为系列博文的第一篇,我感觉有必要先提及一下什么是图像分割。顾名思义,我们利用模型将一张图片分成几个子区域,每个区域内的像素属于同一个类别,这要求子区域内像素具有相同的特征。现如今,主要流行的方法是CNN那一支,但是传统的方法依旧具有很好的潜力。现在,CNN上空浮现着一层阴影那就是我们对于一个特定的网络,很难回答在训练过程中究竟发生了什么。而且CNN对超参很敏感,需要不断的实验来得到一个理想的结果。
而通过回顾传统的方法,可以加深对CNN的理解,也是本篇写作的出发点,因此我在此讨论的更多是公式和思想,代码实现不在此文范围内(请查看opencv源码,如果有需要的话)。
应用方向有很多,比如医学中,可以用图像分割来处理x光CT扫描照片,也可以用来做细胞分割等等。在生活场景中可以用来做物品识别。影视行业拿来做抠图也是可以的,等等。而需要强调的是,凡是具有图片性质的数据,都可以用图像分割的技术来帮助分类与定位。
MAP-MRF简介
MAP-MRF是Maximum a posteriori Markov random fields的缩写。中文名应该是最大化后验马可夫随机场。MAP-MRF有很广泛的应用,而在图像处理领域中,它可以用来做图像分割。在本文中我们可以看到,MAP-MRF等同于求能量方程的最小值。
MAP-MRF详情
下文基于**二元图像分割(binary segmentation)**进行讨论
定义
在一个图片中我们先定义一个集合, 用来表示每一个像素。
我们用集合来表示每一个像素所隶属的类别,在二元图像分割中. 0对应背景,1对应前
景。
接着我们定义一个场,
这里的也叫做场的配置(configuration)
既然是马可夫场我们还需要定义一个领域系统. 就是像素的领域。
是马可夫随机场 当且仅当
- 这也意味着的值只取决于领域内的的值。
我们可以知道吧MRF转化成Gibbs 分布,从而可以得到如下公式
(1)
其中c是clique的意思,在图像处理中这个c等同于我们定义的N。是clique potential, 其实就是一个用来描述区域内像素关系的量。所以在图像处理这一块我们可以用邻域系统来描述clique, 如下的公式:
(2)
- 其中V_{p,q}是用来衡量两个相邻像素间的相似程度的函数,随便你怎么设计。但是通常要求:
- 非负
- 值的大小于像素间的相似性成正比,于Euclidean距离成反比。
图像分割问题就是我观察到一个图像记作集合,它包含了每一个像素观测到的值。我需要估算的是 这么一个likelihood。
根据Bayes’ Law我们可以写出:
(3)
其中已经在**(2)**中给出了,而是数据分布情况,是实现知道的。比较简单的是建立一个直方图的来获取它。
那么这个 MAP 的过程可以写成对于f:
-
-
-
-
可以看到MAP-MRF 最终可以表示为求能量方程最小值的问题。 这是一个NP-hard问题,于是就有了很多种的图割算法来算近似解以提高效率。下一篇博文我将介绍什么是Max-flow/Min-cut