# Ejemplos de Curvas de Precisión x Recall
###### tags: `Definitions and References`
## Evaluación del Megadetector con la colección de Caltech
En esta evaluación se utilizaron las imágenes etiquetadas a **nivel de objeto** y se agruparon en las categorías "Animal" y "Persona", sin utilizar fotos vacías.
La distribución de las fotos es la siguiente:
| Categoría | Cantidad |
|:--------- |:-------- |
| Animal | 59,396 |
| Person | 2,615 |
| Total | 62,011 |

## Evaluación del Megadetector con la colección del Serengeti
En esta evaluación se utilizaron las imágenes etiquetadas a **nivel de objeto** y se agruparon en las categorías "Animal" y "Persona", sin utilizar fotos vacías.
La distribución de las fotos es la siguiente:
| Categoría | Cantidad |
|:--------- |:-------- |
| Animal | 37,602 |
| Person | 629 |
| Total | 38,206 |

## Curvas de Precisión x Recall de la colección ENA24 para el Megadetector
Aplicando el Megadetector para evaluar y calcular las curvas de Precisión x Recall de la colección [ENA24](http://lila.science/datasets/ena24detection) que contiene alrededor de 8,789 imágenes de 23 clases, y que fueron agrupadas en las categorías "Animal" y "Persona", sin utilizar fotos vacías, obtenemos:
La distribución de las fotos es la siguiente:
| Categoría | Cantidad |
|:--------- |:-------- |
| Animal | 8,652 |
| Person | 137 |
| Total | 8,789 |

## Curvas de Precisión x Recall de la colección del SNMB para el Megadetector
Al aplicar directamente este procedimiento del cálculo de la curva Precisión x Recall utilizando el Megadetector para evaluar nuestro dataset del SNMB separado en las dos clases que soporta este modelo para todas las fotos con animales y personas nos da las siguientes curvas:

Que por lo que observamos no tiene un buen rendimiento y de hecho es aún peor para la clase Animal que para la clase persona, y tratando de analizar este comportamiento y viendo algunas de las detecciones que genera observamos algo interesante: que en las etiquetas del dataset los recuadros no están tan ajustados a los individuos como los de las detecciones que genera el modelo, por lo que al aplicar el criterio de IoU gran parte de las detecciones, aunque sean correctas, al no cumplir con este criterio son consideradas como FP en la evaluación dando un resultado que no es acorde con lo que se ve puede ver en los resultados.
## Esquema que no considera la localización de las detecciones
Para tratar de contrarrestar este problema y ver una evaluación más acorde con lo que el modelo es capaz de hacer en nuestro dataset adoptamos un esquema en el que se toma como TP una detección sin tomar en cuenta su localización, y únicamente tomando la detección de una categoría que tenga el score más alto. Los falsos positivos en una imagen se seguirán considerando de la misma manera, aunque únicamente se contabilizará uno por cada conjunto de detecciones de cada categoría que no apareza en la foto.
### Solo imágenes con animales y personas
Aplicando estas consideraciones y realizando la implementación y la evaluación obtenemos el siguiente resultado para el mismo conjunto de fotos del ejemplo anterior:

En el que sin embargo se observa un resultado demasiado optimista para ambas clases, debido a que según este esquema en una foto etiquetada con alguna categoría, si hay al menos una detección de esa categoría y sin importar su localización, siempre se considerará como un TP, y según se explicó en el funcionamiento de los modelos de detección de objetos, la inferencia genera siempre una serie de detecciones que se pueden configurar y sea a la hora del entrenamiento o al limitar el ciclo `for` donde se obtienen los datos de la detección.
Además de lo anteriormente mencionado se tiene que tomar en cuenta los siguientes aspectos:
- En el 100% de las fotos que se evaluaron en este experimento hay ya sea animales, personas o ambos.
- La proporción de animales y personas no está balanceado, habiendo un 87% de fotos con animales en el conjunto.
- El modelo fue entrenado con una proporción mayor de animales respecto a la de personas, por lo que tiende a generar más etiquetas de animales.
### Imágenes con animales y personas y la misma cantidad de imágenes vacías
Para ver el comportamiento que tiene en estas categorías el evaluar también fotos vacías se prepara un dataset que contiene la mitas de fotos vacías y la otra mitad de fotos con animales o personas (o ambos), formando un dataset de ~64K fotos y se obtienen las siguientes curvas de Precisión x Recall para las dos categorías de interés:

Donde se observa el impacto de la cantidad de falsos positivos que hay en todas las fotos vacías, ya que todas las fotos vacías tendrás una serie de detecciones falsas, aunque sea con scores muy bajos.
### Todas las imágenes etiquetadas del SNMB
Para ver más aún este efecto en un escenario más parecido al real, evaluamos el modelo usando este esquema pero usando todas las fotos etiquetadas en la colección, la cuál tiene un total de ~240K fotos, de las cuáles ~207K no tienen fauna y el resto sí (animales o personas) siendo una proporción de 86% las primeras.
