转载

一、建立图像分类集

收集图像并把他们分成训练子集和测试子集,在matlab中,用imageDatastor()函数存储图像用于图像分类,以类别的形式组织图像使完成大量图像分类更容易些,你可以用splitEachLabel()函数把收集的图像分类成训练数据和测试数据。例如:

setDir  = fullfile(toolboxdir('vision'),'visiondata','imageSets');

imds = imageDatastore(setDir,'IncludeSubfolders',true,'LabelSource',...    'foldernames');

把这些图像分成训练集和测试集,比如把30%的图像分成训练集,而剩余的分成测试集。

[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');

 

二、建立特征包(bag of feature)

从每个图像类的典型图像中提取特征描述子,用以创建视觉词汇或特征包,bagOfFeature()通过在从训练集中提取的特征描述子上使用使用k-means聚类算法,定义特征和视觉词汇。该算法迭代地将描述子分组到k互斥簇中。由此产生的聚类是紧凑的,并以相似的特性分离。每个集群中心代表一个特性,或一个可视的单词。

你可以基于特征描述子提取特征,或者可以定义一个grid提取特征描述子,grid方法可能会丢失图像的细致纹理信息。因此,对不包含明显特征的图像使用grid,比如包含像海滩一类的风景图像。SURF检测子的使用提供了更大的尺度不变性。默认情况下,该算法运行“grid”方法。

这个算法流程对图像进行了整体分析,图像必须有合适的标签来描述它们所代表的类。例如,一组汽车图像可以标记为汽车。流程不依赖于空间信息,也不依赖于在图像中标记特定对象。视觉词汇技术依赖于非局部检测。

三、用视觉词汇训练图像分类器

trainImageCategoryClassifier()函数返回一个图像分类器,这个函数使用带有SVM分类器的ECOC框架训练一个多类分类器。该函数使用bagOfFeatures()返回的视觉词汇包,将图像集中的图像编码成视觉词的直方图。然后用视觉词汇的直方图作为正负样本来训练分类器。

1.使用bagOfFeatures()编码方法对训练集中的每幅图像进行编码,该函数从图像中检测并提取特征,然后近似的最邻近算法对每幅图像构建一个特征直方图,接下来,该函数根据描述子靠近特定的聚类中心的距离增加直方图。直方图长度对应的是bagOfFeatures()所构造的视觉词的数量。这样,直方图成为了图像的特征向量。        2. 对训练集中的每幅图像重复步骤1,进行创建训练数据。

3.分类器评价,使用imageCategoryClassifier() evaluate方法在测试集上检测分类器,一个完美的分类结果是在对角线上包含1的规则化矩阵。不正确的分类结果是分数值。

四、图像或图像集分类

在一副新图像上使用imageCategoryClassifier()predict方法,确定它的类别。

References

[1] Csurka, G., C. R. Dance, L. Fan, J. Willamowski, and C. Bray. Visual Categorization with Bags of Keypoints. Workshop on Statistical Learning in Computer Vision. ECCV 1 (1–22), 1–2.

Related Topics

  • Image Category Classification Using Bag of Features
  • Image Retrieval Using Customized Bag of Features

转载 基于MATLAB 进行图像分类相关推荐

  1. matlab仿真直流电机,[转载]基于Matlab/Simulink的无刷直流电机控制仿真研究

    摘要: 基于Matlab/Simulink,本文设计了一个无刷直流电机的控制方案,详细阐述了无刷直流电机的运行原理,并用Matlab/Simulink对其进行了仿真.实验证明,用Matlab/Simu ...

  2. 如何用matlab画紫罗兰,[转载]基于MATLAB的快速傅立叶分析程序设计

    以下程序是我学习阶段总结的,特此写出来供大家参考,转载请注明! 1.已知信号数据 对一个人为产生的信号进行采用FFT变换方法进行功率谱分析.已知信号x(n)=120.0*COS(2*3.14*SF*n ...

  3. matlab元组转化为举证,[转载]基于MATLAB对有限元模型进行转化

    众所周知,MATLAB是matrix&laboratory的组合,翻译成中文也就是矩阵实验室.它的基本数据单位是矩阵.在模型转化这个项目中,我们主要运用了它的文本读入.文本输出以及矩阵变换的功 ...

  4. matlab wind回测,[转载]基于Matlab和Wind SQL数据库的通用选股策略回测程序

    function [y,varargout]=backtestcomplex(x,varargin) % Created by mjf(Tel: 13718883838) on 2012-07-15 ...

  5. 转载:基于MATLAB的几种图像分割算法

    基于MATLAB的几种图像分割算法 转载自:https://blog.csdn.net/bentleydelll/article/details/82456150 最大类间方差法 基本思路是根据直方图 ...

  6. 基于MATLAB的IIR滤波器设计与实现

    基于MATLAB的IIR滤波器设计与实现 IIR滤波器的设计主要有经典设计法.直接设计法和最大平滑滤波器设计法三种方法. 1.经典设计法是基于模拟滤波器的变换原理,首先根据滤波器的技术指标设计出相应的 ...

  7. 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...

    基于matlab语言计算电力系统暂态稳定仿真程序实验报告 BeijingJiaotongUniversity 电力系统分析 暂态稳定分析实验 学院:电气工程学院 班级:xxxxxxxx 学号:xxxx ...

  8. 【原】基于matlab的蓝色车牌定位与识别---绪论

    本着对车牌比较感兴趣,自己在课余时间摸索关于车牌的定位与识别,现将自己所做的一些内容整理下,也方便和大家交流. 考虑到车牌的定位涉及到许多外界的因素,因此有必要对车牌照的获取条件进行一些限定: 一.大 ...

  9. matlab 压缩感知矩阵_【精读】基于MATLAB的钢筋下料优化算法

    基于MATLAB的钢筋下料优化算法 摘要:运用MATLAB软件求解实际工程中一维钢筋下料优化的问题,提出了首先列举出单根原料分割的所有可行解,其次采用线性规划的方法求出理想条件下最优方案,最后通过整数 ...

  10. 基于MATLAB的数字图像处理系统设计

    一.课题背景 MATLAB 作为国内外流行的数字计算软件,具有强大的图像处理功能,界面简洁,操作直观,容易上手,而且是图像处理系统的理想开发工具. 笔者阐述了一种基于MATLAB的数字图像处理系统设计 ...

最新文章

  1. 06--swift之闭包
  2. 双塔模型在Airbnb搜索排名中的应用
  3. python 建站需求_python建站基础环境配置
  4. aws python lambda_python – AWS Lambda发送HTTP请求
  5. c语言fseek128字节,C语言rewind和fseek函数的用法详解(随机读写文件)
  6. 继承/作⽤域/作⽤域链
  7. 扫地机自动回充揭秘之小米/iRobot/云鲸/360
  8. centos u盘安装_利用Win32 Disk Imager 实现U盘刻录ISO
  9. Configuration Manager 2012 R2系统需求
  10. SQL语句生成器 V2.0
  11. LimeSurvey的使用和简单的二次开发
  12. tailf、tail -f、tail -F三者区别
  13. XML Essential Training XML基本培训 Lynda课程中文字幕
  14. S50VB100-ASEMI日本新电元平替整流桥S50VB100
  15. WSN基于自适应网格的多目标定位算法
  16. 拜访名寺古刹之圆通寺
  17. 安装.net补丁后mscorsvw.exe占CPU100%的问题
  18. appium startActivity使用方法
  19. 5G商用价值到底在哪里,可以赋予哪些能力?
  20. MySQL字段名获取

热门文章

  1. 3D游戏建模:3dmax对场景进行布局和建模
  2. python画正态分布_用python的matplotlib画标准正态曲线
  3. java运行html代码,java代码运行html
  4. MFC使用SaveAs函数保存Excel文件时,弹出“文件已存在”问题
  5. matlab画一条平滑曲线,Matlab画平滑曲线的两种方法( 拟合或插值后再用plot即可)...
  6. IdentityServer4 去掉验证
  7. matlab学习笔记 repmat函数与kron函数之区别
  8. 【英语语法入门】 第13讲 形容词
  9. token验证失败 java_“Token校验失败,请检查确认”解决方法
  10. django系列9 --- 迁移相关