SOD-YOLOv8 - 增强YOLOv8以在交通场景中检测小目标

原文链接:中英文对照阅读
摘要

计算机视觉中的目标检测对于交通管理,紧急响应,自动驾驶车辆和智能城市至关重要。 尽管在目标检测上有重大进步,但在远程摄像头获取的图像中检测小目标仍具有挑战性,这主要是由于它们的大小、与摄像头的距离、形状的多样性和杂乱的背景所造成的。 为了解决这些问题,作者提出了Small Object Detection YOLOv8 (SOD-YOLOv8),这是一种专门针对涉及众多小目标场景的新颖模型。 受到Efficient Generalized Feature Pyramid Networks (GFPN)的启发,作者在YOLOv8中增强多路径融合,以合并多层级的特征,保留浅层细节并提高小目标检测精度。 此外,引入第4个检测层用于有效利用高维度的空间信息。 C2f-EMA模块中的高效多尺度注意力模块(EMA)通过重新分配权重和优先考虑相关特征增强特征提取。 作者提出了Powerful-IoU(PIoU)作为CIoU的替代,主要关注中等质量的 Anchor 框并基于预测和真实边界框角之间的差异添加惩罚。 这种方法简化了计算,加快了收敛速度,并提高了检测精度。 SOD-YOLOv8 显著提高了小目标检测,在各种指标上超越了广泛使用的模型,而与 YOLOv8s 相比,其计算成本或延迟没有大幅增加。 具体而言,SOD-YOLOv8将召回率从 40.1% 提高到 43.9%,将精度从 51.2% 提高到 53.9%,mAP0.5 从 40.6% 提高到 45.1%,mAP0.5:0.95 从 24% 提高到 26.6%。 在动态现实交通场景中,SOD-YOLOv8在各种条件下表现出色,证明了即使在具有挑战性的环境下检测小目标,仍具有可靠性和有效性。

I介绍

计算机视觉中的目标检测在各个领域发挥着至关重要的作用,包括自动驾驶 [1, 2, 3]、交通场景监控 [4, 5]、增强智能驾驶系统 [6] 以及便利搜索和救援任务 [7]。 准确检测小目标,如行人、车辆、摩托车、自行车、交通标志和信号灯等,对于自动驾驶车辆和智能驾驶系统 [1, 3]的安全导航和决策至关重要。 此外,检测小物体可以提高交通流量管理、行人安全和整体交通场景分析的效率。 这种能力对于改进城市规划和交通系统至关重要 [4, 5]。

随着无人机生产成本的降低和飞行控制技术的进步,这些小型、灵活的设备越来越多地用于智能交通监控 [8]。 无人机通常在较高的高度运行以捕捉更广阔的视野,这会由于距离增加而减小地面物体的表观尺寸。 这种距离使捕获图像中的物体检测变得复杂 [8]。 尽管在目标检测方面有了显著的进步,但检测城市交通中的小目标,如行人、摩托车、自行车和车辆,仍然是具有挑战性的,主要是由于它们的大小,形状的多样化,以及杂乱的背景。 这个挑战在计算机视觉和目标检测中使用有限的硬件资源时被进一步放大。

与较大物体相比,小物体仅占图像的一小部分,且分辨率较低,视觉特征不明显,因此更难准确检测。 此外,YOLOv8 等网络中的浅层可能会过滤掉检测这些小物体所需的必要空间细节,从而导致数据丢失。 此外,在特征提取过程中,较小的物体可能会被较大的物体遮挡,从而可能导致准确检测所需的相关细节丢失。 克服这些挑战对于提高现实场景中整体检测的准确性和可靠性至关重要。

