《SLIC Superpixels Compared to State-of-the-Art Superpixel Methods》阅读笔记

1.SLIC算法

SLIC是一种对图像进行无监督聚类得到超像素的一种方法,通过对K-means聚类算法改进得到,有效的降低了计算复杂度。相比于K-mean算法,SLIC算法将每个聚类中心的搜索范围从全图缩小到了2S×2S2S\times 2S
《SLIC Superpixels Compared to State-of-the-Art Superpixel Methods》阅读笔记

2.SLIC算法流程

1.SLIC算法是在CIELAB空间对图像进行像素聚类的,所以初始化KK个聚中心为:C={CkCk=[lk,ak,bk,xk,yk]}C=\{C_k|C_k=[l_k,a_k,b_k,x_k,y_k]\},并且假设图像像素为NN,所以初始化聚类中心的间隔大致为S=N/KS=\sqrt{N/K}。并且在3×33\times 3的邻域寻找梯度最小点,避免聚类中心位于噪点。(/Initialzation/)(/*Initialzation*/)
2.对于所有的聚类中心CkC_k,计算聚类中心2S×2S2S\times 2S邻域中像素点ii的距离d(i)=Dd(i)=D,并记录下相应的聚类中心编号l(i)=kl(i)=k。由于范围为2S×2S2S\times 2S的邻域,所以将会有重叠的像素点,所以在计算重叠区域的像素点时,将会在循环中迭代并保存最近的聚类中心距离和编号。(/Assignment/)(/*Assignment*/)
3.利用相同聚类中心编号的像素点取距离平均最小来更新新的聚类中心。得到新的聚类中心后与原来的聚类中心计算L2L_2范数得到残差损失EE,当残差损失EE小于设定阈值时停止迭代。到此得到所需的KK个聚类中心,根据i记录的编号得到分割的聚类结果(超像素)
《SLIC Superpixels Compared to State-of-the-Art Superpixel Methods》阅读笔记

3. 距离度量

SLIC算法在CIELAB颜色空间和欧式空间共同计算像素点之间的距离,所以每个像素点可以表示为[l,a,b,x,y][l,a,b,x,y]。定义像素之间的距离为:
dc=(ljli)2+(ajai)2+(bjbi)2(1) d_c=\sqrt{(l_j-l_i)^2+(a_j-a_i)^2+(b_j-b_i)^2}\tag1

ds=(xjxi)2+(yjyi)2(2) d_s=\sqrt{(x_j-x_i)^2+(y_j-y_i)^2}\tag2

D=(dcNc)2+(dsNs)2(3) D^{'}=\sqrt{{(\frac{d_c}{N_c})}^2+{(\frac{d_s}{N_s})}^2}\tag3

由于给定簇内的最大空间距离的期望应与采样间隔相对应,所以Ns=S=N/KN_s=S=\sqrt{N/K};因为颜色距离可以在不同的簇中或者不同的图像中显著变化;所以为了简化将其作为一个常数mm,并将其扩大mm被;则距离度量DD为:
D=dc2+(dsS)2m2(4) D^=\sqrt{{d_c}^2+{(\frac{d_s}{S})}^2m^2}\tag4

则常数mm可以作为一个影响因子来调节颜色空间和欧式空间的影响权重。当常数mm较大时,欧式空间距离影响更大,分割的区域更接近矩形;当常数mm较小时,颜色空间影响更大,更符合图像的边界,但是区域不规则。