Детектор людей на видео
Простая система на базе YOLOv8, которая находит людей на видео и рисует рамки вокруг них.
Что умеет проект:
- Быстро находит людей в кадре
- Обрабатывает обычные MP4 файлы
- Делает аккуратную отрисовку (рамки не мешают смотреть видео)
- Все настройки (модели, пороги) можно менять при запуске.
Структура папок
- data/ — исходное видео
- results/ — здесь появится готовый результат
- src/ — логика детектора и обработчика видео
- main.py — файл для запуска проекта
- requirements.txt — список нужных библиотек
- ANALYSIS.md — мои мысли по качеству и улучшениям.
Как запустить
- Клонировать репозиторий: bash git clone https://github.com/Marina-tomato/crowd_detection_test.git cd crowd_detection_test
- Поднять виртуальное окружение: python -m venv venv Активация (Windows): venv\Scripts\activate Активация (Mac/Linux): source venv/bin/activate
- Поставить библиотеки: pip install -r requirements.txt
Запуск детекции
Самый простой вариант: python main.py data/crowd.mp4
Дополнительные настройки:
- Изменить путь сохранения: --output results/video.mp4
- Выбрать модель помощнее: --model yolov8s.pt
- Изменить порог уверенности (0.1 — видит всех, 0.9 — только тех, в ком уверен): --confidence 0.4
В проекте три части:
- Детектор (src/detector.py): отвечает за работу нейронки. Я настроила его так, чтобы он оставлял только класс «человек»
- Обработчик (src/video_processor.py): открывает видео через OpenCV, проходит по кадрам, рисует рамки и сохраняет всё в новый файл
- Точка входа (main.py): собирает всё воедино и обрабатывает команды из консоли.
Почему я выбрала YOLOv8? Она сейчас одна из самых популярных: быстрая, точная и очень простая в установке. Для тестового задания — идеальный вариант.
Если что-то не работает
- Если модель не качается - проверьте интернет
- Если видео не открывается - проверьте, стоит ли OpenCV
- Если мало находит людей - попробуйте уменьшить --confidence.
Результаты работы Обработанное видео и исходный файл доступны по ссылке на Яндекс.Диске (из-за ограничений GitHub на размер файлов):
Дальнейшие планы Было бы интересно добавить счетчик людей в реальном времени и тепловую карту (heatmap), чтобы видеть, где чаще всего стоят люди