MMdeploy在cuda+tensorrt下的配置和编译

2024-06-11 20:44

本文主要是介绍MMdeploy在cuda+tensorrt下的配置和编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MMdeploy在cuda+tensorrt下的配置和编译

    • Python安装配置MMdeploy
      • 配置openmmlab系列
      • 从工程安装mmdeploy
    • MMdeploy_runtime以及demo编译安装
      • 量化
      • 编译runtime和demo

Python安装配置MMdeploy

配置openmmlab系列

pip install -U openmim

如果mim命令遭遇故障,或者安装失败,可以直接使用pip进行安装。

mim install mmengine
mim install mmcv>=2.0.0
mim install mmdet
mim install mmpose

其中,mmcv如果在运行时报错,需要从源码安装:

git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
pip install -e .

从工程安装mmdeploy

pip安装依赖
pip install -r requirements.txt
安装mmdeploy

cd mmdeploy
pip install -e .

MMdeploy_runtime以及demo编译安装

量化

为了测试编译好的功能,需要预先生成量化模型。以下是两例实例命令

#量化目标检测
python tools/deploy.py configs/mmdet/detection/detection_tensorrt-fp16_static-320x320.py  ../mmdetection/configs/yolox/yolox_s_8xb8-300e_coco.py ../mmdetection/checkpoints/yolox_s_8x8_300e_coco_20211121_095711-4592a793.pth ../mmdetection/demo/demo.jpg     --work-dir mmdeploy_models/yolox_s     --device cuda     --dump-info 

量化配置需要detection_tensorrt-fp16_static-320x320.py和算法类型yolox_s_8xb8-300e_coco.py以及模型文件yolox_s_8x8_300e_coco_20211121_095711-4592a793.pth相匹配。

编译runtime和demo

  • mmdeploy_runtime和demo编译命令。过程参考/docs/install/linux-x86_64.md的cuda + TensorRT配置部分
cd ${MMDEPLOY_DIR}
mkdir -p build && cd build
cmake .. \-DCMAKE_CXX_COMPILER=g++ \-DMMDEPLOY_BUILD_SDK=ON \-DMMDEPLOY_BUILD_EXAMPLES=ON \-DMMDEPLOY_BUILD_SDK_PYTHON_API=ON \-DMMDEPLOY_TARGET_DEVICES="cuda;cpu" \-DMMDEPLOY_TARGET_BACKENDS=trt \-Dpplcv_DIR=${PPLCV_DIR}/cuda-build/install/lib/cmake/ppl \ -DTENSORRT_DIR=${TENSORRT_DIR} \-DCUDNN_DIR=${CUDNN_DIR}make -j$(nproc) && make install

编译成功后,在编译目录生成bin目录,object_detection和pose_detector均有样例。运行示例如下:

./object_detection cuda mmdeploy_models/yolox_s det.jpg

在这里插入图片描述

这篇关于MMdeploy在cuda+tensorrt下的配置和编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052234

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties