【论文笔记】DKTNet: Dual-Key Transformer Network for small object detection

引用格式】:Xu S, Gu J, Hua Y, et al. Dktnet: dual-key transformer network for small object detection[J]. Neurocomputing, 2023, 525: 29-41.

网址https://cczuyiliu.github.io/pdf/DKTNet%20Dual-Key%20Transformer%20Network%20for%20small%20object%20detection.pdf

目录

一、研究背景及意义

二、解决方案

1 创新点

1.1 双键机制

1.2 通道注意力机制

1.3 卷积运算替代全连接层

2 网络架构

2.1 双键机制

2.2 卷积计算QKV

3 Loss损失

3.1 区域建议网络损失

3.2 RoI池化层损失

三、实验结果及结论

1 消融实验

2 结论


一、研究背景及意义

    在计算机视觉领域,目标检测是一项核心任务,广泛应用于自动驾驶、智能监控、增强现实等实际场景。随着深度学习技术的快速发展,诸如Faster R-CNN、YOLO和SSD等目标检测方法取得了显著的进展。然而,小目标检测依然是一个极具挑战性的课题,特别是在复杂场景中,如遮挡、视角远近、背景相似等问题,导致传统的目标检测模型难以在低分辨率的小目标上取得良好的表现。

    为了解决这些问题,文中提出了一种新的Transformer网络架构——DKTNet(双键Transformer网络),专门用于提升复杂场景下的小目标检测性能。通过双键策略和通道注意力机制,提高了模型对小目标的敏感程度,解决了传统检测方法中由于小目标分辨率低、特征模糊导致的漏检和错检问题;同时通过卷积操作取代传统Transformer中的全连接层,减低了模型的复杂度,使得模型高效运行,拥有更好的实用性和可拓展性,适合在资源有限的实际环境中部署。

二、解决方案

1 创新点

1.1 双键机制

      提出了一种新的双键策略,通过同时沿着Query(Q)和Value(V)计算两个Keys(K1和K2),而不是传统的单键连接方法。这种双键整合方法提高了Q和V之间的关联性,使得特征提取更加精准。

1.2 通道注意力机制

     采用通道注意力机制替代传统的空间注意力机制。该方法通过关注特征图中的重要通道,增强了对关键特征的关注,并抑制了不相关或混淆的特征。

1.3 卷积运算替代全连接层

     引入了2D卷积和1D卷积运算,取代了传统Transformer中的全连接层,保持了局部上下文信息,同时降低了计算复杂度。

2 网络架构

    文中提出了一种名为DKTNet(Dual-Key Transformer Network)的双键变压器网络,专为复杂背景中的小物体检测任务设计。该网络的核心思想是通过双键策略和通道注意力机制来增强特征提取的能力,从而提高小物体检测的精度和鲁棒性。

    DKTNet以Faster R-CNN为基础,并结合了ResNet50和特征金字塔网络(FPN)作为主干网络来提取多尺度的特征图。然后,提出的双键变压器模块进一步对这些特征进行处理,以提升目标特征的辨识能力。具体地说,双键策略通过同时计算两条特征流的Key值,增强了Query(Q)和Value(V)之间的相关性。整个网络架构中还采用了卷积运算替代传统的全连接运算,以保持局部上下文信息,同时降低了计算复杂度。

2.1 双键机制

    传统的Transformer通过计算一个Key来关联Query(Q)和Value(V),而DKTNet提出了双键机制,分别沿着Q和V流计算两个Keys(K1和K2),然后将这两个Keys进行整合,以提高Q和V之间的相关性。

     双键机制通过结合不同的特征流,捕捉到更多维度的信息,增强特征表达能力,特别是针对小物体的特征细节,解决了复杂场景中小物体容易被背景干扰的问题。

    不同于常见的空间注意力机制,DKTNet采用通道注意力机制来处理特征图。它通过识别并增强特征图中的重要通道,抑制那些混淆的通道。

    在小物体检测中,重要特征通道的有效提取尤为重要,通道注意力机制帮助提高了对小物体特征的辨识度,使得网络能够更有效地关注到关键信息,忽略干扰。

