前言:
为了更全面从容面对自己数据集训练模型的新情况,因此我觉得很有必要把我使用的工具yolov8的使用做个详细的介绍,不过2024年已经出了yolov11,不得不感慨计算机真是日新月异。 我现阶段遇到的问题主要是工程工具不熟练的问题,因此接下来将会从理论工作上先抽出身来集中力量解决工具使用问题。
3.1 Ultralytics YOLO11 模式
Ultralytics YOLO 生态系统和集成
引言
Ultralytics YOLO11 不只是另一个目标检测模型,它是一个涵盖机器学习模型全生命周期的多功能框架—从数据导入、模型训练到验证、部署和实际跟踪,每个模式都有特定的用途,为不同任务和使用场景提供了灵活性和高效性。
模式概览
理解 Ultralytics YOLO11 支持的不同模式是充分利用模型的关键:
-
Train 模式:在自定义或预加载的数据集上微调模型。
-
Val 模式:训练后的检查点,用于验证模型性能。
-
Predict 模式:在真实数据上释放模型的预测能力。
-
Export 模式:将模型转换为多种部署格式,准备上线。
-
Track 模式:将目标检测模型扩展为实时跟踪应用。
-
Benchmark 模式:分析模型在不同部署环境下的速度和精度。
本博客将为您提供每种模式的概述和实用见解,帮助您充分利用 YOLO11 的潜力。
Train 模式
Train 模式用于在自定义数据集上训练 YOLO11 模型。在该模式下,模型使用指定的数据集和超参数进行训练,目的是优化模型的参数,使其能够准确预测图像中物体的类别和位置。
训练示例
-
我们可以使用 Python 或 CLI 命令开始训练,如下所示:
from ultralytics import YOLO # 加载预训练的 YOLO 模型(可以选择 n, s, m, l 或 x 版本) model = YOLO("yolo11n.pt") # 在自定义数据集上开始训练 model.train(data="path/to/dataset.yaml", epochs=100, imgsz=640)
Val 模式
Val 模式用于在 YOLO11 模型训练后进行验证。在此模式下,模型在验证集上进行评估,以衡量其准确性和泛化性能。该模式还可以用于调整模型的超参数,以提高其性能。
验证示例
-
使用以下代码进行模型验证:
from ultralytics import YOLO # 加载预训练或自定义的 YOLO 模型 model = YOLO("yolo11n.pt") # 在验证集上运行验证 model.val(data="path/to/validation.yaml")
Predict 模式
Predict 模式用于使用训练好的 YOLO11 模型对新图像或视频进行预测。在该模式下,模型从检查点文件中加载,用户可以提供图像或视频进行推理,模型会预测输入中物体的类别和位置。
预测示例
-
使用以下代码进行预测:
from ultralytics import YOLO # 加载训练好的 YOLO 模型 model = YOLO("yolo11n.pt") # 对新图像进行预测 results = model.predict(source="path/to/image_or_video")
Export 模式
Export 模式用于将 YOLO11 模型导出为可用于部署的格式。在该模式下,模型可以转换为其他软件应用程序或硬件设备使用的格式,适合于生产环境中的部署。
导出示例
-
使用以下代码将模型导出为 ONNX 格式:
from ultralytics import YOLO # 加载训练好的 YOLO 模型 model = YOLO("yolo11n.pt") # 导出模型为 ONNX 格式(也可以指定其他格式) model.export(format="onnx")
Track 模式
Track 模式用于使用 YOLO11 模型进行实时对象跟踪。在该模式下,模型从检查点文件中加载,用户可以提供实时视频流来进行对象跟踪,适用于监控系统或自动驾驶汽车等应用。
跟踪示例
-
使用以下代码启用对象跟踪:
from ultralytics import YOLO # 加载预训练的 YOLO 模型 model = YOLO("yolo11n.pt") # 在视频中跟踪对象 model.track(source="path/to/video.mp4")
Benchmark 模式
Benchmark 模式用于分析 YOLO11 不同导出格式的速度和精度。基准测试提供有关导出格式的大小、检测、分割和姿态的 mAP50-95 指标,以及分类的 accuracy_top5 指标,并比较在不同硬件环境下每张图像的推理时间。
基准示例
-
使用以下代码进行基准测试:
from ultralytics.utils.benchmarks import benchmark # 在 GPU(设备 0)上运行基准测试 benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
FAQ
如何使用 Ultralytics YOLO11 训练自定义目标检测模型?
使用 Train 模式来训练自定义目标检测模型。需要准备以 YOLO 格式标注的数据集,包含图像和对应的标注文件。使用以下命令开始训练:
from ultralytics import YOLO
# 加载预训练的 YOLO 模型
model = YOLO("yolo11n.pt")
# 开始训练
model.train(data="path/to/dataset.yaml", epochs=100, imgsz=640)
Ultralytics YOLO11 在验证过程中使用哪些指标?
Ultralytics YOLO11 在验证过程中使用多种指标来评估模型性能,包括:
-
mAP(平均精度):评估目标检测的准确性。
-
IOU(交并比):测量预测框与真实框之间的重叠程度。
-
精确率和召回率:精确率衡量真正例占总检测结果的比例,召回率衡量真正例占所有实际正例的比例。
如何导出 YOLO11 模型用于部署?
Ultralytics YOLO11 提供导出功能,将训练好的模型转换为多种部署格式,如 ONNX、TensorRT、CoreML 等。使用以下代码导出模型:
from ultralytics import YOLO
# 加载训练好的 YOLO 模型
model = YOLO("yolo11n.pt")
# 导出模型为 ONNX 格式
model.export(format="onnx")
Ultralytics YOLO11 中 Benchmark 模式的作用是什么?
Benchmark 模式用于分析 YOLO11 模型在不同导出格式下的速度和精度,包括 ONNX、TensorRT 和 OpenVINO 等。它提供模型大小、mAP50-95 等指标,以及不同硬件环境下的推理时间,帮助用户选择最适合其部署需求的格式。
如何使用 Ultralytics YOLO11 实现实时对象跟踪?
使用 Track 模式可以实现实时对象跟踪。该模式将目标检测扩展为视频帧或实时流的对象跟踪。使用以下代码启用跟踪:
from ultralytics import YOLO
# 加载预训练的 YOLO 模型
model = YOLO("yolo11n.pt")
# 在视频中跟踪对象
model.track(source="path/to/video.mp4")