为了解决无人机航拍和交通场景中的小物体检测问题,我们引入了一种基于 YOLOv8 的新型模型。 我们的模型使用增强的 GFPN 集成了多尺度空间和上下文信息 [9]。 我们将 EMA 注意力 [10] 集成到 C2f 模块中,以确保小物体特征得到足够的重视。 我们还包含第四个检测层,以有效地利用高分辨率空间细节。 此外,由于边界框回归在物体检测中的重要影响,我们使用了 PIoU 方法,该方法通过结合改进的惩罚项和注意力机制来提高性能并减少收敛时间。 我们的主要贡献如下:

  • • 

    受 DAMO-YOLO 模型中 Efficient RepGFPN 的启发 [11],我们增强了 YOLOv8 架构中的多路径融合。 这种增强有助于更好地融合不同层次的特征,并通过重新参数化简化 GFPN 结构。 通过保留来自较浅层的关键信息,我们的方法显着提高了检测精度,特别是对于小物体。 此外,我们添加了第四个检测层,以有效利用高分辨率和详细的空间信息。

  • • 

    我们将 C2f-EMA 结构集成到网络中,利用 Efficient Multi-Scale Attention Module 替换neck层的 C2f。 这种增强通过重新分配特征权重来改善特征提取,优先考虑图像通道中的相关特征和空间细节。 因此,它增强了网络检测不同大小目标的能力。

  • • 

    我们使用 PIoU 替换原始网络中的 CIoU。 PIoU 通过更好地平衡难易样本来增强现有的基于 IoU 的损失函数,特别关注中等质量的Anchor框。 它结合了基于预测和真实边界框角之间差异的惩罚项,提高了边界框回归的效率和准确性。 PIoU 还通过仅需要一个超参数来简化计算,从而实现更快收敛和更高的目标检测精度。

  • • 

    我们在各种具有挑战性的场景中进行视觉分析,以证明我们提出的方法在增强小物体检测方面的有效性。 此外,我们使用从安装在建筑物上的摄像头捕获的图像在现实世界的交通场景中进行实验。 这些图像包含许多小物体,有助于验证我们增强的小物体检测模型。

本文其余部分的结构如下:第 2 节讨论相关工作。 第 3 节概述了 YOLOv8 网络架构。 第4节详细描述了提出的增强YOLOv8。 第5节覆盖了我们的实验设置和结果分析。 最后,第 6 节总结了本文。

II相关工作

小目标检测一直是计算机视觉领域的一大挑战,尤其是在交通场景中。 本节回顾了主流目标检测算法、小目标检测的最新进展以及对 YOLO 框架中特定改进的内容。

主流目标检测算法主要使用深度学习技术,可分为两类:两阶段方法和单阶段方法。 两阶段方法处理候选帧,并对其进行深度学习,相应的帧进行分类 [13]。 典型的两阶段检测算法包括 R-CNN [13]、Fast R-CNN [14] 和 Faster R-CNN [15]。 R-CNN 家族是一种经典的两阶段算法,以其高检测精度而闻名,但面临着速度慢、训练复杂和优化方面的挑战 [16]。 单阶段检测器,如 YOLO 系列 [17, 18] 和 SSD [19],使用单个神经网络一次性预测框坐标和类别。 因此,单阶段网络在速度至关重要的应用中表现出色。 但是,它们会牺牲一些精度。 尽管在速度上提高,但这些方法由于物体的多尺度性质,无人机和交通场景中小型物体的普遍存在,在精度上仍然存在困难。

最近的研究集中在提高无人机航拍和交通场景中的小目标检测,这很具有挑战性,因为与较大的物体相比,它们的分辨率较低,视觉特征也不那么明显。 研究人员已经探索了各种backbone架构来增强特征表示,减少负反馈,并从无人机图像中复杂背景中提取相关特征。

Liu 等人 [20] 提出了一个用于无人机图像小型目标检测模型,通过整合 ResNet 单元并优化卷积操作来扩展网络的感受野,从而解决遗漏和负反馈问题。 Liu 等人 [21] 提出了 CBSSD,这是一种专门用于无人机交通图像中小型目标检测的检测器。 通过将 ResNet50 的低级特征与 VGG16 整合,CBSSD 提高了特征表达,增强了目标识别精度,并在具有挑战性的光照条件下减少了误报。 此外,Liu 等人 [22] 利用多分支平行特征金字塔网络 (MPFPN) 和 SSAM 来检测无人机图像中的小型目标。 他们的方法通过 MPFPN 增强特征提取以实现深层细节恢复,而 SSAM 减少了背景噪声,显着提高了精度。 在 VisDrone-DET 数据集 [23] 上的实验结果展示了他们方法的竞争性性能。

