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)直到收敛

  • 相关阅读:
    vim的三种模式
    vi/vim 三种模式的操作
    vim(vi)下的三种模式及其相关命令
    linux下查看最消耗CPU、内存的进程
    hdu 5288 OO’s Sequence
    宿主机mac os无法连接到虚拟机centos
    cloudstack给已有zone加入物理网络
    oracle刚開始学习的人经常使用操作100问
    七天学会ASP.NET MVC (四)——用户授权认证问题
    JEECG常见问题大全征集
  • 原文地址:https://www.cnblogs.com/majiale/p/9208470.html
Copyright © 2011-2022 走看看