Visual Studio配置Cuda、Cudann、TensorRT环境以及RTMdet、RTMpose-Pyotorch转换TensorRT,本地部署

一、环境配置

总结笔者安装环境版本为:

Visual Studio2019

Opencv 4.6.0

Cuda  11.5

Cudann 8.3.0

TensorRT 8.4.1

Python环境3.8

Pytorch 1.12.0

1.Opencv C++安装

VS配置永久OpenCV(小萌轻松操作):超细致_visual studio永久配置opencv-CSDN博客

按照这个链接进行安装(将Visual studio和OPENCV的版本进行更换),

Visual Studio版本为2019

OPENCV版本为4.6.0

问题日志:

当遇到这个错误时

是由于你的电脑Visual Studio编译采用win32位架构,而OPENCV是使用64位

因此需要对以下几个配置进行更改:

右键点击项目属性会出现以下图像

进入1处配置管理器更改平台为x64

2处更改为Machinex64

2.Cuda、Cudann、TensorRT安装指南

​​​​​VS2022配置CUDA、CuDNN和TensorRT的环境_vs2022 cuda-CSDN博客

Cuda安装11.5

CUDA Toolkit 11.5 Downloads | NVIDIA Developer

Cudann 8.3.0 for 11.5版本

cuDNN Archive | NVIDIA Developer

TensorRT版本选择 TensorRT 8.4 GA for Windows 10 and CUDA 11.5 ZIP Package

https://developer.nvidia.com/nvidia-tensorrt-8x-download

Visual Studio2019 配置OPENCV Cuda Cudann TensorRT环境

OPENCV的配置方法:

VS配置永久OpenCV(小萌轻松操作):超细致_visual studio永久配置opencv-CSDN博客

CUDA 和Cudann以及TensorRT配置方法从2.0开始看

VS2019+CUDA10.2+tensorRT7.0+opencv4.12环境配置yolo-tensorrt | AI技术聚合

注意事项:高于8.2的版本的TensorRT,依赖库中不要添加myelin64_1.lib

问题错误:1: [runtime.cpp::nvinfer1::Runtime::parsePlan::314] Error Code 1: Serialization (Serialization assertion plan->header.magicTag == rt::kPLAN_MAGIC_TAG failed.)

出现这个错误是由于原Github上下载的engine文件与本地版本不对,需要自己将模型pt文件转换为Onnxtime文件,最后生成engine文件。

二、模型转换

在上面的工作均已完成后,再进行下一步:

模型转换指南,RTM模型包括两个模块:RTMdet用于检测人体框;RTMpose用于检测人体关键点。

1.RTMdet转换步骤:

(1)首先去rtmpose_tensorrt网站上下载源码,

GitHub - Dominic23331/rtmpose_tensorrt (里面有部署好的rtmdet.engine和rtmpose_s.engine,但是和我们下载的tensorRT版本不同,因此需要自己转换版本)

(2)根据自己的需求,在网站下载合适的RTMdet.pth模型和配置文件(注意是两个文件)

https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet

此处选择的是标红框

文件下载完毕后,将两个文件移入(1)中下载的文件夹中的python/convert_rtmdet.py同一路径下,然后运行

python convert_rtmdet.py --config rtmdet_tiny_8xb32-300e_coco.py --checkpoint rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --output RTMdet-l.onnx

具体可以参考(1)中README,最后就得到RTMdet-l.onnx文件。

问题:注意可能配置文件中包含其他文件的依赖,导致程序无法正常运行

因此需要下载github上的rtmdet源代码

GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark

然后去configs/rtmdet文件夹中找与上面模型对应的配置文件名

最后运行代码为:

python convert_rtmdet.py --config E:/工厂机器视觉-行为动作识别/mmdetection-main/configs/rtmdet/rtmdet_l_8xb32-300e_coco.py --checkpoint rtmdet_l_8xb32-300e_coco_20220719_112030-5a0be7c4.pth --output RTMdet-l.onnx

(3)onnx转换tensorRT文件

进入自己下载的tensorRT文件中bin中可以看到有一个trtexec.exe程序,复制上面创建的RTMdet-l.onnx文件

在CMD程序当前目录中运行

--onnx是自己生成的文件  --saveEngine是将会生成的engine文件

trtexec --onnx=RTMdet-l.onnx --saveEngine=RTMdet-l.engine

最后得到适应自己版本的tensorRT文件。

2.RTMpose转换

(1)

  1. 去官网上下载合适的模型pth和相应的配置文件,以及下载mmpose的源代码(配置文件可能存在依赖,因此需要下载整个文件夹)

https://github.com/open-mmlab/mmpose/blob/main/projects/rtmpose/README_CN.md

这里我选择的是检测人体全身133个关键点的模型,标红线的模型

记录配置文件为rtmpose-l_8xb32-270e_coco-wholebody-384x288.py,后面需要到mmpose项目中去找到相应的位置。

(2)从pytorch一步转到tensorRT

下载mmdeploy项目(将RTMpose模型转换成tensorRT类型)

https://github.com/open-mmlab/mmdetection/

进入mmdeploy文件夹中,根据

python tools/deploy.py <deploy cfg> /

<model cfg> /

<checkpoint> /

<image path>/

<work-dir>

模版进行匹配

python tools/deploy.py \
  configs/mmpose/pose-detection_simcc_tensorrt_dynamic-256x192.py \
E:/工厂机器视觉-行为动作识别/mmpose-main/projects/rtmpose/rtmpose/wholebody_2d_keypoint/rtmw-x_8xb704-270e_cocktail14-256x192.py   \
download_model/rtmw-x_simcc-cocktail14_pt-ucoco_270e-256x192-13a2546d_20231208.pth  \
human-pose.jpg \
--workdir RTMpose

最后生成三张测试图片(一张pytorch,一张onnx,一张tensorRT

)和一个onnx文件和eigne文件。

最后将两个engine文件导入C++部署环境中进行测试。

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值