检测#

检测是 YOLOv11 支持的主要任务。它涉及在图像或视频帧中检测对象,并在它们周围绘制边界框。根据特征,被检测到的对象被分类为不同的类别。YOLOv11 能够在单个图像或视频帧中以高精度和速度检测多个对象。

目标检测的输出是一组边界框,这些框包围了图像中的物体,并且每个框都带有类别标签和置信度分数。当您需要识别场景中感兴趣的对象,但又不需要确切知道对象的位置或其精确形状时,目标检测是很好的选择。

小技巧

YOLOv11检测模型是默认的YOLOv11模型,即yolo11n.pt,这些模型是在 COCO 数据集上预训练的。

模型#

此处展示了YOLOv11预训练的检测模型。检测、分割和姿态估计模型是在COCO数据集上进行预训练的,而分类模型则是在ImageNet数据集上进行预训练。

模型会在首次使用时自动从最新的Ultralytics发布中下载。

模型

尺寸(像素)

mAP值

CPU ONNX速度(毫秒)

T4 TensorRT10速度(毫秒)

参数量(百万)

计算量(十亿次浮点运算)

YOLOv11n

640

39.5

56.1 ± 0.8

1.5 ± 0.0

2.6

6.5

YOLOv11s

640

47.0

90.0 ± 1.2

2.5 ± 0.0

9.4

21.5

YOLOv11m

640

51.5

183.2 ± 2.0

4.7 ± 0.1

20.1

68.0

YOLOv11l

640

53.4

238.6 ± 1.4

6.2 ± 0.1

25.3

86.9

YOLOv11x

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 命令复现。

  • 速度是在Amazon EC2 P4d实例上使用COCO验证图像平均得出的。可以通过yolo val detect data=coco.yaml batch=1 device=0|cpu 命令复现。

训练#

在COCO8数据集上训练YOLOv11n模型,进行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)

数据集格式#

YOLO 检测数据集格式的详细信息可以在数据集指南中找到。要将您现有的其他格式(例如COCO等)数据集转换为YOLO格式,请使用Ultralytics提供的JSON2YOLO工具。

验证#

验证在COCO8数据集上训练的YOLOv11n模型的准确性。由于model保留了其训练数据和参数作为模型属性,因此无需额外参数。

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

预测#

使用训练有素的YOLOv11n模型对图像进行预测。

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