目标检测算法 - YOLOv4

文章目录

    • 1. 简介
    • 2. YOLOv4整体结构
    • 3. Backbone
    • 4. Neck

1. 简介

YOLOv4是YOLOv3的改进版。YOLOv4并不是原YOLO项目的作者。发表于CVPR2020。

改进:

  • 主干特征提取网络:Darknet53 -> CSPDarknet53
  • 特征金字塔:SPP,PAN
  • 分类回归层:YOLOv3(未改变)
  • 训练时用到的小技巧:Mosaic数据增强、Label Smoothing平滑、CIOU、学习率余弦退火衰减
  • 激活函数:使用Mish激活函数

性能对比

在这里插入图片描述

网络结构:

  • Backbone:CSPDarknet53
  • Neck:SPP,PAN
  • Head:YOLOv3

优化策略:

  • Eliminate grid sensitivity
  • Mosaic data augmentation
  • IoU threshold(match posotive samples)
  • Optimizered Anchors
  • CIOU

2. YOLOv4整体结构

YOLOv4整体结构

在这里插入图片描述


3. Backbone

当输入是416x416时,特征结构如下:

在这里插入图片描述

CSP模块

对于输入的特征层,首先将其分为两部分,part1和part2。

对于part2分支,它会通过一系列的dense block,然后通过transition,再将输出和part1上的输出进行融合concat拼接,再通过transition。

在这里插入图片描述

在源码中,对于part1和part2是直接将输入特征层按照通道方向进行均分操作。

但是在YOLOv4论文中,并不是这样操作的,如下图。

在这里插入图片描述

CSPDarknet53整体结构

作用:

  • 增强CNN的学习能力
  • 移除计算瓶颈
  • 降低显存使用

在这里插入图片描述

总体来看,每个CSP模块都有以下特点:

  • 相比于输入,输出featuremap大小减半。
  • 相比于输入,输出通道数增倍。
  • 经过第一个CBM后,featuremap大小减半,通道数增倍。

CSP1和其他CSP有所不同:

  • 经过模块第二个CBM后,CSP1 featuremap大小和通道数都不变,但是其他模块featuremap大小不变,通道减半。

  • 经过最后一个CBM后,CSP1 featuremap大小不变,通道数减半,但是其他模块featuremap大小通道数都不变。


4. Neck

yolov4的Neck部分主要使用SPP和PANet模块。

SPP

SPP(空间金字塔)可以使得多个尺寸特征融合在一起,输入经过3个maxpool然后concat在一起,maxpool大小分别是13,9和5,yolov4中得SPP模块。

在这里插入图片描述

PANet

PANet的网络结构由5个核心模块组成。其中(a)是一个FPN,(b)是PAN增加的自底向上的特征融合层,©是自适应特征池化层,(d)是PANet的bounding box预测头,(e)是用于预测掩码的全连接融合层。

在这里插入图片描述

PANet是加强版的FPN,通过融合自底向上和自顶向下两个路径增加模型的表征能力。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天学习一点点之 Tomcat 是如何清除过期 Session 的

今天使用一种很临时的方案解决 Session 泄漏的问题:缩短 Session 的过期时间。这种方法虽然简单,但却非常有效。然而,这引发了一个问题:我们应该将过期时间设置为多短呢?在 Spring Boot 中,最短的过期时间是…

实在智能携“TARS大模型”入选“2023中国数据智能产业AI大模型先锋企业”

近日,由数据猿与上海大数据联盟联合主办的“2023企业数智化转型升级发展论坛”在上海圆满收官。 论坛颁奖典礼上,《2023中国数据智能产业AI大模型先锋企业》等六大榜单正式揭晓,旨在表彰在AI领域为数智化升级取得卓越成就和突出贡献的企业&am…

解决“使用 CNKI 保存时发生错误。改为尝试用 DOI 保存。”【Bug Killed】

文章目录 简介解决办法跟新本地Zotero中茉莉花插件的非官方维护中文翻译器更新网页插件Zetero Connector中的Transtors 结语参考资料 简介 使用Chrome ➕ Zotero Connector保存中国知网(CNKI)的参考文献到本地的Zotero时无法正常保存,出现使…

Altium Designer学习笔记8

创建原理图元件: 画出原理图: 根据规则书画出原理图: 根据规则书画出封装图: 参照: 确认下过孔的内径和外径的最小允许值。

Vatee万腾的数字时代探险:vatee科技力量的未来洞悉

