Ultralytics YOLO27:
Get Started

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

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



Смотри: Осваиваем Ultralytics YOLO: Python

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

Python
from ultralytics import YOLO

# Создать новую модель YOLO с нуля
model = YOLO("yolo26n.yaml")

# Загрузить предварительно обученную модель YOLO (рекомендуется для обучения)
model = YOLO("yolo26n.pt")

# Обучить модель на наборе данных 'coco8.yaml' в течение 3 эпох
results = model.train(data="coco8.yaml", epochs=3)

# Оценить производительность модели на проверочной выборке
results = model.val()

# Выполнить обнаружение объектов на изображении с помощью модели
results = model("https://ultralytics.com/images/bus.jpg")

# Экспортировать модель в формат ONNX
success = model.export(format="onnx")

Обучение#

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

Обучение
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # передать любой тип модели
results = model.train(epochs=5)

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

Валидация#

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

Валидация
from ultralytics import YOLO

# Загрузить модель YOLO
model = YOLO("yolo26n.yaml")

# Обучить модель
model.train(data="coco8.yaml", epochs=5)

# Проверить на валидационной части обучающего набора данных
model.val()

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

Предсказание#

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

Предсказание
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# принимает все форматы — изображение/каталог/Path/URL/видео/PIL/ndarray. 0 — веб-камера
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Отобразить предсказания. Принимает все аргументы YOLO predict

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # сохранить визуализированные изображения

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # сохранить предсказания в виде меток

# из списка PIL/ndarray
results = model.predict(source=[im1, im2])

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

Экспорт#

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

Экспорт

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

from ultralytics import YOLO

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

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

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

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

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

# Загрузить модель
model = YOLO("yolo26n.pt")  # загрузить официальную модель обнаружения объектов
model = YOLO("yolo26n-seg.pt")  # загрузить официальную модель сегментации
model = YOLO("path/to/best.pt")  # загрузить пользовательскую модель

# Отслеживать объекты с помощью модели
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_top1 (для классификации), а также о времени инференса в миллисекундах на изображение для различных форматов экспорта, таких как ONNX, OpenVINO, TensorRT и других. Эта информация помогает выбрать оптимальный формат экспорта для конкретного сценария использования с учётом требований к скорости и точности.

Бенчмарк

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

from ultralytics.utils.benchmarks import benchmark

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

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

Использование тренеров#

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

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

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # путь к best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Продолжить прерванное обучение с последней контрольной точки
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

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

Руководства по настройке

Часто задаваемые вопросы#

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

    from ultralytics import YOLO
    
    # Загрузить предварительно обученную модель YOLO
    model = YOLO("yolo26n.pt")
    
    # Выполнить обнаружение объектов на изображении
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Визуализировать результаты
    for result in results:
        result.show()

    Больше подробных примеров смотри в разделе Режим Predict.

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

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

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

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

    from ultralytics import YOLO
    
    # Загрузить модель YOLO
    model = YOLO("yolo26n.yaml")
    
    # Обучить модель на пользовательском наборе данных
    model.train(data="path/to/your/dataset.yaml", epochs=10)

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

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

    from ultralytics import YOLO
    
    # Загрузить модель YOLO
    model = YOLO("yolo26n.pt")
    
    # Экспортировать модель в формат ONNX
    model.export(format="onnx")

    Различные варианты экспорта описаны в документации по Режиму Export.

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

    from ultralytics import YOLO
    
    # Загрузить модель YOLO
    model = YOLO("yolo26n.yaml")
    
    # Обучить модель
    model.train(data="coco8.yaml", epochs=5)
    
    # Проверить модель на другом наборе данных
    model.val(data="path/to/separate/data.yaml")

    Подробные примеры и инструкции смотри на странице Режим Val.

Комментарии