前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓广告跳过 yolov5 ncnn方式集成

安卓广告跳过 yolov5 ncnn方式集成

作者头像
obaby
发布2023-02-22 11:13:31
8190
发布2023-02-22 11:13:31
举报
文章被收录于专栏:obaby@mars

代码原地址: https://github.com/nihui/ncnn-android-yolov5

我在这里只是替换了模型信息,其余的内容基本没有修改。

原工程并没有写如何进行模型转换,模型转换可以参考这篇文章:https://blog.csdn.net/flyfish1986/article/details/116604907里面写的比较详细了。

这里简单的做个备份,不想跳转的可以直接参考下面的内容:

模型转换为ncnn格式

  1. 导出onnx bash python models/export.py --weights yolov5s.pt --img 320 --batch 1
  2. onnx-simplifer简化模型 bash python -m onnxsim yolov5s.onnx yolov5s-sim.onnx
  3. 专函为ncnn bash ./onnx2ncnn yolov5s-sim.onnx yolov5s.param yolov5s.bin
  4. 处理转ncnn产生的Unsupported slice step ! 1).处理YOLOv5的Focus模块,将多个slice节点转换为一个focus节点

转换为:

编辑yolov5s.param文件,处理步骤如下:

a. 红框内4行到13行删除

b. 一共删除了10层,第二行的173更改为164,计算方法173-(10-1)=164

c. 增加自定义层

bash

YoloV5Focus focus 1 1 images 159

159来自下图,找到删除的第13行

Foucs更改之后的结果是

2). 支持动态尺寸输入

将reshape中的960,240,60更改为-1,或者其他 0=后面的数

  1. ncnn optimize优化 bash ./ncnnoptimize yolov5s.param yolov5s.bin yolov5s-opt.param yolov5s-opt.bin 1
  2. C++代码处理 1). 三个extract ncnn-20210507/examples目录下的yolov5.cpp,我们仿照代码中output,781,801 进行更改 .代码举例

代码更改依据以781,801 为例

我们自己的C++代码可以依据onnx文件更改三个输出.也可以根据ncnn的Permute的每一个output,分别是output,395,415

2) 代码中anchor

a. 可以依据模型在训练时的输出

b. 也可以依据yolov5/models/中的配置文件,以yolov5s.yaml为例

这两种方式我没看明白是怎么得到stride中的那几个数字的,谁知道怎么算的还望不吝赐教。

  1. 最后的运行 加载模型更改为自己的模型yolov5s-opt.param 和yolov5s-opt.bin

编译: bash

ncnn-20210507/build$ make install

编译运行:

bash

ncnn-20210507/build/examples$ ./yolov5 1.jpg

安卓工程项目集成

step1 https://github.com/Tencent/ncnn/releases download ncnn-android-vulkan.zip or build ncnn for android yourself step2 extract ncnn-android-vulkan.zip into app/src/main/jni or change >the ncnn_DIR path to yours in app/src/main/jni/CMakeLists.txt step3 open this project with Android Studio, build it and enjoy!

实际效果:

在单类识别中没有3个输出函数,如下图所示:

于是3个stride 分别以不同的permute节点数值填写,实际的探测效果不忍直视,谁知道什么问题导致的还望不吝赐教。

github链接:https://github.com/obaby/skip_ads_android_ncnn_project.git

参考链接:

https://github.com/cmdbug/YOLOv5_NCNN.git

https://blog.csdn.net/flyfish1986/article/details/116604907

https://zhuanlan.zhihu.com/p/266130778

https://zhuanlan.zhihu.com/p/350278710

☆文章版权声明☆

* 网站名称:obaby@mars

* 网址:https://h4ck.org.cn/

* 本文标题: 《安卓广告跳过 yolov5 ncnn方式集成》

* 本文链接:https://h4ck.org.cn/2021/11/%e5%ae%89%e5%8d%93%e5%b9%bf%e5%91%8a%e8%b7%b3%e8%bf%87-yolov5-ncnn%e6%96%b9%e5%bc%8f%e9%9b%86%e6%88%90/

* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


分享文章:

相关文章:

  1. Yolov5 Android torchscript方式集成
  2. Yolov5 Android tf-lite方式集成
  3. Android Skip Ads Yolov5 Project
  4. Yolov5 不同集成方式 效果对比
  5. yolov5 训练速度对比
  6. Yolov5 tf-lite方式导出
  7. Windows 10 yolov5 GPU环境
  8. Yolov5 安卓检测效果让人无语
  9. Skip Ads Android Project
  10. Android Skip Ads Android Project【截屏部分】
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年11月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模型转换为ncnn格式
  • 安卓工程项目集成
  • 相关文章:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档