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

计算机视觉研究院 | Drone-YOLO:一种有效的无人机图像目标检测

本文来源公众号“计算机视觉研究院,仅用于学术分享,侵权删,干货满满。

原文链接:Drone-YOLO:一种有效的无人机图像目标检测

无人机图像中的目标检测是各个研究领域的重要基础。然而,无人机图像带来了独特的挑战,包括图像尺寸大、检测对象尺寸小、分布密集、实例重叠和照明不足,这些都会影响对象检测的有效性。

01 前景概要

今天分享中,我们提出了Drone-YOLO,这是一系列基于YOLOv8模型的多尺度无人机图像目标检测算法,旨在克服与无人机图像目标检测相关的特定挑战。为了解决大场景大小和小检测对象的问题,我们对YOLOv8模型的颈部组件进行了改进。具体而言,我们采用了三层PAFPN结构,并结合了一个使用大规模特征图为小型目标量身定制的检测头,显著增强了算法检测小型目标的能力。此外,我们将夹层融合模块集成到颈部上下分支的每一层中。这种融合机制将网络特征与低级特征相结合,提供了关于不同层检测头处物体的丰富空间信息。我们使用深度可分离进化来实现这种融合,它平衡了参数成本和大的感受野。在网络主干中,我们使用RepVGG模块作为下采样层,增强了网络学习多尺度特征的能力,并优于传统的卷积层。

所提出的Drone-YOLO方法已在消融实验中进行了评估,并在VisDrone2019数据集上与其他最先进的方法进行了比较。结果表明,我们的Drone-YOLO(L)在目标检测的准确性方面优于其他基线方法。与YOLOv8相比,我们的方法在mAP0.5指标上实现了显著改进,VisDrone2019测试增加了13.4%,VisDrone 2019-val.增加了17.40%。此外,只有5.25M参数的参数高效Drone-YOLO(tiny)在数据集上的性能与9.66M参数的基线方法相当或更好。这些实验验证了Drone-YOLO方法在无人机图像中目标检测任务中的有效性。

02 背景

在过去的15年里,随着无人机控制技术的逐渐成熟,无人机遥感图像以其成本效益和易获取性成为低空遥感研究领域的重要数据源。在此期间,深度神经网络方法得到了广泛的研究,并逐渐成为图像分类、目标检测和图像分割等任务的最佳方法。然而,目前应用的大多数深度神经网络模型,如VGG、RESNET、U-NET、PSPNET,主要是使用手动收集的图像数据集开发和验证的,如VOC2007、VOC2012、MS-COCO,如下图所示。

与人工拍摄的真是图像相比,从无人机获得的图像显示出显著差异。这些无人机拍摄的图像如下:

除了这些图像数据特征外,无人机遥感目标检测方法还有两种常见的应用场景。第一个涉及使用大型台式计算机进行飞行后数据处理。无人机飞行后,捕获的数据在台式计算机上进行处理。第二个涉及飞行过程中的实时处理,无人机上的嵌入式计算机实时同步处理航空图像数据。该应用程序通常用于无人机飞行期间的避障和自动任务规划。因此,应用神经网络的目标检测方法需要满足每个场景的不同要求。对于适用于台式计算机环境的方法,需要高检测精度。对于适用于嵌入式环境的方法,模型参数需要在一定范围内才能满足嵌入式硬件的操作要求。在满足操作条件后,该方法的检测精度也需要尽可能高。

因此,无人机遥感图像中目标检测的神经网络方法需要能够适应这些数据的特定特征。它们的设计应满足飞行后数据处理的要求,可以提供高精度和召回率的结果,或者它们应设计为具有较小规模参数的模型,可以部署在嵌入式硬件环境中,用于无人机上的实时处理。

03 新框架设计介绍

下图显示了我们提出的Drone-YOLO(L)网络模型的架构。该网络结构是对YOLOv8-l模型的改进。在网络的主干部分,我们使用RepVGG结构的重新参数化卷积模块作为下采样层。在训练过程中,这种卷积结构同时训练3×3和1×1卷积。在推理过程中,两个卷积核被合并为一个3×3卷积层。这种机制使网络能够在不影响推理速度或扩大模型大小的情况下学习更稳健的特征。在颈部,我们将PAFPN结构扩展到三层,并附加了一个小尺寸的物体检测头。通过结合所提出的三明治融合模块,从网络主干的三个不同层特征图中提取空间和信道特征。这种优化增强了多尺度检测头收集待检测对象的空间定位信息的能力。