还探索了 YOLO 框架内的适应性和优化,以应对小型目标检测中的挑战。 Lai 等人 [24] 推出了 STC-YOLO,这是一种专门针对具有挑战性的交通标志检测而设计的 YOLOv5 变体。 他们的改进包括精炼的下采样,一个专门的小目标检测层,以及一个具有多头注意力的基于 CNN 的特征提取模块。 与 YOLOv5 相比,STC-YOLO 在基准数据集上的平均精度 (mAP) 提高了 9.3%。

对 YOLOv8 进行了进一步的增强,重点是改进backbone架构,整合注意力机制以关注相关特征并抑制无关特征,以及修改损失函数。 Shen 等人 [25] 推出了 DS-YOLOv8,通过整合可变形卷积 C2f (DCN_C2f) 和自校准混合注意力 (SC_SA) 来增强图像中小型目标检测,从而实现自适应特征调整,以及 Wise-IoU [26] 和位置回归损失以提高性能。 在不同数据集上的实验结果表明,在 �⁢�⁢�0.5 中显着提高了性能。 Wang 等人 [8] 使用 BiFormer 注意力机制来改进用于无人机航拍的 YOLOv8,以关注重要信息,并使用 FFNB 来实现有效的多分辨率特征融合。 这导致平均检测精度比基础模型提高了 7.7%,超过了广泛使用的替代方法来检测小型目标。 这标志着无人机目标检测的重大进步,但由于额外检测层增加了计算复杂性,因此需要进一步优化。

王等人 [27] 改进了 YOLOv8在遥感图像的检测目标,重点关注复杂背景和多种小型目标。 他们引入了一个小型目标检测层,并使用 EMA 注意力模块将 C2f-E 结构整合在一起。 在 DOTAv1.0 数据集上的实验结果 [28] 表明 �⁢�⁢�0.5 显着提高了 1.3% 至 82.7%,突出了目标检测精度的重大进步。 但是,他们的方法会增加计算复杂性。 许等人 [29] 介绍了 YOLOv8-MPEB,专门用于无人机图像中的小型目标检测,以解决尺度变化和复杂场景问题。 增强功能包括用 MobileNetV3 替换 CSPDarknet53 [30] 以提高效率,在 C2f 中整合高效的多尺度注意力以更好地提取特征,以及在 Neck 部分整合双向特征金字塔网络 (BiFPN) [31] 以增强适应性。 在自定义数据集上的实验结果表明,YOLOv8-MPEB 实现了 91.9% 的 mAP,比标准 YOLOv8 提高了 2.2%,同时将参数减少了 34%,模型大小减少了 32%。 然而,准确检测密集的小目标仍然是一个挑战。

尽管以往的研究取得了进展,但小型目标检测方法在无人机航拍和交通场景中仍然面临挑战。 这些方法主要集中在特征融合,但通常忽略了内部块连接。 相比之下,我们的方法受 Efficient-RepGFPN 启发,将优化版本GFPN 整合到 YOLOv8 中。 这种增强方法通过跳跃连接和queen融合结构在提高效率的同时,几乎不影响计算复杂度和延迟。 此外,引入的 C2f-EMA 模块通过使用 EMA 注意力机制重新分配特征权重来增强特征提取。 与其他注意力机制不同,它克服了诸如忽略空间细节之间的交互作用以及 1x1 内核卷积的有限感受野等局限性,这些局限性限制了局部跨通道交互和上下文信息建模。

此外,我们的方法避免了其他边界框回归方法中常见的扩大问题。 使用的 PIoU 损失函数在训练期间有效地引导anchor框,从而导致更快地收敛,并证明了其有效性。 虽然现有方法在受控数据集上表现良好,但在现实世界环境中,它们往往难以跨越不同的环境和动态照明条件进行泛化。 在本文中,我们使用由建筑物安装的摄像头捕获的现实世界交通场景进行实验,评估了不同的环境、照明条件和动态场景,例如夜间和拥挤的场景。 这挑战了小目标检测方法在受控数据集之外的泛化能力。

