yolov5编译安卓APP:解决图像上全是检测框
- 前言
- 一、第一个YOLOv5 APP
- 1.参考链接
- 2.详细说明
- 3.APP检测时图像上全是框的解决方法
 
- 二、第二个YOLOv5 APP
- 1.参考链接
- 2.详细说明
- 3.APP检测时图像上全是框的解决方法
 
- 三、其他
- 1.APK打包
- 2.修改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如何修改图标和名称


















