Estou bastante confuso sobre como posso calcular os valores de AP ou mAP, pois parece haver alguns métodos diferentes. Eu quero especificamente obter os valores de AP / mAP para detecção de objetos.
Tudo o que tenho certeza é:
Rechamada = TP / (TP + FN), Precisão = TP / (TP + FP)
Por exemplo, se eu tiver apenas 1 turma para avaliar e digitar 500 imagens de teste. Cada imagem de teste pode ter um número diferente de previsões (propostas de caixa delimitadora), mas cada imagem possui apenas uma caixa delimitadora de base.
Imagem 1: [classe, probabilidade, x1, y1, x2, y2], [classe, probabilidade, x3, y3, x4, y4], [classe, probabilidade, x5, y5, x6, y6], [classe, probabilidade, x7, y7, x8, y8], ...
Imagem 2: [classe, probabilidade, x1, y1, x2, y2], [classe, probabilidade, x3, y3, x4, y4], ...
. . . (e assim por diante)
* apenas um exemplo, eu inventei isso
Eu sei que para obter TP, teríamos que encontrar as IOUs de cada previsão e contar as acima de um limite selecionado como 0,5 (se tivermos várias previsões com IOUs acima do limite, contamos apenas uma vez e tratamos as outras como FP?).
É aqui que me intriga:
O TP + FP = número de previsões feitas para cada imagem?
Como todas as imagens de teste não têm negativos, TP + FN = 500?
É calculado por imagem ou por classe?
Alguém poderia me informar um guia passo a passo para obter o AP / mAP com base no meu exemplo? Acho que a parte mais ambígua é se fazemos por imagem ou por classe (ou seja, 500 imagens de uma só vez).
A maioria dos guias / documentos que encontrei são muito direcionados à recuperação de informações. Gostaria de receber alguma ajuda nisso.
* Nota: estou testando-o em alguns conjuntos de dados personalizados. Sei que o PASCAL VOC tem algum código para fazê-lo, mas quero escrever o código pessoalmente, personalizado para meus próprios dados.