YOLO(You Only Look Once)是一种实时目标检测算法,由Joseph Redmon等人于2016年提出。与传统的两阶段目标检测方法(如R-CNN系列)不同,YOLO将目标检测任务重新定义为一个回归问题,直接在单次前向传播中预测边界框和类别概率,实现了速度与精度的平衡。

数据集与代码来源Yolov12: https://github.com/sunsmarterjie/yolov12

核心特点

1. 单阶段检测架构

YOLO将输入图像划分为S×S的网格,每个网格负责预测B个边界框及其置信度,同时预测C个类别概率。这种设计使得网络只需"看一次"图像即可完成检测,推理速度极快。

2. 端到端训练

整个网络采用端到端的方式训练,损失函数直接优化检测性能,无需复杂的区域提议生成和分类器微调步骤。

3. 全局信息利用

由于在整张图像上进行预测,YOLO能够利用全局上下文信息,减少背景误检。

技术演进

YOLOv1(2016):开创性工作,将检测速度提升到45 FPS,但定位精度相对较低。

YOLOv2/YOLO9000(2017):引入批量归一化、高分辨率分类器、锚框机制和多尺度训练,显著提升精度。

YOLOv3(2018):采用Darknet-53作为主干网络,引入多尺度预测和特征金字塔网络(FPN),在速度和精度上达到新的平衡。

YOLOv4(2020):引入CSPDarknet53、SPP、PANet等先进模块,以及Mosaic数据增强、CIoU损失等训练技巧,成为当时最先进的实时检测器。

YOLOv5(2020):由Ultralytics团队开发,采用PyTorch框架,引入自适应锚框计算、自动学习率调整等优化,更易于部署和训练。

YOLOv6(2022):美团团队开发,针对工业应用优化,引入RepVGG风格的主干网络和更高效的检测头设计。

YOLOv7(2022):在速度和精度上进一步突破,引入可训练的bag-of-freebies和bag-of-specials策略。

YOLOv8(2023):Ultralytics最新版本,支持目标检测、实例分割、姿态估计等多种任务,提供更友好的API和更优的性能。

应用领域

YOLO凭借其实时性能,广泛应用于:

  • 自动驾驶:车辆、行人、交通标志检测
  • 安防监控:入侵检测、异常行为识别
  • 工业检测:产品缺陷检测、质量监控
  • 医疗影像:病灶检测、细胞识别
  • 零售分析:商品识别、客流统计

数据集

数据集收集与处理(代码平台)数据集与代码来源https://www.kaggle.com/与数据集来源https://universe.roboflow.com/

在这里插入图片描述

在这里插入图片描述

模型选取

modelscope模型与数据集平台(huggingface)

在这里插入图片描述

模型介绍

模型版本 推荐使用场景 硬件要求 性能特点
YOLOv12n 移动端、嵌入式 速度优先
YOLOv12s 边缘计算、轻量服务器 中低 平衡型
YOLOv12m 常规服务器应用 中等 均衡型
YOLOv12l 高性能服务器 中高 精度优先
YOLOv12x 研究、高性能计算 极致精度
yolov12l.pt 53.70MB 推荐使用场景 4个月前 下载
yolov12m.pt 40.90MB Upload YOLO12 4个月前 下载
yolov12n.pt 5.60MB Upload YOLO12 4个月前 下载
yolov12s.pt 19.01MB Upload YOLO12 4个月前 下载
yolov12x.pt 119.32MB Upload YOLO12 4个月前 下载

微调与推理

品质环境数据集,Yolo系列从2015年,代码封装简洁,只需几句代码可完成训练与测试

在这里插入图片描述

参数介绍

代码版

# 训练
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
  model = YOLO('models/v12/yolov12n.pt')
  results = model.train(
    data='QC/data.yaml',  #数据集配置文件的路径
    epochs=30,  #训练轮次总数
    batch=16,  #批量大小,即单次输入多少图片训练
    imgsz=640,  #训练图像尺寸
    scale=0.5,  # S:0.9; M:0.9; L:0.9; X:0.9 #增益因子缩放图像,模拟物体与摄像机的不同距离。
    mosaic=1.0,  #默认值
    mixup=0.0,  # S:0.05; M:0.15; L:0.15; X:0.2  #默认值
    copy_paste=0.1,  # S:0.15; M:0.4; L:0.5; X:0.6  #分割标签 进行复制和粘贴
    device= 0,  #指定训练的计算设备,无nvidia显卡则改为 'cpu'
    optimizer='SGD',  #训练使用优化器,可选 auto,SGD,Adam,AdamW 等
    workers=8,  #加载数据的工作线程数
    amp= True,  #True 或者 False, 解释为:自动混合精度(AMP) 训练
    cache=False  # True 在内存中缓存数据集图像,服务器推荐开启
)

# 测试
from ultralytics import YOLO

model = YOLO('weights/best.pt')
source = "assets"
results = model(source)

模型评估

模型微调过程中会生成各类评估曲线(左上角会给出标签)

在这里插入图片描述

环保绿化保护数据集的结果
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