当前位置: 首页 > news >正文

NCNN环境部署及yolov5pt转ncnn模型转换推理

该内容还未完整,笔记内容,持续补充。

〇开发环境版本

vs2022

cmake3.21.1

ncnn20231027发行版

yolov5s v6.2

vunlkan1.2.198.1

Protobuf3.20.0

Opencv3.4.1

一、模型转换

yolov5s v6.2训练的pt模型,直接导出tourchscript,然后使用ncnn里面的pnnx工具直接转换为ncnn。

这个地方别去pt转onnx转ncnn的了,踩了多少坑才出来的,有能力的可以去踩。

官方文档:

https://github.com/pnnx/pnnxicon-default.png?t=N7T8https://github.com/pnnx/pnnx

导出tourchscript使用yolov5里面export.py

tourchscript转pnnx命令(pnnx可以自己编译也可以直接下载ncnn-windows里面有编译好的):

pnnx.exe best.torchscript inputshape=[1,3,640,640]

二、部署环境(该部分内容待修改,最新版本ncnn无需vunlkan可直接编译;)

注意:cmake编译需要使用x64 Native Tools Command Prompt for VS 2022工具里面,cmd是没效果的。

直接拉取GitHub源码,然后更新完整代码。

git clone https://github.com/Tencent/ncnn.git
cd ncnn
git submodule update --init

1.安装vunlkan 1.2.198.1版本,记得配置环境变量

官网下载(只有最新版,而且特别慢):

https://vulkan-tutorial.com/icon-default.png?t=N7T8https://vulkan-tutorial.com/

GitHub下载:

https://github.com/KhronosGroup/Vulkan-Loadericon-default.png?t=N7T8https://github.com/KhronosGroup/Vulkan-Loader

2.安装Protobuf3.20.0版本

源码下载地址:


https://github.com/protocolbuffers/protobuf/releases/download/v3.20.0/protobuf-cpp-3.20.0.tar.gzicon-default.png?t=N7T8https://github.com/protocolbuffers/protobuf/releases/download/v3.20.0/protobuf-cpp-3.20.0.tar.gz

官方文档:

https://github.com/Tencent/ncnn/wiki/FAQ-ncnn-protobuf-problem.zhicon-default.png?t=N7T8https://github.com/Tencent/ncnn/wiki/FAQ-ncnn-protobuf-problem.zh

编译Protobuf命令 :

mkdir build_vs
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
nmake
nmake install

3.编译ncnn

下载ncnn完整源码:

https://github.com/Tencent/ncnn/releasesicon-default.png?t=N7T8https://github.com/Tencent/ncnn/releases

直接下载发行版本的完整代码,然后解压,用以下命令编译,自行替换Protobuf的编译路径,其中DNCNN_VULKAN=ON表示使用Vunlkan加速

mkdir build_vs
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=D:\protobuf-cpp-3.20.0\protobuf-cpp-3.20.0\protobuf-3.20.0\build_vs\install/include -DProtobuf_LIBRARIES=D:\protobuf-cpp-3.20.0\protobuf-cpp-3.20.0\protobuf-3.20.0\build_vs\install/lib/libprotobuf.lib -Dprotobuf_DIR=D:\protobuf-cpp-3.20.0\protobuf-cpp-3.20.0\protobuf-3.20.0\build_vs/install/cmake -DProtobuf_PROTOC_EXECUTABLE=D:\protobuf-cpp-3.20.0\protobuf-cpp-3.20.0\protobuf-3.20.0\build_vs\install/bin/protoc.exe -DNCNN_VULKAN=ON ..
ncmake
ncmake install

三、推理实现

相关文章:

NCNN环境部署及yolov5pt转ncnn模型转换推理

该内容还未完整,笔记内容,持续补充。 〇开发环境版本 vs2022 cmake3.21.1 ncnn20231027发行版 yolov5s v6.2 vunlkan1.2.198.1 Protobuf3.20.0 Opencv3.4.1 一、模型转换 yolov5s v6.2训练的pt模型,直接导出tourchscript&#xff0c…...

selenium模块有哪些用途?

Selenium模块是一个用于Web应用程序测试的模块,具有多种示例用法。以下是一些示例: 1.打开网页并执行一些基本操作,如点击按钮、输入文本等。 定位网页元素并执行操作,例如使用 find_element 方法查找单个元素,使用 f…...

精品Nodejs实现的校园疫情防控管理系统的设计与实现健康打卡

《[含文档PPT源码等]精品Nodejs实现的校园疫情防控管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 操作系统:Windows 10、Windows 7、Win…...

爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>

前言: 项目框架没有问题大家布好了的话,接着我们就开始部署scrapy项目(没搭好架子的话,看我上文爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>-CSDN博客) 正文: 1.创建主机: 首先gerapy的架子,就相当于部署服务器上的;所以…...

python测试工具: 实现数据源自动核对

