• yolov5模型在安卓平台上部署(1)demo运行


    一、下载 & 配置

    1.1 下载源文件

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

    接着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手机上的详细步骤

  • 相关阅读:
    bert ranking listwise demo
    [Unity3D]用C#在unity里面写一个简单的红绿灯
    【华为 ICT & HCIA & eNSP 习题汇总】——题目集16
    【Oracle】查看存储过程编译错误信息
    RTE2023大会来袭,声网宣布首创广播级4K超高清实时互动体验
    create® 3入门教程-里程计
    Hadoop基础入门
    数据质量校验
    Javaweb基础浅聊下载文件
    flask中使用redis做缓存
  • 原文地址:https://blog.csdn.net/weixin_50862344/article/details/127625932