【论文笔记】:PVswin-YOLOv8s:基于无人机的行人和车辆检测,使用改进的YOLOv8在智能城市中进行交通管理

news2025/1/11 18:46:46

 摘要

在智慧城市中,有效的交通拥堵管理取决于熟练的行人和车辆检测。无人机 (UAV) 提供了一种具有移动性、成本效益和宽视野的解决方案,然而,优化识别模型对于克服小型和遮挡物体带来的挑战至关重要。为了解决这些问题,我们利用YOLOv8s模型和Swin Transformer模块,并引入了PVswin-YOLOv8s模型用于基于无人机的行人和车辆检测。

首先,YOLOv8s的骨干网络通过替换最后一个C2f层进行全局特征提取,从而引入Swin Transformer模型,用于极小目标检测。

其次,为了解决漏检的挑战,选择将 CBAM 集成到 YOLOv8s 的颈部。这种包含涉及利用通道和空间注意力模块,因为它们可以有效地提取网络内的特征信息流。

最后,为了避免目标丢失,采用Soft-NMS来提高遮挡情况下行人和车辆检测的准确性(多个目标重叠)。Soft-NMS提高了性能,并很好地管理了重叠的边界框。所提出的网络减少了被忽视的小目标的比例,并增强了模型检测性能。

通过与不同YOLO版本(例如YOLOv3-tiny、YOLOv5、YOLOv6和YOLOv7)、YOLOv8变体(YOLOv8n、YOLOv8s、YOLOv8m和YOLOv8l)以及经典目标检测器(Faster-RCNN、Cascade R-CNN、RetinaNet和CenterNet)的性能比较,验证了所提出的PVswin-YOLOv8s模型的优越性。实验结果证实了PVswin-YOLOv8s模型的效率,在VisDrone2019数据集上,与基线YOLOv8s相比,平均检测精度(mAP)提高了4.8%。

算法

难点

在无人机的车辆和行人检测领域,集成一级和两级目标检测 (OD) 算法的趋势越来越大。但他同时存在较大的局限性,比如它们在遮挡、小物体检测和遗漏识别方面的挑战。

在自然环境中,行人和车辆呈现出多尺度结构,无人机视角通常会在背景和被遮挡的特征下捕捉小的、低对比度的元素。

基于 CNN 的检测器通常可以分为两大类,如下所示。

  • one-stage:Fully Convolutional One-Stage (FCOS) , DEtection TRansformer (DETR) , EfficientDet , Single Shot Multibox Detector (SSD) , and You Only Look Once (YOLO1-8) ;

  • two-stage:空间金字塔池化网络(SPPNet)、centerNet 、R-CNN family和特征金字塔网络(FPN)

(通过使用大尺寸卷积核来减小输入张量通道维度来实现的)

攻克

yolov8的网络架构(了解的可以跳过)

  • 首先统一输入图像的大小尺寸 640 × 640。
  • 骨干网络通过使用重复卷积从输入图像中提取特征图来创建三层特征图(80 × 80、40 × 40 和 20 × 20)。
  • 颈部网络合并特征融合层,以有效地组合图像特征并减少信息损失。合并过程融合了特征金字塔网络 (FPN) 和路径聚合网络 (PANet) 的独特金字塔结构。这种集成有助于将强语义特征转移到自上而下级别的特征图,使用 FPN 结构来增强信息流。最后,PAN和FPN结构的联合使用提高了颈部网络特征融合能力。
  • 检测头用于获得最终的检测结果。
  • YOLOv8s 的核心元素包括图一b 中所示的 CBS 模块(卷积、Sigmoid 加权线性单元 (SiLU) 激活和批量归一化 (BN))、图一d 中所示的空间金字塔池化融合 (SPPF) 模块,以及图一c 中表示的 C2F 模块(结合了 ELAN  的特征,并受到 C3 的启发,以提供轻量级功能)。 
  • CBS模块使用特征重用来解决梯度离散问题,从而保证了原始数据在很大程度上得到保留。
  • SPPF模块通过提取和融合高级特征,并通过几种最大池化方法收集一系列高级语义特征,提高了分类精度。通过采用所需的解耦头技术,YOLOv8将自己与以前的YOLO架构区分开来。
  • 图一e显示了检测头,它由回归和分类分支组成,使用二元交叉熵(BCE)损失进行分类,使用分布式焦点损失(DFL)进行回归(定位)。DFL 具有用于定位和分类的独立部分,专为单级目标检测器设计,可提高检测性能