测试业务需要: 现有A系统作为下游数据系统,上游系统有A1,A2,A3... 需要将A1,A2,A3...的数据达到某条件后(比如:A1系统销售单提交出库成功)自动触发MQ然后再经过数据清洗落到A系统,并将清洗后数据通过特定…...

要学习openfoam,c++需要掌握到什么程度?

要学习openfoam,c需要掌握到什么程度? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「c的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家&…...

web一些实验代码——Servlet请求与响应

实验4:Servlet请求与响应 1、在页面输入学生学号,从数据库中查询学生信息并显示。 (1)启动MySQL数据库服务,新建数据库,将student.sql文件导入到新建数据库(建立表,并插入3条数据&…...

GPT系列概述

OPENAI做的东西 Openai老窝在爱荷华州,微软投资的数据中心 万物皆可GPT下咱们要失业了? 但是世界不仅仅是GPT GPT其实也只是冰山一角,2022年每4天就有一个大型模型问世 GPT历史时刻 GPT-1 带回到2018年的NLP 所有下游任务都需要微调&#x…...

基于遗传算法的集装箱吊装优化,基于遗传算法的集装箱装卸优化

目录 背影 遗传算法的原理及步骤 基本定义 编码方式 适应度函数 运算过程 代码 结果分析 完整代码下载: 基于遗传算法的集装箱吊装优化,基于遗传算法的集装箱装卸优化(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88674652 背影 …...

postgreSQL单机部署

一、环境准备 架构操作系统IP主机名PG版本端口磁盘空间内存CPUsingle 单机centos7192.168.1.10pgserver01PostgreSQL 14.7543350G4G2 1、官网下载源码包 https://www.postgresql.org/download/2、操作系统参数修改 2.1 sysctl.conf配置 vi /etc/sysctl.conf kernel.sysrq …...

思维逻辑题3

题目1: 如果所有A都是B,且某个对象是B,那么它一定是A吗? 答案:不一定,尽管所有A都是B,但还有其他的对象可能也是B。 题目2: 如果A和B都是真,那么以下哪个选项是真&…...

强大的音乐乐谱控件库

2023 Conmajia, 2018 Ajcek84 SN: 23C.1 本中文翻译已获原作者首肯。 简介 PSAM 控件库——波兰音乐文档系统——是用于显示、排版乐谱的强大 WinForm 库,包含用于绘制乐谱的名为 IncipitViewer 控件,乐谱内容可以从 MusicXml 文件读取,或者…...

数据库——简单查询复杂查询

1.实验内容及原理 1. 在 Windows 系统中安装 VMWare 虚拟机,在 VMWare 中安装 Ubuntu 系统,并在 Ubuntu 中搭建 LAMP 实验环境。 2. 使用 MySQL 进行一些基本操作: (1)登录 MySQL,在 MySQL 中创建用户,…...

java虚拟机内存管理

文章目录 概要一、jdk7与jdk8内存结构的差异二、程序计数器三、虚拟机栈3.1 什么是虚拟机栈3.2 什么是栈帧3.3 栈帧的组成 四、本地方法栈五、堆5.1 堆的特点5.2 堆的结构5.3 堆的参数配置 六、方法区6.1 方法区结构6.2 运行时常量池 七、元空间 概要 根据 JVM 规范&#xff0…...

Hive实战:词频统计

文章目录 一、实战概述二、提出任务三、完成任务(一)准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 (二)实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS文件创建外部表4、查询单词表&a…...

FairyGUI-Cocos Creator官方Demo源码解读

博主在学习Cocos Creator的时候,发现了一款免费的UI编辑器FairyGUI。这款编辑器的能力十分强大,但是网上的学习资源比较少,坑比较多,主要学习方式就是阅读官方文档和练习官方Demo。这里博主进行官方Demo的解读。 从gitee上克隆项目…...

LabVIEW利用视觉引导机开发器人精准抓取

LabVIEW利用视觉引导机开发器人精准抓取 本项目利用单目视觉技术指导多关节机器人精确抓取三维物体的技术。通过改进传统的相机标定方法,结合LabVIEW平台的Vision Development和Vision Builder forAutomated Inspection组件,优化了摄像系统的标定过程&a…...

【Linux】指令(本人使用比较少的)——笔记(持续更新)

文章目录 ps -axj:查看进程ps -aL:查看线程echo $?:查看最近程序的退出码jobs:查看后台运行的线程组fd 任务号:将后台任务提到前台bg 任务号:将暂停的后台程序重启netstat -nltp:查看服务及监听…...

032 - STM32学习笔记 - TIM基本定时器(一) - 定时器基本知识

032 - STM32学习笔记 - TIM定时器(一) - 基本定时器知识 这节开始学习一下TIM定时器功能,从字面意思上理解,定时器的基本功能就是用来定时,与定时器相结合,可以实现一些周期性的数据发送、采集等功能&#…...

轮廓检测与处理

轮廓检测 先将图像转换成二值 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图 ret, thresh cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 变为二值,大于127置为255,小于100置为0.使用cv2.findContours(thresh, cv2.RETR_TREE, cv2.…...

跟着LearnOpenGL学习11--材质

文章目录 一、材质二、设置材质三、光的属性四、不同的光源颜色 一、材质 在现实世界里,每个物体会对光产生不同的反应。 比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。 有些物体反…...

Java guava partition方法拆分集合自定义集合拆分方法

日常开发中&#xff0c;经常遇到拆分集合处理的场景&#xff0c;现在记录2中拆分集合的方法。 1. 使用Guava包提供的集合操作工具栏 Lists.partition()方法拆分 首先&#xff0c;引入maven依赖 <dependency><groupId>com.google.guava</groupId><artifa…...

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…...

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测

多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现SSA-BiLSTM麻雀算法优化…...

docker安装Nacos和Rabbitmq

一、安装Nacos 首先需要拉取对应的镜像文件&#xff1a;&#xff08;切换版本加上对应版本号即可&#xff0c;默认最新版&#xff09; docker pull nacos/nacos-server 接着挂载目录&#xff1a; mkdir -p /mydata/nacos/logs/ #新建logs目录 mkdir -p …...

Android MVC 写法

前言 Model&#xff1a;负责数据逻辑 View&#xff1a;负责视图逻辑 Controller&#xff1a;负责业务逻辑 持有关系&#xff1a; 1、View 持有 Controller 2、Controller 持有 Model 3、Model 持有 View 辅助工具&#xff1a;ViewBinding 执行流程&#xff1a;View >…...

网络层解读

基本介绍 概述 当两台主机之间的距离较远(如相隔几十或几百公里&#xff0c;甚至几千公里)时&#xff0c;就需要另一种结构的网络&#xff0c;即广域网。广域网尚无严格的定义。通常是指覆盖范围很广(远超过一个城市的范围)的长距离的单个网络。它由一些结点交换机以及连接这些…...

js for和forEach 跳出循环 替代方案

1 for循环跳出 for(let i0;i<10;i){if(i5){break;}console.log(i) }在函数中也可以return跳出循环 function fn(){for(let i0;i<10;i){if(i5){return;}console.log(i)} } fn()for ... of效果同上 2 forEach循环跳出 break会报错 [1,2,3,4,5,6,7,8,9,10].forEach(i>…...

如何使用ArcGIS Pro自动矢量化建筑

相信你在使用ArcGIS Pro的时候已经发现了一个问题&#xff0c;那就是ArcGIS Pro没有ArcScan&#xff0c;在ArcGIS Pro中&#xff0c;Esri确实已经移除了ArcScan&#xff0c;没有了ArcScan我们如何自动矢量化地图&#xff0c;从地图中提取建筑等要素呢&#xff0c;这里为大家介绍…...

交互式笔记Jupyter Notebook本地部署并实现公网远程访问内网服务器

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下…...

做网站需要实名认证吗/关键词排名优化技巧

导出bcp dbname.tbname out c:\data.sql -T -c导入bcp dbname.tbname inc:\data.sql -T -c转载于:https://www.cnblogs.com/joe-yang/archive/2009/07/20/1527004.html...

专门做反季的网站/百度权重1

近来遇到一些网络编程方面的问题&#xff0c;涉及到了一些常见的概念&#xff0c;如&#xff1a;阻塞、非阻塞、异步I/O等等&#xff0c;百度的结果是惨不忍睹的&#xff0c;当然这也不能怪百度。没有办法还是得看英文&#xff0c;翻教材。后来发现阻塞和非阻塞的概念也并不难以…...

中英文网站用同域名/网站建设seo

内容摘要多租户容器数据库是Oracle 12c 版本比较重要的一个新特性&#xff0c;也是Oracle 12c OCM认证考试官方考试大纲中的重要考点 。本次课程带大家一起学习Oracle 12c 多租户容器数据库基本结构&#xff0c;介绍容器数据库CDB和PDB的连接访问方式&#xff0c;了解Oracle 12…...

境外社交网站上做推广/深圳市seo上词多少钱

获取输入法候选列表Description: In the following article we are going to learn how to solve problem of such type using class definitions. 说明&#xff1a;在下面的文章中&#xff0c;我们将学习如何解决使用类定义这种类型的问题。 Problem statement: 问题陈述&…...

网站如何验证登陆状态/湖北seo公司

参数化决策树 在参数化决策树之前&#xff0c;我们先来简单复习一下回归树的原理。对于决策树而言&#xff0c;每个被放入模型的任意样本最终一个都会落到一个叶子节点上。对于回归树&#xff0c;通常来说每个叶子节点上的预测值是这个叶子节点上所有样本的标签的均值。但值得…...

做网站建本地环境作用/seo网站推广的主要目的包括

前面说完了此项目的创建及数据模型设计的过程。如果未看过&#xff0c;可以到这里查看&#xff0c;并且项目源码已经放大到github上,可以去这里下载。代码也已经部署到sina sea上&#xff0c;地址为http://fengzheng.sinaapp.com/先跳过视图展示及表单处理的部分&#xff0c;先…...