基于模糊C均值聚类(FCM)的图像分割原理
基于模糊C均值聚类(FCM)的图像分割原理
图像分割概述
图像分割就是把图像细分为构成它的对象或子区域,这些区域是互不相交的,每个区域都满足特定区域的一致性。分割的程度主要取决于人们想要解决的问题,当感兴趣的区域或对象已经被区分出来,分割就算是完成了。计算机视觉中的图像理解,包括目标检测、特征提取和目标识别都依赖于图像分割的质量。
目前,图像分割算法一般书围绕高亮度值的两个基本特性设计的:不连续性和相似性。亮度值的不连续性的应用途径主要是基于像素点特性,如灰度值,的不连续变化分割图像,如最常用的边缘检测。而利用亮度值的相似性可以形成一套机制,即依据事先指定的准则将图像分割为相似的区域。一些实例包括门限处理、区域分离、区域生长和聚类等。而采用模糊C均值聚类及其扩展算法进行图像分割的好处是避免了阈值的设定问题,聚类的过程不需要人工干预,只需输入预想的分类数目即可实现自动化的图像分割。
FCM聚类算法(Fuzzy C- Means)
1. FCM原理
模糊C均值聚类- FCM的核心就是“模糊”,相较于K-means这种“硬”聚类,FCM提供了更为灵活的聚类结果。对于图像中像素点的分割往往并不能划分成明显分离的簇类,讲一个对象划分到一个特定的簇是由一些不符合客观认知的。
模糊指的就是对每个对象和每个簇类赋予一个权值,指明一个对象属于该簇的可能程度即可。当然基于概率的方法也可以给出一个权值,但是实际情况中往往很难给出一个合适的统计模型用以计算权值,所以自然的,非概率特性的FCM聚类算法就是一个比较好的选择。
2. FCM聚类流程
- 设置目标函数的精度,模糊指数与算法的最大迭代次数
- 初始化隶属度矩阵UkU^{k}Uk
- 计算聚类中心CCC
- 更新隶属度矩阵Uk+1U^{k+1}Uk+1
- 判断是否满足迭代终止条件,如果不满足则继续进行3,4
- 如果满足终止条件则停止迭代并返回聚类的簇类结果。
3. 具体步骤
Step 1. 初始化隶属度矩阵
FCM模糊聚类算法中将只取111或000的普通集合概念推广到0→10\to10→1区间内的多个取值,即隶属度,用“隶属度”来描述数据点和聚类中心之间的隶属关系。
Un×m(0)=[uij]U^{(0)}_{n\times m} = [u_{ij}] Un×m(0)=[uij]
在公式(1)中,Un×k(0)U_{n\times k}^{(0)}Un×k(0)表示初始隶属度矩阵,nnn表示数据集中数据对象的个数,mmm表示簇类的个数,uiju_{ij}uij表示数据对象xix_ixi对簇类中心cj∈C=[cj∈[1,2,…,m]]c_j\in C=[c_{j\in[1,2,\dots,m]}]cj∈C=[cj∈[1,2,…,m]]的隶属度,其数值越大,数据对象越靠近聚类中心cjc_jcj。
Step 2. 判断是否超过最大迭代次数
设定最大迭代次数max_itermax\_itermax_iter的值,判断当前迭代次数iteriteriter是否超过了最大迭代次数。如果超过了则直接返回聚类结果,如果未超过则继续后续过程。
Step 3. 计算聚类中心
传统均值聚类算法在确定聚类中心时,一般最简单的就是找到属于某一类的所有样本点,然后这一类的类中心就是这些样本点的平均值。而对于FCM模糊聚类而言,在聚类中心cjc_jcj确定之后,首先将所有点到该类的隶属度求和∑i=1nuij\sum_{i=1}^{n}u_{ij}∑i=1nuij,然后对于每个点,隶属度除以隶属度和就是所占的比重,乘以xix_ixi就是当前数据对象点对于这个类jjj的贡献值:
cj=∑i=1n(uijm⋅xi)∑i=1nuijm=∑i=1n(uijm∑i=1nuijm⋅xi)c_j = \frac{\sum_{i=1}^{n}(u_{ij}^{m}\cdot x_i)}{\sum_{i=1}^{n}u_{ij}^{m}} = \sum_{i=1}^{n}(\frac{u_{ij}^{m}}{\sum_{i=1}^{n}u_{ij}^{m}}\cdot x_i) cj=∑i=1nuijm∑i=1n(uijm⋅xi)=i=1∑n(∑i=1nuijmuijm⋅xi)
如公式(2)中,cjc_jcj表示第jjj个簇类中心,nnn表示数据集中数据对象的个数,mmm表示聚类簇的个数,uiju_{ij}uij表示对象xix_ixi与聚类中心cjc_jcj之间的隶属度。
Step 4. 更新隶属度矩阵
基于Step 3 中计算所得的各簇类中心点及原始数据集合,通过隶属度计算公式对隶属度矩阵进行更新:
uij=1∑k=1m(∣∣xi−cj∣∣∣∣xi−ck∣∣)2m−1u_{ij} = \frac{1}{\sum_{k=1}^{m}(\frac{||x_i-c_j||}{||x_i-c_k||})^{\frac{2}{m-1}}} uij=∑k=1m(∣∣xi−ck∣∣∣∣xi−cj∣∣)m−121
如公式(3)中,uiju_{ij}uij表示更新后的对象xix_ixi和聚类中心cjc_jcj之间的隶属度,mmm表示聚类的簇类数量。由分式的下半部分可知,其中分子表示对象xix_ixi到簇类中心cjc_jcj的距离,而分母则表示当前对象到所有聚类中心的距离之和,因此,当对象xix_ixi越靠近聚类中心cjc_jcj,则下半部分整体值越小,隶属度uiju_{ij}uij则越大。
Step 5. 判断是否满足迭代终止条件
在不超过最大迭代次数的前提下,迭代终止条件如下:
maxij{∣uij(iter)−u(iter−1)∣}≤ε\max_{ij}{\{|u_{ij}^{(iter)}-u^{(iter-1)}|\}}\le\varepsilon ijmax{∣uij(iter)−u(iter−1)∣}≤ε
如公式(4)中,uij(iter)u_{ij}^{(iter)}uij(iter)表示在当前迭代次数iteriteriter下更新的对象xix_ixi与簇类中心xjx_jxj之间的隶属度,uij(iter−1)u_{ij}^{(iter-1)}uij(iter−1)表示更新之前的对象xix_ixi与聚类中心xjx_jxj之间的隶属度,ε\varepsilonε表示误差阈值。上式含义为,继续迭代,隶属度不再发生较大变化时,即认为隶属度不变,即已经达到局部最优或全局最优状态,迭代结束,并返回模糊聚类结果。
FCM算法推导
定义数据集大小为mmm,聚类中心点个数为ccc,uiju_{ij}uij为第jjj个中心点的隶属度,并且0<uij<10<u_{ij}<10<uij<1,显然有∑j=1cuij=1,i=1,2,3,⋯,m\sum_{j=1}^{c}u_{ij}=1,i=1,2,3,\cdots,m∑j=1cuij=1,i=1,2,3,⋯,m
类似于K-means算法中的距离概念,定义:
J=∑i=1n∑j=1cuijα∣∣xi−cj∣∣2J = \sum_{i=1}^{n}\sum_{j=1}^{c}u_{ij}^{\alpha}||x_i-c_j||^2 J=i=1∑nj=1∑cuijα∣∣xi−cj∣∣2
其中α\alphaα为超参数,∣∣xi−cj∣∣||x_i-c_j||∣∣xi−cj∣∣表示第iii个数据到第jjj个中心的距离。显然为了让分类更加合理,JJJ应当尽可能地小。换言之,当JJJ不再减小或者减小幅度足够小时,算法结束。运用拉格朗日乘子法合并函数JJJ和约束条件∑j=1cuij=1,i=1,2,…,m\sum_{j=1}^{c}u_{ij}=1,i=1,2,\dots,m∑j=1cuij=1,i=1,2,…,m得到
J=∑i=1n∑j=1cuijα∣∣xi−cj∣∣2+∑i=1mλi(∑j=1cuij−1)J = \sum_{i=1}^{n}\sum_{j=1}^{c}u_{ij}^{\alpha}||x_i-c_j||^2 + \sum_{i=1}^{m}\lambda_i(\sum_{j=1}^{c}u_{ij}-1) J=i=1∑nj=1∑cuijα∣∣xi−cj∣∣2+i=1∑mλi(j=1∑cuij−1)
这里对输入参数求导,从而得到目标函数达到最小值的条件:
zj=∑i=1muijαxi∑i=1muijαuij=1∑k=1c(dijdik)2α−1z_j = \frac{\sum_{i=1}^{m}u_{ij}^{\alpha}x_i}{\sum_{i=1}^{m}u_{ij}^{\alpha}}\\ u_{ij} = \frac{1}{\sum_{k=1}^{c}(\frac{d_{ij}}{d_{ik}})^{\frac{2}{\alpha-1}}} zj=∑i=1muijα∑i=1muijαxiuij=∑k=1c(dikdij)α−121
传统FCM图像分割实例
对于上图分别进行FCM聚类分割与K-means聚类分割的效果图如下:
K=3的K- means
K=3的FCM
K=4的K-means
K=4的FCM
FCM算法改进
对于FCM算法的改进这里仅包括在图像分割领域常有的改进,其中包括:FCM_S1,FCM_S2,EnFCM,FGFCM,FLICM,NWFCM,KWFLICM,NDFCM,FRFCM
未完待续
1. FLICM
FLICM是一种基于局部空间信息模糊聚类的图像分割算法。它融合了新的正则因子GkiG_{ki}Gki,表达了该聚类充分利用局部空间信息和局部灰度信息,可以达到算法抵抗噪声干扰的目的。其表达形式为:
Gki=∑j∈Ni;i≠j1dij+1(1−ukj)m∣∣xj−vk∣∣2G_{ki} = \sum_{j\in N_i;i\ne j}\frac{1}{d_{ij}+1}(1-u_{kj})^m||x_j-v_k||^2 Gki=j∈Ni;i=j∑dij+11(1−ukj)m∣∣xj−vk∣∣2
公式(8)中,xix_ixi是中心像素点,xjx_jxj是邻域像素,dij=∣∣xj−vk∣∣d_{ij}=||x_j-v_k||dij=∣∣xj−vk∣∣表示邻域像素到中心像素的欧式距离,ukju_{kj}ukj表示像素xix_ixi属于第kkk类的隶属度,vkv_kvk表示第kkk类的聚类中心,mmm是模糊加权指数。
FLICM算法所对应的聚类目标函数为:
Jm=∑i=1N∑k=1c[ukim∣∣xi−vk∣∣2+Gki]J_m = \sum_{i=1}^{N}\sum_{k=1}^{c}[u_{ki}^{m}||x_i-v_k||^2+G_{ki}] Jm=i=1∑Nk=1∑c[ukim∣∣xi−vk∣∣2+Gki]
公式(9)中,xix_ixi表示第iii个像素的灰度值,vkv_kvk表示第kkk类的聚类中心,ukju_{kj}ukj表示像素xix_ixi属于第kkk类的隶属度,NNN是像素个数,mmm是模糊加权指数。
再满足∑k=1cuki=1,uki∈[0,1],i=1,2,…,N\sum_{k=1}^{c}u_{ki}=1,u_{ki}\in[0,1],i=1,2,\dots,N∑k=1cuki=1,uki∈[0,1],i=1,2,…,N的条件下,聚类中心和隶属度迭代表达式为:
uki=1∑j=1c(∣∣xi−vk∣∣2+Gki∣∣xi−xj∣∣2+Gji)1m−1u_{ki} = \frac{1}{\sum_{j=1}^{c}(\frac{||x_i-v_k||^2+G_{ki}}{||x_i-x_j||^2+G_{ji}})^{\frac{1}{m-1}}} uki=∑j=1c(∣∣xi−xj∣∣2+Gji∣∣xi−vk∣∣2+Gki)m−111
vk=∑i=1Nukimxi∑i=1Nukimv_k = \frac{\sum_{i=1}^{N}u_{ki}^{m}x_i}{\sum_{i=1}^{N}u_{ki}^{m}} vk=∑i=1Nukim∑i=1Nukimxi
公式(11)中与传统FCM算法中的vkv_kvk表达式相同,但是二者的聚类目标函数并不相同。
1.1 FLICM的特征
FLICM中定义了一种新颖的模糊因子用以替代ENFCM和FCM- S及其变体中使用的参数aaa和FGFCM中使用的λ\lambdaλ,新的模糊局部邻域因子可以自动确定空间和灰度关系,并且完全不需要任何参数选择。
- 它相对独立于噪声的类型,因此,在没有先验的噪声知识情况下,他是FCM聚类变种的更好的选择。
- 模糊局部约束以模糊方式同时合并了局部空间和局部灰度关系。
- 可以自动确定模糊局部约束,因此不需要任何参数的确定。
- 通过模糊的局部约束自动实现图像细节和噪点之间的平衡,同时增强了聚类性能。
2. NW-FCM
3. GG- FCM
一种半监督的FCM,其中通过考虑每个像素的局部邻域来确定几何条件。
4. FCM-S
其中对经典FCM的目标函数进行了修改,以补偿强度的不均匀性,并允许像素的标记受到其紧邻像素的影响。FCM-S的一个缺点就是每一次迭代过程中都需要计算邻域标签。
FCM-S允许像素的标记受到紧邻像素影响的方式为,以邻域效应充当正则化器,并使解决方案偏向于分段均质标记,修改后的目标函数为:
Jm=∑i=1N∑j=1cujim∣∣xi−vj∣∣2+aNR∑i=1N∑j=1cujim∑r∈Ni∣∣xr−vj∣∣2J_m = \sum_{i=1}^{N}\sum_{j=1}^{c}u_{ji}^{m}||x_i-v_j||^2+\frac{a}{N_{R}}\sum_{i=1}^{N}\sum_{j=1}^{c}u_{ji}^{m}\sum_{r\in N_{i}}||x_r-v_j||^2 Jm=i=1∑Nj=1∑cujim∣∣xi−vj∣∣2+NRai=1∑Nj=1∑cujimr∈Ni∑∣∣xr−vj∣∣2
公式(12)中xix_ixi是第iii个像素的灰度值,NNN是像素总数,vjv_jvj是第jjj个中心的原型值,ujiu_{ji}uji表示第iii个像素相对于聚类jjj的模糊隶属关系,NRN_{R}NR是其基数,xrx_rxr代表xix_ixi的邻居,NiN_iNi代表落入像素xix_ixi周围窗口的邻居集合。参数aaa用于控制紧邻项的效果。根据定义,每个采样点xix_ixi满足∑cuji=1\sum_cu_{ji}=1∑cuji=1的约束。
隶属度矩阵与聚类中心点的计算如下:
uij=(∑k=1c(∣∣xj−vi∣∣2+αNR∑r∈Nj∣∣xr−vi∣∣2∣∣xj−vk∣∣2+αNR∑r∈Nj∣∣xr−vk∣∣2)1m−1)−1u_{ij}=(\sum_{k=1}^{c}(\frac{||x_j-v_i||^2+\frac{\alpha}{N_{R}}\sum_{r\in N_{j}}||x_r-v_i||^2}{||x_j-v_k||^2+\frac{\alpha}{N_{R}}\sum_{r\in N_{j}}||x_r-v_k||^2})^{\frac{1}{m-1}})^{-1} uij=(k=1∑c(∣∣xj−vk∣∣2+NRα∑r∈Nj∣∣xr−vk∣∣2∣∣xj−vi∣∣2+NRα∑r∈Nj∣∣xr−vi∣∣2)m−11)−1
vi=∑j=1nuijm(xj+αNR∑r∈Njxr)(1+α)∑j=1nuijmv_i = \frac{\sum_{j=1}^{n}u_{ij}^{m}(x_j+\frac{\alpha}{N_R}\sum_{r\in N_{j}}x_r)}{(1+\alpha)\sum_{j=1}^{n}u_{ij}^{m}} vi=(1+α)∑j=1nuijm∑j=1nuijm(xj+NRα∑r∈Njxr)
公式(14)分子中的∑r∈NjxrNR\frac{\sum_{r\in N_{j}}x_r}{N_R}NR∑r∈Njxr实际上是窗口内xix_ixi附近的紧邻像素点的平均灰度值,即由图像像素周围的所有相邻平均值组成的均值滤波图像。
5. FCM-S1,FCM-S2
FCM- S的两个变体用一减少计算时间,这两种算法分别引入了额外的均值和中值滤波图像,这些图像可以预先计算,以代替FCM-S的邻域项,因此,FCM-S1与FCM-S2的执行时间都大大减少了。
6. ENFCM
增强的FCM算法来加速图像的分割过程。首先由原始图像和每个像素的局部邻域平均灰度级形成线性加权和图像,然后,基于灰度直方图而不是求和图像的像素执行聚类。由于图像中的灰度级数通常比其像素小得多,因此减少了ENFCM算法的计算时间。
7. FGFCM
该算法结合了空间信息,局部像素邻域的强度和图像中的灰度级数。该算法从原始图像及其局部空间和灰度邻域形成非线性加权和图像,由于基于灰度直方图进行聚类,因此FGFCM的计算时间非常短,分割图像的质量得到了很好的增强。
8. ENFCM与FGFCM的问题
ENFCM与FGFCM具有相同的关键参数aaa或者λ\lambdaλ。此参数的作用是用于控制原始图像及其对应的均值或中值滤波图像之间的折中。这个参数对于性能有很大的影响,但是这个参数是矛盾的,若是要对抗图像中存在的大量噪声,就需要将这个参数设置的比较大,另一方面,需要设置足够小的参数用于保持图像的清晰度和细节。因此,aaa的确定实际上在某种程度上取决于噪声。对于图像中的所有像素邻域,aaa的值是固定的。
基于模糊C均值聚类(FCM)的图像分割原理相关推荐
- 基于模糊C均值聚类(FCM)的图像分割原理+python代码详解
一.模糊 "模糊":一个元素可以不同程度的属于某几个子集,也就是说元素对于集合的隶属度可以在[0,1]上取连续值. 二.步骤 2.1步骤 翻译一下: S1:初始化参数:加权指数m, ...
- 【图像分割】基于模糊C均值聚类算法CGFFCM实现彩色图像分割附matlab代码
1 简介 The fuzzy c-means (FCM) algorithm is a popular method for data clustering and image segmentatio ...
- 【图像分割】直觉模糊C均值聚类的图像分割IFCM
.模糊理论的介绍 在日常生活中,有许多事物或多或少都具有模糊性,模糊虽难以捉摸,但却非常重要.模糊理论强调以模糊逻辑来描述现实生活中的事物,以弥补二值逻辑无法对不明确定义边界事物描述的缺点.人类的自然 ...
- 灰狼算法 c语言 代码,基于灰狼优化的模糊C—均值聚类算法
谢亮亮+刘建生+朱凡 摘要:针对模糊C-均值聚类算法(FCM)存在易受初始聚类中心影响和容易陷入局部最优的问题,提出了一种将灰狼优化算法(GWO)和模糊C-均值相结合的新聚类算法(GWO-FCM).该 ...
- 模糊C均值聚类(Fuzzy C-means)算法(FCM)
一.FCM算法简介 1.模糊集理论 L.A.Zadeh在1965年最早提出模糊集理论,在该理论中,针对传统的硬聚类算法其隶属度值非0即1的严格隶属关系,使用模糊集合理论,将原隶属度扩展为 0 到 1 ...
- 具有自适应空间强度约束和隶属度链接的鲁棒模糊c均值聚类算法
a b s t r a c t 实践证明,模糊C均值聚类方法是一种有效的图像分割方法.然而,对于噪声图像,FCM方法并不稳健且不太精确.提出了一种改进的FCM方法--FCM _ SICM法,用于噪声图 ...
- 模糊C均值聚类算法的实现
模糊C均值聚类算法的实现 研究背景 聚类分析是多元统计分析的一种,也是无监督模式识别的一个重要分支,在模式分类 图像处理和模糊规则处理等众多领域中获得最广泛的应用.它把一个没有类别标记的样本按照 ...
- python计算iris数据集的均值_模糊C均值聚类算法及python实现
目录 本文采用数据集为iris,将iris.txt放在程序的同一文件夹下.请先自行下载好. 模糊理论 模糊控制是自动化控制领域的一项经典方法.其原理则是模糊数学.模糊逻辑.1965,L. A. Zad ...
- 模糊聚类的代码实现python_Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现...
目录 模糊理论 Fuzzy C-Means算法原理 算法步骤 python实现 参考资料 本文采用数据集为iris,将iris.txt放在程序的同一文件夹下.请先自行下载好. 模糊理论 模糊控制是自动 ...
最新文章
- 2021年春季学期-信号与系统-第十五次作业参考答案-第七小题参考答案
- 一台物理机上VMware虚拟机实现拨号上网同时内网通信
- mysql range用法_MySQL的常用函数
- 华人包揽CVPR 2019最佳论文,李飞飞ImageNet成就经典
- extjs中store获取后台数据_Excel实战技巧64: 从工作簿中获取数据(不使用VBA)
- ASP.NET MVC 使用防伪造令牌来避免CSRF攻击
- 0ctf2017-babyheap调试记录fastbin-attack
- C# 合并多种格式文件为PDF
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
- STL 中的容器们(四)
- Word2016中出现多级标题自动编号不连续问题
- Layui选项卡Tab和Layui模板laytpl冲突问题
- 【001】半电池的开路电压测试_#LIB
- Linux下搭建jmeter+svn+jenkins+ant持续集成(CI)框架
- 创造一颗属于你的星球
- 【区块链108将】流量之王的48小时生死转折
- GUI设计和UI设计有什么区别?
- 微信小程序,引入WeUI组件库 扩展组件库
- FCN网络(Fully Convolutional Networks)
- Adam和学习率衰减(learning rate decay)