跳转至内容

目标检测

对象检测示例

目标检测是一项涉及识别图像或视频流中目标的位置和类别的任务。

目标检测器的输出是一组边界框,这些边界框包围了图像中的目标,以及每个框的类别标签和置信度分数。当您需要在场景中识别感兴趣的目标,但不需要确切知道目标在哪里或其确切形状时,目标检测是一个不错的选择。



观看: 使用预训练的 Ultralytics YOLO 模型进行目标检测。

提示

YOLO11 Detect 模型是默认的 YOLO11 模型,即。 yolo11n.pt 并且在以下数据集上进行了预训练 COCO.

模型

此处显示了 YOLO11 预训练的检测模型。检测、分割和姿势估计模型在 COCO 数据集上进行了预训练,而分类模型在 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 实例进行平均计算得出的。
    如需重现结果,请通过 yolo val detect data=coco.yaml batch=1 device=0|cpu

训练

在COCO8数据集上训练 YOLO11n 模型 100 个 epochs,图像大小为 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 格式,请使用 Ultralytics 提供的 JSON2YOLO 工具。

验证

验证训练后的 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 允许将模型导出为各种格式,如 ONNXTensorRTCoreML 等,以确保跨不同平台和设备的兼容性。

示例

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. 预训练模型:利用在流行的COCOImageNet等数据集上预训练的模型,以加快开发速度。
  2. 高精度:实现令人印象深刻的 mAP 分数,确保可靠的对象检测。
  3. 速度:针对实时推理进行了优化,使其成为需要快速处理的应用的理想选择。
  4. 灵活性:将模型导出为 ONNX 和 TensorRT 等各种格式,以便在多个平台上进行部署。

请浏览我们的博客,了解 YOLO11 在实际应用中的用例和成功案例。



📅 创建于 1 年前 ✏️ 更新于 5 个月前

评论