YOLO Vision 2026:

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

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



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) используется для обучения модели YOLO на пользовательском наборе данных. В этом режиме модель обучается с использованием указанного набора данных и гиперпараметров. Процесс обучения включает оптимизацию параметров модели, чтобы она могла точно предсказывать классы и местоположения объектов на изображении.

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

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

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

Валидация#

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

Валидация
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) используется для экспорта модели YOLO в формат, пригодный для развертывания. В этом режиме модель конвертируется в формат, который могут использовать другие программные приложения или аппаратные устройства. Этот режим полезен при развертывании модели в производственных средах.

Экспорт

Экспортируй официальную модель YOLO в ONNX с динамическим размером пакета (batch-size) и размером изображения (image-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_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

# 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)

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

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

FAQ#

  • Интегрировать 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).

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

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

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

  • Чтобы обучить пользовательскую модель 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 в формат, подходящий для развертывания, прост с помощью функции 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 на разных наборах данных возможна. После обучения ты можешь использовать режим валидации для оценки производительности:

    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) для ознакомления с подробными примерами и использования.

Комментарии