《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法

Learn about Superpixel 超像素

1 超像素简介

前些年图像分割领域用的较多的“分水岭算法”,在作业中我自己学习了另外一种目前在图像分割领域用的较多的算法——超像素分割算法,通过查阅“超像素”的定义以及基于超像素的图像分割的算法的工作步骤,我熟悉了这一领域,最后我通过阅读SLIC(simple linear iterative clustering,简单线性迭代聚类)这一经典的超像素分割方法进一步熟悉了超像素领域。
2003 年,任晓峰教授在图像分割技术层面上提出了超像素分割的这一概念,超像素具体是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤,从而大大的提高计算的效率。基于超像素的图像分割已经证明在深度估算(depth estimation),图像分割(image segmentation),骨架提取(skeletonization),人体模型估计(body model estimation),目标定位(object localization)等等领域十分有效。
超像素的概念一般用于图像分割领域,即为超像素分割。超像素分割再细化应该属于过分割(over-segmentation),即理论上,任何图像分割算法的过度分割(over-segmentation),即可生成超像素。超像素是由一系列位置相邻且颜色、亮度、纹理等特征相似的像素点组成的小区域。这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。具体来说,超像素就是把一幅像素级(pixel-level)的图,划分成区域级(district-level)的图,是对基本信息元素进行的抽象。就像下面这幅图显示的一样:
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第1张图片
其中,图(a)是原始图片,图(b)是基于人类视角的分割图,也就是所谓的Ground truth,图©就是超像素分割的图片,图(d)是基于图©进行分割所得到的图片。
从上面的几幅图的对比可以看出,超像素分割的目的是,比如我们对一幅图像进行超像素分割,分割之后,会得到许多大小不一的区域,我们可以从这些区域中提取出有效的信息,比如颜色直方图、纹理信息。比如有一个人,我们可以对这个人的图像进行超像素分割,进而通过对每个小区域的特征提取,辨识出这些区域是处于人体的哪个部分(头部、肩部、腿部),进而建立人体的关节图像。

2 超像素算法判别优劣条件

一般业内参考以下三个指标:
Under segmentation Error:
例如,下图中白色是原图中的一个物体,红线是一个个超像素的轮廓,而粉红色的区域是Under Segmentation的区域,从图中可以看出,这部分区域的面积越大就越不好。
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第2张图片
Boundary Recall:
下图中,黑色虚线以及实现是原图物体的轮廓,红线是超像素的边界。一个优秀的超像素算法应该覆盖原图物体的轮廓,在给予一定缓冲(粉红色区域)的情况下,超像素的边缘可以覆盖原图物体边缘的越多(黑色实线),该算法就越好。
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第3张图片
Compactness score:
这个指标衡量了一个超像素是否“紧实”,即计算每一个类中各个点到聚类中心的平均距离,其越低意味着类内聚类距离越近,也就是更加“紧实”,如下图。
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第4张图片

3 超像素算法的初始化

一般情况下超像素算法有两种:
种子像素初始化:
例如在SLIC中就是使用了一个简单的聚类(贪婪)算法,初始时刻,每一个聚类的中心分别平均的分布在原图中。而超像素的个数,也可以基本由这些中心点来决定。每一次的迭代,种子像素就会合并周围的像素,从而形成超像素。
矩形区域初始化:
SEEDS的初始化,是把原图先平均地分割成很多矩形,初始的超像素即为这些矩形。每一步迭代,超像素的边缘不断变化,直到converge。

4 超像素分割常见算法

