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

yolov11模型在Android设备上运行【踩坑记录】

 0) 参考资料: 

https://github.com/Tencent/ncnn?tab=readme-ov-file 
https://github.com/pnnx/pnnx
https://github.com/nihui/ncnn-android-yolov5
https://github.com/Tencent/ncnn?tab=readme-ov-file

1) :将xxx.pt模型转化成 xxx.onnx

ONNX(Open Neural Network Exchange)是一种开放格式,可以让你在不同深度学习框架之间转换和共享模型 ; ONNX 适用于边缘设备和移动端,部署到 移动设备(如 Android / iOS); Android 不能直接使用 ONNX 模型,但可以通过 ONNX Runtime 或 转换为 NCNN / TFLite /在Linux环境下执行:pip install ultralytics 'onnx>=1.12.0', 'onnxslim', 'onnxruntime'python convert_pt2onnx() 得到 xxx.onnx 模型
def convert_pt2onnx():OreModelPath = 'E:\code_py_workspace\mainApp\\v8n-pt_oreDusty320Cls1_imgsz640.pt'model = YOLO(OreModelPath)model.eval()# first way of convertionpath = model.export(format="onnx", opset=14, dynamic=True)print(path)

2) 将onnx模型转换成ncnn格式 ;

下载工具 https://github.com/pnnx/pnnx/releases

解压执行:pnnx your_model.torchscript.onnx inputshape=[1,3,224,224]

# 进入pnxx目录执行:
> pnnx E:\code_py_workspace\mainApp\\v8n-pt_oreDusty320Cls1_imgsz640.onnx inputshape=[1,3,224,224]# 或者直接在windows cmd 窗口当中写绝对路径
> E:\code_arm_workspace\pnnx-20241223-windows>pnnx E:\code_py_workspace\mainApp\\v8n-pt_oreDusty320Cls1_imgsz640.onnx inputshape=[1,3,224,224]

(*)模型执行完成后,获得xxx.bin文件(可以在Android设备上运行)

3)在Android Studio编译项目的时候遇到的问题

# 在local.properties当中写(提前准备好sdk和ndk)
# sdk,ndk可以在AS当中的SDK Manager当中下载
sdk.dir=E\:\\android-sdk-windows
ndk.dir=E\:\\android-sdk-windows/ndk/26.1.10909125
# gradle-wapper properties文件当中指定gradle版本(distributionUrl=)
# 可以提前下载好放在本地distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=file\:///E:/android_software/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

 

相关文章:

yolov11模型在Android设备上运行【踩坑记录】

0) 参考资料: https://github.com/Tencent/ncnn?tabreadme-ov-file https://github.com/pnnx/pnnx https://github.com/nihui/ncnn-android-yolov5 https://github.com/Tencent/ncnn?tabreadme-ov-file 1) :将xxx.pt模型转化成 xxx.onnx ONNX(Ope…...

Linux在x86环境下制作ARM镜像包

在x86环境下制作ARM镜像包(如qemu.docker),可以通过QEMU和Docker的结合来实现。以下是详细的步骤: 安装QEMU-user-static QEMU-user-static是一个静态编译的QEMU二进制文件,用于在非目标架构上运行目标架构的二进制文…...

win编译openssl

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…...

为什么说,在IT行业中长期从事外包岗位没有前途?

文章目录 前言一、职业发展与技能提升受限二、工作稳定性和归属感缺失三、薪资待遇和福利差异四、行业声誉和求职歧视总结 前言 在IT行业中,由于企业要降低成本、优化资源、分散风险以及满足市场需求和技术需求等原因,存在大量的外包岗位。很多人都说长…...

【B站保姆级视频教程:Jetson配置YOLOv11环境(七)Ultralytics YOLOv11配置】

