superpixel超像素分割:SLIC (K-means聚类算法的一个应用)

论文:SLIC Superpixels Compared to State-of-the-art Superpixel Methods(PAMI 2012)

SLIC全称:simple linear iterative cluster

基本思想

将图像由RGB转换到Lab颜色空间(为什么用Lab而不是RGB,作者给出的原因是CIELAB color space is widely considered as perceptually uniform for small color space,Lab更符合人类对颜色的视觉感知,颜色分布更均匀),然后对每个像素,将其(L,a,b)颜色值和(x,y)坐标组成一个5维的向量V[L,a,b,x,y]。两个像素的相似性则可由它们对应的5维向量的距离来度量,即距离越大,相似性越小。

补充RGB与LAB的区别:

RGB为红绿蓝三通道,一起组成颜色,其任一通道的值(0-255)表示该通道对应颜色的明暗度;

LAB:L为亮度(Luminosity),a和b为两个色彩通道,对L的修改不会改变图像的色相。

算法过程:

(1)首先在图像上生成K个种子点(聚类中心)(不像K-means初始聚类中心是随机分配的,SLIC里是均匀分布的)。

这K个种子点在图像上是均匀分布的。假设原图有N个像素,则分割后每块超像素大致有N/K个像素,每块超像素的边长大致为S=[N/K]^0.5,可看出两个聚类中心的距离为S,如下图所示:

此外,为了避免所选的种子点是边缘或者噪声点,算法做了改进:

对每个种子点,计算其3*3的窗口中像素的梯度,然后将聚类中心移动到梯度最小的那个像素上。梯度定义为:

                                                    G(x,y)=[V(x+1,y)-V(x-1,y)]^2+[V(x,y+1)-V(x,y-1)]^2

(2)为每个像素分配种子标签

对每个像素,在其2S*2S周围内搜索与其最近的种子点,并分配他们属于某一种子类,直到所有像素点都归类完毕,得到K个超像素

距离度量公式:

其中dc代表颜色距离,ds代表空间距离,Ns代表类内最大空间距离,Ns=S=sqrt(N/K)(对每个聚类都是一样的),Nc代表最大的颜色距离(其既随图片不同而不同,也随聚类不同而不同),一般取为一个固定常数:[1,40](一般取10)。最终的距离度量D'如下:

(3)重新计算聚类中心

计算这K个超像素里所有像素点的平均向量值,重新得到K个聚类中心,然后再以这K个中心去搜索其周围与其最为相似的若干像素,所有像素都归类完后重新得到K个超像素,更新聚类中心,再次迭代,如此反复直到收敛。

(4)增强区域连通性

最后经过迭代优化得到的superpixel图可能出现以下情况:超像素过小、孤立点。可通过增强连通性解决。具体是如何实现的,参见代码:

https://ivrl.epfl.ch/research-2/research-current/research-superpixels/

算法流程

推一个该算法优化(浮点数计算内存优化)的博客:

https://www.cnblogs.com/Imageshop/p/6193433.html

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值