资讯详情

一文细数73个Vision transformer家族成员

点击上方“3D视觉车间,选择星标

第一时间送达干货

e52ec6e28d6a1eddbd0743f1d886b74d.png

作者丨Smarter

来源丨Smarter

极市平台编辑

https://github.com/dk-liang/Awesome-Visual-Transformer

https://github.com/IDEACVR/awesome-detection-transformer

Image Classification

Uniform-scale

paper:https://arxiv.org/abs/2010.11929

code:https://github.com/google-research/vision_transformer

最简洁的Vision Transformer模型首先将图片分成16个x16的patch块,送入transformer encoder,第一个cls token的输出送入mlp head预测结果。

paper:https://arxiv.org/abs/2012.12877

code:https://github.com/facebookresearch/deit)

在ViT在此基础上增加了一个distillation token,巧妙的利用distillation token提高模型精度。

paper:https://arxiv.org/abs/2101.11986

code:https://github.com/yitu-opensource/T2T-ViT

将ViT的patch stem改为重叠滑窗,增强patch信息交流。

paper:https://arxiv.org/abs/2105.03889

code:https://github.com/pengzhiliang/Conformer

设计了一个CNN和Transformer利用双分支结构FCU两个分支的信息交流模块,两个分支的输出取平均用于推理。

paper:https://arxiv.org/abs/2103.00112

code:https://github.com/huawei-noah/noah-research/tree/master/TNT

在ViT对每一个patch进一步切分,用嵌套提升每一个patch局部区域的特征表达能力,然后局部提升的特征和patch特征相加送到下一个transformer block中。

paper:https://arxiv.org/pdf/2106.09681.pdf

code:https://github.com/facebookresearch/xcit

XCiT替换q和k的计算,从tokens做self-attention转变成channels纬度做self-attention(即通道协方差计算),复杂度从平方降低到线性。

paper:https://arxiv.org/abs/2103.11886

DeepViT发现随着深度的增加,ViT的self-attention会出现坍塌现象,DeepViT提出用Re-Attention来替代Self-Attention可以避免坍塌,训练更深ViT,Re-Attention在MHSA之后,增加了一个可学习的内容Matrix Transformation。

paper:https://arxiv.org/abs/2104.10858

code:https://github.com/zihangJiang/TokenLabeling

为了增加ViT局部区域的定位和特征提取能力,token labeling在每个patch输出增加了局部监督,token label通过预训练的特征提取器获得(本文可以看作是AutoEncoder CLS预训练方法)。因为需要额外的特征提取器,所以需要更多的计算资源(可以使用)MaskFeat方法改进)。

paper:https://arxiv.org/abs/2104.10935

code:https://github.com/jiangtaoxie/So-ViT

对patch输出的word token协方差池化,然后和解cls token整合输出,提高分类对局部区域的感知能力。

paper:https://arxiv.org/abs/2105.15075

DVT每张图片都应该有自己独特的图片token所以设计了一个级联tokens多个数量逐渐增加transformer,推理可以从不同层次推理transformer判断输出。

paper:https://arxiv.org/abs/2106.02034

code:https://dynamicvit.ivg-research.xyz/

通过预测模块来决定token剪掉少量不重要的重要性token,将剩余的token送入下一个block中。

paper:https://arxiv.org/abs/2108.03428

为了减少ViT计算上的冗余,PSViT提出token pooling和attention sharing两个操作,其中token pooling用来减少token的数量,attention sharing作用于相关性强的相邻层。

paper:https://arxiv.org/abs/2106.11297

code:https://github.com/google-research/scenic/tree/main/scenic/projects/token_learner

利用spatial attention提取最重要的token信息,减少token数量。

paper:https://arxiv.org/abs/2108.01390

增加一个representative token,通过global class attention evolution来判断patch token送入的重要性和重要性block中缓慢更新,重要性低的和representative token(由placeholder token)残差更新。其中vanilla transformer block的MSA输出和global cls attention重要权重相加。

paper:https://arxiv.org/abs/2106.15941

code:https://github.com/huawei-noah/CV-Backbones/tree/master/augvit_pytorch

