YOLO Vision 2026:

目标检测#

YOLO object detection with bounding boxes

Object detection 是一项旨在识别图像或视频流中物体的位置和类别的任务。

目标检测器的输出是一组包围图像中对象的边界框,以及每个框的类别标签和置信度分数。当你需要在场景中识别感兴趣的对象,但不需要知道对象的精确位置或确切形状时,目标检测是一个很好的选择。



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
提示

YOLO26 Detect 模型是默认的 YOLO26 模型(即 yolo26n.pt),并在 COCO 上进行了预训练。

模型#

此处展示了 YOLO26 预训练的 Detect 模型。Detect、Segment 和 Pose 模型在 COCO 数据集上预训练,Semantic 模型在 Cityscapes 上预训练,Classify 模型在 ImageNet 数据集上预训练。

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

模型尺寸
(像素)
mAPval
50-95
mAPval
50-95(e2e)
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
参数量
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9
  • mAPval 值适用于 COCO val2017 数据集上的单模型单尺度。
    通过 yolo val detect data=coco.yaml device=0 复现
  • Speed 是在 Amazon EC2 P4d 实例上对 COCO val 图像取平均计算得出的。
    通过 yolo val detect data=coco.yaml batch=1 device=0|cpu 复现
  • **参数量(Params)**和 FLOPs 值适用于 model.fuse() 之后的融合模型,该模型合并了 Conv 和 BatchNorm 层,并且对于端到端模型,移除了辅助的一对多检测头。预训练检查点保留了完整的训练架构,可能会显示更高的数值。

训练#

在 COCO8 数据集上以 640 的图像尺寸对 YOLO26n 进行 100 个 epochs 训练。有关可用参数的完整列表,请参阅Configuration页面。

示例
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)

有关完整的 train 模式详情,请参阅Train页面。检测模型也可以使用Ultralytics Platform cloud training进行训练。

数据集格式#

有关 YOLO 检测数据集格式的详细信息,请参阅Dataset Guide。要将你的现有数据集从其他格式(如 COCO 等)转换为 YOLO 格式,请使用 Ultralytics 的 JSON2YOLO 工具。你还可以使用Ultralytics Platform's AI-assisted annotation tools标注和管理检测数据集。

验证#

在 COCO8 数据集上验证训练好的 YOLO26n 模型accuracy。由于 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
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

预测#

使用训练好的 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

查看完整的 predict 模式详情,请访问 Predict 页面。

结果输出#

对象检测每张图像返回一个 Results 对象。主要预测字段是 result.boxes,它包含每个检测到的物体的框坐标、类别 ID 和置信度分数。

属性类型形状描述
result.boxesBoxes(N)检测框。
result.boxes.datatorch.float32(N,6/7)原始 [x1,y1,x2,y2,conf,cls],外加可选的跟踪 ID。
result.boxes.xyxytorch.float32(N,4)xyxy 像素框。
result.boxes.conftorch.float32(N,)置信度得分。
result.boxes.clstorch.float32(N,)类 ID;转换为 int 获取名称。

有关所有任务特定于任务的 Results 字段,请参阅按任务划分的预测结果部分。

导出#

将 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")

可用的 YOLO26 导出格式如下表所示。你可以使用 format 参数(即 format='onnx'format='engine')导出到任何格式。你可以直接对导出的模型(即 yolo predict model=yolo26n.onnx)进行预测或验证。导出完成后,会为你的模型显示使用示例。

格式format 参数模型元数据参数
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

查看完整的 export 详情,请访问 Export 页面。

常见问题解答#

我可以在不编写代码的情况下训练和部署检测模型吗?#

可以。Ultralytics Platform quickstart 涵盖了基于浏览器的完整工作流,包括标注数据集、在云 GPU 上训练检测模型以及将它们部署到推理端点。

如何在我自定义的数据集上训练 YOLO26 模型?#

在自定义数据集上训练 YOLO26 模型涉及几个步骤:

  1. 准备数据集:确保你的数据集为 YOLO 格式。有关指导,请参考我们的Dataset Guide
  2. 加载模型:使用 Ultralytics YOLO 库加载预训练模型或从 YAML 文件创建新模型。
  3. 训练模型:在 Python 中执行 train 方法,或在 CLI 中运行 yolo detect train 命令。
示例
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)

有关详细的配置选项,请访问Configuration页面。

YOLO26 中有哪些预训练模型可用?#

Ultralytics YOLO26 offers various pretrained models for object detection, instance segmentation, semantic segmentation, and pose estimation. These models are pretrained on the COCO dataset, Cityscapes for semantic segmentation, or ImageNet for classification tasks. Here are some of the available models:

有关详细列表和性能指标,请参阅Models部分。

我该如何验证已训练 YOLO 模型的准确性?#

要验证训练好的 YOLO26 模型的准确率,你可以在 Python 中使用 .val() 方法,或在 CLI 中运行 yolo detect val 命令。这将提供 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

有关更多验证详情,请访问Val页面。

我可以将 YOLO26 模型导出为哪些格式?#

Ultralytics YOLO26 允许将模型导出为各种格式,例如ONNXTensorRTCoreML等,以确保在不同平台和设备上的兼容性。

示例
from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")

Export页面上查看支持的格式的完整列表以及说明。

为什么我应该使用 Ultralytics YOLO26 进行目标检测?#

Ultralytics YOLO26 旨在为object detectioninstance segmentationsemantic segmentationpose estimation提供最先进的性能。以下是一些主要优势:

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

浏览我们的Blog以了解实际应用案例和成功故事,展示 YOLO26 的实际表现。

评论