如下图所示,我们提出了sandwich-fusion(SF),这是一种三尺寸特征图的新融合模块,它优化了目标的空间和语义信息,用于检测头。该模块应用于颈部自上而下的层。该模块的灵感来自YOLOv6 3.0【YOLOv6 v3.0: A Full-Scale Reloading】中提出的BiC模型。SF的输入如图所示,包括主干较低阶段、相应阶段和较高阶段的特征图。目标是平衡低级特征的空间信息和高级特征的语义信息,以优化网络头部对目标位置的识别和分类。

04 项目落地效果

项目中,我们使用Ubuntu 20.04作为操作系统,Python 3.8、PyTorch 1.16.0和Cuda 11.6作为软件环境。实验采用NVIDIA 3080ti图形卡作为硬件。神经网络的实现代码是在Ultralytics 8.0.105版本的基础上修改的。在项目中的训练、测试和验证过程中使用的超参数保持一致。训练epoch被设置为300,并且输入到网络中的图像被重新缩放到640×640。在下面列出的一些结果中,所有YOLOv8和我们提出的Drone-YOLO网络都具有来自我们检测结果。在这些落地中,这些网络都没有使用预训练参数。

在嵌入式应用实验中,我们使用NVIDIA Tegra TX2作为实验环境,该环境具有256核NVIDIA Pascal架构GPU,提供1.33 TFLOPS的峰值计算性能和8GB的内存。软件环境为Ubuntu 18.04 LTS操作系统、NVIDIA JetPack 4.4.1、CUDA 10.2和cuDNN 8.0.0。

在VisDrone2019-test测试效果

基于NVIDIA Tegra TX2的结果

Drone-YOLO实际效果

 

左边是Yolov8的结果,可以看出红色框中大部分目标没有检测出来。

论文地址:www.mdpi.com/2504-446X/7/8/526

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

相关文章:

计算机视觉研究院 | Drone-YOLO:一种有效的无人机图像目标检测

本文来源公众号“计算机视觉研究院”,仅用于学术分享,侵权删,干货满满。 原文链接:Drone-YOLO:一种有效的无人机图像目标检测 无人机图像中的目标检测是各个研究领域的重要基础。然而,无人机图像带来了独…...

