Yolov4部署到ZYNQ系列2-重新训练darknet框架下的Yolov4

2023-11-11


前言

花了一个月不到的时间单枪匹马把Yolov4模型部署到ZYNQ Ultrascale+ MPSOC上,这次把一整个过程和关键的几个要点都按照系列文章的形式展开,确保可以通过系列文章的形式完美复现我的工作。
本节内容包括重新训练darknet框架下的Yolov4


一、为什么重新训练darknet?

用之前DOTA数据集上训练Yolov4(darknet框架)在量化、编译结束后,部署到开发板上出现下述error。解释一下就是Yolov4里面存在XIR(Xilinx中间表示形式)未定义的操作符,也就是激活函数softplus。
在这里插入图片描述
回到Yolov4的网络结构图,网上随便找的。其中有个CBM模块,M表示mish激活函数。
在这里插入图片描述
而mish激活函数可以表达成如下的形式:
在这里插入图片描述
所以为什么会出现softplus的提示信息也就可以解释了,那又产生一个新问题,为什么会出现没有定义的情况,或者说,我们凭什么确定softplus没有被定义。这个问题需要回到Vitis-AI手册,在手册中我们可以看到量化并不支持softplus激活函数,所以我们的解决方案就是将Yolov4内的mish激活函数替换为leakyrelu,之所以可以这么做,其实主要还是可以接受两个激活函数的波形相似,当然最有力的支持证据还是在于我替换为leakyrelu函数以后得到的模型在服务器端、开发板都显示好的检测效果。
在这里插入图片描述

二、改进Yolov4结构

1.其他如常

darknet的训练依旧参照我在“DOTA与Yolov4(-Tiny)”中darknet那一节,但是需要事先参照接下来的第2节和第3节修改部分内容。

2.修改cfg文件

修改所有mish函数为leaky函数。

3.加快运行

./darknet detector train cfg/voc.data cfg/yolov4-custom-nomish.cfg yolov4.conv.137 -map -gpus 0,1,2 -dont_show

配合修改cfg文件内的

learning_rate=0.00087
burn_in=4000
max_batches = 30000
policy=steps
steps=24000,27000
scales=.1,.1

三、改进Yolov4结构后的推测效果

推测前
在这里插入图片描述
推测后
在这里插入图片描述


总结

重新调整了Yolov4的网络结构!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yolov4部署到ZYNQ系列2-重新训练darknet框架下的Yolov4 的相关文章

