主要内容

evaluateDetectionPrecision

评估目标检测的精度度量

描述

averagePrecision= evaluateDetectionPrecision (detectionResultsgroundTruthData的平均精度detectionResults相比groundTruthData.您可以使用平均精度来衡量对象检测器的性能。对于多类检测器,函数返回averagePrecision作为每个对象类的分数向量,按指定的顺序groundTruthData

例子

averagePrecision回忆精度) = evaluateDetectionPrecision (___使用前面语法中的输入参数,返回用于绘制精度收回曲线的数据点。

___) = evaluateDetectionPrecision (___阈值指定为地面真值框分配检测的重叠阈值。

例子

全部折叠

这个例子展示了如何评估一个预先训练过的YOLO v2对象检测器。

装载车辆地面真实数据

加载一个包含车辆训练数据的表。第一列包含训练图像,其余列包含标记的边界框。

data =负载(“vehicleTrainingData.mat”);trainingData = data.vehicleTrainingData;

将fullpath添加到本地车辆数据文件夹。

dataDir = fullfile (toolboxdir (“愿景”),“visiondata”);trainingData。imageFilename = fullfile(dataDir, trainingData.imageFilename);

使用表中的文件创建一个imageDatastore。

imd = imageDatastore (trainingData.imageFilename);

使用表中的标签列创建一个boxLabelDatastore。

建筑物= boxLabelDatastore (trainingData(:, 2:结束));

加载YOLOv2检测器进行检测

加载包含用于训练的layerGraph的检测器。

vehicleDetector =负载(“yolov2VehicleDetector.mat”);探测器= vehicleDetector.detector;

评估并绘制结果

使用imageDatastore运行检测器。

结果= detect(检测器,imds);

根据地面真实数据评估结果。

[ap, recall, precision] = evaluateDetectionPrecision(results, blds);

绘制精度/召回率曲线。

图;情节(记得,精度);网格标题(sprintf ('平均精度= %.1f'据美联社)),

使用预加载的地面真实信息训练基于acf的检测器。在训练图像上运行检测器。评估检测器并显示精度-召回曲线。

加载地面真值表。

负载(“stopSignsAndCars.mat”) stopSigns = stopSignsAndCars(:,1:2);stopSigns。imageFilename = fullfile (toolboxdir (“愿景”),“visiondata”...stopSigns.imageFilename);

训练基于acf的检测器。

探测器= trainACFObjectDetector (stopSigns,“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 62.5408 seconds.

创建一个表来存储结果。

numImages =身高(stopSigns);结果=表(“大小”[numImages 2],...“VariableTypes”, {“细胞”“细胞”},...“VariableNames”, {“盒子”“分数”});

在训练图像上运行检测器。将结果存储为一个表。

i = 1: numImages i = imread(stopsignals . imagefilename {i});[bboxes, scores] =检测(检测器,I);结果。盒子我{}= bboxes;结果。分数{我}=分数;结束

根据地面真实数据评估结果。获得精确的统计数据。

[据美联社、召回、精密]= evaluateDetectionPrecision(结果,stopSigns (:, 2));

绘制精度回忆曲线。

图情节(召回、精密)网格标题(sprintf ('平均精度= %.1f'据美联社)),

图中包含一个坐标轴。标题为平均精度= 0.7的轴包含一个类型为line的对象。

输入参数

全部折叠

对象位置和分数,指定为包含每个检测对象的包围框和分数的两列表。对于多类检测,第三列包含每个检测的预测标签。边界框必须存储在4单元阵列。分数必须存储在-by-1单元格数组,标签必须存储为分类向量。

在检测对象时,可以使用imageDatastore

ds = imageDatastore (stopSigns.imageFilename);detectionResults =检测(检测器,ds);

数据类型:表格

标记为地面真值,指定为数据存储或表。

每个边界框必须采用以下格式[xy宽度高度].

  • Datastore -数据存储readall函数返回一个单元格数组或包含至少两列边框和标签单元格向量的表。包围框必须在单元格数组中- × 4矩阵的格式[xy宽度高度].数据存储的readall函数必须返回其中一种格式:

    • 盒子标签} - - -boxLabelDatastore创建这种类型的数据存储。

    • 图片盒子标签} -一个组合的数据存储。例如,使用结合洛桑国际管理发展学院建筑物).

    看到boxLabelDatastore

  • 表—一个或多个列。所有列都包含边框。每一列必须是包含-by-4矩阵,表示单个对象类,例如stopSigncarRear,或carFront.列包含4个元素的双数组格式中的边框[xy宽度高度].该格式指定了相应图像中边界框的左上角位置和大小。

将检测赋给地面真值框的重叠阈值,指定为数字标量。交叠比计算为与并集的交点。

输出参数

全部折叠

以数字标量或矢量形式返回的所有检测结果的平均精度。精度是真实的正实例与探测器中所有物体的正实例的比率,基于基本事实。对于多类检测器,平均精度是每个对象类的平均精度分数的向量。

从每个检测中收回值,作为数字标量的-by-1向量或单元格数组。的长度等于1 +分配给类的检测数。例如,如果您的检测结果包含4个带有class标签的检测“汽车”,然后回忆包含5个元素。回忆的第一个值总是0

回忆是真阳性实例与检测器中真阳性和假阴性之和的比率,基于基本真理。对于多类检测器,回忆精度是单元格数组,其中每个单元格包含每个对象类的数据点。

每个检测的精度值,作为数字标量的-by-1向量或单元格数组。的长度等于1 +分配给类的检测数。例如,如果您的检测结果包含4个带有class标签的检测“汽车”,然后精度包含5个元素。的第一个值精度总是1

精度是真实的正实例与探测器中所有物体的正实例的比率,基于基本事实。对于多类检测器,回忆精度是单元格数组,其中每个单元格包含每个对象类的数据点。

介绍了R2017a