检测算法通常包括Backbone、Neck、Head等结构,屠榜的Swin Transformer当然也是可以被作为Backbone的,如下图所示:
在撸代码之前,需要对Swin-Transformer的各个模块有清晰的了解,下面首先是对每个模块的解析及整个网络结构的前向原理。需要注意一点,在Swin Transformer中,Patch需要理解为多通道的像素,即feater map上的一个像素点包含所有通道的值,而非一个token。
Patch Merging
- 该模块和YOLOX或Yolov5中的Fcous模块是大差小不差。存在于Stage2 ~ Stage4中,其作用主要是进行降采样,通过该模块后,feature map的会被shape降采样一倍,channel翻倍。其原理图如下: