mmdetection模型使用mmdeploy部署在windows上的c++部署流程【详细全面版】

在这里插入图片描述

0. 前置说明:

该文档适用于:已经使用mmdetection训练好了模型,并且完成了模型转换。要进行模型部署了。

1. 概述

MMDeploy 定义的模型部署流程,如下图所示:
在这里插入图片描述

模型转换【待撰写,敬请期待…】

主要功能是:把输入的模型格式,转换为目标设备的推理引擎所要求的模型格式。
目前,MMDeploy 可以实现:① 把PyTorch模型,转换为 ONNX、TorchScript 等设备无关的模型; ② 将 ONNX模型转换为推理后端模型。

两者相结合,可实现端到端的模型转换,也就是从训练端到生产端的一键式部署。

MMDeploy 模型(也称 SDK Model)

它是模型转换结果的集合。包括:①后端模型,②模型的元信息。这些信息,将用于推理 SDK。

推理 SDK【本博客的内容】

封装了模型的前处理、网络推理和后处理过程。对外提供多语言的模型推理接口(python/c++等)。【注意:本教程为c++】

2. 准备工作

对于端到端的模型转换和推理,MMDeploy 依赖 Python 3.6+ 以及 PyTorch 1.8+。

第1步:下载并安装 Miniconda

(这步很简单,省略,不懂的话可以评论区留言)

第2步:创建并激活 conda 环境

conda create --name mmdeploy python=3.8 -y
conda activate mmdeploy

第3步: 并安装 PyTorch GPU或者CPU版本

链接:安装PyTorch在这里插入图片描述

注意❗:在 GPU 环境下,请务必保证 cudatoolkit_version 和主机的 CUDA Toolkit 版本一致,避免在使用
TensorRT 时,可能引起的版本冲突问题。

3. 准备推理SDK

第1步: 安装 MMDeploy 推理SDK

推理SDK 的 c/cpp 库可从 这里 选择最新版本下载并安装。
不用gpu推理的话,就下载这个

注意❗下载并且解压后,就会看到如下图所示的结构:
路径为:C:\Users\15135\Downloads\mmdeploy-1.2.0-windows-amd64

查看readme.md文档,就会发现,我们需要进一步根据提示:①安装opencv,②设置环境变量,③创建sdk。下面我们依次进行。

第2步: 安装opencv

找到Windows PowerShell,并使用管理员身份打开。
在这里插入图片描述

打开管理员权限的 Windows PowerShell
打开Windows PowerShell后,执行命令:set-ExecutionPolicy RemoteSigned,并选择Y。

Set-ExecutionPolicy RemoteSigned 是一个在 Microsoft PowerShell 中使用的命令。

它用来配置 PowerShell 的执行策略(Execution Policy),这是 PowerShell 引擎对脚本执行的一种安全机制。执行策略决定了 PowerShell 是否允许运行未签名的脚本,以及这些脚本是从何处获得的。

具体来说:

RemoteSigned 执行策略意味着:
①对于本地创建的 PowerShell 脚本,允许直接执行。
②对于从互联网或其他远程位置下载的脚本,要求它们必须具有经过验证的数字签名(即已签名)才能执行。

换句话说,在设置了 RemoteSigned 执行策略之后,用户可以自由地执行自己在本地计算机上编写的脚本,
但对于外部来源的脚本,为了确保其来源可信,系统会要求这些脚本经过合法证书颁发机构签名或由受信任的发布者签名。

此设置,旨在保护系统免受恶意脚本的攻击,同时保持一定的灵活性,允许执行经过验证的远程脚本和所有本地脚本。
在企业环境中,执行策略通常由系统管理员或通过

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

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

相关文章

2440LED点灯、K1~K6按键、24401中断、2440时钟

我要成为嵌入式高手之4月12日ARM第七天!! ———————————————————————————— 2440GPIO GPIO:通用目的输入输出 LED 要把GPBCON初始化 地址是固定的,可以当做无符号int型 控制所有灯就需要初始化GPBCO…

还原matlab编辑器窗口和主窗口分开的问题

问题 matlab不知道早点的,点击运行后会弹出新的窗口,咋整都恢复不了 解决方案 首先,在编辑器窗口下,按ctrlshiftD,此时编辑器窗口和主窗口就合并了,问题解决。

Andriod设置背景颜色简单教学

首先,打开Android studio的程序应用,找到File,然后点击Settings. 第二步,弹出窗口,点击Appearance,进入Background image... 第三步,选择本地文件夹的图片 选择一张自己合适的图片设为该界面的背景图,完成…

PyQt5结合Yolo框架打包python为exe文件完整流程

一、准备 1.安装 pyinstaller pip install pyinstaller 更新(初次安装忽略) pip install --upgrade pyinstaller 2.安装 auto-py-to-exe 安装 pip install auto-py-to-exe 打开工具 auto-py-to-exe.exe auto-py-to-exe 可视化转换工具&#xff1…

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

【LetMeFly】2924.找到冠军 II:脑筋急转弯——只关心入度 力扣题目链接:https://leetcode.cn/problems/find-champion-ii/ 一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图(DAG) 上的一个节…

QT助手翻译【QT 5.14】 -----QPushButton

