mmdeploy环境部署流程

参考:mmdeploy/docs/zh_cn/01-how-to-build/linux-x86_64.md at main · open-mmlab/mmdeploy (github.com)

从零入门《openmmlab》mmdeploy[1]环境安装及简单上手_哔哩哔哩_bilibili

我的环境:

docker容器,ubuntu20.04,cuda11.7、四张3090显卡,默认以安装好PyTorch、mmcv等mmdetection需要的所有环境。

1、安装编译需要用到的库

apt update
apt install wget
apt-get install make

2、安装cuda

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run

查看安装结果: 

3、查看编译工具版本

cmake -version
g++ -v

保证 cmake的版本 >= 3.14.0并且gcc 7+以上的版本,如果不是,按官方说明重装mmdeploy/docs/zh_cn/01-how-to-build/linux-x86_64.md at main · open-mmlab/mmdeploy (github.com)

4、安装 MMDeploy SDK 依赖

安装OpenCV

apt-get install libopencv-dev

安装pplcv

git clone https://github.com/openppl-public/ppl.cv.git
cd ppl.cv
export PPLCV_DIR=$(pwd)
git checkout tags/v0.7.0 -b v0.7.0
./build.sh cuda

5、安装TensorRT

下载tensorrt,下载地址https://developer.nvidia.com/nvidia-tensorrt-download

我使用的版本为:TensorRT-8.6.1.6,下载并解压TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz

 编译

pip install TensorRT-8.6.1.6/python/tensorrt-8.6.1-cp310-none-linux_x86_64.whl 
export TENSORRT_DIR=/root/TensorRT-8.6.1.6
export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
cd TensorRT-8.6.1.6
pip install pycuda

6、安装cudnn

下载地址:https://developer.nvidia.com/rdp/cudnn-archive

 我使用的版本为cuDNN v8.6.0,下载并解压cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz

tar -xf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz

解压后得到一个cudnn-linux-x86_64-8.6.0.163_cuda11-archive文件名,然后将其改为cudnn

设置环境变量

export CUDNN_DIR=/root/cudnn
export LD_LIBRARY_PATH=$CUDNN_DIR/lib:$LD_LIBRARY_PATH

7、下载mmdeploy并编译自定义算子

git clone https://github.com/open-mmlab/mmdeploy
cd mmdeploy/
git submodule update --init --recursive
export MMDEPLOY_DIR=$(pwd)

TensorRT 自定义算子

mkdir -p build
cmake -DCMAKE_CXX_COMPILER=g++-9 -DMMDEPLOY_TARGET_BACKENDS=trt -DTENSORRT_DIR=/root/TensorRT-8.6.1.6 -DCUDNN_DIR=/root/cudnn
make -j$(nproc) && make install

注意这里的g++-9一定要改成你g++的版本号

 8、编译 SDK 和 Demos

cd mmdeploy
pip install -e .
mkdir -p build
cmake . \
    -DCMAKE_CXX_COMPILER=g++-9 \
    -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

9、模型转换

以yolox为例,先下载权重文件

wget https://download.openmmlab.com/mmdetection/v2.0/yolox/yolox_tiny_8x8_300e_coco/yolox_tiny_8x8_300e_coco_20211124_171234-b4047906.pth
cd mmdeploy

python tools/deploy.py configs/mmdet/detection/detection_tensorrt_dynamic-320x320-1344x1344.py ../mmdetection3/configs/yolox/yolox_tiny_8xb8-300e_coco.py ../mmdetection3/workdir/yolox_tiny_8x8_300e_coco_20211124_171234-b4047906.pth ../mmdetection3/demo/demo.jpg --work-dir yolox-tiny --device cuda --dump-info

10、推理

./bin/object_detection cuda yolox-tiny/ ../mmdetection3/demo/demo.jpg 

 推理成功。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【万方数据库爬虫简单开发(自用)】

万方数据库爬虫简单开发(自用)(一) 使用Python爬虫实现万方数据库论文的搜索并获取信息1.获取url2.输入关键词3.使用BeautifulSoup解析4.获取文章标题信息 使用Python爬虫实现万方数据库论文的搜索并获取信息 后续会逐步探索更新…

从盛世到衰落,历史上八大强国的兴衰与现代地位!

人类文明史悠久,从远古时代至今日,世界舞台上曾经涌现出许多强盛的帝国。它们在自己的黄金时代,曾经无人能敌,不论是在军事、经济还是文化上都独领风骚。然而,无论多么强大的国家也难逃“兴盛必衰”的命运。今天&#…

javaWeb项目-在线考试系统详细功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Java简介 Java语…

ArcGIS 10.8软件安装包免费下载及安装教程

安装包获取: 【软件名称】:ArcGIS 10.8 【安装包链接 】: 链接:https://pan.quark.cn/s/2240330bf935 提取码:Yixn 【备用链接】: 链接:https://pan.baidu.com/s/13V5o_igcK0suW4SFsWkxeQ?pwdj6kx 提取码…

Springboot 整合 Flowable(一):使用 flowable-UI 绘制流程图

目录 一、Flowable简介 二、Flowable 与 Activiti 的区别 三、流程图的绘制(以员工请假流程图为例) 1、下载 flowable 的压缩包: 2、启动包中的 tomcat 3、登录页面 4、绘制结束,导出 bpmn20.xml文件 一、Flowable简介 Fl…

