计算机视觉研究院 | 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∈SA i ≥ ∑ i∈SB 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.伪类选择器 五…...
迷茫下是自我提升
长夜漫漫,无心睡眠。心中所想,心中所感,忧愁当前,就执笔而下,写下这篇文章。 回忆过往 回想当初为啥学前端,走前端这条路,学校要求嘛,兴趣爱好嘛,还是为了钱。 时间带着…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
