显著性检测算法常通过计算像素之间的差异来确定显著性,但是对像素的选取通常是固定的,容易忽略图像中物体的边界信息,导致最终检测结果中目标的边界比较模糊。
基于超像素和马尔科夫链的显著性区域检测算法,将图像分割成若干个超像素,用Wasserstein距离衡量超像素之间的颜色、方向和位置的差异来建立马尔科夫链,将显著性检测问题转换成马尔可夫链上的随机游走问题,使用它的平稳分布作为图像的显著度。
1、引言
人类可以在观察到的图像中迅速找到自己感兴趣的目标,并对其赋予更高的处理优先级。显著性区域检测的研究就是模拟人眼这种视觉特性,将图像中人眼感兴趣的区域从复杂的背景中提取出来。
对显著性区域的检测通常基于两类计算模型:
一类是基于低级视觉特性的自下向上的计算模型,这类模型由数据驱动,处理速度快。例如部分研究者认为图像中越复杂的地方,显著性越高。Lowe使用高斯差分函数计算图像亮度变化的剧烈程度,Sebe使用图像的小波系数衡量图像的复杂程度,Kadir计算局部亮度分布的熵来衡量复杂性。这类基于复杂性的算法鲁棒性强,但图像的复杂性并不能反映图像的全部显著性信息。Itti针对之前算法的不足设计了一种新算法,将图像分成颜色、方向和亮度三个通道,对不同通道进行向下采样和高斯滤波建立高斯金字塔,通过中心一周边算子计算不同通道、不同等级的显著图,最后归一化得到最终显著图。Harel将概率学的方法运用到显著性检测中,提出了GBVS算法,对图像中不同像素建立马尔科夫链,通过其平稳分布来计算图像的显著性。
另一类是基于高级视觉特性的自上向下的计算模型,这类模型由任务和知识驱动,需要对大量图像数据库进行学习,而且检测结果很大程度上取决于观察的目的性,通用性较差,计算速度也较慢,所以显著性检测多采用自下向上的视觉模型。
目前大部分显著性检测算法都是基于图像中像素之间的差异计算显著性的,为了减小计算的复杂度常将多个像素组成像素块,但是传统的算法中只是将位置相近的像素组合在一起,这种组合方式忽略了图像中物体的边界信息,导致最终的检测结果只能大概地包围主要目标,不能准确地描绘主要目标的边界。
本方法:使用SLIC(simple linear iterative clustering)图像分割算法将图像分成若干个超像素,使用每个超像素的颜色、方向的正态分布和中心点的位置作为每个超像素的特征,计算不同超像素在L2范围下的Wasserstein距离,借助马尔科夫链状态转移的特点模拟人眼视觉神经元相互沟通的机制,对所有超像素建立马尔科夫链,以马尔科夫链的平稳分布作为图像的显著图。这种以超像素为基本计算单位的算法的检测结果可以非常准确地描绘出主要目标的边界。
2、显著图计算方法
显著性区域检测算法具体流程如图所示:
算法主要分为两个部分:1)、提取图像的超像素及其特征;2)、对所有的超像素建立马尔科夫链。
人类在观察图像时是以区域为基本单位的。借鉴这种视觉特性,本文以超像素为基本处理单位。生物学研究表明人类的单个视觉神经元是处于一个相互连通的网络:视觉皮质中,神经元之间通过突触相互传递信息从而做出决定,例如场景中那块区域属于显著区域。本文使用马尔科夫链模拟这种机制,对图像所有超像素建立联系,使用最终的平稳分布作为显著图。
2.1 提取超像素及其特征
简单线性迭代分割(simple linear iterative clustering,SLIC)算法结构简单,需要参数少,可以有效地将图像分成大小和形状不同的像素块,符合显著性检测算法对图像分块的需要,本文使用SLIC算法提取图像的超像素,如下图:
图像被分成了若干个不规则的图像块,每个图像块称为超像素。可以看出超像素的边界很大程度上贴近了图中物体的边界,每个超像素都是一个具有代表性的区域,它不仅含有底层的颜色、方向信息,而且还包含了中层的结构信息。使用超像素作为基本计算单位可以保证最终的计算结果对物体的边界表示更加准确。
转自:http://blog.sina.com.cn/s/blog_948bc6fb0102vgux.html
参考文献:
基于马尔科夫链的显著性区域检测算法研究,计算机工程与应用