用Transformer进行图像语义分割,性能超最先进的卷积方法!

news/2024/8/22 23:34:55

点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

丰色 发自 凹非寺
量子位 报道 | 公众号 QbitAI

正如大家所知,在进行图像语义分割时,图像被编码成一系列补丁后往往很模糊,需要借助上下文信息才能被正确分割。

因此上下文建模对图像语义分割的性能至关重要!

而与以往基于卷积网络的方法不同,来自法国的一个研究团队另辟蹊径,提出了一种只使用Transformer的语义分割方法。

该方法“效果拔群”,可以很好地捕捉图像全局上下文信息!

要知道,就连取得了骄人成绩的FCN(完全卷积网络)都有“图像全局信息访问限制”的问题。(卷积结构在图像语义分割方面目前有无法打破的局限)

而这次这个方法在具有挑战性的ADE20K数据集上,性能都超过了最先进的卷积方法!

不得不说,Transformer跨界计算机视觉领域真是越来越频繁了、效果也越来越成功了!

那这次表现优异的Transformer语义分割,用了什么不一样的“配方”吗?

使用Vision Transformer

没错,这次这个最终被命名为Segmenter的语义分割模型,主要基于去年10月份才诞生的一个用于计算机视觉领域的“新秀”Transformer:Vision Transformer,简称ViT。

ViT有多“秀”呢?

ViT采用纯Transformer架构,将图像分成多个patches进行输入,在很多图像分类任务中表现都不输最先进的卷积网络。

缺点就是在训练数据集较小时,性能不是很好。

Segmenter作为一个纯Transformer的编码-解码架构,利用了模型每一层的全局图像上下文。

基于最新的ViT研究成果,将图像分割成块(patches),并将它们映射为一个线性嵌入序列,用编码器进行编码。再由Mask Transformer将编码器和类嵌入的输出进行解码,上采样后应用Argmax给每个像素一一分好类,输出最终的像素分割图。

下面是该模型的架构示意图:

解码阶段采用了联合处理图像块和类嵌入的简单方法,解码器Mask Transformer可以通过用对象嵌入代替类嵌入来直接进行全景分割。

效果如何

多说无益,看看实际效果如何?

首先他们在ADE20K数据集上比较不同Transformer变体,研究不同参数(正则化、模型大小、图像块大小、训练数据集大小,模型性能,不同的解码器等),全方面比较Segmenter与基于卷积的语义分割方法。

其中ADE20K数据集,包含具有挑战性的细粒度(fine-grained)标签场景,是最具挑战性的语义分割数据集之一。

下表是不同正则化方案的比较结果:

他们发现随机深度(Stochastic Depth)方案可独立提高性能,而dropout无论是单独还是与随机深度相结合,都会损耗性能。

不同图像块大小和不同transformer的性能比较发现:

增加图像块的大小会导致图像的表示更粗糙,但会产生处理速度更快的小序列。

减少图像块大小是一个强大的改进方式,不用引入任何参数!但需要在较长的序列上计算Attention,会增加计算时间和内存占用。

Segmenter在使用大型transformer模型小规模图像块的情况下更优:

(表中间是带有线性解码器的不同编码器,表底部是带有Mask Transformer作为解码器的不同编码器)

下图也显示了Segmenter的明显优势,其中Seg/16模型(图像块大小为16x16)在性能与准确性方面表现最好。

最后,我们再来看看Segmenter与SOTA的比较:

在最具挑战性的ADE20K数据集上,Segmenter两项指标均高于所有SOTA模型!

(中间太长已省略)

在Cityscapes数据集上与大多数SOTA不相上下,只比性能最好的Panoptic-Deeplab低0.8。

在Pascal Context数据集上的表现也是如此。

  剩余参数比较,大家有兴趣的可按需查看论文细节。

论文地址:
https://www.arxiv-vanity.com/papers/2105.05633/


本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

点个在看 paper不断!


http://lihuaxi.xjx100.cn/news/269246.html

相关文章

红外线可程序化?遥控器Motedem控制自家居住环境

2019独角兽企业重金招聘Python工程师标准>>> Motedem是台可程序化遥控器,用户可以透过蓝牙连接至Raspberry Pi ,并以远程遥控或程序自动控制的方式送出红外线指令,如此一来就能让旧型电视、电扇、冷气等家电加装自动化功能&#x…

mysql帐号,权限管理

-> use mysql; //选择数据库 -> select host,user,password from user; //查询已有用户 -> insert into user (host,user,password) values(localhost,kiscms,password(kiscms)); //插入一个用户 -> select host,user,password from user; //再次查询用户 -> fl…

重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...

2020 年无疑是特殊的一年,AI 在开年的这场“战疫”中表现出惊人的力量。站在“新十年”的起点上,CSDN发起【百万人学AI】评选活动。我们继续聚焦AI的技术落地,关注开源和新生的力量。作为CSDN第三届AI评选活动,本次活动受到数百家…

学术前沿 | 图像质量量化评估标准综述

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达转载于 :知乎:MrZH,已获授权来源:https://zhuanlan.zhihu.com/p/1202548921.为什么需要图像质量评估标准2.评估标准分类&am…

图形化客户端Navicat介绍和使用

1. Navicat的介绍 Navicat 是一套快速、可靠并价格适宜的数据库管理工具, 适用于三种平台: Windows、mac OS 及 Linux。 可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 等数据库进行管理及开发。 专门为简化数据库的操作而设计。 它的设计符合数据库管理员、开发人…

将当前的head推送到远程_git 入门教程之远程仓库

如果说本地仓库已经足够个人进行版本控制了,那么远程仓库则使多人合作开发成为可能.如果你只是打算自己使用git,你的工作内容不需要发布给其他人看,那就用不到远程仓库的概念.git 是分布式版本控制系统,分布式意味着同一个git 仓库 可以部署在不同的机器上,正如"鸡生蛋蛋生…

全局常量

一般的常量在一个文件中定义后,在另外一个引用到这个变量的文件中在变量声明前加上extern即可,但是如果是常量,则需要在定义的地方也要加上extern,例如: // ab.cpp : 定义控制台应用程序的入口点。 #include "std…

Windows定时开机并开启工作软件

开启休眠功能 在搜索窗口中输入“cmd.exe”,在结果中看见了“cmd.exe”,右击选择“以管理员权限运行程序”打开“cmd.exe”命令窗口,输入命令“powercfg -h on”即可开启计算机休眠功能。powercfg -a可查看状态。 休眠操作 控制面板(control.exe) -- 系统与安全 -- …