AgroFieldDetect2: entrenamiento del sistema de detección de objetos

AgroFieldDetect2 ha sido uno de los proyectos seleccionados en la convocatoria de los Premios Cátedra Telefónica de la UEx en 2021 para Proyectos IoT, BigData, Machine Learning y Blockchain para el Sector Agroganadero.

Este proyecto es la continuación del desarrollo de AgroFielDetect, comenzado en la edición de 2020 y en el que se acometieron las primeras fases de un sistema robotizado para la poda automática de viñedos.

En esta entrada abordaremos el objetivo número dos del plan de trabajo que consiste en el entrenamiento del sistema de detección de objetos. Este entrenamiento ya se abordó en el proyecto AgroFieldDetect, sin embargo, queremos mejorar el rendimiento de nuestro detector de sarmientos con la incorporación de nuevos prototipos y la realización de nuevos entrenamientos.

En dicho proceso partíamos de un total de 140 imágenes (125 entrenamiento y 15 para validación) en las que el Ground Truth (GT) estaba formado por objetos pertenecientes a una única clase (“sarmiento”) que coincidía con la región desde el inicio del sarmiento hasta el punto por donde el sarmiento debe ser cortado en el proceso de poda.

Figura 1: Ejemplo de imagen prototipo junto con su Ground Truth.

Tras analizar los resultados obtenidos, concluimos que durante el proceso de poda muchos sarmientos ya cortados podrían seguir siendo identificados como perteneciente a la clase sarmiento puesto que dicha parte inicial se conserva. Esto conllevaría a que el sistema llevaría a la máquina de corte a volver a repetir el mismo corte. Por ello, hemos creído necesario incluir una nueva clase, la clase ‘podado’ que se correspondería con aquellos sarmientos que ya han sido cortados. Esto conlleva a adquirir nuevas imágenes en las que convivan sarmientos podados y no podados y definir su GT de acuerdo con la nueva clase definida.

Figura 2: Ejemplo de imagen prototipo junto con su GT formado por objetos de la clase “podado”

En esta fase del trabajo nuestro conjunto de prototipos consta de un total de 396 imágenes de las que 335 forman parte del conjunto de entrenamiento y 61 del conjunto de test. En la tabla 1 podemos observar en número de objetos totales contenidos en cada una de las imágenes y el número de objetos por clase. Como podemos observar tenemos un total de 4865 objetos en las imágenes del conjunto de prototipos de los cuales 4474 pertenecen a la clase sarmiento y 391 a la clase podado.

Una vez definimos el conjunto de prototipos entrenamos nuestro modelo mask-RCNN con el fin de optimizar los parámetros de configuración que mejores resultados nos ofreciesen. Para ello, utilizamos la técnica de ‘early stopping’.

El modelo seleccionado mediante dicha técnica ofreció un resultado del mean Average Precision (mAP) de 0.694, que, aunque todavía bastante mejorable, es bastante superior al ofrecido en el proyecto AgroFieldDetect.

De los 704 objetos del conjunto de test han sido detectados un total de 530, de los cuales no todos ellos han sido clasificados correctamente. En la tabla 2 podemos observar la matriz de confusión de la que podemos extraer que de los 530 objetos detectados sólo 505 han sido detectados y clasificados de forma correcta (445 de la clase sarmiento y 60 de la clase podado).

Además, se han obtenido un total de 302 falsos positivos (236 clase ‘sarmiento’ y 66 clase ‘podado’) y 174 falsos negativos (159 clase ‘sarmiento’ y 15 clase ‘podado’).

Análisis de resultados

A continuación, vamos a analizar los resultados de clasificación sobre algunas imágenes del conjunto de test y vamos a ver la naturaleza de los errores y como dichos errores van a tener distinta importancia de cara a la fase posterior, el proceso de corte de los sarmientos. Este proceso nos ayudará a analizar la naturaleza de los errores y a definir posibles mejoras para optimizar el rendimiento del sistema.

En la figura 3 podemos observar una imagen del conjunto de test con su ground truth formado por los objetos rodeados en rojo y los objetos detectados rodeados en amarillo para la clase sarmiento y azul para la clase podado.

Figura 3: Imagen del conjunto de test junto con su GT (rojo) y objetos detectados (amarillo)

Además, se han obtenido un total de 302 falsos positivos (236 clase ‘sarmiento’ y 66 clase ‘podado’) y 174 falsos negativos (159 clase ‘sarmiento’ y 15 clase ‘podado’).

