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

目标检测:视觉系统中的CNN-Transformer融合网络

一、背景

无人机(UAVs)在城市自动巡逻中发挥着重要作用,但它们在图像识别方面面临挑战,尤其是小目标检测和目标遮挡问题。此外,无人机的高速飞行要求检测系统具备实时处理能力。

为解决这些问题,我们提出了一种新的实时目标检测网络(RTD-Net),它结合了卷积神经网络(CNN)和Transformer的优势。RTD-Net特别设计了特征融合模块(FFM)和高效卷积Transformer块(ECTB),以增强小目标和遮挡目标的检测能力。同时,轻量级特征提取模块(LEM)确保了网络的高效运行,满足实时性需求。

我们的实验表明,RTD-Net在UAV图像数据集上实现了高精度和高速度的检测性能,且在嵌入式设备上也表现出良好的实时检测能力,为智能城市监控提供了一种有效的技术解决方案。

二、相关工作

无人机(UAV)在智能监控和城市巡逻中的应用日益增多,它们为自动目标检测提供了新的视角。然而,UAV图像的目标检测面临几个挑战:

  1. 小目标检测:由于UAV飞行高度较高,地面目标在图像中呈现较小,难以检测。
  2. 目标遮挡:城市环境中的遮挡物,如树木和建筑物,会阻断目标的视觉连续性,影响检测性能。
  3. 实时性能要求:无人机的快速移动要求检测系统具备高速处理能力。

为了应对这些挑战,研究人员已经探索了多种方法:

  • 传统方法:早期的研究依赖于手工特征提取和机器学习分类器,如SIFT和SVM,这些方法依赖于专家知识且不够灵活。

  • 基于CNN的方法:随着深度学习的发展,基于CNN的方法已经成为主流。这些方法通过端到端学习提高了检测精度,但通常计算量大,难以满足实时性要求。

  • 基于Transformer的方法:最近,Transformer因其在处理序列数据中的长距离依赖关系的能力而受到关注。将其应用于图像检测,可以增强模型对遮挡目标的识别能力,但计算成本较高。

本研究提出的RTD-Net,通过结合CNN和Transformer的优势,旨在实现对UAV图像中小目标和遮挡目标的高效检测。我们通过设计轻量级特征提取模块和高效的Transformer块,减少了计算量,同时通过特征融合模块提升了小目标的检测性能。

三、提出的网络框架

为了提高无人机在复杂环境下的目标检测能力,我们提出了一个名为RTD-Net的实时目标检测网络,其整体结构如图1所示:
image.png

图1:RTD-Net体系结构概述

这个网络特别设计以应对小目标检测、遮挡目标识别和实时处理的需求。RTD-Net的关键组成部分包括:

1.RTD-Net概述

  • RTD-Net是一个单阶段检测网络,它直接从输入图像预测目标的位置和类别,然后通过非最大抑制(NMS)处理来获取最终检测结果。
  • 网络设计考虑了检测精度和速度的平衡,特别适用于资源受限的嵌入式设备。

2.轻量级特征提取模块(LEM):

LEM是网络的骨干部分,它使用同质多分支架构来减少计算量和参数数量。如图2所示,通过1x1的卷积核整合通道信息,然后通过3x3的卷积核进行特征提取,有效降低了模型的复杂性:

image.png

图2:LEM

3.高效卷积Transformer块(ECTB):

设计了一个基于CNN和变压器的ECTB,标准变压器块主要由MHSA层和线性层组成,如图3所示:
image.png

图3:不同变压器块的结构。(a)标准变压器块。(b)瓶颈变压器(BoT)块。©拟议的ECTB。

ECTB是网络的核心创新之一,它结合了CNN和Transformer的优势。通过引入卷积多头自注意力(CMHSA)机制,ECTB能够提取图像的全局特征,并通过上下文信息改善遮挡目标的识别。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.特征融合模块(FFM):

FFM基于双向特征金字塔网络(BiFPN)设计,用于融合不同层级的特征。通过特征融合,FFM增强了模型对小目标的检测能力,提高了特征的表达能力。

