主要内容

objectDetectorTrainingData

创建对象检测器的训练数据

描述

例子

洛桑国际管理发展学院,建筑物= objectDetectorTrainingData(gTruth根据指定的ground truth创建一个图像数据存储和一个框标签数据存储训练数据。

可以使用。将映像和框标签数据存储结合起来结合洛桑国际管理发展学院,建筑物),以创建训练所需的数据储存。使用与训练函数相结合的数据存储,例如trainACFObjectDetector,trainYOLOv2ObjectDetector,trainFastRCNNObjectDetector,trainFasterRCNNObjectDetector,trainRCNNObjectDetector

此函数支持使用多个MATLA万博1manbetxB进行并行计算®工人。方法启用并行计算计算机视觉工具箱参数设置对话框。

例子

___,arrds= objectDetectorTrainingData(gTruth还返回一个数据存储arrds,其中包含与标签关联的属性和子标签。

例子

trainingDataTable= objectDetectorTrainingData (gTruth从指定的ground truth返回一个训练数据表。gTruth的数组。groundTruth对象。您可以使用该表格使用计算机视觉工具箱™训练功能来训练对象检测器。

___= objectDetectorTrainingData(gTruth,名称=值使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,Verbose = True允许显示到工作空间环境。

如果您创建groundTruth对象gTruth使用视频文件、自定义数据源或imageDatastore对象,则可以指定名称-值参数的任何组合。如果您创建groundTruth对象的图像集合或图像序列数据源,则只能指定SamplingFactorLabelData名称-值参数。

例子

全部折叠

训练一个基于YOLO v2网络的车辆检测器。

将包含图像的文件夹添加到工作区。

imageDir = fullfile(matlabroot,“工具箱”,“愿景”,“visiondata”,“汽车”);目录(imageDir);

加载车辆地面真相数据。

数据=负载(“vehicleTrainingGroundTruth.mat”);gTruth = data.vehicleTrainingGroundTruth;

加载包含layerGraph对象的检测器进行训练。

车辆检测仪=负载(“yolov2VehicleDetector.mat”);lgraph = vehicleDetector.lgraph
lgraph = LayerGraph with properties: Layers: [25×1 nnet.cnn.layer.Layer] Connections: [24×2 table] InputNames: {'input'} OutputNames: {'yolov2OutputLayer'}

使用ground truth对象创建图像数据存储和框标签数据存储。

[imds,bxds] = objectDetectorTrainingData(gTruth);

合并数据存储。

CDS = combine(imds,bxds);

配置培训选项。

选项= trainingOptions(“个”,...“InitialLearnRate”, 0.001,...“详细”,真的,...“MiniBatchSize”, 16岁,...“MaxEpochs”30岁的...“洗牌”,“every-epoch”,...“VerboseFrequency”10);

训练探测器。

[detector,info] = trainYOLOv2ObjectDetector(cds,lgraph,options);
************************************************************************* 培训YOLO v2意思对象探测器以下对象类:*车辆培训单CPU。|========================================================================================| | 时代| |迭代时间| Mini-batch | Mini-batch |基地学习  | | | | ( hh: mm: ss) | RMSE | |率损失  | |========================================================================================| | 1 | 1 |就是| 7.50 | 56.2 | 0.0010 | | 1 | 10 | 00:00:02 | 1.73 | 3.0 | 0.0010 | | 2 | 20 | 00:00:04 | 1.58 | 2.5 | 0.0010 | | 2 | 30 | 00:00:06 | 1.36 | 1.9 | 0.0010 | | 3 | 40 | 00:00:08 |50 1.13 | 1.3 | 0.0010 | | 3 | | 00:00:09 | 1.01 | 1.0 | 0.0010 | | 4 | 60 | 00:00:11 | 0.95 | 0.9 | 0.0010 | | 70 | | 00:00:13 | 0.84 | 0.7 | 0.0010 | | 80 | | 00:00:15 | 0.84 | 0.7 | 0.0010 | | 90 | | 00:00:17 | 0.70 | 0.5 | 0.0010 | | 6 | 100 | 00:00:19 | 0.65 | 0.4 | 0.0010 | | 110 | | 00:00:21 | 0.73 | 0.5 | 0.0010 | | 120 | | 00:00:23 | 0.60 | 0.4 | 0.0010 | | 130 | | 00:00:24 | 0.63 | 0.4 | 0.0010 | | 140 | | 00:00:26 | 0.64 | 0.4 | 0.0010 | | 150 | | 00:00:28 | 0.57 | 0.3|0.0010|| 9 | 160 | 00:00:30 | 0.54 | 0.3 | 0.0010 | | 10 | 170 | 00:00:32 | 0.52 | 0.3 | 0.0010 | | 10 | 180 | 00:00:33 | 0.45 | 0.2 | 0.0010 | | 11 | 190 | 00:00:35 | 0.55 | 0.3 | 0.0010 | | 12 | 200 | 00:00:37 | 0.56 | 0.3 | 0.0010 | | 12 | 210 | 00:00:39 | 0.55 | 0.3 | 0.0010 | | 13 | 220 | 00:00:41 | 0.52 | 0.3 | 0.0010 | | 13 | 230 | 00:00:42 | 0.53 | 0.3 | 0.0010 | | 14 | 240 | 00:00:44 | 0.58 | 0.3 | 0.0010 | | 14 | 250 | 00:00:46 | 0.47 | 0.2 | 0.0010 | | 15 | 260 | 00:00:48 | 0.49 | 0.2 | 0.0010 | | 15 | 270 | 00:00:50 | 0.44 | 0.2 | 0.0010 | | 16 | 280 | 00:00:52 | 0.45 | 0.2 | 0.0010 | | 17 | 290 | 00:00:54 | 0.47 | 0.2 | 0.0010 | | 17 | 300 | 00:00:55 | 0.43 | 0.2 | 0.0010 | | 18 | 310 | 00:00:57 | 0.44 | 0.2 | 0.0010 | | 18 | 320 | 00:00:59 | 0.44 | 0.2 | 0.0010 | | 19 | 330 | 00:01:01 | 0.38 | 0.1 | 0.0010 | | 19 | 340 | 00:01:03 | 0.41 | 0.2 | 0.0010 | | 20 | 350 | 00:01:04 | 0.39 | 0.2 | 0.0010 | | 20 | 360 | 00:01:06 | 0.42 | 0.2 | 0.0010 | | 21 | 370 | 00:01:08 | 0.42 | 0.2 | 0.0010 | | 22 | 380 | 00:01:10 | 0.39 | 0.2 | 0.0010 | | 22 | 390 | 00:01:12 | 0.37 | 0.1 | 0.0010 | | 23 | 400 | 00:01:13 | 0.37 | 0.1 | 0.0010 | | 23 | 410 | 00:01:15 | 0.35 | 0.1 | 0.0010 | | 24 | 420 | 00:01:17 | 0.29 | 8.3e-02 | 0.0010 | | 24 | 430 | 00:01:19 | 0.36 | 0.1 | 0.0010 | | 25 | 440 | 00:01:21 | 0.28 | 7.9e-02 | 0.0010 | | 25 | 450 | 00:01:22 | 0.29 | 8.1e-02 | 0.0010 | | 26 | 460 | 00:01:24 | 0.28 | 8.0e-02 | 0.0010 | | 27 | 470 | 00:01:26 | 0.27 | 7.1e-02 | 0.0010 | | 27 | 480 | 00:01:28 | 0.25 | 6.3e-02 | 0.0010 | | 28 | 490 | 00:01:30 | 0.24 | 5.9e-02 | 0.0010 | | 28 | 500 | 00:01:31 | 0.29 | 8.4e-02 | 0.0010 | | 29 | 510 | 00:01:33 | 0.35 | 0.1 | 0.0010 | | 29 | 520 | 00:01:35 | 0.31 | 9.3e-02 | 0.0010 | | 30 | 530 | 00:01:37 | 0.18 | 3.1e-02 | 0.0010 | | 30 | 540 | 00:01:38 | 0.22 | 4.6e-02 | 0.0010 | |========================================================================================| Detector training complete. *************************************************************************

读取一个测试图像。

I = imread(“detectcars.png”);

运行探测器。

[bboxes,scores] = detect(检测器,I);

显示结果。

如果(~isempty(bboxes)) I = insertObjectAnnotation(I,“矩形”bboxes,分数);结束图imshow(我)

使用训练数据训练一个基于acf的停止标志物体检测器

将包含图像的文件夹添加到MATLAB路径中。

imageDir = fullfile(matlabroot,“工具箱”,“愿景”,“visiondata”,“stopSignImages”);目录(imageDir);

加载地面真相数据,其中包含停止标志和汽车的数据。

负载(“stopSignsAndCarsGroundTruth.mat”,“stopSignsAndCarsGroundTruth”

查看标签定义以查看基本真理中的标签类型。

stopSignsAndCarsGroundTruth。LabelDefinitions
ans =3×3表名称类型组  ____________ _________ ________ {' stopSign的矩形}{‘没有’}{‘carRear}矩形{‘没有’}{‘carFront}矩形{'没有'}

选择用于训练的停止标志数据。

stopSignsAndCarsGroundTruth = selectLabelsByName(stopSignsAndCarsGroundTruth,“stopSign”);

为停止标志对象检测器创建训练数据。

trainingData = objectDetectorTrainingData(stopSignGroundTruth);总结(trainingData)
变量:imageFilename: 41x1 cell数组字符向量stopSign: 41x1 cell

训练一个基于acf的对象检测器。

acfDetector = trainACFObjectDetector(训练数据,“NegativeSamplesFactor”2);
ACF对象检测器培训培训将分为4个阶段。模型尺寸为34x31。样本正面例子(~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 17.6553 seconds.

在样本图像上测试基于acf的检测器。

I = imread(“stopSignTest.jpg”);bboxes = detect(acfDetector,I);

显示检测到的对象。

annotation = acfDetector.ModelName;I = insertObjectAnnotation(I,“矩形”、bboxes、注释);图imshow(我)

图中包含一个轴对象。axis对象包含一个image类型的对象。

从路径中删除映像文件夹。

rmpath (imageDir);

加载图像位置,标签定义和标签数据。

数据=负载(“labelsWithAttributes.mat”);图片= fullfile(matlabroot,“工具箱”,“愿景”,“visiondata”,“stopSignImages”, data.imageFilenames);

创建一个ground truth对象。

dataSource = groundTruthDataSource(images);gTruth = groundTruth(groundTruthDataSource(图像),数据。labeldefs data.labelData);

使用ground truth对象创建图像数据存储、框标签数据存储和数组数据存储。

[imds, blds, arrds] = objectDetectorTrainingData(gTruth);

读取所有属性。

readall (arrds)
ans =2×1单元格数组{1x1 struct}

输入参数

全部折叠

基本真实值数据,指定为标量或数组groundTruth对象。属性可以从现有的地面实况数据创建地面实况对象groundTruth对象。

中使用自定义数据源groundTruth启用并行计算后,阅读器功能将与MATLAB工作者池一起工作,以并行方式从数据源读取图像。

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:SamplingFactor5)设置子抽样因子为5

在真实数据源中对图像进行子采样的因子,指定为汽车一个整数,或整数的向量。的抽样因子N时,返回的训练数据包括Nground truth数据源中的图像。该函数忽略带有空标签数据的真实图像。设置SamplingFactor对于投影的长方体数据,必须指定LabelData参数的名称-值labelType。ProjectedCuboid

使用采样数据来减少重复数据,例如具有相同场景和标签的图像序列。它还可以帮助减少训练时间。

价值 采样因子
“汽车” 该函数对具有时间戳的数据源(例如视频)进行采样,其因子为5,1用于图像的集合。
整数 手动设置采样因子应用于所有数据。
整数向量 当输入一个ground truth对象数组时,该函数使用相应向量元素指定的采样因子。

要从真实数据中提取的标签类型,指定为“labelType。矩形”“labelType。ProjectedCuboid”.使用与您希望训练的对象检测器类型一致的标签类型。

要写入提取图像的文件夹名称,指定为字符串标量或字符向量。指定的文件夹必须存在且具有写权限。

此论点仅适用于:

函数在以下情况下忽略此参数:

  • 输入groundTruth对象从图像序列数据源创建。

  • 输入数组groundTruth对象都包含使用相同自定义的映像数据存储函数。

  • 任何输入groundTruth包含数据存储的对象,使用默认值功能。

图像文件格式,指定为字符串标量或字符向量。文件格式必须由万博1manbetximwrite

此论点仅适用于:

函数在以下情况下忽略此参数:

  • 输入groundTruth对象从图像序列数据源创建。

  • 输入数组groundTruth对象都包含使用相同自定义的映像数据存储函数。

  • 任何输入groundTruth包含数据存储的对象,使用默认值功能。

输出图像文件名的前缀,指定为字符串标量或字符向量。这些映像文件被命名为:

< name_prefix > < source_number > _ < image_number >。< image_format >

默认值使用提取图像的数据源的名称,strcat (sourceName,“_”),用于视频和自定义数据源,或者“数据存储”,用于图像数据存储。

此论点仅适用于:

函数在以下情况下忽略此参数:

  • 输入groundTruth对象从图像序列数据源创建。

  • 输入数组groundTruth对象都包含使用相同自定义的映像数据存储函数。

  • 任何输入groundTruth包含数据存储的对象,使用默认值功能。

标志,在MATLAB命令行中显示训练进度,指定为真正的1)或0).此属性仅适用于groundTruth使用视频文件或自定义数据源创建的对象。

输出参数

全部折叠

图像数据存储,返回为imageDatastore对象中提取的图像gTruth对象。在洛桑国际管理发展学院至少包含一类带注释的标签。该函数忽略没有注释的图像。

框标签数据存储,返回为boxLabelDatastore对象。数据存储包含用于ROI标签名称和的分类向量的-by-4矩阵边界框。边界框的位置和大小用double表示-by-4元素向量,格式为[x,y,宽度,高度].

数组数据存储,返回为结构体数组中。田野的结构体在框标签数据存储区中包含相应标签的属性和子标签名建筑物.子标签数据打包到结构体与一个位置字段以及与子标签属性对应的字段。

训练数据表,返回为具有两个或多个列的表。该表的第一列包含带有路径的映像文件名。图像可以是灰度或真彩色(RGB),以及支持的任何格式万博1manbetximread.其余的每一列都对应于一个ROI标签,并包含图像中该标签的边界框的位置(在第一列中指定)。边界框被指定为的-by-4矩阵格式为[的包围框x,y,宽度,高度].[x,y左上角的位置。要创建基本真值表,可以使用图片标志应用程序或贴标签机视频应用程序。

输出表忽略输入中出现的任何子标签或属性数据gTruth对象。

版本历史

在R2017a中引入

全部展开