objectDetectorTrainingData
创建对象检测器的训练数据
语法
描述
[
根据指定的ground truth创建一个图像数据存储和一个框标签数据存储训练数据。洛桑国际管理发展学院
,建筑物
= objectDetectorTrainingData(gTruth
)
可以使用。将映像和框标签数据存储结合起来结合
(洛桑国际管理发展学院
,建筑物
),以创建训练所需的数据储存。使用与训练函数相结合的数据存储,例如trainACFObjectDetector
,trainYOLOv2ObjectDetector
,trainFastRCNNObjectDetector
,trainFasterRCNNObjectDetector
,trainRCNNObjectDetector
.
此函数支持使用多个MATLA万博1manbetxB进行并行计算®工人。方法启用并行计算计算机视觉工具箱参数设置对话框。
从指定的ground truth返回一个训练数据表。trainingDataTable
= objectDetectorTrainingData (gTruth
)gTruth
的数组。groundTruth
对象。您可以使用该表格使用计算机视觉工具箱™训练功能来训练对象检测器。
[___= objectDetectorTrainingData(
使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,gTruth
,名称=值
)Verbose = True
允许显示到工作空间环境。
如果您创建groundTruth
对象gTruth
使用视频文件、自定义数据源或imageDatastore
对象,则可以指定名称-值参数的任何组合。如果您创建groundTruth
对象的图像集合或图像序列数据源,则只能指定SamplingFactor
和LabelData
名称-值参数。
例子
训练一个YOLO v2车辆探测器
训练一个基于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的停车标志检测器
使用训练数据训练一个基于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(我)
从路径中删除映像文件夹。
rmpath (imageDir);
从groundTruth读取所有标签属性
加载图像位置,标签定义和标签数据。
数据=负载(“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}
输入参数
gTruth
- - - - - -地面真实数据
标量|的数组groundTruth
对象
基本真实值数据,指定为标量或数组groundTruth
对象。属性可以从现有的地面实况数据创建地面实况对象groundTruth
对象。
中使用自定义数据源groundTruth
启用并行计算后,阅读器功能将与MATLAB工作者池一起工作,以并行方式从数据源读取图像。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:(SamplingFactor
=5
)设置子抽样因子为5
.
SamplingFactor
- - - - - -因子子采样图像
汽车
(默认)|整数|整数向量
在真实数据源中对图像进行子采样的因子,指定为汽车
一个整数,或整数的向量。的抽样因子N时,返回的训练数据包括Nground truth数据源中的图像。该函数忽略带有空标签数据的真实图像。设置SamplingFactor
对于投影的长方体数据,必须指定LabelData
参数的名称-值labelType。ProjectedCuboid
.
使用采样数据来减少重复数据,例如具有相同场景和标签的图像序列。它还可以帮助减少训练时间。
价值 | 采样因子 |
---|---|
“汽车” |
该函数对具有时间戳的数据源(例如视频)进行采样,其因子为5 ,1 用于图像的集合。 |
整数 | 手动设置采样因子应用于所有数据。 |
整数向量 | 当输入一个ground truth对象数组时,该函数使用相应向量元素指定的采样因子。 |
LabelData
- - - - - -要从地面真实数据中提取的标签类型
“labelType。矩形”
(默认)|“labelType。ProjectedCuboid”
|特征向量
要从真实数据中提取的标签类型,指定为“labelType。矩形”
或“labelType。ProjectedCuboid”
.使用与您希望训练的对象检测器类型一致的标签类型。
WriteLocation
- - - - - -文件夹名称
松材线虫病
(当前工作文件夹)(默认)|字符串标量|特征向量
要写入提取图像的文件夹名称,指定为字符串标量或字符向量。指定的文件夹必须存在且具有写权限。
此论点仅适用于:
groundTruth
使用视频文件或自定义数据源创建的对象。的数组
groundTruth
使用imageDatastore
,有不同的习俗读
功能。
函数在以下情况下忽略此参数:
输入
groundTruth
对象从图像序列数据源创建。输入数组
groundTruth
对象都包含使用相同自定义的映像数据存储读
函数。任何输入
groundTruth
包含数据存储的对象,使用默认值读
功能。
ImageFormat
- - - - - -图像文件格式
PNG
(默认)|字符串标量|特征向量
图像文件格式,指定为字符串标量或字符向量。文件格式必须由万博1manbetximwrite
.
此论点仅适用于:
groundTruth
使用视频文件或自定义数据源创建的对象。的数组
groundTruth
使用imageDatastore
有不同的习俗读
功能。
函数在以下情况下忽略此参数:
输入
groundTruth
对象从图像序列数据源创建。输入数组
groundTruth
对象都包含使用相同自定义的映像数据存储读
函数。任何输入
groundTruth
包含数据存储的对象,使用默认值读
功能。
NamePrefix
- - - - - -输出图像文件名的前缀
字符串标量|特征向量
输出图像文件名的前缀,指定为字符串标量或字符向量。这些映像文件被命名为:
< name_prefix > < source_number > _ < image_number >。< image_format >
默认值使用提取图像的数据源的名称,strcat (sourceName,“_”)
,用于视频和自定义数据源,或者“数据存储”
,用于图像数据存储。
此论点仅适用于:
groundTruth
使用视频文件或自定义数据源创建的对象。的数组
groundTruth
使用imageDatastore
有不同的习俗读
功能。
函数在以下情况下忽略此参数:
输入
groundTruth
对象从图像序列数据源创建。输入数组
groundTruth
对象都包含使用相同自定义的映像数据存储读
函数。任何输入
groundTruth
包含数据存储的对象,使用默认值读
功能。
详细的
- - - - - -显示训练进度的标志
真正的
(1
)(默认)|假
(0
)
标志,在MATLAB命令行中显示训练进度,指定为真正的
(1
)或假
(0
).此属性仅适用于groundTruth
使用视频文件或自定义数据源创建的对象。
输出参数
洛桑国际管理发展学院
-图像数据存储
imageDatastore
对象
图像数据存储,返回为imageDatastore
对象中提取的图像gTruth
对象。在洛桑国际管理发展学院
至少包含一类带注释的标签。该函数忽略没有注释的图像。
建筑物
—盒标数据存储
boxLabelDatastore
对象
框标签数据存储,返回为boxLabelDatastore
对象。数据存储包含用于ROI标签名称和的分类向量米的-by-4矩阵米边界框。边界框的位置和大小用double表示米-by-4元素向量,格式为[x,y,宽度,高度].
arrds
—阵列数据存储
结构体
数组
数组数据存储,返回为结构体
数组中。田野的结构体
在框标签数据存储区中包含相应标签的属性和子标签名建筑物
.子标签数据打包到结构体
与一个位置
字段以及与子标签属性对应的字段。
版本历史
在R2017a中引入R2022b:投影长方体从三维世界坐标到二维图像坐标
更新到支持3-D投影长万博1manbetx方体标签。
作为第三个输出返回提取的属性和子标签。属性和子标签被打包为一个数组数据存储。
Beispiel offnen
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。