Перейти к содержанию

Обнаружение объектов

Примеры обнаружения объектов

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

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



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

Совет

Модели YOLO11 Detect являются моделями YOLO11 по умолчанию, то есть yolo11n.pt и предварительно обучены на COCO.

Модели

Предварительно обученные модели YOLO11 Detect показаны здесь. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, а модели Classify — на наборе данных ImageNet.

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

Модель размер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLO11n 640 39.5 56.1 ± 0.8 1.5 ± 0.0 2.6 6.5
YOLO11s 640 47.0 90.0 ± 1.2 2.5 ± 0.0 9.4 21.5
YOLO11m 640 51.5 183.2 ± 2.0 4.7 ± 0.1 20.1 68.0
YOLO11l 640 53.4 238.6 ± 1.4 6.2 ± 0.1 25.3 86.9
YOLO11x 640 54.7 462.8 ± 6.7 11.3 ± 0.2 56.9 194.9
  • mAPval значения для одномодельной одномасштабной модели на COCO val2017 наборе данных.
    Воспроизвести с помощью yolo val detect data=coco.yaml device=0
  • Скорость в среднем по изображениям COCO val с использованием Amazon EC2 P4d instance.
    Воспроизвести с помощью yolo val detect data=coco.yaml batch=1 device=0|cpu

Обучение

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

Пример

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Формат набора данных

Подробное описание формата набора данных для обнаружения YOLO можно найти в Руководстве по наборам данных. Чтобы преобразовать существующий набор данных из других форматов (например, COCO и т. д.) в формат YOLO, используйте инструмент JSON2YOLO от Ultralytics.

Валидация

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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 contains map50-95 of each category
yolo detect val model=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

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

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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
yolo detect predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'      # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Смотрите полную информацию о predict деталях режима в Прогнозирование странице.

Экспорт

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

Пример

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

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

Формат format Аргумент Модель Метаданные Аргументы
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, half, dynamic, optimize, nms, batch, device
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n.pb imgsz, batch, device
TF Lite tflite yolo11n.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch, device
MNN mnn yolo11n.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n_rknn_model/ imgsz, batch, name, device

Смотрите полную информацию о export подробности в Экспорт странице.

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

Как обучить модель YOLO11 на моем пользовательском наборе данных?

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

  1. Подготовьте набор данных: убедитесь, что ваш набор данных находится в формате YOLO. Для получения инструкций обратитесь к нашему Руководству по наборам данных.
  2. Загрузка модели: Используйте библиотеку Ultralytics YOLO для загрузки предварительно обученной модели или создания новой модели из YAML-файла.
  3. Обучение модели: Выполните метод train в python или команду yolo detect train в CLI.

Пример

from ultralytics import YOLO

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

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

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

Какие предварительно обученные модели доступны в YOLO11?

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

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

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

Чтобы проверить точность вашей обученной модели YOLO11, вы можете использовать команду .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
yolo detect val model=path/to/best.pt

Для получения более подробной информации о валидации посетите страницу Val.

В какие форматы я могу экспортировать модель YOLO11?

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

Пример

from ultralytics import YOLO

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

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

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

Почему я должен использовать Ultralytics YOLO11 для обнаружения объектов?

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

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

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



📅 Создано 1 год назад ✏️ Обновлено 5 месяцев назад

Комментарии