Программирование с использованием нейронной сети YOLOv11
Для использования готовой модели в Python необходимо скачать библиотеки. Подробнее о скачивании зависимостей можно найти в документации Ultralytics или в прошлой главе об обучении нейросети.
Использование в Python
После установки библиотек мы можем использовать возможности нейронной сети в Python.
Если вы используете нейронную сеть у себя на компьютере, убедитесь, что у вас имеется .pt файл с весами вашей нейронной сети. Если вы используете нейронную сеть на Orange Pi 5, то сперва вам нужно экспортировать модель в поддерживаемый для Rockchip 3588 тип.
Из библиотеки Ultralytics импортируем YOLO:
from ultralytics import YOLO
Импортируем нашу модель в код, указывая путь к ней:
model = YOLO("./best.pt")
# Для Orange Pi 5 указываем папку с экспортированной моделью
# model = YOLO("./best_rknn_model/")
Теперь мы можем использовать модель для определения предметов. Например, мы можем запустить поток обработки видео с фронтальной камеры ноутбука или компьютера, указав параметр source=0, и выведем картинку на экран с помощью параметра show=True:
model.predict(source=0, show=True)
Также мы можем получить данные о предсказаниях нейронной сети с одной картинки, указав в source путь к картинке:
results = model(source="./test.jpg")
Помимо этого в source можно указать множество различных других источников, например ссылки на картинку в интернете, путь к видео или путь к папке где хранится несколько картинок или видео.
Из результата можно получить список найденных объектов:
boxes = results[0].boxes
Библиотека позволяет получить информацию о каждом из найденных объектов:
# выводит словарь из классов, которые есть в нейросети
print(model.names)
for box in boxes:
# положение объекта на картинке в формате: x и y координаты центра, w - ширина в пикселях, h - высота в пикселях
print(box.xywh)
# Положение объекта на картинке в формате: x, y координата левого верхнего угла и x, y координата правого нижнего угла
print(box.xyxy)
# confidence объекта - уверенность нейросети в правильности определения
print(box.conf)
# класс объекта
print(box.cls)
Итоговый код по обработке фото и выводе ее информации:
from ultralytics import YOLO
model = YOLO("./best.pt")
results = model(source="./image.png")
boxes = results[0].boxes
# выводит словарь из классов, которые есть в нейросети
print(model.names)
for box in boxes:
# положение объекта на картинке в формате: x и y координаты центра, w - ширина в пикселях, h - высота в пикселях
print(box.xywh)
# Положение объекта на картинке в формате: x, y координата левого верхнего угла и x, y координата правого нижнего угла
print(box.xyxy)
# confidence объекта - уверенность нейросети в правильности определения
print(box.conf)
# класс объекта
print(box.cls)
Подробнее об использовании нейросети на Python можно узнать в официальной документации Ultralytics