Ultralytics YOLO27:
Get Started

Обнаружение объектов с Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

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

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



Смотри: Обнаружение объектов с предварительно обученной моделью Ultralytics YOLO.
Совет

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

Модели#

Ниже представлены модели YOLO26 Detect, предварительно обученные на датасете COCO.

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

Модельразмер
(пиксели)
mAPval
50-95
mAPвалидация
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 detect val data=coco.yaml device=0. Добавь nms=False, чтобы воспроизвести данные в столбце e2e.
  • Скорость рассчитана как среднее значение по изображениям COCO val: ONNX на CPU и TensorRT10 на GPU NVIDIA T4.
    Воспроизведи результаты с помощью yolo detect val data=coco.yaml batch=1 device=0|cpu nms=False.
  • Значения Params и FLOPs указаны для объединённых моделей после свёртки Conv/BatchNorm и удаления неиспользуемой ветви обнаружения. Предварительно обученные контрольные точки сохраняют полную архитектуру обучения, поэтому их показатели могут быть выше.

Предварительные результаты обнаружения объектов на COCO см. в предварительной версии YOLO27, ещё не выпущенной.

Обучение#

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

Пример
from ultralytics import YOLO

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

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

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

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

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

Валидация#

Проверь точность обученной модели YOLO26n. Аргументы не нужны: model сохраняет параметры обучения data и аргументы как атрибуты модели; path/to/best.pt из примера Обучение выполняет проверку на COCO8. В официальных весах указан путь к датасету обучения, которого нет на твоём компьютере, поэтому вместо него используется датасет задачи по умолчанию coco8.yaml и выводится предупреждение. Передай data, чтобы проверить модель на другом датасете.

Пример
from ultralytics import YOLO

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

# Валидировать модель
metrics = model.val()  # аргументы не нужны, набор данных и настройки сохранены
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # список значений mAP50-95 для каждой категории
metrics.box.image_metrics  # словарь метрик для каждого изображения: precision, recall, F1, TP, FP и FN

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

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

Пример
from ultralytics import YOLO

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

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

# Обратись к результатам
for result in results:
    xywh = result.boxes.xywh  # центр-x, центр-y, ширина, высота
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # левый верхний угол-x, левый верхний угол-y, правый нижний угол-x, правый нижний угол-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # название класса каждой рамки
    confs = result.boxes.conf  # оценка уверенности каждой рамки

Полное описание режима 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

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

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

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

ФорматАргумент formatМодельМетаданныеАргументы
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, 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.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

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

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

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

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

  • Обучение модели YOLO26 на собственном датасете состоит из нескольких шагов:

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

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

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

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

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

    Пример
    from ultralytics import YOLO
    
    # Загрузи модель
    model = YOLO("path/to/best.pt")
    
    # Валидировать модель
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    Подробности проверки см. на странице Проверка.

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

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

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

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

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

    Примеры использования YOLO26 и истории успеха смотри в нашем блоге.

Комментарии