Definitions and References
Son modelos capaces de encontrar objetos dentro de una imagen, asociando a cada uno de ellos:
Un detector dice: Hay animales en estas regiones de la imagen
Esta clase de modelos mejoran respecto a los de clasificación en los siguientes aspectos:
Estos modelos generan un conjunto de detecciones por cada imagen, cuyo número puede variar entre 100 y 300 (dependiedo de la configuración), muchas de ellas con score muy bajo, como se muestra a continuación:
Como no resulta práctico tomar en cuenta todas las detecciones para generar predicciones que puedan ser verdaderas, se suelen seleccionar sólo las más confiables, que son aquéllas cuyo score superen un cierto umbral, obteniendo únicamente los objetos de interés:
Sin embargo, la elección de dicho valor de umbral no siempre resulta una tarea sencilla, ya que si se selecciona demasiado bajo, el resultado serán demasiadas detecciones falsas, y si se selecciona demasiado alto, el modelo no será capaz de encontrar todos los objetos de interés presentes en la imagen.
Un buen modelo de detección encontrará la mayoría de los objetos de interés sin generar demasiadas detecciones falsas.
Los términos "mayoría" y "demasiadas" están determinados por el problema que se desea resolver y se pueden analizar usando las curvas de Precisión x Recall que se describen más adelante.
A continuación se muestra un ejemplo de la detección realizada sobre una foto que contiene cuatro individuos de dos clases distintas:
De entre los distintos tipos de modelos de detección de objetos existentes, algunos análisis han estimado que los de la familia Faster R-CNN tienen un mejor rendimiento para imágenes de cámaras trampa.
Es posible aplicar técnicas de detección de movimiento sobre colecciones de fotos para las que se tenga información temporal y espacial que permita asociar una serie de imágenes a una secuencia. En este esquema se realiza un proceso doble:
Se espera que este proceso reduzca aún más el tiempo empleado en el proceso de etiquetado por parte de un equipo de personas, ya que se evita en cierta medida que se genere una gran cantidad de detecciones falsas, que por lo general son similares para fotos que pertenecen a una secuencia, y por lo tanto son prácticamente idénticas.
Estas técnicas se pueden utilizar igualmente en videos, obteniendo un conjunto de frames y tratándolos como imágenes en secuencia.
El proceso de evaluación de un modelo es importante porque ayuda a estimar el rendimiento que tendrá sobre un conjunto de fotos similar al que estamos evaluando. Esta similitud para el caso de las fototrampas puede estar determinada por factores como: el tipo de especies que contienen las fotos, vegetación, clima, estacionalidad, etc., por esto es común en algunos experimentos tomar en consideración los sitios y la temporada del año en que fueron tomadas las fotos, ya que estos elementos suelen introducir un sesgo en la evaluación.
Algunos conceptos básicos para las métricas:
threshold: (umbral) dependiendo de la métrica, generalmente se establece en 50%, 75% o 95%.
A continuación se muestran ejemplos de cada uno de estos casos:
Un criterio que ayuda a determinar cuáles de las detecciones del modelo son verdaderas (TF) o falsas (FP) es la intersección sobre la unión (Intersection Over Union) que es una medida del nivel de solapamiento que hay entre una detección y los objetos verdaderos, y viene dado por la proporción entre el área de solapamiento y el área de unión entre el recuadro de la detección y del objeto verdadero:
Se suele considerar que la localización de una detección es correcta si IOU ≥ 0.5.
A continuación se definien las métricas usadas para evaluar los modelos de detección de objetos.
La precisión es la capacidad de un modelo para identificar únicamente los objetos verdaderos. Es la proporción de detecciones correctas respecto al total de detecciones, y viene dado por:
La precisión varía entre 0 y 1, una alta precisión implica que la mayoría de los objetos detectados coinciden con objetos verdaderos. P.e., con una precisión de 0.8, cuando se detecta un objeto, el 80% del tiempo el detector acierta.
La recuperación es la capacidad de un modelo para recuperar todos los objetos verdaderos. Es la proporción de objetos verdaderos encontrados respecto al total de objetos verdaderos, y viene dado por:
Del mismo modo, la recuperación varía entre 0 y 1, donde un valor de recuperación alto significa que se encontraron la mayoría de los objetos verdaderos. Por ejemplo, con una recuperación de 0.6, el modelo recupera el 60% del total de objetos verdaderos.
A continuación se ilustra lo que significa cada uno de estos conceptos dentro de una imagen:
Un modelo ideal recuperará todos los objetos verdaderos (recall=1) sin generar detecciones falsas (precisión=1). Sin embargo, en la realidad existe una relación inversa entre estas dos medidas: mientras más objetos verdaderos sea capaz de recuperar un modelo, más detecciones falsas genera. Dependiendo del problema se puede dar más importancia a una u otra medida.
Tenga en cuenta que podemos evaluar el rendimiento del modelo en su conjunto, así como evaluar su rendimiento por cada categoría, calculando métricas de evaluación específicas de la clase.
Para ilustrar cómo se calculan el recall y la precisión, veamos un ejemplo de un modelo de detección de objetos. A continuación se muestran imágenes de objetos donde los de la izquierda representan los recuadros reales, y los de la derecha representan los recuadros predichos. Establecemos el umbral de IoU en 0.5.
Tenga en cuenta que las predicciones se calculan individualmente para cada clase.
Calculemos el recall y la precisión para la categoría "Persona":
Es una forma de medir la relación entre la precisión y la recuperación de un modelo. La idea detrás de esta técnica es la de estimar el impacto que tendrá tomar únicamente las detecciones con un score mayor a un cierto valor de umbral, tanto en la precisión como en la recuperación, para así decidir cuáles son las detecciones que se deben considerar para el problema en cuestión. P.e., si en un problema es muy importante que la mayoría de detecciones sean correctas porque una detección incorrecta tiene un impacto negativo muy grande, se deberá considerar un umbral de score cuya precisión esté por encima del requerido y que al mismo tiempo tenga un nivel de recuperación lo más alto posible. Si por el contrario, la pérdida de los objetos verdaderos tiene un impacto negativo mayor, se debe considerar el umbral del score para el que el nivel de recuperación esté por encima del requerido y cuya precisión sea lo más alta posible.
El procedimiento para obtener la curva es el siguiente:
En el procedimiento anterior se suele comenzar con el valor de score más alto (1) y éste se va disminuyendo paulatinamente hasta llegar al mínimo (0).
En los valores más altos del score, debido a que estamos siendo muy rigurosos con las detecciones que se toman en cuenta, generalmente se tiene que las detecciones son más precisas, ya que fueron aquéllas en las que el modelo estuvo más seguro en su predicción, pero al mismo tiempo, se recuperan menos objetos verdaderos del conjunto. Esta región se encuentra generalmente en la zona superior izquierda de la gráfica.
En los valores más bajos del score se tienen muchas más detecciones falsas, penalizando con ello a la precisión, ya que se están considerando también aquéllas en las que el modelo estuvo menos seguro en la predicción; sin embargo, habrá más objetos verdaderos encontrados, ya que la probabilidad de encontrarlos aumenta conforme se consideran más detecciones en el análisis, y esto hará que la recuperación incremente y pueda llegar al valor máximo de 1. Esta región se encuentra generalmente en la zona inferior derecha de la gráfica.
En la siguiente gráfica se muestra un ejemplo de los valores de precisión y recuperación (recall) calculados para todos los niveles de umbral de score, mostrando el cambio de éste valor variando el color de la curva (aunque esto no se hace habitualmente), lo que nos muestra cómo se comporta la curva conforme el valor del umbral decrece.
Mientras los valores de precisión pueden aumentar, disminuir o mantenerse constantes, los de la recuperación únicamente pueden aumentar o mantenerse constantes, ya que la recuperación no puede desminuir conforme se consideran más detecciones en el análisis.
Al graficar los valores de recuperación contra precisión resultantes observamos el comportamiento del modelo para todos los posibles valores de umbral, y así se puede determinar el valor más adecuado para el problema que intentamos resolver.
Una medida que nos da una idea del comportamiento del modelo para todos los niveles de umbral que se consideraron es la precisión promedio (Average Precision), y si se están evaluando varias categorías, se toma la media de la precisión promedio de todas las categorías, obteniendo una medida global del modelo que se denota como mAP (mean Average Precision).
Ejemplos de curvas de Precisión x Recall
Se define un esquema capaz de evaluar un modelo de detección de objetos sin considerar la localización (bounding box) de las detecciones, y que es compatible con datasets etiquetados a nivel de objeto y a nivel de toda la imagen.
A continuación se definen los conceptos utilizados en esta metodología:
Para las categorías de interés (cat
), definimos:
TP[cat]
: El modelo generó al menos una detección de la categoría cat
en la imagen, y en efecto hay alguna etiqueta de la categoría cat
para la imagen.FP[cat]
: El modelo generó al menos una detección de la categoría cat
en la imagen, y no hay ninguna etiqueta de la categoría cat
para la imagen.FN[cat]
: El modelo no generó ninguna detección de la categoría cat
y en la imagen, hay alguna anotación de la categoría cat
.Si se desea considerar la categoría vacía (empty
), definimos:
TP[empty]
: El modelo no generó detecciones y en la imagen no hay ninguna anotación de alguna categoría de interés.FP[empty]
: El modelo no generó detecciones y en la imagen hay anotaciones de alguna categoría de interés.FN[empty]
: El modelo generó detecciones y en la imagen no hay ninguna anotación de alguna categoría de interés.Las siguientes fotos son considerados detecciones incorrectas debido a que IOU < 0.5
La evaluación hecha sobre las imágenes etiquetadas del SNMB al usar el Megadetector dan resultados muy bajos, esto debido a que una gran cantidad de detecciones acertadas son consideradas incorrectas debido a este problema.
Para tratar de resolver este problema se realizó la evaluación sobre las fotos de esta colección pero sin tomar en cuenta la localización de las detecciones, simplemente considerando si el modelo encontró algún individuo de cada categoría en cada imagen.
El modelo, por naturaleza, dará una serie de detecciones de las clases del conjunto por cada imagen (cuyo número se puede limitar en el entrenamiento y al momento de aplicar la inferencia). Si el criterio para considerar como correctamente clasificada una imagen es que haya al menos una detección de alguna de las clases etiquetadas en ella, sin tomar en cuenta la localización, ocurren los siguientes problemas:
En caso de utilizar un umbral para poder discernir entre las imágenes con "detecciones" consideradas Sin fauna (que no tenga ninguna detección con score superior a este valor) podemos hacer un análisis de esta categoría a través de una matriz de confusión, donde la clase positiva es Sin fauna.
Actual Empty | Actual not Empty | |
---|---|---|
Predicted Empty | Count | Count |
Predicted not Empty | Count | Count |
Para realizar la conversión desde un esquema típico de detección de objetos, en el que la inferencia sobre una imagen genera una serie de detecciones (cada una de ellas con una etiqueta, un score y un bounding box asociados), a un esquema de clasificación multi-etiqueta/multi-clase y solventar el problema de que los modelos de detección no suelen generar etiquetas "vacías", se decidió utilizar un umbral que discrimine las etiquetas "falsas" y solo tomar en cuenta aquellas que superen dicho valor, asignando la etiqueta "empty" a una imagen que no tenga ninguna detección con score mayor a este umbral.
De esta manera será posible para cada imagen generar un vector de clasificación a partir de las detecciones generadas y el umbral especificado, teniendo vectores con la siguiente estructura:
Con una sola ocurrencia de cada una de las categorías encontradas, y en caso de ser una lista vacía, se asumirá la categoría Empty
.
Por ejemplo, para una foto que contenga solamente animales, su vector de salida de la clasificación sería:
Para una foto que contenga tanto animales como personas, su vector de salida de la clasificación sería
Y para una foto que no contenga ni animales ni personas (foto "vacía"), su vector de salida de la clasificación sería: