当前位置: 首页 > news >正文

《YOLO 目标检测》—— YOLO v4 详细介绍

文章目录

  • 一、整体网络结构
    • 1. YOLO v4 网络结构图
    • 2.对之前版本改进创新的概括
  • 二、对改进创新部分的具体介绍
    • 1. 输入端创新
    • 2. Backbone主干网络创新
      • CSPDarknet53
      • Mish激活函数
      • Dropblock正则化
    • 3. 特征融合创新
      • SPP模块
      • PAN结构
    • 4. Prediction输出层创新(未写完)
      • CIOU Loss
      • DIoU_NMS
  • 三、性能与应用
    • 1. 性能
    • 2. 应用

YOLO v4(You Only Look Once version 4)是一种先进的目标检测系统,于2020年推出,是对之前版本YOLO的改进。YOLOv4基于深度卷积神经网络,能够高精度实时检测图像中的目标。以下是对YOLOv4的详细介绍:

一、整体网络结构

1. YOLO v4 网络结构图

在这里插入图片描述

2.对之前版本改进创新的概括

  • 输入端的创新:数据增强
  • 主干网络的改进:各种方法技巧结合起来,包括:CSPDarknet53、Mish 激活函数、Dropblock
  • 特征融合创新:在主干网络和最后的输出层之间插入一些层,比如 SPP 模块、FPN+PAN 结构
  • Prediction输出层创新:CIOU Loss(损失函数)、DIoU_NMS(新型的非极大值抑制)

二、对改进创新部分的具体介绍

1. 输入端创新

  • Mosaic数据增强:采用了CutMix的方法,将4张图片进行随机缩放、随机裁剪、随机排布的方式进行拼接,增强了对正常背景之外的对象的检测,丰富了检测物体的背景信息。同时,减少了估计均值和方差时的计算量,降低了训练成本。
  • 如下图:
    在这里插入图片描述

2. Backbone主干网络创新

CSPDarknet53

  • CSPDarknet53:借鉴了ResNet的残差结构,并运用了CSP(Cross Stage Partial)结构
    • CSPNet是作者Chien-Yao Wang于2019年发表的论文《CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING CAPABILITY OF CNN》中提出的一种新的网络结构,它可以增强CNN的学习能力,并且在轻量化的同时保持准确性。
    • 做法:CSPNet 将基础层的特征映射为两个分支,第二个分支正常执行残差网络,接着将两个分支的信息在通道方向进行 Concat 拼接,最后再通过 Transition 层进一步融合。如下图:
      在这里插入图片描述
    • CSPNet主要是为了解决三个问题:
      增强CNN的学习能力降低内存成本以及减少计算瓶颈
    • 同时,CSPNet方法可以减少模型计算量和提高运行速度,还能和多种网络结构结合在一起。

Mish激活函数

  • Mish激活函数:与ReLU相比,Mish函数在训练过程中能够使梯度更加平滑,避免了神经元的死亡问题,从而提高了模型的准确率。
  • 下面是ReLU(左)和Mish(右)激活函数的图像
    在这里插入图片描述

Dropblock正则化

  • Dropblock正则化:在卷积层上引入了一种新的正则化方法,通过丢弃一块相邻区域中的特征来防止过拟合。
  • 相比于传统的Dropout技术,DropBlock不是随机屏蔽掉一部分特征(注意是对特征图进行屏蔽),而是随机屏蔽掉多个部分连续的区域。
  • 这种方法有助于减少神经网络中的冗余连接,从而提高模型的泛化能力
  • 如下图:
    在这里插入图片描述

3. 特征融合创新

SPP模块

  • SPP-Net 全称 Spatial Pyramid Pooling Networks,是何恺明提出的,主要是用来解决不同尺寸的特征图如何进入全连接层的,在网络的最后一层 concat 所有特征图,后面能够继续接 CNN 模块
  • SPP Net在最后一个卷积层后,接入了金字塔池化层,保证传到下一层全连接层的输入固定。在普通的CNN机构中,输入图像的尺寸往往是固定的(比如224*224像素),输出则是一个固定维数的向量。SPP Net在普通的CNN结构中加入了ROI池化层(ROI Pooling),使得网络的输入图像可以是任意尺寸的,输出则不变,同样是一个固定维数的向量。
  • SPP 模块使得神经网络能够处理任意大小的输入,从而大大提高了模型的灵活性和泛化能力
  • 如下图:
    在这里插入图片描述

