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

机场安全项目|基于改进 YOLOv8 的机场飞鸟实时目标检测方法

目录

论文信息

背景

摘要

YOLOv8模型结构

模型改进

FFC3 模块

CSPPF 模块

数据集增强策略

实验结果

消融实验

对比实验

结论


论文信息

《科学技术与工程》2024年第24卷第32期刊载了中国民用航空飞行学院空中交通管理学院孔建国, 张向伟, 赵志伟, 梁海军的论文——“基于改进 YOLOv8 的机场飞鸟实时目标检测方法”。

图片

题目:基于改进YOLOv8的机场飞鸟实时目标检测方法

作者:孔建国、张向伟、赵志伟、梁海军

论文链接:

http://www.stae.com.cn/jsygc/article/abstract/2309930?st=article_issue


背景

鸟击是指飞行器在起降或飞行过程中与鸟类相撞而引发的飞行安全或事故征候。根据美国联邦航空局(Federal Aviation Administration, FAA)公布的野生动物撞击数据库的数据显示,与飞机撞击的野生动物种类主要为鸟类。1990—2022 年,该数据库共记录了276846起鸟击事件报告,其中272016起发生在美国本土。数据库还显示鸟击件数量呈逐年上升趋势。鸟类对航空器的飞行事构成严重威胁,是民航安全领域一项难以控制却又不可忽视的安全风险因素。因此,对机场附近飞鸟的准确实时监测显得至关重要。这种监测能够为机场的驱鸟工作提供决策支持,有助于保障民航运营。


摘要

飞鸟对航空器的安全运行有着严重的威胁。常用探鸟方法中,人工探测精度较低,雷达探测成本较高。为解决上述问题,对中小型机场而言,本文提出基于改进YOLOv8的机场飞鸟实时检测方法。利用视频监控设备来检测飞鸟能以较低的成本实现高效的检测精度及速度。首先,设计了特征融合C3 (feature fusion C3, FFC3)模块,该模块在更细粒度的层次上实现多尺度特征融合,然后为模型选择合适的通道数,实现了检测速度和精度的平衡。其次,设计了CSPPF (CBAM-spatial pyramid pooling fast)模块,在SPPF中引入CBAM (convolutional block attention module)模块,实现检测精度和速度的进一步提升。最后,发现了原AirBirds数据集的两点不足之处,对此改进了机场飞鸟数据集,同时利用了数据集增强技术。结果表明,改进YOLOv8的mAP@50达到0.820,相比原YOLOv8提升了0.015;改进YOLOv8的速度达到32 帧/s。改进YOLOv8满足机场鸟类检测实时性和精确性的要求,为复杂环境下中小机场飞鸟检测提供了一种新思路。


YOLOv8模型结构

YOLOV8s的模型结构如图1所示。YOLOv8s由 Backbone、Neck、Head 组成。Backbone 的主要作用是提取图像特征;Neck 使用 PANet 特征金字塔网络处理不同大小的目标,主要融合来自多个层级的特征图;Head 用于执行最终的目标检测,它使用从骨干网络及Neck提取的特征图来预测边界框和目标的类别。YOLOv8是一种Anchor free的目标检测模型,这表明YOLOv8 的检测速度会更快。

图片


模型改进

改进后的 YOLOv8s 目标检测模型如图 2 所示。首先,设计 FFC3模块,该模块在模块内部充分利用了不同层级的特征图,以实现融合不同层级特征图,增强了网络的小目标检测性能。随后,由于观察到在本数据集内存在大量特征较为单一的鸟类实例,具体表现为鸟类实例所占像素比较少、颜色较为单一、绝大部分鸟类均为飞鸟且其背景颜色即为天空的颜色。由此可知,在 YOLOv8s 网络的每层特征图中可能存在着冗余特征,于是便探究网络的宽度对模型整体性能的影响。其次,提出 CSPPF 模块,该模块是由空间金字塔池化模块( SPPF) 改进而来。CSPPF 模块有效避免了对图像区域裁剪、缩放而导致图像失真的问题;同时解决了卷积神经网络对图相关重复特征提取的问题,提高了生产候选框的速度,节省计算成本。通过引入 CBAM 注意力机制,使得网络将注意力放在更加感兴趣的区域上,从而提高模型检测性能。最后,使用数据集增强策略缓解了数据集较为紧张的问题,提高了目标检测性能。

