海量新知
5 9 1 5 1 5 8

V2 :一个用于视觉任务的统一序列接口

财经快报 | 2022/08/30 12:32:35

本文分享一篇由图灵奖获得者Geoffrey Hinton团队最近公开的一篇论文 『A Unified Sequence Interface for Vision Tasks』 。作者在文中提出使用统一的接口对多种不同类型的视觉任务进行建模。在目标检测、实例分割、关键点检测、图像描述等视觉任务上,取得了与专门为特定任务设计的模型相比具有竞争力的性能。

详细信息如下:

  • 论文链接:https://arxiv.org/abs/2206.07669

  • 代码链接:暂未开源

01

摘要 :

虽然语言任务能够自然地使用一个单一的、统一的建模框架,即生成一个由多个token组成的序列来表达,但这种统一方式的建模框架却并未在计算机视觉中得到实现。对于不同的视觉任务,通常会有大量不同的网络结构和损失函数。

本文表明了,通过形式化为一个共享的pixel-to-sequence的接口,一组不同的“核心”计算机视觉任务也可以被统一起来。本文主要关注四个不同的视觉任务,即目标检测、实例分割、关键点检测和图像描述。这些任务都具有不同类型的输出,例如包围框(bounding boxes)或密集的掩码。尽管如此,本文表明了,通过将每个任务的输出形式化为具有一个统一接口的一个离散的token序列,可以做到在所有这些任务上仅训练一个具有单一模型结构和损失函数的神经网络,而不需要针对特定任务进行模型结构或损失函数的定制。

为了解决一个特定的任务,本文使用一个简短的prompt作为该任务的描述,网络的输出序列适应于该prompt,因此模型能够产生特定于任务的输出。本文表明,与已经提出的特定任务的模型相比,本文所提出的模型可以实现具有竞争力的性能。

02

Motivation

训练一个能够执行大量任务的单一神经网络模型是朝着通用人工智能迈出的重要一步。近年来,随着使用Transformer的大型语言模型的兴起,许多不同的语言及相关的任务被统一在一个单一的建模框架下,其中的语言模型在给定的任务描述prompt(以文本token的形式)下被训练用于预测出解决方案(以文本token的形式)。这是唯一能够做到的,因为这些任务(包括任务描述和解决方案)都能够用相同的、丰富的语言接口来表达。

这种方案可以自然地扩展到一些视觉任务,如图像描述或视觉问答,因为这些解决方案是以自然语言的形式给出的,但大多数“核心”计算机视觉任务有不同的输出,不能用自然语言的形式来表达。目标检测任务生成一组通常与排名分数相关联的边界框及其对应的类别标签。实例分割的输出是一组与图像的区域相对应的分割掩码。关键点检测的输出是图像中关键点的集合。现有的方法为这些复杂的任务中的每一个开发了专门的架构和复杂的损失函数。

通过一个简单的接口,用一个统一的框架来表达看似不同的视觉任务,是实现通用人工智能的过程中的一个重大目标。这将简化新任务的架构和损失函数的设计。它将在许多不同的任务中实现更大程度的特征/表示共享,从而避免了每个任务都需要一个复杂的输出头。它还将促进现有模型适应新的任务。

为此,本文提出了一种方法,将四个看似不同的视觉任务统一在一个pixel-to-sequence的接口中。实际上,这是对Pix2Seq方法的扩展,用于从目标检测扩展到更广泛的任务集合。为了从概念上证明该方法的有效性,本文专注于四个核心的视觉任务,即目标检测、实例分割、人体关键点检测和图像描述。

本文首先展示了如何将这些任务统一到一个单一的共享接口,然后用一个共享的结构和目标函数训练一个神经网络。为了解决一个特定的任务,本文不使用特定于该任务的head,而是使用一个prompt来指定该任务,序列的输出与该prompt相适应,因此它可以根据任务描述来产生特定于该任务的输出。这使得多任务学习更加高效和可扩展。本文在具有挑战性的COCO数据集上进行了实验,并表明本文提出的方法可以同时解决所有四项任务,没有专门对应于某个任务的结构或损失函数。

03

方法

图1:本文所提出的框架示意图。给定一张图片和一个任务对应的prompt序列,模型将产生一个与预期输出对应的离散token序列。