PAN结构

  • PAN结构:在FPN(Feature Pyramid Networks)的基础上进行了改进,引入了自底向上的路径,使得底层的位置信息更容易传播到顶层。这种双向的信息传递方式增强了模型对不同尺度目标的检测能力。
    • YOLOv3 中只有自顶向下的 FPN,对特征图进行特征融合,而 YOLOv4 中则是 FPN+PAN 的方式对特征进一步的融合。引入了自底向上的路径,使得底层信息更容易传到顶部。
    • 下面是 YOLOv3 的 Neck 中的 FPN,如图所示:FPN 是自顶向下的,将高层的特征信息通过上采样的方式进行传递融合,得到进行预测的特征图
      在这里插入图片描述
    • YOLOv4 中如下:
      在这里插入图片描述
    • 注意:YOLO v4 的特征融和方式是 concat
      • concat:将两个特征图在通道数方向叠加在一起,原特征图信息完全保留下来,再对原特征图增加一些我们认为是较好的特征图,丰富了特征图的多样性,是在空间上对原特征图的增强,这样在下一次卷积的过程中我们能得到更好的特征图。

4. Prediction输出层创新(未写完)

CIOU Loss

  • CIOU Loss:作为边界框回归的损失函数,CIOU Loss考虑了预测框与真实框之间的重叠面积、中心点距离和长宽比等因素,使得模型在训练过程中能够更快地收敛,提高检测的精度。

DIoU_NMS

  • DIoU_NMS:作为后处理方法,在去除冗余的检测框时不仅考虑了框的置信度还考虑了框之间的中心点距离,提高了检测的准确性。

下面是一个输入为640*640大小的图片,传输到YOLO v4 模型的过程

  • 如下图
    在这里插入图片描述

三、性能与应用

1. 性能

  • 在COCO数据集上,YOLOv4的平均精度(AP)达到了43.5%,速度高达65fps。
  • 高精度:能够准确地检测出各种不同类别的目标。
  • 高速度:满足实际应用中的实时性要求。
  • 易于训练:可以在单个GPU上进行训练,降低了训练的成本和难度。

2. 应用

  • 智能安防:用于监控摄像头中的目标检测,实时监测人员、车辆等目标的行为。
  • 自动驾驶:检测道路上的行人、车辆、交通标志等目标,为自动驾驶系统提供准确的环境信息。
  • 工业检测:用于工业生产中的质量检测,例如检测产品的缺陷、尺寸等。

综上所述,YOLOv4是一种非常强大的目标检测算法,具有高精度、高速度和易于训练等优点。它在许多领域都有广泛的应用前景,包括智能安防、自动驾驶和工业检测等。

相关文章:

《YOLO 目标检测》—— YOLO v4 详细介绍

