Yolo v4:目标检测的最佳速度和精度(一)

简介: Yolo v4:目标检测的最佳速度和精度

《YOLOv4:Optimal Speed and Accuracy of Object Detection》


发表时间及作者:2020 CVPR

1.YOLOv4介绍


Yolov4其实并没有提出什么创新点,主要是对当时领域内的一些Tricks(WRC、CSP、CmBN、SAT、Mish激活、Mosaic数据增强,DropBlock和CIoU)进行了大量的实验,并且对模型的精度和速度进行了平衡;最终在MS COCO数据集上实现了43.5% AP (65.7% AP50),在Tesla V100的实时速度为65帧/秒。

YOLOv4一共有如下三点贡献:

1.开发了一个高效、强大的目标检测模型。它使每个人都可以使用1080ti或2080ti GPU来训练一个非常快速和准确的目标检测器

2.验证了最先进的 Bag-of-Freebies和 Bag-of-Specials对象检测在检测器训练时的影响。

3.对现有的方法进行了改进,使其更加高效,更适合于单个GPU的训练,包括CBN,PAN,SAM等。

image.png

图1:YOLOv4与其他最先进的物体探测器的比较。在性能相当的情况下,YOLOv4运行速度是EfficientDet的两倍。YOLOv4将YOLOv3的AP和FPS分别提升10%和12%。

2.YOLOv4网络结构


YOLOv4结构组成如下:


• Backbone: CSPDarknet53


• Neck: SPP , PAN


• Head: YOLOv3

2.1 Backbone改进


YOLOv4借鉴了CSPNet(Cross Stage Partial Networks,跨阶段局部网络)的思想,对YOLOv3的Darknet53网络进行了改进,形成了全新的主干网路结构–CSPDarknet53;

采用CSP结构有如下几点好处:

1.加强CNN学习能力

2.删除计算瓶颈

3.减少内存成本

image.png

image.png

CSPNet实际上是基于Densnet的思想,即首先将数据划分成Part 1和Part 2两部分,Part 2通过dense block发送副本到下一个阶段,接着将两个分支的信息在通道方向进行Concat拼接,最后再通过Transition层进一步融合。CSPNet思想可以和ResNet、ResNeXt和DenseNet结合,目前主流的有CSPResNext50 和CSPDarknet53两种改造Backbone网络。

改进后的主干网络结构如下图所示:

91812e93651b49a9ab822679c9848a29.png

2.2 Neck改进


2.2.1 SPP结构介绍


SPP-Net全称Spatial Pyramid Pooling Networks,主要是用来解决不同尺寸的特征图如何进入全连接层的,如下2图所示,下图中对任意尺寸的特征图直接进行固定尺寸的池化,来得到固定数量的特征。

image.png

image.png

2.2.2 PAN结构介绍


PAN(Path Aggregation Network)结构其实就是在FPN(从顶到底信息融合)的基础上加上了从底到顶的信息融合,如下图(PAN结构图)所示。

image.png

image.png

2.2.3 YOLOv4 PAN结构介绍


YOLOv4在原始PAN结构上进行了一点改进,如下图所示。图(a)是PAN论文中的原始融合方式,即特征层之间融合时是直接通过addition的方式进行融合的,但在YOLOv4中的PAN是通过在通道方向Concat拼接的方式进行融合的。

image.png

相关文章
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
700 1
|
Java 测试技术 开发者
IoC容器有什么作用?
【4月更文挑战第30天】IoC容器有什么作用?
714 0
|
6月前
|
SQL JSON 关系型数据库
《理解MySQL数据库》版本演进全解析:从5.1到8.0的技术革新之路
MySQL从5.1到8.0历经多年演进,版本特性持续升级:5.1引入分区与事件调度,5.5确立InnoDB为默认引擎,5.6增强优化器与在线DDL,5.7支持JSON与多源复制,8.0则带来窗口函数、CTE、原子DDL等现代数据库能力。各版本性能与安全性不断提升,建议新项目采用8.0,存量系统逐步向8.0迁移,以获取更好的功能支持与长期维护保障。(239字)
|
敏捷开发 前端开发 测试技术
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
9895 1
|
人工智能 计算机视觉
RT-DETR改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
RT-DETR改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
1176 5
RT-DETR改进策略【损失函数篇】| NWD损失函数,提高小目标检测精度
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
1052 1
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
算法 安全 Java
浅析五种最常用的Java加密算法,以后可以直接拿来用了
信息加密是现在几乎所有项目都需要用到的技术,身份认证、单点登陆、信息通讯、支付交易等场景中经常会需要用到加密算法,所谓加密算法,就是将原本的明文通过一系列算法操作变成密文。接下来就介绍一下目前比较常用的一些加密算法,本期不涉及算法底层,以应用介绍和代码展示为主。 如果只想了解原理,可跳过代码部分,代码可直接拿来使用。
3232 0
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
1647 4
|
机器学习/深度学习 人工智能 编解码
AI文生图模型
8月更文挑战第16天
|
JavaScript 前端开发 UED
组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
该文章详细介绍了如何使用Vue3结合TypeScript来开发全局Header组件和列表数据渲染组件ColumnList,并提供了从设计到实现的完整步骤指导。

热门文章

最新文章