目标检测复盘 -- 6. YOLOv4

news/2024/10/30 11:31:56/

Backbone

YOLOv4的骨干是CSPDarknet53
CSP结构的作用:1. 增强CNN的学习能力 2. 移出计算瓶颈 3. 减少内存开销
CSP首先将输入的特征层分成两个部分,这里以densenet为例,part2分支经过denseblock后,进过一个transition,然后和part1 concat后再经过transition模块。
CSP的两个分支是在通道方向上进行的一个均分操作,但是在YOLOv4中是采用卷积的方式来实现分离(如下图右半部分所示),v4中的transition使用的是1*1的卷积
在这里插入图片描述

SPP

Spatial Pyramid Pooling,分为三路做maxpooling 然后再做类似残差连接,SPP支持任意大小,不管多大都是划分成一样的网格做maxpooling,是resize或者裁剪的一种替换,SPP相当于是多尺度池化,让模型的鲁棒性更强;可以进行多尺度训练,提高模型的泛化能力,减低过拟合

在这里插入图片描述

PAN

图中P5-P2是FPN,FPN是图像特征从高层往底层的一个融合,再将特征由底层往高层进行一个融合,构成最终的PAN模块,PAN=FPN+底层到高层;原始PANnet中采用的是add的方法,这里采用了concat方法
在这里插入图片描述

整体结构

注意,在cspdarknet53中使用的激活函数是mish,但是在PAN中使用的激活函数是leaky,
在这里插入图片描述

优化策略

提高位置敏感性

存在的问题:当预测的xy就在左上角的时候,也就是 σ ( t x ) \sigma(t_x) σ(tx)趋向于0的时候,也就是x趋向于负无穷的时候,但是网络很难输出这么大的值,而且不利于网络收敛。所以针对这点进行了改进
在这里插入图片描述
添加了缩放因子,常见的scale取2,原始数据范围和带scale的范围如下图曲线所示
在这里插入图片描述

Mosaic数据增强

将4张图片拼接在一起,不同尺寸、不同比例,可以增强样本的多样性,提升模型能力

样本策略

在YOLOv3中,样本策略如下图所示,先左上角对齐,大于固定阈值的作为正样本,如果有多个模板都满足阈值要求,则都作为正样本送入网络,以增强正样本数量
在这里插入图片描述
在YOLOv4中,多考虑了gridcell的上方和左方的gridcell, 如下图所示,主要原因是xy的偏移量已经从0-1到了-0.5-1.5

在这里插入图片描述
可能的情况如下:
xy相较于原始的在-0.5-1.5都可以,这里好好理解下
在这里插入图片描述

Loss

使用CIOU loss
在这里插入图片描述


http://www.ppmy.cn/news/104132.html

相关文章

Python打包成EXE

一、使用Pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 1.2Pyinstaller打包步骤 Pyinstaller -F -w -i apple.ico py_word.py 结果: 运行结果: 二、使用Auto-py-to-exe auto-py-to-exe 是一个用于打包 python 程序…

智警杯赛前学习1.1---excel基本操作

修改默认设置 步骤一:打开“Excel选项”窗口,打开“文件”菜单,选择“选项”标签 步骤二:在“Excel选项”窗口中,选择“常规与保存”标签,在“常规与保存”标签中,可以修改录入数据时的默认字体…

【Web服务器集群】Apache配置与应用

文章目录 一、构建虚拟web主机1.概述2.httpd服务支持的虚拟主机类型3.构建虚拟Web主机3.1基于域名的虚拟主机3.2基于IP地址的虚拟主机3.3基于端口的虚拟主机 4.Apache连接保持5.Apache访问控制 二、Apache日志管理rotatelogs分隔工具 三、总结1.Web虚拟主机部署步骤2.网页根目录…

java程序员找工作经验之谈,聊聊需要做好哪些关键点才能获得认可

我是18年本科毕业于双飞一本的交互设计,因为喜欢编程所以快考的计算机。当时初试过了复试没有过,被调剂到一个211大学的相关专业。这个专业从名称上来看跟计算机没有任何关系,但是他实际做的事情,或者说我在我导师那边做的事情&am…

算法当中的时间、空间复杂度?

1.究竟什么是时间复杂度 时间复杂度是一个函数,它定性描述该算法的运行时间 时间复杂度就是用来方便开发者估算出程序运行的答题时间。 通常会估算算法的操作单元数量来代表程序消耗的时间,这里默认CPU的每个单元运行消耗的时间都是相同的。 假设算法的…

K8s in Action 阅读笔记——【6】Volumes: attaching disk storage to containers

K8s in Action 阅读笔记——【6】Volumes: attaching disk storage to containers 在前三章中,我们介绍了Pods以及它们与ReplicationControllers、ReplicaSets、DaemonSets、Jobs和Services等Kubernetes资源的交互。现在,我们将回到Pod内部,…

Flink数据转换方法使用案例总结

目录 Flink数据转换方法使用案例MapFlatMapFilterKeyByReduceAggregationsWindowJoinUnionProjectDistinctSortPartitionIterateFold使用 Flink 数据转换 Conclusion 的案例问题描述解决方案结论 Flink数据转换方法使用案例 Apache Flink是一个分布式流处理框架,它…

Java最新版发送阿里短信教程

一、概述: 为什么现在的企业越来越多使用阿里云短信服务,究其原因是阿里云短信服务是一种可靠、高效、安全的短信发送服务,它具有以下优点: 高可靠性:阿里云短信服务采用全球领先的短信网关进行短信发送,确…