机场项目:解决飞行物空间大小/纵横比、速度、遮挡等问题引起的实时目标检测问题...

news2024/11/24 10:43:17

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

be1cb032c509fcfe243d7cd6b3ef71ff.gif

6d1284c52ae47ff91cbd4f5c53ff80ce.gif

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

Column of Computer Vision Institute

最近在arXiv中翻阅到一遍基于Yolov8的飞机实时目标检测论文,当时通过研究其中的一些相关算法,并应用到实际场景。一个可用于迁移学习和进一步研究的飞行物体实时检测的广义模型,以及一个可供实施的精化模型。

17ec9d70b8fae0e44b911564a3e026aa.gif

01

前景概要

目前目标检测算法已经是非常成熟的一个领域成果物,而且到目前为止,已经有数不胜数的检测算法公开于世,尤其是Yolo系列,是目前市场中最常见的baseline。在项目中,也有遇到一些小目标检测,尤其该目标是物体空间大小或纵横比、速度、遮挡、杂乱背景等变化,造成目标检测不到,误检、漏检等现象。

通过大量阅读文献以及研究,发现有些方法还是在一定基础上提升效果,满足实际场景需求。

b1d3a6ac3999609f88fd2ab6c4a7e896.png

通过在包含40个不同类别飞行物体的数据集上训练第一个(广义)模型来实现这一点,迫使模型提取抽象特征表示。然后,我们在更能代表真实环境的数据集(即更高的遮挡率、较小的空间大小、旋转等)上使用这些学习到的参数进行迁移学习,以生成我们的精细模型。飞行物体的目标检测仍然具有挑战性,这是由于物体空间大小/纵横比、速度、遮挡和聚集背景的变化较大。

fc0001881de4a475d043ffa0b47c339c.gif

02

背景前要

最近看新闻发现国外,发生的许多事件表明了无人机的恶意使用。在过去的几个月里,有报道称,走私者试图通过携带小型爆炸物的无人机进行暗杀,向州立监狱运送毒品,并监视美国边境巡逻队等一些其他消息。虽然研究表明,无人机的使用预计将呈指数级增长,但检测技术尚未提供可靠准确的结果。无人机和小型无人机具有隐身能力,由于其电磁信号小,可以避免被大多数现代雷达系统探测。它们体积小,机动性强,噪音低。这一点,加上访问的便利性,为无人机继续成为现代战争和非法活动的组成部分提供了自然的激励。

30e907e4bf5d4af60f15a755904f3bc1.png

【跑到出现坑洼段】

还有就是在机场中,很多无人机、或则天空中的鸟类以及跑到上出现的异物,都会影响飞机正常的起飞。通过在塔楼或其他建筑上投放使用AI目标检测应用,可以在一定程度上大量减少人力的投入,以及高效率护航飞机起飞落地!

1555768efa18769a681daf8ab12b031d.png

【通过人力搜索清楚】

目前,虽然已经提出了无线电和声学检测等方法作为解决方案,但目前已知它们是不准确的。这促使在任何这样的检测系统中集成视觉检测器。我们现在可以通过数字塔实现实时物体检测,以监控人员和机动车辆,但目前还不知道是否能实现无人机和小飞行物体检测。

a666a68980763355b922bc7ccca976d3.png

在这种环境中的探测是具有挑战性的,因为从杂乱的沙漠背景和距离进行探测。物体距离塔楼越远,检测和分类就越困难,因为物体在输入空间向模型传递的信号就越少。

ec9d23bbea693a2b4f04744ff1179df8.gif

03

新算法研究

为了解决所提出的一些挑战,同时最大限度地提高性能,我们利用当前最先进的YOLOv8,试图在推理速度和mAP之间找到最佳折衷。虽然YOLOv8被认为是最新的技术,但尚未提供官方文件。

be26fefd0df0b1b774b4c7473ab616b2.png

因此,我们对YOLOv8所适应的新架构和功能进行了深入的解释。最终的广义模型实现了0.685的mAP50-95和50 fps的1080p视频的平均推理速度。最终改进的模型保持了这种推理速度,并实现了0.835的改进mAP50-95。

模型选择和评估

