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


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

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

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

相关文章

【USRP】教程:在Macos M1(Apple芯片)上安装UHD驱动(最正确的安装方法)

Apple芯片 前言安装Homebrew安装uhd安装gnuradio使用b200mini安装好的路径下载固件后续启动频谱仪功能启动 gnu radio关于博主 前言 请参考本文进行安装,好多人买了Apple芯片的电脑,这种情况下,可以使用UHD吗?答案是肯定的&#…

【C++数据结构——内排序】希尔排序(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 1. 排序算法基础概念 2.插入排序知识 3. 间隔序列(增量序列)的概念 4. 算法的时间复杂度和空间复杂度分析 5. 代码实现技巧(如循环嵌套、索引计算) 测试说明 我的通关代码: 测试结…

每天看一个Fortran文件(9)

最后的输出变量是f 这里面调用了一个关键的子程序,spectral_nudging_filter_fft_2d_ncar 这是一个谱逼近的二维快速傅里叶变换过滤的程序。 二维的滤波这个还不是很清楚,找找技术文件看下 超详细易懂FFT(快速傅里叶变换)及代码…

Centos源码安装MariaDB 基于GTID主从部署(一遍过)

MariaDB安装 安装依赖 yum install cmake ncurses ncurses-devel bison 下载源码 // 下载源码 wget https://downloads.mariadb.org/interstitial/mariadb-10.6.20/source/mariadb-10.6.20.tar.gz // 解压源码 tar xzvf mariadb-10.5.9.tar.gz 编译安装 cmake -DCMAKE_INSTA…

【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜

AI的两次寒冬:从感知机困局到深度学习前夜 引用(中英双语) 中文: “第一次AI寒冬,是因为感知机局限性被揭示,让人们失去了对算法可行性的信心。” “第二次AI寒冬,则是因为专家系统的局限性和硬…

数据结构9.3 - 文件基础(C++)

目录 1 打开文件字符读写关闭文件 上图源自&#xff1a;https://blog.csdn.net/LG1259156776/article/details/47035583 1 打开文件 法 1法 2ofstream file(path);ofstream file;file.open(path); #include<bits/stdc.h> using namespace std;int main() {char path[]…

下载ffmpeg执行文件

打开网址&#xff1a;Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了&#xff0c;需要通过命令行进行使用&#xff1a; ffmpeg命令行使用参考&#xff1a; ffmpeg 常用命令-CSDN博客

网络安全抓包

#知识点&#xff1a; 1、抓包技术应用意义 //有些应用或者目标是看不到的&#xff0c;这时候就要进行抓包 2、抓包技术应用对象 //app,小程序 3、抓包技术应用协议 //http&#xff0c;socket 4、抓包技术应用支持 5、封包技术应用意义 总结点&#xff1a;学会不同对象采用…

国产编辑器EverEdit - 两种删除空白行的方法

1 使用技巧&#xff1a;删除空白行 1.1 应用场景 用户在编辑文档时&#xff0c;可能会遇到很多空白行需要删除的情况&#xff0c;比如从网页上拷贝文字&#xff0c;可能就会存在大量的空白行要删除。 1.2 使用方法 1.2.1 方法1&#xff1a; 使用编辑主菜单 选择主菜单编辑 …

可以输入的下拉框(下拉框数据过大,页面卡死)

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在项目中&#xff0c;有些下拉框的数据过于庞大&#xff0c;这样页面有时候会卡死&#xff0c;在vue3中常用的组件库element-puls中有个组件可以避免 在项目中&#xff0c;有些需求要求下拉框选择的同…

基于Python的音乐播放器 毕业设计-附源码73733

摘 要 本项目基于Python开发了一款简单而功能强大的音乐播放器。通过该音乐播放器&#xff0c;用户可以轻松管理自己的音乐库&#xff0c;播放喜爱的音乐&#xff0c;并享受音乐带来的愉悦体验。 首先&#xff0c;我们使用Python语言结合相关库开发了这款音乐播放器。利用Tkin…

谷粒商城-高级篇完结-Sleuth+Zipkin 服务链路追踪

1、基本概念和整合 1.1、为什么用 微服务架构是一个分布式架构&#xff0c;它按业务划分服务单元&#xff0c;一个分布式系统往往有很多个服务单元。由于服务单元数量众多&#xff0c;业务的复杂性&#xff0c;如果出现了错误和异常&#xff0c;很难去定位 。主要体现在&#…

ollama+FastAPI部署后端大模型调用接口

ollamaFastAPI部署后端大模型调用接口 记录一下开源大模型的后端调用接口过程 一、ollama下载及运行 1. ollama安装 ollama是一个本地部署开源大模型的软件&#xff0c;可以运行llama、gemma、qwen等国内外开源大模型&#xff0c;也可以部署自己训练的大模型 ollama国内地…

pandas系列----DataFrame简介

DataFrame是Pandas库中最常用的数据结构之一&#xff0c;它是一个类似于二维数组或表格的数据结构。DataFrame由多个列组成&#xff0c;每个列可以是不同的数据类型&#xff08;如整数、浮点数、字符串等&#xff09;。每列都有一个列标签&#xff08;column label&#xff09;…

Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果

目录 Collider 2D 定义&#xff1a; 类型&#xff1a; Rigidbody 2D 定义&#xff1a; 属性和行为&#xff1a; 运动控制&#xff1a; 碰撞检测&#xff1a; 结合使用 实用检测 延伸拓展 1、在Unity中优化Collider 2D和Rigidbody 2D的性能 2、Unity中Collider 2D…

Java实现UDP与TCP应用程序

三、Java实现UDP应用程序 3.1 InetAddress类 java.net.InteAddress类是用于描述IP地址和域名的一个Java类&#xff1b; 常用方法如下&#xff1a; public static InetAddress getByName(String host)&#xff1a;根据主机名获取InetAddress对象public String getHostName()…

信号处理-消除趋势项

matlab 版本 python 版本 import numpy as np import matplotlib.pyplot as plt from matplotlib import rcParams# 设置中文字体 rcParams[font.sans-serif] [SimHei] # 设置默认字体为黑体 rcParams[axes.unicode_minus] False # 解决负号显示问题def compute_time(n, f…

Linux 安装 meilisearch

前言 由于项目部分数据需要用到搜索引擎进行检索&#xff0c;但是服务器资源有限&#xff0c;安装elasticsearch过于笨重&#xff0c;不太符合现实情况&#xff0c;所以选择了meilisearch作为搜索引擎来使用&#xff0c;目前使用接近一年&#xff0c;运行良好。 安装 在/usr/…

【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1. 二叉排序树的基本概念 2. 二叉排序树节点结构体定义 3. 创建二叉排序树 4. 判断是否为二叉排序树 5. 递归查找关键字为 6 的结点并输出查找路径 6. 删除二叉排序树中的节点 测试说明 通关代码 测试结果 任务描述 本关任务&a…

TCP与DNS的报文分析

场景拓扑&#xff1a; 核心路由配置&#xff1a; 上&#xff08;DNS&#xff09;&#xff1a;10.1.1.1/24 下(WEB)&#xff1a;20.1.1.1/24 左&#xff08;client&#xff09;&#xff1a;192.168.0.1/24 右(PC3)&#xff1a;192.168.1.1/24Clint2配置&a…