| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【深度学习】语义分割-论文阅读:( NeurIPS 2021 )SegFormer -> 正文阅读 |
|
[人工智能]【深度学习】语义分割-论文阅读:( NeurIPS 2021 )SegFormer |
这里写目录标题0.详情名称:SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers 1.动机
2. 改进点本文提出了一种 SegFormer,同时考虑了效果、效率、鲁棒性,同时使用了 encoder 和 decoder, 创新性:
(本文提出的 encoder,在对分辨率不同的输入进行 inference 的时候, 没使用插值的位置编码,所以,本文提出的 encoder 能够很简单的应用于不同分辨率的测试,也不会影响性能。并且分层级的部分能够产生高分辨率和低分辨率的特征 轻量级的 MLP decoder,能够很好的利用 Transformer 的特征,其中低层能保留局部信息,高层能保留非局部信息。将这些不同层的 MLP decoder 结合后,能够结合 local 和 global 特征,能够得到一个简单且直接的 decoder 来得到有效的特征表达。) 3.相关工作语义分割:是一种图像分类从图像级别到像素级别上的扩展。FCN是这方面的开山之作,FCN是一种全连接卷积网络,用端到端的方式执行了像素级别的分类。在此之后,研究者集中在不同的方面来改进FCN,比如:
以上提到的这些思路显著的提高了语义分割的性能,但是却引入了大量的经验模块,使得生成的框架计算量大且复杂。最近的这两篇文章(Rethinking semantic segmentation from a sequence-to-sequence perspective with transformers. CVPR, 2021;Segmenting transparent object in the wild with transformer. IJCAI, 2021)证明了Transformer。但是这些模型还需要大量的计算。 Transformer backbones:VIT是证明纯Transformer在图像分类方面可以达到SOTA的文章。VIT将图像作用成带有序列的tokens,输入到多层Transformer层中进行分类。DeiT(End-to-End object detection with transformers. In ECCV, 2020)进一步探索了数据高效的培训策略和ViT的精馏方法。最近的一些文章T2T ViT, CPVT, TNT, CrossViT and LocalViT引入ViT的定制更改,进一步提高图像分类性能。 除了分类之外,PVT是在Transformer中引入金字塔结构的第一个作品,与CNN相比它展示了纯Transformer主干网在密集预测任务中的潜力。之后,使用Swin[9]、CvT[58]、CoaT[59]、LeViT[60]、孪生[10]增强了特征的局部连续性,消除了固定尺寸的位置嵌入,提高了transformer在密集预测任务中的性能。 4. MethodSegFormer有两个模块组组成: 4.1 Hierarchical Transformer Encoder作者设计了一系列的 Mix Transformer encoders (MiT),MiT-B0 到 MiT-B5,结构相同,大小不同,MiT-B0 是最轻量级的,可以用来快速推理,MiT-B5 是最重量级的,可以取得最好的效果。 MiT 灵感来源于 ViT,但为适应分割做了一些优化。 4.1.1 分层特性表示(Hierarchical Feature Representation)ViT只能生成单分辨率的特征图, 4.1.2 重叠合并(Overlapped Patch Merging)ViT的Patch Embedding是无重叠的(non-overlapping),但是non-overlapping对语义分割任务来说,会导致patch边缘不连续。MiT使用overlapped patch embedding,保证patch边缘连续。 VIT中将一个输入NN3的image,合并为11C的向量。利用这种特性,很容易的可以将特征图的分辨率缩小两倍,以获得分层特征映射。 此我们设置的三个参数K,S,P。K是patch size,表示相邻两个patch之间的步幅,S是stride,P是padding。在实验中我们分别设K,S,P为(7,4,3)和(3,2,1)的参数来执行overlapping的图像的融合过程并得到和non-overlapping图像融合一样大小的feature。 4.1.3 自注意机制(Efficient Self-Attention)Transformer的主要计算瓶颈在Attention层,设Q/K/V的维度为[N, C](N=H*W),注意力计算公式如下: 它的计算复杂度是O(N的平方),当对大分辨率的图片,计算量过大,segformer引入一个衰减比率R,利用全连接层减少Attention计算量。 4.1.4 混合前馈网络(Mix-FFN)问题: 作者认为位置编码对于语义分割实际上是不必要的。 改进: 过程: 4.2 Lightweight ALL-MLP Decoder4.2.1 ALL-MLP解码结构SegFormer集成了一个轻量级解码器,只包含MLP层。
整个decoder只有四部分一共6个linear层 所以参数非常少 4.2.2 有效接受视野(Effective Receptive Field Analysis)对语义分割来说,保持较大的感受野以获取更多的上下文信息一直是一个核心问题。
CNN的接受域有限,需要借助语境模块扩大接受域,但不可避免地使网络变复杂。 更重要的是,All-MLP译码器设计本质上利用了Transformer诱导的特性,同时产生高度局部和非局部关注。通过统一它们,All-MLP译码器通过添加一些参数来呈现互补和强大的表示。这是推动我们设计的另一个关键原因。 所以,MLP 形式的 decoder 能在 Transformer 网络中发挥比 CNN 中更好的作用的原因在于感受野 4.3 Relationship to SETR与SETR相比,SegFormer含有多个更有效和强大的设计。
5 实验5.1 实验设置Dataset:三个公开数据集:Cityscapes、ADE20K、COCO-Stuff。 储备知识:FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。 FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。在下面对比实验中提到的即为该参数。反映模型浮点运算数。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:59:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |