MMDeploy SDK使用指南

MMDeploy SDK使用指南

工程上,深度学习模型部署的时候,理应不依赖于PyTorch/TensorFlow这些具体的深度学习模型框架的,因为它们体积大,速度慢,将模型进行格式转换后,配置相应的推理引擎即可实现部署与加速。

本机环境:

  • Windows 11
  • Python 3.8.13
  • CUDA 11.3
  • CUDNN 8.2.1
  • PowerShell 7.3.1

创建环境

如果在服务器上部署,在实际工程中往往使用单独的虚拟环境,可以使用conda或者virtualenv创建环境,我用的是conda:

conda create --name mmdeploy_sdk python=3.8.13 -y

安装推理引擎

推理的时候图片数据和网络模型是加载到相应硬件上进行处理的,需要安装相应的推理后端以操纵硬件。

这里以TensorRT部署为例:

  1. 选择与自己CUDA、Python版本对应的TensorRT,使用zip包解压并配置,配置方法见官方文档,不要忘记添加环境变量!

  2. 安装TensorRT的Python API

    pip install "$env:TENSORRT_DIR/python/tensorrt-8.5.1.7-cp38-none-win_amd64.whl"
    

    $env:TENSORRT_DIR指向TensorRT.zip解压后的路径

  3. 安装pycuda,SDK推理需要用到它,这个库把CUDA的C++ API全部映射到了Python

    pip install pycuda
    

安装SDK

从MMDeploy的Github官方仓库的Releases下载Prebuild Package包,解压后选择与自己Python版本对应的wheel安装到自己的环境中。

pip install "$env:MMDEPLOY_PREBUILD_DIR/sdk/mmdeploy_python-0.12.0-cp38-none-win_amd64.whl"

安装视觉库

这一步不是必要的,安装视觉库是为了标注检测框,看检测效果,如果不需要,完全可以不用安装。

pip install opencv-python

测试

from mmdeploy_python import Detector
import cv2
# 模型路径
model_path="xxxxx"
# 待检测图片路径
img_path="xxxxx"

# 读取图片
img = cv2.imread(img_path)
# 创建检测器
detector = Detector(
    model_path=model_path,
    device_name="cuda",
    device_id=0,
)
# 执行推理
bboxes, labels, _ = detector(img)
# 使用阈值过滤推理结果,并绘制到原图中
indices = [i for i in range(len(bboxes))]
for index, bbox, label_id in zip(indices, bboxes, labels):
    [left, top, right, bottom], score = bbox[0:4].astype(int), bbox[4]
    if score < 0.3:
        continue
    cv2.rectangle(img, (left, top), (right, bottom), (0, 0, 255))

cv2.imwrite("output_detection.jpg", img)

结果:

MMDeploy SDK使用指南_第1张图片

你可能感兴趣的:(Python,深度学习,powershell,python,opencv,计算机视觉)