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

这篇具有很好参考价值的文章主要介绍了TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        代码链接:GitHub - cv516Buaa/tph-yolov5

        如果进入不了github,就在这里下载,没有权重(免费的): https://download.csdn.net/download/weixin_44911037/86823848

        这是一篇针对无人机小目标算法比赛后写的论文,无人机捕获场景下的目标检测是近年来的热门课题。由于无人机总是在不同的高度上飞行,目标尺度变化剧烈,给网络优化带来了负担。此外,高速和低空飞行会使密集的物体产生运动模糊,这对目标识别带来了很大的挑战,如下图所示是无人机拍摄的场景,我们可以看出无人机拍摄的图片尺度变化确实非常大。

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

        

        在VisDrone2021测试挑战数据集上,提出的TPH-YOLOv5达到39.18% (AP),比DPNetV3(之前的SOTA方法)高出1.81%。在VisDrone2021 DET挑战赛中,TPH-YOLOv5获得第5名,与第一名相比差距不大。

        这篇文章所做的贡献在于:1、增加了一个检测头,用于更好地检测小目标,这是很多学者解决小目标的基本操作,但是这种操作会给模型行整体增加计算量。2、利用Transformer来更改原来yolov5的检测头,个人认为这部分是这篇比赛论文比较大的创新点,算是把Transformer和CNN结合起来。3、引入CBAM注意力机制模块,这部分算是一个比较常规的操作,毕竟注意力机制在目标检测中的作用还是比较大的,当然要放在合适的地方。4、提供了一些有用的策略,比如说数据增强,例如数据增强,多尺度测试(这种方法在第一定程度会增加最终的mAP)、使用了额外的分类器。5.使用了自训练分类器来提高对一些混淆类别的分类能力(这是针对相似车但是属于不同的类)。

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

 在这篇文章中,对于最后预测后处理使用集成的方式,我们可以从图中可以看出,他使用WBF和NMS的集成方式,对于WBF我在下图给出解释,相当于另外生成一种加权后的预测框,想了解更深可以看论文:https://arxiv.org/abs/1910.13302,当然具体怎么集成的还是需要看代码才能准确知道,后面有时间再看。TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测

TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测        至于网络模型的具体结构,如上图所示,在特征增强(NECK)中使用了Transfromer 的结构,因为transformer能够获得更大的感受。其实在一部分我还是比较困惑的,就是将3维的特征变成二维再转变成3维的不嫌麻烦吗?又或者这里面的结构数据会不会发生某种变化,当然这是我一直困惑的事情,我后面好好看看代码,看看它的模型结构。具体代码就是下面的。将特征层转成向量再转成特征层。

class TransformerBlock(nn.Module):
    # Vision Transformer https://arxiv.org/abs/2010.11929
    def __init__(self, c1, c2, num_heads, num_layers):
        super().__init__()
        self.conv = None
        if c1 != c2:
            self.conv = Conv(c1, c2)
        self.linear = nn.Linear(c2, c2)  # learnable position embedding
        self.tr = nn.Sequential(*(TransformerLayer(c2, num_heads) for _ in range(num_layers)))
        self.c2 = c2

    def forward(self, x):
        if self.conv is not None:
            x = self.conv(x)
        b, _, w, h = x.shape
        p = x.flatten(2).unsqueeze(0).transpose(0, 3).squeeze(3)
        return self.tr(p + self.linear(p)).unsqueeze(3).transpose(0, 3).reshape(b, self.c2, w, h)

         下面是就是一般的Transformer的编码结构。

        总体来说,这篇文章给我的一些参考意见就是使用Transformer来对小目标检测。

TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测文章来源地址https://www.toymoban.com/news/detail-409502.html

class TransformerLayer(nn.Module):
    def __init__(self, c, num_heads):
        super().__init__()
 
        self.ln1 = nn.LayerNorm(c)
        self.q = nn.Linear(c, c, bias=False)
        self.k = nn.Linear(c, c, bias=False)
        self.v = nn.Linear(c, c, bias=False)
        self.ma = nn.MultiheadAttention(embed_dim=c, num_heads=num_heads)
        self.ln2 = nn.LayerNorm(c)
        self.fc1 = nn.Linear(c, 4*c, bias=False)
        self.fc2 = nn.Linear(4*c, c, bias=False)
        self.dropout = nn.Dropout(0.1)
        self.act = nn.ReLU(True)
 
    def forward(self, x):
        x_ = self.ln1(x)
        x = self.dropout(self.ma(self.q(x_), self.k(x_), self.v(x_))[0]) + x
        x_ = self.ln2(x)
        x_ = self.fc2(self.dropout(self.act(self.fc1(x_))))
        x = x + self.dropout(x_)
        return x

