支持向量机在图像分割中的应用.DOC

上传人:国*** 文档编号:2087987 上传时间:2019-04-20 格式:DOC 页数:9 大小:194KB
下载 相关 举报
支持向量机在图像分割中的应用.DOC_第1页
第1页 / 共9页
支持向量机在图像分割中的应用.DOC_第2页
第2页 / 共9页
支持向量机在图像分割中的应用.DOC_第3页
第3页 / 共9页
支持向量机在图像分割中的应用.DOC_第4页
第4页 / 共9页
支持向量机在图像分割中的应用.DOC_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、支持向量机在图像分割中的应用支持向量机(Support Vector Machine 或 SVM)是 Vapnik 及其研究小组提出的一种全新的模式识别技术。SVM 建立在统计学习理论(Statistical Learning Theory 简称 SLT)上,并综合了机器学习和神经网络等方面的技术,已表现出了很有优秀的性能并能有效的提高算法的推广能力,因此,日益引起研究人员的重视。下面,参考文献并结合自己的理解,对 SVM 理论进行简要介绍并介绍其在图像分割中的应用。一、统计学习理论(Statistical Learning Theory 简称 SLT) 12传统统计学研究的是样本数目趋于无穷

2、大时的渐近理论,与之相比,SLT是一种专门研究小样本情况下机器学习规律的理论。V. Vapnik 等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论受到越来越广泛的重视。SLT 建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。统计学习理论主要内容包括四个方面:1) 经验风险最小化(ERM)准则下统计学习一致性的条件;2) 在这些条件下关于统计学习方法推广性的界的结论;3) 在这些界的基础上建立的小样本归纳推理准则;4) 实现新的准则的实际方法(算法)。其中,最有指导性的理

3、论结果是推广性的界,与此相关的一个核心概念是VC(Vapnik-Chervonenkis Dimension)维。模式识别方法中 VC 维的直观定义是:对一个指示函数集,如果存在 h 个样本能够被函数集中的函数按所有可能的 2h 种形式分开,则称函数集能够把 h 个样本打散,函数集的 VC 维就是它能够打散的最大样本数 h。VC 维反映了函数集的学习能力, VC 维越大则学习机器越复杂(容量越大) 。在样本有限时,ERM 原则是不合理的,我们需要同时最小化经验风险和置信范围。统计学习理论提出一种新的策略,把函数集构造为一个函数子集序列,使各个子集按照 VC 维的大小排列,在每个子集中寻找最小经

4、验风险,在子集间折衷考虑经验风险和置信范围,取得实际风险的最小,这种思想称为结构风险最小化(Structural Risk Minimization )即 SRM 准则。二、支持向量机(Support Vector Machine,简称 SVM)121995 年,Vapnik 提出了支持向量机 (Support Vector Machine,简称 SVM)理论。该理论在解决小样本、非线性及高维模式识别中表现出许多特有的优势,克服了传统机器学习理论的缺点,大大推动了统计机器学习理论的发展。SVM 是从线性可分情况下的最优分类面发展而来的。所谓最优分类线,就是要求分类线不但能将两类正确分开(训练错

5、误率为 0) ,而且使分类间隔最大。分类方程为 ,对其进行归一化,使得对线性可分的样本集 ,*0xwb (,)ixy, , ,满足1,.indR1,y, (1)(*)10ixb,.in此时分类间隔等于 ,使间隔最大等价于使 最小。满足条件(1)且2/|w2|w使 最小的分类面就叫做最优分类面,过各类中离分类线最近的样本且平21|w行于分类线的直线上的训练样本点就称作支持向量。在 N 维空间中,设样本分布在一个半径为 R 的超球范围内,则满足条件的正则超平面构成的指示函数集 的 VC 维满|A(,)sgn(*)fxwbxb足下面的界(2)2min(,)1hRAN因此使 最小就是使 VC 维的上界

