Ultralytics YOLO27:

Обнаружение объектов с помощью Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

Обнаружение объектов — это задача, которая включает определение местоположения и класса объектов на изображении или в видеопотоке.

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



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Совет

Модели YOLO26 Detect — это стандартные модели YOLO26, то есть yolo26n.pt, предварительно обученные на COCO.

Модели#

Здесь представлены предварительно обученные модели YOLO26 Detect. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, модели Semantic — на Cityscapes, а модели Classify — на наборе данных ImageNet.

Модели автоматически загружаются из последнего релиза Ultralytics при первом использовании.

Модельразмер
(пиксели)
mAPval
50-95
mAPval
50-95(e2e)
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPval значения приводятся для одной модели в одном масштабе на датасете COCO val2017.
    Воспроизведи результат с помощью yolo val detect data=coco.yaml device=0. Добавь nms=False, чтобы воспроизвести столбец e2e.
  • Значение скорости усреднено по изображениям COCO val с использованием экземпляра Amazon EC2 P4d.
    Воспроизвести можно с помощью yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False
  • Значения Params и FLOPs приводятся для слитных моделей после свертки/пакетной нормализации (Conv/BatchNorm folding) и удаления неиспользуемой ветки детекции. Предварительно обученные контрольные точки сохраняют полную архитектуру обучения и могут показывать большие значения.

Смотри предварительный просмотр unreleased YOLO27 для предварительных результатов детектирования COCO.

Обучение#

Обучи YOLO26n на наборе данных COCO8 в течение 100 эпох с размером изображения 640. Полный список доступных аргументов приведён на странице Configuration.

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Полное описание режима train смотри на странице Train. Модели обнаружения также можно обучать с помощью облачного обучения Ultralytics Platform.

Формат датасета#

Формат датасета детектирования YOLO подробно описан в руководстве по датасетам. Чтобы конвертировать существующий датасет COCO в формате JSON в формат YOLO, используй встроенную функцию convert_coco, описанную в руководстве по переходу от COCO к YOLO. Ты также можешь размечать датасеты детектирования и управлять ими с помощью инструментов разметки на базе ИИ на платформе Ultralytics Platform.

Val#

Проверь точность обученной модели YOLO26n на наборе данных COCO8. Аргументы не требуются, поскольку model сохраняет параметры обучения data и аргументы в качестве атрибутов модели.

Пример
from ultralytics import YOLO

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

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Predict#

Используй обученную модель YOLO26n для выполнения предсказаний на изображениях.

Пример
from ultralytics import YOLO

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

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box

Полное описание режима predict см. на странице Predict.

Выходные данные результатов#

Обнаружение объектов возвращает один объект Results для каждого изображения. Основным полем предсказания является result.boxes, которое содержит координаты рамок, идентификаторы классов и оценки уверенности для каждого обнаруженного объекта.

АтрибутТипФормаОписание
result.boxesBoxes(N)Рамки обнаруженных объектов.
result.boxes.datatorch.float32(N,6/7)Исходный [x1,y1,x2,y2,conf,cls] и необязательный идентификатор отслеживания.
result.boxes.xyxytorch.float32(N,4)Пиксельные рамки xyxy.
result.boxes.conftorch.float32(N,)Оценки уверенности.
result.boxes.clstorch.float32(N,)Идентификаторы классов; преобразуй их в int, чтобы получить имена.

Описание специфичных для задач полей Results для всех задач см. в разделе Результаты предсказаний по задачам.

Экспорт#

Экспортируй модель YOLO26n в другой формат, например ONNX, CoreML и другие.

Пример
from ultralytics import YOLO

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

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

Доступные форматы экспорта YOLO26 приведены в таблице ниже. Ты можешь экспортировать модель в любой формат с помощью аргумента format, например format='onnx' или format='engine'. Ты можешь выполнять предсказания или валидацию непосредственно на экспортированных моделях, например yolo predict model=yolo26n.onnx. После завершения экспорта для твоей модели будут показаны примеры использования.

ФорматАргумент formatМодельМетаданныеАргументы
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None по умолчанию выдает сырые результаты для внешнего NMS. Установи nms=False, чтобы выбрать доступный головной модуль без NMS; неподдерживаемые форматы возвращаются к своему родному пути вывода. Записи nms выше определяют форматы, которые могут встраивать NMS с помощью nms=True.

Полное описание export см. на странице Экспорт.

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

  • Да. В кратком руководстве по Ultralytics Platform описан рабочий процесс в браузере для разметки наборов данных, обучения моделей обнаружения на облачных GPU и их развёртывания на конечных точках инференса.

  • Обучение модели YOLO26 на собственном наборе данных включает несколько этапов:

    1. Подготовь набор данных: убедись, что твой набор данных имеет формат YOLO. Инструкции смотри в нашем руководстве по наборам данных.
    2. Загрузи модель: используй библиотеку Ultralytics YOLO, чтобы загрузить предварительно обученную модель или создать новую модель из YAML-файла.
    3. Обучи модель: выполни метод train в Python или команду yolo detect train в CLI.
    Пример
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n.pt")
    
    # Train the model on your custom dataset
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

    Подробные параметры конфигурации смотри на странице Configuration.

  • Ultralytics YOLO26 предлагает различные предварительно обученные модели для обнаружения объектов, сегментации экземпляров, семантической сегментации и оценки позы. Эти модели предварительно обучены на наборе данных COCO, на Cityscapes для задач семантической сегментации или на ImageNet для задач классификации. Вот некоторые из доступных моделей:

    Подробный список и метрики производительности смотри в разделе Models.

  • Чтобы проверить точность обученной модели YOLO26, ты можешь использовать метод .val() в Python или команду yolo detect val в CLI. Это предоставит такие метрики, как mAP50-95, mAP50 и другие.

    Пример
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("path/to/best.pt")
    
    # Validate the model
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    Подробнее о валидации смотри на странице Val.

  • Ultralytics YOLO26 позволяет экспортировать модели в различные форматы, такие как ONNX, TensorRT, CoreML и другие, чтобы обеспечить совместимость с различными платформами и устройствами.

    Пример
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    Полный список поддерживаемых форматов и инструкции смотри на странице Export.

  • Ultralytics YOLO26 разработан для обеспечения передовой производительности в задачах обнаружения объектов, сегментации экземпляров, семантической сегментации и оценки позы. Вот несколько ключевых преимуществ:

    1. Предварительно обученные модели: используй модели, предварительно обученные на популярных наборах данных, таких как COCO и ImageNet, для ускорения разработки.
    2. Высокая точность: модели обеспечивают впечатляющие значения mAP, гарантируя надёжное обнаружение объектов.
    3. Скорость: оптимизация для инференса в реальном времени делает эти модели идеальными для приложений, требующих быстрой обработки.
    4. Гибкость: экспортируй модели в различные форматы, такие как ONNX и TensorRT, для развёртывания на разных платформах.

    Изучи наш блог, чтобы узнать о вариантах использования и историях успеха, демонстрирующих YOLO26 в работе.

Комментарии