Обнаружение объектов
Обнаружение объектов — это задача, которая включает в себя определение местоположения и класса объектов на изображении или в видеопотоке.
Результатом работы детектора объектов является набор ограничивающих рамок, которые заключают объекты на изображении, а также метки классов и оценки достоверности для каждой рамки. Обнаружение объектов — хороший выбор, когда вам нужно идентифицировать интересующие объекты в сцене, но вам не нужно точно знать, где находится объект или его точную форму.
Смотреть: Обнаружение объектов с помощью предварительно обученной модели 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 на пользовательском наборе данных включает несколько этапов:
- Подготовьте набор данных: убедитесь, что ваш набор данных находится в формате YOLO. Для получения инструкций обратитесь к нашему Руководству по наборам данных.
- Загрузка модели: Используйте библиотеку Ultralytics YOLO для загрузки предварительно обученной модели или создания новой модели из YAML-файла.
- Обучение модели: Выполните метод
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 разработан для обеспечения современной производительности в задачах обнаружения объектов, сегментации и оценки позы. Вот некоторые ключевые преимущества:
- Предварительно обученные модели: Используйте модели, предварительно обученные на популярных наборах данных, таких как COCO и ImageNet для более быстрой разработки.
- Высокая точность: Достигает впечатляющих показателей mAP, обеспечивая надежное обнаружение объектов.
- Скорость: Оптимизирована для инференса в реальном времени, что делает ее идеальной для приложений, требующих быстрой обработки.
- Гибкость: Экспортируйте модели в различные форматы, такие как ONNX и TensorRT, для развертывания на различных платформах.
Посетите наш Блог, чтобы ознакомиться с примерами использования и историями успеха YOLO11 в действии.