Использование Python

Добро пожаловать в документацию по использованию Ultralytics YOLO в Python! Это руководство поможет тебе легко интегрировать Ultralytics YOLO в твои проекты на Python для обнаружения объектов, сегментации и классификации. Здесь ты узнаешь, как загружать и использовать предобученные модели, обучать новые и выполнять предсказания на изображениях. Простой в использовании интерфейс Python — это ценный ресурс для тех, кто хочет внедрить YOLO в свои проекты, позволяющий быстро реализовать передовые возможности обнаружения объектов. Давай начнем!



Watch: Mastering Ultralytics YOLO: Python

Например, ты можешь загрузить модель, обучить её, оценить её производительность на валидационном наборе данных и даже экспортировать её в формат ONNX всего несколькими строками кода.

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")

Обучение (Train)

Режим обучения (Train) используется для обучения модели YOLO на собственном наборе данных. В этом режиме модель обучается с использованием заданного набора данных и гиперпараметров. Процесс обучения включает оптимизацию параметров модели, чтобы она могла точно предсказывать классы и местоположение объектов на изображении.

Обучение (Train)
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

Примеры обучения

Валидация (Val)

Режим валидации (Val) используется для проверки модели YOLO после её обучения. В этом режиме модель оценивается на валидационном наборе данных для измерения её точности и способности к обобщению. Этот режим можно использовать для настройки гиперпараметров модели с целью повышения её производительности.

Валидация (Val)
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

Примеры валидации

Прогнозирование

Режим предсказания (Predict) используется для выполнения предсказаний с помощью обученной модели YOLO на новых изображениях или видео. В этом режиме модель загружается из файла контрольной точки, а ты можешь предоставить изображения или видео для вывода (инференса). Модель предсказывает классы и местоположение объектов на входных данных.

Прогнозирование
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

Примеры предсказания

Экспорт (Export)

Режим экспорта (Export) используется для экспорта модели YOLO в формат, подходящий для развертывания. В этом режиме модель преобразуется в формат, который можно использовать в других программных приложениях или на аппаратных устройствах. Этот режим полезен при развертывании модели в производственных средах.

Экспорт (Export)

Экспортируй официальную модель YOLO в ONNX с динамическим размером пакета (batch-size) и размером изображения.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

Примеры экспорта

Отслеживание

Режим отслеживания (Track) используется для отслеживания объектов в реальном времени с помощью модели YOLO. В этом режиме модель загружается из файла контрольной точки, и ты можешь предоставить поток видео в реальном времени для выполнения трекинга. Этот режим полезен для таких приложений, как системы видеонаблюдения или беспилотные автомобили.

Отслеживание
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-seg.pt")  # load an official segmentation model
model = YOLO("path/to/best.pt")  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Примеры отслеживания

Бенчмарк

Режим бенчмарка (Benchmark) используется для профилирования скорости и точности различных форматов экспорта для YOLO. Бенчмарки предоставляют информацию о размере экспортированного формата, его метриках mAP50-95 (для обнаружения объектов и сегментации) или accuracy_top5 (для классификации), а также время инференса в миллисекундах на изображение для различных форматов, таких как ONNX, OpenVINO, TensorRT и других. Эта информация поможет тебе выбрать оптимальный формат экспорта для твоей конкретной задачи, исходя из требований к скорости и точности.

Бенчмарк

Протестируй официальную модель YOLO во всех форматах экспорта.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

Примеры бенчмарка

Использование тренеров (Trainers)

Класс модели YOLO служит высокоуровневой оболочкой для классов Trainer. У каждой задачи YOLO есть свой тренер, который наследуется от BaseTrainer. Эта архитектура обеспечивает большую гибкость и возможность настройки в твоих рабочих процессах машинного обучения.

Пример тренера для обнаружения объектов
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)

Ты можешь легко настроить тренеры для поддержки пользовательских задач или для исследования идей в области R&D. Модульная конструкция Ultralytics YOLO позволяет адаптировать фреймворк под твои конкретные нужды, работаешь ли ты над новой задачей компьютерного зрения или донастраиваешь существующие модели для достижения лучших результатов.

Учебники по настройке

Часто задаваемые вопросы (FAQ)

Как интегрировать YOLO в мой проект на Python для обнаружения объектов?

Интегрировать Ultralytics YOLO в проекты на Python просто. Ты можешь загрузить предобученную модель или обучить новую с нуля. Вот как начать:

from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")

# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Visualize the results
for result in results:
    result.show()

Более подробные примеры смотри в нашем разделе Режим предсказания (Predict Mode).

Какие режимы доступны в YOLO?

Ultralytics YOLO предоставляет различные режимы для разных рабочих процессов машинного обучения. К ним относятся:

  • Train: Обучение модели на собственных наборах данных.
  • Val: Валидация производительности модели на проверочном наборе.
  • Predict: Выполнение предсказаний на новых изображениях или видеопотоках.
  • Export: Экспорт моделей в различные форматы, такие как ONNX и TensorRT.
  • Track: Отслеживание объектов в реальном времени в видеопотоках.
  • Benchmark: Сравнительный анализ производительности модели в разных конфигурациях.

Каждый режим разработан для обеспечения всесторонних функциональных возможностей на разных этапах разработки и развертывания моделей.

Как обучить пользовательскую модель YOLO, используя мой набор данных?

Чтобы обучить пользовательскую модель YOLO, тебе нужно указать свой набор данных и другие гиперпараметры. Вот краткий пример:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.yaml")

# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)

Для получения дополнительных сведений об обучении и ссылок на примеры использования посети нашу страницу Режим обучения (Train Mode).

Как экспортировать модели YOLO для развертывания?

Экспорт моделей YOLO в формат, подходящий для развертывания, прост благодаря функции export. Например, ты можешь экспортировать модель в формат ONNX:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")

Для ознакомления с различными вариантами экспорта обратись к документации Режим экспорта (Export Mode).

Могу ли я проверить (валидировать) мою модель YOLO на других наборах данных?

Да, валидация моделей YOLO на других наборах данных возможна. После обучения ты можешь использовать режим валидации для оценки производительности:

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")

Проверь страницу Режим валидации (Val Mode) для получения подробных примеров и использования.

Комментарии