主要内容

trainACFObjectDetector

火车ACF对象探测器

描述

探测器= trainACFObjectDetector (trainingData)返回一个训练有素的总渠道特性(ACF)对象探测器。函数使用积极的图像中对象的实例存储在一个表或一个数据存储,并规定trainingData。函数自动收集-实例的映像在训练。创建一个地面真值表,使用图片标志贴标签机视频应用程序。

例子

探测器= trainACFObjectDetector (trainingData,名称=值)返回一个探测器指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,ObjectTrainingSize = [100100]在训练集对象的高度和宽度。

例子

全部折叠

使用trainACFObjectDetector通过训练图像创建一个ACF对象探测器可以检测到停止的迹象。测试探测器与一个单独的图像。

加载训练数据。

负载(“stopSignsAndCars.mat”)

前缀的完整路径停车标志图像。

stopSigns = fullfile (toolboxdir (“愿景”),“visiondata”stopSignsAndCars {: 1});

创建数据存储负载的地面实况数据停止的迹象。

imd = imageDatastore (stopSigns);建筑物= boxLabelDatastore (stopSignsAndCars (:, 2));

结合图片和盒子标签数据存储。

ds =结合(imd,建筑物);

火车ACF探测器。负样本的数量设置为使用在每个阶段2。你可以关掉输出通过指定培训进展Verbose = false,作为一个名称-值论点。

acfDetector = trainACFObjectDetector (ds, NegativeSamplesFactor = 2);
ACF对象探测器培训的培训将采取四个阶段。模型大小34 x31。样品正面例子(~ 100%)完成计算近似系数…完成。计算聚合通道特性…完成。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -阶段1:样本的负面例子(~ 100%)完成计算聚合通道特性…完成。训练分类器与42个正面例子和84年负面例子…完成。训练的分类器有19个弱的学习者。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -阶段2:样本的负面例子(~ 100%完成)发现了84个新的负面例子进行训练。计算聚合通道特性…完成。训练分类器与42个正面例子和84年负面例子…完成。 The trained classifier has 20 weak learners. -------------------------------------------- Stage 3: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 54 weak learners. -------------------------------------------- Stage 4: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 61 weak learners. -------------------------------------------- ACF object detector training is completed. Elapsed time is 13.9535 seconds.

测试的ACF探测器测试图像。

img = imread (“stopSignTest.jpg”);[bboxes,分数]=检测(acfDetector, img);

显示检测结果和对象的边界框插入图像。

i = 1:长度(分数)注释= sprintf (信心= % .1f '分数(i));img = insertObjectAnnotation (img,“矩形”bboxes(我:),注释);结束图imshow (img)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

输入参数

全部折叠

贴上地面真理,指定为一个数据存储或表。

  • 如果你使用一个数据存储,数据必须设置,以便调用的数据存储readall函数返回一个单元阵列或表至少有两列。表描述了数据中包含的列:

    图片 盒子 标签(可选)

    细胞灰度矢量或RGB图像。

    4矩阵边界框的形式x,y,宽度,高度),(x, y)代表边界框的左上角的坐标。

    包含一个单元阵列元分类向量包含对象类的名字。所有分类数据存储返回的数据必须包含相同的类别。

    当你提供这些数据,函数使用类标签来填补ModelName财产的训练有素的探测器,指定为一个acfObjectDetector对象。否则,培训所需的类标签没有因为ACF对象探测器是一个类探测器。

  • 如果你使用一个表,表中必须有两个或两个以上的列。第一列的表必须包含图像文件的名称和路径。图像必须灰度或真彩(RGB),他们可以在任何支持的格式金宝appimread。剩余的每个列必须包含一个细胞向量4矩阵代表一个对象类,如车辆,,或停车标志。列包含第4单元阵列的两倍边界框的格式(x,y,宽度,高度]。格式指定边界框的左上角位置和大小在相应的形象。创建一个地面真值表,您可以使用图片标志应用程序或贴标签机视频应用。创建一个表的训练数据生成的地面实况,使用objectDetectorTrainingData函数。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:ObjectTrainingSize = [100100]在训练集对象的高度和宽度。

在训练的对象大小,指定为一个2-element向量的形式高度宽度以像素为单位。最低培训规模[8]。在培训过程中,对象是调整大小以指定的高度和宽度“ObjectTrainingSize”。增加尺寸可以提高检测精度,但也会增加培训和检测时间。

当你指定“汽车”,基于中值的大小设置的宽高比的正面实例。

例子:[100100]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

数量的培训阶段迭代训练过程中,指定为一个正整数。增加这个数量可以提高探测器和减少训练错误,较长的训练时间为代价的。

数据类型:

负样本的因素,指定为一个实值标量。负样本的数量等于每个阶段使用

NegativeSamplesFactor×在每个阶段使用的积极的样本数量

数据类型:

最大数量的弱最后阶段的学习者,指定为一个正整数标量或矢量的正整数。如果输入是一个标量,MaxWeakLearners最后阶段指定的最大数量。如果输入是一个矢量,MaxWeakLearners指定的最大数量的每个阶段,必须有一个长度相等的NumStages”。这些值通常增加整个阶段。ACF对象探测器使用增强算法来创建一个较弱的学习者。您可以使用更高的值来提高检测精度,检测性能降低的速度为代价的。推荐值从300年到5000年不等。

数据类型:

选项来显示进度信息的培训过程中,指定为真正的

数据类型:逻辑

输出参数

全部折叠

训练ACF-based对象探测器,作为一个返回acfObjectDetector对象。

版本历史

介绍了R2017a