主要内容

evaluateDetectionPrecision

评估对象检测的精度指标

描述

averagePrecision= evaluateDetectionPrecision (detectionResults,groundTruthData)回报的平均精度的detectionResults相比groundTruthData。您可以使用平均精度测量物体检测器的性能。多级探测器,函数返回averagePrecision作为一个向量的分数为每个对象类指定的顺序groundTruthData

例子

(averagePrecision,回忆,精度)= evaluateDetectionPrecision (___)返回数据点来绘制precision-recall曲线,使用输入参数从以前的语法。

(___)= evaluateDetectionPrecision (___,阈值)指定分配重叠阈值检测地面真理盒子。

例子

全部折叠

这个例子展示了如何评估一个pretrained 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探测器。

结果=检测(检测器、imd);

评估结果与地面实况数据。

[据美联社、召回、精密]= evaluateDetectionPrecision(结果,建筑物);

曲线绘制精度/召回。

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

火车一个ACF-based探测器使用预装载地面实况信息。训练图像上运行探测器。评估探测器和显示precision-recall曲线。

负载地面真值表。

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

火车一个ACF-based探测器。

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

创建一个表来存储结果。

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

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

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

评估结果与地面实况数据。得到精确统计。

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

情节precision-recall曲线。

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

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

输入参数

全部折叠

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

检测对象时,您可以创建表通过使用检测结果imageDatastore

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

数据类型:

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

必须将每个边界框的格式(xy宽度高度]。

  • 数据存储的数据存储readall函数返回一个单元阵列或表至少有两列细胞边界框和标签向量。边界框必须在单元阵列4矩阵的格式(x,y,宽度,高度]。数据存储的readall函数必须返回一个格式:

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

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

    看到boxLabelDatastore

  • 表——一个或多个列。所有列包含边界框。每一列必须包含一个细胞向量4矩阵代表一个对象类,如stopSign,carRear,或carFront。列包含第4单元阵列的两倍边界框的格式(x,y,宽度,高度]。格式指定边界框的左上角位置和大小在相应的形象。

分配一个重叠阈值检测地面真理框,指定为一个数字标量。重叠率计算的交点在联盟。

输出参数

全部折叠

平均精度的检测结果,作为数字返回标量或矢量。精度是真阳性的比率实例中的所有积极的实例对象探测器,基于地面真理。多级探测器,平均精度是一个向量的平均精度分数为每个对象类。

回忆值从每个检测,作为一个返回1数字标量或矢量单元阵列。的长度= 1 +检测的数量分配给一个类。例如,如果您的检测结果包含4检测类标签“汽车”,然后回忆包含5个元素。回忆总是第一个值0

回忆是真阳性的比率实例真阳性和假阴性的总和的探测器,基于地面真理。多级探测器,回忆精度细胞阵列,每个单元格包含每个对象类的数据点。

从每个检测精度值,作为一个返回1数字标量或矢量单元阵列。的长度= 1 +检测的数量分配给一个类。例如,如果您的检测结果包含4检测类标签“汽车”,然后精度包含5个元素。第一个值的精度总是1

精度是真阳性的比率实例中的所有积极的实例对象探测器,基于地面真理。多探测器,回忆精度细胞阵列,每个单元格包含每个对象类的数据点。

版本历史

介绍了R2017a