图片

  • FFC3 模块

在小目标检测领域中,多尺度表示特征非常重要。在众多特征融合(即多尺度特征)方法中,较常见的方法为 FPN、PANet、BiFPN 等,这些方法往往将卷积神经网络的不同层连接以实现特征融合。本研究寻求在更加细粒度的层次上提高多尺度特征表示能力,因此舍弃了 YOLOv8 特征提取网络中原有的 C2f 模块,提出了新的 FFC3 模块,与网络尺度的多尺度特征融合方法不同的是,FFC3 能在更细粒度层次上实现多尺度特征融合。FFC3 模块的引入能够在不增加网络计算量的前提下,进一步提高网络融合多尺度特征的能力,使得网络能在更加细粒度的层次上融合多尺度特征,解决了目标检测网络经过多次卷积后小目标物体特征丢失的问题,提高机场飞鸟小目标检测性能,FFC3 模块的结构如图 3 所示。

图片

  • CSPPF 模块

在机场鸟类检测任务中,可能会遇到阴天、多云、雨雪和沙尘暴等复杂天气的影响,此时检测鸟类容易受到复杂天气背景的影响,使用原 YOLOv8模型容易漏检或误检,为提升网络目标检测性能而引入了注意力机制。注意力机制能在复杂图像中快速确定感兴趣的区域,使该区域获取更多的权重,因此使得网络更加专注于这些区域,从而获得更有价值的细节信息。注意力机制还使得网络在算力资源不足的情况下将更多的算力分配给上述区域,从而提高网络的运行效率。在飞鸟检测中,注意力机制使得模型关注鸟类目标的关键特征,而降低图像上其他区域的权重,从而提高目标检测性能。提出融合 CBAM 注意力机制的 SPPF 模CS块,即PPF 模块。CSPPF 模块的结构如图 4 ( a) 所示。在进行空间金字塔池化操作之前,首先让特征图通过 CBAM 注意力机制,这样输出的特征图便对图像中更加关键的信息赋予更高的权重,提高网络处理图像的效率。CBAM 注意力机制结合了空间注意力模块(spatial attention module, SAM) 和通道注意力模块(channel attention module, CAM),如图 4(b)所示。特征图首先通过通道注意力模块加权,具体流程为,输出特征图首先通过并行的最大池化层和平均池化层,将特征图大小从原来的C×H×W (C为通道数,H为高,W 为宽),变为C×1×1,然后经过共享 MLP 模块,在该模块中,它先将通道数压缩为原来的1/R(其中 R 为减少率) 倍,再扩张到原通道数,经过 ReLU 激活函数得到两个激活后的结果。将这两个输出结果进行逐元素相加,再通过一个Sigmoid 激活函数得到通道注意力模块的输出结果,再将这个输出结果乘以原图,变回C×H×W的大小。

图片


数据集增强策略

由于在机场飞鸟数据集中有一只或少数几只飞鸟的情况,存在一张图片中只,而整个数据集大小仅5354张图片,所以应用数据增强算法来扩充数据集,以增强小飞鸟目标检测模型的泛化性。本次研究应用的数据增强算法为翻转(上下、左右翻转)、旋转(可指定旋转的度数)、图像缩放(可指定缩放的尺度大小)、随机裁剪以及 Mosaic 数据增强。Mosaic 数据增强可以在模型的每次迭代之前将 4 张训练集图片进行随机裁剪,拼接为一张图片来执行本轮次的训练。这种方法极大丰富了训练数据的多样性,扩充了样本数量。最终提高模型的泛化性和鲁棒性。Mosaic 数据增强效果图如图 5所示。

图片


实验结果

