zoukankan      html  css  js  c++  java
  • 图像超像素(superpixels)分割算法——简单线性迭代聚类(SLIC)

    原理

      SILC(simple linear iterative clustering)是一种图像分割算法。默认情况下,该算法的唯一参数是k,约等于超像素尺寸的期望数量。对于CIELAB彩色空间的图像,在相隔S像素上采样得到初始聚类中心。为了产生大致相同尺寸的超像素,格点的距离是$S=sqrt{N/k}$。中心需要被移到3x3领域内的最低梯度处,这样做是为了避免超像素中心在边缘和噪声点上。

      接下来为每一个像素$i$设置最近的聚类中心,该聚类中心的搜索区域要覆盖该像素的位置。这是本算法加速的关键,因为通过限制搜索区域的大小减小了距离计算的数量,并且相对于传统的k-means聚类算法有显著的速度优势,因为后者的每个像素都必须和所有的聚类中心进行比较。一个超像素的预期空间范围是约为SxS的区域,这里对于相似像素的搜索是在超像素中心的2Sx2S区域完成。

      一旦每个像素被关联到最近的聚类中心后,就通过求聚类中心所有像素的均值来执行聚类中心的更新。使用$L_{2}$范数计算前一个聚类中心和当前聚类中心的残差。assignment和update步骤被重复迭代直到误差收敛,但是我们发现对于大多数图像10次迭代就够了。

    算法步骤

    1)通过在常规网格步长S处采样像素来初始化聚类中心

    2)在3x3的领域内移动聚类中心到最低的梯度位置

    3)为每一个像素$i$设置标签$l(i)$

    4)为每一个像素设置距离$d(i)=infty$

    5)对于每一个聚类中心遍历2Sx2S区域内的每一个像素点,计算距离决定是否更新像素的标签和距离

    6)更新聚类中心

    7)重复步骤5)6)直到收敛

  • 相关阅读:
    Python中常见字符串去除空格的方法总结
    Python多版本pip安装库的问题
    报错No module named IPython的解决方法
    Win10家庭版如何启用本地组策略
    Oracle 11gR2新建空表不分配Segment
    Hadoop Balance
    Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory
    Hive文件格式
    Hive报错之java.sql.SQLException: Field 'IS_STOREDASSUBDIRECTORIES' doesn't have a default value
    Oracle之Union与Union all的区别
  • 原文地址:https://www.cnblogs.com/majiale/p/9208470.html
Copyright © 2011-2022 走看看