目录 1 属性 2 公共职能 3 重新实现的公共功能 4 公用插槽 5 受保护的功能 6 保护方法 7 详细说明 1 属性 自动默认值:bool 此属性保存按钮是否为自动默认按钮 如果此属性设置为true,则该按钮为自动默认按钮。 在某些GUI样式中&a…

std::stringstream

std::stringstream 是 C 标准库中的一个类,用于对字符串进行输入输出操作,类似于文件流(std::ifstream 和 std::ofstream)。它允许你像使用 std::cin 和 std::cout 一样使用字符串。 std::stringstream 可以将字符串作为输入源&am…

基于8B/10BGT收发器的PHY层设计(1)

一、PHY层简介 PHY层(Physical Layer)是OSI模型中最低的一层,也是最基本的一层,PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层&#xff09…

N皇后问题(DFS解决)

文章目录 一、题目分析二、对角线判断&#xff08;分两种&#xff09;三、代码演示 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦&#xff01; 一…

4.14学习总结

java网络编程 一.网络编程的概念和原理 概念: 网络编程是指通过计算机网络进行数据传输和通信的编程技术。在网络编程中&#xff0c;可以实现不同计算机之间的数据交互和通信&#xff0c;从而实现分布式系统、客户端-服务器应用等。 Java网络编程基于TCP/IP协议栈进行通信&…

软件测试基础知识点汇总

1、衡量一个优秀软件的维度 质量模型&#xff1a;功能性、性能、兼容性、易用性、可靠性、安全、可维护性、可移植性。 2、软件测试流程 需求评审、计划编写、用例设计、用例执行、缺陷管理、测试报告 3、用例设计编写格式 用例编号、用例标题、项目/模块、优先级、前置条…

数学公式编辑器mathtype2024特别版含激活序列

MathType 7是一款专业的数学公式编辑工具&#xff0c;广泛应用于教育教学、科研机构、工程学、物理学、化学等多个领域。它支持各种数学符号、公式、方程式、矩阵、分数、上下标等&#xff0c;几乎涵盖了所有的数学元素&#xff0c;可以帮助用户快速、方便地创建高质量的数学公…

[图像处理] MFC OnMouseMove()绘制ROI矩形时的闪烁问题

文章目录 问题对策代码完整工程 结果使用Picture控件的RedrawWindow()的效果使用Dialog的RedrawWindow()的效果使用Picture控件的RedrawWindow()&#xff0c;ROI绘制到图像外的效果 结论 问题 最近想通过业余时间&#xff0c;写一个简单的图像处理软件&#xff0c;一点点学习图…

WEB前端-笔记

目录 一、字体 二、背景图片 三、显示方式 四、类型转换 五、相对定位 六、绝对定位 七、固定定位 八、Index 九、粘性定位 十、内边距 十一、外边距 十二、边框 十三、盒子尺寸计算问题 十四、清楚默认样式 十五、内容溢出 十六、外边距的尺寸与坍塌 十七、行…

YOLOv8 测试 5:Linux 中 Docker 部署 YOLOv8,Python 封装 API 接口,base64 图片处理

一、前言 记录时间 [2024-4-14] 系列文章简摘&#xff1a; Docker 学习笔记&#xff08;二&#xff09;&#xff1a;在 Linux 中部署 Docker&#xff08;Centos7 下安装 docker、环境配置&#xff0c;以及镜像简单使用&#xff09; API 接口简单使用&#xff08;二&#xff09;…

树莓集团构建特色化3+3+1数字产业园运营体系

树莓集团构建的331数字产业园运营体系&#xff0c;是以三大服务体系、三大服务平台以及智慧园区服务为核心&#xff0c;为企业提供全生命周期服务&#xff0c;实现第五代数字化产业园区&#xff08;基地、中心&#xff09;的并网化运营。 这一运营体系的构建&#xff0c;标志着…

【MATLAB源码-第50期】基于simulink的BPSK调制解调仿真,输出误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. Bernoulli Binary: 这个模块生成伯努利二进制随机数&#xff0c;即0或1。这些数字表示要传输的原始数字信息。 2. Unipolar to Bipolar Converter: 此模块将伯努利二进制数据从0和1转换为-1和1&#xff0c;这是BPSK调制的…

硬件开发相关的流程文件介绍

学习目的&#xff1a;前面文章有简要介绍硬件开发的基本过程&#xff0c;本文会细分硬件开发的流程&#xff0c;然后分作5个步骤&#xff0c;详细介绍开发全过程&#xff0c;包括立项-实施项目-软件开发-测试-验收 这几个过程&#xff0c;然后&#xff0c;再分解对每一个步骤进…

poi-tl的使用(通俗易懂,全面,内含动态表格实现 包会!!)

最近在做项目时候有一个关于解析Html文件&#xff0c;然后将解析的数据转化成word的需求&#xff0c;经过调研&#xff0c;使用poi-tl来实现这个需求&#xff0c;自己学习花费了一些时间&#xff0c;现在将这期间的经验总结起来&#xff0c;让大家可以快速入门 poi-tl的介绍 …

Linux应用 select编程

1、概念 1.1 多路复用 在Linux中&#xff0c;多路复用是一种机制&#xff0c;用于同时监视多个文件描述符的状态&#xff0c;以便在其中任何一个文件描述符准备好进行读写操作时立即通知进程。常见的多路复用机制包括 select、poll 和 epoll。 1.2 select select 是一种用于…