Программирование с использованием нейронной сети 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

results matching ""

    No results matching ""