2.2 卷积计算QKV

    传统Transformer通常采用全连接层来处理Q、K和V,而DKTNet则使用了2D卷积来捕捉局部细节,随后使用1D卷积进一步简化计算。

    2D卷积能够更好地保留图像特征的局部上下文信息,而1D卷积则大幅降低了网络的参数量和计算开销,同时保持较高的检测性能。该设计使得DKTNet在保证性能的前提下,提高了运算效率,适合资源受限的场景。

3 Loss损失

    DKTNet网络的损失函数主要基于Faster R-CNN的设计,结合了区域建议网络(RPN)和ROI池化层(RoIAlign)的输出,最终使用了两种损失函数来优化网络的分类和回归任务。这两种损失分别是分类损失(Classification Loss)和边界框回归损失(Bounding Box Regression Loss)。总损失是区域建议网络损失、RoI池化层损失两个部分的加和,用于共同优化DKTNet的目标检测性能。

  • LRPN是用于RPN(区域建议网络)的损失
  • LRoI是用于目标检测和边界框调整的损失。

3.1 区域建议网络损失

    RPN负责生成可能包含目标的候选区域,并初步调整目标的边界框。RPN损失包含两部分:

  1. 分类损失

    用于衡量RPN生成的候选框是否属于目标区域,使用二元交叉熵损失(binary cross-entropy loss)来计算。公式如下:

  • p_{i}是第i个候选框被预测为目标区域的概率
  • p_{i}^{*}是真实标签

      2.边界框回归损失

      边界框损失Lreg用于回归预测的目标边界框与真实边界框之间的差异,使用平滑L1损失计算:

  • t_{i}是RPN预测的边界框参数
  • t_{i}^{*}是真实的边界框参数

    最终,RPN损失定义为分类损失和回归损失的加权和:

3.2 RoI池化层损失

    RoI池化层将来自RPN的候选区域进一步处理,用于分类和边界框回归。RoI损失同样包含分类损失(Classification Loss)和边界框回归损失(Bounding Box Regression Loss),公式如下:

  • u:当前候选框对应的真实类别标签
  • p:Softmax分类器输出属于类别u的概率
  • t^{u}:表示真实边界框位置
  • v:表示预测的边界框位置
  • λ:当[u ≥ 1]时,λ为1,否则为0

三、实验结果及结论

  • 测试数据集:一般目标检测基准数据集PASCAL VOC 2007、安全帽佩戴数据集GDUT、SHW1和SHW2,均取自真实的建筑场景,并且大部分目标安全帽在图像中都占据较小区域。
  • 硬件配置:Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz; NVIDIA TITAN-XP GPU(12GB显存)
  • 训练配置:Batch Size为2,训练20轮;使用SGD优化器,动量值设置为0.9,用于加速梯度下降并抑制局部波动,权重衰减值为5 × 10^-4,用于防止过拟合并保持模型的鲁棒性;初始学习率设置为5 × 10^-3,每三轮衰减一次,衰减因子为0.33
  • 评估指标:精确率、召回率、AP平均精度、大目标的mAP(大于96×96像素)、中等大小目标的mAP(32×32到96×96像素之间)和小目标的mAP(小于32×32像素)

与Faster-Rcnn相比,大型目标得到了4-14%的提升,中型目标得到了7-15%的提升,小型目标得到了14-25%的提升

文中提出的方法,基本都可以实现最优或者次优的精度

1 消融实验

STL是指Swin Transformer Layer,它是一种基于Swin Transformer的模块,能够通过滑动窗口的方式处理图像的局部信息,同时有效聚合全局上下文信息,更适合小目标检测。

目标检测基准数据集PASCAL VOC 2007实验

第二、三行对比,证明了双键结构提高了性能

第三、四行对比,第四行对特征图进行了转置,以计算通道维度而非空间维度的全局自我注意力,效果有了一定提升

Conv1D和Conv2D参数数和FLOPS分别为56.16M、45.39M和167.38G、285.18G

从第二列和第三列使用双键可以减少背景对检测目标的干扰,从而提高检测精度。

