https://docs.ultralytics.com/tasks/
文章目录
一、Ultralytics YOLO11 支持的计算机视觉任务
Ultralytics YOLO11 是一个多功能 AI 框架,支持多种计算机视觉 任务。该框架可用于执行检测、分割、obb、分类和姿态估计。每项任务都有不同的目标和用例,让您能够通过单一框架应对各种计算机视觉挑战。
观看: 探索 Ultralytics YOLO 任务: 目标检测、分割、OBB、跟踪和姿态估计。
检测
检测是YOLO11支持的核心任务,其功能包括识别图像或视频帧中的物体,并为其绘制边界框。系统会根据物体特征将检测到的对象分类到不同类别中。YOLO11能以极高的准确率和速度在单张图像或视频帧中检测多个物体,这使其成为安防监控系统和自动驾驶车辆等实时应用的理想选择。
图像分割
图像分割技术通过根据内容将图像划分为不同区域,将目标检测提升到更高层次。每个区域都会被赋予标签,为医学影像、农业分析和制造业质量控制等应用提供像素级精度。YOLO11采用U-Net架构的变体来实现高效精准的图像分割。
图像分类
图像分类任务旨在根据图像内容对整张图片进行分类。YOLO11采用改进版EfficientNet架构实现高性能图像分类能力。该技术在以下应用场景中尤为重要:
姿态估计
姿态估计通过检测图像或视频帧中的特定关键点来追踪动作或估算姿态。这些关键点可以代表人体的关节、面部特征或其他重要兴趣点。YOLO11在关键点检测方面表现出色,兼具高精度与高速度,使其在健身应用、运动分析和人机交互领域极具价值。
OBB
定向边界框(OBB)检测通过增加方向角来增强传统目标检测能力,从而更精准地定位旋转物体。这一特性在航拍图像分析、文档处理和工业应用中尤为重要,因为这些场景中的物体常以不同角度出现。YOLO11在多种场景下检测旋转物体时,兼具高精度与高速性能。
结论
Ultralytics YOLO11 支持多种计算机视觉任务,包括检测、分割、分类、定向目标检测和关键点检测。每项任务针对计算机视觉领域中的特定需求,从基础目标识别到详细姿态分析均有覆盖。通过了解每项任务的功能与应用场景,您可以为特定的计算机视觉挑战选择最合适的解决方案,并利用 YOLO11 的强大功能构建高效的应用系统。
FAQ
Ultralytics YOLO11 能执行哪些计算机视觉任务?
Ultralytics YOLO11 是一个多功能 AI 框架,能够以高精度和速度执行各种计算机视觉任务。这些任务包括:
- 目标检测: 通过在图像或视频帧中绘制边界框来识别和定位物体。
- 图像分割: 根据内容将图像分割成不同区域,适用于医学影像等应用场景。
- 图像分类: 基于图像内容进行分类,采用 EfficientNet 架构的变体实现。
- 姿态估计: 检测图像或视频帧中的特定关键点,用于追踪动作或姿态。
- 定向目标检测 (OBB): 通过增加方向角度检测旋转物体,提升检测精度。
如何使用 Ultralytics YOLO11 进行目标检测?
要使用 Ultralytics YOLO11 进行目标检测,请按照以下步骤操作:
1、准备符合要求格式的数据集。
2、使用检测任务训练 YOLO11 模型。
3、通过输入新图像或视频帧,使用训练好的模型进行预测。
示例
from ultralytics import YOLO
# Load a pre-trained YOLO model (adjust model type as needed)
model = YOLO("yolo11n.pt") # n, s, m, l, x versions available
# Perform object detection on an image
results = model.predict(source="image.jpg") # Can also use video, directory, URL, etc.
# Display the results
results[0].show() # Show the first image results
如需更详细的说明,请查看我们的检测示例。
使用 YOLO11 进行分割任务有哪些优势?
将 YOLO11 用于分割任务具有以下优势:
1、高精度:该分割任务采用 U-Net 架构的变体,能够实现精确分割。
2、速度快:YOLO11 针对实时应用进行了优化,即使处理高分辨率图像也能快速完成。
3、多场景适用:非常适合医疗影像、自动驾驶等需要精细图像分割的应用场景。
了解更多关于 YOLO11 在分割任务中的优势和应用案例,请参阅图像分割章节。
Ultralytics YOLO11 能否处理姿态估计和关键点检测?
是的,Ultralytics YOLO11 能够高效地进行姿态估计和关键点检测,并保持高精度与速度。这一特性在体育分析、医疗保健和人机交互应用中尤其有用,可用于追踪动作。YOLO11 能够检测图像或视频帧中的关键点,从而实现精确的姿态估计。
如需了解更多详情和实现技巧,请访问我们的姿态估计示例。
为什么选择 Ultralytics YOLO11 进行定向目标检测(OBB)?
YOLO11 的定向目标检测(OBB)通过增加角度参数来检测物体,从而提升了精确度。这一特性特别适用于需要精确定位旋转物体的应用场景,例如航拍图像分析和仓库自动化。
- 更高的精确度:角度参数减少了旋转物体的误检率。
- 广泛的应用场景:适用于地理空间分析、机器人技术等任务。
更多详细信息和示例,请查看定向目标检测章节。
二、目标检测
目标检测是一项识别图像或视频流中物体位置及类别的任务。
目标检测器的输出是一组包围图像中物体的边界框,每个框附带类别标签和置信度分数。当您需要识别场景中的目标物体,但无需精确知道物体位置或具体形状时,目标检测是理想选择。
观看: 使用预训练Ultralytics YOLO模型进行目标检测。
提示: YOLO11 Detect模型是默认的YOLO11模型,例如yolo11n.pt
,它们基于COCO数据集进行了预训练。
模型
此处展示的是YOLO11预训练的检测模型。检测、分割和姿态模型均在COCO数据集上预训练,而分类模型则在ImageNet数据集上预训练。
首次使用时,模型会自动从Ultralytics最新版本下载。
模型 | 尺寸(像素) | mAPval 50-95 | CPU ONNX速度(毫秒) | T4 TensorRT10速度(毫秒) | 参数量(百万) | 计算量(十亿次) |
---|---|---|---|---|---|---|
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
复现。 - 速度 测试使用Amazon EC2 P4d实例在COCO验证集图像上的平均结果。可通过命令
yolo val detect data=coco.yaml batch=1 device=0|cpu
复现。
训练
在COCO8数据集上以640的图像尺寸训练YOLO11n模型100个epochs。完整参数列表请参阅配置页面。
示例
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工具。
Val
在COCO8数据集上验证训练好的YOLO11n模型的准确率。无需额外参数,因为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
预测
使用训练好的 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
查看完整的 predict
模式详情,请访问 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")
以下是可用的YOLO11导出格式列表。您可以通过format
参数指定导出格式,例如format='onnx'
或format='engine'
。导出的模型可直接用于预测或验证,如yolo predict model=yolo11n.onnx
。导出完成后会显示模型的使用示例。
格式 | format 参数 | 模型 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n.pt | ✅ | - |
TorchScript | torchscript | yolo11n.torchscript | ✅ | imgsz , half , 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
详情请参见导出页面。
FAQ
如何在我的自定义数据集上训练YOLO11模型?
在自定义数据集上训练YOLO11模型需要以下几个步骤:
1、准备数据集:确保你的数据集符合YOLO格式。具体指导请参考我们的数据集指南。
2、加载模型:使用Ultralytics YOLO库加载预训练模型或通过YAML文件创建新模型。
3、训练模型:在Python中执行train
方法或在CLI中运行yolo detect train
命令。
示例
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)
详细配置选项请参阅配置页面。
YOLO11 中有哪些预训练模型可用?
Ultralytics YOLO11 提供了多种用于目标检测、分割和姿态估计的预训练模型。这些模型在 COCO 数据集或 ImageNet 上进行了预训练,适用于分类任务。以下是部分可用的模型:
如需详细列表和性能指标,请参阅 Models 部分。
如何验证训练好的YOLO模型的准确性?
要验证训练好的YOLOv11模型的准确性,可以使用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 页面。
可以将 YOLO11 模型导出为哪些格式?
Ultralytics YOLO11 支持将模型导出为多种格式,例如 ONNX、TensorRT、CoreML 等,以确保在不同平台和设备上的兼容性。
示例
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
查看完整支持的格式列表及操作说明,请访问导出页面。
为什么选择 Ultralytics YOLO11 进行目标检测?
Ultralytics YOLO11 旨在为目标检测、实例分割和姿态估计提供最先进的性能表现。以下是其主要优势:
1、预训练模型:可直接使用基于 COCO 和 ImageNet 等流行数据集预训练的模型,加速开发流程。
2、高精度:获得卓越的 mAP 评分,确保目标检测结果可靠。
3、速度快:专为 实时推理 优化,非常适合需要快速处理的应用场景。
4、灵活性:支持将模型导出为 ONNX 和 TensorRT 等多种格式,便于跨平台部署。
访问我们的 博客,查看 YOLO11 的实际应用案例和成功故事。
三、实例分割
实例分割比目标检测更进一步,它需要识别图像中的单个对象并将其与图像其余部分分割开来。
实例分割模型的输出是一组掩码或轮廓,用于勾勒图像中每个对象的形状,同时提供每个对象的类别标签和置信度分数。当您不仅需要知道图像中对象的位置,还需要了解其精确形状时,实例分割非常有用。
观看视频: 在Python中使用预训练的Ultralytics YOLO模型运行分割任务。
提示: YOLO11分割模型使用-seg
后缀,例如yolo11n-seg.pt
,并在COCO数据集上进行了预训练。
模型
此处展示的是YOLO11预训练分割模型。检测、分割和姿态模型均在COCO数据集上预训练,而分类模型则在ImageNet数据集上预训练。
首次使用时,模型会自动从Ultralytics最新版本下载。
模型 | 尺寸(像素) | mAPbox 50-95 | mAPmask 50-95 | CPU ONNX速度(毫秒) | T4 TensorRT10速度(毫秒) | 参数量(百万) | 计算量(十亿) |
---|---|---|---|---|---|---|---|
YOLO11n-seg | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
YOLO11s-seg | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
YOLO11m-seg | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
YOLO11l-seg | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
YOLO11x-seg | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
- mAPval 数值基于COCO val2017数据集上的单模型单尺度测试。
可通过命令yolo val segment data=coco.yaml device=0
复现 - 速度 测试使用Amazon EC2 P4d实例在COCO验证集图像上的平均结果。
可通过命令yolo val segment data=coco.yaml batch=1 device=0|cpu
复现
训练
在 COCO8-seg 数据集上训练 YOLO11n-seg 模型,图像尺寸为 640,共训练 100 个 epochs。如需查看完整的可用参数列表,请参阅 Configuration 页面。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.yaml") # build a new model from YAML
model = YOLO("yolo11n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
数据集格式
有关YOLO分割数据集格式的详细信息,请参阅数据集指南。若需将现有数据集从其他格式(如COCO等)转换为YOLO格式,请使用Ultralytics提供的JSON2YOLO工具。
Val
在 COCO8-seg 数据集上验证训练好的 YOLO11n-seg 模型的准确率。无需额外参数,因为 model
会保留其训练 data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category
预测
使用训练好的 YOLO11n-seg 模型对图像进行预测。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)
查看完整的 predict
模式详情,请访问 Predict 页面。
导出
将 YOLO11n-seg 模型导出为其他格式,如 ONNX、CoreML 等。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
以下是可用的YOLO11-seg导出格式,如下表所示。您可以使用format
参数导出为任何格式,例如format='onnx'
或format='engine'
。您可以直接在导出的模型上进行预测或验证,例如yolo predict model=yolo11n-seg.onnx
。导出完成后,会显示您模型的使用示例。
格式 | format 参数 | 模型 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n-seg.pt | ✅ | - |
TorchScript | torchscript | yolo11n-seg.torchscript | ✅ | imgsz , half , optimize , nms , batch , device |
ONNX | onnx | yolo11n-seg.onnx | ✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino | yolo11n-seg_openvino_model/ | ✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine | yolo11n-seg.engine | ✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml | yolo11n-seg.mlpackage | ✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model | yolo11n-seg_saved_model/ | ✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb | yolo11n-seg.pb | ❌ | imgsz , batch , device |
TF Lite | tflite | yolo11n-seg.tflite | ✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu | yolo11n-seg_edgetpu.tflite | ✅ | imgsz , device |
TF.js | tfjs | yolo11n-seg_web_model/ | ✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle | yolo11n-seg_paddle_model/ | ✅ | imgsz , batch , device |
MNN | mnn | yolo11n-seg.mnn | ✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn | yolo11n-seg_ncnn_model/ | ✅ | imgsz , half , batch , device |
IMX500 | imx | yolo11n-seg_imx_model/ | ✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn | yolo11n-seg_rknn_model/ | ✅ | imgsz , batch , name , device |
更多export
的详细信息,请参阅导出页面。
FAQ
如何在自定义数据集上训练YOLO11分割模型?
要在自定义数据集上训练YOLO11分割模型,首先需要将数据集准备成YOLO分割格式。你可以使用工具如JSON2YOLO来转换其他格式的数据集。数据集准备好后,可以通过Python或CLI命令来训练模型:
示例
from ultralytics import YOLO
# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-seg.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
查看配置页面获取更多可用参数。
目标检测与实例分割在YOLO11中的区别是什么?
目标检测通过在图像中绘制边界框来识别和定位物体,而实例分割不仅能识别边界框,还能精确勾勒出每个物体的具体形状。YOLO11的实例分割模型会为每个检测到的物体提供掩膜或轮廓线,这在需要了解物体精确形状的任务中特别有用,例如医学影像分析或自动驾驶。
为何选择YOLO11进行实例分割?
Ultralytics YOLO11 是一款以高精度和实时性能著称的尖端模型,非常适合实例分割任务。YOLO11 Segment 模型已在 COCO数据集 上完成预训练,确保了对各类物体的强大识别能力。此外,YOLO 无缝集成了训练、验证、预测及模型导出功能,其高度灵活性使其在学术研究和工业应用中均能大显身手。
如何加载并验证预训练的 YOLO 分割模型?
加载和验证预训练的 YOLO 分割模型非常简单。以下是使用 Python 和 CLI 两种方式的操作示例:
示例
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n-seg.pt")
# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)
这些步骤将为你提供验证指标,如Mean Average Precision (mAP),这对评估模型性能至关重要。
如何将 YOLO 分割模型导出为 ONNX 格式?
将 YOLO 分割模型导出为 ONNX 格式非常简单,可以通过 Python 或 CLI 命令实现:
示例
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n-seg.pt")
# Export the model to ONNX format
model.export(format="onnx")
有关导出为各种格式的更多详细信息,请参阅导出页面。
四、图像分类
https://docs.ultralytics.com/tasks/classify/
图像分类是三种任务中最简单的一种,其目标是将整张图像归类到一组预定义的类别中。
图像分类器的输出结果是一个类别标签及其置信度分数。当您只需要知道图像所属类别,而不需要了解该类别的物体位置或具体形状时,图像分类非常有用。
观看视频: 探索Ultralytics YOLO任务:使用Ultralytics HUB进行图像分类
提示:YOLO11分类模型使用-cls
后缀命名,例如yolo11n-cls.pt
,并在ImageNet数据集上进行了预训练。
模型
此处展示了YOLO11预训练的分类模型。检测、分割和姿态模型均在COCO数据集上预训练,而分类模型则在ImageNet数据集上预训练。
模型会在首次使用时自动从Ultralytics最新版本下载。
模型 | 尺寸 (像素) | 准确率 top1 | 准确率 top5 | CPU ONNX 速度 (ms) | T4 TensorRT10 速度 (ms) | 参数量 (M) | FLOPs (B) @224 |
---|---|---|---|---|---|---|---|
YOLO11n-cls | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 0.5 |
YOLO11s-cls | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 1.6 |
YOLO11m-cls | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 5.0 |
YOLO11l-cls | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 6.2 |
YOLO11x-cls | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 28.4 | 13.7 |
- 准确率值为模型在ImageNet数据集验证集上的表现。可通过
yolo val classify data=path/to/ImageNet device=0
复现结果 - 速度指标基于Amazon EC2 P4d实例对ImageNet验证集图像的平均处理时间。可通过
yolo val classify data=path/to/ImageNet batch=1 device=0|cpu
复现测试
训练
在MNIST160数据集上以64的图像尺寸训练YOLO11n-cls模型100个epochs。完整参数列表请参阅配置页面。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.yaml") # build a new model from YAML
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-cls.yaml").load("yolo11n-cls.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="mnist160", epochs=100, imgsz=64)
提示:Ultralytics YOLO 分类模型在训练时使用 torchvision.transforms.RandomResizedCrop 进行数据增强,在验证/推理时使用 torchvision.transforms.CenterCrop。对于长宽比极端的图像,建议改用 torchvision.transforms.Resize。以下示例展示了如何为分类训练自定义数据增强方法。
import torch
import torchvision.transforms as T
from ultralytics import YOLO
from ultralytics.data.dataset import ClassificationDataset
from ultralytics.models.yolo.classify import ClassificationTrainer
class CustomizedDataset(ClassificationDataset):
"""A customized dataset class for image classification with enhanced data augmentation transforms."""
def __init__(self, root: str, args, augment: bool = False, prefix: str = ""):
"""Initialize a customized classification dataset with enhanced data augmentation transforms."""
super().__init__(root, args, augment, prefix)
train_transforms = T.Compose(
[
T.Resize((args.imgsz, args.imgsz)),
T.RandomHorizontalFlip(p=args.fliplr),
T.RandomVerticalFlip(p=args.flipud),
T.RandAugment(interpolation=T.InterpolationMode.BILINEAR),
T.ColorJitter(brightness=args.hsv_v, contrast=args.hsv_v, saturation=args.hsv_s, hue=args.hsv_h),
T.ToTensor(),
T.Normalize(mean=torch.tensor(0), std=torch.tensor(1)),
T.RandomErasing(p=args.erasing, inplace=True),
]
)
val_transforms = T.Compose(
[
T.Resize((args.imgsz, args.imgsz)),
T.ToTensor(),
T.Normalize(mean=torch.tensor(0), std=torch.tensor(1)),
]
)
self.torch_transforms = train_transforms if augment else val_transforms
class CustomizedTrainer(ClassificationTrainer):
"""A customized trainer class for YOLO classification models with enhanced dataset handling."""
def build_dataset(self, img_path: str, mode: str = "train", batch=None):
"""Build a customized dataset for classification training and the validation during training."""
return CustomizedDataset(root=img_path, args=self.args, augment=mode == "train", prefix=mode)
class CustomizedValidator(ClassificationValidator):
"""A customized validator class for YOLO classification models with enhanced dataset handling."""
def build_dataset(self, img_path: str, mode: str = "train"):
"""Build a customized dataset for classification standalone validation."""
return CustomizedDataset(root=img_path, args=self.args, augment=mode == "train", prefix=self.args.split)
model = YOLO("yolo11n-cls.pt")
model.train(data="imagenet1000", trainer=CustomizedTrainer, epochs=10, imgsz=224, batch=64)
model.val(data="imagenet1000", validator=CustomizedValidator, imgsz=224, batch=64)
数据集格式
YOLO分类数据集的详细格式可在数据集指南中查阅。
Val
在MNIST160数据集上验证训练好的YOLO11n-cls模型的准确率。无需额外参数,因为model
会保留其训练data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.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.top1 # top1 accuracy
metrics.top5 # top5 accuracy
预测
使用训练好的 YOLO11n-cls 模型对图像进行预测。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.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
查看完整的 predict
模式详情,请访问 Predict 页面。
导出
将 YOLO11n-cls 模型导出为其他格式,如 ONNX、CoreML 等。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
以下是YOLO11-cls支持的导出格式表格。您可以通过format
参数指定导出格式,例如format='onnx'
或format='engine'
。导出完成后,您可以直接对模型进行预测或验证,如yolo predict model=yolo11n-cls.onnx
。导出完成后会显示具体使用示例。
格式 | format 参数 | 模型文件 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n-cls.pt | ✅ | - |
TorchScript | torchscript | yolo11n-cls.torchscript | ✅ | imgsz , half , optimize , nms , batch , device |
ONNX | onnx | yolo11n-cls.onnx | ✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino | yolo11n-cls_openvino_model/ | ✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine | yolo11n-cls.engine | ✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml | yolo11n-cls.mlpackage | ✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model | yolo11n-cls_saved_model/ | ✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb | yolo11n-cls.pb | ❌ | imgsz , batch , device |
TF Lite | tflite | yolo11n-cls.tflite | ✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu | yolo11n-cls_edgetpu.tflite | ✅ | imgsz , device |
TF.js | tfjs | yolo11n-cls_web_model/ | ✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle | yolo11n-cls_paddle_model/ | ✅ | imgsz , batch , device |
MNN | mnn | yolo11n-cls.mnn | ✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn | yolo11n-cls_ncnn_model/ | ✅ | imgsz , half , batch , device |
IMX500 | imx | yolo11n-cls_imx_model/ | ✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn | yolo11n-cls_rknn_model/ | ✅ | imgsz , batch , name , device |
完整导出说明请参见导出文档。
FAQ
YOLO11在图像分类中的用途是什么?
YOLO11模型(例如yolo11n-cls.pt
)专为高效的图像分类而设计。它们会为整张图像分配一个类别标签及置信度分数。这在只需知道图像具体类别、而无需识别图像中物体位置或形状的应用场景中尤为实用。
如何训练 YOLO11 模型进行图像分类?
要训练 YOLO11 模型,你可以使用 Python 或 CLI 命令。例如,要在 MNIST160 数据集上训练 yolo11n-cls
模型,设置图像大小为 64,训练 100 个周期:
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="mnist160", epochs=100, imgsz=64)
更多配置选项,请访问配置页面。
在哪里可以找到预训练的YOLO11分类模型?
预训练的YOLO11分类模型可以在Models部分找到。诸如yolo11n-cls.pt
、yolo11s-cls.pt
、yolo11m-cls.pt
等模型已在ImageNet数据集上进行了预训练,可以轻松下载并用于各种图像分类任务。
如何将训练好的YOLO11模型导出为不同格式?
你可以使用Python或CLI命令将训练好的YOLO11模型导出为多种格式。例如,要将模型导出为ONNX格式:
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load the trained model
# Export the model to ONNX
model.export(format="onnx")
有关详细的导出选项,请参阅 Export 页面。
如何验证训练好的 YOLO11 分类模型?
要在 MNIST160 等数据集上验证训练模型的准确性,可以使用以下 Python 或 CLI 命令:
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load the trained model
# Validate the model
metrics = model.val() # no arguments needed, uses the dataset and settings from training
metrics.top1 # top1 accuracy
metrics.top5 # top5 accuracy
更多信息,请访问 Validate 部分。
五、姿态估计
姿态估计是一项识别图像中特定点位置的任务,这些点通常被称为关键点。关键点可以表示物体的各个部位,如关节、地标或其他显著特征。关键点的位置通常以一组2D [x, y]
或3D [x, y, visible]
坐标表示。
姿态估计模型的输出是一组代表图像中物体关键点的点,通常还包含每个点的置信度分数。当你需要识别场景中物体的特定部位及其相对位置时,姿态估计是一个理想的选择。
观看: Ultralytics YOLO11 姿态估计教程 | 实时物体追踪与人体姿态检测
提示:YOLO11 姿态 模型使用 -pose
后缀,例如 yolo11n-pose.pt
。这些模型在 COCO 关键点 数据集上训练,适用于多种姿态估计任务。
在默认的YOLO11姿态模型中,有17个关键点,每个关键点代表人体的不同部位。以下是每个索引对应的人体关节映射:
1、鼻子
2、左眼
3、右眼
4、左耳
5、右耳
6、左肩
7、右肩
8、左肘
9、右肘
10、左腕
11、右腕
12、左髋
13、右髋
14、左膝
15、右膝
16、左踝
17、右踝
模型
此处展示的是Ultralytics YOLO11预训练姿态模型。检测、分割和姿态模型均在COCO数据集上预训练,而分类模型则在ImageNet数据集上预训练。
首次使用时,模型会自动从Ultralytics最新版本下载。
模型 | 尺寸(像素) | mAPpose 50-95 | mAPpose 50 | CPU ONNX速度(ms) | T4 TensorRT10速度(ms) | 参数量(M) | 计算量(B) |
---|---|---|---|---|---|---|---|
YOLO11n-pose | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
YOLO11s-pose | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
YOLO11m-pose | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
YOLO11l-pose | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
YOLO11x-pose | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
- mAPval 数值基于COCO关键点val2017数据集的单模型单尺度测试结果。可通过
yolo val pose data=coco-pose.yaml device=0
复现 - 速度 测试使用Amazon EC2 P4d实例在COCO验证集图像上的平均结果。可通过
yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
复现
训练
在COCO8-pose数据集上训练YOLO11-pose模型。COCO8-pose数据集是一个小型样本数据集,非常适合用于测试和调试您的姿态估计模型。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.yaml") # build a new model from YAML
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-pose.yaml").load("yolo11n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
数据集格式
YOLO姿态数据集的详细格式可在数据集指南中查阅。若需将现有数据集从其他格式(如COCO等)转换为YOLO格式,请使用Ultralytics提供的JSON2YOLO工具。
针对自定义姿态估计任务,您还可以探索以下专用数据集:
- Tiger-Pose:用于动物姿态估计
- Hand Keypoints:用于手部追踪
- Dog-Pose:用于犬类姿态分析
Val
在COCO8-pose数据集上验证训练好的YOLO11n-pose模型的准确率。无需额外参数,因为model
会保留其训练data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.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
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pse.maps # a list contains map50-95(P) of each category
预测
使用训练好的 YOLO11n-pose 模型对图像进行预测。预测模式允许您对图像、视频或实时流执行推理。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.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.keypoints.xy # x and y coordinates
xyn = result.keypoints.xyn # normalized
kpts = result.keypoints.data # x, y, visibility (if available)
查看完整的 predict
模式详情,请访问 Predict 页面。
导出
将 YOLO11n Pose 模型导出为其他格式,如 ONNX、CoreML 等。这使您能够在不同平台和设备上部署模型,实现实时推理。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
以下是YOLO11-pose支持的导出格式。您可以通过format
参数指定导出格式,例如format='onnx'
或format='engine'
。导出完成后,您可以直接对模型进行预测或验证,如yolo predict model=yolo11n-pose.onnx
。导出完成后会显示模型的使用示例。
格式 | format 参数 | 模型文件 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n-pose.pt | ✅ | - |
TorchScript | torchscript | yolo11n-pose.torchscript | ✅ | imgsz , half , optimize , nms , batch , device |
ONNX | onnx | yolo11n-pose.onnx | ✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino | yolo11n-pose_openvino_model/ | ✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine | yolo11n-pose.engine | ✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml | yolo11n-pose.mlpackage | ✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model | yolo11n-pose_saved_model/ | ✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb | yolo11n-pose.pb | ❌ | imgsz , batch , device |
TF Lite | tflite | yolo11n-pose.tflite | ✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu | yolo11n-pose_edgetpu.tflite | ✅ | imgsz , device |
TF.js | tfjs | yolo11n-pose_web_model/ | ✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle | yolo11n-pose_paddle_model/ | ✅ | imgsz , batch , device |
MNN | mnn | yolo11n-pose.mnn | ✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn | yolo11n-pose_ncnn_model/ | ✅ | imgsz , half , batch , device |
IMX500 | imx | yolo11n-pose_imx_model/ | ✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn | yolo11n-pose_rknn_model/ | ✅ | imgsz , batch , name , device |
完整导出细节请参见导出文档。
FAQ
什么是Ultralytics YOLO11姿态估计及其工作原理?
Ultralytics YOLO11的姿态估计技术旨在识别图像中的特定点,这些点被称为关键点。关键点通常代表物体的关节或其他重要特征。输出结果包含每个关键点的[x, y]
坐标及其置信度分数。YOLO11-pose模型专为此任务设计,模型名称带有-pose
后缀,例如yolo11n-pose.pt
。这些模型已在COCO关键点数据集上进行了预训练,适用于多种姿态估计任务。更多信息请访问姿态估计页面。
如何在自定义数据集上训练 YOLO11-pose 模型?
在自定义数据集上训练 YOLO11-pose 模型需要加载一个模型,这个模型可以是通过 YAML 文件定义的新模型,也可以是预训练模型。然后,你可以使用指定的数据集和参数开始训练过程。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.yaml") # build a new model from YAML
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
关于训练的完整详情,请参阅训练章节。
您也可以使用Ultralytics HUB以无代码方式训练自定义姿态估计模型。
如何验证训练好的 YOLO11-pose 模型?
验证 YOLO11-pose 模型需要使用训练时保留的相同数据集参数来评估其准确性。示例如下:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.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
更多信息,请访问 Val Section。
能否将 YOLO11-pose 模型导出为其他格式,具体如何操作?
可以,您可以将 YOLO11-pose 模型导出为多种格式,如 ONNX、CoreML、TensorRT 等。这可以通过 Python 或命令行界面(CLI)实现。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
请参考导出章节获取更多详情。导出的模型可部署在边缘设备上,用于健身追踪、运动分析或机器人技术等实时应用。
Ultralytics YOLO11-pose 有哪些可用模型及其性能指标?
Ultralytics YOLO11 提供了多种预训练姿态模型,例如 YOLO11n-pose、YOLO11s-pose、YOLO11m-pose 等。这些模型在大小、准确度(mAP)和速度上有所不同。例如,YOLO11n-pose 模型的 mAPpose50-95 达到 50.0,mAPpose50 达到 81.0。如需完整列表和性能详情,请访问模型章节。
六、OBB 定向边界框 目标检测
https://docs.ultralytics.com/tasks/obb/
定向目标检测通过引入额外角度参数,比标准目标检测更进一步,能更精确地定位图像中的物体。
定向目标检测器的输出是一组旋转的边界框,这些边界框精确地包围图像中的物体,同时附带每个框的类别标签和置信度分数。当物体以不同角度出现时(例如航拍图像中),定向边界框特别有用,因为传统的轴对齐边界框可能会包含不必要的背景。
提示:YOLO11 OBB模型使用-obb
后缀,例如yolo11n-obb.pt
,并在DOTAv1数据集上进行了预训练。
观看视频: 使用Ultralytics YOLO定向边界框(YOLO-OBB)进行目标检测
https://youtu.be/5ku7npMrW40
可视化示例
使用OBB进行船舶检测 | 使用OBB进行车辆检测 |
---|---|
![]() | ![]() |
模型
这里展示的是YOLO11预训练的OBB模型,这些模型在DOTAv1数据集上进行了预训练。
模型会在首次使用时自动从最新的Ultralytics版本下载。
模型 | 尺寸 (像素) | mAPtest 50 | CPU ONNX速度 (ms) | T4 TensorRT10速度 (ms) | 参数量 (M) | 计算量 (B) |
---|---|---|---|---|---|---|
YOLO11n-obb | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
YOLO11s-obb | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
YOLO11m-obb | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
YOLO11l-obb | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
YOLO11x-obb | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
- mAPtest 值是在DOTAv1数据集上单模型多尺度测试的结果。可通过命令
yolo val obb data=DOTAv1.yaml device=0 split=test
复现,并将合并结果提交至DOTA评估。 - 速度 是在Amazon EC2 P4d实例上对DOTAv1验证集图像取平均值的结果。可通过命令
yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
复现。
训练
在 DOTA8 数据集上以 640 的图像尺寸训练 YOLO11n-obb 模型 100 个 epochs。完整参数列表请参阅 配置 页面。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.yaml") # build a new model from YAML
model = YOLO("yolo11n-obb.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-obb.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)
**观看:**如何使用Ultralytics HUB在DOTA数据集上训练Ultralytics YOLO-OBB(定向边界框)模型
数据集格式
有关OBB数据集格式的详细信息,请参阅数据集指南。YOLO OBB格式通过四个角点坐标来定义边界框,坐标值归一化到0到1之间,具体结构如下:
class_index x1 y1 x2 y2 x3 y3 x4 y4
在内部处理时,YOLO 使用 xywhr
格式来计算损失和输出结果,该格式表示边界框的中心点坐标(xy)、宽度、高度以及旋转角度。
验证
在DOTA8数据集上验证训练好的YOLO11n-obb模型准确率。无需额外参数,因为model
会保留其训练data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val(data="dota8.yaml") # 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 contains map50-95(B) of each category
预测
使用训练好的 YOLO11n-obb 模型对图像进行预测。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.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/boats.jpg") # predict on an image
# Access the results
for result in results:
xywhr = result.obb.xywhr # center-x, center-y, width, height, angle (radians)
xyxyxyxy = result.obb.xyxyxyxy # polygon format with 4-points
names = [result.names[cls.item()] for cls in result.obb.cls.int()] # class name of each box
confs = result.obb.conf # confidence score of each box
观看: 如何使用 Ultralytics YOLO-OBB 检测和追踪储罐 | 定向边界框 | DOTA
完整 predict
模式详情请参阅 Predict 页面。
导出
将 YOLO11n-obb 模型导出为其他格式,如 ONNX、CoreML 等。
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
以下是YOLO11-obb支持的导出格式表格。您可以通过format
参数指定导出格式,例如format='onnx'
或format='engine'
。导出完成后,您可以直接对模型进行预测或验证,如运行yolo predict model=yolo11n-obb.onnx
。导出完成后会显示具体使用示例。
格式 | format 参数 | 模型文件 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n-obb.pt | ✅ | - |
TorchScript | torchscript | yolo11n-obb.torchscript | ✅ | imgsz , half , optimize , nms , batch , device |
ONNX | onnx | yolo11n-obb.onnx | ✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino | yolo11n-obb_openvino_model/ | ✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine | yolo11n-obb.engine | ✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml | yolo11n-obb.mlpackage | ✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model | yolo11n-obb_saved_model/ | ✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb | yolo11n-obb.pb | ❌ | imgsz , batch , device |
TF Lite | tflite | yolo11n-obb.tflite | ✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu | yolo11n-obb_edgetpu.tflite | ✅ | imgsz , device |
TF.js | tfjs | yolo11n-obb_web_model/ | ✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle | yolo11n-obb_paddle_model/ | ✅ | imgsz , batch , device |
MNN | mnn | yolo11n-obb.mnn | ✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn | yolo11n-obb_ncnn_model/ | ✅ | imgsz , half , batch , device |
IMX500 | imx | yolo11n-obb_imx_model/ | ✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn | yolo11n-obb_rknn_model/ | ✅ | imgsz , batch , name , device |
更多导出细节请参见导出文档。
实际应用场景
YOLO11的OBB检测技术在多个行业具有广泛的实际应用价值:
- 海事与港口管理:通过多角度检测船舶,实现船队管理与监控
- 城市规划:基于航拍图像分析建筑物和基础设施
- 农业领域:通过无人机影像监测作物生长和农机设备
- 能源行业:检测不同角度的太阳能板和风力涡轮机
- 交通系统:多视角追踪道路及停车场中的车辆
这些应用充分发挥了OBB技术可精确适配任意角度物体的优势,相比传统边界框能提供更准确的检测结果。
FAQ
什么是定向边界框(OBB)?它与常规边界框有何不同?
定向边界框(OBB)通过增加角度参数来提升图像中物体定位的精度。与常规的轴对齐矩形边界框不同,OBB能够旋转以更好地贴合物体的方向。这一特性在需要精确定位物体的应用中尤为实用,例如航拍或卫星图像分析(数据集指南)。
如何使用自定义数据集训练 YOLO11n-obb 模型?
要使用自定义数据集训练 YOLO11n-obb 模型,请按照以下 Python 或 CLI 示例操作:
示例
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo11n-obb.pt")
# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)
更多训练参数,请查阅配置部分。
可用于训练 YOLO11-OBB 模型的数据集有哪些?
YOLO11-OBB 模型已在 DOTAv1 等数据集上进行预训练,但您可以使用任何为 OBB 格式化的数据集。有关 OBB 数据集格式的详细信息,请参阅 数据集指南。
如何将 YOLO11-OBB 模型导出为 ONNX 格式?
使用 Python 或 CLI 都可以轻松将 YOLO11-OBB 模型导出为 ONNX 格式:
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.pt")
# Export the model
model.export(format="onnx")
如需更多导出格式及详细信息,请参阅导出页面。
如何验证 YOLO11n-obb 模型的准确性?
要验证 YOLO11n-obb 模型,你可以使用以下 Python 或 CLI 命令:
示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-obb.pt")
# Validate the model
metrics = model.val(data="dota8.yaml")
完整验证详情请参阅 Val 部分。
2025-06-24(二)