ФАЙЛ "YOLO.PY"
Данный код использует модель YOLOv8n для обнаружения объектов в видеопотоке и передает данные о них (bounding box, уверенность, классы) на сервер в формате JSON. В случае ошибки соединение с сервером закрывается корректно.
ИМПОРТ БИБЛИОТЕК
sys
: Импортируется для работы с аргументами командной строки.socket
: Импортируется для создания и управления сетевыми соединениями.json
: Импортируется для работы с данными в формате JSON.YOLO
изultralytics
: Импортируется для использования модели YOLOv8n.
ИНИЦИАЛИЗАЦИЯ МОДЕЛИ YOLOv8n
Загружается предварительно обученная модель YOLOv8n из файла yolov8n.pt
.
ПОДКЛЮЧЕНИЕ К СЕРВЕРУ
Проверяется, есть ли аргументы командной строки. Если аргументы есть, извлекаются данные порта и RTSP URL из последнего аргумента. Создается сокет и подключается к серверу по указанному IP-адресу и порту. Если аргументов нет, выводится сообщение "данных нет" и программа завершается.
ОСНОВНАЯ ЧАСТЬ КОДА
В блоке try
:
Запускается обработка видеопотока с использованием модели YOLO.
Для каждого кадра извлекаются данные о bounding box (
boxes
), уверенности (conf
) и классах (cls
).Данные упаковываются в словарь
data
.Если данные отсутствуют (
boxes
,conf
,cls
пусты), словарьdata
устанавливается вNone
.Данные конвертируются в JSON-строку и отправляются на сервер.
В блоке except
:
Если возникает ошибка, она выводится в консоль.
В блоке finally
:
Сокет закрывается после завершения работы или при возникновении ошибки.
Процесс подготовки кода:
Создайте файл и назовите yolo.py
Поэтапно скопируйте код в файл
Установка библиотек: в данном случае не предустановлена библиотека ultralytics. Если она у вас не скачана, следуйте этим шагам:
Откройте терминал VS Code (Terminal -> New Termial или комбинацией Ctrl + Shift + `)
В терминале поочередно введите и запустите следующие команды: pip install ultralytics
Last updated