Jetson配置YOLOv11环境(7)Ultralytics YOLOv11环境配置 文章目录 1. 下载YOLOv11 github项目2. 安装ultralytics包3. 验证ultralytics安装3.1 下载yolo11n.pt权重文件3.2 推理 1. 下载YOLOv11 github项目 创建一个目录,用于存放YOLOv11的项目…...

硬核技术:小程序能够调用手机的哪些传感器

一、加速度传感器 小程序可以调用手机的加速度传感器来检测设备的运动状态。加速度传感器能够测量设备在三个轴(X、Y、Z)上的加速度变化。通过分析这些数据,小程序可以实现一些功能,如运动检测、步数统计、游戏中的动作感应等。 健…...

Day 31 卡玛笔记

这是基于代码随想录的每日打卡 491. 非递减子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等&#xff0…...

【蓝桥杯嵌入式】4_key:单击+长按+双击

全部代码网盘自取 链接:https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码:3ii2 1、电路图 将4个按键的引脚设置为input,并将初始状态设置为Pull-up(上拉输入) 为解决按键抖动的问题,我们…...

Synchronized和ReentrantLock面试详解

前言 接下来为大家带来的是 Java 中的两个典型锁代表:Synchronized 和 ReentrantLock 的详解 面试题:谈一谈AQS 在说 ReentrantLock 时,有必要先了解一下 AQS,因为 ReentrantLock 就是基于 AQS 实现的 分析: 共享…...

1.2 学习驱动(Driver)分为几步?

文章目录 前言一、什么是UVM中的驱动(Driver)?二、如何理解Driver?三、如何使用Driver?第一步:定义Driver类第二步:实现run_phase任务第三步:实现驱动任务第四步:实例化和…...

【MySQL篇】事务的认识以及四大特性

何为事务? 事务(Transaction)是指一组操作的集合,这些操作要么全部执行成功,要么全部不执行。事务通常用于保证数据库的一致性、完整性和可靠性,确保数据的完整性与正确性。 有效避免部分执行&#xff0c…...

2.7日学习总结

深入探究栈、队列与二叉树 一、栈的深度剖析 进阶特性:除了常规的入栈、出栈操作,栈在处理函数调用、表达式求值等场景时,展现出独特的递归模拟能力。利用栈可以将递归算法转化为非递归形式,有效避免因递归过深导致的栈溢出问题。…...

SQL带外注入

