Idea desarrollada para el AWS Disaster Response Hackathon, donde había que proponer soluciones basadas en inteligencia artificial para mejorar la respuesta ante desastres naturales. El proyecto hay que compartirlo como open source y ejecutarlo en Amazon SageMaker Studio Lab (los cuadernos jupyter gratuitos de AWS con GPU).
👉 Descripción más detallada de la idea aquí 🔗.
👉 Código fuente listo para probarlo en Jupyter Notebook aquí 🔗.
La idea que he presentado consiste en leer un dataset de incendios geolocalizados, descartar las zonas urbanas/industriales para quedarse con los incendios forestales. A continuación descargamos automáticamente las imágenes de satélite Sentinel-2 de los instantes previos al inicio del incendio, y las recortamos para quedarnos solo con el trozo que se quemará. Después, utilizamos una red neuronal (Vision Transformer, ViT), para intentar entrenarla para que clasifique entre «zonas que potencialmente se quemarán en el futuro» y «zonas que potencialmente no se quemarán».
Tras el entrenamiento, podemos hacer predicciones subiendo una foto o bien seleccionando una latitud/longitud sobre el mapa.
El objetivo final de esta prueba de concepto es ayudar a anticiparse al inicio de un incendio.
A futuro, el modelo se puede entrenar con un dataset mucho mayor (para el ejemplo, lo he entrenado con muy pocos incendios, el dataset contiene millones más). También se puede trabajar en una red multimodal, que reciba como input, además de las imágenes, otros datos como temperatura, época del año, si es festivo o no, localidad cercana a la imagen, etc…
Qué he aprendido en este hackathon (y por qué animo a todo el mundo a participar en hackathones 🔗 para aprender):
-
- ✅ Investigar los diferentes datasets disponibles de imágenes de satélite, comparar su frecuencia de actualización, precisión, sensores…
- ✅ Utilizar mapas en jupyter notebook, concretamente Leaflet Maps, y otros widgets.
- ✅ Trabajar con imágenes de satélite (recortar, transformar, convertir formato…)
- ✅ Primer contacto con Vision Transformers (ViT), en lugar de usar una red Convolucional para la clasificación de imágenes.
- ✅ Utilizar Amazon SageMaker Studio Lab, más allá de los ejemplos.
- ✅ Programar algo nuevo en python 😀
- ✅ Trabajar en un ejemplo de deep learning.
Cualquier feedback es bienvenido 🙂
Excelente !