UTILIZANDO MACHINE LEARNING PARA PROTEGER LA GRAN BARRERA DE CORAL
#SLICEofDATA Tu porción diaria de Data Analytics en solo 15 minutos
Los arrecifes de coral se encuentran entre los ecosistemas más importantes del mundo, tanto para la marina como para la sociedad en general. Los arrecifes sanos no solo son esenciales para la pesca y la seguridad alimentaria, sino que también protegen contra las marejadas, respaldan las economías basadas en el turismo y promueven los medicamentos para la investigación del descubrimiento, entre muchos otros beneficios.
Los arrecifes enfrentan varias presiones crecientes, el cambio climático, la contaminación o la sobrepesca. Solo en los últimos 30 años, ha habido una pérdida dramática de cobertura y hábitat de coral en la Gran Barrera y otros arrecifes están experimentando disminuciones similares. En Australia, se ha demostrado que los brotes de la estrella de mar corona de espinas (en Inglés COTS), que se alimenta de coral, causan una gran pérdida de coral. Aunque las COTS existen de forma natural en el Indo-Pacífico, la reducción de la abundancia de depredadores naturales y el exceso de nutrientes han provocado brotes masivos que están devastando comunidades coralinas ya vulnerables. El control de las poblaciones de las COTS es esencial para promover el crecimiento y la resistencia de los corales.
La Great Barrier Reef Foundation ha establecido un programa de innovación para desarrollar nuevos métodos de estudio e intervención que mejoran radicalmente el control de las COTS. Google se ha asociado con CSIRO, La Organización de Investigación Científica e Industrial de la Commonwealth, y desarrollan una innovadora tecnología de Machine Learning que analiza secuencias de vídeo de forma precisa, eficiente y casi en tiempo real. El objetivo es transformar a escala el estudio submarino, el seguimiento y la cartografía de los arrecifes, para ayudar a identificar y priorizar rápidamente los brotes de COTS. Este proyecto forma parte de una asociación más amplia con el CSIRO en el marco de la iniciativa Digital Future de Google en Australia.
El CSIRO desarrolló una Edge ML platform (construida sobre la NVIDIA Jetson AGX Xavier) que puede analizar secuencias de imágenes submarinas y trazar mapas de detecciones en tiempo casi real. El objetivo era utilizar el conjunto de datos anotados que CSIRO había construido a lo largo de múltiples trabajos de campo para desarrollar el modelo de detección de objetos más preciso (en una variedad de entornos, condiciones meteorológicas y poblaciones COTS) dentro de un conjunto de restricciones de rendimiento, sobre todo, procesando más de 10 frames por segundo (FPS) en un dispositivo de <30 vatios.
Organizaron un concurso de Kaggle, aprovechando los conocimientos de la comunidad open source para impulsar el plan de experimentación. Con más de 2.000 equipos y 61.000 propuestas, pudieron aprender de los éxitos y fracasos de muchos experimentos, muchos más de los que podían esperar ejecutar por su cuenta. Utilizando estos conocimientos para definir la hoja de ruta de experimentación y ejecutando cientos de experimentos en las TPU de Google.
Utilizaron la biblioteca Model Garden de TensorFlow 2 como base, haciendo uso del modelo YOLOv4 a escala y de las correspondientes implementaciones de entrenamiento. El equipo de expertos en modeling se puso a trabajar, modificando el pipeline, experimentando con diferentes resoluciones de imagen y tamaños de modelo, y aplicando diversas técnicas de aumento y cuantificación de datos para crear el modelo más preciso dentro de las limitaciones de rendimiento.
Debido a la limitada cantidad de datos anotados, una parte clave de este problema era averiguar las técnicas de aumento de datos más eficaces. Realizaron cientos de experimentos basados en lo que aprendieron de las presentaciones de Kaggle para determinar qué técnicas combinadas eran más eficaces para aumentar la precisión del modelo.
Paralelamente al flujo de trabajo de modeling, experimentaron con el batching, el XLA y la precisión mixta automática (que convierte partes del modelo a fp16) para intentar mejorar nuestro rendimiento, todo lo cual resultó en un aumento de nuestros FPS x3. Sin embargo, se descubrió que, en el módulo Jetson, el uso de TensorFlow-TensorRT (que convierte todo el modelo a fp16) por sí mismo dio lugar a un aumento de velocidad total de x4 veces, por lo que a partir de ahí se utilizó TF-TRT exclusivamente.
Una vez detectadas las estrellas de mar en determinados fotogramas, se aplica un rastreador que enlaza las detecciones a lo largo del tiempo. Esto significa que a cada estrella de mar detectada se le asigna un ID único que mantiene mientras permanece visible en el vídeo. Se vinculan las detecciones de los siguientes fotogramas entre sí utilizando primero el flujo óptico para predecir dónde estará la estrella de mar en el siguiente fotograma, y luego haciendo coincidir las detecciones con las predicciones en función de su puntuación de Intersección over Unión (IoU).
En una tarea como ésta, en la que el recuerdo es más importante que la precisión (es decir, importa más no perder COTS que los falsos positivos), es útil considerar la métrica F2 para evaluar la precisión del modelo. Esta métrica puede utilizarse para evaluar el rendimiento de un modelo en fotogramas individuales. Sin embargo, el objetivo final era determinar el número total de COTS presentes en el flujo de vídeo. Por lo tanto, importaba más evaluar la precisión de toda la cadena (modelo + rastreador) que el rendimiento fotograma a fotograma (es decir, no pasa nada si el modelo tiene predicciones inexactas en uno o dos fotogramas, siempre que la cadena identifique correctamente la existencia y la ubicación general de la estrella de mar). Se acaba utilizando una métrica F2 basada en la secuencia que determina cuántas "pistas" se encuentran en un determinado umbral medio de IoU.
El modelo actual de 1080p que utiliza TensorFlow TensorRT funciona a 11 FPS en la Jetson AGX Xavier, alcanzando una puntuación F2 basada en la secuencia de 0,80. Además, se ha entrenado un modelo de 720p que funciona a 22 FPS en el módulo Jetson, con una puntuación F2 basada en la secuencia de 0,78.
Google y CSIRO están encantados de anunciar que están abriendo ambos modelos de detección de objetos COTS y han creado un cuaderno Colab para demostrar el flujo de trabajo de inferencia del lado del servidor. Google tiene un tutorial en Colab que permite a los estudiantes, investigadores marinos o data scientist evaluar los modelos de ML COTS en secuencias de imágenes con cero conocimientos de configuración/ML. Además, proporciona un modelo para implementar una pipeline de inferencia optimizada para plataformas de edge ML, como el módulo Jetson. Están planeando seguir actualizando los modelos y rastreadores, y en última instancia, abrir una pipeline TFX completa y un conjunto de datos para que las organizaciones de conservación y otros gobiernos de todo el mundo puedan volver a entrenar y modificar el modelo con sus propios conjuntos de datos.
Ref: Using Machine Learning to Help Protect the Great Barrier Reef in Partnership with Australia’s CSIRO — The TensorFlow Blog
Posted by Megha Malpani, Google Product Manager and Ard Oerlemans, Google Software Engineer