IIIYOLOv8 检测网络简介

如图 1 所示,YOLOv8架构主要由三个主要部分组成:backbone、neck和检测层。 每个组件将在后续部分介绍。

Figure 1:The network structure of YOLOv8.

在本节中,介绍我们在研究中提高小目标检测三个关键功能。 首先,我们增强在 YOLOv8 架构neck层的特征融合,以便更好地保留那些通常会被更浅层过滤掉的重要的空间细节。 此修改旨在减少信息损失,尤其是在特征提取过程中,小目标被大目标遮挡时。 其次,我们提出了 C2f-EMA 模块,将 EMA 注意力机制集成在一起,以优先考虑跨不同通道的相关特征和空间细节。 此方法通过有效的分配特征权重提高了特征提取效率。 最后,我们使用PIOU替代CIOU,作为提高边界框回归标准。 PIoU 包含一个惩罚项,最小化了预测框和真实框对应角点之间的欧几里得距离,在边界框回归任务中,提供了一个更直观的相似度和稳定性度量。 这些方法有助于提高我们小目标检测框架的准确性和鲁棒性。 本文中使用了图 2 中所示的增强结构。

图 3: 跳跃层链接: (a) 密集连接:连接来自所有前一层的特征; (b) log2⁡n 连接:在每个级别连接来自最多 log2⁡(l)+1 层的特征。

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

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

相关文章

集合框架07:LinkedList使用

1.视频链接:13.14 LinkedList使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p142.LinkedList集合的增删改查操作 package com.yundait.Demo01;im…

【判断推理】逻辑论证之归因论证