第三列和第四列可以看出,使用通道式注意力捕捉特征的效果明显优于空间式注意力。

第四、五和六列可以看出,卷积代替全连接可以使效果进一步提升

2 结论

文中提出的DKTNet(Dual-Key Transformer Network)的双键变压器网络,专门针对复杂背景中的小目标检测任务进行优化。通过引入双键机制、通道注意力机制,以及采用卷积替代全连接计算,DKTNet在多个数据集上展示了优越的检测性能,尤其在小目标检测中表现出色。

  • 双键机制增强了特征流中Q和V的关联性,提高了特征提取能力,特别是在复杂背景下的小目标检测中表现出色。
  • 通道注意力机制有效选择和增强了关键特征通道,抑制了干扰特征,使模型能够更精确地识别小物目标。
  • 通过引入1D卷积,DKTNet降低了计算复杂度,在保持高精度的前提下提升了计算效率,适合在实际应用场景中部署。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本田汽车投资SiLC Technologies:携手共促自动驾驶技术新飞跃

SiLC Technologies获本田汽车投资:加速自动驾驶技术革新 近日,硅谷光子学初创公司SiLC Technologies宣布获得本田汽车的投资,这一合作标志着双方将共同推进自动驾驶技术领域的革新与发展。本田此次投资不仅体现了对SiLC Technologies技术实力的认可,也彰显了本田在自动驾驶…

MATLAB工具库:数据统计分析工具MvCAT、MhAST等

MATLAB工具库:数据统计分析工具MvCAT、MhAST等 工具1:Multivariate Copula Analysis Toolbox (MvCAT)MATLAB中运行 工具2:Multi-hazard Scenario Analysis Toolbox (MhAST) 参考 The University of California-软件库-Software 工具1&#xf…

【源码+文档】基于SpringBoot+Vue校园智慧迎新服务平台

🚩如何选题? 如何选题、让题目的难度在可控范围,以及如何在选题过程以及整个毕设过程中如何与老师沟通,这些问题是需要大家在选题前需要考虑的,具体的方法我会在文末详细为你解答。 🚭如何快速熟悉一个项目…

饮料瓶识别系统源码分享

饮料瓶识别系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision 研…

QSerialPort 串口通信示例

之前使用过MFC写过串口通信的示例,今年学了Qt,特意使用Qt写了串口通信的示例,发现比MFC要容易一些, MFC串口示例如下: Qt示例如下: Qt这个做的很简单,主要还是想验证一下api, 核心…

设计模式的学习

OO:Object-Oriented 面向对象 --- 《Head First设计模式》 这本书是用java写的,我是写C的,用C来写相关的代码 --- p2(第二页) #ifndef DUCK_H #define DUCK_H/*** brief The Duck class 鸭子类*/ class Duck { public:D…

如何让客户主动成为你的品牌大使

在销售领域,转介绍被公认为一把无坚不摧的利器,它不仅铸就了高成交率的辉煌,更以惊人的速度缩短了成交周期。一位精通转介绍艺术的销售员,其业绩自然熠熠生辉,工作之路亦显得游刃有余。 然而,面对这一宝藏…

Windows安装Linux子系统报错:WslRegisterDistribution failed with error: 0x8007019e

WslRegisterDistribution failed with error: 0x8007019e 报错截图如下图: 该处是由于没有安装Linux内核,因此需要安装。可前往官网查看详情:https://aka.ms/wslinstall 需要解决该问题,可参照官网方法(我没试过官网…

【操作系统考研】2进程管理(1)

在翻看操作系统知识框架的时候,对一些概念的理解还比较模糊,现在我来理清他们的关系。 操作系统、处理器、进程、线程、内存、存储器、设备、文件的关系 咱们可以把计算机系统想象成一个大工厂,来理解这些概念之间的关系。 操作系统&#xf…

【FPGA】面试八股

