Problem with plotting graph

Hello, I trained Fast R-cnn detector and after I visualize graph of average precision for every class, each graph looks the same but the value of average precision is diferent for every class...
here is the code:
[ap, recall, precision] = evaluateDetectionPrecision(detectionResults,testData);
here i am showing average precision for first class:
recallv = cell2mat(recall);
precisionv = cell2mat(precision);
[r,index] = sort(recallv);
p = precisionv(index);
figure
plot(r,p)
xlabel("Recall")
ylabel("Precision")
grid on
title(sprintf("Average Precision = %.2f",ap(1)))
and the graphs looks the same for every class:
and also average precision for 4th class is 0... I dont know why... can anybody help me? why is the average precision for 4th class 0?

4 Comments

recallv = cell2mat(recall);
precisionv = cell2mat(precision);
That looks like you are combining all of the results. I would have expected one plot per cell entry.
So what should i do?
for i = 1 : length(ap)
recallv = recall{i};
precisionv = precision{i};
stuff goes here
title(sprintf("Average Precision = %.2f",ap(i)));
end
Can you insert it in my code please? I’m not sure if i understand you

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 9 May 2023
Moved: Walter Roberson on 10 May 2023
for i = 1 : length(ap)
recallv = recall{i};
precisionv = precision{i};
[r,index] = sort(recallv);
p = precisionv(index);
figure
plot(r,p)
xlabel("Recall")
ylabel("Precision")
grid on
title(sprintf("Average Precision = %.2f",ap(i)));
end
However you might want to consider using subplot() or tiledlayout() to put multiple plots in the same figure instead of using individual figures.

Products

Release

R2023a

Asked:

on 9 May 2023

Moved:

on 10 May 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!