《基于FCM的图像分割数学建模(一手)课件.ppt》由会员分享,可在线阅读,更多相关《基于FCM的图像分割数学建模(一手)课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、1,FCM算法的学习、应用(图像分割)、相关改进研究,本人工作:,1、什么是FCM算法2、FCM算法怎么应用于图像分割3、影响FCM算法的因素4、自己对于FCM算法改进的思考,3,模糊C均值聚类算法,FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小。 模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则是一种柔性的模糊划分。在介绍FCM具体算法之前我们先介绍一些模糊集合的基本知识。,隶属度函数是表示一个对象x隶属于集合A的程度的函数,通常记做A(x),其自变量范围是所有可能属于集合A的对象(即集合
2、A所在空间中的所有点),取值范围是0,1,即0=1,A(x)=1。A(x)=1表示x完全隶属于集合A,相当于传统集合概念上的xA。一个定义在空间X=x上的隶属度函数就定义了一个模糊集合A,或者叫定义在论域X=x上的模糊子集 。对于有限个对象x1,x2,xn模糊集合 可以表示为:,(1.1),4,模糊C均值聚类算法(续),FCM的目标函数一般化形式:,这里uij介于0,1间;ci为模糊组I的聚类中心,dij=|ci-xj|为第I个聚类中心与第j个数据点间的欧几里德距离;且m1是一个加权指数,构造如下新的目标函数,可求得使(1.2)式达到最小值的必要条件:,这里j,j=1到n,是(6.9)式的n个
3、约束式的拉格朗日乘子。对所有输入参量求导,使式(6.10)达到最小的必要条件为:,(1.2),(1.3),(1.4),(1.5),和,5,具体的算法如下:确定聚类类别数c、加权指标m,任意置分类矩阵U(0) ;依次取b=0,1,2,;根据U(b)和公式(1)计算Vi(b);按如下方式更新U(b)为U(b+1)A、对k=1,n,计算B、计算数据xk的新隶属函数值:若Ik为空,按公式(2)计算uik;否则,对所有的 置uik=0,并取 。 C、比较U(b)和U(b+1)之间的差别,如果 ,则聚类结束;否则,置b=b+1并返回第3步。,模糊C均值聚类算法(续),6,简单认识FCM算法,MATLAB中
4、提供了FCM函数:center, U, obj_fcn = fcm(data, cluster_n, options);% 输入:% data - nxm矩阵,表示n个样本,每个样本具有m的维特征值% N_cluster - 标量,表示聚合中心数目,即类别数% options - 4x1矩阵,其中% options(1): 隶属度矩阵U的指数,1 (缺省值: 2.0)% options(2): 最大迭代次数 (缺省值: 100)% options(3): 隶属度最小变化量,迭代终止条件 (缺省值: 1e-5)% options(4): 每次迭代是否输出信息标志 (缺省值: 1)% 输出:% c
5、enter - 聚类中心% U - 隶属度矩阵% obj_fcn - 目标函数值,总的思想:FCM算法就是对数据进行分类,7,数据为:data=rand(100,2),分4类,8,彩色图片,边界分明,分3类,PS?,No!,9,彩色图片,色块分离,分5类,10,彩色圆环,边界模糊,分7类,11,脑部图,通过分割区分灰质、白质,12,原图,分割图,设定阈值,去除背景,字符提取,目标提取,遥感卫星图片,海域中舰艇检测,14,fcm(data, 2, 2 100 1e-5 1),fcm(data, 2, 3 100 1e-5 1),影响FCM算法的 几个因素,隶属度矩阵U的指数m,Center(12
6、6.4961, 35.5235),Center(125.2010, 35.3168),对于灰度图像,为什么是2X1的矩阵?,图片大小300X300,p1,p2,(p1-p2作差),% 1. center,U,obj_fcn = FCMClust(Data,N_cluster,options); % 2. center,U,obj_fcn = FCMClust(Data,N_cluster); % % 输入: % data - nxm矩阵,表示n个样本,每个样本具有m的维特征值 % N_cluster - 标量,表示聚合中心数目,即类别数 % options - 4x1矩阵,其中 % optio
7、ns(1): 隶属度矩阵U的指数,1 (缺省值: 2.0) % options(2): 最大迭代次数 (缺省值: 100) % options(3): 隶属度最小变化量,迭代终止条件 (缺省值: 1e-5) % options(4): 每次迭代是否输出信息标志 (缺省值: 1),2022/12/23,第二章 信号、信道及噪声,15,16,fcm(data, 2, 4 100 1e-5 1),fcm(data, 2, 1.5 100 1e-5 1),Center(126.1217, 35.7489),Center(124.0165, 35.8570),(p3-p2作差),p3,p4,(p4-p1
8、作差),17,fcm(data, 4, 2 100 1e-5 1),对于彩色图像,Center=,为什么是4X3的矩阵?,图片大小197X198,18,fcm(data, 4, 3 100 1e-5 1),Center=,对应作差结果,fcm(data, 4, 4 100 1e-5 1),对应作差结果,Center=,一点变化,总结: m值大小的变化对图像分割的结果影响不大,这可以通过分割效果和聚类中心来观察。而随着m值的增加,运算时间成逐加趋势。所以m选为2是比较合理的,这与前人几十年的经验总结相一致。 我以大小为300*300的lena图片为例,分类数选为2。研究了M值的变化对迭代次数与运
9、算时间的影响,通过实验数据:可以看出m取2比较理想,对FCM算法改进的思考:,在第6张PPT中给出了FCM算法的几个参数,其中m值和迭代停止阈对算法影响最大,考虑到可以设定一极小量,即满足条件就行;而m值上文已研究过取2时最合适。 那么,如何使分类最合理,使目标函数值最小?这也直接决定了分割质量的好坏。 在FCM算法中,一开始都是随机初始一个隶属矩阵,然后通过不停的迭代计算,在达到迭代停止阈值时完成分类,分类的好坏直接受制于最开始的随机隶属矩阵,我觉得可以提出一个学习理论,可以借助于神经网络完成学习。 在这里,我想到的是进行两次FCM算法的处理,把第一次最终得到的隶属矩阵作为第二次的初始矩阵。,以例4 中的605X604彩色图像按上文想法做了一次实验:第一次分割:迭代了124次,目标函数值为323841617.672588 运算时间:100.739584s第二次分割:迭代了006次,目标函数值为323841617.672279 运算时间: 7.078349s 观察二种分割结果,相差无几。(具体结果参见例4) 原因是第二次运算陷入了局部最小中,只能在在原有的基础上,进行非常微小的波动。而不会对隶属函数进行一次大的改变。 对于隶属函数的初始化还需更深的思考。,验证:,