jetson nano使用tensorRT运行trt-yolov3-tiny

本文详细介绍在JetsonNano上部署并优化trt-yolov3-tiny的过程,包括下载源码、安装配置、解决常见错误、调整模型精度等关键步骤,实现模型加速。

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

jetson nano使用tensorRT运行trt-yolov3-tiny

网上关于jetson nano上跑trt-yolov3-tiny的资料很少,其中只看到仅有的这么一篇https://blog.youkuaiyun.com/BlackLion_zhou/article/details/90049351,可能因为写的较早,各种库版本有更新,导致会遇到很多坑,所以只能本着遇到问题解决问题的态度,一个个踩过来。现在把每个进程详细总结出来并列举了可能出现的错误及解决方法。希望能帮到遇到同样困难的你。

1.下载trt-yolo

网上有看到使用git的方法下载源码,但实测发现会丢失部分文件,故直接用浏览器下载,网址如下:
https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/restructure

2.运行脚本安装所需的文件

$ cd <你的文件路径>/deepstream_reference_apps/yolo
$ sh prebuild.sh

3.编译安装

$ cd apps/trt-yolo
$ mkdir build && cd build
$ cmake -D CMAKE_BUILD_TYPE=Release ..
$ make
$ sudo make install
$ cd ../../..

如果系统安装的是opencv4, make的时候会报以下错误

fatal error: opencv/cv.h: No such file or directory
#include <opencv/cv.h>
compilation terminated.
lib/CMakeFiles/yolo-lib.dir/build.make:69: recipe for target ‘lib/CMakeFiles/yolo-lib.dir/calibrator.cpp.o’ failed

原因是opencv4中将cv.h合并到imgproc中了
故将deepstream_reference_apps/yolo/lib/trt_utils.h中的

#include <opencv/cv.h>
替换为
#include <opencv2/imgproc/imgproc_c.h>
#include "opencv2/imgcodecs/legacy/constants_c.h"

4.添加测试图片

在deepstream_reference_apps/yolo/data/test_images.txt中添加你要测试图片的全路径(如:/home/test.jpg)

5.运行模型

$ cd <你的文件路径>/deepstream_reference_apps/yolo
$ sudo trt-yolo-app --flagfile=config/yolov3-tiny.txt

模型转换过程中会报如下错误

ERROR: Internal error: could not find any implementation for node mm1_19, try increasing the workspace size with IBuilder::setMaxWorkspaceSize()
ERROR: …/builder/tacticOptimizer.cpp (1461) - OutOfMemory Error in computeCosts: 0

解决方法为将deepstream_reference_apps/yolo/lib/yolo.cpp文件中的

m_Builder->setMaxWorkspaceSize(1 << 20);
空间加大,如改为:
m_Builder->setMaxWorkspaceSize(1 << 30);
然后重新编译
$ cd apps/trt-yolo/build/
$ make && sudo make install

编译完成后执行如下命令

$ cd <你的文件路径>/deepstream_reference_apps/yolo
$ sudo trt-yolo-app --flagfile=config/yolov3-tiny.txt

运行结果如下

Loading Complete!
Total number of images used for inference : 1
[======================================================================] 100 %
Network Type : yolov3-tiny Precision : kFLOAT Batch Size : 1 Inference time per image : 407.128 ms

可以看到测试一张图片的速度为407ms,每秒大概2帧的样的,是不是感觉tensorRT没有加速效果? NO NO NO!,从运行结果来看数据类型用的是 kFLOAT,推理的无需使用这么高的精度。
解决方法为将deepstream_reference_apps/yolo/config/yolov3-tiny.txt文件中的

#--precision=kINT8
改为
--precision=kHALF

修改完成后运行 $ sudo trt-yolo-app --flagfile=config/yolov3-tiny.txt 会重新生成TRT引擎,通过降低数据精度,TRT速度能达到原来的10倍,有时候更高,基本上可能达到实时检测,但检测精度不高。

Loading Complete!
Total number of images used for inference : 1
[======================================================================] 100 %
Network Type : yolov3-tiny Precision : kHALF Batch Size : 1 Inference time per image : 48.416 ms

本文主要介绍了如何跑起来,但检测的是图片,视觉感觉效果不是那强烈,下章会介绍用这个模块检测视频

### 如何在 Jetson Nano 上安装 TensorRT 的完整教程 #### 准备工作 为了确保能够在 Jetson Nano 上顺利运行 TensorRT 加速的目标检测模型(如 YOLOv3-tinyYOLOv4-tiny),需要完成一系列准备工作。这包括硬件配置、软件依赖项以及必要的开发工具。 #### 步骤一:验证基础环境 确认 Jetson Nano 已经正确设置并能够正常运行 Python 和 CUDA 环境。可以通过以下命令来测试 PyCUDA 是否已成功安装,这是后续使用 TensorRT 所需的基础组件之一[^1]: ```bash sudo apt-get update && sudo apt-get upgrade -y pip install pycuda ``` 如果上述操作无误,则可以继续下一步。 #### 步骤二:安装 TensorRT 及其依赖项 通过官方渠道下载适合 Jetson 平台的 TensorRT 版本,并按照文档指导完成安装过程。以下是具体方法: 1. **获取 TensorRT 软件包** 前往 NVIDIA 官方网站或者 GitHub 存储库拉取最新版 TensorRT Pro 项目源码[^4]: ```bash git clone https://github.com/shouxieai/tensorRT_Pro.git cd tensorRT_Pro ``` 2. **修改 CMakeLists 文件** 编辑 `CMakeLists.txt` 来适配当前系统的架构与路径设定。此步骤对于构建自定义插件至关重要。 3. **编译 TRT-PY 插件** 使用 cmake 构建支持 python 接口的功能模块。执行如下脚本前,请先阅读 README 文档了解额外需求。 ```bash mkdir build && cd build cmake .. make -j$(nproc) ``` #### 步骤三:验证 TensorRT 安装状态 一旦所有必需组件都已完成部署,可通过简单的 Python 测试程序检查 TensorRT 功能是否可用[^3]: ```python import tensorrt as trt print(f&#39;TensorRT version installed: {trt.__version__}&#39;) ``` 当终端显示类似 “8.x.y.z” 字样的输出时表示安装成功。 #### 步骤四:集成到目标检测框架中 最后一步就是将训练好的权重文件转换成 ONNX 格式再导入至 TensorRT 中实现推理优化。这里推荐参考开源项目 `tensorrt_demos`,它提供了详尽的例子展示如何结合不同类型的神经网络结构进行性能调优[^2][^5]: - 下载预处理后的 yolo 模型及相关资源; - 根据实际应用场景调整参数配置; - 启动 demo 查看效果变化情况。 以上即为完整的基于 Jetson Nano 设备利用 TensorRT 提升深度学习推断效率的操作流程概述。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值