使用NCNN在华为M5部署Yolov5

news2024/11/23 19:32:12

使用NCNN在华为M5平板部署Yolov5

  • 一、NCNN
  • 二、下载解压NCNN
  • 三、下载ncnn-android-yolov5工程
  • 四、下载Android Studio[前提已经配置了jdk版本]
    • 1、安装NDK、Cmske,这个必须要安装,
    • 2、安装Android
  • 五、构建工程
  • 六、修改源码
  • 七、重新ysnc project
  • 八、安装APP到终端
  • 九、把模型生成APK
  • 十、APK位置

一、NCNN

NCNN是一个腾讯开源的优化到极致的高性能神经网络前向计算框架,可以把电脑端生成在深度学习模型移植到手机端,支持的模型非常多 NCNN官方的定义:NCNN是腾讯公司开源的一个专为手机端极致优化的高性能神经网络前向计算框架。NCNN从设计之初,就深刻考虑手机端的部署和使用,无需第三方依赖,跨平台,手机端CPU的速度快于目前所有已知的开源框架。基于NCNN,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能APP,将AI带到你的指尖。 目前NCNN已经支持大部分的CNN网络,包括本文中用到的YOLOv5,

二、下载解压NCNN

我们接下来主要以带加速的ncnn-android-vulkan.zip展开
在这里插入图片描述

三、下载ncnn-android-yolov5工程

The YOLOv5 object detection android example
在这里插入图片描述

接下来,
把ncnn-20231027-android-vulkan里面的文件复制一份到ncnn-android-yolov5-master的\app\src\main\jni目录下:
在这里插入图片描述

四、下载Android Studio[前提已经配置了jdk版本]

这中间有个注意是想,我们在安装的时候jdk的时候,千万不要安装最新版本的,由于这个项目是三年前的,如果按照最新的jdk一定会和工程各种的不兼容。至于到底该按照哪个版本的jdk,可以参考下图,
在这里插入图片描述
为了确定gradle的版本,我们可以打开工程中的一个文件,如图所示:
在这里插入图片描述
文件默认的gradle是5.4.0版本,安装java12版本就好了,我图中之所以注释掉,是因为,我安装AS之前安装的是最新的JDK版本,结果出现不兼容问题,当时要不省级gradle版本,要不降低JDK版本,我选择了前者所以是7.5.0,所以大家可以在是先对应gradle版本安装JDK,后期会省去很多麻烦。当前如果你之前确实已经按照了最新的JDK怎么办,按照下图选择对应版本的JDK依然可以,亲测有效。

在这里插入图片描述

1、安装NDK、Cmske,这个必须要安装,

记得点击右下方的ShowPackage Details按钮,要不NDK和Cmake不会展开。这两个的版本建议安装红框中的版本,至于为什么,可以明显的看到不同版本的NDK明显在toolchains中是不同的,确实了前两个文件,后期会报错。至于为什么是20不是23,大家可以想想这个工程上面说了是三年前的,所以工程肯定和当年的NDK版本兼容最好。选中两个文件,然后点击Apply,就会自动下载了。
在这里插入图片描述
在这里插入图片描述

2、安装Android

至于Android选择是什么版本,根据自己的手机系统确定,然后点击Apply就会下载了。
在这里插入图片描述
剩下的就是漫长的等待安装了。
由于这篇博文,是安装之后写的,所以有坑的地方我都提前说了,如果大家遇到报错,可以看看我往前的博客。

五、构建工程

用Android studio 打开(二)中下载的ncnn-android-yolov5-master项目的build.gradle文件,耐心等待构建完成。
在这里插入图片描述

注意有两个build.gradle,一个是工程的,一个是模块的,不要点错了
剩下的也是漫长的等待了…,会安装一系列东西,之后Android studio会帮我们构建整个工程,耐心等待他走完。

六、修改源码

打开ncnn-android-yolov5-master\app\src\main\jni\CMakeLists.txt
在这里插入图片描述
将第五行的路径改为自己的路径

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20201218-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)