拥抱AI-图片学习中的卷积神经算法详解

一、定义 卷积神经算法(Convolutional Neural Networks, CNN)是深度学习领域中的一种重要算法,特别适用于处理图像相关的任务。以下是卷积神经算法的详细解释: 1. 基本概念 定义:卷积神经网络是一类包含卷积计算且具…

Oracle的优化器

sql优化第一步:搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤: 语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。 语义检查:检查SQL中的访问对象…

文件IOoooo

1.1 文件路径 文件路径分为两种: 1、绝对路径:以C:、D:等盘符开头的,就是我们所说的绝对路径,根据它可以直接找到文件的具体位置。 2、相对路径:需要先指定一个目录作为基准目录,从基准目录出发&#xf…

python的resample()函数

介绍 在Python中,resample()函数是一个常用的工具,用于对时间序列数据进行重新采样。这个函数可以将时间序列数据从一个频率转换为另一个频率,比如将每天的数据转换为每月的数据。在本教程中,我将向你展示如何使用resample()函数,并解释每个步骤的具体含义。 整体流程 首先…

SAP PP学习笔记20 - 复习总结一下MTS,MTO,ATO的各种生产策略

上面几章详细讲了MTS,MTO,ATO的各种生产策略。 内容太多了,本章咱们就简单回顾,复习一下。 计划策略(Planning Strategies) 的种类 - MTS(Make-to-Stock):按库存生产(見込生産&…

SAP CR02 更改工作中心 CRAP_WORKCENTER_CHANGE

SAP 创建,修改工作中心实例代码 SE24 CL_PP_WORK_CENTER_BO Work Center API Business Object UPDATE_CAPACITY Update Capacity GET_INSTANCE Get instance of class CL_PP_WORK_CENTER_BO CREATE_WORK_CENTER Create Work Center UPDATE_WORK_CENTER …

STM32硬件接口I2C应用(基于HMC5883L)

目录 概述 1 STM32Cube控制配置I2C 1.1 I2C参数配置 1.2 使用STM32Cube产生工程 2 HAL库函数介绍 2.1 初始化函数 2.2 写数据函数 2.3 读数据函数 3 认识HMC5883L 3.1 HMC5883L功能介绍 3.2 HMC5883L的寄存器 4 HMC5883L驱动程序实现 4.1 驱动函数实现 4.2 完整驱…

如何通过数据库与AI实现以图搜图?OceanBase向量功能详解

OceanBase支持向量数据库的基础能力 当前,数据库存储系统与人工智能技术的结合,可以体现在两个主要的应用方向上。 一、近似搜索。它利用大语言模型(LLM,简称大模型)的嵌入(embedding)技术&am…

如何低成本、高效搭建线上3D艺术展?

随着数字技术的日新月异,艺术展览领域正迎来一场革新。未来的艺术展览将不再是单一的线下体验,而是线上线下相互融合,其中,3D线上展览将成为线下展览的重要延伸与拓展,为广大观众提供更多元化的选择。 对于艺术家和策…

限流器设计思路(浅入门)

限流器(Rate Limiter)是一种用于控制系统资源利用率和质量的重要机制。它通过限制单位时间内可以执行的操作数量,从而防止系统过载和保护服务的可靠性。在程序设计中,可以使用多种方式来实现限流器,下面是几个常见方案的介绍: 令牌…

2024年,计算机相关专业还值得选择吗? 又该如何判断自己是否适合这类专业呢?

文章目录 一、2024年,计算机相关专业还值得选择吗?二、判断自己是否适合这类专业呢?三、哪所大学的计算机专业最好?四、计算机专业是否仍具有长远的发展潜力和就业前景呢? 一、2024年,计算机相关专业还值得选择吗? 在2024年选择大学专业时&#xff0…

开源完全自动化的桌上足球机器人Foosbar;自动编写和修复代码的AI小工具;开源工具,可本地运行,作为Perplexity AI的替代方案

✨ 1: Foosbar Foosbar是一款完全自动化的桌上足球机器人,能与人类玩家对战,具备防守、传球和射门能力。 Foosbar是一个完全自动化的桌上足球机器人,它实现了一侧由机器人控制,另一侧由人类玩家对战的游戏模式。这个机器人能够自…

【论文阅读】Activity Recognition using Cell Phone Accelerometers

Activity Recognition using Cell Phone Accelerometers 引用: Kwapisz J R, Weiss G M, Moore S A. Activity recognition using cell phone accelerometers[J]. ACM SigKDD Explorations Newsletter, 2011, 12(2): 74-82. 论文链接: Activity recogn…

基于JSP的贝儿米幼儿教育管理系统

开头语: 你好呀,我是计算机学长猫哥!如果您对本系统感兴趣或者有相关需求,文末可以找到我的联系方式。 开发语言: Java 数据库: MySQL 技术: JSP技术 工具: IDEA/Eclipse、…

西南交通大学【操作系统实验7】

实验目的 (1)理解内存管理中缺页的概念。(2)综合运用实验1,实验5,实验6中/proc文件系统、内存管理、系统调用、 内核编译的知识。(3)掌握向/proc文件系统中增加文件的方法。&#…