为了避免ViT模型坍塌,AugViT设计了一个augmented shortcuts结构。具体,在MSA结构上并行增加两个分支,一个分支做shortcut操作,每个分支的另一个分支patch做augmentation增加特征表达的多样性,最后将三个分支的输出加在一起。

paper:https://arxiv.org/abs/2103.14899

code:https://github.com/IBM/CrossViT

两种不同的数量patch分别发送序列encoder中间,然后通过cross-attention两个分支cls token和patch token同时整合,最后两个分支cls token整合位置的输出结果。

paper:https://arxiv.org/pdf/2107.00651.pdf

code:https://github.com/microsoft/AutoML

AutoFormer动态的搜索transformer中每一层的embedding纬度、head数量、MLP比例和QKV纬度。

paper:https://arxiv.org/abs/2102.10882

code:https://github.com/Meituan-AutoML/CPVT

CPVT设计了一个PEG结构来替代PE(positional encoding),PEG通过feature token生成得到。

paper:https://arxiv.org/pdf/2106.05974v1.pdf

V-MoE用Sparse MoE来替换ViT中的MLP结构。Sparse MoE中的每个MLP分别保存在独立的device上,并且处理相同固定数量的tokens。

paper:https://arxiv.org/abs/2107.14467

code:https://github.com/CASIA-IVA-Lab/DPT

DPT设计另一个可形变的patch选取方式。

paper:https://arxiv.org/pdf/2202.07800.pdf

EViT通过计算每个patch token和cls token的相关性来决定重要程度,重要程度高的直接送入FFN,重要程度低的融合成一个token。

Multi-scale

paper:https://arxiv.org/abs/2103.14030

code:https://github.com/microsoft/Swin-Transformer

paper:https://arxiv.org/abs/2111.09883

为了更好的应用于det、seg等下游任务,需要对ViT进行多尺度设计。SwinT通过patch merging减少token的数量,另外设计了W-MSA结构,只对windows内的patch进行self-attention计算来降低计算量,为了增加不同windows之间的信息传递,设计了SW-MSA结构。

为了更好的扩大SwinT的模型容量和window的分辨率,SwinTv2重新设计了block结构。

  1. 用post-norm替代pre-norm

  2. 用cosine attention替代dot product attention

  3. 用log-spaced continuous relative position替代parameterized relative position

1和2使得SwinT更容易扩大模型容量,3使得SwinT更容易跨window分辨率迁移。

paper:https://arxiv.org/abs/2102.12122

code:https://github.com/whai362/PVT

paper:https://arxiv.org/pdf/2106.13797.pdf

PVT设计了一个多stage的多尺度架构,为了做stage之间的下采样,将MHSA改造成SRA,SRA中的K和V都下采样R^2倍。

PVTv2在PVTv1的基础上做了三点改进:

  1. 将SRA的下采样conv替换成average pooling

  2. 将不重叠的patch embedding替换成重叠的patch embedding

  3. 移除position encoding,并且在FFN中增加一个dwconv

1可以将PVT计算量降到线性,2可以获得更多局部连续的特征,3可以处理任意尺寸的图像。

paper:https://arxiv.org/abs/2104.13840

code:https://github.com/Meituan-AutoML/Twins

Twins沿用PVT的整体架构,并且用CPVT中的PEG来替代PE,同时将transformer block堆叠设计成global attention和local attention交替使用的形式,并且为了减少计算量,global attention将重要信息总结成mxn个表示,同时每个表示和其他sub-windows进行信息交流。

paper:https://arxiv.org/abs/2104.06399

code:https://github.com/mlpc-ucsd/CoaT

CoaT设计了一个co-scale机制,通过一系列串行和并行的block来预测结果,同时设计了一个Conv-Attention结构来替代MHSA,用一个dwconv来得到position encoding,另一个dwconv来得到relative position encoding。

paper:https://arxiv.org/abs/2103.15808

code:https://github.com/leoxiaobin/CvT

CvT去掉position encoding,用conv同时替换掉token embedding和MHSA中的QKV projection,通过conv来引入位置信息。

paper:https://arxiv.org/abs/2106.03650

code:https://github.com/mulinmeng/Shuffle-Transformer

通过shuffle和unshuffle操作,来增加token之间的信息交流。

