SLIC算法 & 像素美术素材生成¶
实现超像素领域经典算法SLIC,项目已放至Github
超像素(SuperPixel)¶
超像素是 2003 年 Xiaofeng Ren1 提出和发展起来的图像分割技术,是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块
它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤
简单线性迭代聚类(SLIC)¶
超像素点分割的方法包括了提取轮廓、聚类、梯度上升等多种
SLIC2 是基于K-means聚类的超像素分割算法,具有简单灵活、效果好、处理速度快等优势
1. 图像预处理¶
将图像从 RGB 颜色空间转换到 CIE-Lab 颜色空间,Lab 颜色空间更符合人类对颜色的视觉感知。这个空间里的距离能反映人感觉到的颜色差别,相关计算更为准确
2. 初始化聚类中心¶
根据参数确定超像素的数目,也就是需要划分为多少个区域。假设图片有\(N\)个像素点,预计分割为\(K\)个超像素,每个超像素大小为\(N/K\),相邻中心距离为\(S=Sqr(N/K)\),得到\(K\)个聚类坐标
3. 优化初始聚类中心¶
聚类中心的\(3\times3\)邻域内选择梯度最小的像素点作为新的聚类中心
把图像看成二维离散函数,梯度也就是这个函数的求导,当相邻像素值有变化就会存在梯度,而在边缘上的像素点的梯度最大。将聚类中心挪到梯度最小的地方可以避免其落到边缘轮廓上,影响聚类效果
离散梯度的梯度计算考虑到计算量,一般会简化为用绝对值来近似平方和平方根的操作
4. 计算像素点与聚类中心的距离¶
在聚类中心距离S的区域内\(2S\times2S\)的邻域内计算像素点与每个聚类中心的距离
使用的是欧式距离,总距离\(D\)由\(d_c\)颜色距离与\(d_s\)空间距离两部分组成:
如果直接将\(l\),\(a\),\(b\),\(x\),\(y\)拼接成一个矢量计算距离,当超像素的大小变化时,\(x\),\(y\)的值可以取到非常大 ,比如一张\(1000\times1000\)的图,空间距离可以达到\(1000\times Sqr(2)\),而颜色距离最大仅\(10\times Sqr(2)\),导致最终计算得到的距离值中,空间距离\(d_s\)权重占比过大
所以需要进行归一化,除以最大值即超像素点的初始宽度\(S\),将值映射到\([0,1]\)
而颜色空间距离也会由一个固定的值\(m\)来调节颜色距离与空间距离的影响权重,\(m\)取值范围为\([1,40]\)
当\(m\)越大,颜色空间除以\(m\)后的值越小,即空间距离的权重越大,生成的像素会更为形状规则,当\(m\)越小,颜色距离权重更大,超像素会在边缘更为紧凑,而形状大小较为不规则
总结¶
SLIC基于K-means,主要做了两点优化:
- 调整了搜索范围,由全局缩小为\(2S \times 2S\)空间
- 调整了距离定义,选用CIE-Lab色域,并引入了超参数以调节色彩距离与空间距离的权重
5. 像素点分类¶
标记每个像素点的类别为距离其最小的聚类中心的类别
6. 重新计算聚类中心¶
计算属于同一个聚类的所有像素点的平均向量值,重新得到聚类中心
7. 迭代4-6的过程¶
直到旧聚类中心与新聚类中心的距离小于一定阈值或者达到一定迭代次数,一般来说,当迭代次数到达\(10\),算法能够达到收敛
像素化生成:聚类优化¶
迭代到最后,可能会出现与聚类中心不属于同一连通域的孤立像素点
在SLIC论文中,作者将其视为需要进行强制连通的去空洞任务,可以使用到连通算法将其分配到最近的聚类标签
在本文中,由于应用场景是图片像素化,会对像素进行下取样,并不会细化到每个像素,因此不做聚类优化处理
在对图片进行SLIC分割后,我们已经获得每个像素对应的超像素标记,设定一定步长stride
,每隔stride
个像素,将像素赋值为其聚类中心的颜色,即得到最终的像素化结果
项目部署:图片像素化风格生成器¶
应用部署在Github,相关参数如下:
- 迭代次数
iters
;iters
越大,分割结果更精准,计算时间越长 - 超像素点大小
blocksize
;blocksize
越小,超像素点分割越细腻 - 取像素点步长
stride
;stride
越小,生成的像素图越接近超像素点,也就越细腻 - 颜色空间权重
weight
;weight
越大,颜色对于分割结果的影响越大
-
Ren, Malik. Learning a classification model for segmentation[C]. international conference on computer vision, 2003: 10-17. ↩
-
Achanta R, Shaji A, Smith K, et al. SLIC superpixels compared to state-of-the-art superpixel methods[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 34(11): 2274-2282 ↩
创建日期: 2023-02-28