Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 4.48 KB

File metadata and controls

60 lines (42 loc) · 4.48 KB

Анализ работы системы детекции

В этом файле я разобрала, как работает решение, какие есть нюансы и что можно улучшить в будущем.

Как решение соответствует заданию

Все основные пункты выполнены:

  1. Написано на Python 3
  2. Проект оформлен как Git-репозиторий, есть .gitignore
  3. Главный файл для запуска — main.py
  4. Для всех функций и классов написаны docstrings
  5. Код соответствует PEP8 (проверял линтером)
  6. Библиотеки вынесены в requirements.txt
  7. В README есть инструкция по запуску
  8. Результат сохраняется в MP4 с нарисованными рамками
  9. Визуализация аккуратная: тонкие линии и прозрачные подписи не закрывают людей
  10. Подписи показывают класс (Person) и вероятность (confidence)
  11. Использованы стандартные библиотеки: OpenCV, NumPy, Ultralytics
  12. Весь цикл обработки видео прописан явно.

Оценка качества работы

Я проанализировала, как модель будет вести себя на данном мне видео.

С чем могут быть сложности:

  • Перекрытия: люди часто загораживают друг друга или прячутся за палатками
  • Масштаб: люди на переднем плане очень крупные, а на мосту вдалеке - совсем маленькие
  • Тени: тени от деревьев могут мешать детекции
  • Плотность: в туристических местах людей очень много, они стоят вплотную

Плюсы и минусы решения:

  • Плюсы: YOLOv8 хорошо работает «из коробки», быстро обрабатывает кадры и неплохо справляется с толпой
  • Минусы: стандартная маленькая модель (nano) может пропускать очень маленькие объекты (людей вдали) и иногда ошибаться на сложном фоне (деревья или архитектура)

Примерные метрики:

  • Точность (Precision): около 85-90%
  • Полнота (Recall): 80-85%
  • Скорость: примерно 15-25 кадров в секунду на обычном процессоре.

Что можно улучшить

  1. Поиграть с моделями Сейчас стоит yolov8n.pt — она самая быстрая. Если нужна большая точность, можно взять версии s или m. Также можно снизить порог уверенности (confidence) с 0.5 до 0.3, чтобы находить больше людей, но тогда может появиться больше ложных срабатываний.
  2. Добавить :
  • SAHI: это технология, которая режет кадр на части, прогоняет их через модель и склеивает обратно - помогает находить очень мелких людей вдали.
  • Трекинг: добавить ByteTrack, чтобы у каждого человека был свой ID. Это уберет мерцание рамок, когда модель теряет объект на один кадр
  • Настройка NMS: подправить параметры склейки пересекающихся рамок, чтобы в плотной толпе не было дублей.
  1. Данные и железо
  • Можно дообучить модель на датасете CrowdHuman (он как раз про толпу)
  • Если есть видеокарта с CUDA, будет в разы быстрее.

Итог Код написан чисто, модульно и готов к работе. Для базовой задачи детекции этого достаточно, а точность можно поднять за счет более тяжелых моделей или дообучения.