paper:https://arxiv.org/abs/2107.00641

code:https://github.com/microsoft/Focal-Transformer

改变SwinT的划分windows的方式,每个query patch对应三种粒度的windows尺寸,如图所示。将W-MSA替换成Focal Self-Attention整体架构和SwinT保持一致。

paper:https://arxiv.org/abs/2107.00652

code:https://github.com/microsoft/CSWin-Transformer

改变SwinT的划分windows的方式,每个query patch通过两个并行分支做self-attention,并且kv从dynaic stripe window中取。

paper:https://arxiv.org/abs/2104.11227

code:https://github.com/facebookresearch/SlowFast

MViT通过对XQKV池化进行下采样构建金字塔架构。

Hybrid ViTs with Convolutions

paper:https://arxiv.org/abs/2104.01136

code:https://github.com/facebookresearch/LeViT

LeViT的patch embedding设计成4个conv3x3堆叠,同时下采样的self-attention对Q进行下采样。

paper:https://arxiv.org/abs/2104.05707

code:https://github.com/ofsoundof/LocalViT

FC和1x1conv等效,在FFN中增加一个3x3的DWConv就变成了图c,输入输出增加Img2Seq和Seq2Img的操作。

paper:https://arxiv.org/abs/2105.13677

code:https://github.com/wofmanaf/ResT

ResT在MHSA中增加DWConv降低KV的纬度,另一个conv用来增加不同head的信息交流。

paper:https://arxiv.org/abs/2105.12723

NesT通过最大池化对patch进行聚合。

paper:https://arxiv.org/pdf/2106.04803.pdf

通过交替堆叠depthwise conv和self-attention来设计架构。

paper:https://arxiv.org/abs/2101.11605

模仿ResNet的bottleneck,将Transformer的block设计成bottleneck的形式,一个bottleneck由1x1conv、MHSA、1x1conv堆叠而成。

paper:https://arxiv.org/abs/2103.10697

ConViT设计了一个GPSA,只对patch token进行操作,并且引入了位置信息。10个GPSA堆叠之后接2个SA。

paper:https://arxiv.org/abs/2110.02178

MobileViT通过堆叠MobileNetv2 block和MobileViT block构成。

paper:https://arxiv.org/abs/2103.11816

CeiT设计了一个局部增强的LeFF结构,只对patch token部分做linear projection和depth-wise conv。

paper:https://arxiv.org/abs/2107.06263

CMT设计了一个CMT block,如图所示。

Object Detection

CNN backbone

paper:https://arxiv.org/abs/2005.12872

code:https://github.com/facebookresearch/detr

DETR是第一个使用Transformer做目标检测的算法。图片先通过CNN提取特征,然后和positional encoding相加送入transformer,最后通过FFN预测结果。其中decoder部分需要设置object queries,并行输出预测结果,训练的时候pred和target通过双边匹配算法进行匹配。

paper:https://arxiv.org/abs/2011.09094

为了对DETR进行预训练,UP-DETR处理了两个关键问题:

  1. 为了进行分类和定位对多任务训练,UP-DETR固定住预训练过的backbone和对patch特征进行重建来保留transformer的判别力。

  2. 为了对多个patch进行定位,不同queries设置不同的区域和大小。UP-DETR设计了两种预训练方式,一种是single-query,另一种是multi-query。对于multi-query设计了object query shuffle和attention mask操作来解决query patches和object queries对齐问题。

paper:https://arxiv.org/abs/2106.04550

code:https://amirbar.net/detreg

上图是DETReg的整体框架。给定一张图片x,使用DETR得到embeddings v,总共设计了三个分支,一个分支预测box,一个分支预测embdding,还有一个分支预测目标分数cat。伪gt区域提议label通过selective search得到,伪gt目标embedding通过自监督算法SwAV得到,proposal的目标分数都设置为1。通过双边匹配将预测proposal和伪label进行匹配,不匹配的预测proposal分数用0填充。

paper:https://arxiv.org/abs/2101.07448

code:https://github.com/abc403/SMCA-replication

SMCA设计了一个Spatially Modulated Co-Attention组件来加快DETR的收敛速度,具体地,decoder的每个query先做一个spatial prior,然后和key进行co-attention。另外SMCA还设计来一个Multi-Scale Self-Attention来进一步提升精度。

