超像素分割算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超像素分割算法相关的知识,希望对你有一定的参考价值。

参考技术A 姓名:袁卓成;学号:20021210612; 学院:电子工程学院

转自 https://blog.csdn.net/studyeboy/article/details/93981017

【嵌牛导读】 本文介绍了超像素分割算法的原理

【嵌牛鼻子】 超像素分割

【嵌牛提问】 超像素块的形状由哪些参数来控制?

【嵌牛正文】

超像素由一系列位置相邻且颜色、亮度、纹理等特征相似的像素点组成的小区域。这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。

超像素是吧一幅像素级(pixel-level)的图,划分成区域级(district-level)的图,是对基本信息元素进行的抽象。

超像素最大的功能之一是作为图像处理其他算法的预处理,在不牺牲太大精确度的情况下降维。

超像素最直观的解释是把一些具有相似特性的像素“聚合”起来,形成一个更具有代表性的大“元素”。而这个新元素,将作为其他图像处理算法的基本单位。这样可以降低维度,剔除一些异常像素点。

理论上,任何图像分割算法的过度分割(over-segmentation)即可生成超像素。

图像分割中的超像素是指具有相似纹理、颜色、亮度等特征的相邻相似构成的具有一定意义的不规则的像素块。它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图像特征,很大程度上降低了图像处理的复杂度,所以通常作为分割算法的预处理步骤。

SLIC利用了简单的聚类(贪婪)算法,初始时,每一个聚类的中心被平均的分布在图像中,而超像素的个数,可以基本由这些中心点来决定。每一步迭代,种子像素合并周围的像素,形成超像素。

SEEDS的初始化是把图像平均分割成很多矩形,初始超像素即为这些矩形。每一步迭代,超像素的边缘不断变化,直到汇合。

SLIC(simple linear iterative clustering),即简单的线性迭代聚类。它是2010年提出的一种思想简单、实现方便的算法,将彩色图像转换为CIELAB颜色空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像像素进行局部聚类的过程。SLIC算法能生成紧凑近似均匀的超像素,在运算速度,物体轮廓保持、超像素形状方面具有较高的综合评价,比较符合人们期望的分割效果。

生成的超像素如同细胞一般紧凑整齐,邻域特征比较容易表达。这样基于像素方法可以比较容易的改造为基于超像素的方法。

不仅可以分割彩色图像,也可以兼容分割灰度图。

需要设置的参数非常少,默认情况下只需要设置一个预分割的超像素的数量。

相比其他的超像素的分割方法,SLIC在运行速度、生成超像素的紧凑度、轮廓保持方面都比较理想。

初始化种子点(聚类中心):按照设定的超像素的个数,在图像内均匀的分配种子点。假设图像总共有N个像素点,预分割为K个相同尺寸的超像素,那么每个超像素的大小为N/K,则相邻种子点的距离(步长)近似为S = sqrt(N/K)。

在种子点的n*n领域内重新选择种子点(一般取n=3):计算该领域内所有像素点的梯度值,将种子点移到该领域内梯度最小的地方。避免种子点落在梯度较大的轮廓边界上,以免影响后续聚类效果。

在每个种子点周围的领域内为每个像素点分配类别标签(即属于哪个聚类中心):SLIC的搜索范围是2Sx2S,期望的超像素尺寸为SxS,这样可以加速算法收敛。

距离度量:包括颜色距离和空间距离。对每个搜索到的像素点,分别计算它和该种子点的距离。

其中, 代表颜色距离, 代表空间距离, 是类内最大空间距离,定义为 = S = sqrt(N/K) ,适用于每个聚类。最大的颜色距离 既随图像不同而不同个,也随聚类不同而不同,所以取一个固定常数m(取值范围[1,40],一般取10)代替,最终的聚类度量如下:

由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。

迭代优化:理论上上述步骤不断迭代知道误差收敛(每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。

增强连通性:解决经过迭代后出现的多连通情况、超像素尺寸过小、单个超像素被切割成多个不连续超像素的情况。具体步骤为:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给临近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。

以上是关于超像素分割算法的主要内容,如果未能解决你的问题,请参考以下文章

超像素分割的涵义

如何获取超像素分割后的每个小块

youcans 的 OpenCV 例程200篇172.SLIC 超像素区域分割算法比较

基于超像素分割和图像配准的深度图像修复方法

(论)知网参考论文

SLIC超像素分割slicmex源代码在windows下matlab中mex出错的修正