news 2026/9/8 14:23:11

YOLOv7安卓部署 ncnn

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLOv7安卓部署 ncnn

YOLOv7安卓部署 ncnn

  • 前言
  • 1、YOLOv7-tiny模型部署
    • 1.1 获得所需模型文件
    • 1.2 克隆所需要的代码
    • 1.3 修改代码
  • 2、连接手机进行部署
  • 总结
  • 参考

前言

本文将讲述如何利用ncnn在安卓手机端部署YOLOv7,这里以YOLOv7-tiny为例进行讲解,YOLOv7按照步骤依次进行即可,同时对于Android Studio的安装不在本次教程之内


1、YOLOv7-tiny模型部署

标准YOLOv7-tiny部署指的是没有更改YOLOv7-tiny的网络模型架构,直接利用训练好的模型权重进行部署,下面分几步进行讲述:

1.1 获得所需模型文件

首先是将训练获得的权重文件.pt转为.onnx

python export.py--weights'你的权重文件'\--iou-thres 这个自己设置--conf-thres 自己设置 \--device0

这个导出有GPU就GPU到,然后–fp16和–int8看自己情况来吧,导出之后会在你的权重保存路径下生成.onnx的文件,保存这个文件。
将导出的文件传到此网站:convertmodel


保存这两个文件,后续要用到

1.2 克隆所需要的代码

首先是下载ncnn-android-yolov7代码,其次是ncnn,之后便是opencv-mobile

ncnn-android-yolov7代码下载:

ncnn代码下载:

opencv-mobile下载:

下载之后便得到了三个压缩包,将其解压到同一目录下,最好目录不要有中文,避免报错,如下:

然后将红箭头所指文件夹复制到ncnn-android-yolov7的这个目录下:D:\xx\ncnn-android-yolov7-master\app\src\main\jni

之后用Android Studio打开ncnn-android-yolov7项目,打开箭头所指文件,然后将我画红线位置改成你所复制的文件夹名字:

将第1节得到的.param.bin文件复制到asserts文件夹下

到这里,准备工作就全部做好了,下一步就开始改代码了。

1.3 修改代码

请用netron打开刚刚转换模型得到的.param文件

这里的images填入到的ex.input("xx", yy);中的xx,请注意,images只是我的.param文件下的名字,如果你的和我的不一样,请填你模型的。

找到第一个检测头的这个卷积,


将画框的output填到stride8,这里的名字是onnx::Reshape_588,当然,你们的名字肯定和我的不一样,这个没关系,填你们自己的名字即可。依葫芦画瓢,找到第二个检测头上面一个卷积,然后将名字填到stride16,之后填stride32

对于yolo.cpp,请转到Yolo::detect函数,然后将得到的名字,按照相应位置填进去,对我画框部分进行修改,还有啊,anchor是你自己训练时配置文件中所用的anchor,所以也记得要进行修改。



继续在yolo.cpp文件中,转到Yolo::draw,改成你自己的类别名称:


到此为止yolo.cpp修改完毕


转到yoloncnn.cpp,按框所示,改成你自己的.param文件的名字:


转到下面箭头所指文件,app_name是做成app后显示的名字,然后model_array下面的item要填你的.param文件的名字


到此为止,代码上的改动已经全部结束,之后还需要对.param文件进行修改,打开它,然后像箭头一样修改即可


到此为止,真的就全部修改完了。

2、连接手机进行部署

首先打开开发者模式,这里不进行赘述,另外,如果你是小米手机,那么请在开发者选项中关闭MIUI优化,不然会出错
第一步:

第二步:

第三步:

静等一会儿,应用就会自动安装到手机,然后进行检测,到此为止,YOLOv7-tiny的部署就此完成。

总结

这里的图片和步骤有点多,请大家按照步骤一步一步进行,我也是看了一些资料才搞定的,应该算是保姆级教学了,原创,给个免费的赞谢谢!有问题可以在评论区交流哦!

参考

https://github.com/xiang-wuu/ncnn-android-yolov7
https://github.com/nihui/opencv-mobile
https://github.com/Tencent/ncnn

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 14:22:26

mbed TLS源码深度剖析:一套可复用的嵌入式C安全工程范式

1. 为什么值得把 mbed TLS 当一份 C 工程范本来读如果你做嵌入式联网设备,特别是用 Arm 内核跑物联网协议栈,大概率绕不开 mbed TLS。它几乎是当前生态里最成熟的、用 C 语言实现的 TLS/SSL 库之一,既能跑在 Cortex-M 那种只有几十 KB RAM 的…

作者头像 李华
网站建设 2026/9/8 14:20:32

10行代码跑通大模型调用:Agent开发避坑指南与扩展路径

大家做 Agent 最常卡住的地方,不是框架选型,不是记忆设计,也不是工具调用链,而是连第一行大模型调用都没跑通。我最近重新整理自己的 Agent 项目,把之前踩过的坑翻出来复盘一遍,发现第一次跑通大模型调用的…

作者头像 李华
网站建设 2026/9/8 14:19:36

佳能打印机Linux驱动与CUPS配置指南:从安装到故障排查

简介:Linux环境下使用佳能打印机的用户常受驱动兼容问题困扰。这份驱动包基于通用Unix打印系统CUPS,支持多数主流发行版,面向新手与运维人员,可解决打印机添加、参数配置、作业监控和队列管理等常见场景。压缩包共195个文件、16.4…

作者头像 李华
网站建设 2026/9/8 14:19:35

2026大模型工程师实战指南:从本地部署到微调RAG与Agent应用

2026年还在说“AI大模型工程师”,很多人第一反应是:这岗位是不是已经过时了?毕竟现在随便一个平台都能在线调用大模型API,会写Prompt好像就能做应用。但恰恰相反,我个人的观察是——2026年大模型工程师这个岗位不但没过…

作者头像 李华
网站建设 2026/9/8 14:17:27

基于Python和PyECharts的二手车交易数据分析与可视化

简介:面向二手车交易数据分析与可视化场景的实战项目包,特别适合数据采集、前后端开发与数据分析方向的学习者,借助真实市场数据理解价格分布、交易量趋势与区域差异,从而为购车决策提供参考。压缩包共104个文件,涵盖3…

作者头像 李华
网站建设 2026/9/8 14:15:50

确认 I O 瓶颈

遇到了性能问题,想要确认问题是否与较慢的磁盘I/O相关 使用-x 扩展 -d设备相结合的iostat命令来生成I/O统计信息 扩展设备每十分钟的信息 [oradev@develop ~]$ iostat -xd 10 Linux 4.1.12-124.16.4.el6uek.x86_64 (develop.china-fuhai.com) 2021年05月19日 x86_64 (32 CP…

作者头像 李华