pyhton推理代码跨平台部署

一. 场景说明

我们经常训练好的模型需要部署,有时候算法组和工程组是分开的,这时候就需要我们提供C++的前后处理逻辑,这时怎么调试我们的C++代码呢?

解决方法:把模型推理的结果保存成C++可加载的形式,即可调试C++后处理代码。

二. 一个例子

模型预测的结果是一个两通道的Mat,我们首先把它保存成yaml形式,比如:offset.yaml。

	# flow为模型预测的结果debug = Falseif debug:yaml_out = "offset.yaml"fs = cv2.FileStorage(yaml_out, cv2.FILE_STORAGE_WRITE)fs.write("flow", flow)fs.release()if debug:yaml_in = "offset.yaml"fs = cv2.FileStorage(yaml_in, cv2.FILE_STORAGE_READ)flow1 = fs.getNode("flow").mat()fs.release()

用C++加载保存的offset.yaml,以便进行后续C++代码的调试:

#include <opencv2/opencv.hpp>
#include <iostream>int yaml_to_mat(const std::string yaml_in, cv::Mat& flow)
{cv::FileStorage fs(yaml_in, cv::FileStorage::READ);if (!fs.isOpened()) {std::cerr << "Failed to open YAML file." << std::endl;return -1;};fs["flow"] >> flow;fs.release();std::cout << "INFO::" << "read flow success!" << std::endl;return 0;
}

接下来,你就能流畅的写完你的后处理代码,打包交付啦!!!

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

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

相关文章

c++ http第一个服务

c http第一个服务 一、下载相关依赖&#xff1a;这是一个git开源项目 代码仓地址 二、演示代码&#xff0c;编译参数&#xff1a;g test.cpp -I/**** -lpthread #include <httplib.h> using namespace httplib;void wuhan(const Request &req, Response &res) …

MSVS C# Matlab的混合编程系列1 - 看似简单的问题引出

前言&#xff1a; 问题提出&#xff0c;如何把Matlab(本文简称MT)的算法集成到Visual Studio(本文简称VS)里面运行&#xff1f; 本文&#xff0c;通过编制一个MT中最简单的加法函数&#xff0c;我们把他做成 MSVS C#能够使用的动态库&#xff0c;说明了MSVS C# 和 MT集成的最…

下拉框联动控制,明细数据重复检查

1、明细数据重复检查针对下拉框的字段&#xff0c;在重新赋空值时没成功&#xff0c;被注释了。 2、下拉联动控制如图 价格类型&#xff1a;优惠价&#xff0c;门店价 与员工关系&#xff1a;本人&#xff0c;父母&#xff0c;儿女&#xff0c;兄弟姐妹 优惠类型&#xff1a…

精华推荐 |【深入浅出Sentinel源码】「源码探索专题」完整剖析Alibaba微服务架构体系之分布式系统的流量防卫兵的基本介绍(入门源码介绍)

整剖析Alibaba微服务架构体系之分布式系统的流量防卫兵的基本介绍 推荐资料Sentinel 是什么&#xff1f;Sentinel 具有以下特征: Maven的pom中配置main函数介绍总结说明自定义的rule加载规则 Sentinel的限流原理滑动时间窗口算法固定时间窗口算法普通的滑动窗口做法Sentinel的滑…

ReactNative中样式与布局的书写

