




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
研究生技术报告题目:基于libsvm的图像分类研究编号:20132098执笔人:刘金环完成时间:2013-11-23摘要随着科学技术的飞速发展,机器学习与人工智能技术的不断创新,人们对特定信息检索的需求逐渐增加,使得如何对资源进行合理有效的分类成为一个关键问题。支持向量机(SVM)是一种建立在统计学习理论基础之上的机器学习方法,由于其基于小样本训练的优越性,被广泛应用于模式识别的各个领域,在图像检索、人脸识别等中充分了体现了其优越性,越来越受到广泛的关注和重视。本文主要介绍了基于libsvm分类器的分类问题。本文以gist和phog特征为例简单实现了图像的分类问题,并通过查询准确性对这两种分类方法进行对比和分析。由仿真结果可知,gist特征分类要好于phog的特征分类,仿真效果较为理想。目录1 课题意义12 技术要求及性能指标13方案设计及算法原理13.1基于libsvm的gist特征提取分类13.1.1算法原理13.1.2设计框图23.2基于libsvm的phog特征提取分类23.2.1算法原理23.2.2设计框图34代码及相关注释44.1基于libsvm的gist特征提取分类仿真结果64.1.1代码及注释94.1.2测试结果94.2基于libsvm的phog特征提取分类仿真结果94.2.1代码及注释94.2.2测试结果124.3基于libsvm的gist特征分类不同训练集测试结果124.3.1代码及注释134.3.2测试结果145实验结果分析146总结141. 课题意义 伴随着网络和多媒体技术的飞速发展,图像作为一种内容丰富、表现直观的媒体信息,越来越多的受到人们的关注。在现实生活中时时刻刻都会有大量的图像产生,如何从这些图像信息中找出符合用户要求的图像,成为了一个关键问题。图像分类就是模式识别的过程,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。图像的内容丰富多彩,其所包含的内容抽象复杂。由于目前对图像理解和计算机视觉发展水平的限制,人类对图像的理解与计算机对图像的描述存在着较大的差异。并且,不同的人对同一幅图像的理解和描述也存在着差距,甚至大相径庭,这也使得计算机对图像进行分类成为一种必要。 由上可知,对基于libsvm的图像分类研究具有实际的应用价值和重要的研究意义。2. 技术要求及性能指标 要求了解libsvm的安装过程及简单的使用方法,通过MATLAB平台编程实现对gist图像特征和 phog图像特征的提取,并分别用所提取的特征对训练集的图像进行训练,从而完成对测试集图像的分类,得出分类准确度。本文主要以梅兰竹菊和松竹梅图像为例,分别用以上两种特征对图像进行分类,并对分类准确性进行对比。3. 方案设计及算法原理 3.1 基于libsvm的gist特征提取分类3.1.1 算法原理通过creatGabor()函数和gistGabor()函数提取训练图像的gist特征,然后对不同类别的图像进行标签设置,用svmtrain()函数完成对训练集图像的训练过程,同样提取测试集图像的gist特征并对不同类别的图像进行标签设置,用svmpredict()函数完成对测试集图像的测试,从而完成分类过程,得到分类准确率。3.1.2 框图设计.开始 读入训练图像提取gist图像特征设置训练图像标签 对训练集图像进行训练读入测试图像提取测试图像的gist图像特征设置测试图像的标签对读入的测试图像进行测试得到准确率结束3.2 基于libsvm的phog特征提取分类3.2.1 算法原理 通过phog()函数提取训练图像的phog特征,然后对不同类别的图像进行标签设置,用svmtrain()函数完成对训练集图像的训练过程,同样提取测试集图像的phog特征并对不同类别的图像进行标签设置,用svmpredict函数完成对测试集图像的测试,从而完成分类过程,得到分类准确率。3.2.2 框图设计.开始 读入训练图像提取phog图像特征设置训练图像标签 对训练集图像进行训练读入测试图像提取测试图像的phog图像特征设置测试图像的标签对读入的测试图像进行测试得到准确率结束4. 代码及相关注释本文主要采用梅兰竹菊和松竹梅两组图像,其图像大小均为60*60像素,且每一类的训练集均为10个图片,每一类的测试集均为30个图片。 梅兰竹菊组的训练图像如下:梅兰竹菊组的测试图像如下:松竹梅组的训练图像如下:松竹梅组的测试图像如下:4.1 基于libsvm的gist特征提取分类仿真结果4.1.1 代码及注释梅兰竹菊训练样本代码:clcclear allclose alltic;%读入训练图像;A=dir(D:梅兰竹菊gisttrain*.jpg);C=;for k=1:size(A)%k为训练图像的总数; B=strcat(D:梅兰竹菊gisttrain,A(k).name); img=imread(B); %获取图像的GIST特征向量; Nblocks = 4; imageSize = 60; orientationsPerScale = 8 8 8 8;%每个数值范围的方向数量 numberBlocks = 4; createGabor(orientationsPerScale, imageSize); G = createGabor(orientationsPerScale, imageSize); output = prefilt(double(img), 4); g = gistGabor(output, numberBlocks, G); C(k,:)=g;%C为该图像的特征矩阵;end%设置训练图像标签;s=;for i=1:4 A=i*ones(10,1); s=s;A;end%对图像进行训练;model = svmtrain(s, C);t1=toc梅兰竹菊测试样本代码:Tic;A=dir(D:梅兰竹菊gisttest*.jpg);D=;%读入测试图像;for k=1:size(A)%k为测试图像的总数; B=strcat(D:梅兰竹菊gisttest,A(k).name); img=imread(B); %获取图像的GIST特征向量; Nblocks = 4; imageSize = 60; orientationsPerScale = 8 8 8 8;%每个数值范围的方向数量 numberBlocks = 4; createGabor(orientationsPerScale, imageSize); G = createGabor(orientationsPerScale, imageSize); output = prefilt(double(img), 4); g = gistGabor(output, numberBlocks, G); D(k,:)=g;%C为该图像的特征矩阵;endT=;for i=1:4 A=i*ones(30,1); T=T;A;end%对图像进行测试;predict_label, accuracy, dec_values = svmpredict(T,D, model);T2=toc松竹梅训练样本代码:clcclear allclose alltic%读入训练图像;A=dir(D:松竹梅gisttrain*.jpg);C=;for k=1:size(A)%k为训练图像的总数; B=strcat(D:松竹梅gisttrain,A(k).name); img=imread(B); %获取图像的GIST特征向量; Nblocks = 4; imageSize = 60;orientationsPerScale = 8 8 8 8;%每个数值范围的方向数量numberBlocks = 4; createGabor(orientationsPerScale, imageSize); G = createGabor(orientationsPerScale, imageSize); output = prefilt(double(img), 4); g = gistGabor(output, numberBlocks, G); C(k,:)=g;%C为该图像的特征矩阵;end%设置训练图像标签;s=;for i=1:3 A=i*ones(10,1); s=s;A;end%对图像进行训练;model = svmtrain(s, C);T1=toc松竹梅测试样本代码:ticA=dir(D:松竹梅gisttest*.jpg);D=;%读入测试图像;for k=1:size(A)%k为测试图像的总数; B=strcat(D:松竹梅gisttest,A(k).name); img=imread(B); %获取图像的GIST特征向量; Nblocks = 4; imageSize = 60; orientationsPerScale = 8 8 8 8;%每个数值范围的方向数量 numberBlocks = 4; createGabor(orientationsPerScale, imageSize); G = createGabor(orientationsPerScale, imageSize); output = prefilt(double(img), 4); g = gistGabor(output, numberBlocks, G); D(k,:)=g;%C为该图像的特征矩阵;endT=;for i=1:3 A=i*ones(30,1); T=T;A;end%对图像进行测试;predict_label, accuracy, dec_values = svmpredict(T,D, model);T2=toc4.1.2 测试结果 梅兰竹菊gist测试结果:对其进行四分类,其中每一类的训练图像为10幅,测试图像为30幅,测试时间为t=t1+t2=10.5512+20.4377=30.9889S,Accuracy = 87.5% (105/120) 。当改成orientationsPerScale=8, 8, 4时,测试结果变为t=t1+t2=7.6699+14.1259=21.7958S,Accuracy = 84.1667% (101/120) 。松竹梅gist测试结果:对其进行三分类,其中每一类的训练图像为10幅,测试图像为30幅,测试时间为t=t1+t2=5.7285+15.0340=20.7625S,Accuracy = 91.1111% (82/90) 。4.2 基于libsvm的phog特征提取分类仿真结果4.2.1 代码及注释梅兰竹菊训练样本代码:clcclear allclose alltic%显示训练图像工作路径;cd(D:梅兰竹菊phogtrain)files=dir(*.jpg);m=size(files,1);%m为训练图像的总数; %获取训练图像的PHOG特征向量;bin = 8;%直方图的方向个数;angle = 360;%方向角度;L=3;%图像分三层;roi = 1;60;1;60;%提取图像大小;C=;for k=1:m p = anna_phog(files(k).name,bin,angle,L,roi); C(k,:)=p;%C为该图像的特征矩阵;end %设置训练图像标签s=;for i=1:4 A=i*ones(10,1); s=s;A;end%对图像进行训练;model = svmtrain(s, C);T1=toc梅兰竹菊测试样本代码:tic%显示测试图像工作路径;cd(D:梅兰竹菊phogtest)files=dir(*.jpg);m=size(files,1);%m为测试图像的总数;%获取测试图像的PHOG特征向量;bin = 8;%直方图的方向个数;angle = 360;%方向角度;L=3;%图像分三层;roi = 1;60;1;60;%提取图像大小;D=;for k=1:m p = anna_phog(files(k).name,bin,angle,L,roi); D(k,:)=p;%D为该图像的特征矩阵;end %设置测试图像标签T=;for i=1:4 A=i*ones(30,1); T=T;A;end%对图像进行测试;predict_label, accuracy, dec_values = svmpredict(T,D, model);T2=toc松竹梅训练样本代码:clcclear allclose allTic;%显示训练图像工作路径;cd(D:松竹梅phogtrain)files=dir(*.jpg);m=size(files,1);%m为训练图像的总数; %获取训练图像的PHOG特征向量;bin = 8;%直方图的方向个数;angle = 360;%方向角度;L=3;%图像分三层;roi = 1;60;1;60;%提取图像大小;C=;for k=1:m p = anna_phog(files(k).name,bin,angle,L,roi); C(k,:)=p;%C为该图像的特征矩阵;end %设置训练图像标签s=;for i=1:3 A=i*ones(10,1); s=s;A;end%对图像进行训练;model = svmtrain(s, C);T2=toc松竹梅测试样本代码:Tic;%显示测试图像工作路径;cd(D:松竹梅phogtest)files=dir(*.jpg);m=size(files,1);%m为测试图像的总数;%获取测试图像的PHOG特征向量;bin = 8;%直方图的方向个数;angle = 360;%方向角度;L=3;%图像分三层;roi = 1;60;1;60;%提取图像大小;D=;for k=1:m p = anna_phog(files(k).name,bin,angle,L,roi); D(k,:)=p;%D为该图像的特征矩阵;end %设置测试图像标签T=;for i=1:3 A=i*ones(30,1); T=T;A;end%对图像进行测试;predict_label, accuracy, dec_values = svmpredict(T,D, model);T2=toc;4.2.2 测试结果 梅兰竹菊phog测试结果:对其进行四分类,其中每一类的训练图像为10幅,测试图像为30幅,测试时间为t=t1+t2=8.6881+10.0942=18.7823S,Accuracy = 53.3333% (64/120) 。改成L=0时,t=t1+t2=1.3464+2.0309=3.3773S,Accuracy = 43.3333% (52/120) ;改成L=2时,t=t1+t2=1.7162+3.2901=5.0063S,Accuracy = 51.6667% (62/120) 。 松竹梅phog测试结果:对其进行三分类,其中每一类的训练图像为10幅,测试图像为30幅,测试时间为t=t1+t2=2.3445+5.1615=7.506S,Accuracy = 70% (63/90) 。改成roi = 15;45;15;45时,t=t1+t2=2.5186+5.8621=8.3807S,Accuracy = 75.5556% (68/90)。4.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)农户树木出售协议书
- (2025年标准)酿酒占股协议书
- (2025年标准)奶粉质量协议书
- (2025年标准)民事离婚调解协议书
- (2025年标准)专业项目协议书
- (2025年标准)收回 款 协议书
- (2025年标准)食品变质索赔协议书
- (2025年标准)要求支付货款协议书
- 员工实习期劳务合同
- (2025年标准)用电防火协议书
- 夫妻流产同意协议书
- 《氢化工基础》课件-4.非均相分离
- 小儿麻醉护理课件
- DB64 2000-2024 自然资源调查监测技术规程
- DB22-T3409-2022-餐饮用醇基液体燃料安全使用技术规范-吉林省
- 项目经理考核试题及答案
- 车载信息娱乐系统的设计与开发-全面剖析
- 安检岗位培训课件模板
- 2025-2030中国水产饲料原料和产品行业市场现状供需分析及投资评估规划分析研究报告
- 腹膜透析换液操作医学
- 静电检测专业知识培训课件
评论
0/150
提交评论