Jetson Nano B01部署YOLOv5项目全流程(五)TensorRT加速配置

五、TensorRT加速配置

        TensorRT是一个高效的深度学习推理引擎,针对NVIDIA GPU进行了优化,可以提供高度并行化的推理性能。TensorRT的优点包括:

  1. 快速推理:TensorRT可以将深度学习模型转换为高度优化的计算图,从而加速神经网络的推理速度,同时使用高度并行化的计算方法,减少了计算时间。

  2. 减少模型大小:TensorRT使用量化、剪枝、缩放和融合等技术,可以将深度学习模型的大小缩小到原始大小的一半或更少,从而减小了模型的存储和传输成本。

  3. 可移植性:TensorRT支持多种语言和框架,包括TensorFlow、PyTorch、Caffe等,并且可以轻松地在不同的平台上使用。

  4. 易于使用:TensorRT提供了一个简单的API,可以快速地将深度学习模型集成到应用程序中,并且可以使用TensorRT的优化技术,轻松地优化模型进行推理。

总之,TensorRT的加速优势可以让深度学习模型在实际应用中更快速、更高效地进行推理。

1.Pycuda安装

        如果您使用Python编写的应用程序需要进行深度学习模型推理,并且您想要使用CUDA进行加速,那么在使用TensorRT之前安装和使用PyCUDA是非常有用的。在这里为防止报错,我们从源代码编译安装Pycuda。

        a) 输入以下指令获取文件并解压。

wget https://files.pythonhosted.org/packages/78/09/9df5358ffb74d225243b56a65ffe196de481fcd8f731f55e41f2d5d36015/pycuda-2022.2.2.tar.gz tar -zxvf pycuda-2022.2.2.tar.gz

tar -zxvf pycuda-2022.2.2.tar.gz

        b) 进入pycuda-2022.2.2目录,执行安装命令。

cd pycuda-2022.2.2

sudo python3 configure.py --cuda-root=/usr/local/cuda-10.2

sudo python3 setup.py install

         出现下图就说明正在编译文件安装,等待一段时间后即可安装完成。

 完成安装。

        c) 为了避免使用时报错,比如:

FileNotFoundError: [Errno 2] No such file or directory: ‘nvcc’

        将nvcc的完整路径写到pycuda-2022.2.2/pycuda的compiler.py文件中的compile_plain()
中,约在第 73 行的位置。如下图所示。 

nvcc = '/usr/local/cuda/bin/'+nvcc

 2.TensorRT加速

        tensorRT本质上就是把模型压缩,变得更快,因为jetson nano算力不够所以需要减弱精度加强速度,以实现临近实时检测。

        由于目前YOLOv5版本主目录里有export.py,且Jetson Nano自带tensorRT包,可实现把模型从.pt转换为.engine文件,而无需其他冗杂操作。(如果使用的虚拟环境,还需要将conda环境里的包的安装目录与tensorRT包建立软连接,具体方法不在这里赘述)

        以下操作均以我自己的YOLOv5-6.0项目为例,大家可以用自己的YOLOv5源码进行测试。

        a-1) 可直接在终端执行以下代码,权重以及数据集yaml文件换为自己的:

 python3 export.py --weights ./runs/train/exp/weights/best.pt --data ./mask_parameter.yaml --imgsz 384 --include engine --device 0       

 # 如果想要在开发板上跑得更快,可以加 "--half"

         a-2) 着直接打开YOLOv5源码中的export.py文件进行编辑,然后直接运行export.py文件,如下图所示。

 修改完文件相应内容后运行下面命令。

python3 export.py  

         b) 等待一段时间后,即会在.pt文件同目录下生成.engine文件。

         c-1) 再执行detect.py,可以在文件detect.py中编辑修改。

 注意:--source 0意为开启摄像头;imgsz一定要与前面export.py设置的相对应。

        c-2) 如果懒得改也可以直接命令行改模型。

python3 detect.py --weights ./runs/train/exp/weights/best.engine --source 0

 注意,要选对模型的路径。

        d) 如下图,启动tensorRT加速,进行USB摄像头识别。

 可见检测速度有着不小的提升。

参考文献:[1] https://blog.csdn.net/weixin_46007139/article/details/129597153?spm=1001.2014.3001.5506

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

椎名同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值