jetson nano 运行 yolov5 ( tensorRT 加速, FPS>25)

本文介绍如何在JetsonNano上配置并运行YoloV5目标检测模型,通过TensorRT加速,实现高效推断过程。文章涵盖从源码下载、模型文件生成到deepstream配置及最终编译运行的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jetson nano 运行 yolov5 (FPS>25)

导读

这篇文章基于jetson nano,但同样适用于jetson系列其他产品。首先确保你的jetson上已经安装好了deepstream,由于deepstream官方没有支持yolov5的插件(lib库),所以我们需要使用第三方的lib库来构建yolov5的trt引擎,deepstream官方的nvinfer插件会根据我们的配置文件导入yolov5的lib库。
请确保已经按照官方文档安装好deepstream。
lib库链接:https://github.com/marcoslucianops/DeepStream-Yolo

开始

1. 下载源码

随便建个目录,运行下面代码下载 yolov5 deepstream trt引擎lib库

$ git clone https://github.com/marcoslucianops/DeepStream-Yolo

2. 生成 yolov5的配置文件(cfg和wts文件)

为了使用tensorRT加速yolov5,我们需要tensorRT直接可以读取的engine文件,或者通过cfg以及wts文件来构建engine,这里我们使用第二种方法,因为上面的源码中提供了从pt文件到cft以及wts文件转换的脚本。

2.1 另找一台主机,参考下面的链接,下载并配置好yolov5的pytorch环境:

ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)

2.2 在jetson上,进入 DeepStream-Yolo/utils 目录,把 gen_wts_yoloV5.py 拷贝到上一步下载好的yolov5 工程根目录,参考我的目录结构:
在这里插入图片描述

2.3 在上述目录中,下载 yolov5n.pt 模型文件

# 参考这个脚本下载,或者直接去github上下载
$ wget https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5n.pt

由于jetson nano的性能关系,这里我们只测试运行yolov5n

2.3 生成 cfg 和 wts

$ python3 gen_wts_yoloV5.py -w yolov5n.pt

生成后,目录中会出现两个文件,yolov5n.cfg 以及 yolov5n.wts
在这里插入图片描述

2.4 把 yolov5n.cfg 和 yolov5n.wts 放到jetson nano的DeepStream-Yolo文件夹中,参考:
在这里插入图片描述
至此,所有文件已经准备完毕,我们修改好DeepStream的yolov5配置文件后,就可以编译运行了。

2. 修改deepstream配置文件

回到 jetson nano 的DeepStream-Yolo 文件夹,需要注意两个配置文件:

1) deepstream_app_config.txt // deepstream-app 配置文件
2) config_infer_primary_yoloV5.txt // yolov5 trt引擎插件配置文件

第一个文件是给DeepStream SDK官方样例APP deepstream-app 看的,主要作用是告诉 deepstream-app 我们需要哪些组件来构建我们的pipeline,第二个文件的作用是用来配置 yolov5 的tensorRT 引擎插件的,里面指定了yolov5网络的一些配置参数以及生成engine需要的配置文件路径等。

修改第一个文件 deepstream_app_config.txt,让它使用 yolov5的配置文件:

# 省略...

[primary-gie]
enable=1
gpu-id=0
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_yoloV5.txt # 修改这里
# 省略 ...

这里参考下面注释,修改第二个配置文件 - config_infer_primary_yoloV5.txt

[property]
# 省略 ...
**model-engine-file=model_b2_gpu0_fp16.engine** # 修改 fp32->fp16
batch-size=2 # batch-size 改为2,速度会快一些
# 省略...
**network-mode=2 #** 修改为 2, 强制使用fp16推理
# 省略 ...

注意:FPS与输入图像大小,batch-size,interval等参数有关,需要根据实际应用优化,这里我们直接把infer的batch-size改为2,模型的推理速度就会有明显提升

3. 编译运行

进入 DeepStream-Yolo 文件夹,运行下面的命令编译并运行

$ cd nvdsinfer_custom_impl_Yolo/
$ CUDA_VER=10.2 make #根据你的CUDA版本修改10.2数字部分
$ cd .. 

# 运行
$ deepstream-app -c deepstream_app_config.txt

在这里插入图片描述

### 部署 YOLOv5s 到 NVIDIA Jetson Nano 实现手势识别 #### 安装依赖项 为了在 NVIDIA Jetson Nano 上成功运行 YOLOv5s 模型并实现手势识别功能,需先完成必要的软件和硬件准备。以下是具体的操作指南: 1. **操作系统安装** 推荐使用官方支持的 Ubuntu 版本(如 18.04 或更高版本),可以通过 NVIDIA 提供的镜像文件刷入到 Jetson Nano 设备中[^2]。 2. **CUDA 和 cuDNN 安装** Jetson Nano 自带 CUDA 支持,但仍需确认已正确安装对应版本的 cuDNN 库。通过以下命令验证 CUDA 是否可用: ```bash nvcc --version ``` 如果未安装或需要升级,请访问 NVIDIA 开发者网站下载适合 Jetson 平台的 cuDNN 包[^3]。 3. **PyTorch 环境搭建** PyTorch 是训练和推理 YOLOv5 的核心框架之一,在 Jetson Nano 上推荐使用预编译包来加速安装流程。执行如下指令: ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu102 ``` 4. **YOLOv5 下载与配置** 克隆官方仓库至本地目录,并按照文档指引设置项目结构。 ```bash git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt ``` #### 性能优化建议 由于 Jetson Nano 的资源有限,因此需要采取一些措施提升模型推断效率: 1. **降低输入分辨率** 将图像尺寸调整为更小规模(例如从默认 640×640 缩短至 320×320),从而减少 GPU 计算负担[^4]。 2. **启用 TensorRT 加速** 使用 NVIDIA TensorRT 工具链对 ONNX 文件进一步优化,显著改善 FPS 表现。参考脚本如下所示: ```python import torch from utils.torch_utils import select_device, time_sync device = select_device('cuda') model = attempt_load(weights_path, map_location=device) # Load FP32 model imgsz = (320, 320) im = torch.zeros((1, 3, *imgsz)).to(device).type_as(next(model.parameters())) # Init image tensor _ = model(im.half()) if half else None # Run once to warm up the engine with torch.no_grad(): y = model(im)[0].cpu().numpy() # Perform inference and convert output format accordingly. ``` 3. **批量处理数据流** 对连续帧采用批量化机制传输给神经网络预测模块,以此摊销固定开销带来的延迟效应[^5]。 #### 手势识别扩展思路 基于上述基础架构之上,可针对特定应用场景定制化开发手势分类逻辑。比如利用 OpenCV 抓取摄像头视频源作为输入素材;再结合姿态估计库 MediaPipe 获取手部关键点坐标信息辅助决策判断等技术手段增强鲁棒性和精确度水平。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值