当前位置: 首页 > news >正文

ViTMatte:利用预训练的基础视觉Transformer提升图像抠图性能

摘要

近年来,基础视觉Transformer(ViT)在多种计算机视觉任务中展现了令人印象深刻的性能,这得益于其强大的建模能力和大规模预训练。然而,它们尚未攻克图像抠图这一问题。我们假设图像抠图同样可以通过ViT得到提升,因此提出了一种高效且鲁棒的基于ViT的抠图系统,命名为ViTMatte。我们的方法采用:(i) 与卷积颈部结构相结合的混合注意力机制,以帮助ViT在抠图任务中实现卓越的性能-计算权衡;(ii) 此外,我们引入了细节捕捉模块,该模块仅由简单轻量的卷积组成,用于补充抠图所需的细节信息。据我们所知,ViTMatte是首个通过简洁适配在图像抠图任务上释放ViT潜力的工作。它将ViT的诸多优越属性引入抠图任务,包括多种预训练策略、简洁的架构设计以及灵活的推理策略。我们在图像抠图最常用的两个基准数据集 Composition-1k 和 Distinctions-646 上对ViTMatte进行了评估,结果表明我们的方法达到了当前最先进的性能,并在表现上大幅超越现有抠图方法。我们的代码与模型公开于:https://github.com/hustvl/ViTMatte

1. 引言

图像抠图一直是计算机视觉中一个长期存在且基础性的研究问题 [1, 28]。如图1所示,其目标是通过预测每个像素的alpha通道(也称为Alpha Matting),精确地分离前景物体与背景。该任务可被应用于众多关键场景,例如电影特效、数字人创建、视频会议等。

在这里插入图片描述

近年来,图像抠图的性能已经被基于深度学习的方法 [36, 47, 56, 59] 显著提升,这些方法相较于传统的采样方法 [23, 44] 或基于传播的方法 [7, 27, 46],能够利用强大的语义表示来捕捉有意义的上下文。主流的基于CNN的图像抠图方法通常遵循这样的范式:使用一个分层的backbone来提取图像特征,然后通过一个注入先验的decoder来融合多层特征。通常认为decoder需要同时完成两个任务:(i) 融合多层特征 和 (ii) 捕捉细节信息 [30, 41, 59],这使得decoder及整个系统的设计变得复杂。
在这里插入图片描述

另一方面,plain vision transformer(ViT)已成为多种计算机视觉任务中的强大backbone [14, 31, 57]。与常用的分层backbone [24, 37]不同,ViT采用极简的非分层结构。最近,一些工作开始探索在目标检测 [31] 和姿态估计 [57] 中使用plain vision transformer,并取得了显著成果。这背后的关键见解是,任务无关的预训练transformer结构本身就能编码足够丰富的语义表示,从而简化下游任务的适配。例如,ViTDet [31] 发现即使没有FPN(Feature Pyramid Network)[34]中的特征融合过程,ViT仍然能够通过简单的反卷积生成的特征金字塔取得优异性能。在其他领域也观察到类似的范式转变,基础模型(如GPT-3 [3] 和 Florence [60])被认为可以承担大部分核心工作。受这些先前工作的启发,我们提出一个有趣的问题:是否仅通过简洁的适配,plain ViT就足以作为“基础模型”来解决图像抠图任务?

在本文中,我们尝试使ViTs能够在抠图任务上进行微调,并释放其潜力。我们的目标不是设计专门为图像抠图量身定制的新复杂模块,而是以最小的改动追求更通用、更有效的抠图架构。如果成功,这将进一步验证范式的转变,并将任务无关的预训练与任务特定的适配解耦。然而,在探索ViT用于图像抠图时,存在两个具体挑战:(1) 如何降低高分辨率图像的巨大计算开销 [58]?Plain ViT会在图像的所有patch之间计算自注意力,产生较长的patch序列和过高的计算负担;(2) 如何在非分层的ViT表示基础上捕捉最细微的细节?考虑到上述动机,我们不打算像以往工作 [30, 40, 47, 59] 那样精心设计复杂的分层特征融合机制。

为了解决上述挑战,我们提出了 ViTMatte,一个高效且有效的基于plain vision transformer的图像抠图系统。根据我们的分析,我们认为预训练的ViT模型已经提供了完成图像抠图任务所需的大部分功能,我们仅需做出简洁且轻量的适配即可用于该任务。

一方面,plain ViT堆叠了多个相同的transformer模块,每个模块都计算代价昂贵的全局自注意力。我们认为这并非必要,因此提出了一种简洁的ViT适配策略,专门用于图像抠图。具体来说,我们结合使用窗口注意力(window attention)和全局注意力(global attention)以在计算量与性能之间取得更好的权衡。此外,我们发现卷积模块可以在ViT基础上有效增强全局注意力,而残差卷积颈部结构(residual convolutional neck)还能进一步提升抠图性能。

另一方面,plain ViT使用固定的patch embedding过程,容易导致信息损失,尤其是在非常细微的细节上。为充分建模图像抠图所需的细节信息,我们特别为plain ViT设计了一个细节捕捉模块(detail capture module),该模块仅包含不到3M的参数。与之前的ViT适配策略及抠图系统相比,ViTMatte是首个专为图像抠图设计的ViT适配方法。如图2所示,相较于之前的适配方法 [31],ViTMatte在参数更少的情况下取得了更优的效果。在处理高分辨率图像时可节省约 70% 的FLOPs。此外,ViTMatte是首个基于ViT的图像抠图方法,并借助各种自监督预训练的ViT模型显著提升了图像抠图性能。

