AI个人学习
和实操指南
资源推荐1

YOLOv12:实时图像和视频目标检测的开源工具

本文于 2025-02-23 13:21 更新,部分内容具有时效性,如有失效,请留言

综合介绍

YOLOv12 是由 GitHub 用户 sunsmarterjie 开发的一个开源项目,专注于实时目标检测技术。该项目基于 YOLO(You Only Look Once)系列框架,引入注意力机制优化传统卷积神经网络(CNN)的性能,不仅在检测精度上有所提升,还保持了高效的推理速度。YOLOv12 适用于多种场景,如监控系统、自动驾驶和图像分析等,提供 Nano、Small、Medium、Large、Extra-Large 五种模型规模,满足不同计算能力和应用需求。项目采用 GNU AGPL-3.0 许可证,用户可以免费下载代码并根据需求进行定制开发。开发者团队包括来自布法罗大学和中科院的研究人员,技术文档和安装指南详尽,便于用户快速上手。

YOLOv12:提供实时图像和视频目标检测的开源工具-1


 

功能列表

  • 高效实时目标检测: 在 T4 GPU 上,YOLOv12-N 可实现 40.6% mAP,推理延迟仅 1.64ms。
  • 多模型选择: 提供五种模型(Nano 到 Extra-Large),适配从低功耗设备到高性能服务器的多种硬件环境。
  • 注意力机制优化: 引入“区域注意力”(Area Attention)和 R-ELAN 模块,提升检测精度并减少计算复杂度。
  • 模型导出: 支持将训练模型导出为 ONNX 或 TensorRT 格式,方便部署到生产环境。
  • 自定义数据集训练: 用户可使用自己的数据集训练模型,适用于特定目标检测任务。
  • 可视化支持: 集成监督工具(supervision),方便展示检测结果和性能评估。

 

使用帮助

安装流程

YOLOv12 目前没有独立的 PyPI 包,需要从 GitHub 源码安装。以下是详细的安装步骤,适用于 Linux 系统(Windows 或 Mac 用户需调整环境配置):

  1. 准备环境
    • 确保系统安装 Python 3.11 或更高版本。
    • 安装 Git:sudo apt install git(Ubuntu 示例)。
    • 可选:安装 NVIDIA GPU 驱动和 CUDA(推荐 11.8 或更高版本)以加速训练和推理。
  2. 克隆仓库
    在终端运行以下命令,将 YOLOv12 仓库下载到本地:

    git clone https://github.com/sunsmarterjie/yolov12.git
    cd yolov12
  1. 创建虚拟环境
    使用 Conda 或 venv 创建独立的 Python 环境,避免依赖冲突:

    conda create -n yolov12 python=3.11
    conda activate yolov12
    
  2. 安装依赖
    安装项目所需的依赖包,包括 PyTorch、flash-attn 和 supervision 等:

    wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    pip install -r requirements.txt
    pip install -e .
    
  3. 验证安装
    运行以下命令检查环境是否正确配置:

    python -c "from ultralytics import YOLO; print('YOLOv12 installed successfully')"
    

使用方法

训练自定义模型

YOLOv12 支持用户使用自己的数据集进行训练,适合特定场景的目标检测任务。操作步骤如下:

  1. 准备数据集
    • 数据需符合 YOLO 格式(包含 images 和 labels 文件夹,labels 为 .txt 文件,标注目标类别和边界框坐标)。
    • 创建 data.yaml 文件,指定训练集、验证集路径和类别名称。例如:
      train: ./dataset/train/images
      val: ./dataset/val/images
      nc: 2  # 类别数量
      names: ['cat', 'dog']  # 类别名称
      
  2. 加载模型并训练
    使用 Python 脚本加载预训练模型并开始训练:

    from ultralytics import YOLO
    model = YOLO('yolov12s.pt')  # 可选 n/s/m/l/x 模型
    results = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
    
    • epochs:训练轮数,建议 250 次以上以获得更好效果。
    • imgsz:输入图像尺寸,默认 640x640。
  3. 查看训练结果
    训练完成后,结果保存在 runs/detect/train 文件夹,包括模型权重(best.pt)和混淆矩阵等。运行以下代码查看混淆矩阵:

    from IPython.display import Image
    Image(filename='runs/detect/train/confusion_matrix.png', width=600)
    

推理与测试

训练好的模型可用于图像或视频的目标检测:

  1. 单张图像检测
    model = YOLO('path/to/best.pt')
    results = model('test.jpg')
    results.show()  # 显示检测结果
    results.save()  # 保存结果到 runs/detect/predict
    
  2. 视频检测
    使用命令行处理视频文件:

    python app.py --source 'video.mp4' --model 'path/to/best.pt'
    
  3. 性能评估
    对验证集进行评估,获取 mAP 等指标:

    results = model.val(data='path/to/data.yaml')
    print(results.box.map)  # 输出 mAP@0.5:0.95
    

模型导出

将模型导出为生产环境可用的格式:

model.export(format='onnx', half=True)  # 导出为 ONNX,支持 FP16 加速

导出的模型可部署到边缘设备或服务器上。

特色功能操作

  • 注意力机制优化
    YOLOv12 的“区域注意力”模块无需手动配置,会自动在训练和推理中优化特征提取,提升小目标检测能力。用户只需选择合适的模型规模(如 Nano 用于低功耗设备),即可享受这一特性带来的精度提升。
  • 实时检测
    在支持 CUDA 的 GPU 上运行时,推理速度极快。例如,使用 T4 GPU 运行 YOLOv12-N 模型,单张图像检测仅需 1.64ms。用户可通过监督工具(supervision)实时可视化检测框和置信度:

    results = model('image.jpg')
    results.plot()  # 显示带标注的图像
    
  • 多场景适配
    通过调整模型规模和训练数据,YOLOv12 可轻松适配不同任务。例如,在监控系统中检测行人,或在自动驾驶中识别车辆和交通标志。
内容3
未经允许不得转载:首席AI分享圈 » YOLOv12:实时图像和视频目标检测的开源工具

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文