当前位置: 首页 > 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

三、推理实现

http://www.lryc.cn/news/269759.html

相关文章:

  • selenium模块有哪些用途?
  • 精品Nodejs实现的校园疫情防控管理系统的设计与实现健康打卡
  • 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>
  • python测试工具: 实现数据源自动核对
  • 要学习openfoam,c++需要掌握到什么程度?
  • web一些实验代码——Servlet请求与响应
  • GPT系列概述
  • 基于遗传算法的集装箱吊装优化,基于遗传算法的集装箱装卸优化
  • postgreSQL单机部署
  • 思维逻辑题3
  • 强大的音乐乐谱控件库
  • 数据库——简单查询复杂查询
  • java虚拟机内存管理
  • Hive实战:词频统计
  • FairyGUI-Cocos Creator官方Demo源码解读
  • LabVIEW利用视觉引导机开发器人精准抓取
  • 【Linux】指令(本人使用比较少的)——笔记(持续更新)
  • 032 - STM32学习笔记 - TIM基本定时器(一) - 定时器基本知识
  • 轮廓检测与处理
  • 跟着LearnOpenGL学习11--材质
  • Java guava partition方法拆分集合自定义集合拆分方法
  • GLTF编辑器-位移贴图实现破碎的路面
  • 多维时序 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多变量时间序列预测
  • docker安装Nacos和Rabbitmq
  • Android MVC 写法
  • 网络层解读
  • js for和forEach 跳出循环 替代方案
  • 如何使用ArcGIS Pro自动矢量化建筑
  • 交互式笔记Jupyter Notebook本地部署并实现公网远程访问内网服务器
  • 41.坑王驾到第七期:uniapp开发微信小程序引用组件时报错!