🎯 Цель
Создание локального или гибридного приложения для распознавания объектов в видеопотоке, полученном с камеры, с дальнейшим развитием в сторону анализа расстояний до объектов и автоматических уведомлений о событиях в реальном времени (например, в Telegram).
📱 Архитектура приложения
🔸 Frontend (React)
- Подключается к камере (
getUserMedia
) - Видео отображается в
<video>
-элементе - Снимки кадров (
canvas
) отправляются на сервер для анализа - Результаты (bounding boxes + лейблы) накладываются поверх с помощью
<canvas>
🔸 Backend (FastAPI + YOLOv8)
- Python
- Модель Ultralytics YOLOv8
- Принимает изображение (base64 или blob) и возвращает:
- bounding boxes
- классы объектов
- вероятности
- Планируется поддержка:
- вычисления расстояния (на основе размеров bbox и калибровки камеры)
- таймера/фильтра повторных уведомлений
🔸 Коммуникация
- Используется обычный
fetch
POST с multipart или JSON - Возможен переход на WebSocket для стриминга и сокращения задержки
🛜 Развёртывание и окружение
- Приложение пока развёрнуто локально
- FastAPI сервер — на выделенном порту, проксируется через Nginx при необходимости
- Используется dockerized-окружение для Python backend
📩 Интеграция с Telegram
- Telegram-бот:
- Отправляет сообщение при обнаружении объекта
- Поддержка настройки по типу объекта, вероятности, области кадра
- Возможность удалённого мониторинга через Telegram-интерфейс или любой другой
🧪 Возможности развития
- Поддержка многообъектного трекинга (multi-object tracking)
- Распознавание поведения (например, подозрительная активность)
- Вычисление направления движения объектов
- Стриминг результатов через WebRTC
💡 Назначение
- Автономная система наблюдения
- Компьютерное зрение для DIY/IoT-проектов
- Уведомления о приближении человека/объекта без постоянного мониторинга