6、最小,从而实现 SRM 准则中对函数复杂2|w性的选择。利用 Lagrange 优化方法可以把上述最优化分类面问题转化为其对偶问题,即在约束条件(3)10niy和, (4)i,.in下对 求解下列函数的最大值(5)1,1()(*)2nniijiijijQyx为与每个样本对应的 Lagrange 乘子。这是一个不等式约束下二次函数寻优的问题,存在唯一解。容易证明,解中将只有一部分(通常是少部分) 不i为零。对应的样本就是支持向量。解上述问题后得到的最优分类函数是(6)*1()sgn(*)sgn()iifxwxbyxb式中的求和实际上只对支持向量进行。 是分类阈值,可以用任一个支持向量*求得,或通

7、过两类中任意一对支持向量取中求得。对于 N 维空间中的线性函数,其 VC 维为 N+1。对于非线性问题,可以通过非线性变换转化为某个高维空间中的线性问题,在变换空间求最优分类面。这种变换可能比较复杂,因此这种思路在一般情况下不易实现。但注意到,在上面的对偶问题中,不论是寻优函数(12)还是分类函数(13)都只涉及训练样本之间的内积运算 ,这样在高维空间实际上只需要进行内积运算,而(*)ijx这种内积运算是可以用原空间的函数实现。在最优分类面中采用适当的核函数就可实现某一非线性变换后的线性分类,而计算复杂度却没有增加。此(,)iKx时目标函数(5)变为:(7)1,1()(,)2nniijiiji

8、jQyKx而相应的分类函数变为:(8)*1()sgn(,)iifxyxb这就是支持向量机。概括的说,支持向量机就是首先通过用内积函数定义的非线性变换将输入空间变换到一个高维空间,在这个空间中求(广义)最优分类面。SVM 中不同的内积核函数将形成不同的算法,目前研究比较多的核函数主要有:(1)多项式核函数 ,所得到的是 q 阶多项式分类器;(,)(*)1qiiKxx(2)径向基函数(RBF) ;2|(,)expiiK(3)Sigmoid 函数 ;,tanh*)i ixvc三、利用 SVM 进行图像分割实验 345目前,SVM 已广泛应用于各个领域,包括模式识别、回归分析、密度估计和时间序列预测等

9、。在 SVM 的应用领域中与图像处理相关的应用包括:纹理识别、人脸识别、医学诊断、故障诊断、图像分割等。在此,结合所学 SVM知识与本人专业背景,选取 SVM 用于图像分割的例子进行研究,作为课程作业。图像分割的实质是要正确的划分属性空间,使得有相同属性的像素归属于同一区域,不同属性的像素归属于不同的区域。图像分割将图像分为构成它的子区域或对象。分割程度取决于所要解决的内容。就是说,在应用中,当感兴趣的对象已经被分离出来时,就停止分割。复杂图像的分割是图像处理中最困难的任务之一,精确的分割决定着图像分析过程的成败。图像分割算法一般是基于亮度值的两个基本特征之一:不连续性和相似性。第 1 类性质

10、的应用途径是基于亮度的不连续性变化分割图像,比如图像边缘的提取。第 2 类的主要应用途径是依据事前制定的准则将图像分割为相似的区域。鉴于自己对 SVM 的认识还不够深刻,采取第 1 类性质,并且亮度变化比较明显的图像进行分割实验,对于复杂图像的分割,还有待于自己算法的进一步改进。利用 SVM 进行图像分割原理为:利用 SVM 对每一个像素进行分类。首先需选择代表两类的像素点,提取特征,生成训练集;然后选取合适的核、核参数及惩罚系数,训练分类器,得到支持向量;再逐一提取每个像素点的特征,产生样本待分类样本集,求得每一个像素点对应样本到超平面的距离值;再将每个像素点归入两个不同的类,完成对图像的分

