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 comentarios

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.
Adrian Kleffler
Adrian Kleffler el 9 de Mayo de 2023
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
Adrian Kleffler
Adrian Kleffler el 9 de Mayo de 2023
Can you insert it in my code please? I’m not sure if i understand you

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 9 de Mayo de 2023
Movida: Walter Roberson el 10 de Mayo de 2023

0 votos

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.

Productos

Versión

R2023a

Preguntada:

el 9 de Mayo de 2023

Movida:

el 10 de Mayo de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by