2.1 归因论证概述 归因:指人们对 他人或自己行为的原因的推论过程。具体而言,就是观察者对他人的行为过程或自己的行为过程所进行的因果解释和推论。(通俗而言,归因就是对已经发生的事实,在众多可能的原因中找出一个原…

【大模型问答测试】大模型问答测试脚本实现(第二版)——接入pytest与代码解耦

背景 接上一篇,【大模型问答测试】大模型问答测试脚本实现(第一版)。 在实现自动化的时候,原先把很多方法与request请求写在一块了,趁着目前实现接口数量较少,决定对代码进行解耦,并且清晰目录…

Qt获取磁盘信息+表格显示

效果展示 主要代码 获取磁盘相关数据 获取磁盘数据 Qt 没有提供相关的接口,需要使用 Windows API。接口解释如下: BOOL GetDiskFreeSpaceExW([in, optional] LPCWSTR lpDirectoryName,[out, optional] PULARGE_INTEGER lpFreeBytesAvailable…

推荐算法的学习

文章目录 前言1、模型1.1 从本领域模型的发展历史中学习1.1.1 在历史中总结发展规律和趋势1.1.2 发现模型之间的共性,方便记忆 1.2 从其他领域的发展中学习1.2.1 注意力机制1.2.2 残差网络 1.3 实践该怎么办? 2、 特征2.1 数据源的选择与建立2.2 特征构造…

Python生成随机密码脚本

引言 在数字化时代,密码已成为我们保护个人信息和数据安全的重要手段。然而,手动创建复杂且难以猜测的密码是一项既繁琐又容易出错的任务。幸运的是,Python编程语言为我们提供了一种高效且灵活的方法来自动生成随机密码。本文将详细介绍如何…

android app执行shell命令视频课程补充android 10/11适配-千里马android

(https://blog.csdn.net/learnframework/article/details/120103471) https://blog.csdn.net/learnframework/article/details/120103471 hi,有学员在学习跨进程通信专题课程时候,在实战app执行一个shell命令的项目时候,对课程本身的android …

【高等数学】无穷级数

0. 了解 无穷级数是指将无穷多个数按照一定的规律相加起来的表达式。 打个比方,就像你有一个无穷长的梯子,每一级梯子代表一个数。把这些数一个一个加起来,就形成了无穷级数。 比如常见的等比级数,这里是首项,是公比。如果,这个等比级数是收敛的,也就是它的和是一个有限…

Hackmyvm-Lookup

0x00信息收集 0x01端口扫描 PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:0A:44:CF (Oracle VirtualBox virtual NIC)22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)80/tcp open http Apache ht…

数据权限的设计与实现系列13——前端筛选器组件Everright-filter集成多控制维度实现

‍ 数据权限多维度实现 上面的所有工作,实际都是基于业务实体属性这一数据权限控制维度展开的。 接下来,我们来设计与实现多维度,主要是用户组(即角色)、组织机构和用户。 ‍ 业务需求分析 用户控制维度 业务场景…

【MATLAB代码】指纹定位方法(KNN)介绍与例程(二维、轨迹定位),源代码可复制粘贴到MATLAB上运行

文章目录 指纹定位指纹定位技术简介基本原理位置估算公式1. 最近邻居算法(KNN)2. 加权最近邻居算法(W-KNN)3. 最小二乘法(LS)最终位置 P P P通过求解下面的方程获得:应用场景优缺点优点缺点总结源代码代码运行运行方法运行结果指纹定位 指纹定位技术简介 指纹定位是一…

SpringBoot日常:封装redission starter组件

文章目录 逻辑实现POM.xmlRedissionConfigRedissionPropertiesRedissionUtilsspring.factories 功能测试application.yml配置POM.xmlTestController运行测试 本章内容主要介绍如何通过封装相关的redission连接配置和工具类,最终完成一个通用的redission starter。并…

洛谷 P1038 [NOIP2003 提高组] 神经网络(拓扑排序)

题目传送门 感觉这道题需要我们高超的语文阅读水平…… 解题思路 我们发现要计算一个细胞的状态值(),就需要先算出有边指向它的其他细胞对答案的贡献; 这是有拓扑序的,所以我们想到拓扑排序。 题目中说了&#xff0…

FastDFS单节点部署

FastDFS单节点部署 1、FastDFS入门1.1 分布式文件系统1.2 FastDFS 简介1.3 FastDFS 发展历史1.4 FastDFS 整体架构1.5 FastDFS 线上使用者 2、FastDFS 环境搭建2.1 FastDFS 安装2.1.1 安装前的准备2.1.2 安装 libfastcommon库2.1.3 安装 FastDFS 2.2FastDFS 配置2.2.1 去掉/etc…

即使是编程新手,也能利用ChatGPT编写高质量的EA

在外汇交易领域,MetaTrader是一款备受欢迎的交易软件,包括MT5和MT4,提供了众多强大的分析工具和自动化交易功能。对于没有编程经验的新手而言,编写专家顾问(EA)可能显得既复杂又令人望而却步。幸运的是&…

数据结构——链表,哈希表

文章目录 链表python实现双向链表复杂度分析 哈希表(散列表)python实现哈希表哈希表的应用 链表 python实现 class Node:def __init__(self, item):self.item itemself.next Nonedef head_create_linklist(li):head Node(li[0])for element in li[1…

spring6 IoC容器详解

目录 一、引言 示例开发 示例分析 启用Log4j2日志框架 使用方式 二、IoC容器 IoC容器 1.控制反转(IoC) 2.依赖注入 3.IoC容器在Spring的实现 基于XML管理Bean 依赖注入之setter注入 依赖注入之构造器注入 Bean生命周期 基于xml自动装配 …

基于SSM+微信小程序的打印室预约管理系统(打印2)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的打印室预约管理系统实现了管理员和用户两个角色。 1、管理员功能有个人中心,用户管理,附近打印店管理,文件打印管理,当…

ui自动化知识点-web端

UI : User Interface( ⽤户接⼝ - ⽤户界⾯ ) ,主要包括: app 、 web ui ⾃动化测试:使⽤⼯具或代码执⾏⽤例的过程 什么样的项⽬适合做⾃动化:1、需要回归测试项⽬(甲⽅⾃营项⽬、⾦融、电商)2、需求变动不频繁:稳定的模块3、项⽬周期⻓的项⽬:(甲⽅⾃营项⽬、6个…

YOLO11改进 | 主干网络 | 将backbone替换为Swin-Transformer结构【论文必备】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的backb…