swin transformer作为backbone
时间: 2023-11-27 08:05:41 浏览: 136
Swin-Transformer
Swin Transformer作为backbone在计算机视觉任务中具有很高的性能。它是一种基于Transformer的网络架构,通过将输入图像分割成多个Patch,并使用Transformer模块对这些Patch进行处理来提取特征。Swin Transformer的网络结构包括多个阶段(Stage),每个阶段都包含多个Swin Transformer块。
在Swin Transformer中,Patch Merging模块的作用是进行降采样,通过该模块后,特征图的形状会减小一倍,通道数会增加一倍。这个模块类似于YOLOX或Yolov5中的Fcous模块。Patch Merging模块存在于Stage2到Stage4中。
Swin Transformer的输入是一个H×W×3的图像,经过Patch Partition和Linear Embedding后,形状和通道维度会变为(H/4,W/4,48)。然后,类似于ResNet,不同的阶段对特征图进行降采样,形状缩小的同时通道数会扩展相同的倍数。这样做的目的是为了获得更大的感受野和丰富每个特征点对应原图上的特征信息。
Swin Transformer一共有四个模型,从Tiny、Small、Basic到Large。以Swin-T为例,其中的concat4×4、96-d、LN操作代表Patch Partition和Linear Embedding操作,其和Patch Merging模块一样。其中,concat4×4表示将高和宽下采样四倍,96-d表示Linear Embedding将通道数变为96,LN表示layer norm。win.sz代表window size即窗口大小,dim 96代表通过Swin-Transformer Block输出的特征通道维度为96,head 3代表Multi-Head Self-attention的头数。
此外,Swin Transformer还利用相对位置索引矩阵来计算注意力,通过对索引矩阵进行一系列操作,得到相对位置偏置表,用于Attention计算中的B矩阵。这个表是网络训练过程中真正要训练的参数,且只要窗口大小是固定的,一元索引矩阵的值就是固定的。
综上所述,Swin Transformer作为backbone在计算机视觉任务中通过分割图像为Patch并使用Transformer模块进行特征提取,具有较高的性能和灵活性。
#### 引用[.reference_title]
- *1* *2* *3* [检测分割算法改进(篇五) 引入Swin Transformer做检测网络Backbone](https://blog.csdn.net/qq_42308217/article/details/122861881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文