SILC(simple linear iterative clustering)是一种图像分割算法。默认状况下,该算法的惟一参数是k,约等于超像素尺寸的指望数量。对于CIELAB彩色空间的图像,在相隔S像素上采样获得初始聚类中心。为了产生大体相同尺寸的超像素,格点的距离是$S=\sqrt{N/k}$。中心须要被移到3x3领域内的最低梯度处,这样作是为了不超像素中心在边缘和噪声点上。算法
接下来为每个像素$i$设置最近的聚类中心,该聚类中心的搜索区域要覆盖该像素的位置。这是本算法加速的关键,由于经过限制搜索区域的大小减少了距离计算的数量,而且相对于传统的k-means聚类算法有显著的速度优点,由于后者的每一个像素都必须和全部的聚类中心进行比较。一个超像素的预期空间范围是约为SxS的区域,这里对于类似像素的搜索是在超像素中心的2Sx2S区域完成。spa
一旦每一个像素被关联到最近的聚类中心后,就经过求聚类中心全部像素的均值来执行聚类中心的更新。使用$L_{2}$范数计算前一个聚类中心和当前聚类中心的残差。assignment和update步骤被重复迭代直到偏差收敛,可是咱们发现对于大多数图像10次迭代就够了。
it
1)经过在常规网格步长S处采样像素来初始化聚类中心原理
2)在3x3的领域内移动聚类中心到最低的梯度位置date
3)为每个像素$i$设置标签$l(i)$搜索
4)为每个像素设置距离$d(i)=\infty$遍历
5)对于每个聚类中心遍历2Sx2S区域内的每个像素点,计算距离决定是否更新像素的标签和距离im
6)更新聚类中心移动
7)重复步骤5)6)直到收敛标签