基于EM算法的图像分割实现毕业论文
2020-04-10 16:14:29
摘 要
EM算法是一种很经典的迭代算法,简要归纳就是对研究样本求期望后再对该期望求极大似然估计,然后更改相关参数继续迭代直至估计值收敛。数字图像本身并不满足某种特定的分布模型,而EM算法可以通过期望估计最大化的方法使其收敛于最优结果。所以作为计算机视觉中关键一步的图像分割技术如果采用该算法就可以提高图像分割的准确性。本文介绍了EM算法的研究背景、国内外研究现状,与EM算法的原理以及具体运行流程。同时将该算法应用到图像分割领域中,在Matlab软件中编写程序实现基于EM算法的图像分割。之后使用该程序进行实验,之后对实验现象与结果进行了分析,最后对整个设计过程与设计结果作出总结。
关键词:EM算法;极大似然估计;图像分割;Matlab;
Abstract
The EM algorithm is a very classic iterative algorithm. The brief induction is to find the expectation of the study sample and then find the maximum likelihood estimate for the expectation, then change the relevant parameters and continue iterating until the estimate converges. The digital image itself satisfies a certain distribution model, and the EM algorithm can be converged to an optimal result by the method of maximizing the expected estimation. Therefore, as an important image segmentation technique in computer vision, if this algorithm is adopted, the accuracy of image segmentation can be improved. This article introduces the research background of EM algorithm, the research status at home and abroad, the principle of EM algorithm and the specific operation flow. At the same time, the algorithm is applied to the image segmentation field, and the program is written in Matlab software to implement image segmentation based on EM algorithm. After that, the experiment was performed using the program, and then the experimental phenomena and results were analyzed. Finally, the entire design process and design results were summarized.
Keyword:EM algorithm, maximum likelihood estimation, image segmentation,Matlab
目录
第1章 绪论 1
1.1 研究背景和意义 1
1.2 国内外研究现状 2
1.3 设计的基本内容拟采用的技术方案及措施 3
第2章 EM算法与图像分割原理 4
2.1 EM算法原理介绍 4
2.2 EM算法实现流程 5
2.3 EM算法实现图像分割原理 6
第3章 EM算法图像分割的实现 8
3.1 开发环境介绍 8
3.2 程序框架 8
3.3 实验步骤 10
第4章 实验分析 12
4.1 输入图像 12
4.2 进行图像分割 13
4.3 图像分割结果分析 17
4.4 改变聚类数后实验分析 18
第5章 总结 21
参考文献 22
致谢 23
第1章 绪论
1.1 研究背景和意义
当今世界已经步入了人工智能(AI)时代。在智能时代的大背景下,机器学习深度学习与计算机视觉(Computer Vision)成为了如今的热点。计算机视觉的意义如同其名,像人一样拥有着视觉,能看清世间万物一般的视觉,视觉的概念不仅仅只是看到物体收集其形状、颜色、大小的信息,而且还要对这些信息进行进一步的处理以获得更深层的意义即理解物体与图像。计算机视觉概念很广泛,同时计算机视觉也与许多学科息息相关,作为计算机视觉的主干,图像处理(Image processing)与模式识别愈加受到人们的关注[4],这些学科的终极目标就是实现对图像的理解。
而什么是图像理解呢?顾名思义,图像理解如人脑对其他知识的理解一样,人们理解知识需要的是描述知识并作出解释同时还能应用此知识。那么图像理解便是计算机对图像的理解,即描述图像并给出对这个图像的解释再加以应用,就像人们运用知识一样运用该图像。与此同时,图像理解也像学科一样需要前置的知识,如光的折射反射等成像规律等。并且计算机处理的图像都为平面图形,即2D图像,而物体都是具有长宽高立体的三维,因此在处理物体图像时还需要掌握图像中物体有关的相关知识,从而达到理解图像学以致用的目的。在如今人工智能趋势的发展下,图像理解的重要性显而易见,计算机视觉的重要性更是不言而喻。
同时,计算机对图像进行读取、分析、更改等用来得到想要的结果的技术就是图像处理[1],如今对图像的处理一般使用数据形式,将图像转换为数据进行相应的操作,即使用相关仪器录入图像再写入为数组形式以供计算机进行计算等操作,故称数字图像处理,又称影像处理。数字图像处理这一学科算是计算机视觉领域核心的一部分,也包含了很多部分,如图像压缩、增强、复原,匹配、描述、识别三大块[2]。
本文中所要实现的图像分割操作,就是数字图像处理过程中最关键的技术。其意义在与提取图像中具有意义的特征如物体边缘与区域等方面,作为图像处理进程中的预处理,换言之,没有正确的图像分割,就不可能有正确的图像识别[3]。
图1.1 图像处理流程图
然而作为图像分割所凭借的依据,数字图像分割过程中所能利用到的只有向量化的像素中的RGB分量、以及数值化的亮度等。因此计算机对图像进行图像分割操作时可能会有很多影响到分割结果的不定的干扰因素,例如在图像中存在的噪声、失真等常见的问题,当计算机遇到这些干扰因素时,图像分割进程就会受到干扰,从而得到错误的图像分割结果。由此可以看出我们需要对图像分割技术进行进一步的探索,如现在专家们在尝试将AI技术应用到图像分割进程的纠错环节中,这个想法别树一帜,很有前瞻性,然而在实际过程中可能又会增加实现的难度。因此本文提出的基于EM(Expectation Maximization)算法的图像分割就是在改进图像分割技术而进行的探索。EM算法的研究是基于空间聚类混合模型而设计的期望最大化的的算法[3-5],由于在聚类模型的分析中的结果的特征相似性非常高,所以其分析与统计意义显著,因此决定将该理论算法应用到图像分割技术之中。
1.2 国内外研究现状
作为在数学等领域中经常用到的迭代算法,EM算法可谓是老前辈,同时具有良好的可操作性与收敛性。二十世纪的初期,M’kendrick创造性的构想出了这一迭代思想,并将其用于医学研究领域;1958年,EM算法被用于计算与分析数据等方面,这一应用将EM算法的发展向前推动了许多;1970年,在著名模型马尔科夫链的分析中,Baum,Petri等人出人意料的使用EM算法,并且用该法证明了其正确的结论,因此EM算法的应用成功的将其推广到更大的应用空间中;1974年,在文章Marimum likelihood theory for imcomplete data from an exponential family集中讨论了在指数分布族下的不完全数据的似然函数,并给出了不完全数据条件下的信息阵的计算,为EM算法的构建打下基础[6]。1977年,EM算法由Dempster、Ladrid和Rubin正式提出,因而EM算法在之前的应用与对复杂的不完全观测数据模型的分析中发挥的作用被人们更加深入的探讨,从而使得EM算法在提出之后被研究者们用于更加深入的研究。
同时,国内外对EM算法研究的现状可以归为两大类,一类是对于EM算法的计算速度、收敛速度进行改进;另一类是对EM算法在数学模型的参数估计以及聚类分析等领域的应用研究更加深入。
图像分割领域的研究同样历经了很多年,在二十世纪六十年代初,图像分割技术的研究便开始了。从开始到如今,已过了进六十年,在这段期间的研究中,所得成果非常丰富,全球的学者共提出了几千种用于图像分割的算法,在这上千种算法中也有许多经典算法,如灰度阈值分割法、区域跟踪算法、分水岭算法等。然而并没有一种算法能用于所有图像的分割中,算法一般都只面向于解决某一具体的问题。与此同时,一个算法研究出来后还要经过许多次的实验才能通过分析结果得出该算法是否适用。因此,图像分割技术的研究在这么多年来都是图像处理技术中的眼中钉,图像分割领域愈加受到重视。作为数字图像处理与图像分析的关键步骤,其结果更是图像特征提取、图像识别和图像理解的基石,所以图像分割所占地位非常之重要,图像分割也是计算机视觉系统中首当其冲需要解决的问题。
1.3 设计的基本内容拟采用的技术方案及措施
在本次设计中主要用MATLAB编写程序实现基于EM算法的图像分割。在程序设计方案中,主要考虑利用高斯混合模型对原始图像进行建模,将图像中的每个像素视为由一种密度函数计算所得到的,之后计算该密度函数的数学期望(E步),接着计算该模型的最大似然估计(M步),在进行完一次E、M步骤后,继续对像素进行分析重新建立模型再进行求期望与极大似然估计操作,将E、M步骤循环下去,直到期望收敛[7]。
在程序的设计框架里,第一步就是应用Matlab软件读取图像,将图像文件读取为数据矩阵形式方便于之后部分的分析与计算。接下来便是编写实现EM算法的指令,然后输入EM算法中所需要设置的初始值。之后在EM步骤之中对图像进行操作,即图像分割过程。在对图像进行分割后,输出所得结果,并记录下相关参数的变化过程,方便在程序结束后对结果进行分析。
第2章 EM算法与图像分割原理
2.1 EM算法原理介绍
上文提到了EM算法是利用的数学领域等常用的迭代思想来实现的,就像打磨出宝剑一样,首先对其进行加热,趁热打铁,然后再加热,再捶打,不停的循环,直至达到宝剑所需要的锋利与坚韧,EM算法就是如此,E代表的是Expectation,意为期望;M代表Maximization,意为最大;二者合在一起就是期望最大化。那么该算法为什么叫做期望最大化呢?因为在该算法的第一步就是求得所研究模型中参数的期望值,即EM步骤中的求期望(E步);接下来的第二步就是对该期望进行求极大似然估计操作,即最大化(M步);所判定的条件就是M步中所求得的极大似然估计是否为收敛的,若不收敛,则回到E步继续进行处理;若收敛,则跳出E、M步骤的迭代,算法完成[8]。
EM算法的基本思想如上所述,然而该算法在历史上面对的第一个问题并不是图像分割问题,而是如何在缺失数据的条件下进行参数估计,包含了一种缺失思想。操作过程也如上所述,只不过面对的是具体的模型,第一步是估计缺失数据的值以假定模型中具体参数的值,第二步就是对其进行极大似然估计,根据判定条件不断迭代直至达到收敛条件,跳出迭代,算法完成。下文会对EM算法的具体原理进行说明,
算法具体原理如下:
给定样本={},现在想给每个一个,即在样本中标出: {(,),(,),…,(,)}(是隐形变量,=可以看成是被划分为类),求对的最大似然估计:
(2.1)
(2.2)
其实也是个向量,因为对于每一个,都有多种分类的情况。设第个样本在上的概率分布为,即表示被划分到类的概率,因此有
(2.3)
(2.4)
(2.5)
(2.6)
式2.5、2.6是用Jensen不等式,因为为偶函数,且的数学期望为,所以根据Jensen不等式取等号条件
(2.7)
这个式子对于任何的值都成立,并且有,所以可以认为 ,此时可以得出:
(2.8)
式子中,是自变量,若已知,则可计算出()[9]。
2.2 EM算法实现流程
由上文所示的EM算法原理,可以描述出该算法的流程:
第一步给一个初始值;
第二步固定当前的,让式2.6取等号条件,得出(),即计算期望,即EM算法中的E步;
第三步就是将第二步中计算出的期望代入
(2.9)
接下来对进行极大似然估计,所得到的就是新的值。EM算法中的M步就是对其进行极大似然估计的过程;
第四步就是判定该是否收敛,若不收敛,则继续迭代第二步与第三步;如果满足收敛条件,那么就可以跳出EM算法的E、M迭代步骤,EM算法完成,接下来输出运算结果。
由上文介绍的EM算法的原理以及流程,具体到实际操作中,便可以理解为以下:
首先输入观察数据,在本文中即是输入图像信息,将图像读取为数据形式的矩阵,并将其转换为能够进行运算的double型,然后输入数据的联合分布以及条件分布。
接下来开始进行EM流程,先随机初始化模型参数的初值,然后开始计算联合分布的条件概率与分布的乘积,即联合分布条件期望,实现E步骤。之后求解该期望的极大似然估计值,即M步。若在M步所求得的极大似然估计已收敛,则算法结束,否则返回E步进行迭代,流程图如图2.1所示。
图2.1 EM算法流程图
2.3 EM算法实现图像分割原理
在本文前段部分中简要的介绍了图像分割相关原理,并且可以由此体会到图像分割技术在数字图像处理中、计算机视觉领域所处的核心地位。图像分割(Image Segmentation)顾名思义就是将一整块数据化的图像如同切蛋糕一样将其分为若干个部分,被分出来的小块被称为图像子区域,其实质就是数字矩阵。这些被切分而出的图像子区域或多或少都具有一些独立于原图的特别的性质,也可能是研究者们对一整块图中切分出来的研究对象,在完成分割后将该子区域用于研究、建设等完成具体目标[10]。图像分割过程就是这样的过程,因此它才能成为在图像处理中举足轻重的关键过程。其目的就是从这繁华如三千东流水的整块大图中取一瓢关键的子区域饮,从而使得图像处理过程与研究过程变得简单,方便研究者们对其进行操作、理解等。
一整块图像中往往包含了背景、物体等元素,那么在这几种元素的交叉中必定存在交线与边缘、边界,图像分割的目标与依据便是这些。就如同在铺地板砖的时候对地面进行标记等过程,图像分割就是在这数字矩阵中标记一些线,然后根据这些线来切分这矩阵得到多个子区域,或者是把在图像中做的标记单独取出来获得边缘轮廓即作为图像分割的一个分支——边缘检测。既然子区域取于原图像,那么所有的子区域加起来便是原图像了,同个子区域中,每个像素都服从于原图像的某些特性,但是子区域与子区域中的物体特性以及背景等元素还是存在这相当大的不同。
在当代图像分割领域中,主要有以下几大块分割方法:阈值分割、区域分裂与合并、分水岭算法、边缘检测、聚类分析等。在本文中,所采用的EM算法就是聚类分析范畴中并与模糊集理论相融合,并将该方法用于图像分割。
模糊集理论的范畴非常广,但是总体来说该理论一般用于描述事物的不确定性。而数字图像本身就具有相当大的不确定性,恰好与模糊集理论相适配。而EM算法实现图像分割的过程大概可以说明为对数据化的图像进行空间模糊聚类建立适配的模型后进行EM算法计算、迭代操作处理[11]。在所以在第一步就是将图像录入程序之中,Matlab会直接对其进行数据化操作。由于图像中存在相当大的不确定性以及模糊性,因此该方法恰好适用于使用EM算法进行图像分割。应用EM算法于图像分割时便可于该图像的数字矩阵建立空间模糊聚类模型,以达到将边缘像素进行分析从而达到图像分割的目的。
第3章 EM算法图像分割的实现
3.1 开发环境介绍
俗话说的好,工欲善其事,必先利其器。对于软件设计首要的便是应用合适的编程软件进行对程序的编写设计等。在大学期间我们上过数字图像处理这门课,而这门课上我们的教材上、实验中使用的都是Matlab软件,因此具备了Matlab编程的相关能力。在进行本次设计初期考虑过Python实现与Matlab实现,然而Python语言中用到的图像处理库为PIL库,若要实现对图像进行EM算法实现分割操作需要调用到的库特别多,过程特别复杂,故决定用Matlab编程实现。
Matlab并不是一个单词,而是两个单词的缩写组合。Matrix即矩阵,laboratory意为工厂,取首字母即Mat和lab,故称之为Matlab,意义就是矩阵工厂。这个名称形象的表现了该软件的工作特性。顾名思义,矩阵工厂,就是对矩阵进行加工的工厂,Matlab中对数据的计算基本上应用矩阵方式。
同时,Matlab的语法也同在大一时候学过的C语言相似,然而Matlab编程并不需要像C语言一样include很多库,其自带的库与为之后开发时准备而导入的库不需要导入就可以直接使用,极大的简化了编程中的操作。因此,该软件在这方面很大程度上的独树一帜,并没有与传统的非交互式程序设计语言如C语言采用相同的形式,因此它的编程语言在很大程度上体现了如今软件技术的发展与先进,也极大的简化了计算科学研究中对编程计算的流程。因此,Matlab软件如今在全球算是首屈一指的数学软件,在所有数学软件中,只有Maple、Mathematica两软件可与Matlab分庭抗礼。
并且Matlab在功能上面对可视化交互式程序设计、科学中对复杂冗繁的科学计算如数学分析、矩阵计算与可视化等方面,Matlab能够构造一个十分稳定且舒适的编写、运行环境,在一个视窗之内实现构建函数运行主程序等功能,使用起来十分方便、顺手。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。