Detección Temprana de Incendios en Áreas Forestales con Inteligencia Artificial- Parte I
Un equipo de Quito desarrolla un prototipo con YOLOv5 para detectar fuego en imágenes y explora su futura integración con drones.
Proyecto de aprendizaje compartido por la comunidad. El artículo documenta el equipo, el método y los resultados; no acredita que el prototipo esté listo para su uso fuera del entorno de aprendizaje.

Quito. 2021
¿Sabes cuántas hectáreas se queman cada año por causa de incendios forestales? ¿Sabías que producto de esto muchas especies dejan su hábitat en busca de un nuevo hogar?¿Me creerías si te dijera que podemos utilizar la tecnología sobre todo la Inteligencia Artificial para disminuir el impacto de los incendios forestales? En este artículo, utilizaremos la Inteligencia Artificial para detectar de forma temprana incendios en áreas forestales.
Al principio yo también era escéptico. Pero la idea de detectar indicios de fuego antes de que el incendio se extienda nos animó a explorar qué podía aportar la IA. Aquí compartimos el proceso del prototipo, sus resultados y lo que queda por hacer. Ojalá te inspire a convertirte en un defensor de la Pachamama.
Primeros pasos
La idea surgió una tarde durante un taller de Saturdays.AI. Luis Marcelo Viteri Aguilar, Danilo Josue Erazo Quinaluisa, Jonathan Alejandro Zambrano Mejía y Wilfredo Martel decidimos abordar el problema de la detección temprana de incendios forestales.
Idea General
La propuesta combina un modelo de IA con un dron equipado con GPS y cámara. El dron recorrería áreas forestales y, al detectar indicios de fuego, enviaría una alerta a un servidor. Este comunicaría la imagen, la ubicación y la puntuación del modelo a los bomberos y las comunidades cercanas, para facilitar una respuesta temprana.

Esquema del funcionamiento
Problemática
Los incendios forestales dañan ecosistemas y desplazan a numerosas especies. La magnitud del problema motivó este proyecto de detección temprana.
En Ecuador, el relieve montañoso puede dificultar que los equipos de emergencia lleguen a las zonas afectadas. Detectar indicios de fuego con antelación podría ayudar a organizar la respuesta.
Ante este alarmante problema con impacto social y ambiental se pensaron soluciones que ayuden a detectar a tiempo los incendios forestales, es entonces cómo surge la idea de fusionar la Inteligencia Artificial (de ahora en adelante I.A.) con un dron para la detección temprana de incendios en las áreas forestales de nuestro país. La idea consiste en entrenar un modelo de I.A. (detectar fuego en cualquier superficie) que interactúe con el dron el cual dispondrá de una cámara y un GPS, por lo tanto, en tiempo real se sabrá la posición del incendio y enviará una alarma a los bomberos para su mitigación.
Fase de Ejecución
Organizamos el desarrollo del prototipo en cinco fases:
- Fase de recolección de datos (conjunto de datos)
- Investigación de modelos de IA preentrenados
- Reentrenamiento y Validación del modelo
- Deployment del modelo
- Desarrollo de un sitio Web para presentación del Prototipo
Antes de continuar se aclara que la fase de integración con el dron, el servidor, notificación a las comunidades y bomberos queda pendiente para la segunda parte de este artículo.
1. Fase de recolección de datos e Investigación de modelos para Clasificación de Imágenes
Esta fase se enfocó en la recolección de imágenes de incendios forestales ocasionados alrededor del mundo y en nuestro país. Se logró obtener un total de 250 MB de información la cual se empleará como entrada para el aprendizaje de nuestro modelo.
En paralelo a la recopilación de imágenes, investigamos modelos de detección de objetos y elegimos Yolo v5. Para entrenarlo, anotamos las zonas con fuego mediante cuadros delimitadores dentro de cada imagen.
En otras palabras, explicaremos lo que implica en nuestro dataset el utilizar Yolo v5:
1. Se debe anotar o indicar los segmentos a aprender dentro de la imagen. En nuestro caso son poner las coordenadas donde hay fuego y de esta manera la herramienta Yolo V5 pueda aprender y obtener patrones de diferenciación. Para saber más sobre el proceso de anotación de Yolo v5 se recomienda echar una lectura a este enlace para despejar sus dudas.
2. Para el proceso de anotación se utilizó una herramienta de mucha ayuda llamada HyperLabel que la encontramos en enlace.
3. Una vez que se obtuvo las anotaciones, que básicamente es un archivo xml que hace alusión a la imagen con sus coordenadas, se procede a generar un archivo para el formato de Yolo v5. Para este proceso se siguió el código github ai-coodiantor.
Con las imágenes y anotaciones preparadas, pudimos entrenar el modelo con nuestro propio dataset.
2. Reentrenamiento y Validación del modelo
Para la parte de entrenamiento del modelo ya pre-entrenado se utilizó Google Colab Pro con GPU v100 y un tiempo estimado de 12 horas para su finalización. Al finalizar el proceso se obtuvo como resultado del entrenamiento un modelo de inferencia con extensión .pt. En nuestro caso, nuestro archivo fuegoModel.pt que servirá de insumo para inferir sobre imágenes de prueba. Antes de avanzar hay que aclarar que este modelo una vez que pase todas las pruebas, se pondrá en un dron mediante una placa Nvidia Jetson TX2 para su procesamiento en tiempo real, en donde cuando se detecte algún indicio de incendio forestal se proceda a enviar la alarma a instituciones tales como: Bomberos, Comunidades aledañas etc.
A continuación, en la Ilustración 2 se muestra el código que se utilizó para entrenar el modelo de detección de incendios.