如图1所示,本文将计算机视觉任务作为将像素输入(以及任务的一些描述)转换为离散token序列的任务。为了从概念上证明该方法的有效性,本文专注于四个核心的视觉任务:目标检测,实例分割,关键点检测和图像描述。作者认为,在所提出的框架中将更多的任务包含进来是相对简单的。

A unified interface with tokenization

本文所考虑的视觉任务是多种多样的,而且在传统上已经形成了相当不同的形式。目标检测要求模型为所有物体生成不重复的边界框。实例分割需要模型为每个被识别出的物体实例产生一个密集的像素级掩码。人体关键点检测需要模型生成与人的身体部位(如头部、眼睛)等特定位置对应的点。图像描述要求模型生成与图像的自然语言描述相对应的单词序列。考虑到输出形式的显著差异,定制化的模型将为每个任务设计专门的结构和损失函数。

为了使用一个单一模型解决这些任务,本文提倡将任务输入和输出进行转换或token化为一个统一的接口。在本文所提出的工作中提出了一个序列接口,为了将任务描述和输出都表示为离散的token序列:

  • 对于目标检测,本文遵循Pix2Seq的方法,通过量化连续的图像坐标,将包围框和物体描述转换为一系列离散token。

  • 对于实例分割,本文以一个图像坐标序列的形式预测对应于实例掩码的多边形(详见Polygon-RNN,即以某个给定的多边形顶点为起始点,按顺时针方向确定多边形顶点的序列),而不是逐像素掩码。同样,本文将坐标量化为离散的token。

  • 对于关键点预测,给定一个人体实例,本文将关键点预测为一个量化的图像坐标序列。

  • 对于图像描述,本文直接预测文本token。

图2:用于四个任务的序列接口的示意图。模型接收输入图像、任务的prompt token并生成任务输出token,这些token可以被解码为所需的任务输出用于进行可视化。

值得注意的是,所有四个任务都使用同一个词汇表。具体的prompt和输出序列如图2所示。

Unified architecture and objective function

本文需要一个灵活且富有表现力的结构,能够处理具有复杂语义的图像输入和序列输出。因此,本文遵循Pix2Seq方法,并使用一个编码器-解码器结构,即一个图像编码器和序列解码器。图像编码器感知图像上的像素,并将它们映射到隐藏表示中,具体可以实例化为ConvNet,Transformer,或者它们的组合形式。基于Transformer的序列解码器,广泛应用于现代语言建模中, 它每次生成一个token,条件是前面的token和编码后的图像表示。这消除了这些视觉任务的现代神经网络架构的复杂性和定制性(例如每个任务特定的head或neck)。

与Pix2Seq方法不同的是,解码器以一个任务的prompt为条件,直接为单个目标检测任务产生输出token,以便模型可以产生适应于感兴趣的任务的输出。在训练期间,模型将prompt和期望的输出连接到单个序列中,利用token加权方案确保解码器只被训练来预测期望的输出,而不是prompt token。在推理过程中,prompt是给定的,并且是固定的,所以解码器只需要产生序列的其余部分。类似于Pix2Seq方法,训练目标是最大化基于图像的token和之前的token的似然性,即,

其中

表示输入图像, 是一个长度为 的与 有关的序列。如前所述,序列 的初始部分是一个prompt,为此作者将权重 设置为零,使得它不被包含在损失中。训练目标如图3所示。

图3:本文所提出的结构和训练目标的示意图。需要注意的是

封装了任务的prompt token和任务输出token。如果目标token在prompt中,则将token权重设置为零,这样模型只被训练来预测所需的输出token。

04

训练

每个任务都有自己的成对图像序列训练数据。有两种方法可以将任务结合起来进行联合训练。

数据混合。作者认为,可以从不同的任务创建一个平衡了不同的数据集大小和任务难度的混合图像-序列对的数据集。这种结构在概念上非常简单,但图像增强技术可能很难合并,因为它们可能还需要修改与它们相关联的序列,而这并不能通过简单的方式来实现。

批混合。对于每一批数据,作者认为可以针对单个任务采样带有标注的图像,对该任务进行相应的图像增强,并将增强后的数据转换为图像-序列对。模型分别计算每个任务的损失和梯度,作者认为可以将特定任务的每一批数据的梯度以适当的形式加权组合起来。

