图像分割-超像素

定义:

超像素由一系列位置相邻且颜色、亮度、纹理等特征相似的像素点组成的小区域。这些小区域大多保留了进一步进行图像分割的有效信息,且一般不会破坏图像中物体的边界信息。超像素是将一幅像素级(pixel-level)的图,划分成区域级(district-level)的图,是对基本信息元素进行的抽象。

超像素最大的功能之一是作为图像处理其他算法的预处理,在不牺牲太大精确度的情况下降维。
超像素最直观的解释是把一些具有相似特性的像素“聚合”起来,形成一个更具有代表性的大“元素”。而这个新元素,将作为其他图像处理算法的基本单位。这样可以降低维度,剔除一些异常像素点。
理论上,任何图像分割算法的过度分割(over-segmentation)即可生成超像素。

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

超像素算法

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

SLIC优点:

  1. 生成的超像素如同细胞一般紧凑整齐,邻域特征比较容易表达。这样基于像素方法可以比较容易的改造为基于超像素的方法。
  2. 不仅可以分割彩色图像,也可以兼容分割灰度图。
  3. 需要设置的参数非常少,默认情况下只需要设置一个预分割的超像素的数量。
  4. 相比其他的超像素的分割方法,SLIC在运行速度、生成超像素的紧凑度、轮廓保持方面都比较理想。

算法步骤:

SLIC算法步骤

  1. 撒种子。将K个超像素中心分布到图像的像素点上。
  2. 微调种子的位置。以K为中心的3×3范围内,移动超像素中心到这9个点中梯度最小的点上。这样是为了避免超像素点落到噪点或者边界上。
  3. 初始化数据。取一个数组label保存每一个像素点属于哪个超像素。dis数组保存像素点到它属于的那个超像素中心的距离。
  4. 对每一个超像素中心x,它2S范围内的点:如果点到超像素中心x的距离(5维)小于这个点到它原来属于的超像素中心的距离,那么说明这个点属于超像素x。更新dis,更新label。
  5. 对每一个超像素中心,重新计算它的位置。
  6. 重复4 5 两步。

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

D^{'}=\sqrt{(\frac{d_{c}}{m})^{2}+(\frac{d_{s}}{S})^{2}}

由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。
迭代优化:理论上上述步骤不断迭代知道误差收敛(每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。
增强连通性:解决经过迭代后出现的多连通情况、超像素尺寸过小、单个超像素被切割成多个不连续超像素的情况。具体步骤为:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给临近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值