与视觉词袋的图像分类

通过创建视觉词袋使用计算机视觉工具箱™图像类别分类功能。该过程生成视觉词的出现表示的图像的直方图。这些直方图被用来训练图像类别的分类器。下面的步骤介绍如何设置您的图像,创建视觉词袋,再培训和应用图像类别分类。

第1步:设置图像类别集

整理和图像分割成训练和测试的子集。使用imageDatastore功能存储图像用于训练的图像分类。组织图像进行分类处理,使大集图像容易得多。您可以使用splitEachLabel功能将图像分割为训练和测试数据。

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

setDir =完整文件(toolboxdir( '视力'), 'visiondata', 'imageSets');IMDS = imageDatastore(setDir, 'IncludeSubfolders',真, 'LABELSOURCE',... 'foldernames');

分隔成集训练和测试图像的子集。在这个例子中,图像的30%的被划分为训练和测试剩余部分。

[trainingSet,测试集] = splitEachLabel(IMDS,0.3, '随机化');

第2步:创建特色袋

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

bagOfFeatures对象定义的特征,或视觉的话,通过使用k均值聚类从提取的特征描述符(统计和机器学习工具箱)算法trainingSets。该算法迭代组描述成ķ互斥集群。将得到的簇紧凑,并通过类似的特征分隔开。每个群集中心表示的特征,或视觉词。

您可以提取基于特征检测的功能,也可以定义一个网格,提取特征描述符。网格方法可能会失去细粒度的尺度信息。因此,使用不包含显着特征,图像网格例如含图像的风景,就像海滩。使用加速稳健特征(SURF或)检测器提供了更大的尺度不变性。默认情况下,该算法运行'格'方法。

该算法的工作流程的全部分析图像。图片必须说明他们所代表的阶级适当的标签。例如,一组汽车的图像可以被标记的汽车。工作流不依赖于空间信息,也没有对标记的图像中的特定对象。袋的视觉词该技术依赖于检测而无需定位。

步骤3:培养的图像分类随着袋的视觉词的

trainImageCategoryClassifier函数返回一个图像分类。该函数使用列车具有二进制支持向量机(SVM)分类器的纠错输出编码(ECOC)框架多类分类器。万博1manbetx该trainImageCategoryClassfier功能使用的由返回的视觉词袋bagOfFeatures目的是在图像组成的视觉词直方图编码图像。的视觉词直方图然后被用作阳性和阴性样品来训练分类器。

  1. 使用bagOfFeatures编码方法来编码从训练集中的每个图像。该功能检测并提取从图像特征,然后使用近似最近邻算法来构造针对每个图像的特征直方图。然后,该函数增量直方图基于描述符的邻近于特定的聚类中心箱。直方图长度对应于视觉词,所述数量bagOfFeatures对象构成。直方图成为该图像的特征向量。

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

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

步骤4:分类的图像或图像集

使用imageCategoryClassifier预测新的图像上的方法来确定其类别。

参考

[1] Csurka,G.,C. R.舞蹈,L.范,J. Willamowski,和C.布雷。视觉分类与关键点的包。车间统计学习计算机视觉。ECCV 1(1-22),1-2。

相关话题