算法1:基于数据混合的训练算法

算法2:基于批混合的训练算法

算法1和算法2给出了两种训练策略的总结:。在本文的工作中使用了批混合策略,因为它简化了图像增强的处理,作者希望在未来可以使用数据混合来进一步简化训练流程,并允许直接添加更多的任务。

数据混合和批混合都要求指定每个任务的损失函数的比例或权重。这是一个经验性的问题,本文使用贪心策略,每次添加一个任务。每次添加任务时,都会调整新任务的权重,同时保持现有任务之间的相对权重不变。作者将所有任务的权重之和固定为1。

Inference and de-tokenization

在推理阶段,在序列的开头给出一个prompt,即

,然后从模型的似然分布中采样token。作者目前使用核采样,但也可以使用其他技术,如集束搜索。token一旦生成后,就可以用于为每个任务进行解码。与不同的任务需要特定的token化方案来生成token序列相似,解码过程也是针对每个任务而言的。下面给出了每个任务的推理解码过程的更详细的描述。
  • 对于边界框,本文遵循Pix2Seq方法,将预测序列分解为具有5个token的元组,以获得坐标token和类别token,并对坐标token进行反量化以获得边界框。

  • 对于实例分割,本文对每个多边形对应的坐标token进行反量化,然后将它们转换为密集的掩码。模型本身没有使用任何几何特定的正则化器进行训练,因此输出的多边形掩码可能带有噪声。为了减少噪声,作者发现对多个序列进行采样,然后对掩码进行平均,再通过一个简单的阈值得到一个二进制掩码是很有帮助的。

  • 对于关键点检测,本文直接对关键点的图像坐标token进行反量化。

  • 对于图像描述,本文直接将预测的离散token映射到文本中。

05

实验 :

Quantitative results

表1:在COCO数据集上目标检测,实例分割,关键点检测和图像描述的结果。

从表1中可以看到,尽管在结构和损失函数中没有针对特定任务的先验,本文所提出的模型对于每个单独的任务仍然可以获得与专门定制化的较强的baseline相比具有竞争力的结果(即使输入图像的尺寸更小)。在所有任务上训练单个模型时,本文所提出的模型能够相对较好地处理这些任务,即使模型的大小保持不变。

作者还观察到,当输入图像尺寸较大时,性能通常会得到提高,但关键点检测任务例外,由于它已经使用了一个裁剪过的感兴趣区域来检测关键点,因此放大图像大小不一定有帮助,并可能导致在有限的标记数据的情况下发生过拟合。

Qualitative results

作者在COCO验证集的图像上展示了多任务模型的输出,包括四个任务中的每一个,即目标检测、实例分割、关键点检测和图像描述。

图4:目标检测的可视化结果。

图4展示了目标检测任务的结果。本文提出的模型成功地在有明显遮挡的杂乱场景中检测出不同大小的物体。

图5:实例分割的可视化结果。

图6:人体关键点检测的可视化结果。

图5和图6展示了实例分割和关键点检测的结果。对于这两个任务,多任务模型产生了定位良好和准确的预测结果。

表2:图像描述的结果。

表2展示了模型生成的一些图像描述。注意到本文的模型没有使用大规模的图像-文本数据集进行预训练,而这有望显著提高模型的图像描述性能。

06

结论

本文探究了一个统一的序列接口来处理不同的“核心”视觉任务集,其中任务描述(prompt)和任务输出都表示为token的离散序列。这与多任务视觉模型的传统形式有很大的不同,因为模型结构和损失函数在任务之间都是共享的。本文表明,与已建立的特定任务的模型相比,这样的模型可以实现具有竞争力的性能。

本文提出的工作也具有局限性。其中一个是,由于本文的方法是基于自回归建模的,因此与定制化的系统相比,推理速度可能会更慢。然而,作者相信这可以在未来的工作中得到解决。由于与传统方法具有重大区别,作者相信模型结构和训练技术都可以进一步改进,以挑战最先进的定制化系统。

作者认为,本文提出的模型可以通过扩大规模而显著受益,无论是在更大的数据集(例如,图像-文本对)上进行预训练,还是使用更大的模型尺寸。

更多相关内容

更多相关内容

猿巴巴_商业服务平台精选

更多精选内容