Modelo de entrenamiento de Yolov5
3. Deployment del modelo
Una vez que se obtuvo el modelo fireModel.pt se procedió a realizar un pequeño aplicativo en Python utilizando Flask como servidor de aplicaciones. Es decir, en Flask se tendrá una API que recibirá la imagen a inferir y el modelo fireModel.pt nos retornará el resultado y la sección donde se ha detectado el incendio en la foto con su respectivo porcentaje de predicción. A continuación, en la Ilustración 3 se muestra el código que realiza la descripción previa.
app.py

Enlace del código.
A continuación, en la Ilustración 4 se muestra la prueba del modelo usando Postman.

Resultado de la Inferencia del modelo entrenado
4. Desarrollo de un sitio Web para presentación del Prototipo
Para nuestro prototipo se desarrolló una Landing Page que permite cargar una imagen la cual será enviada al servidor para su procesamiento para que una vez terminada la inferencia de la imagen, los resultados se envíen al cliente con las posiciones de donde se ha detectado el incendio y el porcentaje de predicción.
Las herramientas utilizadas para la página web son:
1. Angular 2+
2. Angular Material
Utilizamos canvas para dibujar los cuadros delimitadores sobre la imagen cargada. Como las dimensiones de visualización podían diferir de las de la imagen original, ajustamos las coordenadas a la escala correspondiente. La ilustración 5 muestra el código.

Función para adaptar las coordenadas de YOLOv5 a la interfaz
Finalmente, en la siguiente ilustración se muestra la Landing Page y los resultados del modelo.

Landing page para presentación del demoday

Inferencia del modelo sobre una imagen de prueba
5. Resultado del Entrenamiento
Las pruebas iniciales fueron prometedoras para un dataset pequeño. El equipo informó de un resultado del 71% en la evaluación mostrada. Detectamos fuego en todas las imágenes diurnas de la prueba descrita, pero faltaba evaluar imágenes nocturnas y una muestra más amplia de situaciones, incluidos casos sin fuego.
Matriz de confusión
En la Figura 1, se muestra el desempeño de nuestro algoritmo con una predicción del 71% de acierto.

Matriz de confusión
Curva precisión-recall (PR)
La curva precisión-recall resume el equilibrio entre la precisión de las detecciones y la proporción de casos que se detectan. El material del proyecto informa de un AP (precisión media) de 0,5. Es un resultado inicial que debe interpretarse junto con el conjunto de evaluación y el criterio usado para considerar correcta una detección.

Curva PR del modelo tuneado
Conclusiones
- Un mayor presupuesto de cómputo permitiría explorar más configuraciones y ampliar el entrenamiento. Por sí solo no garantiza mejores resultados: hay que comprobarlos con una evaluación adecuada.
- El tiempo de inferencia observado fue corto, una característica prometedora para el uso en un dron que todavía debe comprobarse en el hardware previsto.
- Los experimentos animan a seguir explorando la detección de incendios, ampliando los datos y las pruebas antes de cualquier uso operativo.
“Nunca se alcanza la verdad total, ni nunca se está totalmente alejado de ella”. Aristóteles (384 AC-322 AC)
Repositorio
En el siguiente repositorio se encuentra el código usado para desarrollar esa aplicación: https://github.com/SaturdaysAI/Projects/tree/master/Quito/2021/deteccion-temprana-de-incendios\_main
¡Más inteligencia artificial!
Saturdays.AI acerca la IA a más personas a través del aprendizaje en comunidad y de proyectos con impacto social. Nuestro lema es AI4ALL IS AI4GOOD.
Explora los cursos disponibles
Conoce la comunidad de Saturdays.AI
Autoría
Wilfredo Martel
Soy una persona muy curiosa y a veces intrépida. Me encanta aprender y construir cosas nuevas.
Saturdays.AI
Saturdays.AI es una comunidad abierta donde aprendemos inteligencia artificial, colaboramos y creamos proyectos con impacto social.
Referencias del artículo
Una historia de la comunidad Saturdays.AI. Publicada originalmente el 19 nov 2021.
← Más historias de la comunidad



