Этот проект — реализация системы компьютерного зрения, которая определяет пересечение людьми границ запретной зоны. Решение базируется на YOLOv8 для детекции и кастомной логике на OpenCV, которая анализирует вхождение человека в зону с помощью многоточечной проверки.
- Детекция объектов: Использование модели YOLOv8m для точного определения людей.
- Многоточечная проверка (Grid Check): Вместо проверки одной точки, алгоритм анализирует 9 контрольных точек на теле человека:
- 3 уровня высоты: Низ, 25% от низа, 50% от низа.
- 3 позиции по ширине: Левый край, Центр, Правый край.
- Высокая чувствительность: Благодаря проверке сеткой точек, система фиксирует нарушение, даже если в зону попала только часть тела, а не только центр.
- Инерция тревоги: Сигнал ALARM остается активным в течение 3 секунд после выхода нарушителя. Это предотвращает "мигание" интерфейса при кратковременной потере детекции.
- Полная визуализация: Отрисовка зоны охраны, статусов и сохранение итогового видео без потери кадров.
yolo_project/
├── main.py # Точка входа: цикл обработки видео, YOLO, запись результата
├── detect.py # Математическая логика проверки вхождения точек в полигон
├── zone_identify.py # Утилита для ручной разметки зоны (zone_identify)
├── restricted_zones.json # Файл с сохраненными координатами зоны
├── architecture.md # Описание архитектурных решений
├── requirements.txt # Список зависимостей
├── test_video.mp4 # Исходное видео
└── result_video.mp4 # Результат работы алгоритма
- Клонирование репозитория git clone https://github.com/Mars0414/yolo_project.git cd yolo_project
- Установка зависимостей pip install -r requirements.txt (Если вы используете Git LFS): git lfs install git lfs pull
Python 3.11+ Ultralytics YOLO (Computer Vision) OpenCV (Image Processing) NumPy (Math)