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

发布于:2025-09-13 ⋅ 阅读:(19) ⋅ 点赞:(0)

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