在数字化的时代潮流中,Vatee万腾以其强大的科技力量,正在进行一场前所未有的数字时代探险。 Vatee万腾的数字时代探险源于其对未来的洞悉。通过深度研究和前瞻性思考,他们将科技力量与未来趋势相结合,勾勒出数字时代的新蓝图&…

springboot注解@NotNull,@NotBlank,@Valid自动判定空值

一.前言 使用springboot搭建项目时,我们都是采用的Restful风格接口,这里面问题来了,当前端调用接口或者是其他项目调用时,传入参数时我们不能单一靠调用方来控制参数的准确性,自己也要一些参数进行判断,进行非空之类的…

露营管理系统预约小程序效果如何

旅游经济已经复苏,并且市场规模增速加快,近一年来远途/周边游客户增多,不少旅游景区在节假日常常面对客流爆满现象。同时露营作为近几年突然火热的项目,其需求也是日渐上升。 然而在高需求的同时,我们也看到露营经营痛…

【数组栈】实现

目录 栈的概念及其结构 栈的实现 数组栈 链式栈 栈的常见接口实现 主函数Test.c 头文件&函数声明Stack.h 头文件 函数声明 函数实现Stack.c 初始化SLInit 扩容Createcapacity 压栈STPush 出栈STPop 栈顶元素STTop 判断栈是否为空STempty 栈内元素个数STSzi…

Mysql中join on中的like使用

1、使用mysql中的函数CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 SELECT * FROM Table1 INNER JOIN Table2 ON Table1.col LIKE CONCAT(%, Table2.col, %) 2、放弃使用join语句 SELECT * FROM Table1, T…

使用sqlserver备份还原,复制迁移数据库

文章目录 前言一、备份数据库二、还原数据库三、其他 前言 当初学sqlserver复制数据库的时候,老师只教了右键数据库生成sql脚本,没说数据库非常大的时候咋搞啊,分离数据库复制一份后在附加上去太危险了 百度一下备份还原数据库针对小白的资料…

docker安装mysql及主从配置

创建mysql配置文件:my.cnf 主库配置: [client] ## 默认编码格式 default-character-setutf8mb4 [mysqld] ## 设置server-id,同一局域网中需要唯一 server-id101 ## 设置编码格式 character-set-serverutf8mb4 ## 允许最大连接数 max_conne…

Redis key键

Redis 是一种键值(key-value)型的缓存型数据库,它将数据全部以键值对的形式存储在内存中,并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥,Redis 提供了诸多操作这把“密钥”的命令,从而实现了…

财报解读:电商GMV增长30%后,快手将坚守本地生活?

快手逐渐讲好了其高质量成长的故事。 根据财报,快手三季度业绩超出预期,其中,营收279.5亿元,同比增长20.8%;调整后净利润31.7亿元,同比扭亏为盈。 而联系市场环境来看,三季度广告、电商市场较…

超详细的pytest玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近又有人问我pytest-html生成的报告&a…

javascript Math相关计算取值属性方法

*向上取整【只要有小数就+1】 Math.ceil(3.14); // 4 *向下取整【有小数就舍弃】 Math.floor(3.14); // 3 parseInt(3.14); // 3 // 常用于字符串类型的数字转为十进制的数据 四舍五入【小数点后部分】 Math.round(11.5)); //12 Math.round(-11.5)); //-11 取两数…

6-使用nacos作为注册中心

本文讲解项目中集成nacos,并将nacos作为注册中心使用的过程。本文不涉及nacos的原理。 1、项目简介 以一个演示项目为例,项目包含三个服务,调用及依赖如下图: 由图中可以看出,coupon-customer-serv为服务的消费者&a…

基于element自动表格

需求是根据JSON文件生成表格,包含配置和自动props属性以及过滤器; 数据示例: 表格设置: /*** 表格表头信息* chineseToPinYin: 这是封装的根据中文汉字转换为拼音的方法* prop: 表头字段名* filter: 数据过滤器* label: 表头显示…

最长连续序列【中等】

leetcode链接 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1:输入:nums [100,4,200,1,3,2] 输出&am…

『new Date 在 IOS 失效 の bug』

问题:new Date()在安卓下正常,在IOS下显示不出来。 原因:在IOS下,new Date(“2000-2-22 00:10”),返回的是undefined,因为IOS不支持这种类型格式。 解决:更换下格式:new Date(“2000/2/22”) …