HIK.
Назад к портфолио

Кейс

Graduation Project·2026

Drone Fire Watch: обнаружение огня и дыма с воздуха

Дипломный проект: детектор YOLOv8-L, обученный на датасете D-Fire из 21K изображений (precision, recall и mAP50 ≈ 0.80), который через FastAPI обслуживает операционный дашборд на React и полевой репортер на Streamlit.

YOLOv8FastAPIComputer VisionReactStreamlit
github.com/hhalilikurnaz
Drone Fire Watch

01

Обзор

Мой дипломный проект: система обнаружения огня и дыма с воздуха на основе собственной модели YOLOv8-L, которая через инференс-сервис на FastAPI обслуживает два клиента — операционный дашборд и полевой репортер.

02

Задача

Обнаружение лесных пожаров обычно опирается на ручное наблюдение или запаздывающие спутниковые снимки. Когда пожар подтверждён, он может уже распространяться, а полевые команды редко точно знают, куда ехать и куда ветер погонит огонь.

03

Подход

Я обучил детектор YOLOv8-L на D-Fire — датасете огня и дыма из 21K изображений — и сознательно выбрал крупный backbone, потому что здесь точность важнее скорости. Сервис на FastAPI оборачивает модель и отдаёт структурированные детекции двум клиентам: дашборду для операторов и лёгкому репортеру для людей в поле.

04

Как это устроено

Аэро- или полевые снимки поступают в инференс-сервис на FastAPI, который запускает YOLOv8-L на 640px и возвращает структурированный JSON с метками, уверенностью и bounding box'ами. Операционный дашборд на React поднимает тревогу выше настраиваемого порога уверенности и хранит статистику и историю тревог. Полевой репортер на Streamlit читает EXIF GPS каждого фото, наносит детекции на карту и обогащает их живыми данными о ветре из OpenWeatherMap.

05

Архитектура системы

Как части связаны между собой. Наведите на узел или откройте исходник, который ведёт runtime.

inference.py

Sense

Infer

Serve

06

Что я построил

Модель YOLOv8-L, обученная и оценённая на датасете D-Fire из 21K изображений (~100 эпох, 640px).

Инференс-сервис на FastAPI со структурированным JSON-контрактом для обоих клиентов.

Операционный дашборд на React: алармы по порогу уверенности, статистика и история тревог.

Полевой репортер на Streamlit с картой по EXIF-GPS и данными о ветре из OpenWeatherMap.

07

Результаты

Обучил собственный детектор YOLOv8-L для огня и дыма на датасете D-Fire из 21K изображений (~100 эпох, 640px): precision, recall и mAP50 ≈ 0.80.

Сознательно выбрал точность вместо задержки: в критичной для безопасности области пропущенный пожар стоит дороже медленного кадра.

Развернул модель через инференс-сервис на FastAPI, возвращающий структурированный JSON.

Создал операционный дашборд на React с алармами по порогу уверенности, статистикой и историей тревог.

Создал полевой репортер на Streamlit с картой по EXIF-GPS и данными о ветре из OpenWeatherMap.

08

Результаты

Precision, recall и mAP50 ≈ 0.80 для огня и дыма.

Одна модель, два клиента: операторы и полевые команды видят одни и те же детекции.

Законченная система (модель, API и два интерфейса), а не демо в ноутбуке.

09

Чему научился

В критичном для безопасности компьютерном зрении выбирайте backbone по цене пропуска, а не по скорости бенчмарка.

Детекция полезна только в контексте: GPS и ветер превращают рамку на снимке в решение.

Модель без интерфейса для оператора — не система. Интерфейсы были частью дизайна.

10

Технологии

YOLOv8FastAPIComputer VisionReactStreamlit

Есть похожая идея?

Я открыт для новых проектов. Расскажите, что вы создаёте.