TPH-YOLOv5:基于Transformer预测头的改进YOLOv5,用于无人机捕获场景的目标检测

本文主要是介绍TPH-YOLOv5:基于Transformer预测头的改进YOLOv5,用于无人机捕获场景的目标检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

        提出了TPH-YOLOv5。在YOLOv5的基础上,增加了一个预测头来检测不同尺度的目标。然后用Transformer Prediction Heads(TPH)代替原有的预测头,探索自注意机制的预测潜力。还集成了卷积块注意力模型(CBAM),用来发现密集对象场景中的注意力区域。为了实现所提出的TPH-YOLOv 5的更多改进,提供了一些有用的策略,如数据增强,多尺度测试,多模型集成和使用额外的分类器设计了跨层非对称Transformer(CA-Trans)来代替额外的预测头,同时保持该预测头的知识。该算法通过引入稀疏局部注意(SLA)模型,有效地捕获了附加头与其他头之间的非对称信息,丰富了其他头的特征。

        为了进一步提高TPH-YOLOv5的性能,在训练过程中采用了数据增强,这促进了对图像中对象的剧烈尺寸变化的适应性。在推理过程中加入了多尺度测试和多模型集成策略,使检测结果更有说服力。此外,通过可视化的故障情况下,提出的架构有很好的本地化能力,但具有较差分类能力,特别是在一些类似的类别,如“三轮车”和“遮阳篷三轮车”。为了解决这个问题,提供了一个自我训练的分类器(ResNet18),使用从训练数据中裁剪的图像块作为分类训练集。

创新点

        ·增加了一个预测头来处理对象的大规模方差。

        ·将Transformer Prediction Heads(TPH)集成到YOLOv5中,可以在高密度场景中准确定位对象。

        ·将CBAM集成到YOLOv5中,它可以帮助网络在具有大区域覆盖的图像中找到感兴趣的区域。

        ·使用自训练的分类器提高了对易混淆类别的分类能力。

TPH-YOLOv5

(1)Overview of YOLOv5

        YOLOv5有四种不同的型号,包括YOLOv5s,YOLOv5m,YOLOv5l和YOLOv5x。一般来说,YOLOv5分别使用CSPDarknet 53的架构,其中SPP层作为主干,PANet作为Neck和YOLO检测头。为了进一步优化整个体系结构,提供了最著名和最方便的一级探测器,选择它作为基线。

        当使用VisDrone2021数据集使用数据增强策略(Mosaic和MixUp)训练模型时,发现YOLOv5x的结果远远优于YOLOv5s,YOLOv5m和YOLOv5l,AP值的差距差距超过1.5%。尽管YOLOv5x模型的训练计算成本比其他三种模型都要高,但仍然选择使用YOLOv5x来追求最佳的检测性能。此外,根据无人机拍摄图像的特点,调整常用的光度失真和几何失真参数。

(2)TPH-YOLOv5

        TPH-YOLOv5的框架如图3所示。对原始YOLOv5进行了修改,使其专门用于VisDrone2021数据集。

Prediction head for tiny objects

        预测微小物体的头。增加了一个预测头用于微小物体检测。与其他三种预测头相结合,四头结构可以缓解剧烈的对象尺度变化带来的负面影响。如图3所示,添加的预测头(头1号)是从低级别、高分辨率的特征图中生成的,对微小物体更敏感。增加一个额外的检测头后,虽然计算量和内存开销增加,但微小目标检测的性能得到了很大的提高。

Transformer encoder block

        Transformer编码器块。用Transformer编码器块替换了原始版本YOLOv5中的一些卷积块和CSP瓶颈块。其结构如图4所示。与CSPDarknet53中的原始瓶颈块相比,Transformer编码器块可以捕获全局信息和丰富的上下文信息。每个Transformer编码器包含两个子层。第一子层是多头注意层,第二子层(MLP)是全连接层。在每个子层之间使用剩余连接。Transformer编码器块提高了捕获不同本地信息的能力。它还可以利用自我注意机制探索特征表征潜力。

        基于YOLOv5,只在头部分应用Transformer编码器块,形成Transformer Prediction Head(TPH)和主干的末端。因为网络末端的要素地图分辨率较低。在低分辨率特征地图上应用TPH可以减少昂贵的计算和存储开销。此外,当扩大输入图像的分辨率,有选择地删除一些TPH块在早期层,使训练过程可用。

Convolutional block attention module (CBAM):

        卷积块注意模块(CBAM)。CBAM是一个简单但有效的注意模块。它是一个轻量级的模块,可以集成到大多数著名的CNN架构中,并且可以以端到端的方式进行训练。CBAM在给定特征图的情况下,沿着通道和空间两个独立的维度顺序地推断注意力图,然后将注意力图与输入特征图相乘以执行自适应特征细化。CBAM模块的结构如图5所示。

        在无人机捕获的图像上,大面积的覆盖区域往往包含着易混淆的地理要素。利用CBAM提取注意区域,帮助TPH-YOLOv5抵抗混淆信息,将注意力集中到有用的目标对象上。

Ms-testing and model ensemble:

        Ms检验和模型集成。本文从模型集成的不同角度训练了五种不同的模型。在推理阶段,首先对单个模型执行ms-检验策略。ms-testing的实现细节有以下三步。

        1)将测试图像缩放至1.3倍。

        2)分别将图像缩小1倍、0.83倍和0.67倍。

        3)水平翻转图像。

        最后,将6幅不同尺度的图像输入到TPH-YOLOv5中,并利用NMS对预测结果进行融合。在不同的模型上,执行相同的ms检验操作,并通过WBF融合最后的五个预测,以获得最终结果。

Self-trained classifier:

        自我训练的分类器。使用TPH-YOLOv5对VisDrone 2021数据集进行训练后,对test-dev数据集进行测试,并通过可视化故障案例对测试结果进行分析,得出TPH-YOLOv5具有较好的定位能力,但分类能力较差的结论。进一步研究了混淆矩阵,并观察到一些硬类别(如三轮车和遮阳三轮车)的精度很低。因此,提出了一个额外的自训练分类器。首先,构建了TPH-YOLOv5,并使用TPH-YOLOv5对VisDrone 2021数据集进行了训练,然后对test-dev数据集进行了测试,通过可视化失败案例对测试结果进行了分析,得出了TPH-YOLOv 5具有良好的定位能力但分类能力较差的结论。

这篇关于TPH-YOLOv5:基于Transformer预测头的改进YOLOv5,用于无人机捕获场景的目标检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126696

相关文章

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.