Análisis de resultados

A continuación, vamos a analizar los resultados de clasificación sobre algunas imágenes del conjunto de test y vamos a ver la naturaleza de los errores y como dichos errores van a tener distinta importancia de cara a la fase posterior, el proceso de corte de los sarmientos. Este proceso nos ayudará a analizar la naturaleza de los errores y a definir posibles mejoras para optimizar el rendimiento del sistema.

En la figura 3 podemos observar una imagen del conjunto de test con su ground truth formado por los objetos rodeados en rojo y los objetos detectados rodeados en amarillo para la clase sarmiento y azul para la clase podado.

Figura 4: Detecciones correctas sobre la imagen de la figura 3.

En la figura 5 podemos observar los falsos negativos que son los errores más preocupantes ya que dejaría los sarmientos sin cortar. En cuanto al falso negativo número 1 en realidad el objeto ha sido casi detectado por el sistema por una de las ROIs (que contará como un falso positivo) pero no tiene una IoU suficiente con el objeto del GT para ser clasificado como una detección correcta. En este caso el punto de corte del sarmiento sería distinto al óptimo, pero podría ser considerado valido. Ocurre algo parecido en la región que está a su izquierda (objeto número 3 de la figura 4) pero en este caso la IoU con el objeto de GT si supera el umbral y por ello aparece como clasificación correcta.

Figura 5: Falsos negativos detectados en la imagen de la figura 3

En la figura 5 podemos observar los falsos negativos que son los errores más preocupantes ya que dejaría los sarmientos sin cortar. En cuanto al falso negativo número 1 en realidad el objeto ha sido casi detectado por el sistema por una de las ROIs (que contará como un falso positivo) pero no tiene una IoU suficiente con el objeto del GT para ser clasificado como una detección correcta. En este caso el punto de corte del sarmiento sería distinto al óptimo, pero podría ser considerado valido. Ocurre algo parecido en la región que está a su izquierda (objeto número 3 de la figura 4) pero en este caso la IoU con el objeto de GT si supera el umbral y por ello aparece como clasificación correcta.

Figura 6: Falsos positivos detectados en la imagen de la figura 3.
Figura 6: Falsos positivos detectados en la imagen de la figura 3.

Figura 7: Imágenes con falsos positivos fuera de los sarmientos.

En la figura 8 podemos observar dos ejemplos de objetos correctamente detectados, pero mal clasificados. Al aparecer dibujados en azul, indica que han sido clasificados a la clase podado. Este efecto sería similar a un falso negativo y esos sarmientos se quedarían sin cortar ya que la máquina de corte no debe hacer nada sobre un objeto que ya ha sido podado.

Figura 8: Ejemplo de regiones detectadas, pero mal clasificadas

En la figura 8 podemos observar dos ejemplos de objetos correctamente detectados, pero mal clasificados. Al aparecer dibujados en azul, indica que han sido clasificados a la clase podado. Este efecto sería similar a un falso negativo y esos sarmientos se quedarían sin cortar ya que la máquina de corte no debe hacer nada sobre un objeto que ya ha sido podado.

Figura 9: Ejemplo de imagen con todos los objetos del GT de la clase podado

Conclusiones

Los resultados obtenidos hasta el momento por nuestro detector de puntos de corte de los sarmientos aunque mejorables son esperanzadores y de hecho mejoran bastante los resultados obtenidos en el proyecto AgroFieldDetect desarrollado el año pasado. Podemos observar como el sistema sigue presentando errores en la detección, pero no todos los errores son igualmente importantes de cara al proceso del corte de los sarmientos. A nuestro juicio debemos seguir mejorando el proceso, pero sobre todo para minimizar dos tipos de errores:

1.- Minimizar la cifra de falsos negativos sobre regiones de la clase sarmiento ya que estos errores provocan que dichos sarmientos se queden sin cortar.

2.- Minimizar la cifra de falsos positivos sobre regiones que estén fuera de los sarmientos ya que estos errores podrían provocar daños en la máquina de corte y en las instalaciones auxiliares al cultivo de las vides. Para este paso podría ser necesario definir otros tipos de objetos (clases) presentes en las imágenes como podrían ser postes, alambres, gomas de riego, restos de poda, etc).

3.- Minimizar la existencia de regiones que son ofrecidas como objetos distintos pero que se solapan sobre la parte inicial de los sarmientos. Creemos que este punto es fácil de solucionar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.