yolov5编译安卓APP:解决图像上全是检测框

前言

YOLOv5编译安卓APP有不少参考博客及视频,但是参考编译的APP存在问题:APP运行时,检测框覆盖整个图像,满屏都是检测框。本文即解决该问题 ,并编译两种YOLOv5 APP

编译onnx环境:
ubuntu18.04,pytorch1.7.1,python3.7,yolov5 3.0版本
编译APK环境:Windows 10

一、第一个YOLOv5 APP

1.参考链接

B站视频:在Android上运行YOLOv5目标检测
视频对应博客
知乎nihui-提供APP全是框解决方法

2.详细说明

1.先看视频,再看博客。视频详细讲解了Android Studio编译APP过程,对小白友好。博客详细介绍了如何制作自己数据的YOLOv5 APP。
2.编译protobuf库时,会有error提示,但是只要protoc --version能显示protobuf的版本号即可。Ubuntu下protobuf的安装、编译及注意事项 https://blog.csdn.net/old__captain/article/details/80472388
3.编译ncnn库,如果编译报错git相关,git init

3.APP检测时图像上全是框的解决方法

1.修改转换后的yolov5s.param
把yolov5s.param中reshape的0=6400/1600/400改成0=-1,共三处
在这里插入图片描述

2.修改yolov5ncnn_jni.cpp
Android Studio编译APP时,根据自己模型修改三个output节点ID
在这里插入图片描述
效果图
在这里插入图片描述

二、第二个YOLOv5 APP

1.参考链接

1.yolov5>onnx>ncnn>apk
2.YOLOv5利用ncnn部署系列(二)
3.NCNN Yolov5 Android apk开发记录

2.详细说明

1.根据链接1和链接2完成best.pt转化为yolov5.param,每步转化过程结果如图所示。链接3和链接1/2的修改部分略有不同,我是按照链接1/2进行。
在这里插入图片描述
注意:

  • export.py转化时,会生成三个文件!如果最后报错“CoreML export failure: unexpected number of inputs for node x.2 (_convolution): 13”
    根据https://github.com/ultralytics/yolov5/issues/1667,pip install --upgrade coremltools升级包即可
  • ./onnx2ncnn转化yolov5.param时用的是python -m onnxsim生成的简化后文件

3.APP检测时图像上全是框的解决方法

1.根据链接3改三个output节点ID
2.如果还全是检测框,三处reshape的0=6400/1600/400改成0=-1
效果图:
在这里插入图片描述

三、其他

1.APK打包

参考教程:Android Studio打包生成APK教程
注意:
第一次打包,必须创建password秘钥文件
第二次打包时删除上次生成的release文件夹,如果用上次生成的passward.jks报错"Cause: failed to decrypt safe contents entry: java.io.IOException: getSecretKey failed: Password is not ASCII",把passward.jks删除重新生成秘钥文件

2.修改APP图标与名字

修改APP图标与名字:Android Studio开发的app如何修改图标和名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值