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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LinkedList 源码分析

1. 迭代器Iterator 在 Java 中,Iterator(迭代器)是一个用于遍历集合元素的接口。它提供了一种统一的方式来访问集合中的元素,而不需要了解集合的内部实现细节。 一、主要方法 hasNext():判断是否还有下一个元素可遍历…

怎么安装行星减速电机才是正确的

行星减速电机由于其高效、精密的传动能力,广泛应用于自动化设备、机器人、机床以及其他需要精准控制的领域。正确的安装行星减速电机对于确保设备的性能与延长使用寿命至关重要。 一、前期准备 在进行行星减速电机的安装之前,必须做好充分的前期准备工作…

springcloud通过MDC实现分布式链路追踪

在DDD领域驱动设计中,我们使用SpringCloud来去实现,但排查错误的时候,通常会想到Skywalking,但是引入一个新的服务,增加了系统消耗和管理学习成本,对于大型项目比较适合,但是小的项目显得太过臃…

SAP RFC 用户安全授权

一、SAP 通讯用户 对于RFC接口的用户,使用五种用户类型之一的“通讯”类型,这种类型的用户没有登陆SAPGUI的权限。 二、对调用的RFC授权 在通讯用户内部,权限对象:S_RFC中,限制进一步可以调用的RFC函数授权&#xff…

Spring IoC——依赖注入

1. 依赖注入的介绍 DI,也就是依赖注入,在容器中建立的 bean (对象)与 bean 之间是有依赖关系的,如果直接把对象存在 IoC 容器中,那么就都是一个独立的对象,通过建立他们的依赖关系,…

IDEA连接EXPRESS版本的SQL server数据库

我安装的版本是SQL2019-SSEI-Expr.exe 也就是EXPRESS版本的SQL Server安排非常简单和快速。 但是默认没有启动sa用户。 启动sa用户名密码登录 默认安装完以后没有启用。 使用Miscrosoft SQL Server Management Studio 使用Windows身份连接后。 在安全性》登录名中找到sa并修改…

​Java面试经典 150 题.P13. 罗马数字转整数(012)​

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int romanToInt(String s) {int sum…

大数据-204 数据挖掘 机器学习理论 - 混淆矩阵 sklearn 决策树算法评价

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

Windows11下将某个程序添加到鼠标右键快捷菜单

经常看log,最喜欢用的txt查看和编辑工具是EditPlus,好像是个韩国软件,最大的优势是打开大文件,好几G的log文件也很轻松,速度快,然后还有各种高亮设置查找文件等,非常方便。但是不知道为什么&…

宏处理将多个excel文件的指定sheet页合并到一个excel文件中

背景了解:有个同事问我:现在他要处理一千多个文件,每个excel文件都有3个sheet页签,想把所有的excel文件的第二个sheet页签复制一份放到一个新的excel文件中。如果是手动去操作一个个文件的复制,也没什么不可&#xff0…

什么是散度,什么是旋度,分别反映什么现象,磁场和静电场分别是什么场?

散度和旋度是矢量场中重要的微分运算概念,用来描述矢量场的局部特性,广泛应用于物理学、流体力学和电磁学中。 1. 散度(Divergence) 散度描述的是一个矢量场在某一点的“发散”或“汇聚”程度,简单来说就是在该点附近…

web——warmup——攻防世界

这道题还是没有做出来。。,来总结一下 1.ctrlU显示源码 2.看见body里有source.php 打开这个source.php 看见了源码 highlight_file(FILE); 这行代码用于高亮显示当前文件的源码,适合调试和学习,但在生产环境中通常不需要。 class emmm 定义…

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由

vue3项目history模式部署404处理,使用 historyApiFallback 中间件支持单页面应用路由 在现代的 web 开发中,单页面应用(SPA)变得越来越流行。这类应用通常依赖于客户端路由来提供流畅的用户体验,但在服务器端&#xf…

跨境电商平台系统开发

随着全球化的不断深入,跨境电商作为新兴的商业模式,越来越受到企业和消费者的关注。跨境电商平台的系统开发不仅涉及技术层面的挑战,更涉及到法律、物流、支付等多方面的因素。商淘云将分享跨境电商平台系统开发的主要环节,包括需…

《Web性能权威指南》-WebRTC-读书笔记

本文是《Web性能权威指南》第四部分——WebRTC的读书笔记。 第一部分——网络技术概览,请参考网络技术概览; 第二部分——无线网络性能,请参考无线网络性能; 第三部分——HTTP,请参考HTTP; 第四部分——浏览…

.NET 8 Web API 中的身份验证和授权

本次介绍分为3篇文章: 1:.Net 8 Web API CRUD 操作.Net 8 Web API CRUD 操作-CSDN博客 2:在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/143229912 3:.NET …

android定时器循环实现轮播图

说明: android定时器加for循环实现轮播图 效果: step1: package com.example.iosdialogdemo;import android.os.Bundle; import android.os.Handler; import android.widget.ImageView; import android.widget.TextView;import androidx.appcompat.ap…

基于Node.js+Vue+MySQL实现的(Web)图书管理系统

1 需求分析 本图书管理系统主要实现对图书馆的管理:图书、读者、管理员、借阅。由此,结构可分为:图书管理、读者管理、管理员管理、借还管理、罚单管理、还书信息。 1.1 需求定义 1.1.1 图书管理 可对图书信息进行浏览、编辑(…

计算机网络803-(5)运输层

目录 一.运输层的两个主要协议:TCP 与 UDP 1.TCP/IP 的运输层有两个不同的协议: 2.端口号(protocol port number) (1)软件端口与硬件端口 (2)TCP 的端口 (3)三类端口 二.用户…

机器学习之fetch_olivetti_faces人脸识别--基于Python实现

fetch_olivetti_faces 数据集下载 fetch_olivetti_faceshttps://github.com/jikechao/olivettifaces sklearn.datasets.fetch_olivetti_faces(*, data_homeNone, shuffleFalse, random_state0, download_if_missingTrue, return_X_yFalse, n_retries3, delay1.0)[source] L…