超像素—学习笔记

文章目录

    • 概念
    • 超像素判别条件
    • 超像素初始化的方法
    • 超像素算法
      • SLIC算法
  • 参考资料

概念

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

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

超像素—学习笔记_第1张图片
(a)是原始图像,(b)是基于人类视角的分割图(groundtruth),(c)是超像素分割的图像,(d)是基于(c)进行分割的图像。

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

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

超像素判别条件

  • Undersegmentation Error
    超像素—学习笔记_第2张图片
    如上图所示,白色是图像中的一个物体,红线是一个个超像素的轮廓,而粉红色的区域就是undersegmentation区域,这部分区域越大越不好。
  • Boundary Recall
    超像素—学习笔记_第3张图片
    如上图所示,黑色虚线及实线是图像中物体的轮廓,红线是超像素的边界。一个好的超像素算法,应该覆盖图像中物体的轮廓。在给予一定缓冲(粉红色区域)的情况下,超像素边缘可以覆盖图像物体边缘(黑色实线)越多越好。
  • Compactness score
    衡量超像素是否“紧实”。
    超像素—学习笔记_第4张图片

超像素初始化的方法

  • 种子像素初始化
    SLIC利用了简单的聚类(贪婪)算法,初始时,每一个聚类的中心被平均的分布在图像中,而超像素的个数,可以基本由这些中心点来决定。每一步迭代,种子像素合并周围的像素,形成超像素。
    超像素—学习笔记_第5张图片
  • 矩形区域初始化
    SEEDS的初始化是把图像平均分割成很多矩形,初始超像素即为这些矩形。每一步迭代,超像素的边缘不断变化,直到汇合。
    超像素—学习笔记_第6张图片

超像素算法

超像素—学习笔记_第7张图片

SLIC算法

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

SLIC优点:

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

算法步骤:

  • 初始化种子点(聚类中心):按照设定的超像素的个数,在图像内均匀的分配种子点。假设图像总共有N个像素点,预分割为K个相同尺寸的超像素,那么每个超像素的大小为N/K,则相邻种子点的距离(步长)近似为S=sqrt(N/K)。
  • 在种子点的n*n领域内重新选择种子点(一般取n=3):计算该领域内所有像素点的梯度值,将种子点移到该领域内梯度最小的地方。避免种子点落在梯度较大的轮廓边界上,以免影响后续聚类效果。
  • 在每个种子点周围的领域内为每个像素点分配类别标签(即属于哪个聚类中心):SLIC的搜索范围是2S2S,期望的超像素尺寸为SS,这样可以加速算法收敛。
  • 距离度量:包括颜色距离和空间距离。对每个搜索到的像素点,分别计算它和该种子点的距离。
    超像素—学习笔记_第8张图片
    其中, d c d_{c} dc代表颜色距离, d s d_{s} ds代表空间距离, N s N_{s} Ns是类内最大空间距离,定义为 N s = S = s q r t ( N / K ) N_{s}=S=sqrt(N/K) Ns=S=sqrt(N/K),适用于每个聚类。最大的颜色距离 N c N_{c} Nc既随图像不同而不同个,也随聚类不同而不同,所以取一个固定常数m(取值范围[1,40],一般取10)代替,最终的聚类度量如下:
    在这里插入图片描述
    由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。
  • 迭代优化:理论上上述步骤不断迭代知道误差收敛(每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。
  • 增强连通性:解决经过迭代后出现的多连通情况、超像素尺寸过小、单个超像素被切割成多个不连续超像素的情况。具体步骤为:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给临近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。

参考资料

SLIC与目前最优超像素算法的比较 SLIC Superpixels Compared to State-of-the-art Superpixel Methods
scikit-image.segmentation
SLIC超像素分割详解(一):简介
SLIC超像素分割详解(二):关键代码分析
SLIC Superpixels
超像素经典算法SLIC的代码的深度优化和分析。
超像素 (Superpixel)
超像素(Superpixel)的大致原理以及State-of-the-art?
SEEDS: Superpixels Extracted via Energy-Driven Sampling

你可能感兴趣的:(超像素—学习笔记)