1.FPGA的底层资源有哪些 (1)可编程的逻辑资源 可编程的逻辑单元由查找表(LUT),数据选择器(MUX),进位链(Carry Chain)和触发器(Flip-Flop) (2&…

xmltodict 处理 XML 数据案例解析

简介:xmltodict 是一个用于将 XML 数据转换为 Python 字典的轻量级模块。它简化了 XML 数据的解析和处理,使得在 Python 中操作 XML 变得更加直观和方便。这个模块适合用于数据交换、配置文件解析等需要 XML 数据处理的场景。 历史攻略: loc…

ajax php

文章目录 get请求postget和post的异同点ajax原生步骤jquery步骤优点 php安装&#xff0c;后台处理脚本语言。 后端开发语言不能直接允许&#xff0c;必须放在服务器对对应的文件夹下运行。 如&#xff1a;wamp的对应服务器的文件夹是www get请求 <!DOCTYPE html> &l…

ArcGIS中分区统计栅格值前需要进行投影吗(在投影坐标系下进行吗),为什么?

最近&#xff0c;我接到了一个分区统计栅格数值前需要进行投影&#xff0c;或者说是必须需要在投影坐标系下进行吗的咨询。 答案是不需要刻意去变。 但是他又说他把地理坐标系下分区统计结果与投影坐标系下的分区统计结果分别做了一遍&#xff0c;并进行了对比&#xff0c;两个…

【数据结构与算法】排序算法

3.7 排序算法 概述 比较排序算法 算法最好最坏平均空间稳定思想注意事项冒泡O(n)O( n 2 n^2 n2)O( n 2 n^2 n2)O(1)Y比较最好情况需要额外判断选择O( n 2 n^2 n2)O( n 2 n^2 n2)O( n 2 n^2 n2)O(1)N比较交换次数一般少于冒泡堆O( n l o g n nlogn nlogn)O( n l o g n nlogn …

美化pytest运行:pytest-sugar

简介&#xff1a;pytest-sugar 是一个用于增强 pytest 测试框架的插件&#xff0c;它提供了美观的测试运行报告&#xff0c;使测试输出更加直观易读。通过简单的配置&#xff0c;开发者可以快速获得测试的状态、运行时间和其他关键信息。该模块特别适合于大型项目或团队合作&am…

[C#]winform部署官方yolov11-obb旋转框检测的onnx模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov11-obb&#xff08;You Only Look Once version 8 with Oriented Bounding Boxes&#xff09;是一种先进的对象检测算法&#xff0c;它在传统的Yolov3和Yolov4基础上进行了优化&#xff0c;加…

Python深度学习进阶与前沿应用:注意力机制、Transformer模型、生成式模型、目标检测算法、图神经网络、强化学习等

近年来&#xff0c;伴随着以卷积神经网络&#xff08;CNN&#xff09;为代表的深度学习的快速发展&#xff0c;人工智能迈入了第三次发展浪潮&#xff0c;AI技术在各个领域中的应用越来越广泛。为了帮助广大学员更加深入地学习人工智能领域最近3-5年的新理论与新技术&#xff0…

【重学 MySQL】六十、空间类型

【重学 MySQL】六十、空间类型 空间数据类型的分类空间数据类型的属性空间数据的表示方式空间数据的操作应用场景 在MySQL中&#xff0c;空间类型&#xff08;Spatial Types&#xff09;主要用于支持地理特征的生成、存储和分析。这些地理特征可以表示世界上具有位置的任何东西…

【书生浦语实战】MindSearch 部署到HuggingFace Space

结果速览 欢迎来玩&#xff1a;https://huggingface.co/spaces/LLyn/mindsearch_exercise 配置开发环境 使用github codespace 第一次使用github的codespace&#xff5e;本质上跟在intern studio一样&#xff0c;但是页面是vscode效果&#xff08;intern studio是linux cl…

Carsim报错总结及解决方法

1. simulink报错&#xff1a;vs_state 、StopMode无法识别 - matlab命令行窗口输入&#xff1a;vs_state -1&#xff0c;StopMode -1 2. Video变暗&#xff0c;无法点击 - 说明书中提示&#xff1a;如果输出文件不存在&#xff08;例如&#xff0c;在单击复制按钮创…