SQL 带外注入(Out-of-Band SQL Injection, OOB SQLi) 是 SQL 注入的一种特殊类型,主要用于以下情况: 数据库没有直接返回错误信息(比如被防火墙拦截了)。无法使用常规注入手法(如 UNION、错误信…...

Nginx进阶篇 - nginx多进程架构详解

文章目录 1. nginx的应用特点2. nginx多进程架构2.1 nginx多进程模型2.2 master进程的作用2.3 进程控制2.4 worker进程的作用2.5 worker进程处理请求的过程2.6 nginx处理网络事件 1. nginx的应用特点 Nginx是互联网企业使用最为广泛的轻量级高性能Web服务器,其特点是…...

【算法专场】分治(下)

目录 前言 归并排序 思想 912. 排序数组 算法思路 算法代码 LCR 170. 交易逆序对的总数 算法思路 算法代码 315. 计算右侧小于当前元素的个数 - 力扣(LeetCode) 算法思路 算法代码 493. 翻转对 算法思路 算法代码 好久不见~时隔多日&…...

OSPF基础(2):数据包详解

OSPF数据包(可抓包) OSPF报文直接封装在IP报文中,协议号89 头部数据包内容: 版本(Version):对于OSPFv2,该字段值恒为2(使用在IPV4中);对于OSPFv3,该字段值恒为3(使用在IPV6中)。类型(Message Type):该OSPF报文的类型。…...

ubuntu直接运行arm环境qemu-arm-static

qemu-arm-static 嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题,想预先交叉编译并安装一些应用程序,但是交叉编译的环境配置以及依赖包的安装十分繁琐,并且容易出错。想直接在目标板上进行编译和安装&#x…...

Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start

原因:由于墙的问题,导致拉取国外的K8s镜像失败 解决: 下载 k8s-for-docker-desktop 选中自己的kubernetes 版本 下载zip包 PowerShell运行load_images.ps1文件 重启docker kubernetes运行成功...

beyond the ‘PHYSICAL‘ memory limit.问题处理

Container [pid5616,containerIDcontainer_e50_1734408743176_3027740_01_000006] is running 507887616B beyond the ‘PHYSICAL’ memory limit. Current usage: 4.5 GB of 4 GB physical memory used; 6.6 GB of 8.4 GB virtual memory used. Killing container. 1.增大map…...

AI大模型零基础学习(1):大模型使用篇

一、大模型是什么?为什么你需要它? 一句话理解:大模型像一个能听懂人话的"超级智能助手",它能写文章、解数学题、翻译语言、写代码…只要你会打字提问,它就能给出答案。 典型场景: 学生党&…...

StarSpider 星蛛 爬虫 Java框架 可以实现 lazy爬取 实现 HTML 文件的编译,子标签缓存等操作

StarSpider 星蛛 爬虫 Java框架 开源技术栏 StarSpider 能够实现 针对 HTML XSS SQL 数学表达式等杂乱数据的 爬取 解析 提取 需求! 目录 文章目录 StarSpider 星蛛 爬虫 Java框架目录介绍如何获取?maven配置 架构是什么样的?结果对象的类…...

【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命

目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展,部分内容有删除,与原文会有…...

先进制造aps专题二十八 生产排程仿真引擎和工厂生产仿真引擎的设计

一 排产仿真引擎的设计 主要分为仿真模型,仿真模型逻辑和仿真框架这三个部分 1 仿真模型 和算法排产不一样,在算法排产里,机器对应的是数据库记录,排产逻辑是写在整体的算法里的,而仿真排产,机器对应的是…...

WPF模板

WPF模板深度解析:打造个性化UI的利器 在WPF(Windows Presentation Foundation)的世界里,模板(Template)是构建个性化用户界面(UI)不可或缺的工具。它们允许开发者将控件的逻辑功能与…...

动态规划LeetCode-121.买卖股票的最佳时机1

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。…...

pytest+request+yaml+allure 接口自动化测试全解析[手动写的跟AI的对比]

我手动写的:Python3:pytest+request+yaml+allure接口自动化测试_request+pytest+yaml-CSDN博客 AI写的:pytest+request+yaml+allure 接口自动化测试全解析 在当今的软件开发流程中,接口自动化测试扮演着至关重要的角色。它不仅能够提高测试效率,确保接口的稳定性和正确性…...

单片机通讯中的时序图:初学者的入门指南

一、什么是时序图? 在单片机的世界里,时序图是一种非常重要的工具,它用于描述信号在时间上的变化规律。简单来说,时序图就像是信号的“时间线”,它展示了各个信号线在不同时间点上的电平状态。通过时序图,我…...

#渗透测试#批量漏洞挖掘#微商城系统 goods SQL注入漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

Lua中文语言编程源码-第十一节,其它小改动汉化过程

__tostring 汉化过程 liolib.c metameth[] {"__转换为字符串", f_tostring}, lauxlib.c luaL_callmeta(L, idx, "__转换为字符串") lua.c luaL_callmeta(L, 1, "__转换为字符串") __len 汉化过程 ltm.c luaT_eventname[] ltablib.c c…...

import { Component, Vue, Prop, Watch } from ‘vue-property-decorator‘

文章目录 导入部分的解释总结Vue 3 的推荐替代方案总结 你提供的代码片段是使用 vue-property-decorator 库的示例,这是一个第三方库,它提供了 Vue 组件的装饰器,使得编写类风格的 Vue 组件更加方便。以下是对代码中每个部分的详细解释&…...