11、割。实验采用Matlab 自带的SVM工具箱libsvm,用到的svm处理主要函数有svmtrain,svmpredict 等。实验过程为:(1)利用 ginput函数从图像的背景和感兴趣的目标上分别提取20个点,利用它们RGB三个通道的亮度值作为特征属性,生成训练集。(2)用 svmtrain 函数建立支持向量机。核函数选为一阶线性多项式,其余参数均为 Matlab 默认参数。(3)用svmpredict函数进行预测,并进行图像分割,将感兴趣的目标提取出来。选取三幅图像,实验结果如下:(1)Accuracy = 92.6211% (243964/263400) (classification

12、)Mean squared error = 0.0737889 (regression)Elapsed time is 29.533863 seconds.图 1(2)Accuracy = 60.8001% (186778/307200) (classification)Mean squared error = 0.391999 (regression)Elapsed time is 33.655160 seconds.图 2(3)Accuracy = 63.7508% (668476/1048576) (classification)Mean squared error = 0.362492

13、 (regression)Elapsed time is 33.094057 seconds图 3结果分析:由于仅采用的是基于亮度的不连续性进行分割,因此对于目标和背景亮度区分比较大的图像,分割效果比较好。如图 1 和图 2,在视觉上都能比较明显的将目标提取。然而对于目标和背景区分不是很明显的图像,分割效果不是很好。如图 3,为海水和陆地的图像,目标是陆地,将陆地的边缘提取出来,结果分割出的陆地目标的边缘比较差,说明还需要别的特征才能完整分割。算法还有待于进一步提高。四、参考文献1张文生. “统计学习理论与应用”课程课件. 2011 年夏季学期2张学工. 关于统计学习理论与支持向量机. 自动化

14、学报 . Vol.26,No.1 ,2000 年 1 月3杨强. 支持向量机的模型及其在图像分割中的应用. 重庆大学博士学位论文 . 2004 年 6 月4薛志东,王燕. SVM 图像分割方法的研究. 微计算机信息. 2007 年 23 卷 第 8-3 期五、源代码% tic;close all;% clear;clc;format compact;%pic = imread(littleduck.jpg);pic = imread(land_and_sea.tiff);figure;imshow(pic);% 确定训练集TrainData_background = zeros(20,3,do

15、uble);TrainData_foreground = zeros(20,3,double);% 背景采样msgbox(Please get 20 background samples,Background Samples,help);pause;for run = 1:20x,y = ginput(1);hold on;plot(x,y,r*);x = uint8(x);y = uint8(y);TrainData_background(run,1) = pic(x,y,1);TrainData_background(run,2) = pic(x,y,2);TrainData_backgr

16、ound(run,3) = pic(x,y,3);end % 待分割出来的前景采样msgbox(Please get 20 foreground samples which is the part to be segmented,Foreground Samples,help);pause;for run = 1:20x,y = ginput(1);hold on;plot(x,y,ro);x = uint8(x);y = uint8(y);TrainData_foreground(run,1) = pic(x,y,1);TrainData_foreground(run,2) = pic(x,

17、y,2);TrainData_foreground(run,3) = pic(x,y,3);end % let background be 0 .ones(length(TrainData_foreground),1);% 建立支持向量机 基于libsvmTrainData = TrainData_background;TrainData_foreground;model = svmtrain(TrainLabel, TrainData, -t 1 -d 1);% 进行预测 i.e.进行图像分割 基于libsvmpreTrainLabel = svmpredict(TrainLabel, Tr

18、ainData, model);m,n,k = size(pic);TestData = double(reshape(pic,m*n,k);TestLabal = svmpredict(zeros(length(TestData),1), TestData, model);% ind = reshape(TestLabal,TestLabal,TestLabal,m,n,k);ind = logical(ind);pic_seg = pic;pic_seg(ind) = 0;figure;imshow(pic_seg);figure;subplot(1,2,1);imshow(pic);xlabel(原始图像);subplot(1,2,2);imshow(pic_seg);xlabel(分割出的目标);%toc;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 医药卫生

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。