[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.mzph.cn/news/779892.shtml

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

相关文章

USB - libusbg vs libusbgx

libusbg GitHub - libusbg/libusbg: USB Gadget Configfs Library libusbgx GitHub - linux-usb-gadgets/libusbgx: C library encapsulating the Linux kernel USB gadget configfs userspace API functionality libusbg 和 libusbgx 都是与 Linux 中 USB gadgets配置相关的…

List操作add,clear,addall报错UnsupportedOperationException的解决办法

ArrayList和Arrays.ArrayList是两码事 ArrayList 支持 add,clear,addall Arrays.ArrayList不支持add,clear,addall 这个方法的使用时候,传递的数组必须是对象数组,而不是基本数据类型 JDK源码 /** *返回由…

Linux 安装部署高性能缓存服务redis

Linux 系统安装Redis 5 注意事项: 下载Redis 文件包,并上传至linux服务上解压 tar -zxvf redis.tar安装: 编译 make PREFIX/usr/local/redis install配置: redis.conf daemonize yes bind 127.0.0.1 192.168.1.221 supervised…

2024.3.31 机器学习周报

引言 Abstract 文献阅读 1、题目 Lite-HRNet: A Lightweight High-Resolution Network 2、引言 我们提出了一个高效的高分辨率网络,Lite-HRNet,用于人体姿态估计。首先,我们简单地将Shuf Chronenet中的高效shuffle块应用于HRNet&#x…

逻辑分析仪使用杂记

50MSa为采样深度:对被测信号一次采集的样点总数。它决定了一次采样所能采集到的数据量的多少,深度越大,一次采集的数据量越大。 16MHZ为采样率:对被测信号进行采样的频率,也就是每秒所采集的样点数。它决定了一次采样…

小程序内多种直播方案对比

我可以为您提供一个基于您提供信息的简单对比表,以便您对比视频号直播、小程序直播和三方SDK直播的不同特点和成本。在做出最终决定前,建议您还需要考虑直播质量、用户体验、后续支持和维护等因素。 特点/平台视频号直播小程序直播三方SDK直播直播方式通…

328——二维矩阵值变为1最小操作次数 next、nextInt、nextLine

一、next、nextInt、nextLine区别 1.next() next()不光是接收键盘输入的内容,而且还进行分割。例如默认分隔符为空格 Scanner sc new Scanner(System.in);while (true){String str sc.next();System.out.println(str "A");}// 输出结果 input&#…

【算法】归并排序(迭代法)

简介 归并排序有两种实现方法: 递归法(Top-down implementation)迭代法(Bottom-up implementation)关于归并排序的介绍请看之前的 归并排序(递归法)。 算法步骤(迭代) 设待排列序列有 n 个序列。子序列宽度为 width = 1。 将宽度为 width 的子序列每对相邻两个子序…

备考ICA----Istio实验14---出向流量管控Egress Gateways实验

备考ICA----Istio实验14—出向流量管控Egress Gateways实验 1. 发布测试用 pod kubectl apply -f istio/samples/sleep/sleep.yaml kubectl get pods -l appsleep2. ServiceEntry 创建一个ServiceEntry允许流量访问edition.cnn.com egressgw/edition-ServiceEntry.yaml api…

代码随想录Day38

Day 38 动态规划 part01 今日任务 斐波那契数 爬楼梯 使用最小花费爬楼梯 代码实现 斐波那契数 //递归public int fib(int n) {if (n 0) {return 0;}if (n 1) {return 1;}return fib(n - 1) fib(n - 2);}//动态规划public int fib2(int n) {if (n < 1) return n;in…

科技下乡:数字乡村改变乡村生活方式

在科技飞速发展的时代&#xff0c;数字化、信息化浪潮正以前所未有的速度席卷全球。在这场科技革命中&#xff0c;乡村不再是滞后的代名词&#xff0c;而是成为了数字乡村建设的热土。科技下乡&#xff0c;让数字乡村成为了改变乡村生活方式的重要力量。 一、科技下乡&#xf…

(学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

STM32之HAL开发——I2C读写EEPROM

I2C功能框图&#xff08;F1系列&#xff09; STM32 的 I2C 外设可用作通讯的主机及从机&#xff0c;支持 100Kbit/s 和 400Kbit/s 的速率&#xff0c;支持 7 位、 10 位设备地址&#xff0c;支持 DMA 数据传输&#xff0c;并具有数据校验功能&#xff0c;I2C 外设还支持 SMBus2…

工作日志- 不定期更新

1. protobuf中使用import引用其他proto文件&#xff0c;生成后在go语言的go modules中import 包名报错问题。 public.proto文件 //protoc --go_outpluginsgrpc:. public.proto syntax "proto3";package public;option go_package "self/game-service/msg/pu…

3D产品可视化SaaS

“我们正在走向衰退吗&#xff1f;” “我们已经陷入衰退了吗&#xff1f;” “我们正在步入衰退。” 过去几个月占据头条的问题和陈述引发了关于市场对每个行业影响的讨论和激烈辩论。 特别是对于科技行业来说&#xff0c;过去几周一直很动荡&#xff0c;围绕费用、增长和裁…

Webpack生成企业站静态页面 - ajax请求

一些项目因需求不同&#xff0c;如需SEO或小项目&#xff0c;使用angular、react或vue就大材小用了。可以通过webpack、gulp这些构建工具&#xff0c;也能快速完成html页面开发&#xff0c;并且也能使用less/sass/styus等样式预编译功能&#xff0c;以及将js、html分模块、分组…

RabbitMQ高级笔记

视频链接&#xff1a;【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.发送者的可靠性1.1.生产者重试机制1.2.生产者确认机制1.3.实现生产者确认1.3.1.开启生产者确认1.3.2.定义ReturnCallback1.3.3.定义ConfirmCallback 2.MQ的可靠性2.1.数据持久化2.1.1.交换机持久化2.1.2.…

小米汽车SU7发布,售价21.59万起,订单总额破1亿

文 | 大力财经 小米召开新车发布会&#xff0c;正式发布小米 SU7。该车定位中大型纯电轿车&#xff0c;有 SU7、SU7 Pro、SU7 Max 三个版本&#xff0c;车身尺寸 4997/1963/1455mm&#xff0c;轴距 3000mm。售价 21.59-29.99 万。 新车发布后&#xff0c;市场反应热烈&#x…

Redis 过期删除策略 And 内存淘汰策略 !!!

一、Redis过期删除策略&#xff08;什么时候删除&#xff09; 1、惰性删除&#xff1a;放任键过期不管&#xff0c;但是每次从键空间中获取键时&#xff0c;都检查取得的键是否过期&#xff0c;如果过期的话就删除该键&#xff0c;如果没有过期就返回该键。 2、定期删除&…

Topaz Gigapixel AI for Mac 图像放大软件

Topaz Gigapixel AI for Mac是一款专为Mac用户设计的智能图像放大软件。它采用了人工智能技术&#xff0c;特别是深度学习算法&#xff0c;以提高图像的分辨率和质量&#xff0c;使得图像在放大后仍能保持清晰的细节。这款软件的特点在于其能够将低分辨率的图片放大至高分辨率&…