YOLO算法改进Backbone系列之:PVT

文章介绍了PyramidVisionTransformer(PVT),一种无CNN的Transformer架构,通过引入金字塔结构和SRA注意力层,提高了密集预测任务的性能,如目标检测和分割。相比于ViT,PVT具有更高的灵活性、通用性和计算效率,已在COCO上实现显著性能提升。
摘要由CSDN通过智能技术生成

摘要:尽管基于CNNs的backbone在多种视觉任务中取得重大进展,但本文提出了一个用于密集预测任务的、无CNN的的简单backbone——Pyramid Vision Transformer(PVT)。相比于ViT专门用于图像分类的设计,PVT将金字塔结构引入到transformer,使得可以进行下游各种密集预测任务,如检测、分割等。与现有技术相比,PVT有如下优点:(1)相比于ViT的低分辨率输出、高计算复杂度、高内存占用,PVT不仅可以对图像进行密集划分训练以达到搞输出分辨率的效果(这对密集预测很重要),还可以使用一个逐渐缩小的金字塔来降低大feature maps的计算量;(2)PVT兼具了CNNs和Transformer的优点,使其成为一个通用的无卷积backbone,可以直接替换基于CNN的backbone;(3)大量实验表明,PVT可以提高多种下游任务的性能,如目标检测、语义/实例分割等。比如,参数量相当的情况下, RetinaNet+PVT可以在COCO上达到40.4AP,而RetinNet+ResNet50只有36.3AP。作者希望PVT能够成为像素级预测任务的一种可供选择的backbone,并促进后续的研究。

CNN通过stack CNN 层来学习一个层次化的feature representations, 并且随着层数的增加,感受野越来越大, channel数越来越大,feature map尺寸越来越小,然后后边连接一到多个特定的任务网络来执行具体的任务;
如图b, 经典的ViT是一个柱式结构,实际上就是stack transformer block, 为了把NLP中的Transformer用到Vision中,惯用做法是通过网格化把feature转化为sequence of patches,每个patches的尺寸一般为32 x 32,
如图c即为所提出的Pyramid Vision Transformer (PVT), 也是首先把figure 转化为Sequence of patches, 从结构来说也是学习一个层次化的representation,只不过基本的building block 已经由 Conv. 替换为 Attention module.
在这里插入图片描述

PVT和ViT都是纯Transformer的模型,没有任何卷积操作,而两者主要的不同在于PVT引入了特征金字塔结构。在ViT中,使用的是传统Transformer,其输入与输出尺寸相同。由于资源限制,ViT的输出只能是一个比较粗糙的feature map,如1616、3232,相应的其输出步幅也比较低,如16步长、32步长。结果就导致ViT很难直接用于那些对分辨率要求比较高的密集预测任务。PVT通过引入渐进缩减金字塔打破了Transformer的这种限制,可以像传统CNN backbone那样生成多尺度feature map。此外,还设计了一个简单有效的注意力层—SRA,来处理高分辨率feature maps并减低计算复杂度和内存消耗。总的来说,PVT相比ViT有如下优势:
(1)更加灵活:可以在不同的stage生成不同分辨率、通道的feature maps
(2)更加通用:可以轻松嵌入到大多下游任务的模型中
(3)对计算、内存更加友好:可以处理高分辨率的feature maps
在这里插入图片描述
在这里插入图片描述

PVT模型变体配置信息
在这里插入图片描述

在YOLOv5项目中添加模型作为Backbone使用的教程:
(1)将YOLOv5项目的models/yolo.py修改parse_model函数以及BaseModel的_forward_once函数
在这里插入图片描述
在这里插入图片描述

(2)在models/backbone(新建)文件下新建pvt.py,添加如下的代码:
在这里插入图片描述

(3)在models/yolo.py导入模型并在parse_model函数中修改如下(先导入文件):
在这里插入图片描述

(4)在model下面新建配置文件:yolov5_pvt.yaml
在这里插入图片描述

(5)运行验证:在models/yolo.py文件指定–cfg参数为新建的yolov5_pvt.yaml
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值