样式 const styles StyleSheet.create({container: {flex: 1,justifyContent: center,alignItems: center,backgroundColor: #F5FCFF,}, welcome: {fontSize: 20, textAlign: center,margin: 10, }, instructions: {textAlign: center,color: #333333,marginBottom: 5,}, …

七省数据局密集挂牌,期待规范引领数据行业蓬勃发展

今年开年以来&#xff0c;新一轮机构改革逐步在省级层面落地&#xff1a;多个省级数据局纷纷挂牌&#xff0c;全国各省市数据要素化市场加速推动。 1月10日&#xff0c;江苏省数据局率先正式挂牌&#xff0c;这是2023年国家数据局正式揭牌后&#xff0c;第一个成立的省级数据局…

AE/PR/达芬奇视频去闪烁插件---Flicker Free

Flicker Free是一款视频处理工具&#xff0c;主要用于去除视频中的闪烁和闪光问题&#xff0c;提高视频质量。它可以帮助用户快速、方便地处理视频&#xff0c;使其更加流畅、清晰。Flicker Free可以作为After Effects、Premiere Pro、Final Cut Pro、Avid、Resolve或Vegas的插…

C++ Linux动态库的编译和调用

一、C动态库编译 采用g编译C动态库&#xff0c;命令如下&#xff1a; g -fPIC -shared -o 动态库名 cpp文件名1.1 关于fPIC选项 首先了解动态库的载入时重定位。 一般linux的可执行文件都是elf格式&#xff08;一种二进制文件格式&#xff09;&#xff0c;在可执行文件的头部包…

在 PyTorch 中,怎么指定程序使用的 GPU。

在 PyTorch 中&#xff0c;你可以使用 CUDA_VISIBLE_DEVICES 环境变量来指定程序使用的 GPU。在你的命令行中运行脚本之前&#xff0c;你可以设置该环境变量。以下是如何指定显卡的一种方法&#xff1a; 假设使用第一张 GPU&#xff0c;可以运行以下命令&#xff1a; CUDA_VI…

【GaussDB数据库】序

参考链接1&#xff1a;国产数据库华为高斯数据库&#xff08;GaussDB&#xff09;功能与特点总结 参考链接2&#xff1a;GaussDB(DWS)介绍 GaussDB简介 官方网站&#xff1a;云数据库GaussDB GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务&#xff0c;…

Unity之射线检测

不知道大家有没有玩过红色警戒 —— 一款即时战略游戏&#xff0c;和罪恶都市一样小编小学的时候就开始玩了&#xff0c;这款游戏控制单位角色移动是通过鼠标的点击来实现。 同样的操作方法还有英雄联盟等很多游戏&#xff0c;那本篇文章小编就通过简单小实例来讲解这种操作在U…

2024最新Java高频面试题总结(附答案PDF)春招面试必备!

《Java面试全解析》1000道 面试题大全详解 本人是 2009 年参加编程工作的&#xff0c;一路上在技术公司摸爬滚打&#xff0c;前几年一直在上海&#xff0c;待过的公司有 360 和游久游戏&#xff0c;因为自己家庭的原因&#xff0c;放弃了阿里钉钉团队的 offer 回到了西安。 从…

openfire源码篇(一)检出源码并运行

openfire源码篇&#xff08;一&#xff09;检出源码并运行 源码检出 官方github地址 https://github.com/igniterealtime/Openfire 检出源码到本地&#xff08;请注意你的java版本&#xff0c;我检出的openfire 为 4.9.0-SNAPSHOT 此时jdk版本应为11&#xff09; 将源码检出…

API接口指南:打造高效开发流程的秘密武器

IP应用场景-IPv4&#xff0c;IPv4应用场景是获取IP场景属性的在线调用接口&#xff0c;具备识别IP真人度&#xff0c;提升风控和反欺诈等业务能力。IP应用场景基于地理和网络特征的IP场景划分技术&#xff0c;将IP划分为含数据中心、交换中心、家庭宽带、CDN、云网络等共计18类…

通过OpenIddict设计一个授权服务器02-创建asp.net项目

在这一部分中&#xff0c;我们将创建一个ASPNET核心项目&#xff0c;作为我们授权服务器的最低设置。我们将使用MVC来提供页面&#xff0c;并将身份验证添加到项目中&#xff0c;包括一个基本的登录表单。 创建一个空的asp.net core项目 正如前一篇文章中所说&#xff0c;授权…

苹果Find My可查找添加32件物品,伦茨科技ST17H6x芯片加速产品赋能

苹果最近更新的支持文档证实&#xff0c;从 iOS 16 开始&#xff0c;"Find My"可查找添加物品从16件增加到32件&#xff0c;AirTag 和“查找”网络中的物品利用“查找”网络的强大功能来发挥作用&#xff0c;这个网络由数亿台加密的匿名 Apple 设备构成。“查找”网络…

【MySQL】临时变量用法

力扣题 1、题目地址 2388. 将表中的空值更改为前一个值 2、模拟表 表&#xff1a;CoffeeShop Column NameTypeidintdrinkvarchar id 是该表的主键&#xff08;具有唯一值的列&#xff09;。该表中的每一行都显示了订单 id 和所点饮料的名称。一些饮料行为 null。 3、要求…

数据结构之栈的基本操作

该顺序栈涉及到了存储整型数据的顺序栈还有存储字符型数据的顺序栈 实现的功能有&#xff1a;入栈、出栈、判断是否为空栈、求栈的长度、清空栈、销毁栈、得到栈顶元素 此外根据上述功能&#xff0c;编写了数值转换&#xff08;十进制转化八进制&#xff09;方法、括号匹配方法…

Wav2Lip视频人脸口型同步(Win10)

最近比较火的一个AI场景&#xff0c;就是用原声讲外语&#xff0c;嘴型同步&#xff0c;网上找了些资料&#xff0c;今天也跑起来了&#xff0c;推荐 Wav2Lip&#xff0c;官网地址&#xff1a;Github Wav2Lip 环境准备 Python3.6ffmpeggit clone https://github.com/Rudrabha/…

Mysql Explain各字段说明

id &#xff1a;同一个select&#xff0c;id都是1&#xff1b;不同的select&#xff0c;id才不同。 select_type: 查询类型 SIMPLE&#xff1a;普通查询 PRIMARY:主查询 SUBQUERY&#xff1a;子查询 DEPENDENT SUBQUERY&#xff1a;子查询&#xff0c;不能被优化为连接查询…