目前这个系列会开两个方向, cv transformer 和OCR方向。
Transformer方向
OCR方向
- DBnet解读【链接】(正在制作中。。。)
- PP_OCR【链接】(待续)
- SRN【链接】
- read like human【链接】
整体介绍:
CvT: Introducing Convolutions to Vision Transformers,刚发不久的一篇文章,最近Transformer很多,之所有现在选这一篇是因为方法简洁高效,性能在现在大神云集的Transformer算法里非常有竞争力。另感觉swin-trans源码非常碎,操作繁琐,所以更喜欢这一篇。
Cvt论文原文【链接】
Cvt 解读代码【链接】(论文里的代码链接无效,找了个star很多的)
整体流程图:
整体改进非常简单,
- 通过卷积7*7获得conv embedding。
- 通过深度卷积进行conv proj,即将特征转化成query ,value,key向量。这种转化方式可以见下
CVT配置
可以对比途中的CVT13配置信息来看给CVT初始化的各个参数。整体结构应该分为三个阶段。刚看的可以跳过这一些配置。
num_classes,
s1_emb_dim = 64,
s1_emb_kernel = 7,
s1_emb_stride = 4,
s1_proj_kernel = 3,
s1_kv_proj_stride = 2,
s1_heads = 1,
s1_depth = 1,
s1_mlp_mult = 4,
s2_emb_dim = 192,
s2_emb_kernel = 3,
s2_emb_stride = 2,
s2_proj_kernel = 3,
s2_kv_proj_stride = 2,
s2_heads = 3,
s2_depth = 2,
s2_mlp_mult = 4,
s3_emb_dim = 384,
s3_emb_kernel = 3,
s3_emb_stride = 2,
s3_proj_kernel = 3,
s3_kv_proj_stride = 2,
s3_heads = 6,
s3_depth = 10,
s3_mlp_mult = 4,
dropout = 0.
CVT代码主函数