[C#]使用OpencvSharp去除面积较小的连通域

【C介绍】 关于opencv实现有比较好的算法,可以参考这个博客OpenCV去除面积较小的连通域_c#opencv 筛选小面积区域-CSDN博客 但是没有对应opencvsharp实现同类算法,为了照顾懂C#编程同学们,因此将 去除面积较小的连通域算法转成C#代码。 方…...

联邦学习目前面临的挑战以及解决方案

学习目标: 联邦学习目前面临的挑战以及解决方案 学习内容: 联邦学习是一种新兴的人工智能基础技术,它在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的…...

Day60:WEB攻防-XMLXXE安全无回显方案OOB盲注DTD外部实体黑白盒挖掘

目录 XML&XXE-传输-原理&探针&利用&玩法 XXE 黑盒发现 XXE 白盒发现 XXE修复防御方案 有回显 无回显 XML&XXE-黑盒-JSON&黑盒测试&类型修改 XML&XXE-白盒-CMS&PHPSHE&无回显 知识点: 1、XXE&XML-原理-用途&…...

解锁网络安全新境界:雷池WAF社区版让网站防护变得轻而易举!

网站运营者的救星:雷池WAF社区版 ️ 嘿朋友们!今天我超级激动要跟你们分享一个神器——雷池WAF社区版。这个宝贝对我们这帮网站运营者来说,简直就是保护伞! 智能语义分析技术:超级侦探上线 先说说为啥我这么稀饭它。雷…...

RabbitMQ安装详细教程

(一)在Windows系统上安装Erlang的步骤如下: 打开Erlang的官方下载页面,选择适合你的Windows系统的版本进行下载。 下载完成后,双击运行下载的.exe文件,进入Erlang的安装向导。 在安装向导中,按…...

如何快速写出一个完整的测试用例

测试用例是为了验证软件功能或需求而设计的一组测试输入、执行条件和预期结果。编写测试用例的目的是确保测试过程全面高效、有据可查。 一般来说,编写测试用例的流程包括以下几个步骤: 分析需求:阅读需求文档,理解软件的功能和业…...

Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue 一、实验 1.环境 (1)主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 1…...

数学中的各种符号虚数概念

max i∈S​A i ​ ≥ ∑ i∈S​B i​. 这个不等式表达的意思是对于集合 S 中的任意非空子集,子集中的最大的 A_i(A 的元素)的值都大于等于子集中所有 B_i(B 的元素)的值的总和。换句话说,集合 S 中的最大…...

什么是中间件

中间件是指在应用程序与操作系统之间提供服务的软件,它可以隐藏底层操作系统的复杂性,为应用程序提供各种实用的服务,以便应用程序更好地实现业务逻辑。中间件通常提供如下几种服务: 数据库连接:中间件可以为应用程序提…...

RabbitMQ面经 手敲浓缩版

保证可靠性 生产者 本地事务完成和消息发送同时完成 通过事务消息完成 重写confirm在里面做逻辑处理 确保发送成功(不成功就放入到重试队列) MQ 打开持久化确保消息不会丢失 消费者 改成手动回应 不重复消费 生产者 保证不重复发送消息 消费者…...

解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理

随着信创国产化改造持续推进,越来越多的金融机构不断采购信创服务器、PC、办公软件等,其 IT 基础设施逐渐迁移至国产化 IT 架构下。为支撑国产化 IT 基础设施的正常使用和集中管理运维,某金融机构数据中心的微软Active Directory(…...

Django的js文件没有响应(DOMContentLoaded)

问题出现的原因是因为当浏览器解析到“script”标签并执行其中的JavaScript代码时,页面上的DOM元素尚未完全加载和渲染。这意味着,当尝试通过document.getElementById(‘create-theme-button’)获取元素时,该元素还不存在,导致add…...

滑动窗口代码模板

代码模板: //滑动窗口伪代码 class Solution { public:int minWindow(string s) {// 同方向移动,起始的时候,都位于 0,表示我们定义搜索区间为 [left, right) ,此时区间为空区间int left 0;int right 0;while(right…...

SpringBoot实现邮箱验证

目录 1、开启邮箱IMAP/SMTP服务,获取授权码 2、相关代码 1、使用配置Redis(用于存储验证码,具有时效性) 2、邮箱依赖和hutool(用于随机生成验证码) 3、配置Redis和邮箱信息 4、开启Redis服务 5、编写发送…...

Mac安装Docker提示Another application changed your Desktop configuration解决方案

1. 问题描述 Mac安装Docker后,提示Another application changed your Desktop configuration,Re-apply configurations无效 2. 解决方案 在终端执行下述命令即可解决: sudo ln -sf /Applications/Docker.app/Contents/Resources/bin/docke…...

5分钟安装docker和docker compose环境

5分钟安装docker和docker compose环境 5分钟安装docker和docker compose环境环境介绍卸载docker环境安装docker安装docker compose 5分钟安装docker和docker compose环境 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑…...

leetcode热题100.跳跃游戏2

Problem: 45. 跳跃游戏 II 文章目录 题目思路复杂度Code 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: …...

【前端】CSS(引入方式+选择器+常用元素属性+盒模型+弹性布局)

文章目录 CSS一、什么是CSS二、语法规范三、引入方式1.内部样式表2.行内样式表3.外部样式 四、选择器1.选择器的种类1.基础选择器:单个选择器构成的1.标签选择器2.类选择器3.id 选择器4.通配符选择器 2.复合选择器1.后代选择器2.子选择器3.并集选择器4.伪类选择器 五…...

迷茫下是自我提升

长夜漫漫,无心睡眠。心中所想,心中所感,忧愁当前,就执笔而下,写下这篇文章。 回忆过往 回想当初为啥学前端,走前端这条路,学校要求嘛,兴趣爱好嘛,还是为了钱。 时间带着…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...