基于图切算法的交互式图像分割技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于图切算法的交互式图像分割技术

梁潇20521123

李白20521120

摘要

图切算法是组合图论的经典算法之一。近年来,许多学者将其应用到图像和视频分割中,取得了很好的效果。本文简单介绍了图切算法和交互式图像分割技术,以及图切算法在交互式图像分割中的应用。在文章最后,我们实现了两种基于图切算法的图像分割(GraphCut 和GrabCut),并给出了较为典型的实验结果。

一、引言

图像分割指图像分成各具特性的区域并提取出感兴趣目标的技术和过程,它是由图像处理到图像分析的关键步骤,是一种基本的计算机视觉技术。只有在图像分割的基础上才能对目标进行特征提取和参数测量,使得更高层的图像分析和理解成为可能。因此对图像分割方法的研究具有十分重要的意义。

图像分割技术的研究已有几十年的历史,但至今人们并不能找到通用的方法能够适合于所有类型的图像。常用的图像分割技术可划分为四类:特征阈值或聚类、边缘检测、区域生长或区域提取。虽然这些方法分割灰度图像效果较好,但用于彩色图像的分割往往达不到理想的效果。

交互式图像分割是指,首先由用户以某种交互手段指定图像的部分前景与部分背景,然后算法以用户的输入作为分割的约束条件自动地计算出满足约束条件下的最佳分割。典型的交互手段包括用一把画刷在前景和背景处各画几笔(如[1][4]等)以及在前景的周围画一个方框(如[2])等。

基于图切算法的图像分割技术是近年来国际上图像分割领域的一个新的研究热点。该类方法将图像映射为赋权无向图,把像素视作节点,利用最小切割得到图像的最佳分割。

二、相关工作

基于图切算法的图像分割文献为数不少,下面我们将对一些常见的算法进行简要介绍:

Graph Cut[1]算法是一种直接基于图切算法的图像分割技术。它仅需要在前景和背景处各画几笔作为输入,算法将建立各个像素点与前景背景相似度的赋权图,并通过求解最小切割区分前景和背景。

Grabcut[2]算法方法的用户交互量很少,仅仅需要指定一个包含前景的矩形,随后用基于图切算法在图像中提取前景。

Lazy Snapping[4]系统则是对[1]的改进。通过预计算和聚类技术,该方法提供了一个即时反馈的平台,方便用户进行交互分割。

三、图像分割原理

3.1相关定义

图,

G V E

=是由点集V和边集E构成的有机整体。其中,点集V由一系列顶点组成,边集E 由一系列连结顶点的边组成。如果存在边(,)

p q,则称顶点p、q是相邻的。如果图G中的每一条边(,)

p q都存在与之相对应的边(,)

q p,则称图G 为无向图,否则称之为有向图。如果对于图G中的任意两个顶点p、q,总存在一系列的边1

(,)

p p、

12

(,)

p p……、

1

(,)

n n

p p

-

、(,)

n

p q使之连接,则称图G为联通图,否则称图G分离。若集合C是联通图G的边集E的一个子集,满足(),

G C V E C

=-是分离的,则称C是图G的一个切割。根据应用的需要,可以为图G中的每一

条边e赋予一个权值

e

w,称赋予权值的图为赋权图。

在赋权图G 中,可以定义切割C 的代价(cost )

为e

e C

C w

∈=

∑。称代价最小的切割为最小切。求

解赋权图的最小切是组合数论中的一个经典问题,存在低阶的多项式时间算法(如最大流最小切算法等),可以高效地求解。 3.2 交互式图像分割

从数学意义上讲,用户的输入将整张图片分成了三个部分:即前景(OBJ )、背景(BKG )以及未知(UNKNOWN )。算法的任务就是得到满足某种意义下的能量(代价)最小化的未知部分象素的分割,即确定其中每一个象素属于背景还是前景。一般地,图像分割的能量包含两方面,分别反映图像的区域属性及边界属性,不妨分别称之为区域能量以及边界能量。设某个图像的像素集合为P ,所有相邻像素的集合记为N (即p 、q 相邻等价于{,}p q N ∈)

。设1(,...,,...,)p P A A A A =是该图像的一个分割。其中,O B J p A =表示第p 个像素属于前景,而B K G p A =表示第p 个像素属于背景。记图像分割的总能量、区域能量及边界能量分别为()E A 、()R A 及()B A ,则有

()()()E A R A B A λ=⋅+

(1) ()()p p p P

R A R A ∈=

(2) {,}{,}()(,)p q p q p q N

B A B A A δ∈=

⋅∑

(3)

1 (,)0 p q

p q p q A A A A A A δ≠⎧=⎨

=⎩

(4)

参数λ用于反映区域能量与边界能量的相对重要性。λ越大则区域能量在总能量中所占的比重就越大,反之边界能量在总能量中所占比重越大。区域能量()R A 反映了将每一个像素p 分割为p A 所花费的代价。若像素p 与用户指定的背景像素越相似,则("B K G ")p R 越小;若像素p 与用户指定的前景像素越相似,则("O BJ ")p R 越小。衡量某个像素与用户指定的背景像素及前景像素的相似性,通常采用某种统计模型。这里,用户的输入起到统

计源的作用:它告诉程序,背景是什么样的,前景是什么样的。对于单色图片,一般采用灰度直方图作为统计模型[1]。对于彩色图片,统计直方图的开销太大,常用的统计模型是高斯混合模型(GMM: Gauss Mixture Model )[2]。边界能量()B A 反映了像素集P 中任意两个相邻像素p 、q ,当分割不连续,即p q A A ≠时所花费的代价。p 、q 越相似,则{,}p q B 越大;反之则{,}p q B 越小。一般地,取

{,}p q

c c p q B e

β--=,其中,,p q c c 分别是像素p 、q

的颜色。

最终,交互式图像分割转化为以下的优化问

题,

m in : ()()(),B K G if subto : .

O B J if p E A R A B A p B A p O λ=⋅+∈⎧=⎨∈⎩

其中,O 、B 分别是用户输入的前景集与背景集。

四、算法实现

4.1 Graph Cut 算法

使用图切算法可以高效地求解上节提出的优

化问题。

为此可以定义一个图,G V E =。其顶点集{,}V P S T = 。其中,P 对应于图像的像素集合,S 、T 是两个终端点(terminal )。边集{{,},{,}}

p P

E N

p

S p T ∈= 。其中,N 是图像中所有相邻像素的集合。各条边的权值按下表指定:

其中,

相关文档
最新文档