改为:

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/${ANDROID_ABI}/lib/cmake/ncnn)
  • 简单说明一下:ANDROID_ABI对应的是不同架构下的文件夹名称

七、重新ysnc project

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

八、安装APP到终端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,平板上已经有一个APP了。

九、把模型生成APK

按照图上的操作顺序,最下角提示APK生成成功。
在这里插入图片描述

十、APK位置

我开始使用新的Android Studio,却无法在IDE的实际位置中找到该应用程序的APK?
在这里插入图片描述
我们在成功生成APK之后,会看到提示信息,当我我们点击locate,就会打开APK的安装位置。
因此Android Studio中的apk是在应用模块的build文件夹内生成的。

正确的apk路径为\app\build\outputs\apk。我正在使用Android Studio版本1.4.1。因此,可以根据所使用的Android Studio版本在app/build/apk/\app\build\outputs\apk处找到apk。
您可以在以下位置找到APK:

YourProject\\app\\build\\outputs\\apk
我的:ncnn-android-yolov5-master\app\build\outputs\apk

在这里插入图片描述
*apk类型有:debug 和 release;debug版本较大,至于用哪个取决于手机性能了。
在这里插入图片描述
我把debug版本的APK传送手机上,并进行安装。效果如下:

在这里插入图片描述

至此yolov5的模型部署到安卓端侧终于完结!!!

在部署的时候,也看了不少的博客,在此致谢。
华为P30部署yolov5

安卓端使用ncnn部署yolov5(v6.0)

OLOv5使用NCNN将模型部署到Android端教程(1)部署自己的训练模型到Android实现静态图片检测

记录历经三天将自己的yolov5模型部署到Android安卓手机

YOLOv5使用NCNN将模型部署到Android端教程(1)部署自己的训练模型到Android实现静态图片检测

新Android Studio中的Apk位置

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

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

相关文章

18个非技术面试题

请你自我介绍一下你自己? 这道面试题是大家在以后面试过程中会常被问到的,那么我们被问到之后,该如果回答呢?是说姓名?年龄?还是其他什么? 最佳回答提示: 一般人回答这个问题往往会…

IDEA中工具条中的debug按钮不能用了显示灰色

IDEA中工具条中的debug按钮不能用了显示灰色 1. 问题描述 IDEA上的DEBUG按钮突然变成了灰色: 2. 解决办法 一通搜索,终于找到解决办法 点击 File -> Project Structure如下图操作 3. 重启,解决 4. 参考 https://www.cnblogs.com…

linux下sys目录与proc目录的作用

sys目录作用 在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目…

Kubernetes实战(九)-kubeadm安装k8s集群

1 环境准备 1.1 主机信息 iphostname10.220.43.203master10.220.43.204node1 1.2 系统信息 $ cat /etc/redhat-release Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle) 2 部署准备 master/与slave主机均需要设置。 2.1 设置主机名 # master h…

2023年12月14日 十二生肖 今日运势

小运播报:2023年12月14日,星期四,农历十一月初二 (癸卯年甲子月丙午日),法定工作日。 红榜生肖:羊、狗、虎 需要注意:牛、马、鼠 喜神方位:西南方 财神方位&#xff…

004 Windows NTFS文件夹权限

一、NTFS文件权限: NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可…

实操Nginx(4层代理+7层代理)+Tomcat多实例部署,实现负载均衡和动静分离

目录 前言 一、tomcat多实例部署 步骤一:先安装jdk,设置jdk的环境变量,验证是否安装完成(192.168.20.8) 步骤二:安装tomcat(192.168.20.18) 步骤三:安装tomcat多实例…

微服务中如何保证接口的安全性?[基于DDD和微服务的开发实战]

大家好,我是飘渺。如果你的微服务需要向第三方开放接口,如何确保你提供的接口是安全的呢? 1. 什么是安全接口 通常来说,要将暴露在外网的 API 接口视为安全接口,需要实现防篡改和防重放的功能。 1.1 什么是篡改问题…