5.注意力预测头(APH):

  • APH采用了基于归一化的注意力模块(NAM),用于提高模型对复杂场景中目标的注意力集中能力。
  • APH通过通道和空间两个独立的维度来推断输入图像的注意力,如图4所示,并将其应用于输入特征图,以提升检测精度。
    image.png

图4:(a)通道注意机制。(b)空间注意机制

这些组件共同工作,使得RTD-Net能够在保持高检测精度的同时,满足UAV在资源受限环境中的实时性要求。

四、实验

为了全面评估RTD-Net的性能,我们在多个方面进行了实验,包括在自定义的UAV图像数据集和标准的MS COCO2017数据集上的评估,以及在嵌入式平台上的实时性能测试。

1.数据集准备:

我们收集并创建了一个包含9630张图像的UAV图像数据集,这些图像涵盖了不同的天气条件、光照环境和城市郊区背景。
image.png

数据集被分为训练集(60%)、验证集(20%)和测试集(20%),包含七种常见的地面目标类别:轿车、行人、摩托车、自行车、卡车、公交车和三轮车。

图像中的目标根据平均面积比例(AAR)被分为大、中、小三类,以模拟真实世界中UAV检测的挑战。

2.在UAV图像数据集上的结果:

我们使用平均精度(mAP)作为主要的评估指标,以衡量模型在不同类别和不同大小目标上的检测性能。RTD-Net在该数据集上达到了86.4%的mAP,超过了其他现有的最先进方法,同时在NVIDIA GTX1080Ti上实现了312帧/秒的高检测速度。

我们还进行了详尽的对比实验,将RTD-Net与多种最新的目标检测模型进行了比较,包括Faster R-CNN、SSD、YOLO系列等,证明了RTD-Net在检测精度和速度上的优势。

3.在MS COCO2017数据集上的结果:

为了测试RTD-Net的泛化能力,我们在标准的MS COCO2017数据集上进行了额外的评估。
RTD-Net在COCO2017数据集上的表现与UAV图像数据集上的表现一致,显示出良好的泛化能力和在不同场景下的适用性,COCO2017中的可视化结果:
image.png

4.嵌入式平台测试:

我们在NVIDIA Jetson TX2嵌入式平台上测试了RTD-Net的实时性能,这是评估其在实际UAV应用中的适用性的关键步骤。
image.png

  • 在不使用TensorRT优化的情况下,RTD-Net在TX2上达到了33.4帧/秒的检测速度,满足了实时检测的要求。
  • 使用TensorRT优化后,检测速度略有下降,但模型的检测精度提高了,证明了RTD-Net在资源受限设备上的实际应用潜力。

通过这些详细的实验,我们全面验证了RTD-Net在目标检测任务中的高性能,特别是在UAV视觉系统中的实际应用价值。

五、结论

本研究成功开发了一种名为RTD-Net的实时目标检测网络,专为无人机(UAV)视觉系统设计,以应对城市自动巡逻中的复杂挑战。通过精心设计的网络结构,包括轻量级特征提取模块(LEM)、高效卷积Transformer块(ECTB)和特征融合模块(FFM),RTD-Net在检测精度和速度上均取得了显著的性能。

  • 检测精度:在UAV图像数据集上,RTD-Net实现了86.4%的mAP,特别是在小目标和遮挡目标的检测上,相比现有技术有显著提升。
  • 实时性能:在NVIDIA Jetson TX2嵌入式设备上,RTD-Net展现了满足实时处理需求的能力,检测速度达到33.4帧/秒,证明了其在资源受限环境中的实用性。
  • 泛化能力:在MS COCO2017数据集上的测试进一步证实了RTD-Net良好的泛化能力,表明该模型不仅适用于特定的UAV视觉任务,也能泛化到其他目标检测场景。

总之,RTD-Net的有效性在多个层面得到了验证,其在智能监控和自动化巡逻等领域具有广泛的应用前景。未来的工作将探索该模型在更多样化的实际场景中的应用,并进一步优化其性能。