我们评估了模型的小型、中型和大型版本,以确定推理速度和mAP50-95之间的最佳折衷,然后优化超参数。小型、中型和大型模型分别具有(11151080、25879480和43660680)参数和(225、295和365)层。在训练模型后,我们发现小型和中型模型之间的mAP50-95显著增加(0.05),但中型和大型模型之间的delta不多(0.002)。我们还发现,在验证集上,小型、中型和大型分别在4.1、5.7和9.3毫秒时推断。然而,我们最初的目标是在1080p的情况下达到30到60帧之间的平均推理速度。当在多个1080p高清视频上测试中等大小的模型时,我们观察到19.75毫秒(每秒50帧)的平均总速度(处理前速度(0.5毫秒)+推理速度(17.25毫秒)+处理后速度(2毫秒)),这与我们的主要目标一致。

这导致我们选择中等尺寸的模型来开始调整超参数。由于缺乏计算资源,我们为每组超参数评估10个epoch,作为额外时期潜在性能的指标。我们观察到,这一假设是正确的,因为与默认的超参数(0.027)相比,使用最优超参数集的训练在epoch 100处实现了更好的性能我们基于验证mAP50-95选择最佳超参数,批量为16,随机梯度下降(SGD),动量为0.937,权重衰减为0.01,分类损失权重λcls=1,box损失权重λbox=5.5,分布焦点损失权重λdfl=2.5。经过163个epoch的训练,我们在1080p视频上获得了0.685的mAP50-95和50 fps的平均推理速度。

fa70a5376028adfca976faf7f20688c8.gif

04

实战和可视化

在网上搜索了F-14和F-18战斗机,并可视化了特征激活地。从左到右,展示了CSPDarkNet53主干的四个阶段。

a9580ccb3870b4a8c5104e8846f62df0.png

通用模型也对一些数据进行了检测,效果如下图:

71590540ec04d5ffdf3e563c725fc650.png

然后通过迁移学习的精细模型,效果如下:

17d86e2108cb9ebcdda165ddd0c746b9.png

9e4cb5d72cae3b4dc258d6ffb51a99a0.png

传统算法实际检测结果

d66aeeac0f533b4856906e9c51e14373.png

优化后实际检测结果

如果将精度模型用于近距离飞机或其他飞行物的检测,效果不是特别友好了,所以后续还是要结合之前的算法,增量迭代优化更鲁邦的算法。下面是从网上下载的某机场飞机起飞全过程的实时检测结果:

© THE END 

5262388dcb9cd7f541946a5e0b1d717d.gif

转载请联系本公众号获得授权

b0a47b2a04abdd737d326edc2fa18b13.gif

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

88a492c092883008f394d90bca0d3999.png

 往期推荐 

🔗

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

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

相关文章

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料 效果一览 基本…

MySQL | JDBC连接数据库

一、什么是JDBC 概念: JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发…

八种架构演进

日升时奋斗,日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征:应用服务和数据库服务器公用一台服务…

HRS--人力资源系统(Springboot+vue)--打基础升级--(四)新增员工信息

今天的更新:在员工信息界面,点新增按钮,弹出一个请填写新增员工信息的窗口,然后保存数据 1. 先来看下窗口设计样式 嗯,感觉这窗口又细又长,果然排版不是我的强项,这里的新增属于管理员的权限界面…

SQL助你面大厂(N日留存率)

在一些游戏中比较关注的就是留存率,随着王者的更新,画质在不断的优化,可是匹配机制确实一成不变,导致很多人逐渐退游,那么我们的王者的官方是怎么知道有这么多人退游么?退游了是相当于删除玩家对应的那条数…

第 7 章 排序算法(4)(插入排序)

7.7插入排序 7.7.1插入排序法介绍: 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 7.7.2插入排序法思想: 插入排序(Insertion Sorting)的基本思想是:把n个待排…

【令牌桶算法与漏桶算法】