到了这里,关于TPH-YOLOv5: 基于Transformer预测头的改进YOLOv5用于无人机捕获场景目标检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer

    YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer

    MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 论文:https://arxiv.org/abs/2110.02178 MobileviT是一个用于移动设备的轻量级通用可视化Transformer,据作者介绍,这是第一次基于轻量级CNN网络性能的轻量级ViT工作,性能SOTA!。性能优于MobileNetV3、CrossviT等网络。 轻量级卷积

    2024年02月13日
    浏览(7)
  • YOLOv5、YOLOv7改进之二十九:引入Swin Transformer v2.0版本

     前 言: 作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或

    2024年02月05日
    浏览(13)
  • 目标检测算法——YOLOv5/YOLOv7改进之结合Swin Transformer V2(涨点神器)

    目标检测算法——YOLOv5/YOLOv7改进之结合Swin Transformer V2(涨点神器)

    作者提出了将Swin Transformer缩放到30亿个参数的技术 ,并使其能够使用高达1536×1536分辨率的图像进行训练。在很多方面达到了SOTA。 目前,视觉模型尚未像NLP语言模型那样被广泛探索,部分原因是训练和应用中的以下差异: (1)视觉模型通常在规模上面临不稳定性问题; (2)

    2024年02月05日
    浏览(10)
  • 目标检测算法——YOLOv5/v7改进之结合最强视觉识别模块CotNet(Transformer)
  • Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow)

    Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow)

    效果一览 文章概述 Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow) 程序设计

    2024年02月07日
    浏览(5)
  • Transformer预测 | Pytorch实现基于Transformer的锂电池寿命预测(NASA数据集)

    Transformer预测 | Pytorch实现基于Transformer的锂电池寿命预测(NASA数据集)

    效果一览 文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t)=CtC0×100%, 其中,C0 表示额定容量,Ct 表示 t 时刻的容量。等到

    2024年02月07日
    浏览(8)
  • 改进YOLOv5:结合位置编码CoordConv,提升行人目标等预测能力 | 卷积加上坐标,从而使其具备了空间感知能力

    改进YOLOv5:结合位置编码CoordConv,提升行人目标等预测能力 | 卷积加上坐标,从而使其具备了空间感知能力

    众所周知,深度学习里的卷积运算是具有平移等变性的,这样可以在图像的不同位置共享统一的卷积核参数,但是这样卷积学习过程中是不能感知当前特征在图像中的坐标的,论文中的实验证明如下图所示。通过该实验,作者证明了传统卷积在卷积核进行局部运算时,仅仅能感

    2024年02月02日
    浏览(18)
  • 基于Transformer时间序列预测模型

    基于Transformer时间序列预测模型

      基于Transformer时间序列预测模型     特色:1、单变量,多变量输入,自由切换             2、单步预测,多步预测,自动切换            3、基于Pytorch架构            4、多个评估指标(MAE,MSE,R2,MAPE等)            5、数据从excel文件中读取,更换简单

    2024年02月09日
    浏览(9)
  • 学习笔记:基于Transformer的时间序列预测模型

    学习笔记:基于Transformer的时间序列预测模型

    为了便于读者理解,笔者将采取一个盾构机掘进参数预测的实际项目进行Transformer模型的说明。此外,该贴更多用于本人的学习记录,适合于对Transformer模型已经有一定了解的读者。此此次外,不定期更新中。 一些参考与图片来源: Transformer论文链接 transformer的细节到底是怎

    2024年02月03日
    浏览(76)
  • 基于CNN-Transformer时间序列预测模型

    基于CNN-Transformer时间序列预测模型

      基于CNN-Transformer时间序列预测模型   特色:1、单变量,多变量输入,自由切换             2、单步预测,多步预测,自动切换            3、基于Pytorch架构            4、多个评估指标(MAE,MSE,R2,MAPE等)            5、数据从excel文件中读取,更换简单

    2024年02月11日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包