主要内容

ObjectDetortRaringData.

为对象检测器创建培训数据

描述

例子

[IMDS.BLDS.] = ObjectDettortRainingData(GTRUTH.从指定的地面真理创建图像数据存储和框标签数据存储培训数据。

您可以使用映像和框标签数据存储使用结合IMDS.BLDS.)来创建培训所需的数据存储。使用与训练功能相结合的数据存储,例如trainacfobjectdetectortrainYOLOv2ObjectDetectortrainFastRCNNObjectDetectorTRATHFASTERRCNNOOBJECTDETECTOR., 和trainrcnnobjectdetector

此功能支持使用多个MATLA金宝appB的并行计算®工人。使用parally计算使用计算机视觉工具箱首选项对话。

例子

trainingDataTable= ObjectDettortRainingData(GTRUTH.从指定的地面真理返回培训数据表。GTRUTH.是一系列的groundTruth对象。您可以使用该表使用计算机Vision Toolbox™培训功能培训对象检测器。

___= ObjectDettortRainingData(GTRUTH.名称,价值返回一个培训数据表,其中包含一个或多个名称值对参数指定的其他选项。如果你创造了groundTruth对象GTRUTH.使用视频文件,自定义数据源或imageDatastore具有不同自定义读取功能的对象,然后您可以指定名称值对参数的任何组合。如果你创造了groundTruth来自图像集合或图像序列数据源的对象,然后您只能指定“SamplingFactor.'名称 - 值对参数。

例子

全部收缩

培训基于YOLO v2网络的车辆检测器。

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

imagedir = fullfile(matlabroot,'工具箱''想象''VisionData''车辆');AddPath(Imagedir);

加载车辆地面真理数据。

data = load('车辆射击场纠察.MAT');gtruth = data.vehicletraingdroundtruth;

加载包含图层图对象进行培训的探测器。

vevicledetector = load(“yolov2VehicleDetector.mat”);Lgraph =车辆levedector.lgraph.lgraph.
lgraph = LayerGraph with properties: Layers: [25×1 net.cnn.layer. layer] Connections: [24×2 table] InputNames: {'input'} OutputNames: {'yolov2OutputLayer'}

使用ground truth对象创建一个图像数据存储和盒子标签数据存储。

[IMDS,BXDS] = ObjectDettortRainingData(GTRUTH);

组合数据存储。

CDS =组合(IMDS,BXD);

配置培训选项。

选项=培训选项(“个”......'italllearnrate',0.001,......“详细”,真的,......'minibatchsize'16,......'maxepochs',30,......'洗牌''每个时代'......“VerboseFrequency”10);

训练探测器。

[探测器,信息] = trainyolov2ObjectDetector(CD,LGraph,选项);
*************************************************************************训练a YOLO v2 Object Detector for the following object classes: * vehicle Training on single CPU. |========================================================================================| | Epoch | Iteration | Time Elapsed | Mini-batch | Mini-batch | Base Learning | | | | (hh:mm:ss) | RMSE | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:00 | 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 | 1.13 | 1.3 | 0.0010 | | 3 | 50 | 00:00:09 | 1.01 | 1.0 | 0.0010 | | 4 | 60 | 00:00:11 | 0.95 | 0.9 | 0.0010 | | 4 | 70 | 00:00:13 | 0.84 | 0.7 | 0.0010 | | 5 | 80 | 00:00:15 | 0.84 | 0.7 | 0.0010 | | 5 | 90 | 00:00:17 | 0.70 | 0.5 | 0.0010 | | 6 | 100 | 00:00:19 | 0.65 | 0.4 | 0.0010 | | 7 | 110 | 00:00:21 | 0.73 | 0.5 | 0.0010 | | 7 | 120 | 00:00:23 | 0.60 | 0.4 | 0.0010 | | 8 | 130 | 00:00:24 | 0.63 | 0.4 | 0.0010 | | 8 | 140 | 00:00:26 | 0.64 | 0.4 | 0.0010 | | 9 | 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. *************************************************************************

阅读测试图像。

我= imread(“detectcars.png”);

运行探测器。

[bboxes,分数]=检测(探测器,I);

显示结果。

如果(~isempty(bboxes)) I = insertObjectAnnotation(I,'长方形',bboxes,得分);结尾图imshow(i)

使用培训数据培训基于ACF的对象探测器以进行停止标志

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

imagedir = fullfile(matlabroot,'工具箱''想象''VisionData''stopsignimages');AddPath(Imagedir);

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

加载('stopsignsandcarsgroundtruth.mat'“stopSignsAndCarsGroundTruth”

查看标签定义以查看地面真相中的标签类型。

stopsignsandcarsgroundtruth.labeldefinitions.
ans =3×3表名称类型组____________ __________ ________ {'stopsign'}矩形{'none'} {'carrear'} rectangle {'none'} {'carfront'} rectangle {'none'}

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

stopsigngroundtruth = selectlabelsbyname(stopsignsandcarsgroundtruth,'停止标志');

创建停止标志对象检测器的培训数据。

trainingdata = ObjectDettortRainingData(STOPSIGNGRINDTRUTH);摘要(TrainingData)
变量:ImageFileName:41x1字符向量阵列停止:41x1单元格

培训基于ACF的物体探测器。

acfdetector = trainacfobjectdetector(trainingdata,“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 28.6919 seconds.

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

我= imread('stopsigntest.jpg');Bboxes =检测(Acfdetector,i);

显示检测到的对象。

annotation = acfdetector.modelname;i = InsertObjectAnnotation(i,'长方形',bboxes,注释);图imshow(i)

图包含轴。轴包含类型图像的对象。

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

rmpath(imagedir);

利用训练数据对基于acf的车辆目标检测器进行训练。

imagedir = fullfile(matlabroot,'工具箱''驾驶''divertdata''车辆不等);AddPath(Imagedir);

加载地面真理数据。

加载Warthegroundtruth.Mat

为车辆的目标检测器创建训练数据。

trainingdata = ObjectDettortRainingData(GTRUTH,'samplingfactor',2);

培训基于ACF的物体探测器。

acfdetector = trainacfobjectdetector(trainingdata,'objecttrainingsize',[20 20]);
ACF对象检测器培训该培训将分为4个阶段。模型尺寸为20x20。样本正的例子(~100%完成)计算近似系数…计算聚合通道特性…完成。-------------------------------------------- 阶段1:样本的负面例子(~ 100%)完成计算聚合通道特性…完成。火车分类器有71个正面例子和355个否定例子......完成。训练有素的分类器有68名弱势学习者。------------------------------------------第2阶段:样本否定例子(〜100%完成)发现了76个培训的新负面例子。计算聚合通道特性…完成。火车分类器有71个正面例子和355个否定例子......完成。 The trained classifier has 120 weak learners. -------------------------------------------- Stage 3: Sample negative examples(~100% Completed) Found 54 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 71 positive examples and 355 negative examples...Completed. The trained classifier has 170 weak learners. -------------------------------------------- Stage 4: Sample negative examples(~100% Completed) Found 63 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 71 positive examples and 355 negative examples...Completed. The trained classifier has 215 weak learners. -------------------------------------------- ACF object detector training is completed. Elapsed time is 11.5031 seconds.

在测试图像上测试ACF检测器。

我= imread(“highway.png”);[Bboxes,scores] =检测(Acfdetector,我,'临界点',1);

选择分类评分最高的检测。

[~, idx] = max(分数);

显示检测到的对象。

annotation = acfdetector.modelname;i = InsertObjectAnnotation(i,'长方形'bboxes (idx:),注释);图imshow(i)

图包含轴。轴包含类型图像的对象。

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

rmpath(imagedir);

输入参数

全部收缩

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

中使用自定义数据源groundTruth如果启用了并行计算,那么读取器函数将与MATLAB工作人员池一起并行地从数据源读取图像。

名称值对参数

指定可选的逗号分离对名称,价值参数。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'samplingfactor'5.

在地面真实数据源中的分离图像的因素,指定为'汽车',整数或整数矢量。用于抽样因子N,返回的培训数据包括每个N地面真值数据源中的图像。该函数忽略带有空标签数据的ground truth图像。

价值 采样因子
'汽车' 采样因子N5.对于有时间戳的数据源,和1对于一系列图像。
整数 所有地面真理数据源GTRUTH.采用相同的采样系数进行采样N
整数矢量 K.Th Rimite Tract数据源GTRUTH.采用抽样因子进行采样NK.)。

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

此参数仅适用于:

当:

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

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

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

图像文件格式,指定为字符串标量或字符向量。必须支持文件格式金宝appIMWRITE.

此参数仅适用于:

当:

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

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

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

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

  _ 

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

此参数仅适用于:

当:

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

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

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

标志显示Matlab命令行的培训进度,指定为真的或者错误的.此属性仅适用于groundTruth使用视频文件或自定义数据源创建的对象。

输出参数

全部收缩

图像数据存储,作为一个返回imageDatastore对象,该对象包含从GTRUTH.对象。的图片IMDS.包含至少一类注释的标签。该功能忽略未注释的图像。

框标签数据存储,返回为boxlabeldatastore.对象。数据存储包含ROI标签名称和m4矩阵的m边界框。边界框的位置和尺寸表示为双倍m-by-4元素矢量格式[Xy宽度高度].

培训数据表,用两列或多列作为表返回。表的第一列包含具有路径的图像文件名。图像可以是灰度或TRUECOLOR(RGB)以及支持的任何格式金宝appImread..剩下的每一列对应一个ROI标签,并包含该标签在图像中的边界框的位置(在第一列中指定)。边界框被指定为m4矩阵的m格式的边界框[Xy宽度高度].[Xy]指定左上角的位置。要创建一个地面真相表,可以使用图像贴标器应用程序或视频贴图应用程序。

输出表忽略输入中存在的任何Sublabel或属性数据GTRUTH.对象。

在R2017A介绍