模型部署:(二)安卓端部署Yolov5-v6.0目标检测项目全流程记录

  • 1、下载NCNN项目
  • 2、下载基于安卓的yolov5项目
  • 3、修改相应的配置文件
  • 4、将项目打包成apk包
  • 5、部署自己训练的yolov5模型
  • 6、相关资料下载:

1、下载NCNN项目

# 链接地址
https://github.com/Tencent/ncnn/releases?page=2

在这里插入图片描述

android ios macos linux windows webassembly 预编译库 20220420 7600270

在这里插入图片描述
在这里插入图片描述

2、下载基于安卓的yolov5项目

https://github.com/nihui/ncnn-android-yolov5

在这里插入图片描述

将目录ncnn-20220420-android-vulkan下的所有的文件
在这里插入图片描述
复制到目录ncnn-android-yolov5-master下的ncnn-android-yolov5-master\app\src\main\jni路径下
在这里插入图片描述

报错1:

Android Studio处理异常报错:Cause connect timed out

解决方案则是:
在gradle-wrapper.properties中更改distributionUrl地址如下:

distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-5.4.1-all.zip

在这里插入图片描述

报错2:

NDK not configured. Download it with SDK manager.

在这里插入图片描述

3、修改相应的配置文件

进入到如下目录中
在这里插入图片描述
CMakeLists.txt文件中的相关路径修改成如上所示(由于已经实现将相关的文件复制到到了对应的目录内)

经过上述操作后,点击如下,进行项目重构
在这里插入图片描述