改进 YOLOv8s 模型的训练结果如图 7 所示。在训练的前50轮中,模型的 mAP@ 50 曲线震荡较为明显,在这段时间内,模型的训练集和验证集损失下降较快。在 50 轮之后模型的 mAP@ 50、P、R曲线逐渐趋于平缓,不再有明显的震荡出现,验证集和训练集损失也由剧烈震荡下降变为平缓下降。训练过程中没有出现明显的过拟合和欠拟合现象。

图片

模型的训练过程中验证集模型上的精度进行对比,结果如图 8(a)所示。在约50个训练轮次之后,改进 YOLOv8s 在验证集上的 mAP@ 50 值要优于原模型。再用训练好的模型在4张测试集图片上进行前向推理,模型成功检测到4张图片中的全部飞鸟实例,其中,图8 ( b) 两张图片中的鸟类目标较小,图 8(c)两张图片中的鸟类目标较大。

图片

  • 消融实验

消融实验经常被应用于神经网络的实验中以用来验证某一模块或者某一改进对网络的影响,可其核心是控制变量。本次实验的消融实验结果如表3所示。从表3可以看出,引入的3项改进最终提高了模型的mAP@ 50、FPS,降低了模型的参数量及权重大小。相比于改进前的YOLOv8s模型,改进后的模型 mAP@ 50 提高了0. 015,FPS 提高的最明显,提高了 8 帧/ s,参数量从原来的11. 1 M 降低为4. 50 M,模型的权重大小也得到了很大的降低,从原来的22. 6 MB降低为9. 40 MB。仔细分析消融实验的结果发现,FFC3模块的引入对网络提升准确率有着较大的影响;降低模型的通道数使得模型在很少降低准确率的前提下,大大降低模型的参数量、计算量和权重大小,同时促进了模型推理速度的提升;而CSPPF 模块的引入,不仅提高了精度,而且进一步提升了网络的推理速度,使网络可达每秒可处理32张图片的优秀成绩。

图片

  • 对比实验

将改进后的YOLOv8s模型与其他深度学习目标检测模型做了对比,实验结果如表4所示。对比实验所用数据集为本研究改进的机场飞鸟数据集,实验过程软硬件环境配置和超参数配置与3. 2节保持一致。改进 YOLOv8s 模型在所有模型中的 mAP@ 50值最高,为0. 820。检测速度最快的是YOLOv4-tiny,其FPS值高达 67 帧/ s,但值得注意的是,其mAP@ 50值的大小仅有本文方法的60. 5% 。RT-DETR是目标检测领域较新的模型,但其mAP@50比改进YOLOv8s低 0. 159。改进YOLOv8s的模型权重大小是所有模型当中最小的,这样使得改进YOLOv8s模型容易部署在内存资源受限制的计算平台上。相比于其他模型的参数量和计算量,改进YOLOv8s的参数量和计算量也达到了不错的成绩。其参数量控制在4. 50 M;计算量最低,为12. 1。综上,改进YOLOv8s模型在下列模型中的性能表现维持在较高的水平。改进后YOLOv8s模型能够应用于机场飞鸟视觉检测系统,以辅助机场驱鸟设备进行决策。

图片


结论

针对人工机场飞鸟检测精度低速度慢,雷达监测成本高的问题,提出基于图像的深度学习机场飞鸟检测方法,得到如下结论。 

(1)在机场跑道附近部署分布式监控设备,对跑道及其附近空域进行实时监控,将改进YOLOv8s算法部署至中央处理设备上对从监控设备传来的图像数据执行目标检测任务,模型对机场飞鸟检测的正确率达到0. 820,且FPS达到32帧/ s,符合实时目标检测任务的要求。改进YOLOv8s模型相比其他模型,准确率更高,检测速度也相对较快。并且模型大小和参数量较低,达到模型轻量化的目的。后续研究应当设计更精确、更快速的目标检测算法,同时将目标跟踪算法应用到鸟类探测中去,以提高对飞鸟的精确感知能力。

(2)为了在更细粒度层次上进行特征融合,提出了FFC3模块,该方法增强了网络特征融合能力,提高了模型的检测精度。

