点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者丨Smarter
来源丨Smarter
编辑丨极市平台
https://github.com/dk-liang/Awesome-Visual-Transformer
https://github.com/IDEACVR/awesome-detection-transformer
Image Classification
Uniform-scale
*ViT
paper:https://arxiv.org/abs/2010.11929
code:https://github.com/google-research/vision_transformer
![a9841641a675f4363129a316f0fdf000.png](https://i-blog.csdnimg.cn/blog_migrate/0f45ecf742aa91ed5922cc85e79b6e89.png)
最简洁的Vision Transformer模型,先将图片分成16x16的patch块,送入transformer encoder,第一个cls token的输出送入mlp head得到预测结果。
*DeiT
paper:https://arxiv.org/abs/2012.12877
code:https://github.com/facebookresearch/deit)
![034aaf519b55fc8823398437cebd56d5.png](https://i-blog.csdnimg.cn/blog_migrate/fc00a5b7a86690c97c464603306f0cea.png)
在ViT的基础上增加了一个distillation token,巧妙的利用distillation token提升模型精度。
T2T-ViT
paper:https://arxiv.org/abs/2101.11986
code:https://github.com/yitu-opensource/T2T-ViT
![a51e5776100b4594151e643329649b4d.png](https://i-blog.csdnimg.cn/blog_migrate/c91867cc7978f7e98c50a398553d9789.png)
将ViT的patch stem改成重叠的滑窗形式,增强patch之间的信息交流。
Conformer
paper:https://arxiv.org/abs/2105.03889
code:https://github.com/pengzhiliang/Conformer
![7a2c7dcb5476be20294345a491e7095e.png](https://i-blog.csdnimg.cn/blog_migrate/15d312be4106da48e500d4d2991eee11.png)
设计了一个CNN和Transformer双分支结构,利用FCU模块进行两个分支的信息交流,推理的时候使用两个分支的输出取平均进行预测。
TNT
paper:https://arxiv.org/abs/2103.00112
code:https://github.com/huawei-noah/noah-research/tree/master/TNT
![aba11499b6cf536f3a58fa02c696e0df.png](https://i-blog.csdnimg.cn/blog_migrate/ae13f7fb0e8cb2b5f387c238a84470a0.png)
在ViT的基础上,对每个patch进一步切分,用嵌套的方式提升每个patch对于局部区域的特征表达能力,然后将局部提升后的特征和patch特征相加送入下一个transformer block中。
XCiT
paper:https://arxiv.org/pdf/2106.09681.pdf
code:https://github.com/facebookresearch/xcit
![039d87274e9efb2d1e49fd2e07083f52.png](https://i-blog.csdnimg.cn/blog_migrate/4648c481d753b40fdf976de9241d2c0b.png)
XCiT通过置换q和k的计算,从tokens做self-attention转变成channels纬度做self-attention(也就是通道的协方差计算),复杂度从平方降到了线性。
DeepViT
paper:https://arxiv.org/abs/2103.11886
![ac9ab561f42b91c7557144c978fe1c43.png](https://i-blog.csdnimg.cn/blog_migrate/67ddbf2773643e9709fb9e49fe136901.png)
![f7a36449ced5c1e22c5a97eded944630.png](https://i-blog.csdnimg.cn/blog_migrate/1771a6ac7b1d411306b9c3b8d2927995.png)
DeepViT发现随着深度的增加,ViT的self-attention会出现坍塌现象,DeepViT提出用Re-Attention来替代Self-Attention可以避免坍塌,可以训练更深的ViT,Re-Attention在MHSA之后增加了一个可学习的Matrix Transformation。
*Token Labeling ViT
paper:https://arxiv.org/abs/2104.10858
code:https://github.com/zihangJiang/TokenLabeling
![f047b409695813bbe441b15d7c768269.png](https://i-blog.csdnimg.cn/blog_migrate/cb23c29526381ef8e8083461fba713f2.png)
为了增加ViT对于局部区域的定位和特征提取能力,token labeling在每个patch的输出都增加一个局部监督,token label通过一个预训练过的特征提取器获得(本文可以看成是AutoEncoder+CLS的预训练方法)。由于需要一个额外的特征提取器,所以需要更多的计算资源(可以用MaskFeat的方法改进)。
SoT
paper:https://arxiv.org/abs/2104.10935
code:https://github.com/jiangtaoxie/So-ViT
![add29850a0e789a9b6eeab108646d891.png](https://i-blog.csdnimg.cn/blog_migrate/e15b3199be7902baaa5a7a61884ea021.png)
对patch输出的word token进行协方差池化,然后和cls token的输出进行融合,提高分类对局部区域的感知能力。
DVT
paper:https://arxiv.org/abs/2105.15075
![dafd801472bc09c233324f0eb054b87f.png](https://i-blog.csdnimg.cn/blog_migrate/7dd91a0a067c6cf2f17d9504853d6d2c.png)
DVT提出每个图片应该有自己独有的token数量,于是设计了一个级联tokens数量逐渐增加的多个transformer,推理的时候可以从不同级的transformer判断输出。
DynamicViT
paper:https://arxiv.org/abs/2106.02034
code:https://dynamicvit.ivg-research.xyz/
![48102a261b0c3baeff4aeb66e2766723.png](https://i-blog.csdnimg.cn/blog_migrate/8bf0fe5576966e5f210eeb6c415c8d5c.png)
通过一个预测模块来决定token的重要程度,剪枝掉少量不重要的token,将剩余的token送入下一个block中。
PSViT
paper:https://arxiv.org/abs/2108.03428
![87eeb6bf1bc10487bb48393992437fa0.png](https://i-blog.csdnimg.cn/blog_migrate/af81e337a8c69cd15ad81721cb776c33.png)
为了减少ViT计算上的冗余,PSViT提出token pooling和attention sharing两个操作,其中token pooling用来减少token的数量,attention sharing作用在相关性较强的相邻层上。
*TokenLearner
paper:https://arxiv.org/abs/2106.11297
code:https://github.com/google-research/scenic/tree/main/scenic/projects/token_learner
![750619171c549b1f5da2284c82284d99.png](https://i-blog.csdnimg.cn/blog_migrate/a225d40a62a6d2af5fd1d0b9a3cf77d0.png)
利用spatial attention来提取出最重要的token信息,减少token数量。
Evo-ViT
paper:https://arxiv.org/abs/2108.01390
![0753fed381a195ab5f051b15247bf81c.png](https://i-blog.csdnimg.cn/blog_migrate/7013b64c55e49e2bc7ee1c5d578c6fcf.png)
增加一个representative token,通过global class attention evolution来判断patch token的重要程度,重要程度高的送入block中缓慢更新,重要程度低的和representative token(由placeholder token得到)残差更新。其中vanilla transformer block的MSA输出和global cls attention相加得到重要性权重。
AugViT
paper:https://arxiv.org/abs/2106.15941
code:https://github.com/huawei-noah/CV-Backbones/tree/master/augvit_pytorch
![4a98d3c9e39733ab89407e3cdd6c62c0.png](https://i-blog.csdnimg.cn/blog_migrate/2be5d84b75fc7248a444ee0e36746209.png)
为了避免ViT出现模型坍塌现象,AugViT设计了一个augmented shortcuts结构。具体地,在MSA结构上并行增加两个分支,一个分支做shortcut操作,另一分支对每个patch做augmentation来增加特征表达的多样性,最后将三个分支的输出相加到一起。
CrossViT
paper:https://arxiv.org/abs/2103.14899
code:https://github.com/IBM/CrossViT
![5c6952390761cda6c0a12280ebe0bb01.png](https://i-blog.csdnimg.cn/blog_migrate/51f7e36c303acfd9fbb9f59499f4ff9a.png)
将两种不同数量的patch序列分别送入encoder中,然后通过cross-attention对两个分支的cls token和patch token同时进行融合,最后将两个分支的cls token位置的输出结果进行融合。
AutoFormer
paper:https://arxiv.org/pdf/2107.00651.pdf
code:https://github.com/microsoft/AutoML
![7195638a6ef580bd368d3807960cd1ab.png](https://i-blog.csdnimg.cn/blog_migrate/83af57fe774da021722ba43281bea384.png)
AutoFormer动态的搜索transformer中每一层的embedding纬度、head的数量、MLP比例和QKV纬度。
*CPVT
paper:https://arxiv.org/abs/2102.10882
code:https://github.com/Meituan-AutoML/CPVT
![8286b05336d17ab661e5f1750f66a876.png](https://i-blog.csdnimg.cn/blog_migrate/a3555c5be0591b4197fb88bb9878d058.png)
![4952ed5b855e1c1411efba2bf8ab1452.png](https://i-blog.csdnimg.cn/blog_migrate/70d0f439c5374560dae504c941424c3a.png)
CPVT设计了一个PEG结构来替代PE(positional encoding),PEG通过feature token生成得到。
V-MoE
paper:https://arxiv.org/pdf/2106.05974v1.pdf
![c7bf6137202564db54c74c65de062c19.png](https://i-blog.csdnimg.cn/blog_migrate/b102831e00e7cad85c0590b61d0d0a1e.png)
V-MoE用Sparse MoE来替换ViT中的MLP结构。Sparse MoE中的每个MLP分别保存在独立的device上,并且处理相同固定数量的tokens。
DPT
paper:https://arxiv.org/abs/2107.14467
code:https://github.com/CASIA-IVA-Lab/DPT
![14beb52ff840f259ba210db2027a1e6a.png](https://i-blog.csdnimg.cn/blog_migrate/dc0eb5c56033a3fc5b33957ab4b26091.png)
DPT设计另一个可形变的patch选取方式。
*EViT
paper:https://arxiv.org/pdf/2202.07800.pdf
![8d2b5f5bfae28c0471121102d506716a.png](https://i-blog.csdnimg.cn/blog_migrate/05a1f49de105e1937927399300fb7216.png)
EViT通过计算每个patch token和cls token的相关性来决定重要程度,重要程度高的直接送入FFN,重要程度低的融合成一个token。
Multi-scale
*SwinTv1
paper:https://arxiv.org/abs/2103.14030
code:https://github.com/microsoft/Swin-Transformer
*SwinTv2
paper:https://arxiv.org/abs/2111.09883
![028498714bdfb9af1b6747bb8fc1faa7.png](https://i-blog.csdnimg.cn/blog_migrate/ec534f382c81d9d72a41fbc290b97466.png)
![7fce1c812e70ba2eb78c64abf44534c6.png](https://i-blog.csdnimg.cn/blog_migrate/7c79d7acf186bc82844e025b91959210.png)
为了更好的应用于det、seg等下游任务,需要对ViT进行多尺度设计。SwinT通过patch merging减少token的数量,另外设计了W-MSA结构,只对windows内的patch进行self-attention计算来降低计算量,为了增加不同windows之间的信息传递,设计了SW-MSA结构。
![58a4d494bc7df7fc45836fe7b49f0abe.png](https://i-blog.csdnimg.cn/blog_migrate/8ec4c61bfe2a030dee62a73e9cd7d412.png)
为了更好的扩大SwinT的模型容量和window的分辨率,SwinTv2重新设计了block结构。
用post-norm替代pre-norm
用cosine attention替代dot product attention
用log-spaced continuous relative position替代parameterized relative position
1和2使得SwinT更容易扩大模型容量,3使得SwinT更容易跨window分辨率迁移。
*PVTv1
paper:https://arxiv.org/abs/2102.12122
code:https://github.com/whai362/PVT
*PVTv2
paper:https://arxiv.org/pdf/2106.13797.pdf
![d3cce289a03949515ec8e6666cf01950.png](https://i-blog.csdnimg.cn/blog_migrate/e2aa0653620f8577574ad24c8809f0f2.png)
![f8a348b942ec2086fa88c468a32fc861.png](https://i-blog.csdnimg.cn/blog_migrate/cf5508bf088208a288d9aae1eceba7c6.png)
PVT设计了一个多stage的多尺度架构,为了做stage之间的下采样,将MHSA改造成SRA,SRA中的K和V都下采样R^2倍。
![6f240ed7093ef5397802d4f3d2891fe5.png](https://i-blog.csdnimg.cn/blog_migrate/10f14fbe2fe20b7883cebf97af29f2f1.png)
![ccc10c5c30881486cabf60943fa42305.png](https://i-blog.csdnimg.cn/blog_migrate/7e8e6763700a3a03468dd6b5bbfa36d0.png)
PVTv2在PVTv1的基础上做了三点改进:
将SRA的下采样conv替换成average pooling
将不重叠的patch embedding替换成重叠的patch embedding
移除position encoding,并且在FFN中增加一个dwconv
1可以将PVT计算量降到线性,2可以获得更多局部连续的特征,3可以处理任意尺寸的图像。
*Twins
paper:https://arxiv.org/abs/2104.13840
code:https://github.com/Meituan-AutoML/Twins
![03965137cb3c9149b447418981a5cfb6.png](https://i-blog.csdnimg.cn/blog_migrate/d43e672c4e707887748c57c96d474271.png)
![e6224ebbde936c03486359d573da605a.png](https://i-blog.csdnimg.cn/blog_migrate/d653298f54a60ac2fb66b653e7fdb3f8.png)
Twins沿用PVT的整体架构,并且用CPVT中的PEG来替代PE,同时将transformer block堆叠设计成global attention和local attention交替使用的形式,并且为了减少计算量,global attention将重要信息总结成mxn个表示,同时每个表示和其他sub-windows进行信息交流。
CoaT
paper:https://arxiv.org/abs/2104.06399
code:https://github.com/mlpc-ucsd/CoaT
![2cdf60d81f90e28f62b5de58e3f2a091.png](https://i-blog.csdnimg.cn/blog_migrate/ed110da421218ee0bd8b37b04b1a9d3b.png)
![b185cd20c273248390b9526310865581.png](https://i-blog.csdnimg.cn/blog_migrate/c48bb91523c349435b215b4a8a58cd82.png)
![6d8b74504d7f21badb785f254008c052.png](https://i-blog.csdnimg.cn/blog_migrate/5ea426b9a21249b4bc5df93823381bbc.png)
CoaT设计了一个co-scale机制,通过一系列串行和并行的block来预测结果,同时设计了一个Conv-Attention结构来替代MHSA,用一个dwconv来得到position encoding,另一个dwconv来得到relative position encoding。
CvT
paper:https://arxiv.org/abs/2103.15808
code:https://github.com/leoxiaobin/CvT
![faa3df4beda27085ff430e7287881b37.png](https://i-blog.csdnimg.cn/blog_migrate/c7860c9b22a7dda995cb71739c25f110.png)
CvT去掉position encoding,用conv同时替换掉token embedding和MHSA中的QKV projection,通过conv来引入位置信息。
Shuffle Transformer
paper:https://arxiv.org/abs/2106.03650
code:https://github.com/mulinmeng/Shuffle-Transformer
![e97adea0264d126479d2337f4fb4a100.png](https://i-blog.csdnimg.cn/blog_migrate/83b1507d26e404c7c7c56a626563ccd0.png)
通过shuffle和unshuffle操作,来增加token之间的信息交流。
Focal Transformer
paper:https://arxiv.org/abs/2107.00641
code:https://github.com/microsoft/Focal-Transformer
![8227b80b18a910d6984de84f78dae76c.png](https://i-blog.csdnimg.cn/blog_migrate/10be6e5e52717b19911a3749e732f7a4.png)
![c09358cde71aa24041154c6c3a674722.png](https://i-blog.csdnimg.cn/blog_migrate/843f8dd82c385c0147c0f5d36bebe326.png)
改变SwinT的划分windows的方式,每个query patch对应三种粒度的windows尺寸,如图所示。将W-MSA替换成Focal Self-Attention整体架构和SwinT保持一致。
CSWinT
paper:https://arxiv.org/abs/2107.00652
code:https://github.com/microsoft/CSWin-Transformer
![f5707bcd108407cda831f99121b6ad61.png](https://i-blog.csdnimg.cn/blog_migrate/646715a10b62fd8d34f5e71d10b8e9b5.png)
![a996e4f36320f204a573dcf17d3bf053.png](https://i-blog.csdnimg.cn/blog_migrate/1473e3323524d7d6fdf61266eb405188.png)
改变SwinT的划分windows的方式,每个query patch通过两个并行分支做self-attention,并且kv从dynaic stripe window中取。
*MViT
paper:https://arxiv.org/abs/2104.11227
code:https://github.com/facebookresearch/SlowFast
![ab441e3ed9c321d1a6d0542456b94dab.png](https://i-blog.csdnimg.cn/blog_migrate/a81f5f3e4f1b0cb703b293177ef0547f.png)
![48ebb69b39720de60a5fc1e72719c280.png](https://i-blog.csdnimg.cn/blog_migrate/d0c0dbe149988917ade910d2bf31397a.png)
MViT通过对XQKV池化进行下采样构建金字塔架构。
Hybrid ViTs with Convolutions
LeViT
paper:https://arxiv.org/abs/2104.01136
code:https://github.com/facebookresearch/LeViT
![569fa8c9d32124c6468ec0a982414bea.png](https://i-blog.csdnimg.cn/blog_migrate/2356048da0a848e5dc7f6064ae6e8adf.png)
LeViT的patch embedding设计成4个conv3x3堆叠,同时下采样的self-attention对Q进行下采样。
localViT
paper:https://arxiv.org/abs/2104.05707
code:https://github.com/ofsoundof/LocalViT
![e02b3389adbea9ea3754c05ead371a4d.png](https://i-blog.csdnimg.cn/blog_migrate/18a53cd06e5f6329dfe1af8792a9c63d.png)
FC和1x1conv等效,在FFN中增加一个3x3的DWConv就变成了图c,输入输出增加Img2Seq和Seq2Img的操作。
ResT
paper:https://arxiv.org/abs/2105.13677
code:https://github.com/wofmanaf/ResT
![d15fc156500a3e3edfb0136611bc482e.png](https://i-blog.csdnimg.cn/blog_migrate/631f34e25bd1a58670f276b049cb4fdf.png)
ResT在MHSA中增加DWConv降低KV的纬度,另一个conv用来增加不同head的信息交流。
NesT
paper:https://arxiv.org/abs/2105.12723
![a910814585f4ee63b3a9a2facf1b4749.png](https://i-blog.csdnimg.cn/blog_migrate/4cde55a7ec6d82e7daa6078b85b47f48.png)
NesT通过最大池化对patch进行聚合。
CoAtNet
paper:https://arxiv.org/pdf/2106.04803.pdf
通过交替堆叠depthwise conv和self-attention来设计架构。
BoTNet
paper:https://arxiv.org/abs/2101.11605
![9a89a0891b020b224add061634594314.png](https://i-blog.csdnimg.cn/blog_migrate/36bc505e9213e7e491ebbe2c7c368ef5.png)
模仿ResNet的bottleneck,将Transformer的block设计成bottleneck的形式,一个bottleneck由1x1conv、MHSA、1x1conv堆叠而成。
ConViT
paper:https://arxiv.org/abs/2103.10697
![9fb91fead43964c427146706923a524b.png](https://i-blog.csdnimg.cn/blog_migrate/d0d2af235d6b75e0e501d652e1a872cc.png)
ConViT设计了一个GPSA,只对patch token进行操作,并且引入了位置信息。10个GPSA堆叠之后接2个SA。
MobileViT
paper:https://arxiv.org/abs/2110.02178
![451b3952995865f5f34a134c5267acd5.png](https://i-blog.csdnimg.cn/blog_migrate/be4bd42a4e7c665983d53a05e71d0fcb.png)
MobileViT通过堆叠MobileNetv2 block和MobileViT block构成。
CeiT
paper:https://arxiv.org/abs/2103.11816
![aacc917fe66e8c96275705f996831991.png](https://i-blog.csdnimg.cn/blog_migrate/f91ffcb920b32c6d92ea76703bfa4d9a.png)
CeiT设计了一个局部增强的LeFF结构,只对patch token部分做linear projection和depth-wise conv。
CMT
paper:https://arxiv.org/abs/2107.06263
![00f18ce0c11152c424bcbf84651e111f.png](https://i-blog.csdnimg.cn/blog_migrate/5adea21bb8a1bfbf4b69b5fb44d0ec0e.png)
CMT设计了一个CMT block,如图所示。
Object Detection
CNN backbone
*DETR
paper:https://arxiv.org/abs/2005.12872
code:https://github.com/facebookresearch/detr
![ac2bf086deab1b838f6efbdff56a131a.png](https://i-blog.csdnimg.cn/blog_migrate/43b3d02ae5e8492a40677f6f9366b7ef.png)
DETR是第一个使用Transformer做目标检测的算法。图片先通过CNN提取特征,然后和positional encoding相加送入transformer,最后通过FFN预测结果。其中decoder部分需要设置object queries,并行输出预测结果,训练的时候pred和target通过双边匹配算法进行匹配。
*UP-DETR
paper:https://arxiv.org/abs/2011.09094
![9008f6902e18366be5334d3152a49192.png](https://i-blog.csdnimg.cn/blog_migrate/47ac3cda4c9966bc9833102b3a395e5d.png)
为了对DETR进行预训练,UP-DETR处理了两个关键问题:
为了进行分类和定位对多任务训练,UP-DETR固定住预训练过的backbone和对patch特征进行重建来保留transformer的判别力。
为了对多个patch进行定位,不同queries设置不同的区域和大小。UP-DETR设计了两种预训练方式,一种是single-query,另一种是multi-query。对于multi-query设计了object query shuffle和attention mask操作来解决query patches和object queries对齐问题。
DETReg
paper:https://arxiv.org/abs/2106.04550
code:https://amirbar.net/detreg
![89229351dc9de36356b0efede464fb2e.png](https://i-blog.csdnimg.cn/blog_migrate/5133b269bc2d205515cae9804edab500.png)
上图是DETReg的整体框架。给定一张图片x,使用DETR得到embeddings v,总共设计了三个分支,一个分支预测box,一个分支预测embdding,还有一个分支预测目标分数cat。伪gt区域提议label通过selective search得到,伪gt目标embedding通过自监督算法SwAV得到,proposal的目标分数都设置为1。通过双边匹配将预测proposal和伪label进行匹配,不匹配的预测proposal分数用0填充。
SMCA
paper:https://arxiv.org/abs/2101.07448
code:https://github.com/abc403/SMCA-replication
![afa838ead63d3dd10129515d91b8bffb.png](https://i-blog.csdnimg.cn/blog_migrate/285597f21083ff8a734b69de07d3d387.png)
SMCA设计了一个Spatially Modulated Co-Attention组件来加快DETR的收敛速度,具体地,decoder的每个query先做一个spatial prior,然后和key进行co-attention。另外SMCA还设计来一个Multi-Scale Self-Attention来进一步提升精度。
*Deformable DETR
paper:https://arxiv.org/abs/2010.04159
code:https://github.com/fundamentalvision/Deformable-DETR
![0fe7215a6646cf89ea0b8bd3a604c3ce.png](https://i-blog.csdnimg.cn/blog_migrate/27b4c9a81ba67cb0957cdcc7b5b20a36.png)
![a3cb77d8df2d656c237c1c42a319de59.png](https://i-blog.csdnimg.cn/blog_migrate/7f3de91de722fe02351716561fe0f4a8.png)
Deformable DETR结合了deformable conv的稀疏空间采样和transformer的相关性建模能力的优点。提出的deformable attention module用一些采样位置作为重要的key元素,并且Deformable DETR将该谋爱拓展到multi-scale上。
Anchor DETR
paper:https://arxiv.org/abs/2109.07107
code:https://github.com/megvii-model/AnchorDETR
![b0ae1ae1ecf1925673414d08b45186ab.png](https://i-blog.csdnimg.cn/blog_migrate/27c5aebef51da6eaf2a43f73d10daad2.png)
![f43b7f3a7849dec749ae7f37b8f373e0.png](https://i-blog.csdnimg.cn/blog_migrate/ca4d72cb3eea7dbc510068956099623e.png)
Anchor DETR在decoder部分设计了基于anchor points的object queries,并且row-column decoupled attention来替代MHSA,降低计算复杂度。
*Conditional DETR
paper:https://arxiv.org/abs/2108.06152
code:https://github.com/Atten4Vis/ConditionalDETR
![8b19eebcde1cc7ed56cc00cdafef7ec9.png](https://i-blog.csdnimg.cn/blog_migrate/24a1ecb23b52cdee0d67caa04d661129.png)
Conditional DETR将content queries和spatial queries独立开,使得各自关注于content attention weights和spatial attention weights,加快训练的收敛速度。
*TSP-FCOS
paper:https://arxiv.org/abs/2011.10881
![142e21bdc65a6d6bb0f62bbb0fe8c41e.png](https://i-blog.csdnimg.cn/blog_migrate/90ca7157956aa1850018ec89818db2b0.png)
本文实验观察发现,影响DETR收敛速度的主要原因是cross-attention和双边匹配的不稳定。于是本文提出只使用transformer的encoder,其中TSP-FCOS设计了一种FoI Select来选择特征。并且还设计来一种新的双边匹配算法来加快收敛。
PnP-DETR
paper:https://arxiv.org/abs/2109.07036
code:https://github.com/twangnh/pnp-detr
![c904c8dfdc76e00da14a33eb4b9bb7a5.png](https://i-blog.csdnimg.cn/blog_migrate/3b0f39b941880bd9e1e49b8f8779c428.png)
PnP-DETR设计了两种采样方式来降低计算复杂度,poll sampler和pool sampler,poll sampler对feature map对每个位置预测分数,然后挑选出fine的特征,通过pool sampler对coarse特征进行聚合。
D^2ETR
paper:https://arxiv.org/pdf/2203.00860.pdf
![2b5f46a456e98d5c89740daf56107e05.png](https://i-blog.csdnimg.cn/blog_migrate/f31269662084a16619e524d0191e4eb1.png)
D^2ETR去掉了DETR的encoder部分,同时在backbone部分对不同stage的特征进行融合操作。
Sparse DETR
paper:https://arxiv.org/abs/2111.14330
code:https://github.com/kakaobrain/sparse-detr
![80f2bffac95065bc1feb0114af0ecc4b.png](https://i-blog.csdnimg.cn/blog_migrate/38e3e4d68667ababacaf2439f171063b.png)
Sparse DETR通过Deformable cross-attention得到binarized decoder cross-attention map(DAM),用来作为scoring network的监督信号,预测出token的重要程度,并且只保留top-p%的token进行训练。
*Efficient DETR
paper:https://arxiv.org/pdf/2104.01318.pdf
![0bf17f84a97d7f09756d048264ac85ce.png](https://i-blog.csdnimg.cn/blog_migrate/856984485da074066d431fda3d780b19.png)
Efficient DETR通过预测结果来初始化object queries,具体地,选取top-K个位置的feature当作object queries,位置当作reference points,k组embedding送入decoder进行稀疏预测,最终Efficient DETR只需要一个decoder就能超过DETR 6个decoder的精度。
Dynamic DETR
paper:https://openaccess.thecvf.com/content/ICCV2021/papers/Dai_Dynamic_DETR_End-to-End_Object_Detection_With_Dynamic_Attention_ICCV_2021_paper.pdf
![7b4d7d0459cccb101d56cc6030d4ad8b.png](https://i-blog.csdnimg.cn/blog_migrate/63c1702367f3294edf5e73f6e85bbc38.png)
Dynamic DETR的dynamic encoder部分引入SE然后用deformable self-attention来提取多尺度特征,dynamic decoder部分引入可学习的box encoding,然后对encoder的特征做roi池化,最后和decoder的中间层embedding做相乘。
*DAB-DETR
paper:https://arxiv.org/abs/2201.12329 code](https://github.com/SlongLiu/DAB-DETR
![1949df163c00c6bcb0e85c3e4b8c0823.png](https://i-blog.csdnimg.cn/blog_migrate/a0663f6dbd653d3fe2083eda4d198420.png)
DAB-DETR直接动态更新anchor boxes提供参照点和参照anchor尺寸来改善cross-attention的计算。
*DN-DETR
paper:https://arxiv.org/abs/2203.01305
code:https://github.com/FengLi-ust/DN-DETR
![c609918703e53568ba7190f13fc97eea.png](https://i-blog.csdnimg.cn/blog_migrate/3c72869967c5a7704fe9614185c8b086.png)
DN-DETR在DAB-DETR的基础上,增加来一个denoising辅助任务,从而避免训练前期双边匹配的不稳定,加快收敛速度。
*DINO
paper:https://arxiv.org/pdf/2203.03605.pdf
code:https://github.com/twangnh/pnp-detr
![dc14e8444cafd82ce16cfd1e0f8272b5.png](https://i-blog.csdnimg.cn/blog_migrate/83dbb8ed27a6150f646ce0e2ef35b540.png)
DINO在DN-DETR的基础上引入了三点改进:
增加了一个新的辅助任务contrastive denoising training,在相同的gt box添加两种不同的noise,noise小的当作正样本,noise大的当作负样本。
提出mixed query selection方法,从encoder的输出中选择初始anchor boxes作为positional queries。
提出look forward twice方法,利用refined box信息来帮助优化前面层的参数。
Pure Transformer
Pix2Seq
paper:https://arxiv.org/abs/2109.10852
![d35a0adc13003b2d892dc877c1de898e.png](https://i-blog.csdnimg.cn/blog_migrate/3a4a9d3fd0f3f2c2acdfcbd96f12caaa.png)
Pix2Seq直接把目标检测任务当成是序列任务,将cls和bbox构建成序列目标,图片通过Transformer直接预测序列结果。
YOLOS
paper:https://arxiv.org/abs/2106.00666
code:https://github.com/IDEACVR/DINO
![f42160169ac395aee17223d34cc45254.png](https://i-blog.csdnimg.cn/blog_migrate/9d0bc0b603af5580be18b8fed502715e.png)
YOLOS只使用transformer encoder做目标检测,模仿vit在encoder部分设置det token,在输出部分接MLP预测出cls和bbox。
FP-DETR
paper:https://openreview.net/pdf%3Fid%3DyjMQuLLcGWK
![cd998572f98489d3937b46c08ce7b568.png](https://i-blog.csdnimg.cn/blog_migrate/070c24d175c897bc4b919a1122a74628.png)
FP-DETR只使用transformer encoder部分,先使用cls token来做pre-training,然后替换成visual prompts来做fine-tuning。其中visual prompts由query content embedding和query positional embedding相加得到。
Instance segmentation
SOTR
paper:https://arxiv.org/abs/2108.06747
code:https://github.com/easton-cau/SOTR
![1ecffab6276a1c2049032e34c37a1ee6.png](https://i-blog.csdnimg.cn/blog_migrate/6cbb611ae4158ddf402d0d305554e9c7.png)
SOTR在FPN backbone的基础上最小修改构建的。将多尺度的feature map加上positional embedding送入transformer模型中,通过cls head和kernel head预测出instance cls和dynamic conv,另一个分支对多尺度特征进行上采样融合得到,最后和dynamic conv想乘得到不同instance cls的区域。
panoptic segmentation
Max-DeepLab
paper:https://arxiv.org/pdf/2012.00759.pdf
code:https://github.com/google-research/deeplab2
![f321cc9cf91fc01dbd3d3bd161eb594d.png](https://i-blog.csdnimg.cn/blog_migrate/fb8f7adbb904826e2975073e2fccb82e.png)
Max-DeepLab设计了两个分支pixel path和memory path,两个分支在dual-path tansformer中进行交互,最终pixel path预测出mask,memory path预测出cls。
MaskFormer
paper:https://link.zhihu.com/?target=http%3A//arxiv.org/abs/2107.06278
code:https://github.com/facebookresearch/MaskFormer
Mask2Former
paper:https://arxiv.org/abs/2112.01527
code:https://github.com/facebookresearch/Mask2Former
![b7858a5f2b47f05f17c68546c6535b80.png](https://i-blog.csdnimg.cn/blog_migrate/84ae648796a858d0f9c0d47ea122d9e4.png)
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,得到最终预测结果。
![65d1a7775cea344735e0760d0338d544.png](https://i-blog.csdnimg.cn/blog_migrate/a0c9bb3efa0dbf46681bd47096059d67.png)
Mask2Former在MaskFormer的基础上,增加了masked attention机制,另外还调整了decoder部分的self-attention和cross-attention的顺序,还提出了使用importance sampling来加快训练速度。
Image Segmentation
semantic segmentation
SETR
paper:https://arxiv.org/abs/2012.15840
code:https://fudan-zvg.github.io/SETR/
![e59e9ff5e953387a0fb14141d08d8e25.png](https://i-blog.csdnimg.cn/blog_migrate/62453e80bb6a7b3bef974669a4e97674.png)
SETR用ViT/DeiT作为backbone,然后设计了两种head形式:SETR-PUP和SETR-MLA。PUP将backbone输出的feature reshape成二维形式,然后不断的上采样得到最终的预测结果;MLA将多个stage的中间feature进行reshape,然后融合上采样得到最终的预测结果。
SegFormer
paper:https://arxiv.org/abs/2105.15203
code:https://github.com/NVlabs/SegFormer
![a48212ed43b6571dcf42884db6d06e97.png](https://i-blog.csdnimg.cn/blog_migrate/275772dbe0488349ca5eb390b8c64c2b.png)
SegFormer设计了一个encoder-decoder的分割框架,其中transformer block由Efficient Self-Attn、Mix-FFN、Overlap Patch Merging构成。Efficient Self-Attn对K进行下采样,Mix-FFN额外使用了conv。
Segmenter
paper:https://arxiv.org/abs/2105.05633
code:https://github.com/rstrudel/segmenter
![aec9b5671b737dc771afbe901c15d6af.png](https://i-blog.csdnimg.cn/blog_migrate/9fd86df38adcf7ec1d0f90535e676512.png)
Segmenter设计了类别无关的cls token,最后预测的时候分别和patch token进行点乘,最后reshap成二维图像。
U-Net Transformer
paper:https://arxiv.org/abs/2103.06104
TransUNet
paper:https://arxiv.org/abs/2102.04306
code:https://github.com/Beckschen/TransUNet
Swin-Unet
paper:https://arxiv.org/abs/2105.05537
code:https://github.com/HuCaoFighting/Swin-Unet
![5d416df2c7f9d971c0a0cf681a40a445.png](https://i-blog.csdnimg.cn/blog_migrate/7c5708eb1d9f46ad79e2b75f12925940.png)
![ed600bb1924e14c43ea1e3ec861723c4.png](https://i-blog.csdnimg.cn/blog_migrate/b1b51d140514970460ef8c8eb6cb3578.png)
![2517fe76e4d45a433bcc9bb40e4c0327.png](https://i-blog.csdnimg.cn/blog_migrate/29d4f18621b4b4f21d311ef01ad7efa1.png)
在U-Net结构中引入Transformer
P2T
paper:https://arxiv.org/abs/2106.12011
![f7787e6a8397d5c39303814104a2783e.png](https://i-blog.csdnimg.cn/blog_migrate/40ab3fc91f5b0114ad837757db53d0c2.png)
用对KV做池化的MHSA做下采样。
HRFormer
paper:https://papers.nips.cc/paper/2021/hash/3bbfdde8842a5c44a0323518eec97cbe-Abstract.html
![2da69e4b076f5e78b47879fc5df0e39a.png](https://i-blog.csdnimg.cn/blog_migrate/250137a74a9fca23e7d24ba87c110723.png)
HRFormer的block由local-window self-attention和FFN组成。
本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
3D视觉精品课程推荐:
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~