主要内容

bagOfFeatures

视觉词的袋子物体

描述

管理您的图像集合,并将它们划分为训练集和验证集。你可以构造一个视觉词汇包,用于图像类别分类。培训和分类包括对并行计算工具箱™的支持。万博1manbetx

创建

描述

例子

袋= bagOfFeatures (洛桑国际管理发展学院返回一个功能对象包。的的示例生成输出对象洛桑国际管理发展学院输入。默认情况下,视觉词汇表是根据从图像中提取的SURF特征创建的洛桑国际管理发展学院

袋= bagOfFeatures (洛桑国际管理发展学院,'CustomExtractor',extractorFcn返回使用自定义特征提取函数从中的图像中提取特征的特征包洛桑国际管理发展学院extractorFcn是自定义特征提取函数的函数句柄。

袋= bagOfFeatures (洛桑国际管理发展学院名称,值使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,袋= bagOfFeatures(‘详细’,真的)

该对象支持使用多个MAT万博1manbetxLAB进行并行计算®工人。的并行计算计算机视觉工具箱首选项对话框。要打开计算机视觉工具箱™首选项,请在首页选项卡,环境部分中,点击首选项.然后选择计算机视觉工具箱。

输入参数

全部展开

指定为ImageDatastore对象。的bagOfFeatures从包含的图像中提取等量的最强特征洛桑国际管理发展学院对象。

最强特性的数量最小值在每个集合中发现的特征数量) xStrongestFraction (1)
对象获取StrongestFraction价值的“StrongestFeatures”财产。

自定义特征提取器函数,指定逗号分隔对,包括'CustomExtractor'和函数句柄。这个自定义函数从输出中提取特性bagOfFeatures学习物体的视觉词汇。

这个函数,extractorFcn,必须指定为文件的函数句柄:

extractorFcn = @exampleBagOfFeaturesExtractor;袋= bagOfFeatures (imd, CustomExtractor, extractorFcn)
在哪里exampleBagOfFeaturesExtractor是一个MATLAB函数。例如:
function [features,featureMetrics] = exampleBagOfFeaturesExtractor(img)…
函数必须在路径上或当前工作目录中。

有关自定义提取器函数及其输入和输出需求的详细信息,请参见创建自定义特性提取器

你可以打开一个示例函数文件,并通过在MATLAB命令行中输入以下命令来使用它作为模板:

编辑(“exampleBagOfFeaturesExtractor.m”)

属性

全部展开

自定义特征提取器函数,指定为函数的句柄。自定义特征提取函数提取的特征用于学习的视觉词汇bagOfFeatures.你必须指定'CustomExtractor'和函数句柄,extractorFcn,转换为自定义特征提取函数。

这个函数,extractorFcn,必须指定为文件的函数句柄:

extractorFcn = @exampleBagOfFeaturesExtractor;袋= bagOfFeatures (imd, CustomExtractor, extractorFcn)
在哪里exampleBagOfFeaturesExtractor是一个MATLAB函数,如:
function [features,featureMetrics] = exampleBagOfFeaturesExtractor(img)…
函数必须在路径上或当前工作目录中。

有关自定义提取器函数及其输入和输出需求的详细信息,请参见创建自定义特性提取器.你可以打开一个示例函数文件,并通过在MATLAB命令行中输入以下命令来使用它作为模板:

编辑(“exampleBagOfFeaturesExtractor.m”)

要包含的视觉词的数量bagOfFeatures对象,指定为逗号分隔对,由'VocabularySize'和范围为[2,].的VocabularySize值对应于Kk - means聚类(统计学和机器学习工具箱)将特征量化为视觉词汇的算法。

最强特性的部分,指定为逗号分隔对,由'StrongestFeatures和范围[0,1]的值。属性中的每个标签中要使用的最强特性的部分洛桑国际管理发展学院输入。

使进度显示在屏幕上,指定为逗号分隔的对,由'详细的'和逻辑的真正的

SURF特征提取的点位置选择方法,指定为逗号分隔对,由'PointSelection”,要么“网格”“探测器”.特征提取分为两个阶段。首先,选择一个方法来选择点位置(SURF)“探测器”“网格”),PointSelection财产。第二阶段提取特征。特征提取使用SURF提取器进行两种点选择方法。

当您设置PointSelection“探测器”,利用加速鲁棒特征(SURF)检测器选择特征点。否则,这些点将在一个预定义的网格上选取,网格的间距定义为GridStep”。属性指定的自定义提取器时,此属性才应用CustomExtractor财产。

以像素为单位的网格步长,指定为逗号分隔的对,由'GridStep'和1乘2 [xy)向量。此属性仅在设置时应用PointSelection“网格”函数没有指定自定义提取器CustomExtractor财产。其中的步骤xy方向定义了均匀网格的间距。网格线的交点定义了特征提取的位置。

用于提取直立SURF描述符的Patch大小,指定为逗号分隔的对,由'BlockWidth'和一个1-by-N向量的N块宽度。属性指定的自定义提取器时,此属性才应用CustomExtractor财产。向量的每个元素都对应于一个正方形块的大小,函数从中提取直立的SURF描述符。使用多个正方形大小提取多尺度特征。所有指定的正方形用于网格上的每个提取点。此属性仅在您设置时应用PointSelection“网格”.块的宽度与特征的规模相对应。最低BlockWidth是32像素。

SURF特征向量的方向,指定为逗号分隔对,由'正直的和一个逻辑标量。属性指定的自定义提取器时,此属性才应用CustomExtractor财产。将此属性设置为真正的当不需要估计SURF特征向量的方向时。将其设置为当您需要图像描述符来捕获旋转信息时。

对象的功能

编码 创建视觉词出现的直方图

例子

全部折叠

加载两个图像集。

setDir = fullfile (toolboxdir (“愿景”),“visiondata”“imageSets”);imgSets = imageSet (setDir,“递归”);

从每个图像集中选取前两个图像创建训练集。

trainingSets =分区(imgSets, 2);

创建功能包。这个过程可能需要几分钟。

袋= bagOfFeatures (trainingSets,“详细”、假);

计算直方图的视觉词出现的图像之一。将直方图存储为特征向量。

img =阅读(imgSets (1), 1);featureVector =编码(袋、img);

加载图像集。

setDir = fullfile (toolboxdir (“愿景”),“visiondata”“imageSets”);imd = imageDatastore (setDir,“IncludeSubfolders”,真的,“LabelSource”...“foldernames”);

指定一个自定义特征提取器。

器= @exampleBagOfFeaturesExtractor;袋= bagOfFeatures (imd,“CustomExtractor”器)
创建Bag-Of-Features。------------------------- *图像类别1:书籍*图像类别2:杯子*使用自定义特征提取函数提取特征:exampleBagOfFeaturesExtractor。*从12张图片中提取特征…完成。提取230400特性。*保留每个类别中80%最强大的功能。*使用K-Means聚类创建500单词的视觉词汇。*特性数量:184320 *集群数量(K): 500 *初始化集群中心…100.00%。*完成20/100次迭代(~1.85秒/迭代)…在20次迭代中收敛。*完成功能包的创建
bagfeatures = bagfeatures with properties: CustomExtractor: @exampleBagOfFeaturesExtractor VocabularySize: 500 stronggestfeatures: 0.8000

扩展功能

介绍了R2014b