文档

图像分类与袋的视觉语言

使用计算机视觉系统工具箱™函数图像类别分类通过创建一个袋的视觉语言。这个过程生成一个代表图像的直方图的视觉出现的字。这些直方图用于图像类别分类器训练。下面的步骤描述如何设置你的照片,创建视觉单词的袋子,然后火车并应用图像类别分类器。

步骤1:设置图像类别集

组织和图像分割成培训和测试子集。使用imageDatastore函数用于存储图像训练图像分类器。组织分类使得处理大型图像的图像更加容易。您可以使用splitEachLabel函数将图像分为训练和测试数据。

阅读类别图像和创建图像集。

setDir = fullfile (toolboxdir(“愿景”)、“visiondata”,“imageSets”);imd = imageDatastore (setDir IncludeSubfolders,没错,‘LabelSource’,……“foldernames”);

单独的训练集和测试图像子集。在本例中,30%的图像分块进行培训和其余的测试。

[trainingSet, testSet] = splitEachLabel (imd, 0.3,“随机”);

步骤2:创建包的功能

创建一个视觉词汇,或包的特性,从代表每个类别的图像中提取特征描述符。

bagOfFeatures对象定义的特性,或视觉单词,通过使用k - means聚类(统计和机器学习的工具箱)在特征描述符提取算法trainingSets。算法迭代组描述符k相互排斥的集群。由此产生的集群紧凑,由类似的特征。每个集群中心代表一个功能,或视觉单词。

基于特征检测器可以提取功能,或者你可以定义一个网格提取特征描述符。网格方法可能会失去细粒度范围信息。因此,使用网格图像不包含不同的功能,如图像包含的风景,喜欢海滩。使用加速健壮的特性(或冲浪)探测器提供了更大的尺度不变性。默认情况下,该算法的运行“网格”方法。

这个算法的工作流分析完整的图像。图像必须有适当的标签描述他们所代表的类。例如,一组汽车图像可以被贴上汽车。工作流不依赖于空间信息和识别的特定对象在一个图像。bag-of-visual-words技术依赖于检测没有本地化。

步骤3:用袋视觉词训练图像分类器

trainImageCategoryClassifier函数返回一个图像分类器。函数火车一个多类分类器使用纠错输出编码和二进制(ECOC)框架支持向量机(SVM)分类器。万博1manbetx的trainImageCategoryClassfier返回的函数使用视觉单词的袋子bagOfFeatures对象编码图像在图像设置为视觉单词的直方图。然后使用视觉单词的直方图作为正负样本训练分类器。

  1. 使用bagOfFeatures编码训练集的方法编码每个图像。这个函数检测和提取特征的图像,然后使用近似最近邻算法构建一个为每个图像直方图特征。然后函数增量直方图箱基于描述符的接近到一个特定的集群中心。直方图的长度对应于视觉单词的数量bagOfFeatures对象构造。图像的直方图变成一个特征向量。

  2. 重复步骤1中的每个图像训练集来创建训练数据。

  3. 评估分类器的质量。使用imageCategoryClassifier评估方法对验证测试分类器图像集。输出混淆矩阵表示的分析预测。一个完美的分类结果在一个正规化矩阵包含1 s对角线上。一个不正确的分类结果分数值。

步骤4:一组图像或图像进行分类

使用imageCategoryClassifier预测方法确定其类别的新形象。

引用

[1]Csurka G。c . r .舞蹈,l .风扇j . Willamowski和c·布雷。视觉分类袋的要点。车间在统计学习计算机视觉。大会1(22页),1 - 2。

相关的话题