Для детекции людей в данном проекте используется модель YOLOv11 (You Only Look Once) с предобученными весами.
Пример работы программы приведен по ссылке.
- Скопируйте этот репозиторий:
git clone https://github.com/IvanKarpovich/computer_vision.git cd computer_vision
- Создайте виртуальную среду:
Установите в нее необходимые пакеты:
conda create --name computer_vision conda activate computer_vision
pip install -r requirements.txt
- Загрузите веса модели YOLOv1: yolo11n.pt (скрипт автоматически загружает модель YOLO, если она не найдена в директории проекта)
Запустите скрипт, используя следующую команду: python main.py [options]
--classes
: идентификаторы классов для обнаружения (по умолчанию: обнаруживаются только люди). 0 - только люди 1 - все доступные классы--input_video_path
: название видеофайла в директории с проектом (по умолчанию: «input.mp4»).--output_video_path
: название видеофайла с результатами детекции (по умолчанию: «output.mp4»).
Обнаружение только определённых классов (например, людей) в видеофайлах:
python main.py --classes 0 --input_video_path input.mp4 --output_video_path output.mp4
main.py
: основной скрипт, содержащий все классы и функции.YOLO_Object_Detection
: класс для работы с моделью YOLO, а также загрузки данных и параметров.
Обработанные видео сохраняются в указанной выходной директории. В каждом кадре отображается обнаруженные объекты с ограничивающими рамками и метками.
- Для большинства bounding box'ов уровень уверенности порядка 0.75
- VOLOv11 позволяет подсчитать количество объектов каждого детектируемого класса, однако некоторые bounding box'ы пропадают, а значит не возможно заниматься трекингом выделенного объекта в процессе всего видео.
- Нейросеть не распознает людей на заднем фоне, а только тех, что на переднем плане (можно было бы уменьшить порог уверенности, чтобы обнаруживать больше людей. но тогда будет больше и ложно положительных срабатываний). Также для детекции желательно, чтобы каждый объект не перекрывался другими предметами.
- Можно в последствии добавить возможность не только детекции людей, но и сегментации.