修改镜像源:
在这里插入图片描述
将build.gradle文件修改成如下内容:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {repositories {// 阿里云镜像maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/central' }// 清华镜像(备用)maven { url 'https://mirrors.tuna.tsinghua.edu.cn/maven/google' }maven { url 'https://mirrors.tuna.tsinghua.edu.cn/maven/central' }mavenCentral()}dependencies {classpath 'com.android.tools.build:gradle:4.2.2'}
}allprojects {repositories {// 阿里云镜像maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'https://maven.aliyun.com/repository/public' }maven { url 'https://maven.aliyun.com/repository/central' }// 清华镜像(备用)maven { url 'https://mirrors.tuna.tsinghua.edu.cn/maven/google' }maven { url 'https://mirrors.tuna.tsinghua.edu.cn/maven/central' }mavenCentral()}
}

4、将项目打包成apk包

按照链接https://guoqingru.blog.csdn.net/article/details/151359111的流程打包成apk并安装,检测效果如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、部署自己训练的yolov5模型

我是采用的yolov5-6.0版本,我使用pytorch1.8版本,刚开始采用的pytorch版本是1.13,结果由于版本太高出现异常报错问题

首先需要将训练的.pt文件转换成.onnx格式

采用如下指令:

python export.py --weights yolov5s.pt --include onnx   

在这里插入图片描述
onnx去冗余

.pt模型导出的.onnx模型包含许多冗余的维度,这是ncnn不支持的,所以需要去掉冗余的维度。一定要去冗余!!!!要不后面转换容易报错

前置:onnx(pytorch自带了,不用单独安装)、onnx-simplifier (需要安装)

安装onnx-simplifier的指令:

pip install onnx-simplifier

去冗余指令:

python -m onnxsim yolov5s.onnx  yolov5s-sim.onnx

如下所示,转换完毕:
在这里插入图片描述
在这里插入图片描述

再将得到的.onnx文件转换成.ncnn格式文件:

转换工具下载地址:

https://download.csdn.net/download/guoqingru0311/91903993

将转换后的瘦身后的模型下载到Windows系统本地,采用如下所示的转换工具将yolov5s-sim.onnx文件转换成.ncnn格式的文件(注意:必须要将.onnx文件进行瘦身去除掉冗余,否则接下来的ncnn文件转换会报错)

在这里插入图片描述
转换后的生成文件如下所示:
在这里插入图片描述

参数配置修改:
将转换得到的yolov5s.bin与yolov5s.param文件拷贝至项目F:\ncnn-android-yolov5-master\app\src\main\assets目录下进行如下修改:

原始文件:
在这里插入图片描述
修改后:
在这里插入图片描述
注意:必须将下图中的红色标注区域改成对应的375与400
在这里插入图片描述

修改对应的检测物体类别标签:
在这里插入图片描述

修改完上述文件中红、绿标注的位置后,重构项目,安装程序!!!

在这里插入图片描述
在这里插入图片描述

6、相关资料下载:

安卓端部署Yolov5-v6.0目标检测项目全流程记录-相关代码资料

https://download.csdn.net/download/guoqingru0311/91906099

安卓端部署Yolov5-v6.0目标检测项目全流程记录-讲解资料

https://download.csdn.net/download/guoqingru0311/91906112

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98668.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98668.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98668.shtml

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

相关文章

图形基础算法:如何将点与带曲线边的多边形位置关系算法做稳定

简介判断点与多边形位置关系算法是几何算法中最基础的算法之一,包括布尔运算在内的非常非常多的算法都会用到它。它的稳定是算法库稳定的关键。下面我们从一个边都是直线的多边形开始了解射线法的原理。然后看看引入曲线后会带来哪些问题,以及在实际应用…

react的filber架构

好问题 👍 你问的是 React Fiber 架构。这是 React 16 引入的核心机制,用来解决 React 在大规模更新时的性能问题。下面我给你从 背景 → Fiber 是什么 → 原理 → 优点 → 流程 来系统讲。一、为什么需要 Fiber?在 React 15 及以前&#xff…

Lucky STUN穿透结合群晖NAS实现docker下transmission监听端口动态更新

参考文章 LCUKY系列教程 一 「LUCKY STUN穿透」使用 cURL 自动修改 Transmission 的监听端口 二 「LUCKY STUN穿透」使用 Webhook 自动修改 qbittorrent 的监听端口 三 LUCKY STUN穿透在Windows上使用UPnP工具为BT客户端自动添加内外端口号不同的映射规则 四「LUCKY STUN穿透」…

如何在Ubuntu畅玩鸣潮等游戏

本教程只包括Steam上的游戏。# 更新软件源 sudo apt update # 安装Steam sudo apt install steam首先,在Ubuntu的snap商店安装Steam,启动,登陆,下载游戏。到这里的操作都比较简单,对于没有反作弊的游戏,往往…

机器学习09——聚类(聚类性能度量、K均值聚类、层次聚类)

上一章:机器学习08——集成学习 下一章:机器学习10——降维与度量学习 机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备 文章目录一、聚类任务(无监督学习…

解决 Docker 构建中 Python 依赖冲突的完整指南

问题背景 在基于 registry.cn-shenzhen.aliyuncs.com/all_dev/dev:invoice-base 镜像构建 Docker 容器时,我们遇到了一个常见的 Python 依赖管理问题: ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-…

光子计算芯片实战:Lightmatter Passage互连架构性能评测

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,80G大显存,按量计费,灵活弹性,顶级配置,学生更享专属优惠。 摘要 随着人工智能计算需求呈指数级增长,传统电子计算…

基于树莓派与Jetson Nano集群的实验边缘设备上视觉语言模型(VLMs)的性能评估与实践探索

概述 2018年,TensorFlow Lite团队的Pete Warden曾提出:“机器学习的未来在于微型化”。如今,随着人工智能向高性能视觉强大的视觉语言模型(Vision-language models, VLMs)发展,对高性能计算资源的需求急剧…

华为Ai岗机考20250903完整真题

华为Ai岗机考20250903 华为自26届秋招(2025年起)对AI岗位机考进行了改革,考试题型调整为20道选择题(15道单选(6分)5道不定项选择(12分))2道编程题(150300)。 题目核心围绕人工智能技术(如Transformer架构…

k8s+jenkins+harbor构建Devops平台

一、环境准备1、准备一主一从k8s机器,(设备好可以一主多从也行)2、一台harbor仓库机器(dockerhub访问不了)二、安装nfs服务1、在k8s机器上yum install nfs-utils -y systemctl start nfs systemctl enable nfs2、创建共…

为什么 socket.io 客户端在浏览器能连上,但在 Node.js 中报错 transport close?

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…

人才教育导向下:老年生活照护实训室助力提升学生老年照护服务能力

一、老年生活照护实训室建设背景与意义 (一)适应老龄化社会需求 我国老龄化程度持续加深,老年照护服务人才缺口不断扩大。培养专业照护人才成为当务之急,职业教育需承担重要责任。点击获取实训室建设方案 (二&…

我在嘉顺达蓝海的安全坚守

作为嘉顺达蓝海的资深安全员,每天清晨 6 点,我都会站在物流基地的入口处,看着一队队橙色的嘉顺达蓝海危险品运输车整齐列队。那抹醒目的橙色,不仅是嘉顺达蓝海的标志,更是我和 200 多名同事坚守 12 年的安全承诺。今天…

云原生监控系统 Prometheus大总结 20250909

本章内容如下: Prometheus 介绍 Prometheus 部署和配置 Node Exporter 采集数据 Pushgateway 采集数据 PromQL 查询语言 Grafana 图形化展示 Prometheus 标签管理 Prometheus 告警机制 Prometheus 服务发现 各种Exporter 高级功能 Prometheus 实现容器监控 Promethe…

EPNN:基于嵌入式偏振神经网络的水下成像增强方法(未做完)

Enhancing Underwater Imaging for Robot through Embedded Polarization Neural Network EPNN:基于嵌入式偏振神经网络的水下成像增强方法 1 论文核心概念 本文提出了一种名为嵌入式偏振神经网络(Embedded Polarization Neural Network, EPNN) 的方法,用于显著提升水下…

基于单片机冷藏运输车环境检测/水产品运输环境检测设计

传送门 👉👉👉👉单片机作品题目速选一览表🚀 👉👉👉👉单片机作品题目功能速览🚀 🔥更多文章戳👉小新单片机-CSDN博客&#x1f68…

基于STM32设计的人体健康监护系统(华为云IOT)_280

文章目录 一、前言 1.1 项目介绍 【1】项目开发背景 【2】设计实现的功能 【3】项目硬件模块组成 【4】设计意义 【5】国内外研究现状 【6】摘要 1.2 设计思路 1.3 系统功能总结 1.4 开发工具的选择 【1】设备端开发 【2】上位机开发 1.5 参考文献 1.6 系统框架图 1.7 系统原理…

先买实现烦过

#include <myhead.h> #define ERR_LOG(msg)do{perror(msg);printf("%d %s %s\n",__LINE__,__func__,__FILE__);}while(0) //定义TFTP默认端口号&#xff08;69&#xff09;和数据包大小&#xff08;516字节&#xff09; #define PORT 69 #define N 516 …

ACD智能分配:轮流分配和排序上限分配的设置

在客户服务中&#xff0c;合理的对话分配是提高服务质量的关键。一洽客服系统针对不同业务场景,提供灵活的客服分配策略,帮助企业实现智能化的客户服务管理&#xff0c;今天我们了解一下对话的轮流分配、排序上限分配、排序优先分配的设置一、轮流分配按照客服登录系统的先后顺…

【postMan / apifox 文件上传】

apifox 需要提供相关插件 失败的请求 { “timestamp”: “2025-09-10T14:44:24.91900:00”, “status”: 500, “error”: “Internal Server Error”, “path”: “/student/import” } 错误&#xff1a;Post “http://localhost:8080/student/import”: dial tcp [::1]:8080:…