💧 令牌桶算法与漏桶算法 \color{#FF1493}{令牌桶算法与漏桶算法} 令牌桶算法与漏桶算法💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专…

机器学习深度学习——NLP实战(情感分析模型——RNN实现)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——NLP实战(情感分析模型——数据集) 📚订阅专栏:机器学习&…

玩转红黑树:手把手教你实现和理解红黑树

玩转红黑树:手把手教你实现和理解红黑树 引言一、红黑树的定义1.1、理论知识1.2、代码实现1.3、代码优化 二、红黑树的旋转2.1、理论知识2.2、代码实现 三、红黑树插入节点3.1、理论知识3.2、代码实现 四、红黑树删除节点4.1、理论知识4.2、代码实现 五、红黑树的查…

04_17页回收问题和水位线和swap交换空间和oom,内存性能微调

前言 应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。 当应用程序读写了这块虚拟内存,CPU 就会去访问这个虚拟内存, 这时会发现这个虚拟内存没有映射到物理内存, CPU 就会…

基于STM32CubeMX和keil采用SPI通信实现轮询方式读写W25Q128获取设备ID

文章目录 前言1. SPI通信1.1 SPI硬件接口与连线1.2 SPI传输协议1.3 SPI的数据传输 2. W25Q1282.1 片选2.2 控制指令2.3 时序图分析 3. STM32CubeMX配置3.1 引脚配置3.2 时钟配置3.3 SPI配置3.4 工程配置 4. 代码编写4.1读ID函数 总结 前言 最近使用通信比较多,包含…

多仓库手机端erp进销存pc/h5开源版开发

多仓库手机端erp进销存pc/h5开源版开发 以下是多仓库手机端ERP进销存PC/H5的功能列表: 仓库管理:包括仓库的新增、编辑、删除、查询等功能,可以管理多个仓库的库存情况。 商品管理:可以对商品进行新增、编辑、删除、查询等操作&a…

【JavaSE】面向对象之多态

文章目录 多态的概念多态实现条件重写向上转型和向下转型向上转型向下转型 避免在构造方法中调用重写的方法 多态的概念 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 多态实现条件 必须要…

通过LD_PRELOAD绕过disable_functions

LD_PRELOAD 在UNIX的动态链接库的世界中,LD_PRELOAD就是这样一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态…

PANGOLIN写字

效果: 代码: #include <iostream> #include <pangolin/pangolin.h>// pangolin 绘制文字demousing namespace std;int main() {//创建一个窗口pangolin::CreateWindowAndBind("PangolinShowText", 640, 480);// 定义字体pangolin::GlFont * text_font …

⛳ TCP 协议详解

目录 ⛳ TCP 协议详解&#x1f3a8; 一、TCP / IP 协议的分层模型&#x1f3d3; 1.1、应用层&#x1f9f8; 1.2、传输层&#x1f52e; 1.3、网络层&#x1f3af; 1.4、链路层 &#x1f3ed; 二、HTTP 报文传输原理&#x1f945; 2.1、HTTP 报文传输&#x1f48e; 2.2、封装和分…

【Linux取经路】解析环境变量,提升系统控制力

文章目录 一、进程优先级1.1 什么是优先级&#xff1f;1.2 为什么会有优先级&#xff1f;1.3 小结 二、Linux系统中的优先级2.1 查看进程优先级2.2 PRI and NI2.3 修改进程优先级2.4 进程优先级的实现原理2.5 一些名词解释 三、环境变量3.1 基本概念3.2 PATH&#xff1a;Linux系…

操作系统练习:在Linux上创建进程,及查看进程状态

说明 进程在执行过程中可以创建多个新的进程。创建进程称为“父进程”&#xff0c;新的进程称为“子进程”。每个新的进程可以再创建其他进程&#xff0c;从而形成进程树。 每个进程都有一个唯一的进程标识符&#xff08;process identifier&#xff0c;pid&#xff09;。在L…

games101-windows环境配置(CMake+vcpkg+VS2019)

下载工具 安装CMake 安装vcpkg 安装vs2019 安装 eigen3 opencv 在vcpkg安装目录下&#xff0c;使用Windows Power Shell运行下面脚本 .\vcpkg.exe install eigen3:x64-windows .\vcpkg.exe install opencv:x64-windows安装过程中可能会用红色字体提示&#xff1a;Failed to…

七夕前的爱心代码!

话不多说上代码&#xff01; import turtle as tu import random as ratu.setup(1.0, 1.0) tu.screensize(1.0, 1.0) tu.bgcolor(black) t tu.Pen() t.ht() colors [pink, hotpink, deeppink, lightpink, red, purple, violet, magenta]def draw_star(x, y, size, color):t.…