Ultralytics YOLO26 是一个支持多种计算机视觉任务的多功能 AI 框架。该框架可用于执行目标检测、分割、语义分割、深度估计、分类、姿态估计以及 OBB(带方向边界框)检测。这些任务各有不同的目标与应用场景,让您能够利用单一框架应对各种计算机视觉挑战。
关于计划中的 YOLO27 支持,请参阅 YOLO27 预览信息。YOLO27 即将推出,目前尚未发布;本指南使用的是已发布的 YOLO26 模型。
检测
检测是 YOLO26 支持的主要任务。它涉及识别图像或视频帧中的物体,并围绕这些物体绘制边界框。系统会根据物体的特征将其归入不同的类别。YOLO26 能够以高精度和高速度检测单张图像或视频帧中的多个物体,这使其成为监控系统和自动驾驶汽车等实时应用的理想选择。
目标检测是一项旨在识别图像或视频流中物体位置及类别的任务。
目标检测器的输出包含一组包围图像中物体的边界框,以及每个边界框对应的类别标签和置信度分数。当需要在场景中识别感兴趣的物体,但无需获知其确切形状时,目标检测是一个理想的选择。
模型
下方展示了在 COCO 数据集上预训练的 YOLO26 检测模型。首次使用时,模型会自动从最新的 Ultralytics 发行版下载。
mAPval 数值基于 COCO val2017 数据集上的单模型、单尺度测试结果。
复现命令:`yolo detect val data=coco.yaml device=0`。添加 `nms=False` 参数即可复现“e2e”(端到端)列的数据。
• 速度指标基于 COCO val 验证集图像测得,分别使用 CPU 上的 ONNX 和 NVIDIA T4 GPU 上的 TensorRT10 进行测试。
复现命令:`yolo detect val data=coco.yaml batch=1 device=0|cpu nms=False`
• 参数量(Params)和浮点运算量(FLOPs)数值基于经过 Conv/BatchNorm 融合及移除未使用的检测分支后的模型计算得出。预训练权重文件保留了完整的训练架构,因此其统计数值可能会更高。
训练
在 COCO8 数据集上训练 YOLO26n 模型,设置图像尺寸为 640,训练 100 个 epoch。如需查看可用参数的完整列表,请参阅“配置”页面。
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)请在“训练”页面查看完整的训练模式详情。此外,也可以利用 Ultralytics 平台的云端训练功能来训练检测模型。
数据集格式
有关 YOLO 检测数据集格式的详细信息,请参阅“数据集指南”(Dataset Guide)。若要将现有的 COCO JSON 格式数据集转换为 YOLO 格式,请使用“COCO 转 YOLO 指南”中介绍的内置 `convert_coco` 函数。此外,您还可以利用 Ultralytics 平台的 AI 辅助标注工具来标注和管理检测数据集。
验证
验证已训练的 YOLO26n 模型精度。无需传入参数,因为模型会将训练数据及相关参数作为属性保留(例如,基于 Train 示例生成的 `path/to/best.pt` 会在 COCO8 数据集上进行验证)。官方权重文件中记录的训练数据集路径在您的机器上可能不存在,此时系统会发出警告并回退使用任务默认的 `coco8.yaml` 配置;若需在其他数据集上进行验证,请显式传入相应的数据集参数。
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结果输出
目标检测任务针对每张图像返回一个 Results 对象。主要的预测字段是 result.boxes,其中包含了每个检测到的对象的边界框坐标、类别 ID 和置信度分数。
导出
将 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 model # Export the model model.export(format="onnx")下表列出了 YOLO26 支持的导出格式。您可以使用 `format` 参数(例如 `format='onnx'` 或 `format='engine'`)将其导出为任意格式。您可以直接使用导出的模型进行预测或验证(例如 `yolo predict model=yolo26n.onnx`)。模型导出完成后,系统会显示相应的使用示例。
实例分割
实例分割在目标检测的基础上更进一步,为每个对象生成像素级的掩码。这种高精度特性在医学影像、农业分析及制造业质量控制等应用场景中极具价值。
实例分割比目标检测更进一步,它不仅要识别图像中的各个物体,还要将它们从图像的其余部分中分割出来。实例分割模型的输出包含勾勒图像中每个物体轮廓的掩码(mask)或轮廓线,以及每个物体的类别标签和置信度分数。当您不仅需要知道物体在图像中的位置,还需要了解其确切形状时,实例分割便非常有用。
模型
下方展示了在 COCO 数据集上预训练的 YOLO26 分割模型。首次使用时,模型会自动从最新的 Ultralytics 发行版下载。
mAPval 数值基于 COCO val2017 数据集上的单模型、单尺度评估结果。
复现命令:`yolo segment val data=coco.yaml device=0 nms=False`
• 速度指标基于 COCO 验证集图像测得,分别使用 CPU 上的 ONNX 和 NVIDIA T4 GPU 上的 TensorRT10 进行测试。
复现命令:`yolo segment val data=coco.yaml batch=1 device=0|cpu nms=False`
• 参数量(Params)和计算量(FLOPs)数值基于经过 Conv/BatchNorm 融合及移除未使用的检测分支后的模型。预训练权重文件保留了完整的训练架构,因此其数值可能更高。
这些权重文件支持对 COCO 数据集中的 80 个类别进行分割。若需在不重新训练的情况下分割该列表以外的类别,请参考 YOLOE;YOLOE 支持通过文本提示、视觉示例或内置词汇表来指定类别。
训练
在 COCO8-seg 数据集上训练 YOLO26n-seg 模型,设置图像尺寸为 640,训练 100 个 epoch。有关可用参数的完整列表,请参阅“配置”页面。
from ultralytics import YOLO # Load a model model = YOLO("yolo26n-seg.yaml") # build a new model from YAML model = YOLO("yolo26n-seg.pt") # load a pretrained model (recommended for training) model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt") # build from YAML and transfer weights # Train the model results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)请在“训练(Train)”页面查看训练模式的完整详情。此外,也可以使用 Ultralytics Platform 云端训练功能来训练分割模型。
数据集格式
有关 YOLO 分割数据集格式的详细信息,请参阅“数据集指南(Dataset Guide)”。若要将现有的 COCO JSON 格式数据集转换为 YOLO 格式,请按照“COCO 转 YOLO 指南”中的说明,使用内置的 `convert_coco` 函数并将参数设置为 `use_segments=True`。您还可以利用 Ultralytics Platform 的标注功能,通过多边形工具和基于 SAM(Segment Anything Model)的智能标注来创建分割掩码。
验证(Val)
验证已训练的 YOLO26n-seg 模型的准确率。无需传入参数,因为模型会将训练数据及相关参数作为自身属性保存;例如,使用“训练”示例中生成的 `path/to/best.pt` 文件,系统会自动在 COCO8-seg 数据集上进行验证。由于官方权重文件中记录的训练数据集路径在您的本地机器上可能不存在,系统在运行时会发出警告,并回退使用该任务默认的 `coco8-seg.yaml` 配置文件。若需在其他数据集上进行验证,请显式传入相应的数据集参数。
from ultralytics import YOLO # Load a model model = YOLO("yolo26n-seg.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(B) metrics.box.map50 # map50(B) metrics.box.map75 # map75(B) metrics.box.maps # a list containing mAP50-95(B) for each category metrics.box.image_metrics # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN metrics.seg.map # map50-95(M) metrics.seg.map50 # map50(M) metrics.seg.map75 # map75(M) metrics.seg.maps # a list containing mAP50-95(M) for each category metrics.seg.image_metrics # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN预测
使用训练好的 YOLO26n-seg 模型对图像进行预测。
from ultralytics import YOLO # Load a model model = YOLO("yolo26n-seg.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: xy = result.masks.xy # mask polygons in pixel coordinates xyn = result.masks.xyn # normalized mask polygons masks = result.masks.data # binary masks, shape (N,H,W), dtype torch.uint8结果输出
YOLO 实例分割为每张图像返回一个 Results 对象。每个结果存储对象级别的预测信息,其中每个检测到的实例都包含其对应的二值掩码、类别、置信度和边界框。
实例分割与语义分割
实例分割属于对象级分割:两辆车会对应生成两个掩码(mask)、两个边界框(box)以及两个置信度分数。语义分割则属于像素级分类:同样的车辆在与图像尺寸相同的类别图(class map)中被标记为具有相同类别 ID 的像素,且不包含针对单个对象的边界框、置信度或多边形列表。请参阅语义分割页面上的详细对比。
导出
将 YOLO26n-seg 模型导出为 ONNX、CoreML 等其他格式。
from ultralytics import YOLO # Load a model model = YOLO("yolo26n-seg.pt") # load an official model model = YOLO("path/to/best.pt") # load a custom model # Export the model model.export(format="onnx")下表列出了 YOLO26-seg 支持的导出格式。您可以使用 `format` 参数(例如 `format='onnx'` 或 `format='engine'`)将其导出为任意格式。导出模型后,您可以直接使用它们进行预测或验证(例如 `yolo predict model=yolo26n-seg.onnx`)。导出完成后,系统会显示针对您模型的使用示例。
语义分割
语义分割为图像中的每个像素分配类别标签,从而生成涵盖整个场景的密集类别图。与实例分割不同,它不区分同一类别的不同个体对象。这使其成为自动驾驶、场景解析和土地覆盖制图等领域的理想选择,因为在这些应用中,理解整体空间布局比识别单个对象更为重要。
深度估计
单目深度估计根据单张 RGB 图像预测以米为单位的逐像素深度图。其输出是一张与输入图像对齐的稠密浮点数值图,适用于三维场景重建、机器人导航以及需要仅凭单目相机推断空间布局的 AR/VR 应用。
分类
分类是指根据图像内容对整幅图像进行归类。这项任务对于电子商务中的产品分类、内容审核以及野生动物监测等应用至关重要。
姿态估计
姿态估计通过检测图像或视频帧中的特定关键点来追踪动作或估算姿态。这些关键点可以代表人体关节、面部特征或其他重要的关注点。YOLO26 在关键点检测方面表现卓越,兼具高精度与高速度,在健身应用、体育分析及人机交互等领域极具价值。
OBB
定向包围盒(OBB)检测在传统目标检测的基础上引入了方向角,从而能更精准地定位发生旋转的目标。这一特性对于航空影像分析、文档处理以及目标呈现各种角度的工业应用场景尤为重要。YOLO26 能够在多种场景下实现针对旋转目标的高精度、高速度检测。