相关文章:

目标检测:视觉系统中的CNN-Transformer融合网络

一、背景 无人机(UAVs)在城市自动巡逻中发挥着重要作用,但它们在图像识别方面面临挑战,尤其是小目标检测和目标遮挡问题。此外,无人机的高速飞行要求检测系统具备实时处理能力。 为解决这些问题,我们提出…...

Turso:一个基于 libSQL的分布式数据库

Turso 是一个完全托管的数据库平台,支持在一个组织中创建高达数十万个数据库,并且可以复制到任何地点,包括你自己的服务器,以实现微秒级的访问延迟。你可以通过Turso CLI(命令行界面)管理群组、数据库和API…...

深度学习前沿 | TransNeXt:仿生聚合注意力引领视觉感知新时代

目录 1. 引言 2. 背景与挑战 3. TransNeXt 核心创新 3.1 像素聚合注意力(PAA) 3.2 长度缩放余弦注意力(LSCA) 3.3 卷积 GLU(ConvGLU) 4. 模型架构详解 5. 实验与性能评估 5.1 图像分类(I…...

C语言-函数-1

以下是我初学C语言的笔记记录,欢迎在评论区留言补充 一,函数分为几类 * 函数分为两类: 一类是库函数;一类是自定义函数 * 库函数: 系统自己带的,在使用时候,要用到头文件; 查询库函…...

卡尔曼滤波解释及示例

卡尔曼滤波的本质是用数学方法平衡预测与观测的可信度 ,通过不断迭代逼近真实状态。其高效性和鲁棒性,通常在导航定位中,需要融合GPS、加速度计、陀螺仪、激光雷达或摄像头数据,来提高位置精度。简单讲,卡尔曼滤波就是…...

openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解

1 先看openwrt时间,一定要保证时间和浏览器和服务器是一致的,不然无法更新 2 openwrt设置旁路由前先测试下,路由器能否ping通主路由,是否能够连接外网,好多旁路由设置完了,发现还不能远程好多就是旁路由本…...

Redis--预备知识以及String类型

目录 一、预备知识 1.1 基本全局命令 1.1.1 KEYS 1.1.2 EXISTS 1.1.3 DEL 1.1.4 EXPIRE 1.1.5 TTL 1.1.6 TYPE 1.2 数据结构以及内部编码 1.3 单线程架构 二、String字符串 2.1 常见命令 2.1.1 SET 2.1.2 GET 2.1.3 MGET 2.1.4 MSET 2.1.5 SETNX 2.2 计数命令 2.2.1 INCR 2.2.2…...

Redis 及其在系统设计中的作用

什么是Redis Redis 是一个开源的内存数据结构存储系统,可用作数据库、缓存和消息代理。它因其快速的性能、灵活性和易用性而得到广泛应用。 Redis 数据存储类型 Redis 允许开发人员以各种数据结构(例如字符串、位图、位域、哈希、列表、集合、有序集合…...

UEC++第10天|UEC++获取对象、RTTI是C++

最近在写UEC项目,这里写几个案例里的问题,还在学习阶段 1. 如何获取小鸟对象? void AFlappyBirdGameModeBase::BeginGame() { // 让管道动起来PipeActor->SetMoveSpeed();// 让小鸟开始飞行// 如何获取到小鸟对象APawn* Pawn UGameplayS…...

【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、markitdown概述1.1 markitdown介绍1.2 MarkItDown支持的文件1.3 为什么是Markdown?二、markitdown安装2.1 pip方式安装2.2 源码安装2.3 docker方式安装三、基本使用3.1 命令行方式3.2 可选依赖项配置3.3 插件方…...

爬虫-oiwiki

我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)つもり 计划/打算(2&a…...

强化学习核心原理及数学框架

1. 定义与核心思想 强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境(Environment)的持续交互来学习最优决策策略的机器学习范式。其核心特征为: ​​试错学习​​&#x…...

【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析

在现代Web应用开发中,身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案,其中Session/Cookie和JWT(JSON Web Token)是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…...

【基础】Node.js 介绍、安装及npm 和 npx功能了解

前言 后面安装n8n要用到,做一点技术储备。主要是它的两个工具:npm 和 npx。 Node.js介绍 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本,是一个基于 C…...

第53讲 农学科研中的AI伦理与可解释性——探索SHAP值、LIME等可解释工具与科研可信性建设之道

目录 一、为什么农学科研中需要“可解释AI”? ✅ 场景示例: 二、常见可解释AI工具介绍 1. SHAP(SHapley Additive exPlanations) 2. LIME(Local Interpretable Model-agnostic Explanations) 三、AI伦理问题在农学中的体现 🧭 公平性与偏见 🔐 数据隐私 🤖…...

助力网站优化利用AI批量生成文章工具提升质量

哎,有时候觉得写东西这事儿吧,真挺玄乎的。你看着那些大网站的优质内容,会不会突然冒出个念头——这些家伙到底怎么做到日更十篇还不秃头的?前阵子我蹲在咖啡馆里盯着屏幕发呆,突然刷到个帖子说现在用AI写文章能自动纠…...

Java语言的进化:JDK的未来版本

作为一名Java开发者,我们正处在一个令人兴奋的时代!Java语言正在以前所未有的速度进化,每个新版本都带来令人惊喜的特性。让我们一起探索JDK未来版本的发展方向,看看Java将如何继续领跑编程语言界!💪 &…...

SpringBootTest报错

Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or … 解决方案:在SpringTest注解中添加属性(classes )填写启动类 如我的启动类是MainApplication.class javax.websocket.server.ServerContainer no…...

Flask + ajax上传文件(二)--多文件上传

Flask多文件上传完整教程 本教程将详细介绍如何使用Flask实现多文件上传功能,并使用时间戳为上传文件自动命名,避免文件名冲突。 一、环境准备 确保已安装Python和Flask pip install flask项目结构 flask_upload/ ├── app.py ├── upload/ # 上传文…...

w~视觉~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327888 #几个论文 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a ca…...

Redis安装及入门应用

应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…...

NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve

//"dev": " NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve" // 修改后(Windows 适用) "dev": "vue-cli-service serve --openssl-legacy-provider" 升级 Node.js 到 v14,确保依赖…...

如何在 Postman 中,自动获取 Token 并将其赋值到环境变量

在 Postman 中,你可以通过 预请求脚本(Pre-request Script) 和 测试脚本(Tests) 实现自动获取 Token 并将其赋值到环境变量,下面是完整的操作步骤: ✅ 一、创建获取 Token 的请求 通常这个请求…...

上篇:深入剖析 BLE 底层物理层与链路层(约5000字)

引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…...

PostgreSQL 的 MVCC 机制了解

PostgreSQL 的 MVCC 机制了解 PostgreSQL 使用多版本并发控制(MVCC)作为其核心并发控制机制,这是它与许多其他数据库系统的关键区别之一。MVCC 允许读操作不阻塞写操作,写操作也不阻塞读操作,从而提供高度并发性。 一 MVCC 基本原理 1.1 M…...

【Pandas】pandas DataFrame dot

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析

摘要 本文聚焦于基于穿戴设备采集的加速度计数据,深入研究志愿者在日常活动中的行为特征,构建了多个数学建模框架,实现从身体活动监测、能耗预测、睡眠阶段识别到久坐预警等多个目标。我们依托于多源数据融合与机器学习模型,对人体活动状态进行识别与分析,为健康管理、行…...

Vivado版本升级后AXI4-Stream Data FIFO端口变化

Vivado 2017.4版本中异步AXI4-Stream Data FIFO升级到Vivado 2018.3后,IP管脚会发生变化,2018.3版中没有m_axis_aresetn和axis_data_count。 async_axis_fifo_8_1024 async_axis_fifo_8_1024 ( .s_axis_aresetn (I_do0_rstn ), // input wire…...

Linux424 chage密码信息 gpasswd 附属组

https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234...