PVswin-YOLOv8s(论文提出的模型)

YOLOv8s是一个较小的模型,提供较少的参数数量和较少的内存使用,这对于无人机受限的计算资源至关重要。

图二a所示 Swin Transformer 模块替换了 YOLOv8s 主干网中的最后一个 C2f 层。这种集成在低分辨率特征图(20 × 20)上运行,从而减少了计算负载和内存要求。它通过利用 Swin Transformer 捕获长距离依赖性和多样化本地信息的能力,解决了 YOLOv8s 在捕获全局和上下文信息方面的限制。

Swin Transformer 模块采用默认的 4 × 4 像素的补丁大小进行初始补丁嵌入,然后通过移动窗口机制动态扩展,从而有效地增加感受野大小,而不会增加计算复杂性。这种集成确保了该模型保持了 YOLOv8s 的速度和精度,同时增强了其在复杂无人机图像中检测物体的能力。

然后,将CBAM引入YOLOv8的颈部网络,利用其双通道特性改善特征信息。图二b所示。

此外,我们用Soft-NMS来代替NMS,以更好地检测重叠物体

在YOLOv8模型中,NMS用于优化行人和车辆检测的候选框,阈值平衡影响无人机场景中的精度。为了解决遮挡问题,Soft-NMS 集成提供了一种适应性强的方法,可以最大限度地提高检测效果。这种综合方法旨在最大限度地检测行人和车辆的数量和位置信息。

Swin变压器块

使用patch division module(斑块分割模块),输入图像被分割成离散的、不重叠的部分。每个patch都被视为一个“token”,其特征是通过连接其像素的原始值来创建的。本调查中使用的 4 × 4 个补丁大小时,每个patch的特征尺寸为 4 × 4 × 3 = 48。