随机推荐

  • springboot+react实现前后端交互

    一 搭建springboot后台 1 创建一个Springboot项目 然后导入pom依赖 本着一切从简的原则 如果不连接数据库的话 有个spring boot starter web的依赖就够用了
  • webpack5 loader

    文章目录 作用 基本使用 内联loader loader执行顺序 loader pitch 中断 pitch pitch示例 自定义loader 查找loader loader方法参数 同步loader return方式 this call
  • mysql - 索引

    索引的分类 主键索引 唯一索引 普通索引 组合索引 以及全文索引 主键索引 非空唯一索引 一个表只有一个主键索引 在 innodb 中 主键索引的B 树包含表数据信息 PRIMARY KEY key 唯一索引 不可以出现相同的值 可以有NU
  • React 组件与状态

    企业项目实战 gt 第二部分 gt React 基础回顾 React 组件与 State 什么是组件 组件是什么 每个程序员都有自己的理解 在传统语言中 组件的定义一般来说是一个从特定的组件类中派生出来的特定的对象 而在早期的前端开发者眼里
  • 复变函数第三章-复变函数的积分

    3 复变函数的积分 3 1 概念 3 2 柯西 古萨基本定理 3 3 复合闭路定理 3 4 原函数与不定积分 3 5 柯西积分公式 3 6 解析函数的高阶导数 3 7 调和函数 3 复变函数的积分 3 1 概念 闭曲线积分 Cf z dz
  • React是什么,React的优点、缺点

    React是什么 React的优点 缺点 与Vue对比 在React源码中的React哲学里有这样一句话 我们认为 React是用JavaScript构建快速响应的大型的Web应用程序的首选方案 由此可见 关键在于快速响应 大型web应用
  • 为了一张图

    我的作业图
  • Quartus系列:Quartus II 功能仿真设置流程

    1 新建一个波形文件 2 右键点击Name下空白框 在弹出的菜单中选择 Inert gt Insert Node or Bus 如果已经知道端口名称和端口类型 直接在弹出的对话框中键入Name后 相应的信息会自动识别到对话框中 如下 如果不
  • MVVM模式下,ViewModel和View,Model有什么区别

    摘自正美的5群 Model 很简单 就是业务逻辑相关的数据对象 通常从数据库映射而来 我们可以说是与数据库对应的model View 也很简单 就是展现出来的用户界面 基本上 绝大多数软件所做的工作无非就是从数据存储中读出数据 展现到用户界
  • Java EnumSet allOf()方法具有什么功能呢?

    转自 Java EnumSet allOf 方法具有什么功能呢 下文笔者讲述Java中EnumSet allOf 方法的功能简介说明 如下所示 EnumSet allOf 方法的功能 返回枚举集合中所有的值 EnumSet allOf 方法
  • 【附源码】用手写数字字母为例,演示“一行代码不写,完成大多数分类任务”

    基于MATLAB 2021a 录制的深度学习之图像分类 新手保姆级入门课程 就算是小学生跟着操作都能懂了 掌握了这个 很多分类任务都是换汤不换药了 一行代码不写就可以完成手写数字和字母共计36类图片的分类 按照此方法 理论上可以一行代码不写
  • Web小白基础教程-第三篇-HTML基础常用标签名(一)

    谈起Html就不得不简单说一说Web网页制作 Web标准的构成分为三个部分 HTML CSS和JavaScript 三层分离 互相独立 HTML Web的结构部分 通俗点来说就是Web页面上的元素和内容 CSS Web的表现部分 通俗点来说
  • java 使用redis记录logback日志,由自定义Appender与Jedis的使用实现。

    需求 1 获取日志的产生的线程名称 记录器名称 上下文产生时间 日志发生时间 自定义日志的信息 2 将获取的信息以json的形式保存到redis中 思路 1 配置logback使用自定义Appender实现 来获取对应的日志信息 2 配置一
  • C盘中哪些文件可以删除?

    C盘中哪些文件可以删除 第一大类 所有带 开头和结尾的隐藏文件都可以删 这类文件一般都是升级系统留下的卸载程序 占用空间非常大且无大用 因此删除掉并不会对系统造成任何影响 不过这类文件都是隐藏文件 因此要找到必需在 文件夹选项 检查 中开启
  • vue2.0生命周期—码虫

    1 下面是我对生命周期的一些理解 首先我们先看一下Vue生命周期图 2 它可以分为八个阶段 钩子函数 函数描述 beforeCreate 组件实例刚被创建 组件属性计算之前 如data属性等 created 组件实例创建完成 属性已绑定 但
  • 播放4K视频需要什么样的配置

    我们知道 相对于标清视频和高清视频 HD 4K视频是一个新的高度 4K分辨率属于超高清分辨率 在此分辨率下 观众将可以看清画面中的每一个细节 每一个特写 影院如果采用4096 2160分辨率 无论在影院的哪个位置 观众都可以清楚地看到画面的
  • 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译

    SeetaFaceEngine是开源的C 人脸识别引擎 无需第三方库 它是由中科院计算所山世光老师团队研发 它的License是BSD 2 SeetaFaceEngine库包括三个模块 人脸检测 detection 面部特征点定位 alig
  • cookie、localStorage、sessionStorage区别 == JavaScript中let、const、var 的区别 == es6解构赋值

    cookie localStorage sessionStorage区别 Cookie Cookie设计初衷是用来和服务器通讯 而不是本地存储 他只是被 借用 到本地存储 如下图 每次http请求 header都携带cookie local
  • background-position设置无效问题解决

    2019独角兽企业重金招聘Python工程师标准 gt gt gt html代码部分 div class login div reg1 div
  • Yolov4部署到ZYNQ系列2-重新训练darknet框架下的Yolov4

    文章目录 前言 一 为什么重新训练darknet 二 改进Yolov4结构 1 其他如常 2 修改cfg文件 3 加快运行 三 改进Yolov4结构后的推测效果 总结 前言 花了一个月不到的时间单枪匹马把Yolov4模型部署到ZYNQ Ul