论文地址:https://arxiv.org/pdf/2312.02153
开源:https://github.com/shenyunhang/APE
Demo链接:
https://huggingface.co/spaces/shenyunhang/APE_demo
简介:训练和推理代码以及模型权重全部开源!一次性检测&分割任意多类别或短语!一个模型一套参数在160种测试集上取得当前SOTA或极具竞争性的结果!
在线Demo
https://huggingface.co/spaces/shenyunhang/APE_demo
介绍
近期视觉基础模型(Vision Foundation Models)方向一直在探索建立一个通用的视觉感知系统,已有的方法可以分为三类:
(1)第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter;
(2)第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP、UNINEXT和GroundingDINO等,但这类方法在每次推理时只能检测非常有限数量的类别(例如lvis的1023类单词要拆分成30多次推理)或者单个句子,检测类别或者句子长度的提升会给计算量和性能带来巨大的挑战;
(3)第三类方法是开集语义分割,例如SAM、Xdecoder和SEEM等,但这类方法在加上语义信息时面临着前景可数物体和背景不可数物体的粒度差异问题,导致性能下降,这类方法往往需要设计特定的网络结构或者训练策略来缓解前背景冲突;
针对以上问题,来自厦门大学等机构的研究人员提出一种新的模型APE,其框架如下所示:
方法
Independent Prompt:
给定多个目标类别,例如Girl和Sky等,以往的方法通常直接联结这些类别名组成一个单独的Prompt:“Girl. Sky. …”,这种构造方式是期望可以建模不同类别名之间的相互关系。但我们发现这种类别名之间的相互关系不是必须的,每种类别名独立建模就可以学习不同的实例。为此,我们对每种类别名或者描述的短语都进行独立建模:[“Girl”, “Sky”, “Little child with hat on branch”, “The big chinchilla”, . . . ],并获得其独立的prompt embedding。
Sentence-Level Embeddings:
为了减少计算复杂度和内存消耗,我们进一步将Word-Level Embeddings压缩成Sentence-Level Embeddings,也就是将一句话中所有Word Embeddings求平均,我们实验中发现这种Sentence-Level Embeddings足够表达语义信息。
Gated Cross-modality Interaction:
GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。我们则针对不同的Prompt类型来进行特征融合,对于纯类别名(Vocabulary Prompt)的文本特征,我们采用一种“zero”文本token来作为它们的替代,过往经验表明直接将Vocabulary Prompt和视觉特征融合容易导致过拟合现象,使得在新类别上的表现欠佳。语言描述(Sentence Prompt)的文本特征则被融合到视觉特征中以实现语义级的理解。
Region-sentence Alignment:
我们直接通过矩阵乘法计算Object Embeddings和Prompt Embeddings之间的相似度,从而实现一次性检测&分割万物。值得注意的是我们维持了一个Embedding Bank用于构建负样本。
Thing-stuff-equalizing Alignment:
分割任务的前景和背景的粒度是不同的,比如背景天空即使由好几块组成,但仍然被认为是同一个标签,而前景比如人则是单独的标签。这种粒度差异会给模型训练带来挑战,为此我们提出统一前景和背景的粒度,对于不同块的背景我们将其视为独立的标签,如上图中的“天空”。这使得模型可以采用统一的架构训练前景和背景数据,也可以方便地融入SA-1B这类大规模的Class-Agnostic数据。
数据配比:
我们使用了10中常见的开源数据集进行训练,包括通用检测分割数据(COCO、Objects365),长尾检测分割数据(LVIS),联邦标注的数据(OpenImages),指向性检测分割数据(VG、RefCOCO/+/g、GQA、Phrascut、Flickr30k),不带语义的分割数据(SA-1B)。我们提出一些列原则精心设计数据配比和损失权重。
实验效果
我们进行了大规模的实验以验证我们方法的有效性,APE-ABCD对应用不同的训练数据。可以看到我们的方法在160种测试集上普遍取得了当前SOTA或具有竞争性的结果,值得注意的是我们只采用了一个模型架构和一套参数,没有针对下游任务进行微调。
论文一共训练了四组大模型:
APE (A):基础版,基于DETA构建,并只在通常的检测和分割数据集上训练,包括COCO, LVIS, Objects365, OpenImages, and Visual Genome。
APE (B):APE (A)的基础上加入Visual Genome和COCO的指向性检测和分割数据进行训练。
APE (C):进一步加入大规模SA-1B数据集进行训练。
APE (D):除了上面的数据,进一步加入GQA, PhraseCut, Flickr30k数据集,并且修改了部分训练策略。
性能比较总览
整体上看,APE方法在各个检测、分割和指向性检测数据集上都比之前的方法好,特别是在D3数据集上。
开集检测的效果比较
在检测上,主要比较了LVIS、OpenImages,Objects365和COCO这四个常见数据集。APE的效果优势非常明显。不少方法都在Objects365上预训练过,例如GLIP, OWL, and UNINEXT,但是他们在这些训练过的数据集上效果也并不是很好。另外实验还比较了RoboFlow100和ODinW评测基准。RoboFlow100和ODinW分别由100和35个独立的小数据集组成,专门用于开集评测。APE在这两个数据集上取得了新SotA。
开集分割的效果比较
在开集分割评测基准上,当类别数量较多时候,例如PC-459, ADE20K和SegInW分别有 459, 150和85个类,APE的效果比其他方法好不少。其中SegInW由25个差异很大的小数据集组成,专门用于开集分割评测。而在类别数量较少的数据集上,APE的效果相对差些。
视觉定位的效果比较
在视觉定位D3评测基准上,APE取得的效果提升最明显。特别在inter-scenario的设定下,大部分方法的指标都低于6,而APE可以取得21.0。因为在inter-scenario设定下,每张图都要用422个句子去查询,之前模型总是会每句话预测一个物体,因此效果不理想,而APE会拒绝不相关的查询。在intra-scenario设定下,APE在各项指标上也取得了15+个点的提升。
论文地址:https://arxiv.org/pdf/2312.02153开源链接:https://github.com/shenyunhang/APEDemo链接:https://huggingface.co/spaces/shenyunhang/APE_demo
我是朋克又极客的AI算法小姐姐rumor北航本硕,NLP算法工程师,谷歌开发者专家欢迎关注我,带你学习带你肝一起在人工智能时代旋转跳跃眨巴眼