图像聚类分割中经典的k-means和fuzzy c-means算法

一、 $ k-means $ 算法和 $ fuzzy-c-means $ 算法概述

$ k-means $ 算法和 $ fuzzy-c-means $ 算法都是基于划分的聚类方法,该方法的核心思想是:

将待分割目标分类为不同的簇,使得同一簇内的个体相似度最高、不同簇之间的个体差异度最高

$ fuzzy-c-means $ 算法由 $ k-means $ 算法改进而来(二者可用统一理论描述),改变了“非此即彼”的分类观念

$ k-means $ 为硬聚类算法,而$ fuzzy-c-means $ 为软聚类算法


二、 $ k-means $ 算法(又名 $ c-means $ 算法)

首先将图像整型为 $ n * s $ 的形式,其中 $ n $ 是像素点的总个数, $ s $ 是图像的通道数,对于灰度图像需要整型成 $ n * 1 $ 的形式,而对于真彩色图像(如RGB图像)则需要整型成 $ n * 3 $ 的形式

在上述 $ n * s $ 的特征向量矩阵中,使用随机数生成算法选取 $ k $ 个行向量 $ k * s $ 作为初始的聚类中心矩阵

计算图像上的每一个像素点所代表的特征向量与聚类中心的欧式距离,比较并将其划分给距离最小的那个聚类中心,一个像素点只允许被划分给一个聚类中心

划分完一轮后,取每一个聚类中所有像素点所代表的特征向量的平均值作为新的聚类中心

计算相邻两次聚类中心之间欧氏距离的和(称为残差)并和阈值相比较,若小于阈值,则迭代结束,反之则重新迭代

其流程展示如下:


三、 $ fuzzy-c-means $ 算法

搞清楚隶属度矩阵的含义,便不难理解模糊聚类算法

其流程展示如下:


四、观察二者的分割结果

首先观察 $ k-means $ 算法的分割结果:

再观察 $ fuzzy-c-means $ 算法的分割结果:

可以很明显地看出,模糊聚类对于归并“突兀的异类像素”有着更好的结果,究其本质是模糊理论的容错率、纠错率更高