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

news2024/12/22 22:32:51

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1812387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

联想电脑电池只能充到80%,就不在充电了,猛一看以为坏了,只是设置了养护模式。

现在电池管理模式有三种: 1)常规 2)养护 3)快充 好久没有用联想的电脑了,猛一看,咱充到了80%不充了,难道电池是坏的?我们要如何设置才可以让其充电到100%呢? 右下角…

Tessy学习系列(四):组件测试——官方例程interior_light

一、新建工程 (1)新建工程 注意:路径不能包含空格与中文 (2)新建测试集 (3)新建组件测试模块 (4)设置测试模块为组件测试模块 二、导入源码 (1&#xff09…

DC入门篇——read和analyzeelaborate的区别

引言 DC读入设计文件有两种方式,一是read指令,二是 analyze&elaborate 的组合。下文将介绍两者的异同。 read 具体为 read -format verilog[db,vhdl...] file #dcsh model read_db file.db #tcl model read_verilog fil…

5.4 安全策略和控制 方法实现探讨

安全策略概述: 定义 安全策略是一组规则和措施,旨在保护组织的信息和资产免受潜在的威胁和攻击。它的制定和实施需要考虑组织的特定需求和风险,并采取适当的措施来减少潜在的安全漏洞。安全策略的定义包括以下几个方面: 1. 目标和范围&…

【Vue】Vuex概述

文章目录 一、使用场景二、优势三、注意 官网:https://vuex.vuejs.org/zh/ Vuex 是一个 Vue 的 状态管理工具,状态就是数据。 工具可以直接理解成插件 大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)…

信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践

PDF文档公众号回复关键字:20240611 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希…

NOSQL -- ES

第三个我们比较常用的NOSQL类型的数据库 --- ES 介绍: ES的全称(Elasticsearch) ES是一个分布式全文搜索的引擎 也就是我们平常在购物, 搜索东西的时候常用的, 就是一个ES的类型, 分布式全文搜索引擎 查询原理: 1>分词: 在查询之前, 其会将一些数据拆分开, 按照词进行拆分…

linux pxe和无人值守

一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器(服务端)下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …

Mysql查询分析工具Explain的使用

一、前言 作为一名合格的开发人员,与数据库打交道是必不可少的,尤其是在业务规模和数据体量大规模增长的条件下,应用系统大部分请求读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的&…

电子科技大学卓中卓二轮——分析笔记

1. 子系统的关键工作原理 在Linux子系统(Subsystem for Linux, 简称WSL)中,API(应用程序编程接口)的转换和映射是一个关键过程,目的是让Windows应用程序能够与Linux环境中的系统调用无缝交互。WSL使用了名…

【第2章】Vue快速上手

文章目录 前言一、第一个Vue程序二、Open in Browser插件1.安装2. 使用3. 界面 总结 前言 这里我们来实现我们的第一个程序。 一、第一个Vue程序 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name&quo…

6月11号作业

思维导图 #include <iostream> using namespace std; class Animal { private:string name; public:Animal(){}Animal(string name):name(name){//cout << "Animal&#xff1b;有参" << endl;}virtual void perform(){cout << "讲解员的…

OpenCV多版本安装Ubuntu18.04

文章目录 一、查看已安装的Opencv版本二、安装新版本三、多版本OpenCV切换 OpenCV 官网 在此 一、查看已安装的Opencv版本 查看已安装opencv的版本 pkg-config opencv --modversion官网下载对应的版本&#xff0c;并解压 opencv3.4.3 二、安装新版本 进入前置准备里下载…

springSecurity学习笔记(一)

简介 Spring Security是一个Java框架&#xff0c;用于保护应用程序的安全性。它提供了一套全面的安全解决方案&#xff0c;包括身份验证、授权、防止攻击等功能。Spring Security基于过滤器链的概念&#xff0c;可以轻松地集成到任何基于Spring的应用程序中。它支持多种身份验…

高校运维赛 2024 easyshell

考点: 冰蝎流量解密部分明文攻击 看请求路由可以知道 shell.php是上传的马子 过滤器 http 加密返回包前16为完整base编码字符 一眼冰蝎流量解密 爆破aes常用密码 就是冰蝎默认aes密码 e45e329feb5d925b 冰蝎从开头流量都是连接初始化之类的,一般关键数据在后面 从后向前看发现…

电影推荐系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;免费电影管理&#xff0c;付费电影管理&#xff0c;电影论坛管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;付费电影&#…

CMake的学习之路

目录 一、基础命令 二、编译选项和设置 三、文件和目录操作 四、控制流命令 五、其他命令 六、CMake构建级别 CMake是一个跨平台的自动化建构系统&#xff0c;它使用一种人类可读的配置文件&#xff08;CMakeLists.txt&#xff09;来控制软件编译过程。以下是CMake中的一些…

python-Numpy及Pandas数据分析应用

读取文件team.xlsx数据&#xff0c;其中name&#xff1a;名字, team&#xff1a;所属团队, Q1&#xff1a;语文分数, Q2&#xff1a;数学分数, Q3&#xff1a;英语分数, Q4&#xff1a;政治分数 # (1) 查询该数据的索引、所有值、列名、数据类型、元素个数、维度以及形状 imp…

【C++课程学习】:Data类的实现

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f369;1.头文件 &#x1f369;2.实现文件&#xff1a; &#x1f369;3.分析&#xff1a; &…

ARM32开发--PWM与通用定时器

知不足而奋进望远山而前行 目录 文章目录 前言 学习目标 学习内容 PWM pwm原理 需求 开发流程 初始化PWM PWM占空比控制 main函数修改duty 输出通道 关心的内容 重要的关键词 周期 分频 占空比 总结 前言 在微控制器开发中&#xff0c;理解和掌握PWM&#x…