主要内容

评估法律

评估目标检测的脱靶率指标

描述

例子

对数平均率=评估法(检测结果,地下田间)返回事件的日志平均未命中率检测结果相比地下田间,用于测量目标探测器的性能。对于多类检测器,对数平均未命中率是每个对象类的分数向量,其顺序由地下田间.

例子

[对数平均率,fppi,念鱼] =评估术(___)返回数据点,用于绘制每个图像(FPPI)曲线的Log Miss Rate-False阳性,使用前一个语法中的输入参数绘制。

[___] =评估术(___,临界点)指定将检测指定给地面真值框的重叠阈值。

例子

全部收缩

此示例显示如何评估普雷雷达v2对象检测器的错过率。

加载车辆地面真理数据

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

数据=负载('vevicletrainingdata.mat'); 培训数据=数据。车辆培训数据(1:100,:);

将全目标添加到本地车辆数据文件夹。

datadir = fullfile(toolboxdir(“愿景”),“视觉数据”);trainingdata.imagefilename = fullfile(datadir,trainingdata.imagefilename);

使用表中的文件创建imageDatastore。

IMDS = imageageAtastore(trainingData.ImageFilename);

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

blds=boxLabelDatastore(培训数据(:,2:end));

负载yolov2检测器进行检测

加载包含用于培训的图层图的探测器。

vevicledetector = load('yolov2vehicledetectormat'mat'); 检测器=车辆检测器。检测器;

评估并绘制错过率结果

使用imageDatastore运行检测器。

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

评估对实际数据的结果。

[am、fppi、错误率]=评估检测错误率(结果、BLD);

绘制日志错误率/ FPPI曲线。

图形日志(fppi,误报);网格头衔(斯普林特)('日志平均未命中率=%.1f'(上午十一时)

加载地面真相表。

装载(“停车标志和汽车。垫”)停车标志=停车标志和车辆(:,1:2);stopSigns.imageFilename=fullfile(toolboxdir(“愿景”),“视觉数据”,...stopSigns.imageFilename);

培训基于ACF的探测器。

探测器= trainacfobjectdetector(stopsigns,'否定amplefactor',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 26.2555 seconds.

创建一个结构阵列以存储结果。

numimages =高度(stopsigns);结果(NUMIMAGES)= struct(“盒子”,[],“分数”, []);

在训练图像上运行检测器。

对于i=1:numImages i=imread(stopSigns.imageFilename{i})[b盒,分数]=检测(检测器,I);结果(i)方框=B方框;结果(i)分数=分数;结束结果= struct2table(结果);

评估对实际数据的结果。

[AM,FPPI,MissRate] =评估术(结果,停止(:,2));

绘制日志未命中率/FPPI曲线。

图loglog(FPPI,MissRate);网格头衔(斯普林特)('日志平均未命中率=%.1f'(上午十一时)

图包含轴。具有标题日志平均未命中率= 0.3的轴包含类型线的对象。

输入参数

全部收缩

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

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

ds = imagedataStore(stopsigns.imagefilename);检测=检测(探测器,DS);

数据类型:桌子

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

每个边界框必须格式[xY宽度高度]。

  • 数据存储 - 一个数据存储readall函数返回一个单元数组或表格,其中包含至少两列边界框和标签单元向量。边界框必须是单元格数组M-4格式的矩阵[x,Y,宽度,高度]. 数据存储的readall函数必须返回以下格式之一:

    • {,标签} - 这Boxlabeldata商店创建此类型的数据存储。

    • {图片,,标签}-组合数据存储。例如,使用结合(imds,blds)。

    看见Boxlabeldata商店.

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

检测分配给地面真相框的重叠阈值,指定为数字标量。重叠比率被计算为与联盟的交叉点。

输出参数

全部收缩

日志平均未命中率指标,以数值标量或向量形式返回。对于多类检测器,对数平均未命中率作为对应于每个类的数据点的值向量返回。

每个图像的误报,以数值标量向量或单元格数组的形式返回。对于多类检测器,FPPI和日志未命中率是单元阵列,其中每个单元包含每个对象类的数据点。

记录错过率,返回数字标量的向量或作为单元格数组。对于多字母检测器,FPPI和Log Miss率是单元阵列,其中每个单元格包含每个对象类的数据点。

R2017a中引入