paper:https://arxiv.org/abs/2010.04159

code:https://github.com/fundamentalvision/Deformable-DETR

Deformable DETR结合了deformable conv的稀疏空间采样和transformer的相关性建模能力的优点。提出的deformable attention module用一些采样位置作为重要的key元素,并且Deformable DETR将该谋爱拓展到multi-scale上。

paper:https://arxiv.org/abs/2109.07107

code:https://github.com/megvii-model/AnchorDETR

Anchor DETR在decoder部分设计了基于anchor points的object queries,并且row-column decoupled attention来替代MHSA,降低计算复杂度。

paper:https://arxiv.org/abs/2108.06152

code:https://github.com/Atten4Vis/ConditionalDETR

Conditional DETR将content queries和spatial queries独立开,使得各自关注于content attention weights和spatial attention weights,加快训练的收敛速度。

paper:https://arxiv.org/abs/2011.10881

本文实验观察发现,影响DETR收敛速度的主要原因是cross-attention和双边匹配的不稳定。于是本文提出只使用transformer的encoder,其中TSP-FCOS设计了一种FoI Select来选择特征。并且还设计来一种新的双边匹配算法来加快收敛。

paper:https://arxiv.org/abs/2109.07036

code:https://github.com/twangnh/pnp-detr

PnP-DETR设计了两种采样方式来降低计算复杂度,poll sampler和pool sampler,poll sampler对feature map对每个位置预测分数,然后挑选出fine的特征,通过pool sampler对coarse特征进行聚合。

paper:https://arxiv.org/pdf/2203.00860.pdf

D^2ETR去掉了DETR的encoder部分,同时在backbone部分对不同stage的特征进行融合操作。

paper:https://arxiv.org/abs/2111.14330

code:https://github.com/kakaobrain/sparse-detr

Sparse DETR通过Deformable cross-attention得到binarized decoder cross-attention map(DAM),用来作为scoring network的监督信号,预测出token的重要程度,并且只保留top-p%的token进行训练。

paper:https://arxiv.org/pdf/2104.01318.pdf

Efficient DETR通过预测结果来初始化object queries,具体地,选取top-K个位置的feature当作object queries,位置当作reference points,k组embedding送入decoder进行稀疏预测,最终Efficient DETR只需要一个decoder就能超过DETR 6个decoder的精度。

paper:https://openaccess.thecvf.com/content/ICCV2021/papers/Dai_Dynamic_DETR_End-to-End_Object_Detection_With_Dynamic_Attention_ICCV_2021_paper.pdf

Dynamic DETR的dynamic encoder部分引入SE然后用deformable self-attention来提取多尺度特征,dynamic decoder部分引入可学习的box encoding,然后对encoder的特征做roi池化,最后和decoder的中间层embedding做相乘。

paper:https://arxiv.org/abs/2201.12329 code](https://github.com/SlongLiu/DAB-DETR

DAB-DETR直接动态更新anchor boxes提供参照点和参照anchor尺寸来改善cross-attention的计算。

paper:https://arxiv.org/abs/2203.01305

code:https://github.com/FengLi-ust/DN-DETR

DN-DETR在DAB-DETR的基础上,增加来一个denoising辅助任务,从而避免训练前期双边匹配的不稳定,加快收敛速度。

paper:https://arxiv.org/pdf/2203.03605.pdf

code:https://github.com/twangnh/pnp-detr

DINO在DN-DETR的基础上引入了三点改进:

  1. 增加了一个新的辅助任务contrastive denoising training,在相同的gt box添加两种不同的noise,noise小的当作正样本,noise大的当作负样本。

  2. 提出mixed query selection方法,从encoder的输出中选择初始anchor boxes作为positional queries。

  3. 提出look forward twice方法,利用refined box信息来帮助优化前面层的参数。

Pure Transformer

paper:https://arxiv.org/abs/2109.10852

Pix2Seq直接把目标检测任务当成是序列任务,将cls和bbox构建成序列目标,图片通过Transformer直接预测序列结果。

paper:https://arxiv.org/abs/2106.00666