然后,如图三a所示,线性嵌入层将原始值特征投影到任意维度,由设计元素 C 表示。图三b描述了这种方法。为了构建 Swin 变压器,在标准变压器模块中安装了一个基于“移位窗口”(SW-MSA) 和“窗口”(W-MSA) 的改进型多头自注意 (MSA) 模块,以代替普通的 MSA 模块。其他层保持不变。该模块被两层多层感知器 (MLP) 取代,整流线性单元 (ReLU) 之间具有非线性性。在每个 MSA 模块和 MLP 层之前和之后,应用了 LayerNorm、归一化层和残差连接(逐步下采样特征图,在多个尺度上捕捉特征,并减少在深层的计算负担

Swin Transformer Block的结构
  1. 补丁划分(Patch Partitioning):将输入图像划分为非重叠的补丁。
  2. 线性嵌入(Linear Embedding):每个补丁被线性嵌入为特征向量。
  3. 窗口自注意力(Window-Based Self-Attention):在局部窗口内应用自注意力。
  4. 位移窗口自注意力(Shifted Window Self-Attention):在下一个块中对窗口进行位移,以确保跨窗口的信息交互。
  5. MLP和归一化(MLP and Normalization):每个注意力输出后都经过层归一化和MLP块。

CBAM

基于将三维特征图中的注意力机制分解为通道注意力和空间注意力,图二b显示了前馈卷积神经网络注意力模块,即卷积块注意力模块(CBAM )。

空间注意力模块应包含在通道注意力模块之后,以达到最佳效果。这种轻量级模块可以轻松实现到任何 CNN 架构中,以进行全面培训。

通道注意力需要在每个通道内应用最大池化和平均池化等方法,将特征图的空间维度压缩为一维向量。

CBAM的主要特点
  1. 通道注意力(Channel Attention):通道注意力模块通过自适应地调整特征图中不同通道的重要性来提升特征表示能力。它使用全局平均池化和全局最大池化生成通道权重,并通过一个共享的MLP(多层感知机)来计算通道注意力权重。

  2. 空间注意力(Spatial Attention):空间注意力模块通过关注特征图的不同空间位置来提高特征表示的空间位置能力。它首先对通道维度进行池化(全局平均池化和全局最大池化),然后通过一个卷积层生成空间注意力图,从而强调重要的空间位置。

  3. 模块结构:CBAM将通道注意力和空间注意力模块串联使用。首先应用通道注意力模块对输入特征图进行加权调整,然后应用空间注意力模块进一步强化特定的空间区域。

CBAM的结构
  1. 输入特征图:首先输入到CBAM模块。
  2. 通道注意力:对输入特征图进行通道维度的加权。
  3. 空间注意力:对通道注意力输出的特征图进行空间维度的加权。
  4. 输出特征图:经过加权后的特征图作为模块的输出。

通过引入CBAM,卷积神经网络能够更有效地捕捉关键特征,提高分类、检测等任务的性能。

Soft-NMS

Soft-NMS 对传统的 NMS 方法进行了改进,通过软性地处理重叠框来提高目标检测的性能。具体来说,它通过将重叠框的得分进行衰减,而不是直接删除重叠框,从而更好地处理目标之间的重叠情况。

算法步骤
  1. 排序:首先,对所有检测框按照得分从高到低排序。
  2. 逐个处理:从得分最高的检测框开始处理,每次选择一个检测框作为当前的“参考框”。
  3. 计算重叠度:对于每个参考框,计算其他所有框与其的重叠度(通常使用 IOU,Intersection Over Union)。
  4. 得分衰减:对重叠度超过设定阈值的检测框,根据它们与参考框的重叠度对它们的得分进行衰减(通常是通过指数衰减函数)。
  5. 框筛选:更新后的得分低于设定的阈值的框将被移除。此过程重复直到所有检测框都处理完成。
优势

提高准确率:通过保留部分重叠框,Soft-NMS 可以减少因为过度抑制导致的漏检问题。

 处理密集目标:在目标密集的场景下,Soft-NMS 能够更好地处理目标之间的重叠问题,提升检测性能。

实验

数据集

数据集采用VisDrone2019

VisDrone2019 数据集是一个用于无人机视觉任务的大规模数据集。它包含了丰富的无人机拍摄图像,覆盖城市道路、停车场、校园等多种场景。主要用于目标检测、跟踪和场景理解等研究。数据集包括丰富的标注,包括边界框(bounding boxes)、目标类别等信息。标注数据涵盖了车辆、行人、骑行者等不同类别的目标。它的目标是推动无人机在各种环境中的视觉感知能力。

数据集下载:chaizwj/yolov8-tricks: 目标检测,采用yolov8作为基准模型,数据集采用VisDrone2019,带有自己的改进策略 (github.com)

实验结果

通过检测 精度 (P)、召回率 (R)、F1 评分、mAP0.5 和 mAP0.5:0.95 以及其他措施来评估我们提出的 PVswin-YOLOv8s 模型的检测能力。

通过与不同YOLO版本(例如YOLOv3-tiny、YOLOv5、YOLOv6和YOLOv7)、YOLOv8变体(YOLOv8n、YOLOv8s、YOLOv8m和YOLOv8l)以及经典目标检测器(Faster-RCNN、Cascade R-CNN、RetinaNet和CenterNet)的性能比较,验证了所提出的PVswin-YOLOv8s模型的优越性。
  

  

  

同时进行消融实验证明了创新点给模型性能带来的提升

  

Visdrone2019-test数据集上检测结果的比较可视化:(a)真值标注,(b)YOLOv5的预测,(c)YOLOv8s的预测,(d)增强型PVswin-YOLOv8s模型的预测,以及(e)综合检测性能图表。此处 Count 显示对象的数量。

  

总结

创新点

  • PVswin-YOLOv8s采用了Swin Transformer、CBAM和Soft-NMS等多种先进技术,以提高检测性能。
  • 在网络结构方面,PVswin-YOLOv8s使用了Swin Transformer替换YOLOv8s中的最后一层C2f层,以捕捉长距离依赖关系和多样化本地信息。
  • 同时,在颈部网络中加入了CBAM模块,以增强特征信息流的提取能力同时解决漏检问题。
  • 最后,使用Soft-NMS代替NMS,以解决多个物体重叠的问题

思考

  • 尽管PVswin-YOLOv8s在行人和车辆检测任务中表现良好,但在识别极小目标方面(比如对于自行车和三轮车)的准确性仍有待提高。
  • 优化模型的准确性,同时平衡资源消耗,以实现全面的模型增强。

论文链接:Drones | Free Full-Text | PVswin-YOLOv8s: UAV-Based Pedestrian and Vehicle Detection for Traffic Management in Smart Cities Using Improved YOLOv8 (mdpi.com)

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

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

相关文章

推出 SAM 2:适用于视频和图像的下一代 Meta Segment Anything 模型

继图像元分割模型(SAM) 取得成功之后,我们发布了SAM 2,这是一个用于在图像和视频中实时提示对象分割的统一模型,可实现最先进的性能。 为了秉承我们的开放科学方针,我们通过宽松的 Apache 2.0 许可证共享代码和模型权重。 我们还…

嵌入式linux系统镜像制作day2

点击上方"蓝字"关注我们 01、前言 嵌入式linux系统镜像制作day1这一节先了解,后面实操 02、Yocto项目快速启动 Yocto项目通过OpenEmbedded构建系统为各种平台(包括x86-64和仿真平台)提供了一个针对ARM、MIPS、PowerPC和x86架构的开源开发环境。您可以使用Yocto项…

WebDeveloper:1靶机渗透测试

一、靶机下载地址 https://www.vulnhub.com/entry/web-developer-1,288/ 二、信息收集 1、主机发现 # 使用命令 nmap 192.168.145.0/24 -sn | grep -B 2 "00:0C:29:54:22:E9" 2、端口扫描 # 使用命令 nmap 192.168.145.216 -p- -sV 3、指纹识别 # 使用命令 wha…

【SpringCloud】什么是MQ

RabbitMQ 1.什么是MQ 1.1 同步和异步通信 微服务间通讯有同步和异步两种方式: 同步通讯:就例如打电话一样,需要实时响应异步通讯:就例如发邮件一样,不需要马上回复 1.1.1同步通讯 Feign的远程调用就属于同步通讯…

【数据分析】描述性统计分析 - 直方图

一、什么是直方图 由一批长方形构成,通过长方形的面积或高度来代表对应组在数据中所占的比例。用长方形的面积代表对应组的频数与组距的比时,则称为频率分布直方图;当用长方形的高代表对应组的频数时,则称为频数分布直方图。但严格统计意义上…

WT32-ETH01开发板模块,启明云端物联网方案,乐鑫ESP32多样化开发应用

在物联网(IoT)的浪潮中,无线Wi-Fi模块作为连接传统硬件与现代智能网络的桥梁,正逐渐成为智能家居和设备通信不可或缺的一部分。Wi-Fi模块也被称为串口Wi-Fi模块,是一种嵌入式模块,它能够将串口或TTL电平信号转换为符合Wi-Fi无线网…

普元EOS-多数据源时业务数据库初始化

1 问题 EOS开发应用的时候,可以采用多数据源。 项目启动的是时候报错如下: 2024-08-14 16:03:56.105 ERROR [EOS-DEMO-SYS,EOSLOWCODE,default,cuipengyu:EOSLOWCODE:28015,,,,] 28960 --- [Timer-0] c.p.g.a.a.m.RdcloudStatisticsThread : User…

66_1JSON【浏览器中处理JSON、Java中处理JSON(FastJSON、Jackson)】、Java中的bean

JSON 概念 JSON:JavaScript Object Notation是一种表示对象的方式 基于JavaScript语言的轻量级的数据交换格式;(即:用来传输数据的一种格式) 现在传输数据的方式更多是采用json的格式,渐渐代替了XML JSON的数据表示 JSON采用名值…

封装一个细粒度的限流器

文章目录 原因限流对象限流后的做法怎么确定限流阈值观测业务性能数据压测借鉴链路上的其他服务手动计算 四种静态限流算法令牌桶漏桶固定窗口与滑动窗口 手写限流算法令牌桶漏桶固定窗口滑动窗口 分布式限流的具体实现 原因 尽管云原生网关里有统一入口的限流(根据…

股指期货套期保值中的展期管理有哪些?

在复杂的金融市场环境中,展期作为一种重要的风险管理工具,被广泛应用于期货交易中,特别是当投资者需要对长期资产进行套期保值时。展期的核心思想在于,通过连续替换高流动性的近月期货合约来替代流动性较差的远月合约,…

untiy有渲染线程和逻辑线程嘛

之前我也这么认为,其实unity引擎是单线程的,当然后续的jobs不在考虑范围内 如果你在一个awake 或者 start方法中 延时,是会卡住主线程的 比如 其实游戏引擎有一个基础简单理解,那就是不断的进行一个循环,在这个周期循…

网络分段如何增强 OT 网络的可见性

防火墙在保护运营技术(OT) 网络和系统方面发挥什么作用? 很多人会说,防火墙是一种防御机制,用于保护该环境免受 IT 和外界的影响。对于负责该关键系统正常运行的操作员来说,防火墙是阻止他人进入的外围保护。它也是需要从 OT 系统…

Unity Render Streaming项目实践经验

UnityRenderStreaming项目 项目github地址见上,我使用项目的3.1.0-exp.7版本、Unity 2023.1.0版本、windows11运行。 1下载项目包 2在Unity Hub中打开RenderStreaming~文件夹 3在package manager中导入com.unity.renderstreaming package 因为已经下载过了就选择install pa…

Linux shell编程学习笔记71: sort 命令——构造有序世界

0 前言 在大数据时代,我们面对和使用大量数据,如果数据是有序的,无疑是有益的。 在Linux中,我们可以使用 sort 命令来构造一个有序的空间。 1 sort命令 的功能、格式和选项说明 我们可以使用命令sort --help来获取帮助信息。 …

Spark MLlib 特征工程(下)

Spark MLlib 特征工程(下) 前面我们提到,典型的特征工程包含如下几个环节,即预处理、特征选择、归一化、离散化、Embedding 和向量计算,如下图所示。 在上一讲,我们着重讲解了其中的前 3 个环节,也就是预处理、特征选…

Memecoin的火爆与AMM在Solana上的主导地位

随着Solana区块链的高速发展,尤其是近年来Memecoin市场的崛起,AMM(自动做市商)逐渐成为Solana去中心化交易所(DEX)的主导交易模式。尽管Solana以其高效性能能够支持每秒数千笔交易,足以让中心化…

【C语言篇】深入理解指针3(附转移表源码)

文章目录 数组指针什么是数组指针数组指针变量的初始化 二维数组传参的本质函数指针函数指针变量的创建函数指针变量的使用 两端有趣的代码typedef 关键字 函数指针数组转移表写在最后 数组指针 什么是数组指针 在【C语言篇】深入理解指针2我们学习了指针数组,指针…

Qt项目【上位机十字屏开发】

效果图 说明 重写 QWidget 中的 paintEvent() 处理绘图事件&#xff0c;废话不多说&#xff0c;上代码 源码 #ifndef MYWIDGETFORM_H #define MYWIDGETFORM_H#include <QWidget>namespace Ui { class myWidgetForm; }enum MYTYPE{SIZEWIDTH,SIZEHEIGHT,TOPWIDTH,TOPHE…

XMind在软件需求分析中编写测试用例的应用技巧

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言 在软件需求分析中&#xff0c;编写测试用例是确保软件质量的重要环节。之前很多同学都是用Excel&#xff0c;但是XMind作为一款功能强大的思维导图工具&#xff0c;可以在需求分析阶段帮助测试人员系统地设计和组织测试用…

报错解决——苹果电脑mac装windows10,总是提示“启动转换”安装失败:拷贝Windows安装文件时出错

报错原因&#xff1a; 所安装的镜像文件大于4GB。 解决办法一&#xff1a; 使用小于4GB的镜像文件。 参考文章&#xff1a; 安装小于4GB的windows系统镜像 小于4GB的windows10镜像下载&#xff1a; 系统库官网 解决办法二&#xff1a; 参考文章&#xff1a; Mac air装…