《基于支持向量机的图像分割程序实现分析研究计算机科学与技术专业.docx》由会员分享,可在线阅读,更多相关《基于支持向量机的图像分割程序实现分析研究计算机科学与技术专业.docx(41页珍藏版)》请在优知文库上搜索。
1、基于支持向量机的图像分割程序实现目录摘要3Abstract4第一章背景资料51.1 研究的动机和目的51.2 研究的背景和现状5121支持向量机51.2.2支持向量机的应用61.3 研究内容61) MATLAB编程实现基于SVM的真彩色图像切割62) MATLABGUl制作交互界面6第二章系统理论72.1 支持向量机71.1.2 义71.1.3 线性支持向量机71.1.4 非线性分类91.1.5 计算支持向量机分类器91.1.6 经验风险最小化121.1.7 分类模型的VC维与可学习性132.2Iibsvm工具箱142.3图像分割的定义142.3MATLAB用户图形界面(GUI)152.3.1
2、 人机交互界面152.3.2 Matlabguiis2.3.3 MATLABGUIDE152.3.4 函数句柄152.3.5 回调函数16第三章需求分析173.1 需求分析的任务173.2 程序功能分析171)用户读入jpg或rgb格式的图像172)用户使用鼠标操作在读入的图像上选取前景和背景样本点确定训练集173)建立支持向量机进行图像分割174)友好的用户界面173.4 程序功能模块设计17D读图模块172)选取样本模块173)建立支持向量机进行图像分割模块174)用户界面模块173.5 程序功能调用图183.6 程序功能设计说明18第四章详细设计与软件展示及课题展望194.1 详细设计与
3、软件展示194.1.1 读图模块194.1.2 选取样本模块204.1.3 立支持向量机并进行图像分割模块234.1.4 用户界面模块264.2 设计缺陷与课题展望:31第五章总结32参考文献33致谢34附录351.1 程序功能351.2 开发测试环境351.3 运行环境351.4 使用说明35摘要本论文主要介绍了应用MATLAB编程,开发简易的图像分割软件,实行基于支持向量机实行真彩色图像的分割。其中图像分割模块使用MATLAB的LIBSVM包实现主要算法,与用户交互的界面使用MATLABGUI达到自由输入图像进行切割的目的。其中用支持向量机作图像分割是我这个项目主要的工作,大致流程是读入图
4、像,训练选取样本点确定训练集,建立支持向量机进行图像切割。此外,我用MATLAB的GIJl功能制作了一个用户交互界面,这样使得上面的代码可以更加方便的达到效果。关键字:图像分割;支持向量机;LlBSVM包;MATLABGUIAbstractThisdissertationmainlypresentsasimplemethodfordevelopinganimage-segmentationapplicationbasedonSVMbyMATLABprogramme.Inthispaper,theprominentalgorithmisachievedbytheapplicationofLIBS
5、VMpackageintheimagesegmentationpart.AndtheUserInterfaceisaccomplishedwithMATLABGUIforthegoalofcuttingrandomlyinputtedimages.MymainworkinthisprojectisusingSVM(SupportVectorMachine)tosegmentanimage,generalprocessofwhichistoinputapieceoftruecolorimage,thentrainthesamplepointsselectedfromit,finallybuild
6、aSVMtodoimagesegmentation.Also,ImakeauserinterfaceusingtheGUIfunctionofMATLAB,inthiswayitsmoreconvenientformetoachievetheoutcomeoftheabovecode.Keywords:Imagesegmentation;SupportVectorMachine;LIBSVMpackage;MATLABGUL第一章背景资料1.1 研究的动机和目的视觉作为人们认识、了解、体会大自然和社会的基本且重要的途径之一,图像又是视觉的物理基础。自近现代以来,随着第二次工业革命,电视机、相机
7、发明以来,数字图像就开始进入人类的生活,随着第三次科技革命,显示屏、摄像头、计算机的问世与应用普及,数字图像成为了经济、产业、生活等诸多领域的感知手段。当今大数据、人工智能等领域的持续火爆又推动对它的研究和应用。因此,数字图像处理成为了一项重要的科学技术,在科研和工业领域的需求越来越大。对于一个图像,我们通常只对它的某一部分感兴趣,需要将它从整个图像中提取出来,这种过程叫做图像分割或图像切割。作为计算机视觉和图像处理中的热点问题,无数种不同的图像分割方法已经被提出,许多经典算法比如基于各种算子以及小波变换的边缘检测法,直线提取与边界跟踪法,各种阈值分割法,区域生长与合并法,区域处理法。5传统的
8、方法都在解决某些特定的图像分割问题中有良好的价值,但是它们又都有局限性,所以目前还没有一种可以广泛适用于各种图像的优秀切割方法。由于图像的复杂性,要想使分割出来的图像看起来完美,有令人满意的研究价值,经常需要操作人员在图像特征提取的阶段作大量的工作确保图像的不同特征被发掘出来。根据数理统计学中的渐近理论,样本越大得到的结果越与真实的情况接近。传统的图像切割方法正是基于此理论。但是它们难以在特征维度高、样本容量小的问题中取得理想的效果。2支持向量机的提出有望解决这一问题。支持向量机是基于万尼普克(Vapnik)提出的统计学习理论,有别于一般统计学理论,该理论能够在有限样本的条件下对事物进行非原理
9、分析。该方法很有可能通过小样本就得到不错的分类结果,从而得到良好的分割,所以它不失为图像分割一个很好的选择。本文就是要着重探讨支持向量机以及如何利用它编程实现简单的真彩色图像切割。91.2 研究的背景和现状1.3 支持向量机在机器学习中,支持向量机是一种有关联学习算法的监督学习模型,用来分析被用于分类和回归分析的数据。给定一组训练的例子,每个都被标记为属于两个类别中的一个或另一个,一个支持向量机训练算法建立一个模型,分配新例子到其中一或另一个类别中,使得该模型成为一个非概率二进制线性分类器(虽然存在使用概率分类设置状态下的支持向量机的方法,比如普拉特扩展)O一个支持向量机模型是将例子作为空间中
10、的点的映射的展示,这样不同类别的例子被一个清晰的分界线尽可能明显地分开。然后新的例子被映射到相同的空间中并根据它落到分界线的哪一侧预测其所属的类别。除了执行线性分类,支持向量机能够使用核技巧有效地执行非线性分类,核技巧隐性地把输入的数据映射到高维特征空间中去。当数据没有被标类时,监督学习就没有成效了,这时我们需要非监督学习方法,该方法尝试着寻找原始聚类,把它们划分到组中,然后把新的数据映射到这些组中。支持向量簇类算法应用支持向量的统计方法来分类非标签数据,是目前业界最广泛应用的簇类算法。最初的支持向量机算法是由弗拉基米尔N.万普尼克(VladimirN.Vapnik)和阿利克谢.雅(Alexe
11、yYa.Chervonenkis)于1963年发明。BernhardE.Boser,IsabelleM.GUyon和VIadinIirN.Vapnik于1992年提出了通过把核函数运用到最大间隔超平面来创建非线性分类器的方法。当前的标准的典型(软间隔)是由CorinnaCorteS和VaPnik在1993年提出并于1995年公布的。91.2.2支持向量机的应用1.SVM在文本和超文本分类中很有帮助因为他们的应用可以在标准归纳和转换设置中显著减少对标签训练例子的需求。92 .图像的分类也可以使用SVM实施。试验表明实验结果表明,在经过3-4轮相关反馈后,支持向量机的搜索精度明显高于传统的查询细化
12、方案。对图像分割系统这个结论也同样适合,包括那些使用修改版的由万普尼克提出的优先方法的支持向量机。93 .使用支持向量机识别出手写字体的特征。94 .SVM算法已经被广泛应用于生物和其它科学领域。它们已经被用来对蛋白质进行分类,其中高达90%的化合物分类正确。91.3研究内容DMATLAB编程实现基于SVM的真彩色图像切割2) MATLABGUI制作交互界面第二章系统理论2.1 支持向量机2.1.1 定义更常见的是,一个支持向量机在一个高维或无限维的空间建立一个或一系列超平面,这些超平面可以被用于分类、回归或其它任务比如异常值检验。直观地来说,一个好的分离是通过一个合格的超平面得到的,该超平面
13、必须是对任何类中的最近的训练点集有着最大的距离(这就是所谓的函数间隔),因为通常来说间隔越大,分类器的泛化误差越小。虽然原始的问题可以在有限维空间中被表述,但是经常会出现要区分的数据集在有限维空间不是线性可分的情况。正是这个原因,有人提出了将原始的有限维空间映射成一个维度更高的空间,认为这样可以使得划分更加容易。为了使运算量保持在合理的范围内,这种使用支持向量机方案的映射,通过定义适用于此问题的核函数M,y),被设计成能保证原始空间中的变量的点积很容易被算出来。在更高维空间的超平面被定义为与该空间某向量的点积是常数的点的集合。这些定义超平面的向量可以被选为出现在数据基中的特征向量W的图像参数以
14、。通过这种超平面的选择,特征向量中被映射到超平面的点X由以下关系式定义:Zaikxi,x)=Constanto注意,如果随着y远离X增长,HX,力变小,和式中的每一个项度量了测试点/离相应的数据基的点项的相近程度。在这种情况下,上面内核的和式可以用来度量每一个测试点离另一个来自待区分集合的数据点的相对接近程度。注意到一个事实,就是被映射到任何超平面的点的集合最终会慢慢变复杂,使得在初始空间一点也不复杂的的集合的划分会变得很复杂。92.1.2 线性支持向量机我们给定如下n个点的训练集伍,乂),(,y“),、的值是1或-1,每一个都表明了点用所属的类,每个芯是一个P维实矩阵。我们想找到“最大间隔超
15、平面”,该平面将标签为1和-1的点分成两组。它被如此定义因为超平面与每个组中的点的最近距离得最大。每个超平面可以写成满足而元-匕=0的点用的集合,这里R(不一定规范化)是超平面的法向量。这个式子非常像黑塞标准形,除了由不一定是一个单位向量。参数刍决定了超Fll平面沿着法向量勿相对原点的偏移。9硬间隔如果训练数据是线性可分的,我们可以选择两个能够分开两类数据的平行的超平面,这样它们之间的距离会尽可能大了。被两个超平面围成的区域被称为“间隔”,那么最大间隔超平面就位于它们正中间与它们平行。通过正确的数据集重新调节,这些超平面可以被描述为下面的式子:x-b=(任何在该边界或其上方的点是一类,用标签1表示)x-b=-l(任何在该边界或其下方的点是一类,用标签1表示)2从几何角度出发,两个超平面之间的距离是同,为了最大化距离我们想要最小化I同I。这个距离是用点到平面的距离方程算出来的。我们也必须防止数据点掉到间隔中,我们增加了如下约束:对于每个i如果满足H=I时,xi-bl,如果M=T,而芯bT两个式子中的任一个。这些约束阐明每个数据点必须在间隔正确的一边。上面两项也可以写