YOLOv13(You Only Look Once v13)是2025年6月最新发布的目标检测模型,代表了当前目标检测技术的最新发展成果。该模型基于深度学习技术构建,可通过Ultralytics框架进行训练和部署。作为YOLO系列的最新版本,YOLOv13在检测精度和运行效率方面都有显著提升。本文将详细介绍YOLOv13的完整实现流程,涵盖数据集准备、模型训练、验证评估以及实际应用等关键环节。

YOLOv13模型概述

YOLOv13是YOLO系列的最新版本,专门针对目标检测任务进行优化。该模型能够实时检测图像中的目标对象并生成精确的边界框。需要注意的是,目前YOLOv13主要支持检测任务。如需进行其他计算机视觉任务(如分割、姿态估计等),建议使用功能更全面的YOLO11版本。

YOLOv13提供了多种规模的模型架构以适应不同的应用场景和性能需求。模型规模从小到大依次为Nano (N)、Small (S)、Medium (M)、Large (L)和eXtra Large (X)。其中,Nano和Small模型适用于资源受限的环境或快速原型验证;Medium和Large模型平衡了性能与计算效率,适合中等规模的应用场景;eXtra Large模型提供最佳检测精度,适用于对准确性要求极高的工业级应用。

数据集构建与标注

数据收集与组织

数据集的质量直接影响模型的最终性能。首先需要收集与目标应用场景相关的图像数据,并将所有图像文件整理到统一的文件夹中。随后将数据上传至Roboflow平台进行专业的数据管理和标注。

在Roboflow平台中选择目标检测项目类型,利用平台提供的标注工具对上传的图像进行精确标注。Roboflow提供了多种标注工具,包括矩形边界框工具、多边形标注工具以及AI辅助标注功能,可以显著提高标注效率和准确性。

性能优化配置

对于配备NVIDIA GPU的用户,强烈建议配置FlashAttention以优化训练和推理性能。FlashAttention能够显著减少内存使用并加速计算过程,特别是在处理大规模数据集时效果明显。由于FlashAttention的编译配置较为复杂,建议参考官方GitHub仓库的详细说明进行配置。

模型训练实施

环境准备与模型选择

完成数据标注后,需要进行数据集健康检查以确保标注质量。在Roboflow的版本管理界面中创建数据集版本,并导出为YOLOv13格式。下载并解压数据集文件,准备进行模型训练。

首先安装Ultralytics框架:

 pip install ultralytics

安装完成后,可通过在终端执行

yolo

命令验证安装是否成功。

在模型选择方面,需要根据具体需求确定是使用预训练模型(.pt格式)还是从零开始训练(.yaml格式)。模型命名规则为

yolov13{size}.{extension}

,例如

yolov13n.pt

yolov13x.yaml

需要特别注意的是,YOLOv13与其他YOLO系列模型的获取方式不同。由于Ultralytics官方尚未将YOLOv13集成到标准YOLO系列中(截至2025年7月6日),用户需要手动下载模型权重文件或配置YAML文件。相关资源可从官方GitHub仓库获取。

训练代码实现

以下是基本的模型训练代码:

 from ultralytics import YOLO  
 model = YOLO('INSERT_MODEL_NAME')  
 # 训练模型
 results = model.train(data='PATH_TO_DATASET', epochs=CHOOSE_AND_EXPERIMENT, imgsz=640)

训练过程中需要合理设置epoch数量,通常需要通过实验确定最优值。训练完成后,模型文件将保存在数据集目录下的

runs

文件夹中,具体路径为对应任务类型下的

train

子目录。

如果遇到"dataset not found"错误,需要检查数据集路径配置是否正确。

模型应用与评估

目标跟踪应用

训练完成的模型可以应用于多种场景。对于视频目标跟踪任务,可使用以下代码:

 from ultralytics import YOLO  
 model = YOLO('PATH_TO_MODEL')   
 # 使用模型执行跟踪
 results = model.track('INSERT YOUTUBE LINK', show=True)

模型验证与性能评估

模型验证是优化模型性能的重要步骤,可以通过以下代码进行:

 from ultralytics import YOLO  
 model = YOLO("PATH TO MODEL")  
 metrics = model.val()  # 不需要参数
 # 查看关键性能指标
 metrics.box.map  # map50-95  
 metrics.box.map50  # map50

图像推理预测

对于新图像的批量预测,可以使用以下代码实现:

 from ultralytics import YOLO  
# 加载模型
model = YOLO("PATH TO MODEL")  
# 在图像列表上运行批量推理
results = model(["im1.jpg", "im2.jpg"])  # 返回Results对象列表
# 处理结果列表
for result in results:  
    boxes = result.boxes  # 边界框输出的Boxes对象
    masks = result.masks  # 分割掩码输出的Masks对象
    keypoints = result.keypoints  # 姿态输出的Keypoints对象
    probs = result.probs  # 分类输出的Probs对象
    obb = result.obb  # OBB输出的定向框对象
    result.show()  # 显示到屏幕
     result.save(filename="result.jpg")  # 保存到磁盘

模型格式转换

为适应不同的部署环境,可以将训练好的模型转换为其他格式,如ONNX:

 from ultralytics import YOLO  
 # 加载模型
 model = YOLO("PATH TO MODEL")  
 # 导出模型
 model.export(format="onnx")

性能基准测试

通过基准测试可以全面评估模型在特定硬件环境下的性能表现:

 from ultralytics.utils.benchmarks import benchmark  
 # 在GPU上进行基准测试
 benchmark(model='PATH_TO_MODEL', data='DATASET PATH', imgsz=640, half=False)

总结

本文详细介绍了YOLOv13目标检测模型的完整实现流程,从数据集准备到模型训练,再到实际应用和性能评估。YOLOv13作为先进的目标检测工具,为计算机视觉研究和工业应用提供了强大的技术支持。通过合理的数据准备、模型配置和训练策略,可以获得满足特定应用需求的高性能检测模型。

https://avoid.overfit.cn/post/9d393f7a1dbe466fbd3ed9c27a3ba1a4

作者:Zain Shariff

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