Распознавание объектов через YOLOv8

Cover: Распознавание объектов через YOLOv8

🗓 10 марта 2025 г.

🎯 Цель

Создание локального или гибридного приложения для распознавания объектов в видеопотоке, полученном с камеры, с дальнейшим развитием в сторону анализа расстояний до объектов и автоматических уведомлений о событиях в реальном времени (например, в 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-проектов
  • Уведомления о приближении человека/объекта без постоянного мониторинга

Ссылки