(3)改进了机场飞鸟数据集并使用多种数据增强算法。讨论了机场飞鸟数据集中鸟类实例大小、颜色、背景特征,针对网络宽度做了改进,降低了模型的参数量、权重大小与计算量。

(4)将CBAM注意力机制引入到快速空间金字塔池化模块 SPPF 中,使网络更加专注于重要信息,提高网络检测性能。

(5)将改进YOLOv8算法与机场防鸟设备相结合,形成自动化的防鸟系统。这种集成能使得设备能够更精确、更快速地跟踪和定位鸟类目标,提供对鸟类行为和习性的洞察。分析这些数据甚至可以更精准地了解机场附近鸟类的活动习性,从而能够采取更有效的鸟类威慑措施。目标探测和驱鸟工作的结合是当下民用航空领域的一个重要趋势,它通过更快速和准确的检测飞鸟,加速了防鸟工作的进行,确保了民用航空运行的安全和效率。


如果您有兴趣了解更多关于先进的算法模型的使用方法等,欢迎关注我们,我们将继续为大家带来更多干货内容!

相关文章:

机场安全项目|基于改进 YOLOv8 的机场飞鸟实时目标检测方法

目录 论文信息 背景 摘要 YOLOv8模型结构 模型改进 FFC3 模块 CSPPF 模块 数据集增强策略 实验结果 消融实验 对比实验 结论 论文信息 《科学技术与工程》2024年第24卷第32期刊载了中国民用航空飞行学院空中交通管理学院孔建国, 张向伟, 赵志伟, 梁海军的论文——…...

卸载干净 IDEA(图文讲解)

目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history,表示同时删除 IDEA 本地缓存以及历史。 Delete I…...

云端微光,AI启航:低代码开发的智造未来

文章目录 前言一、引言:技术浪潮中的个人视角初次体验腾讯云开发 Copilot1.1 低代码的时代机遇1.1.1 为什么低代码如此重要? 1.2 AI 的引入:革新的力量1.1.2 Copilot 的亮点 1.3 初学者的视角1.3.1 Copilot 带来的改变 二、体验记录&#xff…...

工程师了解的Lua语言

1、关于lua语言 lua语言是用于嵌入式领域当中的一门脚本语言,其实在大学期间,我也没有接触过这门语言,但是在未来的发展之路当中,需要用到这门语言,所以在我的知识库当中添加这门语言知识是必要而且重要的,…...

著名的软件都用什么语言编写?

你是否曾经好奇,身边那些耳熟能详的软件,它们究竟是用什么语言编写的?从操作系统到浏览器、从数据库到编程工具,每一款软件背后都承载着开发者们的智慧与技术选型。那么,究竟哪些编程语言成就了这些世界级的软件呢&…...

设计模式 结构型 代理模式(Proxy Pattern)与 常见技术框架应用 解析

代理模式(Proxy Pattern)是一种常见的设计模式,在软件开发中有着广泛的应用。其核心思想是通过创建一个代理类来控制对另一个对象的访问,从而实现对目标对象功能的扩展、保护或其他附加操作。 一、核心思想 代理模式的核心思想在…...

Linux环境(CentOs7) 安装 Node环境

Linux环境(CentOs7) 安装 Node环境 使用NodeSource安装Node.js 1、清除缓存(可选但推荐) sudo yum clean all2、添加NodeSource仓库,根据你想要安装的Node.js版本,选择相应的NodeSource安装脚本。例如&am…...

Tailwind CSS 实战:现代登录注册页面开发

在前端开发中,登录注册页面是最常见的需求之一。一个设计精美、交互友好的登录注册页面不仅能提升用户体验,还能增加产品的专业度。本文将详细介绍如何使用 Tailwind CSS 开发一个现代化的登录注册页面。 设计思路 在开始编码之前,我们先明…...

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注:因为本人也是第一次接入广告与支付SDK相关的操作,网上也查了很多教程,很多也都是只言片语或者缺少一些关键步骤的说明,导致本人也是花了很多时间与精力踩了很多的坑才搞定,发出来也是希望能帮助到其他人在遇到相似问…...

