基于SVM的图像分类系统设计文档成勇.docx
- 文档编号:10341908
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:31
- 大小:861.35KB
基于SVM的图像分类系统设计文档成勇.docx
《基于SVM的图像分类系统设计文档成勇.docx》由会员分享,可在线阅读,更多相关《基于SVM的图像分类系统设计文档成勇.docx(31页珍藏版)》请在冰豆网上搜索。
基于SVM的图像分类系统设计文档成勇
LANZHOUUNIVERSITYOFTECHNOLOGY
毕业设计
题目基于SVM图象分类系统
学生姓名成勇
学号
专业班级计算机科学及技术3班
指导教师李晓旭
学院计算机及通信学院
答辩日期
摘要
支持向量机(SVM)方法是建立在统计学习理论基础之上,克服了神经网络分类和传统统计分类方法许多缺点,具有较高泛化性能。
但是,由于支持向量机尚处在发展阶段,很多方面尚不完善,现有成果多局限于理论分析,而应用显得较薄弱,因此研究和完善利用支持向量机进行图像分类对进一步推进支持向量机在图像分析领域应用具有积极推动作用。
本文通过支持向量机技术和图像特征提取技术实现了一个图像分类实验系统。
文中首先引入了支持向量机概念,对支持向量机做了较全面介绍;然后,讨论了图像特征描述和提取方法,对图像颜色矩特征做了详细描述,对svm分类也做了详细说明;最后讨论了由分类结果所表现一些问题。
测试结果表明,利用图像颜色矩特征分类方法是可行,并且推断出采用综合特征方法比采用单一特征方法进行分类得到结果要更令人满意。
关键词:
支持向量机图像分类特征提取颜色矩
Abstract
Thesupportvectormachine(SVM)methodisbasedonstatisticallearningtheoryfoundation,overcometheneuralnetworkclassificationandtraditionalstatisticalclassificationmethodoffaults,andhashighgeneralizationperformance.But,becausethesupportvectormachine(SVM)isstillinthedevelopmentstage,manystillnotperfect,theexistingresultsmorelimitedtothetheoreticalanalysis,andtheuseofappearmoreweakandthereforestudyandimprovetheuseofsupportvectormachinestoimageclassificationsupportvectormachinetofurtheradvanceintheapplicationofimageanalysisplayapositiveroleinpromoting.
Inthispaper,supportvectormachine(SVM)technologyandimagefeatureextractiontechnologyimplementsaimageclassificationexperimentsystem.Thispaperfirstintroducestheconceptofsupportvectormachine(SVM),thesupportvectormachine(SVM)madeamorecomprehensiveintroduction;Then,discussedtheimagecharacteristicsofdescriptionandextractionmethod,theimagecolormomentfeaturesdescribedindetail,alsomadedetailedinstructionsfortheSVMclassification;Finallydiscussedtheclassificationresultsofsomeproblems.Testresultsshowthatusingthetorquecharacteristicsoftheimagecolorclassificationmethodisfeasible,anddeducethecomprehensivecharacteristicmethodthanusingsinglefeaturemethodtoclassifytheresultsaremoresatisfactory.
Keywords:
supportvectormachineimageclassificationfeatureextractionColorMoment
第一章前言
1.1本课题研究意义
随着信息社会到来,人们越来越多接触到大量图像信息。
每天都有大量图像信息在不断产生(如卫星、地质、医疗、安全等领域),这些图像信息有效组织和快速准确分类便成了人们亟待解决课题。
图像分类就是利用计算机对图像进行定量分析,把图像中每个像元或区域划归为若干类别中一种,以代替人视觉判读,图像分类过程就是模式识别过程,是目视判读延续和发展。
是工业和学术界热点问题。
本文提出了一种利用支持向量机(SupportVectorMachine,简称SVM)图像分类方法。
该系统可用于各类图像分类,给定某类图像训练数据,可以学习分类规则。
对于给定新图像,即能输出图像类别。
1.2本论文目、内容
首先应该指出是,在某些方面,SVM同神经网络研究方法是可以相互借鉴。
正如在对神经网络研究一样,人们在SVM研究方面不能抱有矛盾幻想,一方面想使其功能强大无比,任何情况下都具有极高泛化能力;另一方面,又要求SVM具有良好性能,例如全局收敛且收敛速度快。
这显然是不现实,它应该是人们不断为之奋斗目标。
因此在SVM研究方面必须有所侧重,本文在SVM研究中偏向于它性能和应用性,即要求保证全局最优基础上,尽量提高收敛速度,使其在图像分析中发挥很好作用:
而对SVM容量控制等理论问题,本文暂不过多涉及。
本文对以下问题做了研究:
1。
分析SVM模型中核函数特性,探讨核函数及SVM分类器性能关系,为下面研究做铺垫。
2.利用上述分析,研究了图像特征对SVM分类器影响,主要利用了颜色特征和纹理特征,分别对颜色图像分类、纹理图像分类以及综合特征图像分类进行了比较,并在Pc机上进行大量实验,对实验数据进行对比和分析。
1.3开发技术介绍
1.3.1SVM技术及其发展简史
SVM是支持向量机(SupportVectorMachine)简称,是在统计学习理论基础上发展起来一种机器学习方法。
早在六十年代,SVM奠基人V.Vapink就开始了统计学习理论研究。
1971年,V.Vapink和Chervonenkis在“TheNecessaryandSufficientConditionsfortheUnifomsConvergenceofAveragestoExpectedvalues,一文中,提出了SVM一个重要理论基础--VC维理论。
1982年,在“EstimationofDependencesBasedonEmpiricalData”一书中,V.Vapnik进一步提出了具有划时代意义结构风险最小化原理,为SVM奠定了直接、坚实理论基础。
1992年,B.Boser,T.Guyon和V.Vapnik,在“ATrainingAlgorithmforOptimalMarginC1assifiers”一书中,提出了最优边界分类器,由此形成了SVM雏形。
SVM提出被认为是机器学习一个重要革新。
1993年,Cortes和Vapnik,在“TheSoftMarginclassifier”一文中,进一步探讨了非线性最优边界分类问题。
1995年,Vapnik在“TheNatureofstatisticalLearningTheory”一书中,完整地提出了SVM分类。
1997年,V.Vapnik,S.Gokowich和A.Smola,发表“SupportVectorMethodforFunctionApproximation,RegressionEstimation,andsignalProcessing”,一文中,详细介绍了基于SVM方法回归算法和信号处理方法。
1998年,Smola在他博士论文中详细研究了SVM中各种核机理和应用,为进一步完善SVM非线性算法做出了重要贡献。
l999年,B.Schokopf和S.Mika等人在“InputSpaceVersusFeatureSpaceinKemel-BasedMethods”一文中提出了将核变换和核技巧用于空间变换。
同年,B.scholkopf,C.J.C.Burges和A.J.Smola在“AdvancesinKemelMethods—supportVectorLearning”一文中详细阐述了核方法。
上述及同期其它学者工作,将隐含在SVM中核方法引申出来,并且得以发展和完善。
核方法提出、完善和进一步地应用,是SVM对学习算法重要贡献,是SVM发展一个重要里程碑。
1.3.2java技术简介
Java是一种可以撰写跨平台应用软件面向对象程序设计语言,是由SunMicrosystems公司于1995年5月推出Java程序设计语言和Java平台(即JavaEE,JavaME,JavaSE)总称。
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。
Java技术具有卓越通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大开发者专业社群。
在全球云计算和移动互联网产业环境下,Java更具备了显著优势和广阔前景。
Java是由SunMicrosystems公司于1995年5月推出Java面向对象程序设计语言(以下简称Java语言)和Java平台总称。
由JamesGosling和同事们共同研发,并在1995年正式推出。
Java最初被称为Oak,是1991年为消费类电子产品嵌入式芯片而设计。
1995年更名为Java,并重新设计用于开发Internet应用程序。
用Java实现HotJava浏览器(支持Javaapplet)显示了Java魅力:
跨平台、动态Web、Internet计算。
从此,Java被广泛接受并推动了Web迅速发展,常用浏览器均支持Javaapplet。
另一方面,Java技术也不断更新。
(2010年Oracle公司收购了SUN)
第二章系统分析
2.1系统需求分析
随着信息社会到来,人们越来越多接触到大量图像信息。
每天都有大量图像信息在不断产生(如卫星、地质、医疗、安全等领域),这些图像信息有效组织和快速准确分类便成了人们亟待解决课题。
图像分类就是利用计算机对图像进行定量分析,把图像中每个像元或区域划归为若干类别中一种,以代替人视觉判读,图像分类过程就是模式识别过程,是目视判读延续和发展。
是工业和学术界热点问题。
SVM,SupportVectorMachine,即支持向量机,是一种机器学习算法,不过现今最常拿来就是做分类(classification)。
也就是说,如果我有一堆已经分好类东西(可是分类依据是未知!
),那当收到新东西时,SVM可以预测(predict)新数据要分到哪一堆去。
2.2系统业务流程分析
应用svm分类步骤如下:
(1)首先搜集各个类训练集和测试集
(2)从训练集和测试集中提取图片特征
(3)将训练集提取数据用于svm学习训练,得到训练模板
(4)通过模板对测试集提取特征数据用于分类,得到分类结果
系统业务流程图如下图2.2所示:
搜集训练图片
特征提取
搜集测试图片
学习
分类器
分类
分类结果
图2.2系统业务流程图
第三章系统总体设计
3.1分类系统结构
基于支持向量机图像分类实验系统框架示意图如下图3.1所示:
图像
图像特征提取模块
SVM分类模块
图3.1系统结构图
3.2图像数据库
图像数据库指搜集不同种类图片作为特征提取图片数据集。
本次我所取图片以颜色特征为主如下表格3.2所示:
表格3.2图片类别
红色
黑色
蓝色
绿色
黄色
3.3特征提取模块
该模块主要负责对图像数据库中图像进行特征提取,并对其进行特征归一化处理,把所提取特征数据以下格式写到特征输出文件中,以作为下一个模块输入数据。
[label][index1]:
[value1][index2]:
[value2]...
[label][index1]:
[value1][index2]:
[value2]...
3.4svm分类模块
该模块以特征提取模块输出文件作为输入,可以对支持向量机各个参数进行选择,包括核函数及其参数,然后用一定量样本对该学习机进行学习和训练,用测试样本来测试,得到最后分类效果。
使用SVM流程大概就是:
1.准备数据并做成指定格式(有必要时需svmscale)。
2.用svmtrain来train成model。
3.对新输入,使用svmpredict来predict新数据,得到分类结果。
第四章系统详细设计
4.1特征提取模块
该模块主要负责对图像数据库中图像进行特征提取,并对其进行特征归一化处理,然后把图像特征值输出到相应文件中,以作为下一个模块输入。
4.1.1颜色矩
颜色是彩色图像最重要内容之一,被广泛用于图像检索中。
但从图像中提取颜色特征时,很多算法都先要对图像进行量化处理。
量化处理容易导致误检,并且产生图像特征维数较高,不利于检索。
stricker和0reng0提出了颜色矩方法[1],颜色矩是一种简单有效颜色特征表示方法,有一阶矩(均值,mean)、二阶矩(方差,viarance)和三阶矩(斜度,skewness)等,由于颜色信息主要分布于低阶矩中,所以用一阶矩,二阶矩和三阶矩足以表达图像颜色分布,颜色矩已证明可有效地表示图像中颜色分布,该方法优点在于:
不需要颜色空间量化,特征向量维数低;但实验发现该方法检索效率比较低,因而在实际应用中往往用来过滤图像以缩小检索范围。
设p(i,j)图像像素值,N为像素数,则:
Mean=(sum(p(I,j)))/N
Variance=sqrt(sum(p(I,j)-mean)^2/N)
Skewness=Variance=(sum(p(I,j)-mean)^3/N)^1/3
三个颜色矩数学定义:
其中,Pi,j表示图像第i个颜色通道分两种灰度为j像素出现概率,N表示图像中像素个数。
及颜色直方图相比,该方法另一个好处在于无需对特征进行向量化。
因此,图像颜色矩一共只需要9个分量(3个颜色分量,每个分量上3个低阶矩),及其他颜色特征相比是非常简洁。
在实际应用中为避免低次矩较弱分辨能力,颜色矩常和其它特征结合使用,而且一般在使用其它特征前起到过滤缩小范围(narrowdown)作用。
4.2SVM分类模块
该模块以特征提取模块输出文件作为输入,可以对支持向量机各个参数进行选择,包括核函数及其参数,然后用一定量样本对该学习机进行学习和训练,用测试样本来测试,得到最后分类效果。
4.2.1svm算法简介
近年来,随着统计学习理论和支持向量机越来越受到广泛关注,陆续提出了许多关于SVM训练算法,其算法也日益完善。
下面就简单介绍一下SVM算法。
SVM训练算法主要有三类:
二次规划算法,分解算法和增量算法。
另外,针对特定问题,很多研究者在这三类算法基础上提出了很多改进算法,这些算法在特定问题解决中表现出了很好效果。
第一类是二次规划算法。
在前面分析中多次提到,SVM可以归结为一个二次规划(QP)问题,QP是一种常见优化问题,有一套比较成熟理论基础。
从数学角度分析,SVM是一个求条件极值问题,其通常解法有罚函数法和单纯形法。
罚函数法基本思想是将解不满足约束条件程度作为惩罚项加在目标函数中,将条件极值问题转化为无条件极值问题来处理,求得其解后增大惩罚力度,将上一步结果作为下一次寻优起始迭代点,再求解无条件极值问题,直到满足约束为止。
单纯形法是先随机找到一个可行点作为初值点,构造以可行点为顶点单纯形,然后按某种搜索策略逐步缩小单纯形,直至各项点间距离在允许误差范围内为止。
第二类是分解算法。
当训练样本增加时,二次规划算法存在训练速度慢,效率低下,算法复杂而难以实现等问题。
为此,一些学者提出了处理大规模训练集算法。
Cones和Vapnik提出Chunking算法,该算法每次求解一个子QP问题,得到若干支持向量。
用这些支持向量和一些不满足优化条件样本,构成新子QP问题,而初始子问题由任意若干个样本构成。
重复上述过程,知道所有样本满足优化条件。
该方法存在问题是,当支持向量较多时,算法训练速度明显变慢。
因为该方法实际求解QP问题中赫赛(Hessiall)矩阵规模下降为最多。
P1att提出了SMO(SequentialMinimal和mization序贯最小优化)算法。
该算法将工作样本集规模减到最小一一两个样本情况,其优点是针对两个样本二次规划问题可以有解析解形式,从而避免了多样本情况下数值解不稳定及耗时问题,同时也不需要大矩阵存储空间,特别适合稀疏样本,算法避开了复杂数值求解优化问题过程。
此外,SVM算法工作集选择也别具特色,不是传统最陡下降法,而是采用启发式策略,通过两个嵌套循环来寻找待优化样本变量。
在外循环中寻找违背KKT(Karush.Kuhn.Tuckcr)最优条件样本,然后在内循环中再选择另一个样本,完成一次优化。
再循环,进行下一次优化,直到全部样本都满足最优条件,这大大加快了算法收敛速度。
sM0算法主要耗时在最优条件判断上,所以应寻求最合理即计算代价最低最优条件判别式。
第三类是增量算法。
训练方式是在训练样本单个输入情况下训练,其训练样本总个数是未知。
最典型应用是系统在线辨识。
Ahmed.s.N最早提出了SVM增量训练算法,但只是近似增量,即每次只选一小批常规二次规划算法能处理训练样本,然后只保留支持向量,抛弃非支持向量,和新进来样本混和进行训练,知道训练样本用完为止,实验表明误差可以接受。
CauwenberghsG等人提出了增量训练精确解,即增加一个训练样本或减少一个样本对Lagrange系数和支持向量影响,实验表明算法是有效,特别是减少一个样本时,对模型选择算法LOO(Leaveoneout)形象解释,缺点是当样本无限增多时,还是必须抛弃一些样本,使其能够实用。
此外,在以上三类基本算法基础上,许多学者还提出了其他算法,如;张学工提出CSVM算法,将每类训练样本集进行聚类分成若干个子集,用子集中心组成新训练样本集训练SVM等。
这些算法为SVM广泛应用起到了推动作用。
4.2.2svm核函数选择
支持向量机模型最重要一个参数就是核函数。
选择什么样核函数,就意味着将训练样本映射到什么样空间去进行线性划分,核函数选择关系到能否得到正确识别结果,而怎样从理论上保证选择最优核函数仍是一个有待解决问题,目前多是通过实验来决定。
4.2.3svm核函数
核函数是SVM模型建立一个主要问题,因为核函数在支持向量机中占有比较重要地位,所以本节将其单独列出来,对现有研究成果进行整理和分析,为以后实验打下坚实理论基础。
Vapnik在SVM理论中提到,当问题不是线性可分时,利用核函数将样本集映射到某一高维空间,使得样本集在高维空间像集是线性可分。
定理:
对任给样本集K,均存在一映射墨K1,K2两类,则必然存在一映射F:
Sn→M,F(K)在M中是线性可分。
该定理说明:
对任给样本集K,均存在一映射F,在此映射下,F(K)(在高维空间中)是线性可分。
上述即为核函数存在性定理,该定理为在任意样本集上应用核方法(包括SVM)提供了理论保证。
4.2.4svmtrain用法
svmtrain实现对训练数据集训练,获得SVM模型。
Train(训练)data.train会接受特定格式输入,产生一个"Model"文件。
这个model你可以想象成SVM内部数据,因为predict要model才能predict,不能直接吃原始数据。
用法:
svmtrain[options]training_set_file[model_file];
其中,options(操作参数):
可用选项即表示涵义如下所示:
-ssvm类型:
设置SVM类型,默认值为0,可选类型有:
0--C-SVC
1--n-SVC
2--one-class-SVM
3--e-SVR
4--n-SVR
-t核函数类型:
设置核函数类型,默认值为2,可选类型有:
0--线性核:
u'*v
1--多项式核:
(g*u'*v+coef0)degree
2--RBF核:
e(uv2)g-
3--sigmoid核:
tanh(g*u'*v+coef0)
-ddegree:
核函数中degree设置,默认值为3;-gg:
设置核函数中g,默认值为1/k;
-rcoef0:
设置核函数中coef0,默认值为0;
-ccost:
设置C-SVC、e-SVR、n-SVR中从惩罚系数C,默认值为1;
-nn:
设置n-SVC、one-class-SVM及n-SVR中参数n,默认值0.5;
-pe:
设置n-SVR损失函数中e,默认值为0.1;
-mcachesize:
设置cache内存大小,以MB为单位,默认值为40;
-ee:
设置终止准则中可容忍偏差,默认值为0.001;
-hshrinking:
是否使用启发式,可选值为0或1,默认值为1;
-b概率估计:
是否计算SVC或SVR概率估计,可选值0或1,默认0;
-wiweight:
对各类样本惩罚系数C加权,默认值为1;
-vn:
n折交叉验证模式。
其中-g选项中k是指输入数据中属性数。
操作参数-v随机地将数据剖分为n部分并计算交叉检验准确度和均方根误差。
以上这些参数设置可以按照SVM类型和核函数所支持参数进行任意组合,如果设置参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有参数设置不正确,参数将采用默认值。
training_set_file是要进行训练数据集;model_file是训练结束后产生模型文件,该参数如果不设置将采用默认文件名,也可以设置成自己惯用文件名。
4.2.5svmpredict用法
svmpredict是根据训练获得模型,对数据集合进行预测,依照已经train好model,再加上给定输入(新值),输出predict(预测)新值所对应类别。
用法:
svmpredict[options]test_output_file;
options(操作参数):
-bprobability_estimates:
是否需要进行概率估计预测,可选值为0或者1,默认值为0。
model_file是由svm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SVM 图像 分类 系统 设计 文档