目前,常见的超像素分割方法包括: Graph-based、N-Cut、Turbo-pixel、Quick-shift、 Graph-cut a、Graph-cut b以及SLIC。下面将详细说明其中使用较多的SLIC超分辨算法的具体内容。
SLIC超分辨分割算法
到目前为止,使用较多的超像素分割方法为SLIC(simple linear iterative clustering,简单线性迭代聚类)。其在2012年提出,下面是它的伪代码:
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第5张图片
算法基于是k-means的思路,将图像从RGB颜色空间转换到CIE-Lab颜色空间(Lab颜色模型弥补了RGB和CMYK两种色彩模式的不足。它是一种设备无关的颜色模型,也是一种基于生理特征的颜色模型。 其由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。Lab模式既不依赖光线,也不依赖于颜料,它是CIE组织确定的一个理论上包括了人眼可以看见的所有色彩的色彩模式。),对应每个像素的(L,a,b)颜色值和(x,y)坐标组成一个5维向量V[L,a,b,x,y], 然后对5维特征向量构造距离度量标准,对图像像素进行局部聚类的过程。两个像素的相似性即可由它们的向量距离来度量,距离越大,相似性越小。
通过阅读原文,其具体步骤为:
首先生成K个种子点,然后在每个种子点的周围空间里搜索距离该种子点最近的若干像素,将他们归为与该种子点一类,直到所有像素点都归类完毕。然后计算这K个超像素里所有像素点的平均向量值,重新得到K个聚类中心,然后再以这K个中心去搜索其周围与其最为相似的若干像素,所有像素都归类完后重新得到K个超像素,更新聚类中心,再次迭代,如此反复直到收敛。该算法接受一个参数K,用于指定生成的超像素数目。设原图有N个像素,则分割后每块超像素大致有N/K个像素,每块超像素的边长大致为S=[N/K]^0.5,开始我们每隔S个像素取一个聚类中心,然后以这个聚类中心的周围2S2S为其搜索空间,与其最为相似的若干点即在此空间中搜寻。这里有一个问题,为了避免所选的聚类中心是边缘和噪声这样的不合理点,算法做了改进,即在33的窗口中将聚类中心移动到梯度最小的区域,在这里我们将梯度定义为:
在这里插入图片描述
这样就可以避免上面所说的情况。 因为L,a,b在CIE-Lab颜色空间,L,a,b的大小有限制,而图像尺寸则没有限制,如果图片的尺寸比较大,会造成衡量向量距离时空间距离(x,y)的影响过大,所以需要调制空间距离(x,y)的影响,所以需要对x,y进行normalize。其中,改进向量距离的度量如下公式所示:
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第6张图片
m用来调整d_xy的权值,一般为1-20,在算法中设置为10。最后可能出现一些小的区域d被标记为归属某一块超像素但却与这块超像素没有连接,这就需要把这块小区域d重新归类为与这块小区域d连接的最大的超像素中去,以保证每块超像素的完整。
SLIC算法的优点如下:1. 生成的超像素如同细胞一般紧凑整齐,邻域特征比较容易表达。这样基于像素的方法可以比较容易的改造为基于超像素的方法。2.不仅可以分割彩色图,也可以兼容分割灰度图。3.需要设置的参数非常少,默认情况下只需要设置一个预分割的超像素的数量。4.相比其他的超像素分割方法,SLIC在运行速度、生成超像素的紧凑度、轮廓保持方面都比较理想。下图中是文章[1]进行的多个基于超像素的图像分割结果的对比图:
《数字图像处理》Learn about Superpixel 超像素介绍 非深度学习方法_第7张图片
参考文献
[1] Achanta R, Shaji A, Smith K, et al. SLIC superpixels compared to state-of-the-art superpixel methods[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 34(11): 2274-2282.
[2] Van den Bergh M, Boix X, Roig G, et al. Seeds: Superpixels extracted via energy-driven sampling[C]//European conference on computer vision. Springer, Berlin, Heidelberg, 2012: 13-26.
[3] Van den Bergh M, Boix X, Roig G, et al. Seeds: Superpixels extracted via energy-driven sampling[J]. International Journal of Computer Vision, 2015, 111(3): 298-314.
[4] Van den Bergh M, Roig G, Boix X, et al. Online video seeds for temporal window objectness[C]//Proceedings of the IEEE international conference on computer vision. 2013: 377-384.

你可能感兴趣的:(个人作品,学习笔记)