问题描述
我使用.
该函数的第三个输入(默认值为0.5)指定2个框之间的最小重叠,以将其视为匹配".您的盒子尺寸如此之大,以致于该方法假定它们根本不匹配,即没有看到相同的东西.您可以更改此值以改变输出.
例如:
[precision,recall] = bboxPrecisionRecall(bb1,groundTruthBoxes,0)精度=1个召回=1个
或
[precision,recall] = bboxPrecisionRecall(bb1,groundTruthBoxes,0.1)精度=0.6667召回=0.6667
I checked the accuracy of a segmentation method using the bboxPrecisionRecall
function in Matlab version '9.4.0.857798 (R2018a) Update 2' and test result of an algorithm using IESK-ArDB dataset. The database is freely available here. Samples of database images and . I get 0s as output when trying to calculate the accuracy. What shall I do to get real results for my segmented algorithm?
The Code is below:
%% clean Workspace
clear;
clc;
%% my segmented bounding box cell
propied = {[48.5,84.5,102,59];[169.5,71.5,96,77];[251.5,114.5,47,51]}
%% Read Image
im = imread('t_A01_010.bmp');
imshow(im)
hold on
%% Ground truth standerd boxes.
%[GTruth,txt,raw] = xlsread('demo.xlsx');
groundTruthBoxes = [235 102 301 170;164 66 267 153 ;43 80 153 148]
%Convert bounding boxes from struct to cell.
boundingBoxes = propied;
% Convert cell to Matrix
bb = cell2mat(boundingBoxes(:));
% Move rows up down and fix matrix numbers
bb1 = fix(flipud(bb))
% Draw rectangle boxes for segmented Algorithm
for i=1:3
rectangle('Position',bb1(i,:),'EdgeColor','y');
end
% Draw rectangle boxes for Standerd Ground Truth
for i=1:3
rectangle('Position',groundTruthBoxes(i,:),'EdgeColor','g');
end
%Evaluate the overlap accuracy against the ground truth data.
[precision,recall] = bboxPrecisionRecall(bb1,groundTruthBoxes)
It's because of the detection ratio treshold
.
The third input to the function (default 0.5) specifies the minimum overlap between 2 boxes to consider them "matching". Your boxes are so different in size that the method assumes they are simply not matching, i.e. not looking at the same thing. You can change this value to vary the output.
For example:
[precision,recall] = bboxPrecisionRecall(bb1,groundTruthBoxes,0)
precision =
1
recall =
1
or
[precision,recall] = bboxPrecisionRecall(bb1,groundTruthBoxes,0.1)
precision =
0.6667
recall =
0.6667
这篇关于尝试计算图像分割结果的准确性时,为什么输出为0?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!