跳转至内容

目标检测

对象检测示例

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

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



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

提示

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

模型

这里显示的是YOLO11 预训练的 Detect 模型。Detect、Segment 和姿势估计 模型是在 COCO数据集上进行预训练,而 Classify 模型则在 ImageNet数据集进行预训练。

模型 首次使用时会自动从最新的 Ultralytics 版本 下载。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO11n64039.556.1 ± 0.81.5 ± 0.02.66.5
YOLO11s64047.090.0 ± 1.22.5 ± 0.09.421.5
YOLO11m64051.5183.2 ± 2.04.7 ± 0.120.168.0
YOLO11l64053.4238.6 ± 1.46.2 ± 0.125.386.9
YOLO11x64054.7462.8 ± 6.711.3 ± 0.256.9194.9
  • mAP 数值为单模型单尺度下的结果,基于 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 个历元训练,图像大小为 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 containing mAP50-95 for 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-
TorchScripttorchscriptyolo11n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo11n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo11n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo11n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo11n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo11n_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo11n.pbimgsz, batch, device
TF Litetfliteyolo11n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo11n_edgetpu.tfliteimgsz, device
TF.jstfjsyolo11n_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch, device
MNNmnnyolo11n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo11n_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo11n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo11n_executorch_model/imgsz, 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 命令。这将提供mAP50、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 在实际应用中的用例和成功案例。



📅 2 年前创建 ✏️ 24 天前更新
glenn-jocherBurhan-Qambitious-octopusUltralyticsAssistantY-T-GMatthewNoyceRizwanMunawar

评论