【Linux】多线程编程

目录 1. 线程基础知识 2. 线程创建 3. 线程ID(TID) 4. 线程终止 5. 线程取消 6. 线程等待 7. 线程分离 8. 线程互斥 8.1 初始化互斥量 8.2 销毁互斥量 8.3 互斥量加锁和解锁 9. 可重入和线程安全 10. 线程同步之条件变量 10.1 初始化条件变…

k8s安装Ingress-Nginx

目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程。 下载安装文件 首先,需要匹配Ingress-nginx版本和kubernetes版本。 在https://github.com/kubernetes/ingress-nginx可…

【UE5 Niagara】烟雾弹效果

效果 步骤 1. 新建一个工程,创建Basic关卡 2. 新建一个Actor蓝图,这里命名为“BP_SmokeBomb” 打开“BP_SmokeBomb”,添加一个静态网格体和一个发射物移动组件,静态网格体使用圆柱模型 选中发射物移动组件,设置初始速…

XSS防御:内容安全策略 CSP工作原理、配置技巧与最佳实践

前言 公司部门安全合规改造计划,要求所有的Web站点统一添加CSP规则。对于CSP机制我只是之前在应付面试的时候背过相关的概念,并没有真正在项目中实践过。所以希望借助本次改造任务好好理解并实践CSP机制。 什么是CSP CSP的全称是 Content Security Po…

算法通关村第十三关—数字与数学高频问题(白银)

数字与数学高频问题 一、数组实现加法专题 1.1 数组实现整数加法 先看一个用数组实现逐个加一的问题。LeetCode66.具体要求是由整数组成的非空数组所表示的非负整数,在其基础上加一。这里最高位数字存放在数组的首位,数组中每个元素只存储单个数字。并且…

TrustGeo代码理解(二)test.py

代码链接:https://github.com/ICDM-UESTC/TrustGeo 一、加载检查点(checkpoint)并进行测试 # -*- coding: utf-8 -*-"""load checkpoint and then test """ 该脚本的目的是加载之前训练过的模型的检查点&am…

Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中

前言 今天要讲的是在Window 2008 R2版本的服务器下如何配置Web Deploy,和Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中。 因为历史原因项目只能使用这个版本的服务器,当然使用其他服务器版本配置流程也是一样的。 Web Deploy介绍 …

c语言结构体调用格式与对齐

1.声明形式: struct 结构体名字 { 结构体成员 }结构体变量名; 2.赋值方法 3.结构体对齐: 1.起始偏移量:默认结构体第一个元素对齐0起始偏移量,第一个元素占一个字节,此时偏移量为1. 2.标准数&#xff…

数据结构之Map/Set讲解+硬核源码剖析

💕"活着是为了活着本身而活着"💕 作者:Mylvzi 文章主要内容:数据结构之Map/Set讲解硬核源码剖析 一.搜索树 1.概念 二叉搜索树又叫二叉排序树,他或者是一颗空树,或者是具有以下性质的树 若它…

现代雷达车载应用——第2章 汽车雷达系统原理 2.4节

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.4 雷达波形和信号处理 对于连续波雷达来说,波形决定了其基本信号处理流程以及一些关键功能。本节将以FMCW波形为例,讨论信号…

【深度学习】Pytorch 系列教程(一):PyTorch数据结构:1、Tensor(张量)及其维度(Dimensions)、数据类型(Data Types)

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor(张量)1. 维度(Dimensions)0维(标量)1维(向量)2维(矩阵)3维张量 2. 数据类型&#xff08…

预测性维护对制造企业设备管理的作用

制造企业设备管理和维护对于生产效率和成本控制至关重要。然而,传统的维护方法往往无法准确预测设备故障,导致生产中断和高额维修费用。为了应对这一挑战,越来越多的制造企业开始采用预测性维护技术。 预测性维护是通过传感器数据、机器学习和…