反向传播算法的偏置更新步骤

偏置的更新步骤 假设我们有一个三层神经网络(输入层、隐藏层和输出层),并且每层的激活函数为 sigmoid 函数。我们需要更新隐藏层和输出层的偏置。以下是详细的步骤: 1. 计算误差项(Error Term) 输出层的…...

条款47:请使用 traits classes 表现类型信息(Use traits classes for information about types)

条款47&#xff1a;请使用 traits classes 表现类型信息 1.1 提出问题 想一想&#xff0c;下面的功能如何实现&#xff1f;&#xff08;可以查看std::advance源码&#xff09; template<typename IterT, typename DistT> void advance(IterT& iter, DistT d); /…...

yolov5和yolov8的区别

1. yolov5有建议框&#xff0c;yolov8没有建议框 2. yolov5标签中有自信度&#xff0c;而yolov8没有自信度。因为自信度是建议框和真实框的交集 3. yolov5有三个损失函数&#xff0c;回归问题&#xff1a;预测框和建议框的损失(中心点宽高偏移量的损失)&#xff1a;CIOUFocal…...

Redis 实现分布式锁

文章目录 引言一、Redis的两种原子操作1.1 Redis 的原子性1.2 单命令1.3 Lua 脚本1.4 对比单命令与 Lua 脚本 二、Redis 实现分布式锁2.1 分布式锁的概念与需求2.1.1 什么是分布式锁&#xff1f;2.1.2 分布式锁的常见应用场景 2.2 基于 Redis 的分布式锁实现2.2.1 锁的获取与释…...

django StreamingHttpResponse fetchEventSource实现前后端流试返回数据并接收数据的完整详细过程

django后端环境介绍&#xff1a; Python 3.10.14 pip install django-cors-headers4.4.0 Django5.0.6 django-cors-headers4.4.0 djangorestframework3.15.2 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 总环境如下&#xff1a; Package Version -…...

SpringSpringBoot常用注解总结

目录 1. SpringBootApplication 2. Spring Bean 相关 2.1. Autowired 2.2. Component,Repository,Service, Controller 2.3. RestController 2.4. Scope 2.5. Configuration 3. 处理常见的 HTTP 请求类型 3.1. GET 请求 3.2. POST 请求 3.3. PUT 请求 3.4. DELETE 请…...

24.小R的随机播放顺序<字节青训营-中等题>

1.题目 问题描述 小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌&#xff0c;播放后将其从歌单中移除。如果歌单中还有歌曲&#xff0c;则会将当前第一首歌移到最后一首。这个过程会一直重复&#xff0c;直到歌单中没有任何歌曲。 例如&#xff0c;给定歌单 [5, …...

【QT】增删改查 XML 文件的类

使用单例类模板实现的对XML文件的节点、属性、文本进行增删改查,可以直接用! 直接POST代码,比较简单好用。 针对以下格式的xml文件比较适用 每个节点的名称都不一样,节点包含了各种属性。 <?xml version="1.0" encoding="UTF-8"?> <config…...

Linux-掉电保护方案

参考链接 https://blog.csdn.net/pwl999/article/details/109411919硬件设计 设备树 驱动程序 #include <linux/module.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/gpio.h>int irq;//中断服务函数 irqreturn_t tes…...

php获取字符串中的汉字

在PHP中&#xff0c;可以使用正则表达式来提取字符串中的汉字。汉字通常位于Unicode范围\u4e00-\u9fa5之内&#xff0c;因此可以使用preg_match_all函数配合适当的正则表达式来实现。 以下是一个PHP代码示例&#xff0c;它会从给定的字符串中提取出所有的汉字&#xff1a; fu…...

java: JDK isn‘t specified for module ‘product-service‘问题解决

目录 问题 解决方法 1.打开File->Project Structure... 2.将Project SDK修改为17 Oracle OpenJDK 17.0.12&#xff0c;并Apply&#xff0c;OK 问题 添加module后报错&#xff1a;java: JDK isnt specified for module product-service 查看pom.xml文件也添加了对应的JDK…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...