文章目录 一、整体网络结构1. YOLO v4 网络结构图2.对之前版本改进创新的概括 二、对改进创新部分的具体介绍1. 输入端创新2. Backbone主干网络创新CSPDarknet53Mish激活函数Dropblock正则化 3. 特征融合创新SPP模块PAN结构 4. Prediction输出层创新(未写完&#xf…...

Ubuntu:通过ssh链接另外一台Ubuntu

本文将介绍通过ssh链接另外一台Ubuntu的方法。 一、安装openssh-server sudo apt update sudo apt install openssh-server二、查看SSH是否运行 sudo systemctl status ssh三、链接 ssh usernameremote_ip_address四、复制A电脑的文件到本地 scp usernameremote_ip_addres…...

黄山谷捷提交创业板IPO注册,募资扩产提升综合竞争力

近日,黄山谷捷股份有限公司(下文称“黄山谷捷”)申请深交所创业板IPO审核状态变更为“提交注册”。据悉,本次IPO黄山谷捷拟募资50,201.19万元,分别用于功率半导体模块散热基板智能制造及产能提升项目,研发中…...

(python)如何进行加密

代码效果是将输入的四个数字每个加上7,然后除以10的余数,接着再将第一个数字和第三个数字对调,第二个数字和第四个数字对调 # 获取用户输入的四位数字符串 list1 input("请输入你四位数密码:") # 初始化一个空列表来存…...

夸克网盘免费扩容 20T 福利,无限次叠加,亲测有效

新用户用夸克 APP 存资源可得 1T 永久存储空间 🚨此方法仅试用于新用户,并且只能在手机上打开夸克 APP 中去领取!pc,ipad 都不行!!! 使用手机打开夸克 APP,保存以下资源可获取 1T …...

开源协议类型及长安链开源协议介绍

截至目前,我国参与国际开源社区协作的开发者数量排名全球第二并推出了众多社区活跃度较高的高质量开源项目,是全球开源生态的重要贡献力量,但在开源治理方面我国还处于发展初期,大部分开发者对开源的印象还限于开放代码、免费使用…...

SQL Server 可观测最佳实践

SQL Server 简介 SQL Server 是微软公司开发的一款关系数据库管理系统,支持企业 IT 环境中的各种事务处理、商业智能和分析应用程序。它支持多种操作系统平台,而无论是物理还是虚拟形式,自建部署环境还是在云环境中,运行的操作系…...

青少年编程能力等级测评CPA Python编程(一级)

青少年编程能力等级测评CPA Python编程(一级) (考试时间90分钟,满分100分) 一、单项选择题(共20题,每题3.5分,共70分) 下列语句的输出结果是( )。 print(35*2) A&a…...

WebSocket 连接频繁断开的问题及解决方案

文章目录 WebSocket 连接频繁断开的问题及解决方案1. 引言2. 什么是 WebSocket?2.1 WebSocket 的优势2.2 WebSocket 的工作原理 3. WebSocket 连接频繁断开的常见原因3.1 服务器端问题3.1.1 服务器负载过高3.1.2 服务器配置不当3.1.3 超时设置 3.2 网络问题3.2.1 网…...

[CSP篇] CSP2024 游记(上)

Part.0 前言 在刚刚过去的 CSP-J2024 以及 CSP-S2024 中,不知大家十分用自己最好的状态参加了这次重要的测试,取得了令自己努力的成绩呢? 文章发布在 2024 年 11 月 1 日,距离出结果还有 3 − 5 3-5 3−5 天,如有需…...

Mac “屏幕保护程序启动或显示器关闭后需要密码“无效

屏幕保护程序启动或显示器关闭后需要密码只能选择“立即”的解决方法: 在 iPhone mirror中设置,每次询问权限。 参考:https://support.apple.com/en-us/120421...

架构师之路-学渣到学霸历程-35

Nginx的配置文件说明 nginx的学习,到了关键的部分,其实想要学好nginx就一定要了解配置文件;我们看看配置文件是怎么样的? 1、nginx的配置文件路径 不同的安装方式、nginx的配置文件路径也有所不同 源码安装配置文件路径&#…...

2024-10月的“冷饭热炒“--解读GUI Agent 之computer use?phone use?——多模态大语言模型的应用进阶之路

GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路 1.最新技术事件浅析三、思考和方案设计工具代码部分1.提示词2.工具类API定义,这里主要看computer tool就够了 总结 本文会总结概括这一应用的利弊,然后给出分析和工具代…...

sheng的学习笔记-AI基础-激活函数

ai目录:sheng的学习笔记-AI目录-CSDN博客 目录 Sigmoid Tanh 函数 ReLU(Rectified Linear Unit)函数 Leaky ReLU ELU(Exponential Linear Unit) SEIU Swish 激活函数的选择 激活函数(Activation F…...

重构代码之重复的观察数据

在代码重构中,重复的观察数据 是一种模式,指的是系统中存在多处对同一数据的观察或记录,使得数据需要在多处维护,导致了数据同步的困难和维护成本的增加。这种重复通常会引起以下几个问题: 数据不一致:由于…...

SpringBoot【实用篇】- 热部署

文章目录 目标:1.手动启动热部署2.自动启动热部署4.禁用热部署 目标: 手动启动热部署自动启动热部署热部署范围配置关闭热部署 1.手动启动热部署 当我们没有热部署的时候,我们必须在代码修改完后再重启程序,程序才会同步你修改的信息。如果我们想快速查…...

C语言 核心语法2

时间:2024.11.1 一、学习内容 1、计算机的存储规则 1.1存储规则 视频是图片和声音的结合体。 在计算机中,任意数据都是以二进制的形式进行存储的。 在计算机中,二进制可以表示万事万物。 1.2十进制 1.3二进制的运算过程 1.4文本存储 …...

【论文阅读】Real-ESRGAN

学习资料 论文题目:Real-ESRGAN:使用纯合成数据训练真实世界的盲超分辨率(Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data)论文地址:IEEE Xplore 全文 PDF:代码&#…...

安达发|零部件APS车间排程系统销售预测的优点

2024制造业面临着前所未有的挑战与机遇。为了保持竞争力,企业必须确保其生产系统能够高效、灵活地运作。在这方面,采用高级计划与排程系统,特别是零部件APS车间排程系统的预测方法,已成为提升生产效率和响应能力的关键策略。这种系…...

Android 同花顺面经

Android 同花顺面经 文章目录 Android 同花顺面经一面 一面 Android组件化搭建使用接口层路由有什么缺点? 如果更改接口的话,其他的依赖的moudle都得改 说说kotlin和java的区别? Java是支持面向对象的编程,Kotlin是支持面向对象支…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中&#xff0…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...