【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x进行ONNX和TensorRT的部署(Python篇)

2023.9.8更新

C++ SDK篇已经发布,点击这里传送到文章


MMDeploy 提供了一系列工具,帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。

1.流程简介

MMDeploy 定义的模型部署流程,这里直接使用了官方文档的内容,如下图所示: 

1)模型转换(Model Converter)

模型转换的主要功能是把输入的模型格式,转换为目标设备的推理引擎所要求的模型格式。

目前,MMDeploy 可以把 PyTorch 模型转换为 ONNX、TorchScript 等和设备无关的 IR 模型。也可以将 ONNX 模型转换为推理后端模型。两者相结合,可实现端到端的模型转换,也就是从训练端到生产端的一键式部署。

2)MMDeploy 模型(MMDeploy Model)

也称 SDK Model。它是模型转换结果的集合。不仅包括后端模型,还包括模型的元信息。这些信息将用于推理 SDK 中。

3)推理 SDK(Inference SDK)

封装了模型的前处理、网络推理和后处理过程。对外提供多语言的模型推理接口。

2.MMDeploy安装及环境配置

本篇文章安装环境

  • i5-7400HQ+1050ti
  • Win 11
  • VS2022
  • CUDA11.6及相应版本的cudnn(cudnn必须要)
  • python 3.8
  • pytorch 1.13.1
  • 以及mmlab(mmcv 2.0及以上版本)基本的配置,请参考我的上一篇文章安装。

本篇文章使用mmpose1.x进行部署,起一个抛砖引玉的作用,只要是openMMLab系列的其实流程都大差不差。废话不多说了,下面正式开始:

1)mmdeploy安装

因为是在windows平台,官方建议的是使用预编译包,所以这里我们使用pip直接安装:

# 1. 安装 MMDeploy 模型转换工具(含trt/ort自定义算子)
pip install mmdeploy==1.0.0

# 2. 安装 MMDeploy SDK推理工具
# 根据是否需要GPU推理可任选其一进行下载安装
# 2.1 支持 onnxruntime 推理
pip install mmdeploy-runtime==1.0.0
# 2.2 支持 onnxruntime-gpu tensorrt 推理
pi
MMDeploy 是一个专为 OpenMMLab 系列算法设计的模型部署工具集,它能够将训练好的 PyTorch 模型高效地转换为多种推理引擎支持的格式,并提供跨平台的推理 SDK,从而实现从训练到部署的端到端解决方案。以下是详细的模型部署教程: ### 模型部署的基本步骤 1. **安装 MMDeploy** 确保安装了最新版本的 MMDeploy。可以通过以下命令进行安装: ```bash pip install mmdeploy ``` 验证安装是否成功,可以使用以下命令: ```python import mmdeploy print('MMDeploy 版本', mmdeploy.__version__) ``` 2. **准备模型配置文件** 在部署模型之前,需要准备好训练好的 PyTorch 模型文件(如 `.pth` 文件)以及对应的配置文件(如 `.py` 文件)。这些文件通常来自于 OpenMMLab 的模型库,如 MMDetection 或 MMPose。 3. **模型转换** MMDeploy 支持将 PyTorch 模型转换为多种推理引擎支持的格式,如 ONNXTensorRT 等。以下是将 PyTorch 模型转换为 TensorRT 模型的示例命令: ```bash python mmdeploy-main/tools/deploy.py \ mmdeploy-main/configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py \ mmdetection-3.x/configs/faster_rcnn/faster-rcnn_r50_fpn_1x_coco.py \ checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \ mmdetection-3.x/demo/demo.jpg \ --work-dir mmdeploy_model/faster-rcnn \ --device cuda \ --dump-info ``` 该命令会将 PyTorch 模型转换为 TensorRT 模型,并生成推理所需的文件。 4. **推理与验证** 转换完成后,可以使用 MMDeploy 提供的推理 SDK 进行模型推理。SDK 支持跨平台使用,可以在不同的设备上进行推理,确保模型在目标设备上的性能准确性。 ### 核心功能架构 MMDeploy 的核心功能包括: - **模型转换**:支持将 PyTorch 模型转换为 ONNX、TorchScript 等设备无关的模型格式。 - **推理引擎支持**:支持多种推理引擎,如 TensorRT、OpenVINO 等,能够将模型转换为推理后端模型。 - **跨平台推理 SDK**:提供跨平台的推理 SDK,简化了从训练到部署的整个流程。 ### 部署注意事项 - **硬件要求**:确保目标设备满足推理所需的硬件要求,如 GPU 支持 TensorRT 的版本。 - **依赖库安装**:在部署过程中,需要安装相应的依赖库,如 CUDA、cuDNN 等。 - **性能优化**:根据目标设备的特性,选择合适的推理引擎优化策略,以提高模型的推理速度效率。 ### 示例代码 以下是一个简单的 Python 代码示例,展示如何使用 MMDeploy 进行模型推理: ```python from mmdeploy.apis import inference_model # 加载转换后的模型 model = inference_model.load_model('mmdeploy_model/faster-rcnn') # 进行推理 result = inference_model.inference_detector(model, 'mmdetection-3.x/demo/demo.jpg') # 输出结果 print(result) ``` ###
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值