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

[yolox]ubuntu上部署yolox的ncnn模型

首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。

测试环境:

ubuntu18.04

opencv3.4.4(编译过程省略,参考我其他博客)

安装vulkan:

方式一(测试用的这个方法)

sudo apt-get install cmake git gcc g++ mesa-* libwayland-dev libxrandr-dev
sudo apt-get install libvulkan1 mesa-vulkan-drivers vulkan-utils libvulkan-dev
vulkaninfo

2.2 方式二 

sudo apt-get install cmake git gcc g++ mesa-* libwayland-dev libxrandr-dev 
sudo apt-get install libvulkan1 mesa-vulkan-drivers vulkan-utils libxcb-keysyms1-dev
sudo apt-get install libxcb1-dev libx11-dev
wget https://sdk.lunarg.com/sdk/download/1.2.162.1/linux/vulkansdk-linux-x86_64-1.2.162.1.tar.gz
mkdir vulkan 
mv vulkansdk-linux-x86_64-1.2.162.1.tar.gz vulkan
cd vulkan
tar xf vulkansdk-linux-x86_64-1.2.162.1.tar.gz
# 下载github
cd 1.2.162.1/source/shaderc
python update_shaderc_sources.py 
# 编译
cd 1.2.162.1
bash vulkansdk  # 编译vulkan
source setup-env.sh # vulkan -> 系统环境变量
./x86_64/bin/vulkaninfo

2.3 方式三

git clone https://github.com/SaschaWillems/Vulkan.git
git submodule sync
git submodule update --init --recursive
mkdir build
cd build
cmake ..
make

下载ncnn库:

https://github.com/Tencent/ncnn/releases/download/20230223/ncnn-20230223-ubuntu-1804-shared.zip 解压后,编写CMakeLists.txt

cmake_minimum_required(VERSION 2.8.0)
project(YOLOX)set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})# 1.找ncnn的动态库,修改到自己下载的ncnn路径
set(ncnn_DIR /home/darknet/CM/10_device/ncnn-20230223-ubuntu-1804-shared/lib/cmake/ncnn)
find_package(ncnn REQUIRED)# 2. opencv动态库
find_package(OpenCV REQUIRED)add_executable(yolox yolox.cpp)
target_link_libraries(yolox ncnn ${OpenCV_LIBS})

注意这个CMakeLists.txt和yolox.cpp一起,yolox.cpp代码就在yolox官方源码demo/ncnn/cpp里面,然后编译

mkdir build && cd build
cmake ..
make -j

结果:

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

相关文章:

  • YOLOv9改进策略 :IoU优化 | 提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
  • 如何使用KST指标进行多头交易,Anzo Capital一个条件设置
  • 【QT进阶】第十三章QT动画类的使用QAbstractAnimation
  • 【机器学习】揭秘无监督学习:机器如何自我学习发现数据奥秘
  • 鸿蒙(HarmonyOS)ArkTs语言基础教程(大纲)
  • 掌握未来商机:如何利用会话式AI赢在起跑线
  • 软考高级架构师:数据传输控制方式:程序控制方式、程序中断方式、DMA方式、通道方式、IO处理机
  • 大模型之路2:继续趟一条小路
  • 打造安全医疗网络:三网整体规划与云数据中心构建策略
  • imu测试--UDP、PTP
  • 软考 系统架构设计师系列知识点之云原生架构设计理论与实践(13)
  • 2024多功能知识付费源码下载
  • 计算机网络——33多点访问协议
  • 基于神经网络的人脸识别系统的设计与实现
  • 远控桌面多任务并发文件保密传输
  • 探索 ZKFair 的Dargon Slayer蓝图,解锁新阶段的潜力
  • open Gauss 数据库-04 openGauss数据库日志管理指导手册
  • Redis性能瓶颈与安全隐患排查验证纪实
  • 【C/C++】C语言实现顺序表
  • 零基础快速上手:搭建类ChatGPT对话机器人的完整指南
  • Java中的取余与取模运算:概念、区别与实例详解
  • Excel制作甘特图
  • Dapr(一) 基于云原生了解Dapr
  • RESTful的优点
  • 网络检测与监控
  • 基于架构的软件开发方法_1.概述和相关概念及术语
  • 读所罗门的密码笔记07_共生思想(中)
  • 目标检测——工业安全生产环境违规使用手机的识别
  • Linux/Ubuntu/Debian 终端命令:设置文件/目录权限和组
  • QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题