Tratamiento de imágenes 2024 - Proyecto final

Métodos

Métodos

Resumen:

Para la identificación y conteo de Arowana a partir de videos el primer paso realizado fue la captura y selección de imágenes a partir de los videos. Estas imágenes fueron elegidas de forma que se pueda abarcar la mayor parte de los lagos filmados y también para tener variabilidad en las muestras. De esta manera se generó el dataset principal, que consiste de 78 imágenes donde aparecen varios peces en cada imagen. Este se usaría para el entrenamiento de diversos modelos de aprendizaje automático:

Además, se generó un dataset mucho más pequeño para hacer una clasificación inicial del dataset principal. Se procedió de esta manera porque del dataset principal se extrajó una lista de objetos que no tenían etiqueta. Fue necesario clasificar esa larga lista de objetos con este modelo auxiliar para luego poder entrenar el modelo principal a partir de esta lista de objetos bien clasificada. Cabe destacar que se modificaron las etiquetas de la lista de objetos, pero con la ayuda del modelo auxiliar el trabajo en el re-etiquetado de los objetos mal clasificados por el modelo auxiliar fue muy inferior al trabajo de tener que etiquetar de cero la lista de objetos.

A continuación, se explica más a detalle cada etapa del proceso.

1) Identificación de objetos

Para llevar a cabo este paso, se procedió con dos métodos diferentes:

Método (1):

• Binarización adaptativa, el umbral para la binarización se calcula como el promedio ponderado de los píxeles vecinos en una recuadro de la imagen determinado y los pesos tienen una distribución normal.

• Aplicación de estas operaciones morfológicas en este orden: remoción de objetos pequeños, cerrado de objetos y llenado de objetos.

• Tras estos pasos, quedaron definidos objetos que luego son identificados y se le calculan propiedades mediante el uso de la función “measure.label”.

Método (2):

• Se utiliza un método que usa el gradiente para la detección de bordes en la imagen: se elige Canny tras ver mejores resultados que con el método de Sobel.

• Aplicación de estas operaciones morfológicas en este orden: cerrado de objetos, llenado de objetos, remoción de objetos pequeños.

• Tras estos pasos, quedaron definidos objetos que luego son identificados y se le calculan propiedades mediante el uso de la función “measure.label”.

Con estos métodos, se obtiene una lista de objetos que es necesario etiquetar como “Peces” y “No peces”. Para esto, se entrenó el modelo principal.

2) Entrenamiento de modelo auxiliar

Como se mencionó anteriormente, este modelo se implementó para disminuir la carga de trabajo que representa el etiquetar desde cero todos los objetos identificados en las imágenes del dataset.

Se entrenó con 20 imágenes de Peces y con 20 imágenes de objetos que no son peces. Se utilizó el algoritmo KNN.

De esta manera, se obtuvo un modelo sencillo que permitió un etiquetado primario de los objetos.

Posteriormente, se procedió a hacer la corrección manual de las etiquetas mediante inspección visual.

En la imagen a continuación, se observa el número de objeto y el objeto en la imagen original. Si el modelo auxiliar identifica al objeto como pez pone el número en azul, de lo contrario lo pone en rojo.

Imágen con objetos etiquetados previo a las correcciones de etiquetas manual para el entrenamiento del modelo.

Haciendo revisión de esto es que se logró tener un dataset de objetos con su correspondiente etiqueta y me aseguro de que la etiqueta sea la correcta.

3) Entrenamiento de modelo definitivo

Para este paso se dividió el dataset de objetos en 3: una parte para el entrenamiento, otra parte para la evaluación de los distintos modelos generados y una última parte para ver el resultado que se obtiene con el mejor modelo (dataset de validación).

Se utilizan 4 modelos:

a) K-vecinos más cercanos

b y c) Árboles de decisión: Random forest y DTC

d) SVM

Para evaluar al mejor modelo se utilizaron los siguientes parámetros de medición:

a) Exactitud

b) Precisión

c) Recall

d) F1-score

Por último, para entender cuáles eran los mejores parámetros para utilizar en el modelo se hizo un análisis donde se crearon gráficos de dispersión de cada posible par de variables unas contra otras. De esta manera se eligieron 2 o más variables que podrían separar bien los objetos y permitir el buen etiquetado de los mismos.