VIT
模型整体流程
VIT主要就是引入transformer到CV中,众所周知transformer相当于是句子的输入,那么最主要的就是看如何将图像转为token序列,实际上是通过一个卷积层来实现的,如下图所示。
首先卷积层的卷积核大小为16 × 16,stride为16,卷积核的个数为768,通过卷积层之后,数据层由224 × 224 × 3 变成14 × 14 × 768 ,接着我们在高度和宽度方向上进行一个Flatten打平处理196 × 768,接着我们Concat一个Class Token(1 × 768),然后在加上Position Embedding(196 × 768 196\times 768196×768),再经过一个Dorpout层,在经过Transformer Encoder层(重复L次)。
下面的图很形象了:
其它细节
1、不加 cls字符结果区别不大
2、不加position embedding结果有下降,但是不大。
参考资料:
1、https://blog.csdn.net/abc13526222160/article/details/131228810
2、https://blog.csdn.net/qq_56591814/article/details/127358168
ChangeFormer
transformer引入图像领域后,变化检测领域就用tansfromer框架进行了设计。相当于搬砖了。
就是一些常规的操作,图像输入成token采用的仍然是VIT的方法。