我们在目前最广泛使用的两个基准数据集 Composition-1kDistinctions-646 上对ViTMatte进行了评估,其以更少的参数量达成了新的state-of-the-art结果。

我们的主要贡献可总结如下:

  • 我们提出了ViTMatte,第一个基于plain ViT的抠图系统。为解决挑战,我们设计了一个ViT适配策略和一个细节捕捉模块。我们首次证明了,plain vision transformer可以在参数更少的情况下,取得明显优于其它backbone的抠图性能。
  • 我们在主流基准上评估了ViTMatte。与以往的SOTA方法相比,我们的方法在Composition-1k上将SAD提高了2.54,Connectivity提高了3.06;在Distinctions-646上SAD提升了8.60,Connectivity提升了8.50,成为在参数量更小情况下的新SOTA系统。
  • ViTMatte很好地继承了ViT的优势。我们进行了大量综合实验和分析,系统性地与现有的ViT适配策略和抠图系统进行比较,揭示了ViTMatte的独特洞见。我们希望这项工作能为后续基于plain ViT的抠图研究提供启发。

2. 相关工作

本文主要回顾与我们方法最相关的研究,关于图像抠图问题的更全面讨论可参考文献 [1, 32, 40]。

2.1. 基于Transformer的图像抠图

基于学习的图像抠图长期以来主要依赖于卷积神经网络(CNN),已有大量相关研究工作 [26, 30, 32, 33, 41, 48, 52, 56, 59, 62]。直到最近,Transformer-based 方法 [14, 49] 凭借其相比CNN更强的长距离建模能力,开始在多个视觉任务中展现出颠覆性的性能。

受到这种范式转变的启发,一些最新研究开始尝试将Transformer应用于图像抠图任务 [5, 10, 40],并取得了鼓舞人心的结果,例如 Swin Transformer [37] 和 SegFormer [55]。然而,这些特化的视觉Transformer结构仍采用类似CNN的层级结构,本质上是为了直接替代CNN主干网络而设计的。

随着技术迅速发展,最近研究 [31] 得出一个新的结论:plain ViT(非层级结构的基础ViT)可能比预期更强大。该工作表明,一个视觉基础模型(vision foundation model)可以基于plain ViT训练,而下游任务可通过轻量的任务特定适配完成。

在本文中,我们试图探索plain ViT在图像抠图这一高难度任务中的潜力,因为该任务需要非常精细的视觉信息,这种细节通常很难通过一般的基础模型学到。

2.2. Plain ViT的预训练

预训练与微调已经成为众多视觉理解任务的标准范式。大多数vision transformer通常在ImageNet [12]上通过有监督学习进行预训练。

最近,受自然语言处理领域的启发,一些自监督预训练策略被引入到计算机视觉中 [4, 13, 42, 43],以解决对大量标注数据的依赖问题。许多方法(如 MAE [22]、DINO [6] 和 iBOT [63])主要面向plain ViT结构进行自监督预训练。

这些方法已被证明可以显著提升诸如语义分割、目标检测、实例分割等下游任务的性能。

然而,目前尚未系统性地探索如何从计算效率和预测精度两个角度,最有效地利用这些预训练表示来提升图像抠图性能。

2.3. Plain ViT在下游任务中的应用

Plain ViT 最初是作为图像分类的强大主干网络提出的 [14]。但由于其非层级结构设计,它在与许多下游任务中常见的解码器或head模块兼容性较差。因此,人们通常更倾向于使用为视觉任务专门设计的Transformer结构,如 [16, 25, 37, 53, 61],这些结构具有多层级架构,易于迁移到众多基于CNN的任务中。但随着针对plain ViT的自监督预训练方法的崛起(如 [22]),这种非层级结构重新获得了研究关注。例如,ViTDet [31]发现,即使不使用复杂的FPN(Feature Pyramid Network) [34],仅通过并行的反卷积层(deconvolutions)生成简单的特征金字塔,plain ViT也能在目标检测任务中取得优异表现。ViTPose [57]则发现,ViT比CNN更适配于简洁的解码器设计。我们推测,ViT这一“简洁”特性将有助于开发新的结构设计,用于解决图像抠图任务。

温馨提示
阅读全文请访问"AI深语解构" ViTMatte:利用预训练的基础视觉Transformer提升图像抠图性能

相关文章:

  • 云计算在布莱克-斯科尔斯模型中的应用:解析解、蒙特卡洛模拟与可视化-AI云计算数值分析和代码验证
  • Node.js特训专栏-实战进阶:11. Redis缓存策略与应用场景
  • 【更新至2024年】1999-2024年各省城镇居民人均消费支出数据(无缺失)
  • 八股文——JAVA基础:String s1 = new String(“abc“);这句话创建了几个字符串对象?
  • window11 本地安装 MySQL8.0
  • SAP顾问职位汇总(第26周)
  • 数据分析标普500
  • 实现win系统控制局域网的linux主机桌面
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符
  • 知攻善防靶机 Windows 挖矿事件应急
  • 通过交互式网页探索传输现象-AI云计算数值分析和代码验证
  • 博图SCL编程利器:CASE OF 语句详解与应用指南之设备运行模式选择框架
  • pytorch学习—4.反向传播(用pytorch算梯度)
  • 设备预测性维护和异常检测系统设计方案
  • 什么是 Event Loop?
  • 自然语言处理NLP期末复习
  • web3区块链-ETH以太坊
  • 抗辐照芯片技术在商业卫星领域的应用与突破
  • MySQL技巧
  • Spring Cloud:服务监控与追踪的高级实践