主要内容

bboxPrecisionRecall

计算边界框精度和针对地面真实值的召回

描述

例子

精度回忆= bboxPrecisionRecall(bboxesgroundTruthBboxes测量包围框之间重叠的精度bboxes而且groundTruthBboxes精度是检测器中对象的真阳性实例与所有阳性实例的比率,该比率基于基本真值。回忆是检测器中真阳性实例与真阳性和假阴性实例之和的比率,基于基本真实值。

如果边界框与类标签相关联,精度而且回忆包含每个类的度量。如果边界框还与排序的置信度分数相关联,则使用evaluateDetectionPrecision函数。

精度回忆= bboxPrecisionRecall(bboxesgroundTruthBboxes阈值指定将给定框分配给地面真值框时的重叠阈值。

例子

全部折叠

创建两个ground truth方框。

groundTruthBoxes = [2 2 10 20;80 80 30 40];

为评估创建三个方框。

boundingBoxes = [4 4 10 20;50 50 30 10;90 90 40 50];

画出方框。

图保存我= 1:2矩形(“位置”groundTruthBoxes(我,:)“EdgeColor”“r”);结束我= 1:3矩形(“位置”boundingBoxes(我,:)“EdgeColor”“b”);结束

图中包含一个轴对象。axis对象包含5个矩形类型的对象。

根据地面真实数据评估重叠精度。

[precision,recall] = bboxPrecisionRecall(boundingBoxes,groundTruthBoxes)
精度= 0.3333
召回率= 0.5000

定义类名。

classNames = [“一个”“B”“C”];

为评估创建边界框。

predictedLabels = {...分类(“一个”类名);...分类([“C”“B”),类名)};Bboxes = {...[10 10 20 30];...[60 18 20 10;120 120 5 10]};boundingBoxes = table(bboxes,predictedLabels,“VariableNames”...“PredictedBoxes”“PredictedLabels”});

创建ground truth方框。

A = {[10 10 20 28];[]};B = {[];[118 120 5 10]};C = {[];[59 19 20 10]};groundTruthData = table(A,B,C);

根据地面真实数据评估重叠精度。

[precision,recall] = bboxPrecisionRecall(boundingBoxes,groundTruthData)
精度=3×11 0 1
回忆=3×11 0 1

输入参数

全部折叠

限定框,指定为下列之一。是包围框的数量。

  • 对于单类边界框,bboxes可以是-by-4矩阵,或者表用行和一列。表中矩阵或元素的每一行表示一个包围框,格式为[xy宽度高度),x而且y对应于包围框的左上角。

  • 对于多类边界框,bboxes是一个包含行和两列。第一列中的每个元素都代表一个边界框,格式为[xy宽度高度].第二列包含每个框的预测标签。类的变量(列)名定义的类别类型groundTruthBboxes表格

数据类型:||int8|int16|int32|uint8|uint16|uint32

Ground truth边界框,指定为下列之一。是地面真值包围框的个数。

  • 对于单类边界框,groundTruthBboxes可以是-by-4矩阵,或者表用行和一列。表中矩阵或元素的每一行表示一个包围框,格式为[xy宽度高度),x而且y对应于包围框的左上角。

  • 对于多类边界框,groundTruthBboxes是一个包含行和多列。每一列代表一个不同的类,列名指定类标签。表中的每个元素的格式为[xy宽度高度].

数据类型:||int8|int16|int32|uint8|uint16|uint32

为地面真值框分配检测的重叠阈值,指定为数值标量。重叠比计算为交点除以并集。

输出参数

全部折叠

每次检测的精度值,作为单个类边界框的数字标量返回。对于多类边界框,精度作为由每个类的指标组成的数字向量返回。类顺序与列顺序相同groundTruthBboxes表格

从每个检测中召回值,作为单个类边界框的数字标量返回。对于多类边界框,回忆作为由每个类的指标组成的数字向量返回。类顺序与列顺序相同groundTruthBboxes表格

版本历史

在R2018a中引入

Baidu
map