码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • yolov5模型在安卓平台上部署(1)demo运行


    一、下载 & 配置

    1.1 下载源文件

    • 【ncnn-android-yolov5下载传送门】
    • 【Tencent/ncnn下载传送门】
      下拉
      请添加图片描述

    下载该版本是因为自带vulkan加速

    • Android studio安装
      【Android studio下载传送门】
      建议是不要安装在c盘
      正常安装完成后,customize---->Configure

    接着Appearance & Behavior----->System Settings---->Android SDK
    (1)SDK Tools
    请添加图片描述
    (2)SDK Platforms
    我个人选择的是Android 11.0

    进入到license Agreement直接accept
    【参考文档】Android studio安装

    1.2 配置AS

    Step1:解压并移动文件

    解压文件夹之后,打开ncnn-xxxxx-android-vulkan-shared全选复制到ncnn-android-yolov5-master\app\src\main\jni

    Step2:打开文件 并 开始构建

    在 Android studio选择ncnn-android-yolov5-master\build.gradle打开该项目

    报错1:cmake版本问题
    CMake '3.10.2' was not found in PATH or by cmake.dir property.
    - CMake '3.22.1' found in SDK did not match requested version '3.10.2'.
    - CMake '3.24.1' found in PATH did not match requested version '3.10.2'.
    
    • 1
    • 2
    • 3

    解决办法:下载对应版本
    请添加图片描述

    报错2:文件路径问题
    By not providing "Findncnn.cmake" in CMAKE_MODULE_PATH this project has
    asked CMake to find a package configuration file provided by "ncnn", but
    CMake did not find one.
    
    • 1
    • 2
    • 3

    修改cmake中的路径
    请添加图片描述

    报错3:应该是版本问题

    在这里插入图片描述

    解决方法:
    1.访问 https://services.gradle.org/distributions/,并查看最新版的gradle。
    2.修改项目中”gradle/wrapper/gradle-wrapper.properties”里下面属性值

    (这篇博客是11.1写的,时间比较靠近的话可以直接抄作业)
    在这里插入图片描述

    同时build.gradle中classpath和gradle文件夹下gradle-wrapper.properties文件里的distributionUrl配置需要匹配
    在这里插入图片描述

    各个 Android Gradle 插件版本所需的 Gradle 版本
    在这里插入图片描述

    最后模型就构建好了
    在这里插入图片描述

    Step3:连接安卓手机

    以oppo findx2为例

    1. 在设置中搜索版本号,多次点击进入开发者模式
    2. 系统设置—>开发者选项
      开发者选项 和 USB调试 都打开
    3. 手机连接上后会弹出 密钥之类的东西 全部确认。
    4. 选择传输文件/Android Auto
      请添加图片描述

    最终在Android studio右上角就会出现手机的型号
    在这里插入图片描述

    报错:INSTALL_FAILED_TEST_ONLY
    Caused by: org.gradle.api.internal.provider.AbstractProperty$PropertyQueryException: Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'.
    
    
    • 1
    • 2

    【参考方案】编译安装App报错INSTALL_FAILED_TEST_ONLY终极解决方案
    我的源文件是没有gradle.properties的,直接创建之后拖到文件夹下就可以了

    android.useAndroidX=true
    android.enableJetifier=true
    android.injected.testOnly=false
    
    • 1
    • 2
    • 3

    包含着这三行就可以正常下载了,结果如下图
    请添加图片描述

    可能是手机原因。cpu居然比gpu快
    请添加图片描述

    二. 使用自己的权重

    2.0 环境

    我的环境是
    在这里插入图片描述
    可以直接

    pip install 名称== 版本号
    
    • 1

    2.1 导出onnx模型

    在yolov5文件夹中

    python export.py --weights 权重路径 --include onnx
    
    • 1

    简化onnx文件

     python -m onnxsim 上一步导出的onnx文件路径 yolov5s-sim.onnx
    
    • 1

    2.2 将权重文件转化为bin文件和paras文件

    建议直接参考该文档,我就不重复造轮子了

    cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=G:\model_compression_quantization\protobuf-3.4.0\build_vs2019\install\include -DProtobuf_LIBRARIES=G:\model_compression_quantization\protobuf-3.4.0\build_vs2019\install\lib\libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=G:\model_compression_quantization\protobuf-3.4.0\build_vs2019\install\bin\protoc.exe -DNCNN_VULKAN=OFF ..
    
    
    • 1
    • 2

    【参考文档】ONNX2NCNN
    路径上一定不要有中文不然会出错

    2.3 AS

    三.其他操作

    3.1连接手机摄像头:

    python detect.py --source http://admin:admin@10.xxx.xxx.xxx:xxxx
    
    • 1

    【参考文件】yolov5通过ncnn在安卓平台部署

    【参考文件】Windows环境下yolov5移植到Android手机上的详细步骤

  • 相关阅读:
    多端统一开发框架Taro、UniApp和WeApp这三个应用各自在前端开发领域有着独特的定位和功能
    springcloud集成链路追踪组件skywalking
    基于物联网设计的自反馈深紫外杀菌消毒系统(STM32F407)
    如何向开源项目(Apache-InLong)提交代码
    【Spring源码】12. 注册bean处理器registerBeanPostProcessors()
    java经典笔试题大全(50道含答案)
    基于51单片机的二氧化碳(CO2)气体浓度监测报警系统
    【将文本编码为图像灰度级别】以 ASCII 编码并与灰度级别位混合将文本字符串隐藏到图像像素的最低位中,使其不明显研究(Matlab代码实现)
    树莓派 Pico RP2040 MicroPython 编程 - 软件安装及设置
    Vue学习——props(23)
  • 原文地址:https://blog.csdn.net/weixin_50862344/article/details/127625932
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号