El lirio acuático (Eichhornia crassipes) es una planta originaria de las zonas tropicales de Sudamérica. Estos lirios están formados por esponjosos rizomas que le permiten flotar y unas raíces que se entrelazan para formar grandes balsas, a veces imposibles de traspasar. El lirio acuático es una de las plantas de más rápido crecimiento de su especie, pudiendo doblar su número en 15 días, todo un portento. Y no es para menos, pues esta planta se la considera invasora en casi todos los continentes como Asia, Oceanía, África y América.
Se estima que fueron introducidos como especie invasora por primera vez en Florida en el año 1884, causando grandes daños a los ecosistemas y sistemas fluviales de entonces. Esto se debe a que el lirio acuático cubre grandes extensiones, impidiendo la luz a plantas acuáticas nativas y agotando las existencias de oxígeno en el agua, componente clave para la vida de los ríos y lagos.
Ahora que sabemos un poco más sobre esta problemática planta, veremos las dos situaciones que nos podemos encontrar:
- La primera situación es que en el lago o río solo exista la especie invasiva
- La segunda situación es que la especie invasiva coexista con el resto de plantas acuáticas que han sobrevivido
Puesto que la segunda situación requiere de estudios de campo más complejos, como averiguar qué especies hay a lo largo del río o lago y sus respectivas reflectancias, para este primer estudio nos centraremos en un lago donde predomina la especie invasiva y dejaremos la segunda situación para otro post.
Procesado de imágenes de satélite Sentinel con Deep Learning en el Lago Victoria
En concreto, hemos elegido el Lago Victoria, situado entre Uganda, Kenia y Tanzania. Este lago, con una extensión de 69.482 km2 se encuentra ante un problema medioambiental muy grave de especies invasoras, siendo el lirio acuático el máximo invasor.
A continuación, os explicamos cómo hemos detectado el lirio acuático mediante procesamiento de imágenes satelitales y Deep Learning:
Descargamos las bandas espectrales NIR (infrarrojo cercano) y ROJA de algún proveedor de mediana resolución, del satélite Sentinel-2 (10m por píxel).
Usamos el Sistema de Información Geográfica -SIG- de escritorio QGIS para recortar el contorno del lago y quedarnos solo con la parte que nos interesa de la imagen descargada. Con la herramienta «Extract Raster by Mask Layer» nos vale para recortar el raster a partir de un polígono.
En Python y utilizando el paquete GDAL/ORG, cargamos el raster (formato TIFF).
Como mencionamos anteriormente, si la especie invasora es la predominante en el lago, nos basta con usar el índice NDVI (Normalized Difference Vegetation Index), índice estándar para medir la vegetación y la salud de las plantas. La fórmula es: (NIR – RED) / (NIR + RED)
Por otro lado, para entrenar la red neuronal y poder procesar con Deep Learning la imágen de satélite, hemos escogido manualmente unas 100 muestras.
Con el SIG de escritorio seleccionamos 100 pequeñas zonas (muestras) del TIFF. Algunas deben contener el patrón a buscar (casos positivos) y otras no (casos negativos). En las muestras con casos positivos, delimitamos el contorno del patrón en cuestión para así indicarle a la red qué es lo que debe buscar. Se necesita una cantidad significativa de casos comparativos para que la red neuronal ajuste de forma correcta. Además, la diversidad de casos es muy importante para evitar el sobreajuste de la red. En nuestro caso, los parámetros que usamos para el entrenamiento de la red neuronal, con TensorFlow son:
- Optimizer: Adam
- Loss function: sparse_categorical_crossentropy
- Metrics: accuracy
Después del entrenamiento, insertamos nuevamente la imagen completa en el modelo entrenado de red neuronal de TensorFlow para así encontrar patrones similares.
Finalmente, una vez la red neuronal ha analizado la imagen de satélite completa y encontrado los patrones buscados, georreferenciamos los polígonos resultantes (los que TensorFlow ha dibujado para indicar que ahí ha encontrado el patrón que estábamos buscando) y exportamos el resultado a geoJSON para su representación posterior en el mapa.
Resultados 2016
Resultados 2017
Resultados 2018
Conclusiones
Como conclusiones positivas podemos destacar:
- Un gran porcentaje % de acierto
- Escalabilidad. La aplicación de esta técnica de Aprendizaje Profundo resuelve, en cuestión de minutos, tareas que una persona puede tardar días en realizar.
- Automatización. Con el entrenamiento, tenemos la oportunidad de que la máquina aprenda, «obtenga experiencia» y podamos aplicar la búsqueda de patrones a otros casos. Siempre que los casos sean de la misma tipología
Dentro de las conclusiones negativas hay que advertir que
- Para aumentar el porcentaje de acertividad en el reconocimiento de imagen, es necesario exponer la red neuronal a un gran número de casos
Si quieres ver los resultados de forma interactiva, puedes visualizarlos en nuestra plataforma Cartometrics AI.
Juan Pablo Arca y Rubén Fernández son Administrador y CTO de Cartometrics respectivamente