YOLO(You Only Look Once)模型概述

1,589 阅读5分钟

YOLO(You Only Look Once)是一种非常流行的实时物体检测算法,最初由 Joseph Redmon 提出,并且经历了多个版本的迭代。YOLO 模型的核心特点是采用一个单独的神经网络对图像进行处理,进行 物体检测分类、和 定位(即边界框回归)。YOLO 是一种 端到端(end-to-end)训练的模型,输入图像后,直接输出检测结果(物体类别、边界框位置及其置信度)。

YOLO 模型的主要特点:

  1. 实时性强:YOLO 的一个最大特点是能够在实时应用中进行物体检测。传统物体检测算法(如 R-CNN)通过多个阶段生成候选区域,然后再进行分类和回归,而 YOLO 通过一次前向传播就能完成物体检测,因此推理速度极快。
  2. 端到端训练:YOLO 使用单一的神经网络进行训练,不需要复杂的候选区域生成和后处理步骤。
  3. 全局信息:YOLO 在进行物体检测时会同时考虑整张图像,避免了局部区域的局限性,能够更好地捕捉物体的全局上下文信息。
  4. 多尺度检测:YOLO 能够检测不同尺度的物体,尤其是 YOLOv3 及后续版本通过引入多层次检测机制(使用不同尺度的特征图进行检测),在不同大小的物体上取得了较好的平衡。

YOLO 模型的工作原理:

  1. 图像划分网格:YOLO 将输入图像划分为一个 SxS 的网格,每个网格负责检测图像中的物体。
  2. 预测边界框:每个网格单元预测多个边界框(bounding boxes),每个边界框包含物体的位置(中心坐标 x, y,宽度和高度 w, h),以及物体存在的置信度。
  3. 物体类别和置信度:每个网格单元还会预测该区域内物体的类别和该物体存在的置信度。
  4. 非最大抑制:由于一个物体可能在多个网格中被预测到,YOLO 使用 非最大抑制(NMS)来去除冗余的预测,保留最优的边界框。

预训练模型概述

预训练模型是指一个已经在某个数据集上训练过的深度学习模型。在许多应用中,使用预训练模型能显著提高训练效率和最终性能,因为该模型已经在大规模数据集上学习到了一些通用的特征和模式。在物体检测和计算机视觉任务中,预训练模型通常是指已经在大规模数据集(如 ImageNet、COCO 等)上训练过的模型。

预训练模型的优势:

  1. 加速训练过程: 使用预训练模型可以避免从零开始训练,节省了大量计算资源和时间。尤其是在数据量不够大或者计算资源有限的情况下,预训练模型能让模型更快地收敛到较好的解。
  2. 提高模型性能: 预训练模型已经在大规模数据集上进行训练,并学习到了一些通用的特征。通过迁移学习(Transfer Learning),预训练模型能够很好地适应新的任务,通常能够在新任务上获得较好的性能。
  3. 减少过拟合: 当训练数据较少时,使用预训练模型可以有效防止过拟合,因为模型已经在丰富的数据集上学习到了一些通用特征,不会过度依赖当前任务的小数据集。

YOLO 与预训练模型的结合

对于 YOLO 模型,预训练权重可以帮助快速获得一个在物体检测任务上表现出色的模型。使用预训练模型的 YOLO,尤其是在 COCO 等大规模数据集上训练过的模型,可以直接应用于特定任务,或者进行微调来适应新的数据。

1. 如何使用预训练的 YOLO 模型

  • 加载预训练模型:大多数开源 YOLO 实现(如 YOLOv5)都提供了预训练权重,可以通过简单的代码行加载模型:

    python
    复制编辑
    model = torch.hub.load('ultralytics/yolov11n', 'yolov11n')  # 加载预训练模型
    

20250213200515.jpg

20250213195555.jpg

20250213195609.jpg

  • 微调预训练模型:如果有新的数据集,可以在 YOLO 模型的预训练基础上进行微调。通常会冻结模型的某些层,只对最后几层进行训练。

    python
    复制编辑
    model.train()  # 开始训练,微调模型
    model.fit(data='new_data.yaml', epochs=5)
    
  • 推理与预测:使用预训练模型进行物体检测时,可以直接对图像或视频进行推理。

    python
    复制编辑
    results = model('image.jpg')  # 输入图片进行推理
    results.show()  # 显示结果
    

2. 预训练模型的优势

  • 高效:可以避免从零开始训练模型,节省时间和计算资源。
  • 适应性强:预训练模型已经在大数据集上学习到了通用特征,可以快速迁移到新的任务上。
  • 增强准确性:预训练模型通常可以提供较高的准确性,尤其是当你的数据集较小或数据不足时。

在PiscTrace上使用预训练模型

PiscTrace支持YOLO v8-11的预训练模型,直接把预训练模型(.pt)放置在安装位置\Support Files\data下即可加载到操作面板。支持处理图片,视频,网络视频流和摄像头视频流。

20250213200523.jpg

20250213195509.jpg

20250213195519.jpg

总结

YOLO 是一种高效的物体检测模型,能够通过单一网络进行快速的物体检测。结合预训练模型,YOLO 可以在许多视觉任务中加速开发过程,提高性能。预训练模型的优势在于能够节省训练时间、提高模型性能,并且适用于迁移学习任务。对于物体检测,使用预训练的 YOLO 模型是一种非常高效的做法,尤其是在没有大量标注数据时。