code:https://github.com/IDEACVR/DINO

YOLOS只使用transformer encoder做目标检测,模仿vit在encoder部分设置det token,在输出部分接MLP预测出cls和bbox。

paper:https://openreview.net/pdf%3Fid%3DyjMQuLLcGWK

FP-DETR只使用transformer encoder部分,先使用cls token来做pre-training,然后替换成visual prompts来做fine-tuning。其中visual prompts由query content embedding和query positional embedding相加得到。

Instance segmentation

paper:https://arxiv.org/abs/2108.06747

code:https://github.com/easton-cau/SOTR

SOTR在FPN backbone的基础上最小修改构建的。将多尺度的feature map加上positional embedding送入transformer模型中,通过cls head和kernel head预测出instance cls和dynamic conv,另一个分支对多尺度特征进行上采样融合得到,最后和dynamic conv想乘得到不同instance cls的区域。

panoptic segmentation

paper:https://arxiv.org/pdf/2012.00759.pdf

code:https://github.com/google-research/deeplab2

Max-DeepLab设计了两个分支pixel path和memory path,两个分支在dual-path tansformer中进行交互,最终pixel path预测出mask,memory path预测出cls。

paper:https://link.zhihu.com/?target=http%3A//arxiv.org/abs/2107.06278

code:https://github.com/facebookresearch/MaskFormer

paper:https://arxiv.org/abs/2112.01527

code:https://github.com/facebookresearch/Mask2Former

MaskFormer提出将全景分割看成是mask分类任务。通过transformer decoder和MLP得到N个mask embedding和N个cls pred。另一个分支通过pixel decoder得到per-pixel embedding,然后将mask embedding和per-pixel embedding相乘得到N个mask prediction,最后cls pred和mask pred相乘,丢弃没有目标的mask,得到最终预测结果。

Mask2Former在MaskFormer的基础上,增加了masked attention机制,另外还调整了decoder部分的self-attention和cross-attention的顺序,还提出了使用importance sampling来加快训练速度。

Image Segmentation

semantic segmentation

paper:https://arxiv.org/abs/2012.15840

code:https://fudan-zvg.github.io/SETR/

SETR用ViT/DeiT作为backbone,然后设计了两种head形式:SETR-PUP和SETR-MLA。PUP将backbone输出的feature reshape成二维形式,然后不断的上采样得到最终的预测结果;MLA将多个stage的中间feature进行reshape,然后融合上采样得到最终的预测结果。

paper:https://arxiv.org/abs/2105.15203

code:https://github.com/NVlabs/SegFormer

SegFormer设计了一个encoder-decoder的分割框架,其中transformer block由Efficient Self-Attn、Mix-FFN、Overlap Patch Merging构成。Efficient Self-Attn对K进行下采样,Mix-FFN额外使用了conv。

paper:https://arxiv.org/abs/2105.05633

code:https://github.com/rstrudel/segmenter

Segmenter设计了类别无关的cls token,最后预测的时候分别和patch token进行点乘,最后reshap成二维图像。

paper:https://arxiv.org/abs/2103.06104

paper:https://arxiv.org/abs/2102.04306

code:https://github.com/Beckschen/TransUNet

paper:https://arxiv.org/abs/2105.05537

code:https://github.com/HuCaoFighting/Swin-Unet

在U-Net结构中引入Transformer

paper:https://arxiv.org/abs/2106.12011

用对KV做池化的MHSA做下采样。

paper:https://papers.nips.cc/paper/2021/hash/3bbfdde8842a5c44a0323518eec97cbe-Abstract.html

HRFormer的block由local-window self-attention和FFN组成。

本文仅做学术分享,如有侵权,请联系删文。

后台回复:即可下载国外大学沉淀数年3D Vison精品课件

后台回复:即可下载3D视觉领域经典书籍pdf

后台回复:即可学习3D视觉领域精品课程

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进4.国内首个面向工业级实战的点云处理课程5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在

也可申请加入我们的细分方向交流群,目前主要有等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。也请联系。

▲长按加微信群或投稿

▲长按关注公众号

:针对3D视觉领域的五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

标签: abs轮速传感器固定结构tsp100传感器2202传感器cls系列传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台