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
sh 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 mmdeploypython 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 

 推理成功。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注解(Annotation)(一)

Java 注解( Annotation )又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、 构造器、 方法、成员变量、参数等都可以被注解进行标注。 自定义注解 --- 格式 自定义注解就是自己做一个注解来使用。 public interface …

C++ | Leetcode C++题解之第140题单词拆分II

题目&#xff1a; 题解&#xff1a; class Solution { private:unordered_map<int, vector<string>> ans;unordered_set<string> wordSet;public:vector<string> wordBreak(string s, vector<string>& wordDict) {wordSet unordered_set(w…

[Cloud Networking] SPDY 协议

文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景 TCP是通用的、可靠的传输协议&#xff0c;提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。 不…

Apache IoTDB进行IoT相关开发实践

当今社会&#xff0c;物联网技术的发展带来了许多繁琐的挑战&#xff0c;尤其是在数据库管理系统领域&#xff0c;比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如&#xff0c;应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计&…

【面试干货】Integer 和 int 的区别

【面试干货】Integer 和 int 的区别 1、基本类型与包装类型2、内存占用3、自动装箱与拆箱4、null 值5、常量池6、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;Integer 和 int 是两种不同类型的变量&#xff0c;…

REST风格

黑马程序员Spring Boot2 文章目录 1、REST简介1.1 优点1.2 REST风格简介1.3 注意事项 2、RESTful入门案例 1、REST简介 1.1 优点 隐藏资源的访问行为&#xff0c;无法通过地址的值对资源适合中操作书写简化 1.2 REST风格简介 按照RST风格访问资源时使用行为动作区分对资源进…

Python:基础爬虫

Python爬虫学习&#xff08;网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字…

OpenGauss常操作

OpenGauss官网已经有很详细的说明了,但是对于新手而言还有一些需要注意的地方; 安装 yum一键安装; yum -y install libaio-devel yum -y install readline-devel yum -y install libnsl 单独创建用户和组; groupadd dbgroup useradd -g dbgroup omm passwd omm 取消打开文…

RK3568平台(input篇)输入设备应用编程

一.输入设备介绍 输入设备其实就是能够产生输入事件的设备就称为输入设备&#xff0c;常见的输入设备包括鼠标、键盘、触摸屏、按钮等等&#xff0c;它们都能够产生输入事件&#xff0c;产生输入数据给计算机系统。 对于输入设备的应用编程其主要是获取输入设备上报的数据、输…

Django更改超级用户密码

Django更改超级用户密码 1、打开shell 在工程文件目录下敲入&#xff1a; python manage.py shell再在python交互界面输入&#xff1a; from django.contrib.auth.models import User user User.objects.get(username root) user.set_password(123456) user.save()其中ro…

每日一练——有效的括号

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 错误记录 #include<stddef.h> #include<stdlib.h> #include<assert.h> #include<stdbool.h>typedef char STDataType;typedef struct Stack {STDataType* a;int capacity;int top; } Stack;vo…

【回文 马拉车】214. 最短回文串

本文涉及知识点 回文 马拉车 LeetCode214. 最短回文串 给定一个字符串 s&#xff0c;你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。 示例 1&#xff1a; 输入&#xff1a;s “aacecaaa” 输出&#xff1a;“aaacecaaa” 示…

超详解——Python 字典详解——小白篇

目录 1. 创建字典 示例&#xff1a; 2. 访问字典中的元素 示例&#xff1a; 3. 修改字典元素 示例&#xff1a; 4. 删除字典元素 示例&#xff1a; 5. 查找元素是否是字典的键 示例&#xff1a; 6. 标准类型操作符 获取字典长度 合并两个字典 7. 常用内置函数 k…

【Qt】QT textBrowser 设置字体颜色和大小

1. 效果 2. 代码 {ui->methodText->append("<font size9 colorgreen> dddddddddd </font>");ui->methodText->append("<font size9 colorred> vvvvvvvvvv </font>"); }

读AI新生:破解人机共存密码笔记02进化

1. 人工智能的标准模型 1.1. 机器优化人类提供的固定目标 1.1.1. 是一条死胡同 1.1.1.1. 当你走进死胡同时&#xff0c;你最好掉头返回&#xff0c;找出走错的地方 1.2. 问题不在于我们可能无法做好构建人工智能系统的工作&…

atmega8 上传程序

使用icsp 烧写时先关闭串口程序&#xff0c;与串口uart连接相关的电路勿于电脑连接 接触不良 1.使用icsp 上传 1&#xff09;可以直接上传程序 如官方示例blink 或是 serial示例 2&#xff09;可以先烧录bootload 方便下次使用串口上传程序代码 A)使用专门的icsp 上传器上传…

AI Stable diffusion 报错:稳定扩散模型加载失败,退出

可能是内存不够&#xff0c;看看你最近是加了新的大的模型&#xff0c;可以把你的stable-diffusion-webui\models\Stable-diffusion目录下的某个ckpt删除掉&#xff0c;可能ckpt太大&#xff0c;无法加载成功&#xff1b; Stable diffusion model failed to load, exiting 如图…

如何在WIndows虚拟机安装 macOS 黑苹果系统?

在本教程中&#xff0c;我们将介绍如何在虚拟机上安装 macOS 黑苹果系统。黑苹果系统是非苹果公司官方支持的 macOS 系统的非官方版本&#xff0c;可以在普通 PC 上运行。请注意&#xff0c;安装黑苹果系统可能违反苹果的许可协议&#xff0c;请自行承担风险。参考视频教程&…

如何应对生活中的不确定性:仁者安仁,知者利仁。

有较高自尊水平的人&#xff0c;接近于孔子说的&#xff1a;仁者。 ——— 有着稳定的高自尊&#xff0c;无论外在环境如何变化&#xff0c;对其影响都不大&#xff0c;他能够愉快地生活。 相反&#xff1a;一个人处于低自尊状态&#xff0c;就会活得很痛苦&#xff0c;对自己…

手机丢失不惊慌,华为手机已升级至楼层级设备查找!

出门总是丢三落四&#xff0c;手机丢了怎么办&#xff1f;不要怕&#xff0c;只要你的华为手机升级至云空间新版本&#xff0c;就可以进行楼层级设备查找&#xff0c;现在可以查看到具体的楼层了&#xff01; 之前有手机丢失过的朋友&#xff0c;肯定有相似的经历&#xff0c…