HIK.
Volver al portafolio

Case study

Graduation Project·2026

Drone Fire Watch: Detección Aérea de Fuego y Humo

Proyecto de fin de grado: un detector YOLOv8-L entrenado con el dataset D-Fire de 21K imágenes (precision, recall y mAP50 ≈ 0.80), servido con FastAPI a un panel de operaciones en React y a un reportero de campo en Streamlit.

YOLOv8FastAPIComputer VisionReactStreamlit
github.com/hhalilikurnaz
Drone Fire Watch

01

Resumen

Mi proyecto de fin de grado: un sistema de detección aérea de fuego y humo construido en torno a un modelo YOLOv8-L propio, servido mediante un servicio de inferencia FastAPI a dos clientes, un panel de operaciones y un reportero de campo.

02

El desafío

La detección de incendios forestales suele depender de la vigilancia manual o de imágenes satelitales con retraso. Cuando se confirma un incendio, puede que ya se esté propagando, y los equipos de campo rara vez saben exactamente adónde ir ni hacia dónde lo empujará el viento.

03

El enfoque

Entrené un detector YOLOv8-L con D-Fire, un dataset de fuego y humo de 21K imágenes, eligiendo a propósito el backbone grande porque aquí la precisión importa más que la velocidad. Un servicio FastAPI envuelve el modelo y devuelve detecciones estructuradas a dos clientes: un panel para operadores y un reportero ligero para quienes están en el terreno.

04

Cómo funciona

Las imágenes aéreas o de campo llegan a un servicio de inferencia FastAPI, que ejecuta el modelo YOLOv8-L a 640px y devuelve JSON estructurado con etiquetas, confianzas y cajas delimitadoras. El panel de operaciones en React lanza alarmas por encima de un umbral de confianza configurable y guarda estadísticas e historial de alertas. El reportero de campo en Streamlit lee el GPS EXIF de cada foto, sitúa las detecciones en un mapa y las enriquece con datos de viento en vivo de OpenWeatherMap.

05

Arquitectura del sistema

Cómo se comunican las piezas. Pasa el cursor por un nodo o cambia al código que mueve el runtime.

inference.py

Sense

Infer

Serve

06

Qué construí

Modelo YOLOv8-L entrenado y evaluado con el dataset D-Fire de 21K imágenes (~100 épocas, 640px).

Servicio de inferencia FastAPI con un contrato JSON estructurado compartido por ambos clientes.

Panel de operaciones en React: alarmas por umbral de confianza, estadísticas e historial de alertas.

Reportero de campo en Streamlit con mapeo EXIF-GPS y datos de viento de OpenWeatherMap.

07

Resultados

Entrené un detector YOLOv8-L propio para fuego y humo con el dataset D-Fire de 21K imágenes (~100 épocas, 640px), alcanzando precision, recall y mAP50 ≈ 0.80.

Prioricé deliberadamente la precisión sobre la latencia: en un dominio crítico, un incendio no detectado cuesta más que un fotograma lento.

Serví el modelo mediante un servicio de inferencia FastAPI que devuelve JSON estructurado.

Construí un panel de operaciones en React con alarmas por umbral de confianza, estadísticas e historial de alertas.

Construí un reportero de campo en Streamlit con mapeo EXIF-GPS y datos de viento de OpenWeatherMap.

08

Resultados

Precision, recall y mAP50 ≈ 0.80 en fuego y humo.

Un modelo, dos clientes: operadores y equipos de campo leen las mismas detecciones.

Un sistema completo (modelo, API y dos interfaces), no una demo que vive solo en un notebook.

09

Qué aprendí

En visión crítica para la seguridad, elige el backbone por el coste de un fallo, no por la velocidad del benchmark.

Una detección solo sirve con contexto: el GPS y el viento convierten una caja en una imagen en una decisión.

Un modelo sin interfaz para operadores no es un sistema. Las interfaces formaron parte del diseño.

10

Stack tecnológico

YOLOv8FastAPIComputer VisionReactStreamlit

¿Tienes algo similar en mente?

Estoy abierto a nuevos proyectos. Hablemos de lo que estás construyendo.