DeepStream-Yolo项目中的YOLOv5u模型使用指南

DeepStream-Yolo项目中的YOLOv5u模型使用指南

DeepStream-Yolo NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 implementation for YOLO models DeepStream-Yolo 项目地址: https://gitcode.com/gh_mirrors/de/DeepStream-Yolo

前言

在计算机视觉领域,目标检测是一项基础且重要的任务。YOLOv5u作为YOLO系列的最新变体,在保持实时性的同时进一步提升了检测精度。本文将详细介绍如何在DeepStream框架中使用YOLOv5u模型进行高效的目标检测。

环境准备

在开始之前,请确保已安装以下组件:

  • DeepStream SDK(建议6.0及以上版本)
  • CUDA和cuDNN(版本需与DeepStream匹配)
  • Python 3.6+
  • PyTorch

建议使用Python虚拟环境以避免依赖冲突。

模型转换

1. 获取YOLOv5u源码

首先需要获取YOLOv5u的官方实现代码:

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .
pip install onnx onnxslim onnxruntime

2. 准备转换脚本

从DeepStream-Yolo项目中获取专用的模型转换脚本export_yoloV5u.py,并将其复制到ultralytics目录下。

3. 下载预训练模型

YOLOv5u提供了多个预训练模型,可以根据需求选择合适的版本。例如下载YOLOv5su模型:

wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov5su.pt

4. 模型转换关键参数

执行转换命令时,有几个重要参数需要注意:

python3 export_yoloV5u.py -w yolov5su.pt --dynamic
  • 输入尺寸调整:使用-s--size参数

    -s 1280  # 将输入尺寸调整为1280x1280
    -s 640 768  # 指定不同高度和宽度
    
  • 模型简化:DeepStream 6.0+支持使用--simplify简化ONNX模型

  • 批处理设置

    • 动态批处理(DeepStream 6.1+):--dynamic
    • 静态批处理:--batch 4(示例为批大小4)
  • 版本兼容性

    • DeepStream 5.1用户需指定opset 12或更低版本:--opset 12

编译自定义插件

1. 设置CUDA版本

根据DeepStream版本设置正确的CUDA版本:

# x86平台示例
export CUDA_VER=12.2  # DeepStream 7.0/6.4

# Jetson平台示例
export CUDA_VER=11.4  # DeepStream 6.3/6.2/6.1.1/6.1

2. 编译过程

执行以下命令完成编译:

make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo

配置文件调整

1. 推理配置文件

编辑config_infer_primary_yoloV5u.txt文件,关键配置包括:

[property]
onnx-file=yolov5su.pt.onnx  # 指定ONNX模型路径
num-detected-classes=80  # 类别数
parse-bbox-func-name=NvDsInferParseYolo  # 解析函数

# 为提高精度,建议添加以下参数
maintain-aspect-ratio=1
symmetric-padding=1

2. 主应用配置文件

deepstream_app_config.txt中指定使用的推理配置文件:

[primary-gie]
config-file=config_infer_primary_yoloV5u.txt

模型测试与部署

执行以下命令启动应用:

deepstream-app -c deepstream_app_config.txt

注意事项

  1. 首次运行时TensorRT引擎生成可能耗时较长(可能超过10分钟)
  2. 对于自定义模型,需要根据实际情况调整批处理大小、网络模式等参数
  3. YOLOv5u采用中心填充的resize策略,配置文件中相应参数对精度有显著影响

性能优化建议

  1. 输入尺寸选择:根据应用场景平衡精度和速度,较大的输入尺寸提高精度但降低FPS
  2. 批处理优化:视频流处理建议使用动态批处理,批量推理场景适合静态批处理
  3. TensorRT优化:首次运行后生成的引擎文件可重复使用,避免重复优化
  4. 后处理优化:可根据实际需求调整NMS参数,在精度和速度间取得平衡

通过以上步骤,开发者可以高效地将YOLOv5u模型集成到DeepStream流水线中,实现高性能的目标检测应用。

DeepStream-Yolo NVIDIA DeepStream SDK 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 implementation for YOLO models DeepStream-Yolo 项目地址: https://gitcode.com/gh_mirrors/de/DeepStream-Yolo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞队千Virginia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值