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

Обнаружение объектов — это задача, которая включает в себя определение местоположения и класса объектов на изображении или в видеопотоке.
Результатом работы детектора объектов является набор ограничивающих рамок, которые заключают объекты на изображении, а также метки классов и оценки достоверности для каждой рамки. Обнаружение объектов — хороший выбор, когда вам нужно идентифицировать интересующие объекты в сцене, но вам не нужно точно знать, где находится объект или его точную форму.
Смотреть: Обнаружение объектов с помощью предварительно обученной модели Ultralytics YOLO.
Совет
Модели YOLO26 Detect являются моделями YOLO26 по умолчанию, т.е., yolo26n.pt, и предварительно обучены на COCO.
Модели
Здесь показаны предварительно обученные модели YOLO26 Detect. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, в то время как модели Classify предварительно обучены на наборе данных ImageNet.
Модели загружаются автоматически из последнего релиза Ultralytics при первом использовании.
| Модель | размер (пиксели) | mAPval 50-95 | mAPval 50-95(e2e) | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.4 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.7 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.2 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.4 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 193.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
Обучение
Обучите YOLO26n на наборе данных COCO8 в течение 100 эпох при размере изображения 640. Полный список доступных аргументов см. на странице Конфигурация.
Пример
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)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo26n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo26n.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=yolo26n.yaml pretrained=yolo26n.pt epochs=100 imgsz=640
Формат набора данных
Подробное описание формата набора данных для detect YOLO можно найти в Руководстве по наборам данных. Чтобы преобразовать существующий набор данных из других форматов (например, COCO и т.д.) в формат YOLO, используйте инструмент JSON2YOLO от Ultralytics.
Валидация
Проверьте обученную модель 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
yolo detect val model=yolo26n.pt # val official model
yolo detect val model=path/to/best.pt # val custom model
Прогнозирование
Используйте обученную модель 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
yolo detect predict model=yolo26n.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 деталях режима в Прогнозирование странице.
Экспорт
Экспортируйте модель 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")
yolo export model=yolo26n.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
Доступные форматы экспорта YOLO26 приведены в таблице ниже. Вы можете экспортировать в любой формат, используя format аргумент, т.е., format='onnx' или format='engine'Вы можете выполнять предсказания или валидацию непосредственно на экспортированных моделях, т.е., yolo predict model=yolo26n.onnx. Примеры использования отображаются для вашей модели после завершения экспорта.
| Формат | format Аргумент | Модель | Метаданные | Аргументы |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Смотрите полную информацию о export подробности в Экспорт странице.
Часто задаваемые вопросы
Как обучить модель YOLO26 на моем пользовательском наборе данных?
Обучение модели YOLO26 на пользовательском наборе данных включает несколько шагов:
- Подготовьте набор данных: убедитесь, что ваш набор данных находится в формате YOLO. Для получения инструкций обратитесь к нашему Руководству по наборам данных.
- Загрузка модели: Используйте библиотеку Ultralytics YOLO для загрузки предварительно обученной модели или создания новой модели из YAML-файла.
- Обучение модели: Выполните метод
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)
yolo detect train data=my_custom_dataset.yaml model=yolo26n.pt epochs=100 imgsz=640
Подробные параметры конфигурации можно найти на странице Конфигурация.
Какие предварительно обученные модели доступны в YOLO26?
Ultralytics YOLO26 предлагает различные предобученные модели для detect объектов, segment и оценки позы. Эти модели предобучены на наборе данных COCO или ImageNet для задач classify. Вот некоторые из доступных моделей:
Подробный список и показатели производительности можно найти в разделе Модели.
Как я могу проверить точность моей обученной модели YOLO?
Чтобы проверить точность вашей обученной модели 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
yolo detect val model=path/to/best.pt
Для получения более подробной информации о валидации посетите страницу Val.
В какие форматы я могу экспортировать модель YOLO26?
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")
yolo export model=yolo26n.pt format=onnx
Полный список поддерживаемых форматов и инструкции можно найти на странице Экспорт.
Почему я должен использовать Ultralytics YOLO26 для обнаружения объектов?
Ultralytics YOLO26 разработан для обеспечения передовой производительности для detect объектов, segment и оценки позы. Вот некоторые ключевые преимущества:
- Предобученные модели: Используйте модели, предобученные на популярных наборах данных, таких как COCO и ImageNet, для ускоренной разработки.
- Высокая точность: Достигает впечатляющих показателей mAP, обеспечивая надежный object detection.
- Скорость: Оптимизирована для инференса в реальном времени, что делает ее идеальной для приложений, требующих быстрой обработки.
- Гибкость: Экспортируйте модели в различные форматы, такие как ONNX и TensorRT, для развертывания на различных платформах.
Изучите наш Блог для примеров использования и историй успеха, демонстрирующих YOLO26 в действии.