我自己的原文哦~ https://blog.51cto.com/whaosoft/12319712
#BLIP3
BLIP 作为一种新的 VLP 框架可以灵活地在视觉理解任务上和生成任务上面迁移,并且提出了一种高效率利用噪声网络数据的方法。
BLIP 是一种多模态 Transformer 模型,主要针对以往的视觉语言训练 (Vision-Language Pre-training, VLP) 框架的两个常见问题:
- 大多数现有的预训练模型仅在基于理解的任务或者基于生成的任务方面表现出色,很少有可以兼顾的模型。
- 大多数现有的预训练模型为了提高性能,使用从网络收集的嘈杂图像-文本对扩展数据集。这样虽然提高了性能,但是很明显这个带噪声的监督信号肯定不是最优的。
BLIP 这种新的 VLP 框架可以灵活地在视觉理解任务上和生成任务上面迁移,这是针对第一个问题的贡献。至于第二个问题,BLIP 提出了一种高效率利用噪声网络数据的方法。即先使用嘈杂数据训练一遍 BLIP,再使用 BLIP 的生成功能生成一系列通过预训练的 Captioner 生成一系列的字幕,再把这些生成的字幕通过预训练的 Filter 过滤一遍,得到干净的数据。最后再使用干净的数据训练一遍 BLIP。
BLIP:统一理解和生成的自举多模态模型
论文名称:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation (ICML 2022)
论文地址:
https://larxiv.org/pdf/2201.12086.pdf
代码地址:
https://github.com/salesforce/BLIP
官方解读博客:
https://blog.salesforceairesearch.com/blip-bootstrapping-language-image-pretraining/
视觉语言训练 (Vision-Language Pre-training, VLP) 最近在各种多模态下游任务上取得了巨大的成功。然而,现有方法有两个主要限制:
- 模型层面: 大多数现有的预训练模型仅在基于理解的任务或者基于生成的任务方面表现出色,很少有可以兼顾的模型。比如,基于编码器的模型,像 CLIP,ALBEF 不能直接转移到文本生成任务 (比如图像字幕),而基于编码器-解码器的模型,像 SimVLM 不能直接用于图像文本检索任务。
- 数据层面: 大多数现有的预训练模型为了提高性能,使用从网络收集的嘈杂图像-文本对扩展数据集。这样虽然提高了性能,但是很明显这个带噪声的监督信号肯定不是最优的。
本文提出了 BLIP:Bootstrapping LanguageImage Pre-training,用于统一的视觉语言理解和生成。BLIP 是一种新的 VLP 框架,与现有的方法相比,它可以实现更广泛的下游任务。它分别从模型和数据的角度引入了两个贡献:
- BLIP 提出了一种编码器-解码器混合架构 (Multimodal mixture of Encoder-Decoder, MED),MED 的特点是很灵活,它既可以作为单模态的编码器,又可以作为基于图像的文本编码器,或者基于图像的文本解码器。BLIP 由三个视觉语言目标联合训练:图像文本的对比学习、图像文本匹配和图像条件语言建模。
- BLIP 提出了一种高效率利用噪声网络数据的方法。即先使用嘈杂数据训练一遍 BLIP,再使用 BLIP 的生成功能生成一系列通过预训练的 Captioner 生成一系列的字幕,再把这些生成的字幕通过预训练的 Filter 过滤一遍,从原始网络文本和合成文本中删除嘈杂的字幕,得到干净的数据。最后再使用干净的数据训练一遍 BLIP。
BLIP 的模型架构 MED
如下图1所示是 BLIP 的模型架构 MED,看上去稍微有点复杂,一块一块拆开看。
1 视觉编码器:提取图片特征
图1最左边的是视觉编码器,就是 ViT 的架构。将输入图像分割成一个个的 Patch 并将它们编码为一系列 Image Embedding,并使用额外的 [CLS] token 来表示全局的图像特征。视觉编码器不采用之前的基于目标检测器的形式,因为 ViLT 和 SimVLM 等工作已经证明了 ViT 计算更加友好。
2 文本编码器:提取文本特征
图1第2列的是视觉编码器,就是 BERT 的架构,其中 [CLS] token 附加到文本输入的开头以总结句子。作用是提取文本特征做对比学习。
3 视觉文本编码器:
图1第3列的是视觉文本编码器,使用 Cross-Attention,作用是根据 ViT 给的图片特征和文本输入做二分类,所以使用的是编码器,且注意力部分是双向的 Self-Attention。添加一个额外的 [Encode] token,作为图像文本的联合表征。
4 视觉文本解码器:
图1第4列的是视觉文本解码器,使用 Cross-Attention,作用是根据 ViT 给的图片特征和文本输入做文本生成的任务,所以使用的是解码器,且注意力部分是 Casual-Attention,目标是预测下一个 token。添加一个额外的 [Decode] token 和结束 token,作为生成结果的起点和终点。
一个需要注意的点是:相同颜色的部分是参数共享的,即视觉文本编码器和视觉文本解码器共享除 Self-Attention 层之外的所有参数。每个 image-text 在输入时,image 部分只需要过一个 ViT 模型,text 部分需要过3次文本模型。
BLIP 的预训练目标
BLIP 在预训练期间联合优化了3个目标,有两个理解任务的目标函数和一个生成任务的目标函数。
对比学习目标函数 (Image-Text Contrastive Loss, ITC)
ITC 作用于1 视觉编码器 和 2 文本编码器,目标是对齐视觉和文本的特征空间。方法是使得正样本图文对的相似性更大,负样本图文对的相似性更低,在 ALBEF 里面也有使用到。作者在这里依然使用了 ALBEF 中的动量编码器,它的目的是产生一些伪标签,辅助模型的训练。
图文匹配目标函数 (Image-Text Matching Loss, ITM)
ITM 作用于1 视觉编码器 和 3 视觉文本编码器,目标是学习图像文本的联合表征,以捕获视觉和语言之间的细粒度对齐。ITM 是一个二分类任务,使用一个分类头来预测图像文本对是正样本还是负样本。作者在这里依然使用了 ALBEF 中的 hard negative mining 技术。
语言模型目标函数 (Language Modeling Loss, LM)
BLIP 包含解码器,用于生成任务。既然有这个任务需求,那就意味着需要一个针对于生成任务的语言模型目标函数。LM 作用于1 视觉编码器 和 4 视觉文本编码器,目标是根据给定的图像以自回归方式来生成关于文本的描述。与 VLP 中广泛使用的 MLM 损失 (完形填空) 相比,LM 使模型能够将视觉信息转换为连贯的字幕。
BLIP 高效率利用噪声网络数据的方法:CapFilt
最后,将过滤后的图像-文本对与人工注释对相结合,形成一个新的数据集,作者用它来预训练一个新的模型。
BLIP 实验设置
BLIP 在两个 16-GPU 节点上面做预训练,视觉编码器以 ImageNet-1K 上预训练的 ViT 权重初始化,文本编码器以 BERT-Base 的权重初始化。使用 2880 的 Batch Size 训练 20 Epochs。
预训练数据集和 ALBEF 一样:
使用下面4个数据集,图片数加起来大概是 4M。
- Conceptual Captions
- SBU Captions
- COCO
- Visual Genome
还引入了噪声更大的 Conceptual 12M 数据集,最终将图像总数增加到 14.1M (有的数据集失效了)。
作者还尝试了一个额外的 web 数据集 LAION ,该数据集包含 115M 图像,具有更多的噪声文本。
BLIP 实验结果
如下图3所示,作者比较了在不同数据集上预训练的模型,是一个 CapFilt 的消融实验结果。Retrieval 代表检索任务的结果,Caption 代表生成任务的结果。
当使用 14M 的数据集设置时,联合使用字幕器 Captioner 和过滤器 Filter 可以观察到性能改进,而且它们的效果相互互补,证明了 CapFilt 方法能够从嘈杂的原始数据中提炼出有用的数据。
当使用更大的数据集 129M 的设置或者更大的模型 ViT-L 时,CapFilt 可以进一步提高性能,这验证了它在数据大小和模型大小方面的可扩展性。而且,仅仅增加字幕器和过滤器的模型尺寸时,也可以提高性能。
各个下游任务 BLIP 与其他 VLP 模型的对比
检索任务实验结果
如下图5所示是检索任务实验结果,作者做了两个数据集 COCO 和 Flickr30K。与现有方法相比,BLIP 实现了显着的性能提升。使用相同的 14M 预训练图像,BLIP 在 COCO 上的平均召回率 R@1 上比之前的最佳模型 ALBEF 高出 +2.7%。作者还通过将在 COCO 上微调的模型直接迁移到 Flickr30K 来做 Zero-Shot Retrieval。结果如图6所示,其中 BLIP 的性能也大大优于现有的方法。
图片字幕实验结果
如下图7所示是图片字幕任务实验结果,作者做了两个数据集 NoCaps 和 COCO,两者都使用在 COCO 上微调的模型和 LM 损失进行评估。作者遵循 SimVLM 的做法在每个字幕的开头添加了一个提示 "a picture of",发现这样使得结果更好了。使用了 14M 预训练图像的 BLIP 大大优于使用相似数量预训练数据的方法。使用了 129M 图像的 BLIP 实现了与使用了 200M 的 LEMON 相比具有竞争力的性能。值得注意的是,LEMON 需要很耗费计算量的预训练的目标检测器和更高分辨率 (800×1333) 的输入图像,导致推理时间比使用低分辨率 (384×384) 输入图像的无检测器 BLIP 慢得多。
视觉问答 (Visual Question Answering, VQA) 实验结果
VQA 要求模型预测给定图像和问题的答案。BLIP 没有将 VQA 制定为多答案分类任务,而是按照 ALBEF 的做法把 VQA 视为一种答案生成的任务。结构如下图8所示,在微调过程中,作者重新排列预训练模型,把视觉编码器的输出塞进文本编码器,这样图像和问题就编码为了多模态嵌入,再把这个表征输入文本解码器获得答案。VQA 模型使用真实答案作为目标使用 LM 损失进行微调。
自然语言视觉推理 (Natural Language Visual Reasoning, NLVR2) 实验结果
自然语言视觉推理任务要求模型预测一个句子是否描述了一对图像,是个二分类任务。为了能对两对图像进行推理,作者对预训练模型进行了简单的修改,如下图10所示。首先两个图片通过视觉编码器得到视觉特征,再分别通过两个交叉注意力来处理两个输入图片,并且把它们的输出合并起来送入 FFN 中。这两个 Cross-Attention 层是从相同的预训练权重初始化的。通过 [Encode] token 的过了 MLP 的输出完成二分类任务。
实验结果如下图11所示,BLIP 优于所有现有方法,除了 ALBEF 执行定制预训练的额外步骤。但是有趣的是,NLVR2 的性能并没有从额外的网络图像中受益太多,这可能是由于网络数据和下游数据之间的域差距。
视觉对话 (Visual Dialog, VisDial) 实验结果
视觉对话任务在自然会话设置中扩展了 VQA,其中模型不仅需要基于图像-问题对预测答案,还需要考虑对话历史和图像的字幕。作者对预训练模型进行了修改,如下图12所示。图片先经过 Image Encoder 得到视觉表征,Caption Encoder 的输入是字幕和 [Encode] token,并通过交叉注意力建模它们。Dialog Encoder 的输入是 [Encode] token,问题 QA 和对话历史。使用 ITM 损失进行二分类式的训练,以区分问题的答案是真还是假。
#BLIP-2
下一代多模态模型的雏形
最近ChatGPT风头正劲,但只能理解文字或多或少限制其才华的发挥。得益于Transformer在NLP和CV领域的大放异彩,多模态近几年取得了非常大的进步。但之前的工作大多数局限在几个特定的,比如VQA,ITR,VG等任务上,限制了其应用。最近,Junnan Li大佬挂出了他最新的杰作BLIP2。让我对多模态模型有了一些新的认识,希望通过本文分享一下我的想法。由于本身水平有限,加上很长时间没有survey过相关领域的论文了,里面大部分的思考可能都是闭门造车,所以不可避免有很多错误,欢迎大家指正讨论。
ALBEF,BLIP,BLIP2 都是 Junnan Li 大佬的杰作,给了我很大的启发。ALBEF去掉了笨重的Detector,BLIP统一了理解与生成,BLIP2再次刷新了我的认知,感谢大佬!
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
论文连接:https://arxiv.org/abs/2301.12597
代码仓库:https://github.com/salesforce/LAVIS/tree/main/projects/blip2
HF上的Demo:
https://huggingface.co/spaces/Salesforce/BLIP2
TL,DR
实现了开放性的多模态内容理解与生成,让我们有了更多的想象空间;
从新的视角去看待图文模态,引入了LLM模型。CV模型是传感器,负责感知,LLM模型是处理器,负责处理;
相对友好的计算资源,比起动辄几百张卡的大模型,BLIP 2 最大的模型也不过16张A100 40G;
传统图文任务上性能爆表;
从泰坦尼克号说起
BLIP2模型的多模态问答
开始前介绍论文前我们先来讨论下,实现图片中的问答,需要什么能力呢?
图片里发生了什么:一位男士在船头搂着一位女士。(感知-CV模型的能力)
问题问的什么:电影的结尾是什么?(感知-NLP模型的能力)
图片和电影有什么关系:这是泰坦尼克号里的经典镜头。(对齐融合-多模态模型的能力)
电影的结尾是什么:泰坦尼克号沉没了。(推理-LLM模型的能力)
对不同模型扮演角色的理解
从上面的问题可以看出,为了解决这个问题,需要几个模型配合一下。其实自从多模态模型(特别是图文多模态模型)出现,模态之间怎么配合就是个问题。
ViLBERT
19年20年的时候,ViLBERT和Uniter采用了Object-Text对来提升模型对图片的理解能力。Object的引入,不可避免的需要一个笨重的检测器,去检测各种框,使得图像模态显得比较笨重。而且检测器模型不可避免的会存在漏检的问题,可以参考后来Open-Vocabulary一些工作,比如ViLD。这一阶段,显然对图像的理解是多模态的重头戏,文本更多是辅助图像任务的理解。
ViLT
到了21年22年,去掉检测器成了主流,ViLT,ALBEF,VLMo,BLIP 等等都抛弃了检测器,彻底摆脱了CNN网络的舒服,全面拥抱Transformer,当然这也得益于本身ViT模型在CV领域的大放光彩,让两个模态的有机融合成为了可能。在这一阶段,文本模态感觉已经可以和图像模态平起平坐了。从在各项具体下游任务(VQA、VG、ITR)的实际表现上来说,已经比较令人满意了。但总感觉差点味道,就是复杂推理。比如VQA上的问题,大多数是简单的逻辑计算或识别,感觉还不够智能。
那么如何实现更加复杂的推理呢?众所周知,NLP领域一直领先于CV领域的发展。得益于更丰富的语料库,NLP领域的已经拥有了一些具有初步推理能力模型的研究,特别是LLM大模型的出现。(今天谷歌刚刚发布了22B的ViT,而在NLP领域这个规模的模型应该已经不算新闻了。)我对于LLM能力有多强的理解,其实也是ChatGPT之后才有明确的感知。
23年1月,BLIP2出来了,引入了LLM。从图像上看,BLIP2大概由这么几个部分组成,图像(Image)输入了图像编码器(Image Encoder),得到的结果与文本(Text)在Q-Former(BERT初始化)里进行融合,最后送入LLM模型。我是学自动化出身的,从自动化的角度看看BLIP2。
图像和文本:自然信号;
图像编码器(Image Encoder):传感器(图像);
Q-Former:传感器(文本)+ 融合算法(Query);
LLM:处理器。
之前的模型大多都关注在了传感器和融合算法的设计上,但忽略了处理器的重要作用。BERT模型虽然能理解文本,但却没有世界观的概念,没有庞大的背景知识库,只能作一个传感器。只有LLM模型,才能实现这一角色,统一起各个模态的信号,从一个宏观的角度去看待这个问题。这里引用一段原文中的话。
Powered by LLMs (e.g. OPT (Zhang et al., 2022), FlanT5 (Chung et al., 2022)), BLIP-2 can be prompted to perform zero-shot image-to-text generation that follows natural language instructions, which enables emerging capabilities such as visual knowledge reasoning, visual conversation, etc.
目前看,或许LLM就是下一代多模态模型的关键一环。
言归正传,我们开始介绍论文。
如何统一多模态的表征
LLM本质上是个语言模型,自然无法直接接受其他模态的信息。所以如何把各个模态的信息,统一到LLM能理解的特征空间,就是第一步要解决的问题。为此,作者提出了Q-Former。
为了融合特征,那Transformer架构是最合适不过的了。熟悉ALBEF或者BLIP的同学或许发现,Q-Former的结构和ALBEF其实很像,如果看代码的话,可以发现就是在ALBEF基础上改的。
相较于ALBEF,最大的不同,就是Learned Query的引入。可以看到这些Query通过Cross-Attention与图像的特征交互,通过Self-Attention与文本的特征交互。这样做的好处有两个:(1)这些Query是基于两种模态信息得到的;(2)无论多大的视觉Backbone,最后都是Query长度的特征输出,大大降低了计算量。比如在实际实验中,ViT-L/14的模型的输出的特征是257x1024的大小,最后也是32x768的Query特征。
这里其实有点疑问,也欢迎大家讨论。论文里是这样讲的:
This bottleneck architecture works together with our pre-training objectives into forcing the queries to extract visual information that is most relevant to the text.
作者通过Q-Former强制让Query提取文本相关的特征,但如果在推理时没有文本先验,那什么样的特征算是相关的呢?
针对Q-Former的三个训练任务分别是 Image-Text Contrastive Learning (ITC),Image-grounded Text Generation (ITG),Image-Text Matching (ITM)。其中 ITC 和 ITM 任务,与ALBEF中的实现类似,只不过图像特征改为了Query的特征,具体可以参考代码实现(ITC和ITM)。这里比较特别的是ITG任务,与ALBEF中的MLM不同,这里改成了生成整句Text的任务,类似Captioning,具体代码实现ITG。实际上,这几个任务都是以Query特征和文本特征作为输入得到的,只不过有不同的Mask组合,具体可以参考上图中的右图。
第一阶段,对于模型的训练,就是由以上三个任务组成,通过这几个任务,实现了对于特征的提取与融合。但现在模型还没见过LLM。我们现在用传感器完成了数据的提取与融合,下一步,我们得把数据转换成处理器能识别的格式。
变成LLM认识的样子
通过第一阶段的训练,Query已经浓缩了图片的精华,现在要做的,就是把Query变成LLM认识的样子。
为什么不让LLM认识Query,而让Query变成LLM认识呢?这里的原因有两:(1)LLM模型的训练代价有点大;(2)从 Prompt Learning 的观点来看,目前多模态的数据量不足以保证LLM训练的更好,反而可能会让其丧失泛化性。如果不能让模型适应任务,那就让任务来适应模型。
这里作者针对两类不同LLM设计了不同的任务:
Decoder类型的LLM(如OPT):以Query做输入,文本做目标;
Encoder-Decoder类型的LLM(如FlanT5):以Query和一句话的前半段做输入,以后半段做目标;
为了适合各模型不同的Embedding维度,作者引入了一个FC层做维度变换。
至此,模型两阶段的训练方法就介绍完了。
训练细节
作为图文预训练的工作,工程问题往往是关键。BLIP2的训练过程主要由以下几个值得关注的点:
训练数据方面:包含常见的 COCO,VG,SBU,CC3M,CC12M 以及 115M的LAION400M中的图片。采用了BLIP中的CapFilt方法来Bootstrapping训练数据。
CV模型:选择了CLIP的ViT-L/14和ViT-G/14,特别的是,作者采用倒数第二层的特征作为输出。
LLM模型:选择了OPT和FlanT5的一些不同规模的模型。
训练时,CV模型和LLM都是冻结的状态,并且参数都转为了FP16。这使得模型的计算量大幅度降低。主要训练的基于BERT-base初始化的Q-Former只有188M的参数量。
最大的模型,ViT-G/14和FlanT5-XXL,只需要16卡A100 40G,训练6+3天就可以完成。
所有的图片都被缩放到224x224的大小。
实验部分
作者首先用了整整一页的篇幅,为我们展示了BLIP2的 instructed zero-shot image-to-text generation 能力。这里暂且按下不表,到后面一起讨论。我们先看看BLIP2在传统的一些图文任务上的效果。
Image Captioning
作者用图片配合文字 prompt “a photo of”作为模型的输入。训练过程中冻结LLM,训练Q-Former和CV模型。可以看到,在域内数据集(COCO)上,其表现并没有非常亮眼,但在域外数据集NoCaps上,BLIP2显示出了强大的泛化能力,相交之前的模型有明显的提升。
训练的参数和IC任务一致,主要是Q-Former和ViT。不同的是,Q-Former和LLM都有Question作为文本输入。Q-Former的文本输入,保证了Query提取到的特征更加的精炼。
Image-Text Retrieval
ITR任务,作者只采用了第一阶段的Q-Former和ViT来做,没有引入LLM。具体的做法与ALBEF类似,先通过ITC任务算出点积相似度,再取Topk的匹配对,作ITM任务,得到最后的Matching Score。Flickr30K上再次刷新了SOTA,特别是I2T,基本饱和了。
Instructed Zero-shot Image-to-Text Generation
我觉得这个能力才是BLIP2最亮眼的地方。文章中是这样说的:
Selected examples of instructed zero-shot image-to-text generation using a BLIP-2 model w/ ViT-G and FlanT5XXL, where it shows a wide range of capabilities including visual conversation, visual knowledge reasoning, visual commensense reasoning, storytelling, personalized image-to-text generation, etc.
首先我们来看看BLIP2对信息的检索能力,下面几个例子都是对图片中物体的背景知识提问,可以看到,模型都给出了相应的答案。这里体现的实际上是LLM强大的背景知识库。图中有什么(ViT)+ 问的是什么(Q-Former,LLM)+ 找答案 (LLM)。
下面的几个问题,都是要求模型对图片的内容进行进一步的推理。比如图二,需要建立对男人惊讶和鸡之间的因果联系。
最后的几个问题是开放性的生成问题。需要模型有一定的长文本生成能力。
为了进一步探索BLIP2模型的效果,我也自己测试了一些Demo,这里采用的是ViT-G和FlanT5的模型组合,Hugging Face 上提供的CKPT加起来有50G左右了,作为一个平时接触CV多一点的人来看,是想当炸裂的,一般我模型的CKPT和最后那个零头差不多。
先介绍一下测试的输入格式,这里主要参考:
GitHub - NielsRogge/Transformers-Tutorials: This repository contains demos I made with the Transformers library by HuggingFace.
我测试了如下形式的输入样例,其中比较特别的是Incontext Learning,这里除了图片中的信息,我还会给出一段文本中的信息,希望模型通过综合两个模态的信息给出答案。
Single-question answering
Template:"Question: {} Answer:"
Input: [Query, Template]
Multi-questions answering
Context: "Question: {} Answer: {}."
Template: "Question: {} Answer: "
Input: [Query, Context, Template]
- Incontext Learning
- Template: "Context: {} Question: {}"
- Input: [Query, Template]
- Instructed Generation
- Input: [Query, Command]
下面是一些测试样例以及有趣的发现。粗体为模型的输出结果。
样例:Airbus 380
首先,我们问几个简单的问题
Q: What type of aircraft is this? A: a a380 Q: What are the characteristics of this type of aircraft? A: the a380 is the largest commercial passenger airline.
可以看到BLIP2基本给出了正确的回答,但当我询问飞机载客量时,模型确依然给出了380,推测可能是这个飞机和380这个数字的联系比较紧密。
Q: How many people can this aircraft accommodate? A: 380
于是,同样的问题,我们给出一点文字上的提示,这里摘取了一段Wiki上的介绍送入模型。
C: The Airbus A380 is a large wide-body airliner that was developed and produced by Airbus. It is the world's largest passenger airliner and only full-length double-deck jet airliner. Airbus studies started in 1988, and the project was announced in 1990 to challenge the dominance of the Boeing 747 in the long-haul market. The full-length double-deck aircraft has a typical seating for 525 passengers, with a maximum certified capacity for 853 passengers. Q: How many people can the aircraft in this figure accommodate? A: 853
这时,我们可以看到,模型成功的给出了回答。也就是说,模型有联合两个模态信息联合推理的能力。如果我们使点坏呢,比如给出错误的Context。
C: The Airbus A350 is a long-range, wide-body twin-engine jet airliner developed and produced by Airbus. Q: What type of aircraft is this figure? A: airbus a350
可以看到,模型输出了错误的答案。可能由于本身LLM对文字更加关注,而且Figure的概念可能对他来说并不熟悉,在他看来,32个Query只不过是带Visual信息的Word Token。
样例:交通标志
在这个样例中,我们直接让模型自己生成个问题。
Q: Give me several question about the figure. A: What is the speed limit on the road?
接着,我们问问看,模型自己知道答案么?
Q: What is the speed limit on the road? A: 40 mph.
可以看到,模型准确地给出了限速。接着我们让他做一些简单逻辑判断。
Q: Can I drive 70 mph here? A: No. Q: Can I drive 30 mph here? A: Yes.
模型竟然都能够正确的给出答案。最后,来个OCR的任务,让模型输出牌子上写了什么。
Q: What is written on this sign? A: speed limit 40.
模型同样也给出了正确的答案。可以看到,模型对于逻辑判断和图片中文字的识别,都有一定的基础。
样例:表格
这里先用文章中自己的表格做测试。
Q: What is the name of the table? A: a comparison of the mri and ct scans.
Emmm,属于是自家人不认自家人了。问问他认识自己不?
Q: Do you know BLIP2? A: BLIP2 is a protein that in humans is encoded by the BLIP2 gene.
好吧,不认识。接着又有一些问题,模型的回答也不是很好。
Q: Which model in the table performs best? A: dcm vs dcm vs dcm vs dcm vs dcm vs dcm. Q: How many training parameters does BLIP2 have? A: BLIP2 has a total of ten training parameters.
原因的话,其实比较好理解,表格的图片相对于自然图像的Gap较大,模型本身可能缺乏相应的训练数据;其次,虽然32的Query使得信息变得精炼,但也使得模型的表达能力有了瓶颈,加上224x224的大小,这种小文字的识别其实是比较困难的。我们看下个例子。
样例:图表1
我们让模型自己问个问题。
Q: Give me several question about the figure A: What is the percentage of survival for those with no adolescent treatment?
可以看到,模型提问的大致方向是可以的,比如存活率。但是图表中的Adjuvant Treatment却被识别成了adolescent treatment。这说明,模型有一定的OCR能力,但不多。尤其是对于这种比较小又不常见的文字,很容易识别错误。
样例:图表2
同样,先让模型自己问个问题。
C: Caption: Fig. 3. The hospitalization and ICU figures from our simulation. Q: Give me several question about the figure A: What is the population of the city?
自问自答一下。
C: Caption: Fig. 3. The hospitalization and ICU figures from our simulation. Q: What is the population of the city? A: NYC population 8 million.
从这里不难看出,模型其实对于常见的单词,即使图片比较小也能够很好地识别到。最后来个最难的。
Q: On day 20, approximately how many people were hospitalized? A: 200, 000.
这个问题的要求其实挺高,需要模型根据坐标去推断数值,不出意外的回答错误了。
Limitation
首先,不可否认的是,这篇工作确实让我们的想象空间更多了,尤其是 Instructed Zero-shot Image-to-Text Generation 的能力,我觉得肯定还有没有发现的潜在能力。但我们从测试样例中也看到,模型还存在一些问题。在文章中,作者也给出了一些Bad Case,比如错误的建立联系,错误的推断依据以及过时的知识库。
作者在文中对自己模型的不足主要解释为,首先,
However, our experiments with BLIP-2 do not observe an improved VQA performance when providing the LLM with in-context VQA examples. We attribute the lack of in-context learning capability to our pretraining dataset, which only contains a single image-text pair per sample.
由于图文数据集大多数是一对一的匹配,所以很难让模型建立上下文的联系。
其次,
BLIP-2's image-to-text generation could have unsatisfactory results due to various reasons including inaccurate knowledge from the LLM, activating the incorrect reasoning path, or not having up-to-date information about new image content.
这个主要是由于LLM模型本身局限决定的。
除了作者提到的几点,我觉得一下几点也是可以探索的:
- 细粒度的识别,由于图像的信息都浓缩在了32个Query中,所以能否识别细粒度信息以及图像中重要的位置信息就成了疑问;
- 更多的任务,BLIP2强大zero-shot能力,能不能应用在更多的任务上,多模态的类似VG,单模态的类似Classification。
- 当然从传感器与处理器的角度去看,其他模态(比如Audio)也可以拿个传感器去测,然后送给处理器分析分析hhh
当然,BLIP2的能力应该还远远没有被挖掘完,等有新的认识了再分享。
#视觉大语言模型~
这是视觉大语言模型在自动驾驶和智能交通中的最新应用
一点思考
当前VLM, LLM十分的热门, 尤其是在自动驾驶领域, 自动驾驶的输入本身就是多模态的, 这里面最重要的就是图像和语言信息, 所以如何将图像和文本信息综合利用, 以及如何充分利用LLM是当前急需要探索的, 目前其实已有部分工作是关于VLM及LLM在自动驾驶中应用的, 比如为了利用文本信息,为了出可解释性, 但是其实VLM与LLM在自动驾驶中的应用远不止这些, 可以结合的地方有很多, 比如感知, 决策,规划, 可以分别从这些方向入手探讨结合的方向。另外不光是自动驾驶领域,应该说整个cv领域在接下来都会有不少这方面的工作, 比如目标检测,分割, 跟踪, 分类, 行人ReID, 车辆ReID等,都可以借助VLM与LLM, 重新思考新的驾构, 使得性能再上一个新的台阶.
工作的意义
视觉语言模型(VLM)在自动驾驶(AD)和智能交通系统(ITS)领域的应用引起了广泛关注,这是因为它们的出色性能和利用大型语言模型(LLM)的能力。通过整合语言数据,车辆和交通系统能够深入理解现实环境,提高驾驶安全性和效率。在这项工作中,我们对这个领域的语言模型的进展进行了全面的调研,包括当前的模型和数据集。此外,还探讨了潜在的应用和新兴的研究方向。最后,全面讨论了挑战和研究空白。
有哪些贡献?
智能移动在现代文明中至关重要,推动经济增长,支持城市发展,加强社会联系。近年来,深度学习和计算能力的快速发展深刻地影响了交通运输,提高了其效率和智能化。智能移动的两个新兴领域是自动驾驶(AD)和智能交通系统(ITS)。
自动驾驶力图使车辆能够感知环境并智能驾驶。当前的自动驾驶技术,尤其是与感知和预测相关的技术,极大地受益于计算机视觉的进步。例如,感知模块通常使用卷积神经网络(CNNs)或Transformer ,从相机或激光雷达等传感器中处理数据,准确识别和定位周围的实体。然而,尽管取得了这些技术上的突破,当前的计算机视觉解决方案仍然在复杂和快速变化的环境中面临困难。它们经常无法捕捉复杂细节或理解上下文,从而导致潜在的安全问题,并限制了向更先进的自动驾驶的发展。
另一方面, 智能交通系统旨在提高交通安全性和流动性, 但尽管多年来它们的效率和可靠性有所提高,但挑战仍然存在。例如,实时交通流量预测很容易受到天气、碰撞事件或道路施工等各种环境因素的影响。
LLM 和VLM 的出现为当前自动驾驶和智能交通系统固有的局限性提供了潜在解决方案。这些新颖的技术综合了语言和视觉数据,为车辆和系统深入理解周围环境的未来带来了希望。这标志着智能、高效和可解释的交通运输的新时代。除了增强AD或ITS中的传统任务,如目标检测或交通流量预测,新兴领域还包括零样本感知和事故分析,如下图所示
考虑到将语言模型应用于自动驾驶和智能系统的研究激增,系统和全面的调研对于研究界非常重要。然而,现有的调研要重点在LLMs、VLMs、AD、TS各自领域上比较分散,没有一个综述系统地探讨VLMs在AD和ITS中的应用。
为此,我们对自动驾驶和智能交通系统中视觉语言模型的现有算法进行了综述,突出了研究界的最新技术趋势。
整体框架如下
该工作的主要贡献可以总结如下:
- 首次提出了关于视觉语言模型在自动驾驶和智能交通系统中应用的全面调研。
- 系统地总结和分析了现有的工作和数据集。
- 探讨了VLMs在自动驾驶和智能交通系统中的潜在应用和技术进展。
- 对该领域中的挑战和研究空白进行了深入讨论。
领域背景介绍
这一节主要是对自动驾驶, 智能交通系统以及大语言模型,视觉语言模型的大致介绍.
自动驾驶
自动驾驶目标是开发出能够在没有人类干预的情况下能自动导航和完成控制的车辆,以减少事故并提高交通效率。根据美国汽车工程师学会定义的驾驶自动化等级可以从0级(无自动化)到5级(完全自动化)。随着自主性的增加,人类干预减少,而车辆对环境的理解要求增加。目前,大多数商用车辆处于2级或3级,提供部分自动化但仍需要驾驶员监督。现有的自动驾驶解决方案可以大致分为经典模块化范式和端到端方法。然而,这些方案都面临着诸如可解释性、泛化性、因果混淆、鲁棒性等严重挑战。研究人员尝试使用各种方法来解决这些问题,但构建一个安全、稳定和可解释的自动驾驶系统仍然是一个未解决的课题。
智能交通系统
智能交通系统(ITS)利用先进技术来通过优化更广泛的交通环境来提高交通效率和安全性。通过整合道路传感器和道路用户等各种来源的实时数据,ITS包括一系列广泛的服务和应用,从自适应交通信号控制到实时交通监测、事故探测和预测、交通流预测以及协同车辆基础设施系统。尽管ITS在感知、通信和机器学习技术方面的发展增强了其应用范围,但仍然需要解决一些重要挑战。驾驶是一项社交活动,通常需要与其他交通参与者频繁交互,但当前系统仍然缺乏人类所依赖的智能和常识。
大语言模型
大型语言模型(LLMs)通常指具有庞大参数量的语言模型,往往达到十亿或更多。LLMs最显著的特点是展示了新兴的能力,如在众多下游任务中具备少样本或零样本迁移学习的能力,强大的多步推理能力和能够遵循指令的能力,这些通常在较小模型中不存在。ChatGPT,特别是GPT-3.5,标志着LLMs发展的一个里程碑。自发布以来,GPT-3.5一直因其卓越性能而受到关注。越来越多的研究人员开始探索和利用LLMs强大的语言理解、解释、分析和推理能力来解决以前难以甚至无法解决的问题。
视觉语言模型
视觉-语言模型(VLM)将自然语言处理(NLP)和计算机视觉(CV)的功能结合起来,打破了文本和视觉之间的边界。
随着LLMs的兴起,越来越多的注意力也开始放在探索如何将视觉模块有效地整合到LLMs中以执行多模态任务上。
在AD中,主流的视觉-语言模型可以根据输入和输出的模态类型广泛分为Multimodal-to-Text (M2T) 、Multimodal-to-Vision (M2V) 和Vision-to-Text (V2T) 。如图所示,
M2T通常将图像文本或视频文本作为输入,并生成文本作为输出;相应地,M2V接受图像文本作为输入,并生成图像或视频作为输出,而V2T则将图像或视频作为输入,并生成文本作为输出。
如下图所示,
根据模态之间的信息连接方法,AD中使用的VLMs可以分为Vision-Text-Fusion (VTF)和Vision-Text-Matching (VTM) 。VTF使用各种融合方法有效地整合了视觉嵌入和语言嵌入,并共同优化了用于目标任务的特征表示。相反,VTM,包括图像文本匹配和视频文本匹配,通过迫使视觉文本对在语义上靠近,并且不配对实例相互远离,学习了一个联合表示空间,实现了跨模态的语义对齐,及跨模态的语义传播。CLIP 是VLMs中的一个重要里程碑,通过对大量的图像文本对进行对比学习,捕捉与语言相关的图像特征表示,并实现了zeor-shot样本迁移能力。
视觉语言模型VLMs在自动驾驶中的应用
VLMs在自动驾驶中有越来越多的尝试。在本节中,介绍了在AD中存在的VLM工作,包括感知与理解,导航与规划,决策与控制,端到端AD,和数据生成。总结的当前方法如表所示
感知和理解
在自动驾驶感知中,尤其是那些在大规模图像-文本匹配数据集上进行预训练的VLM模型,已经推动了许多新的研究。这些研究利用预训练VLMs的丰富先验知识来提升感知和理解的性能,并进一步引入了许多新的任务。
行人检测
行人检测中固有的挑战包括类似人体的物体混淆和边际案例样本不足。为此,VLPD 首次提出了一种视觉语言额外注释的方法,以增强模型区分混淆的类似人体物体的能力,主要方法是利用CLIP获取逐像素明确的语义上下文,并通过对比学习将行人特征与其他类别的特征进行距离计算,提高对更广泛案例的检测能力。UMPD也利用了CLIP中的zeros-shot语义类,并提出了一种完全无监督的多视角行人检测方法,无需手工标注。
对象引用
与传统的感知任务相比,如目标检测、跟踪和语义分割,引入语言使模型能够获得更细粒度和全面无约束的理解周围环境的能力。
对象引用(OR)是该领域的一个典型任务, 目的是根据语言的query用框或者Mask把对应的物体给显示出来.
MSSG 在自动驾驶场景中提出了一种多模态3D单一物体指代(SOR)任务。它通过在鸟瞰视图(BEV)下融合图像、LiDAR和语言特征来训练多模态单次定位模型,并从检测器直接预测目标区域,无需后处理。TransRMOT 将SOR任务扩展到多物体指代和跟踪(MOR-T),并基于KITTI数据集构建了Refer-KITTI baselin。给定一个语言query,TransRMOT可以在视频中检测和跟踪任意数量的指代对象。类似地,PromptTrack 提出了nuScenes数据集的语言提示集合,并构建了NuPrompt baseline。与ReferKITTI相比,NuPrompt继承了nuScenes的多视角属性,使其适用于多视角MOR-T任务。
开放词汇的三维物体检测和语义分割
由于VLMs的zero-shot以及跨模态的能力, 目标检测和语义分割都具备在未知样本上执行开放词汇检测和分割的能力。UP-VL框架首先提出了一种无监督的多模态自动标记流程,用于生成点级特征和对象级边界框以及跟踪信息,以进行开放词汇类别无关的3D检测器监督,并在推断时进一步用于提供3D边界框。结合通过相似性匹配分配的语义标签,UP-VL框架实现了AD场景中静止和移动交通参与者的无监督开放词汇3D检测和跟踪(OV-3DOD-T)。OpenScene 利用2D-3D投影对应来强制使3D点云嵌入和相应的融合2D图像特征保持一致。基本上,它将3D点云表示与CLIP的图像-文本表示对齐,以获取密集3D点特征的零样本理解能力.OpenScene主要在室内场景中进行评估,但也在Nuscenes上展现出令人满意的开放词汇三维语义分割(OV-3DSS)能力。CLIP2Scene探索了如何利用CLIP来辅助自主驾驶中的3D场景理解。通过在像素文本映射和像素点映射之间寻找模态之间的关联,CLIP2Scene分别构建了点文本对和像素点文本对进行对比学习训练。客观性也是为了确保3D点特征及其相应的语言实现语义一致性,从而促进OV-3DSS。实验证明,使用CLIP2Scene作为预训练远远优于其他自监督方法。
交通场景理解
一个正确而高水平的对交通场景的理解对驾驶安全至关重要。在下图中,
展示了GPT-4V 在一个交通事故场景和一个具有潜在风险的城市道路场景中的理解能力示例。有几个探索性工作利用VLMs通过特定的下游任务来理解交通场景。比如可以通过对场景图像进行描述来理解交通场景,也可以将视觉信息转化为语言描述,然后利用LLMs的强大推理能力来解决语义异常检测 (SAD)。NuScenes-QA 基于nuScenes数据集,在自动驾驶场景中建立了视觉问答 (VQA) 任务的baseline,为后续的研究提供了基础。Talk2BEV 采用鸟瞰 (BEV) 检测模型、密集字幕模型和文本识别模型构建了真实语言增强的BEV地图,并根据VQA任务评估模型在视觉和空间理解方面的性能。目前这方面的工作都还处于早期阶段, 相信将来在这块儿应该会有越来越多的有趣的工作。
导航与规划
在导航领域,随着VLM的进步,尤其是CLIP 的提出,语言引导导航(LGN)任务开始从特定的预定义位置描述扩展到自由和任意的指令,这也推动了语言增强地图的发展。
语言导航
Talk to the Vehicle 提出了一种路标生成网络(WGN),它将语义占用和预定义的自然语言编码(NLE)映射到局部路标。规划模块然后使用局部路标来预测执行轨迹。Ground then Navigation 通过使用CLIP解决了语言导航任务。它提出了一个流水线,将视频帧,历史轨迹上下文和语言命令作为输入,并输出在每个时间戳上预测的导航mask和轨迹。ALT-Pilot 通过结合语言标志物(包括街道标志,交通信号和其他重要环境特征)来增强OpenStreetMap(OSM)道路网络,以替代传统的内存和计算昂贵的高清LiDAR地图。ALT-Pilot还利用CLIP在推断时预先计算每个标志物的特征描述符,并使用余弦相似度将它们与像素级视觉描述符进行匹配,从而促进了从语言导航指令到地图位置的对应,从而帮助多模态定位和导航。
预测和规划
一些研究还开始探索如何利用LLMs来提升运动规划和轨迹预测的性能。GPT-driver 将运动规划重新制定为语言建模问题,并将GPT-3.5模型转化为自动驾驶的运动规划器,想法主要是利用其强大的推理和泛化能力。CoverNet-T 提出了使用基于文本的场景描述和栅格化场景图像训练联合编码器进行轨迹预测的方法。它表明,基于文本的场景表示补充了图像编码的优势,并且联合编码器优于各自的对应部分。
决策与控制
在自动驾驶的决策和控制领域,有几项工作试图利用LLM的强大常识理解和推理能力来辅助驾驶员或是模拟并完全替代驾驶员。通过在AD中利用LLM进行闭环控制,大多数工作引入了一个记忆模块,用于记录驾驶场景、经验和其他重要的驾驶信息。
LanguageMPC 采用LLMs作为决策组件,解决需要人类常识理解的复杂自动驾驶场景。Drive as You Speak 提出了一个框架,将LLMs整合到自动驾驶中,并相应协调其他模块。驾驶员可以通过LLMs直接与车辆进行通信。该框架包括一个内存模块,将过去的驾驶场景经验保存在向量数据库中,其中包括决策线索、推理过程和其他有价值的信息。然后,LLMs根据所获得的经验和常识做出决策。DiLU 研究了人类驾驶员的驾驶方法,并提出了一个使用推理、记忆和反射模块促进LLMs与环境交互的范例。该方法将人类驾驶员的这些知识驱动能力嵌入到自动驾驶系统中。DwLLMs 将交通参与者和环境编码为对象级向量。它采用了一个两阶段的预训练和微调方法,使模型能够理解驾驶场景并生成驾驶动作。SurrealDriver 提出了一个基于LLMs的类人自动驾驶框架,该框架在CARLA模拟器内运行。通过记忆和安全机制,LLMs能够完成情境理解、决策和动作生成。它还学习人类驾驶员的驾驶习惯,并在闭环中持续优化驾驶技能。DLaH 引入了推理、解释和记忆模块,构建了一个基于GPT-3.5 和LLaMA-Adapter v2 的自动驾驶系统。它在场景理解和解决模拟中的长尾问题方面表现出强大的能力。
尽管现有的自动驾驶控制和决策工作完全依赖于低级逻辑模型 (LLMs),但它们可以通过视觉-LLMs连接器与感知模块轻松连接,实现mid-to-mid或端到端的自动驾驶。
此外,为自动驾驶系统设计一个专门适用的视觉语言模型(VLMs)连接器是一个有前景的方向。相信在不久的将来会涌现出大量工作。
端到端自主驾驶
端到端自动驾驶系统是一个完全可微的系统,它将原始传感器数据作为输入,并产生规划和/或低级控制动作作为输出,这与VLMs中的M2T模型的结构非常契合。由于这种自然的协同作用,一些研究开始探索将M2T VLMs模型应用于端到端自动驾驶的可行性。与传统的端到端自主驾驶系统相比,基于大规模VLMs的端到端自动驾驶系统具有强大的可解释性、可信度和复杂的场景理解能力,为端到端自动驾驶的实际应用和实现铺平了道路。DriveGPT4 是利用大规模VLMs进行端到端自动驾驶任务的开创性工作,它将原始传感器数据和人类问题作为输入,并输出预测的控制信号和相应的答案。它保留了LLMs强大的zero-shot能力,并能处理未知情境。ADAPT 提出了一个基于Transformer模型的端到端自动驾驶流程。通过视频输入,ADAPT 连续输出控制信号以及操作的叙述和推理描述。与DriveGPT4不同,ADAPT 不包含视觉问答模块,而是将可解释的端到端自动驾驶转化为视觉字幕生成任务。
数据生成
借助生成网络的进展和成功,将条件生成模型应用于自动驾驶中,可以生成大规模高质量的数据,从而推动数据驱动型自动驾驶的发展。DriveGAN 学习驾驶视频序列及其相应的控制信号。通过将场景组件分解为动作相关和动作无关的特征,它可以控制生成视频中的车辆行为。这种能力使得高保真度、可控性的神经仿真和自动驾驶数据生成成为可能。BEVControl 以素描风格的BEV布局和文本提示作为输入,生成街景的多视角图像。它引入了控制器和协调器元素,确保素描和输出之间的几何一致性,以及多视角图像之间的外观一致性。这种方法有助于基于BEV素描进行可控自动驾驶场景样本生成的可能性。一些工作将世界模型纳入自动驾驶数据生成,以实现更合理、可预测和结构化的环境模拟。DriveDreamer 是一个完全从真实驾驶场景中学习的自动驾驶世界模型。它经历了两个训练阶段:首先从真实驾驶视频中理解和建模驾驶场景,从而获取结构化的交通信息。第二阶段通过视频预测任务构建驾驶世界模型,获得预测能力。GAIA-1 将视频、动作和文本描述作为输入,利用世界模型的强大能力来学习结构化表示并理解环境,将这些输入编码成一系列的标记。然后,它采用去噪视频扩散模型作为视频解码器,实现高度逼真的视频。
VLMs在智能交通系统中的应用
智能交通系统越来越普及,并且作为实现完全自动驾驶能力的重要一步 。ITS通常由多传感器设置组成,由于其丰富而密集的语义信息,摄像头几乎总是存在的。与AD类似,VLMs也可以在许多方面促进ITS的发展,包括ITS感知和理解 ,以及ITS管理系统 以及VLMs在ITS中的潜在应用。当前的工作如下表所示.
ITS的感知和理解
安装在交通基础设施上的多传感器系统数量的快速增长极大增强了ITS的能力。它促进了对交通环境的更全面的感知和理解,使ITS能够准确地识别和解读复杂的交通场景。
语言引导的车辆检索
车辆检索是ITS感知和理解的关键组成部分。为了引起研究人员在这个方向上的关注,AI City Challenge作为一个挑战任务举办了基于自然语言描述的车辆检索。作为这一集体努力的一部分,提出了一种基于自然语言的车辆多粒度检索方法。关键概念是引入基于语言增强的多查询检索模块。这个模块的思想是利用多个不完美的语言描述来实现更高的鲁棒性和准确性。另外MLVR提出了一种多模态语言车辆检索框架,它使用文本和图像提取器进行特征编码,随后通过视频识别模块生成视频向量序列。通过集成结合各种车辆特征的模块,MLVR为匹配控制创建了更丰富的车辆向量,并实现了语言引导的检索
交通视觉场景推理
在ITS中,利用VLM的另一个新兴领域是视觉场景事件理解,通常形成为视觉问答(VQA)任务。文献70,提出了一种基于自动生成标题的弱监督交通领域视频问答与自动字幕方法。其核心贡献在于利用自动生成的合成标题对在线可用的城市交通视频进行微调,并将额外的交通领域知识注入到训练模型中。文献71提出了一种跨模态问题推理框架,用于识别事件级问题推理的时间原因背景。基于注意力的模块能够学习时间因果场景和问题对。文献72引入了Tem-Adapter,通过学习时间依赖关系来减小图像和视频领域之间的差距。在交通视频问答任务中表现出良好的性能。AnomalyCLIP采用CLIP模型进行视频异常检测。通过指定异常类别并使用上下文优化,它区分正常样本和异常样本,使模型能够识别异常实例。AnomalyCLIP在包括路边异常检测在内的各种数据集上取得了良好的结果。VLM增强的语义异常识别算法可以进一步扩展到ITS中的灾害或紧急响应。
ITS管理系统
ITS管理系统基于实时感知和场景理解提高交通系统的运营安全性和效率。通过管理交通信号,促进顺畅交通流动,及时更新道路状况,并提供及时事故报警。流量管理。先驱性研究探索了在交通流量管理领域中利用LLMs的应用,尤其是在交通信号控制方面。PromptGAT引入了一种基于提示的基于场地行动转换方法,这是LLMs在交通信号控制的实际应用中解决模拟到真实转换问题的首次应用。利用LLMs理解天气条件对交通状态和道路类型的影响,增强了在实际场景中政策的适用性,有效缩小模拟到真实的差距。
潜在应用
虽然许多方法已经探索了在各种交通场景中利用VLM的能力,但VLM在ITS中的全部潜力尚未得到充分发挥。
事故预测和检测
及时检测和预测事故的能力对确保道路安全至关重要。当前基于视觉的交通事故检测(TAD)和交通事故预测(TAA)仍面临着各种挑战,包括长尾和安全关键属性、复杂场景演变、恶劣环境和确定性不确定性。大模型VLM,凭借其在零样本泛化、深刻场景理解、边界案例识别和多步推理方面的卓越能力,成为解决当前挑战的有希望的解决方案。
崩溃报告
快速崩溃分析可以提高交通效率并防止进一步拥堵。M2V有条件的生成式虚拟语言模型代表一种潜在的解决方案。通过利用驾车人员记录的视频镜头以及他们的描述,该模型能够即时生成事故现场的叙述。根据事故发生时的驾驶员陈述,可以显著缩短处理意外情况的响应时间。
停车管理系统
智能停车解决方案可以利用语言引导导航和运动规划领域中展示的LLMs的规划能力,显著减少在城市地区寻找停车位的时间。通过与停车位管理系统集成,可以为车辆提供语言引导的路线指示,协助停车管理。通过与车辆端的语言引导导航系统接口,这种方法可以进一步增强,潜在地实现自动停车解决方案。
数据集
关于这方面的数据集可以参考下表
讨论
基于前面的论述,本节深入讨论与语言模型在自动驾驶和智能交通系统中的挑战和研究空白,并概述未来研究的潜在方向。
自动驾驶基础模型
现有的基础模型包括视觉基础模型、语言基础模型和多模态基础模型,为自动驾驶基础模型(ADFM)的可行性奠定了基础。ADFM定义为在广泛多样的数据集上进行预训练的模型,在解释性、推理、预测和自省能力方面表现出色,并且在感知、理解、规划、控制和决策等各种自动驾驶任务中具有高效性。一些研究已经做出了初步尝试,但如何将现有基础模型调整为ADFM,以使自动驾驶的客观性得以保持,仍然是一个相对未开拓的领域。
数据可用性和格式
尽管已经有许多现成的大规模自动驾驶数据集可用,但它们并不适合直接用于LLMs在AD和ITS中。例如,如何生成基于AD数据集的指令调整数据集并设计指令格式以适应ADFM的适应性仍然几乎没有研究。此外,一个大规模的图像-文本交通特定对数据集也可以对AD和ITS的发展非常有帮助,特别是对于依赖于VTM预训练模型的目标检测、语义分割、语言引导导航和语言引导检索的方法。
安全驾车对齐
LLMs 可能会产生与人类价值观相冲突的有偏见、有害的内容,需要进行对齐调整。同样,当训练10个自动驾驶基础模型时,对其控制策略、决策和响应机制与安全标准进行调整是至关重要的,以确保遵守稳定、安全和健康的驾驶价值观。在LLMs对齐调整方面,已有的技术,如来自人类反馈的强化学习(RLHF) 和监督对齐调整,都值得在这个领域尝试。
多模态适应性
如前面讲的目前利用LLMs进行运动规划、控制和决策的方法常常直接将传感器数据转换为文本表达,或者通过现有的感知算法或从仿真器中直接提取。虽然这种模块化方法简化了实验,但可能导致上下文和环境信息的丢失,并且严重依赖于感知算法的性能。因此,在自动驾驶场景中,研究建立视觉语言连接的可能性,可以是通过 VTM、VTF 或两者的混合作为简单手动重新制定的替代方向,值得追求。
时间场景理解
自动驾驶和ITS中的场景理解通常需要从视频中获取时间信息,以连续感知和理解交通环境和交通参与者的动态和因果关系。仅使用图像级别的VLMs 是不够的。例如,无法单凭一张单一图像 判断车祸的具体原因。如下图
因此,如何处理交通场景的时间传感器数据是一个仍需探索的问题。一种可能的方法是训练一个视频-语言模型,在这方面,所有现有的视频-语言适配器都有潜在的应用价值。另一种可能的路线涉及将视频数据转换为可以由图像-语言模型处理的范式,通过必要的集成时间适配器层和微调,从而增强模型对交通环境中的时空信息的理解能力。
计算资源和处理速度
实时处理和有限的计算资源对自动驾驶和智能交通系统中模型部署构成重大挑战。当前的LLM通常包含数十亿个参数,使得微调和推理都需要高度的资源消耗,无法满足实时要求。有几种现有技术可以缓解这些问题。例如,参数高效微调(PEFT)减少可训练参数的数量,同时保持令人满意的模型性能,从而最小化了微调过程中的资源消耗。此外,与通用的LLM不同,自动驾驶所需的知识通常是专业化和领域特定的,LLM所包含的大部分知识实际上对自动驾驶来说是冗余的。因此,采用知识蒸馏来训练一个更小、更适合自动驾驶的模型是可行的方法。深度学习中的其他常见模型压缩技术,如量化和修剪,也适用于这个。
结论
这个综述总结了自动驾驶和智能交通系统中视觉语言模型VLM的背景、当前进展、潜在应用和未来发展方向。它全面总结和分析了该领域中的一些重要任务、方法和数据集。根据当前的研究,本工作阐述了目前的挑战、潜在的解决方案和未来的研究方向。
paper链接: https://arxiv.org/abs/2310.14414
#视觉模型~评测~1
当前的视觉模型哪个更好?Meta团队最新一波研究来了。
如何根据特定需求选择视觉模型?
ConvNet/ViT、supervised/CLIP模型,在ImageNet之外的指标上如何相互比较?
来自MABZUAI和Meta的研究人员发表的最新研究,在「非标准」指标上全面比较了常见的视觉模型。
论文地址:https://arxiv.org/pdf/2311.09215.pdf
就连LeCun称赞道,非常酷的研究,比较了相似大小的ConvNext和VIT架构,无论是在监督模式下训练,还是使用CLIP方法进行训练,并在各种属性上进行了比较。
超越ImageNet准确性
计算机视觉模型格局,变得越来越多样复杂。
从早期的ConvNets到Vision Transformers的演进,可用模型的种类在不断扩展。
类似地,训练范式已经从ImageNet上的监督训练,发展到自监督学习、像CLIP这样的图像文本对训练。
在标志着进步的同时,这种选择的爆炸式增长给从业者带来了重大挑战:如何选择适合自己的目标模型?
一直以来,ImageNet准确率一直是评估模型性能的主要指标。自从引发深度学习革命以来,它已经推动了人工智能领域显著的进步。
不过,它却无法衡量因不同架构、训练范式和数据而产生的细微差别的模型。
如果仅根据ImageNet的准确度来判断,具有不同属性的模型可能看起来很相似(图 1)。随着模型开始过度拟合ImageNet的特性,精度达到饱和,这种局限性就会变得更加明显。
为了弥补差距,研究人员对ImageNet准确性之外的模型行为进行了深入探索。
为了研究架构和训练目标对模型性能的影响,具体比较了Vision Transformer (ViT)和ConvNeXt。这两种现代架构的ImageNet-1K验证精度和计算要求相当。
此外,研究对比了以DeiT3-Base/16和ConvNeXt-Base为代表的监督模型,以及OpenCLIP基于CLIP模型的视觉编码器。
结果分析
研究人员的分析旨在,研究无需进一步训练或微调即可评估的模型行为。
这种方法对于计算资源有限的从业人员尤为重要,因为他们通常依赖于预训练模型。
具体分析中,虽然作者认识到对象检测等下游任务的价值,但重点是那些能以最小的计算需求提供洞察力的特性,以及反映对真实世界应用非常重要的行为的特性。
模型错误
ImageNet-X是一个对ImageNet-1K进行了扩展的数据集,其中包含16个变化因素的详细人工标注,从而能够深入分析图像分类中的模型错误。
它采用错误率(越低越好)来量化模型在特定因素上,相对于整体准确性的表现,从而对模型错误进行细致入微的分析。ImageNet-X 的结果表明:
1. 相对于其ImageNet准确性,CLIP模型比受监督的模型犯的错误更少。
2. 所有模型都主要受到遮挡等复杂因素的影响。
3. 纹理是所有模型中最具挑战性的因素。
形状/纹理偏差
形状/纹理偏差会检验模型,是否依赖于纹理快捷方式,而不是高级形状提示。
这种偏向可以通过结合不同类别的形状和纹理的提示冲突图像来研究。
这种方法有助于了解与纹理相比,模型的决策在多大程度上是基于形状的。
研究人员对提示冲突数据集上的形状-纹理偏差进行了评估,发现CLIP模型的纹理偏差小于监督模型,而ViT模型的形状偏差高于ConvNets。
模型校准
校准可量化模型的预测置信度与其实际准确度是否一致。
这可以通过预期校准误差 (ECE) 等指标,以及可靠性图和置信度直方图等可视化工具进行评估。
研究人员在ImageNet-1K和ImageNet-R上对校准进行了评估,将预测分为15个等级。在实验中,观察到以下几点:
- CLIP模型置信度高,而监督模型则略显不足。
- 有监督的ConvNeXt比有监督的ViT校准得更好。
健壮性和可移植性
模型的健壮性和可移植性,是适应数据分布变化和新任务的关键。
研究人员使用不同的ImageNet变体评估了稳健性,发现虽然ViT和ConvNeXt模型具有类似的平均性能,但除了ImageNet-R和ImageNet-Sketch之外,监督模型在稳健性方面通常优于CLIP。
在可移植性方面,使用VTAB基准测试对19个数据集进行评估,监督ConvNeXt优于ViT,几乎与CLIP模型的性能相当。
合成数据
像PUG-ImageNet这样的合成数据集,可以精确控制相机角度和纹理等因素,成为一种很有前途的研究途径,因此研究人员根据合成数据分析模型的性能。
PUG-ImageNet包含逼真的ImageNet图像,这些图像具有照明等因素的系统变化,性能以绝对最高准确率来衡量。
研究人员提供了PUG-ImageNet中不同因素的结果,发现ConvNeXt在几乎所有因素上都优于ViT。
这表明ConvNeXt在合成数据上优于ViT,而CLIP模型的差距较小,因为CLIP模型的准确率低于监督模型,这可能与原始ImageNet的准确率较低有关。
特征不变性
特征不变性是指模型能够产生一致的表征,不受输入转换的影响,从而保留语义,如缩放或移动。
这一特性使模型能够在不同但语义相似的输入中很好地泛化。
研究人员的方法包括,调整图像大小以实现比例不变性,移动裁剪以实现位置不变性,以及使用内插位置嵌入调整ViT模型的分辨率。
在有监督的训练中,ConvNeXt的表现优于ViT。
总体而言,模型对尺度/分辨率变换的鲁棒性高于对移动的鲁棒性。对于需要对缩放、位移和分辨率具有较高鲁棒性的应用,研究结果表明有监督的ConvNeXt可能是最佳选择。
研究人员发现,每种模型都有自己独特的优势。
这表明模型的选择应该取决于目标用例,因为标准的性能指标可能会忽略关键任务特定的细微差别。
此外,许多现有的基准是从ImageNet派生出来的,这对评估有偏见。开发具有不同数据分布的新基准,对于在更具现实代表性的背景下评估模型至关重要。
ConvNet vs Transformer
- 在许多基准测试中,有监督的ConvNeXt比有监督的VIT具有更好的性能:它更好地校准,对数据转换不变,表现出更好的可转移性和健壮性。
- 在合成数据上,ConvNeXt的表现优于ViT。
- ViT有较高的形状偏向。
Supervised vs CLIP
- 尽管CLIP模型在可转移性方面更好,但监督的ConvNeXt在这项任务上表现出了竞争力。这展示了有监督的模型的潜力。
- 监督模型更擅长稳健性基准,这可能是因为这些模型是ImageNet的变体。
- CLIP模型具有较高的形状偏差,与其ImageNet精度相比,分类错误较少。
参考资料:
https://x.com/ylecun/status/1744833945055683068?s=20
#视觉大模型~~
众所周知,视觉系统对于理解和推理视觉场景的组成特性至关重要。这个领域的挑战在于对象之间的复杂关系、位置、歧义、以及现实环境中的变化等。作为人类,我们可以很轻松地借助各种模态,包括但不仅限于视觉、语言、声音等来理解和感知这个世界。现如今,随着 Transformer 等关键技术的提出,以往看似独立的各个方向也逐渐紧密地联结到一起,组成了“多模态”的概念。
今天,我们主要围绕Foundational Models
,即基础模型这个概念,向大家全面阐述一个崭新的视觉系统。例如,通过 SAM,我们可以轻松地通过点或框的提示来分割特定对象,而无需重新训练;通过指定图像或视频场景中感兴趣的区域,我们可以与模型进行多轮针对式的交互式对话;再如李飞飞团队最新展示的科研成果所示的那样,我们可以轻松地通过语言指令来操作机器人的行为。
该术语首次由Bommasani等人在《Stanford Institute for Human-Centered AI》中引入。基础模型定义为“通过自监督或半监督方式在大规模数据上训练的模型,可以适应其它多个下游任务”。
具体地,我们将一起讨论一些典型的架构设计,这些设计结合了不同的模态信息,包括视觉、文本、音频;此外,我们还将着重讨论不同的训练目标,如对比式学习和生成式学习。随后,关于一些主流的预训练数据集、微调机制以及常见的提示模式,我们也将逐一介绍。
最后,希望通过今天的学习让大家对基础模型在计算机视觉领域的发展情况,特别是在大规模训练和不同任务之间的适应性方面的最新进展有一个大致的认知。共勉。
近年来,基础模型取得了显著的成功,特别是通过大型语言模型(LLMs
),主要归因于数据和模型规模的大幅扩展。例如,像GPT-3
这样的十亿参数模型已成功用于零/少样本学习,而无需大量的任务特定数据或模型参数更新。与此同时,有5400亿参数的Pathways Language Model(PaLM)
在许多领域展现了先进的能力,包括语言理解、生成、推理和与代码相关的任务。
反观视觉领域,诸如CLIP
这样的预训练视觉语言模型在不同的下游视觉任务上展现了强大的零样本泛化性能。这些模型通常使用从网络收集的数百上千万图像-文本对进行训练,并提供具有泛化和迁移能力的表示。因此,只需通过简单的自然语言描述和提示,这些预训练的基础模型完全被应用到下游任务,例如使用精心设计的提示进行零样本分类。
CLIP-DEMO除了此类大型视觉语言基础模型外,一些研究工作也致力于开发可以通过视觉输入提示的大型基础模型。例如,最近 META 推出的 SAM
能够执行与类别无关的分割,给定图像和视觉提示(如框、点或蒙版),指定要在图像中分割的内容。这样的模型可以轻松适应特定的下游任务,如医学图像分割、视频对象分割、机器人技术和遥感等。
当然,我们同样可以将多种模态一起串起来,组成更有意思的管道,如RAM
+Grounding-DINO
+SAM
:
这里我们用 RAM 提取了图像的语义标签,再通过将标签输入到 Grounding-DINO 中进行开放世界检测,最后再通过将检测作为 SAM 的提示分割一切。目前视觉基础大模型可以粗略的归为三类:
-
textually prompted models
, e.g., contrastive, generative, hybrid, and conversational; -
visually prompted models
, e.g., SAM, SegGPT; -
heterogeneous modalities-based models
, e.g., ImageBind, Valley.
图1. 视觉基础模型预览
基础架构
图2.四种不同风格的架构类型
- 双编码器架构:其中,独立的编码器用于处理视觉和文本模态,这些编码器的输出随后通过目标函数进行优化。
- 融合架构:包括一个额外的融合编码器,它获取由视觉和文本编码器生成的表示,并学习融合表示。
- 编码器-解码器架构:由基于编码器-解码器的语言模型和视觉编码器共同组成。
- 自适应 LLM 架构:利用大型语言模型(LLM)作为其核心组件,并采用视觉编码器将图像转换为与 LLM 兼容的格式(模态对齐)。
目标函数
对比式学习
为了从无标签的图像-文本数据中学习,CLIP
中使用了简单的图像-文本对比(ITC
)损失来通过学习正确的图像-文本配对来学习表示。此外还有图像-文本匹配(ITM
)损失,以及包括简单对比式学习表示(SimCLR
)和 ITC 损失的变体(如 FILIP Loss、TPC Loss、RWA、MITC、UniCL、RWC 损失)等其他对比损失。
以及 Flamingo Loss、Prefix Language Modeling, PrefixML
等。从上述公式我们也可以很容易看出,生成式 AI 本质还是条件概率模型,如 Cap 损失便是根据上一个已知 token 或 图像来预测下一个 token。
预训练
预训练数据集
如上所述,现代视觉-语言基础模型的核心是大规模数据,大致可分为几类:
- 图像-文本数据:例如
CLIP
使用的WebImageText
等,这些数据通常从网络抓取,并经过过滤过程删除噪声、无用或有害的数据点。 - 部分伪标签数据:由于大规模训练数据在网络上不可用,收集这些数据也很昂贵,因此可以使用一个好的教师将图像-文本数据集转换为掩码-描述数据集,如
GLIP
和SA-1B
等。 - 数据集组合:有些工作直接将基准视觉数据集组合使用,这些作品组合了具有图像-文本对的数据集,如字幕和视觉问题回答等。一些工作还使用了非图像-文本数据集,并使用基于模板的提示工程将标签转换为描述。
微调
微调主要用于三个基本设置:
- 提高模型在特定任务上的性能(例如开放世界物体检测,
Grounding-DINO
); - 提高模型在某一特定能力上的性能(例如视觉定位);
- 指导调整模型以解决不同的下游视觉任务(例如
InstructBLIP
)。
首先,许多工作展示,即使只采用线性探测,也可以提高模型在特定任务上的性能。因此,特定任务的数据集(例如ImageNet
)是可以用来改善预训练模型的特定任务性能。其次,一些工作已经利用预训练的视觉语言模型,通过在定位数据集上微调模型来进行定位任务。
例如,谷歌的一篇 OVD 工作 OWL-ViT
,将 CLIP 预训练模型去掉 Token Pooling+projection 和 Image projection,加上一个新的 Linear Projection 作为分类头与文本进行匹配,学习出每个 Patch 的语义信息。此外在将 Patch 的表征经过 MLP head 回归出相应检测狂。通过 Patch 的语义特征与 BBox 的位置最终获得目标检测框。最后,像 InstructBLIP
则将视觉数据集转换为指导调整数据集,使视觉语言模型能够用于下游任务。
InstructBLIP
提示工程
提示工程主要是搭配大型语言模型(LLMs)一起使用,使它们能够完成某些特定的任务。在视觉语言模型或视觉提示模型的背景下,提示工程主要用于两个目的:
- 将视觉数据集转换为图像文本训练数据(例如,用于图像分类的 CLIP),为基础模型提供交互性
- 使用视觉语言模型进行视觉任务。
大多数视觉数据集由图像和相应文本标签组成。为了利用视觉语言模型处理视觉数据集,一些工作已经利用了基于模板的提示工程。在这种提示工程中,使用一组模板从标签生成描述。例如:
text_descriptions = [f"This is a photo of a {label}" for label in cifar100.classes]
text_tokens = clip.tokenize(text_descriptions).cuda()
这种额外的上下文有助于模型学习,因此,这些文本提示可以在训练或评估期间被 VLM 所使用。下面让我们一起了解下这三类视觉基础模型。
基于文本提示的基础模型
在本章节中,我们专注于探讨依赖文本作为主要监督来源的方法。这些文字提示模型大致分为三个主要类型,即基于不同的训练目标:对比学习、生成学习和混合方法。
基于对比学习的方法
首先,让我们一起回顾下 CLIP 架构及其衍生的变体:
CLIP and it's variants.
CLIP 由 OpenAI 于 2021 年正式提出,其联合训练图像和文本编码器以预测图像与标题在批量中的正确配对。CLIP 由图像编码器和文本编码器组成。它们产生了N个图像-文本对的多模态嵌入空间。通过对称交叉熵损失来训练,以最小化N个正确图像-文本对的嵌入的余弦相似度,并最大化N²-N个不正确对的余弦相似度。作者还从互联网上策划了4亿图像-文本对的数据集。在这样的大规模数据集上训练时,表现非常出色,也激发了后续许多的工作。
此处我们集中探讨两类扩展方法,包括通用模型的对比方法和视觉定位基础模型的方法。
基于通用模型的对比方法
ALIGNALIGN
利用了一个超过10亿个图像-文本对的噪声数据集,无须进行昂贵的过滤或处理步骤即可在 Conceptual Captions 数据集中获得。一个简单的双编码器架构学习使用对比性损失来对齐图像和文本对的视觉和语言表示。结果表明,即便是这样一个简单的学习方案,只要数据库够大,便可以弥补它的噪声,并最终得到 SOTA 结果。
Florence佛罗伦萨是微软、OpenAI 等联合提出的一个真正意义上的计算机视觉基础模型,能够处理不同的空间、时间和模态。它从CLIP样的预训练开始,然后扩展为具有三个不同适配器头的每个空间。弱弱的说一句,虽然这个模型的预训练参数只有 893M,但却需要在 512 块 A100 上训练 10 天的时间。
FILIP
FILIP 提出了一种交叉模态的后期交互方法,以捕捉细粒度语义对齐。FILIP 损失最大化了视觉和文本嵌入之间逐标记的相似性,有助于在不牺牲 CLIP 的推理效率的情况下,模拟两种模态之间的细粒度交互。【作者在 VALSE 第59期分享过,有兴趣的可以去看看,B站上有视频】
此外还有基于掩码对比学习的方法,这是一种通过遮挡输入像素来提高对比学习效率的有效方法。下面我们也将介绍几种典型方法。
FLIPFLIP 是一种简单和更有效的训练 CLIP 的方法,其思想很简单,如图所示,就是将 MAE 的 Mask 操作引入到 CLIP 上,随机地 mask 掉具有高 mask 率的图像碎片,只对可见的碎片进行编码。不同之处在于,这里不会对被 masked 的图像内容进行重建。此外,对于文本也做同样处理,有点类似于 BERT 但又不一样,BERT 是用学习过的 mask token 来代替它们,这种稀疏的计算可以显著减少文本编码的成本。
MaskCLIPMaskCLIP 强调了图像是一个连续且细粒度的信号,而语言描述可能无法完全表达这一点。因此,MaskCLIP 通过随机遮挡图像并利用基于 Mean Teacher 的自蒸馏来学习局部语义特征。
EVA
这是一个以视觉为中心的基础模型,旨在仅使用可公开访问的数据来探索大规模视觉表示的局限性。EVA 是由智源曹越团队最新开源的视觉预训练模型,通过将最强语义学习(CLIP)与最强几何结构学习(MIM)结合,仅需使用标准的 ViT 模型,并将其规模扩大到十亿参数(1-Billion)进行训练,即可得到当前最强大的十亿级视觉基础模型。
通过重构 CLIP 特征来进行 MIM 操作。首先, CLIP 模型输入为完整的图像,而 EVA 模型的输入为有遮挡的图像,训练过程是让 EVA 模型遮挡部分的输出去重构 CLIP 模型对应位置的输出,从而以简单高效的方式让 EVA 模型同时拥有了最强语义学习 CLIP 的能力和最强几何结构学习 MIM 的能力。
很多的方法,总体而言,这些方法通过各种技术,如调整架构,改进对比目标,引入噪声鲁棒性,和探索多模态交互等,不断推动了 CLIP 及其变种的发展。这些努力已经展示了在许多任务上,包括零样本分类和图像-文本检索任务等方面,如何改善模型的性能,从而使这些模型在计算机视觉和自然语言处理的交叉领域中变得越来越重要。
基于视觉定位基础模型的方法
首先我们看下上图展示的结果,可以观察到,原始的 CLIP 模型其实是不擅长视觉定位任务的,特别是针对语义分割这种像素级定位任务来说。
RegionCLIPRegionCLIP
显着扩展了 CLIP 以学习区域级视觉表示,其支持图像区域和文本概念之间的细粒度对齐,从而支持基于区域的推理任务,包括零样本目标检测和开放词汇目标检测。
CRISCRIS
则通过引入视觉-语言解码器和文本到像素对比损失,使 CLIP 框架学习像素级信息。
Grounding DINO
是由沈向洋领导的 IDEA 实验室开源的,该方案利用了强大的预训练模型,并通过对比学习进行修改,以增强与语言的对齐。当然,像 OWL-ViT
也是类似的工作。此外, IDEA 还基于 SAM 等基础模型开源了一个集各大基础模型的仓库Grounded-Segment-Anything
,仓库几乎涵盖了市面上主流的视觉基础模型,感兴趣的也可以关注下:
最后,我们一起看下 OpenSeg
和 GroupViT
,这些方法着重于分组机制和分割效果,以通过对比学习实现更好的语义分割和目标检测。
简单来说,以上讨论涵盖了一系列现代基础模型研究,这些方法试图通过对比学习、掩码学习、扩展和复现等技术来改进CLIP
和其它基础模型。这些工作不仅推动了大规模图像-文本建模的前沿,还为诸如目标检测、语义分割等特定视觉任务的解决方案提供了新的方法和框架。
基于生成式的方法
基于生成式方法的视觉基础模型的总结涵盖了多个领域和方向,下面笔者简单归纳总结下。首先是结合大语言模型(Large Language Model, LLM
)的多模态学习范式:
- 结合上下文的多模态输入学习:例如
Frozen
方法将图像编码器与 LLM
结合,无需更新 LLM
的权重,而是在带有图像标注的数据集上训练视觉编码器。类似地,Flamingo
模型采用了固定的预训练视觉和语言模型,并通过Perceiver Resampler
进行连接。 - 使用
LLM
作为其它模态的通用接口:如MetaLM
模型采用半因果结构,将双向编码器通过连接层连接到解码器上,可实现多任务微调和指令调整零样本学习。此外,KOSMOS
系列也在LLM
上整合了多模态学习的能力。 - 开源版本的模型:如
OpenFlamingo
,是Flamingo
模型的开源版本,训练于新的多模态数据集。
其次我们来看下视觉-语言对齐与定位相关的模型:
- 具备定位能力的模型:
KOSMOS-2
通过添加一条管线来抽取文本中的名词短语并将其与图像中的相应区域链接起来,进而实现视觉定位。
另外就是通用生成目标下的训练:
- 简化视觉语言建模:如
SimVLM
使用前缀语言建模(PrefixLM
)目标进行训练,不需要任务特定的架构或训练,可在多个视觉语言任务上实现优秀的性能。 - 掩码重构与对齐:如
MaskVLM
,采用联合掩码重构语言建模,其中一个输入的掩码部分由另一个未掩码输入重构,有效对齐两个模态。 - 模块化视觉语言模型:如
mPLUG-OWL
,由图像编码器、图像抽象器和冻结LLM
组成,通过两阶段的训练实现多模态对话和理解。
此外还有与对比学习的比较与结合:
CapPa
CapPa 是基于字幕的模型与 CLIP 风格模型的比较得到的一种新的生成预训练方法,交替使用自回归预测和并行预测。
总体而言,上述的方法和模型通过在视觉条件下训练语言生成任务,为 LLM 增添了“看世界”的能力。这些工作在视觉语言任务,如图像标注、多模态对话和理解等方面取得了显著进展,有的甚至在少样本情况下达到或超越了最先进的性能。通过将视觉和语言模态结合,这些模型为计算机视觉和自然语言处理的交叉领域提供了强大的新工具。
基于对比学习和生成式的混合方法
通用视觉-语言学习的基础模型:
-
UNITER
:结合了生成(例如掩码语言建模和掩码区域建模)和对比(例如图像文本匹配和单词区域对齐)目标的方法,适用于异构的视觉-语言任务。 -
Pixel2Seqv2
:将四个核心视觉任务统一为像素到序列的接口,使用编码器-解码器架构进行训练。 -
Vision-Language
:使用像 BART 或 T5 等预训练的编码器-解码器语言模型来学习不同的计算机视觉任务。
通用架构:
FLAVA
-
Contrastive Captioner (CoCa)
:结合了对比损失和生成式的字幕损失,可以在多样的视觉数据集上表现良好。 -
FLAVA
:适用于单模态和多模态任务,通过一系列损失函数进行训练,以便在视觉、语言和视觉-语言任务上表现良好。 -
BridgeTower
:结合了不同层次的单模态解码器的信息,不影响执行单模态任务的能力。 -
PaLI
:一种共同扩展的多语言模块化语言-视觉模型,适用于单模态和多模态任务。 -
X-FM
:包括语言、视觉和融合编码器的新基础模型,通过组合目标和新技术进行训练。
BLIP 框架范式:
-
BLIP
:利用生成和理解能力有效利用图像文本数据集,采用Multimodal mixture of Encoder-Decoder (MED)
架构。 -
BLIP-2
:通过查询转换器来实现计算效率高的模态间对齐。
指令感知特征提取和多模态任务解决方案:
-
InstructBLIP
:利用视觉编码器、Q-Former
和LLM
,通过指令感知的视觉特征提取来进行训练。对预训练模型的高效利用: -
VPGTrans
:提供了一种高效的方法来跨 LLM 传输视觉编码器。 -
TaCA
:提到了一种叫做 TaCA
的适配器,但没有进一步详细描述。
UniDetector
基于 Visual Grounding
的方法:
-
ViLD
:这一方法使用了一个两阶段的开放词汇对象检测系统,从预训练的单词汇分类模型中提取知识。它包括一个 RPN
和一个类似于 CLIP
的视觉语言模型,使用 Mask-RCNN
创建对象提案,然后将知识提取到对象检测器中。 -
UniDetector
: 此方法旨在进行通用对象检测,以在开放世界中检测新的类别。它采用了三阶段训练方法,包括类似于上面我们提到的RegionCLIP
的预训练、异构数据集训练以及用于新类别检测的概率校准。UniDetector 为大词汇和封闭词汇对象检测设立了新的标准。 -
X-Decoder
: 在三个粒度层次(图像级别、对象级别和像素级别)上运作,以利用任务协同作用。它基于 Mask2Former
,采用多尺度图像特征和两组查询来解码分割掩码,从而促进各种任务。它在广泛的分割和视觉语言任务中展现出强大的可转移性。
这些方法共同探讨了视觉定位任务的不同维度,包括开放词汇对象检测、通用对象检测、两阶段训练、多级粒度和新颖的损失功能。它们共同通过以创新的方式整合视觉和语言来推动视觉理解的界限,往往超越了该领域以前的基准。简单总结下,上面我们展示了如何通过对比和生成式学习,以及混合这些方法,来设计和训练可以处理各种视觉和语言任务的模型。有些模型主要关注提高单模态和多模态任务的性能,而有些模型关注如何高效地训练和利用预训练模型。总的来说,这些研究提供了视觉-语言融合研究的丰富视角和多样化方法,以满足不同的实际需求和应用场景。
基于对话式的视觉语言模型
这一块我们不做过多介绍,仅介绍比较有代表性的几个工作:
GPT-4GPT-4
:这是首个结合视觉和语言的模型,能够进行多模态对话。该模型基于Transformer
架构,通过使用公开和私有数据集进行预训练,并通过人类反馈进行强化学习微调。根据公开的数据,GPT-4 在多个 NLP、视觉和视觉-语言任务上表现出色,但很可惜目前并未开源。
miniGPT-4
miniGPT-4
:作为GPT-4
的开源版本,miniGPT-4 由预训练的大型语言模型Vicuna
和视觉组件ViT-G
和Q-Former
组成。模型先在多模态示例上进行训练,然后在高质量的图像和文本对上进行微调。miniGPT-4 能够生成复杂的图像描述并解释视觉场景。XrayGPT
:这个模型可以分析和回答有关 X 射线放射图的开放式问题。使用Vicuna LLM
作为文本编码器和MedClip
作为图像编码器,通过更新单个线性投影层来进行多模态对齐。LLaVA
:这是一个开源的视觉指令调整框架和模型,由两个主要贡献组成:开发一种用于整理多模态指令跟踪数据的经济方法,以及开发一个大型多模态模型,该模型结合了预训练的语言模型LLaMA
和CLIP
的视觉编码器。
LLaMA-Adapter V2LLaMA-Adapter V2
:通过引入视觉专家,早期融合视觉知识,增加可学习参数等方式,改善了LLaMA
的指令跟随能力,提高了在传统视觉-语言任务上的性能。综上所述,基于对话的视觉语言模型在理解、推理和进行人类对话方面取得了显著进展。通过将视觉和语言结合在一起,这些模型不仅在传统 NLP 任务上表现出色,而且能够解释复杂的视觉场景,甚至能够与人类进行复杂的多模态对话。未来可能会有更多的工作致力于提高这些模型的可解释性、可用性和可访问性,以便在更广泛的应用领域中实现其潜力。
基于视觉提示的基础模型
这一块内容我们先为大家阐述几个代表性的基于视觉提示的基础模型,如 SAM
和 SEEM
等;随后再介绍基于 SAM 的一系列改进和应用,例如用在医疗、遥感、视频追踪等领域;最后再简单介绍下几个通用的扩展。
视觉基础模型
CLIPSeg
CLIPSeg
- 概述:CLIPSeg 利用 CLIP 的泛化能力执行
zero-shot
和 one-shot
分割任务。 - 结构:由基于 CLIP 的图像和文本编码器以及具有 U-net 式跳跃连接的基于
Transformer
的解码器组成。 - 工作方式:视觉和文本查询通过相应的 CLIP 编码器获取嵌入,然后馈送到 CLIPSeg 解码器。因此,CLIPSeg 可以基于任意提示在测试时生成图像分割。
SegGPT
SegGPT
SegGPT
旨在训练一个通用模型,可以用于解决所有的分割任务,其训练被制定为一个上下文着色问题,为每个数据样本随机分配颜色映射。目标是根据上下文完成不同的分割任务,而不是依赖于特定的颜色。
SAM
概述:SAM 是一种零样本分割模型,从头开始训练,不依赖于 CLIP。结构:使用图像和提示编码器对图像和视觉提示进行编码,然后在轻量级掩码解码器中组合以预测分割掩码。训练方法:通过三阶段的数据注释过程(辅助手动、半自动和全自动)训练。SEEM
与 SAM 相比,SEEM 涵盖了更广泛的交互和语义层面。例如,SAM 只支持有限的交互类型,如点和框,而由于它本身不输出语义标签,因此错过了高语义任务。
首先,SEEM
有一个统一的提示编码器,将所有视觉和语言提示编码到联合表示空间中。因此,SEEM 可以支持更通用的用途。它有潜力扩展到自定义提示。其次,SEEM 在文本掩码(基础分割)方面非常有效,并输出语义感知预测。
SAM 的改进与应用
SAM for Medical Segmentation
Medical SAM 总览
- Adapting by Fine-Tuning
MedSAM
:通过在大规模医学分割数据集上微调 SAM,创建了一个用于通用医学图像分割的扩展方法 MedSAM。这一方法在 21 个 3D 分割任务和 9 个 2D 分割任务上优于 SAM。
MedSAM
paper: https://arxiv.org/pdf/2304.12306.pdf
github: https://github.com/bowang-lab/MedSAM
- Adapting through Auxiliary Prompt Encoder
AutoSAM
:为SAM
的提示生成了一个完全自动化的解决方案,基于输入图像由AutoSAM
辅助提示编码器网络生成替代提示。AutoSAM 与原始的 SAM 相比具有更少的可训练参数。
AutoSAM
- Adapting Through Adapters
Learnable Ophthalmology SAM
在眼科的多目标分割:通过学习新的可学习的提示层对SAM进行了一次微调,从而准确地分割不同的模态图像中的血管或病变或视网膜层。
3DSAM-adapter3DSAM-adapter
:为了适应3D空间信息,提出了一种修改图像编码器的方案,使原始的2D变换器能够适应体积输入。
Medical SAM Adapter
Medical SAM Adapter
:专为SAM设计了一个通用的医学图像分割适配器,能够适应医学数据的高维度(3D)以及独特的视觉提示,如 point
和 box
。
- Adapting by Modifying SAM’s Decoder
DeSAM
DeSAM
:提出了将 SAM 的掩码解码器分成两个子任务:提示相关的 IoU 回归和提示不变的掩码学习。DeSAM 最小化了错误提示在“分割一切”模式下对SAM性能的降低。
- SAM as a Medical Annotator
MedLAM
MedLAM
:提出了一个使用 SAM 的医学数据集注释过程,并引入了一个少量定位框架。MedLAM 显著减少了注释负担,自动识别整个待注释数据集的目标解剖区域。
SAMM
Segment Any Medical Model, SAMM
:这是一个结合了3D Slicer
和SAM
的医学图像分割工具,协助开发、评估和应用SAM。通过与3D Slicer的整合,研究人员可以使用先进的基础模型来分割医学图像。
总体来说,通过各种微调、适配和修改方法,SAM 已被成功适应了用于医学图像分割的任务,涵盖了从器官、病变到组织的不同医学图像。这些方法也突出了将自然图像的深度学习技术迁移到医学领域的潜力和挑战。在未来,SAM 及其变体可能会继续推动医学图像分析领域的进展。
SAM for Tracking
SAM 在跟踪任务方面的应用集中在通过视频中的帧跟踪和分割任意对象,通常被称为视频对象分割(VOS)。这个任务涉及在一般场景中识别和追踪感兴趣的区域。以下总结下 SAM 在跟踪方面的一些主要应用和方法:
- Track Anything (TAM)
TAM
概述:TAM 使用 SAM 和现成的跟踪器 XMem 来分割和跟踪视频中的任何对象。操作方式:用户可以简单地点击一个对象以初始化 SAM 并预测掩码。然后,XMem 使用 SAM提供的初始掩码预测在视频中基于时空对应关系跟踪对象。用户可以暂停跟踪过程并立即纠正任何错误。挑战:虽然表现良好,但 TAM 在零样本场景下不能有效保留 SAM 的原始性能。
- SAM-Track
SAM-Track
概述:与 TAM 类似,SAM-Track 使用 DeAOT 与 SAM 结合。挑战:与 TAM 类似,SAM-Track 在零样本场景下也存在性能挑战。
- SAM-PT
SAM-PT
概述:SAM-PT 通过结合 SAM 的稀疏点跟踪来解决视频分割问题。只需要第一帧的稀疏点注释来表示目标对象。强项:在开放世界 UVO 基准测试中展示了对未见对象的泛化能力。操作方式:使用像 PIPS 这样的先进点跟踪器,SAM-PT 为视频分割提供稀疏点轨迹预测。进一步地,为了区分目标对象及其背景,SAM-PT 同时跟踪正点和负点。
- SAM-DA
SAM-DA
概述:SAM-DA 是另一种使用 SAM 自动分割能力进行跟踪的方法。具体应用:通过使用 SAM 自动分割功能从每个夜间图像自动确定大量高质量目标域训练样本,从而跟踪夜间无人机(UAVs)。
SAM 在视频对象跟踪和分割方面的应用表明了其作为分割基础模型的潜力。尽管有一些挑战,特别是在未见数据和零样本场景下,但通过与现成的跟踪器的结合以及稀疏点跟踪的使用,SAM 能够实现在视频中跟踪和分割对象。这些方法为计算机视觉社区提供了一个实现通用场景中任意对象跟踪的有力工具,有助于推动视频分析和监控等领域的进展。
SAM for Remote Sensing
SAM 在遥感图像分割方面的应用集中在通过点、框和粗粒度掩码的引导来理解和分割遥感图像。以下是 SAM 在遥感分割方面的应用以及相关挑战。
SAM在遥感分割的基本应用
- 交互性质:由于 SAM 的交互特性,它主要依赖于点、框和粗粒度掩码的手动引导。
- 限制:
- 全自动分割困难:SAM在完全自动地理解遥感图像方面效果不佳。
- 结果依赖性:SAM的结果严重依赖于用于分割遥感图像目标的提示的类型、位置和数量。
- 手动提示优化需求:要实现理想的结果,通常需要对手动提示进行精炼。
RsPrompter
概述:RsPrompter 是一个将语义分类信息与 SAM 结合的方法,用于遥感图像的自动实例分割。
操作方式:学习生成提示:RsPrompter 提出了一种学习生成适当的SAM输入提示的方法。生成提示包含的信息:通过分析编码器的中间层来生成包含关于语义类别的信息的提示,并生成提示嵌入,这可以视为点或框嵌入。目标:通过自动化生成适当的输入提示,RsPrompter 试图克服 SAM 在遥感图像分割方面的局限性。
尽管 SAM 在遥感图像分割方面存在一些限制,主要与其交互性质和对手动引导的依赖有关,但通过引入如 RsPrompter 这样的方法,可以利用 SAM 实现遥感图像的自动实例分割。这些努力标志着朝着减少人工干预和提高遥感图像分析自动化的方向迈出的重要一步,有势必推动遥感科学、地理信息系统(GIS)和环境监测等领域的进展。
SAM for Captioning
SAM 与大型语言模型如 ChatGPT 的组合在可控图像字幕(controlled image captioning)方面开辟了新的应用领域。下面概述下这种组合在图像字幕上的具体应用。
先给大家介绍下概念,可控图像字幕使用自然语言来根据人类目标解释图像,例如检查图像的某些区域或以特定方式描述图像。然而,这种交互式图像字幕系统的可扩展性和可用性受到缺乏良好注释的多模态数据的限制。一个典型的案例便是 Caption AnyThing
,下面一起看看。
Caption AnyThing
概述:Caption AnyThing 是一种零样本图像字幕模型,通过与 SAM 和大型语言模型(例如ChatGPT
)结合,使用预训练的图像字幕器实现。
工作流程:
- 定义视觉控制:用户可以通过视觉提示定义视觉控制。
- 使用SAM转换为掩码:视觉提示随后使用SAM转换为掩码,以选择感兴趣的区域。
- 预测原始字幕:基于原始图像和提供的掩码,图像字幕器预测原始字幕。
- 文本优化:使用大型语言模型(例如ChatGPT)的文本精炼器,根据用户的偏好定制语言风格,从而优化原始描述。
结果:用户可以通过控制视觉和语言方面,更精确地描述图像中的特定部分或属性。
优势和意义
- 用户自定义:通过允许用户定义视觉和语言控制,提供了高度定制的解释。
- 灵活性和准确性:通过结合视觉分割和自然语言处理,增强了描述的灵活性和准确性。
- 零样本学习:由于是零样本模型,因此可以在未经特定训练的新图像和场景上工作。
通过结合 SAM 的图像分割能力和大型语言模型如 ChatGPT 的自然语言处理能力,Caption AnyThing 为可控图像字幕开辟了新的可能性。这不仅增强了字幕的灵活性和准确性,还允许用户定制语言风格和焦点,从而促进了交互图像分析和解释的发展
SAM for Mobile Applications
这一节我们重点梳理下 SAM 的一些移动端应用,主要就是加速 SAM 的推理和提升 SAM 的分割质量。
FastSAMFastSAM 基于 YOLOv8-seg 实现,它比 SAM 快50倍,且训练数据只有SAM的1/50,同时运行速度不受 point 输入数量的影响
MobileSAMMobileSAM
:将原始 SAM 中的图像编码器 ViT-H 的知识蒸馏到一个轻量化的图像编码器中,该编码器可以自动与原始 SAM 中的 Mask 解码器兼容。训练可以在不到一天的时间内在单个 GPU 上完成,它比原始 SAM 小60多倍,但性能与原始 SAM 相当。
MobileSAMRefSAM
:这是一种高效的端到端基于 SAM 的框架,用于指代视频对象分割(RVOS)。它使用了高效且轻量级的CrossModal MLP
,将指代表达的文本特征转换为密集和稀疏的特征表示。
HQ-SAM
HQ-SAM
: HQ-SAM 为了实现高质量的掩膜预测,将 HQ-Output Token(高质量输出标记)和全局-局部特征融合引入到SAM中。为了保持SAM的零样本能力,轻量级的 HQ-Output Token 复用了 SAM 的掩膜解码器,并生成了新的 MLP(多层感知器)层来执行与融合后的 HQ-Features(高质量特征)的逐点乘积。在训练期间,将预训练的 SAM 的模型参数固定,只有 HQ-SAM 中的少数可学习参数可以进行训练。
通才模型
这一类主要描述如何使用上下文学习快速适应具有不同提示和示例的各种任务。这里特别突出了几个被称为通才模型(Generalist Models)的模型,它们可以执行多个任务,甚至可以通过提示和少量特定于任务的示例来适应新任务。
Painter
Painter
Painter
是一种通才模型,可以同时执行不同的任务,甚至可以根据提示和非常少的特定于任务的示例适应新任务。
工作方式:给定某个任务的输入和输出图像,输出图像的像素被遮挡。Painter 模型的目标是对 masked 的输出图像进行填充。训练目标:这个简单的训练目标允许统一几个视觉任务,包括深度估计、人体关键点检测、语义分割、实例分割、图像去噪、图像去雨和图像增强。推理流程:在训练后,Painter 可以使用与输入条件相同任务的输入/输出配对图像来确定在推理过程中执行哪个任务。
VisionLLM
VisionLLM
VisionLLM
是另一个通才模型,可以对齐视觉和语言模态以解决开放式任务。
工作方式:给定图像,VisionLLM 使用视觉模型学习图像特征;这些图像特征与例如“详细描述图像”的语言指令一起传递给语言引导的图像分词器。任务解码器:图像分词器的输出连同语言指令被提供给一个开放式 LLM 为基础的任务解码器,旨在根据语言指令协调各种任务。
Prismer
Prismer
Prismer
也是一种视觉语言模型,可以执行多个推理任务。
特点:Prismer 利用各种预训练的领域专家,例如语义分割、对象、文本和边缘检测,表面法线和深度估计,来执行多个推理任务。应用:例如图像字幕和视觉问题回答。
通才模型表示了一种通用的趋势,其中模型可以通过改变输入或少量特定于任务的训练来适应新的或多样化的任务。这些模型在解决问题时可以灵活地适应,克服了单一任务模型的限制。尤其是在输出表示在任务之间有很大差异的计算机视觉中,这一点变得尤为重要。通过简化训练目标和建立跨任务的框架,这些通才模型为未来计算机视觉任务的多功能性提供了新的机会。
综合性基础模型
基于异构架构的基础视觉模型
在这一部分,我们集中讨论不同的基础视觉模型,这些模型通过对齐多个成对的模态,如图像-文本、视频-音频或图像-深度等,来学习更有意义的表示。
CLIP 与异构模态的对齐
CLIP2VideoCLIP2Video
:这一模型扩展了CLIP
模型,使其适用于视频。通过引入时序一致性和提出的时序差异块(TDB)和时序对齐块(TAB),将图像-文本的CLIP模型的空间语义转移到视频-文本检索问题中。
AudioCLIP
AudioCLIP
:这一模型扩展了CLIP
,使其能够处理音频。AudioCLIP
结合了ESResNeXt
音频模型,并在训练后能够同时处理三种模态,并在环境声音分类任务中胜过先前方法。
学习共享表示的多模态模型
ImageBindImage Bind
:这一模型通过学习配对数据模态(如(视频,音频)或(图像,深度))的共同表示,包括多种模态。ImageBind 将大规模配对数据(图像,文本)与其他配对数据模态相结合,从而跨音频、深度、热和惯性测量单元(IMU)等四种模态扩展零样本能力。
MACAW-LLM
MACAW-LLM
:这是一种指令调谐的多模态 LLM(大型语言模型),整合了图像、视频、音频和文本等四种不同模态。通过模态模块、对齐模块和认知模块,MACAW-LLM 实现了各种模态的统一。
视频和长篇幅文本的处理
COSACOSA
:通过将图像-文本语料库动态转换为长篇幅视频段落样本来解决视频所需的时序上下文缺失问题。通过随机串联图像-文本训练样本,确保事件和句子的显式对应,从而创造了丰富的场景转换和减少视觉冗余。
Valley
Valley
: 是另一个能够整合视频、图像和语言感知的多模态框架。通过使用简单的投影模块来桥接视频、图像和语言模态,并通过指令调谐流水线与多语言 LLM 进一步统一。
这一节主要强调了将不同的感知模态(如视觉、听觉和文字)结合到统一框架中的重要性。通过跨模态学习和对齐,这些模型不仅提高了特定任务的性能,还扩展了多种模态的零样本学习能力。此外,考虑到视觉和听觉之间的时序一致性也是重要的创新方向。通过强调如何整合这些不同的输入形式,本节揭示了深度学习在处理更复杂和多样化数据方面的潜力。
基于代理的基础视觉模型
基于代理的基础视觉模型将语言学习模型(LLMs)与现实世界的视觉和物理传感器模式相结合。这不仅涉及文字的理解,还涉及与现实世界的互动和操作,特别是在机器人操作和导航方面。
机器人操控
Palm-EPalm-E
:该模型将连续的传感器输入嵌入到 LLM 中,从而允许机器人进行基于语言的序列决策。通过变换器,LLM将图像和状态估计等输入嵌入到与语言标记相同的潜在空间,并以相同的方式处理它们。
ViMA
ViMA
:使用文本和视觉提示来表达一系列机器人操控任务,通过多模态提示来学习机器人操控。它还开发了一个包含600K专家轨迹的模拟基准测试,用于模仿学习。
持续学习者
MineDojoMineDojo
:为 Minecraft
中的开放任务提供了便利的API,并收集了丰富的 Minecraft 数据。它还使用这些数据为体现代理制定了新的学习算法。
VOYAGER
VOYAGER
:这是一种由 LLM 驱动的终身学习代理,设计用于在 Minecraft 中探索、磨练技能并不断发现新事物。它还通过组合较小的程序逐渐构建技能库,以减轻与其他持续学习方法相关的灾难性遗忘。
导航规划
LM-Nav
LM-Nav
:结合预训练的视觉和语言模型与目标控制器,从而在目标环境中进行长距离指导。通过使用视觉导航模型构建环境的“心理地图”,使用 GPT-3
解码自由形式的文本指示,并使用 CLIP
将这些文本地标连接到拓扑图中,从而实现了这一目标。然后,它使用一种新的搜索算法找到了机器人的计划。
总体而言,基于代理的基础视觉模型突出了语言模型在现实世界任务中的潜力,如机器人操作、持续学习和复杂导航。它们不仅推动了机器人技术的进展,还为自然语言理解、多模态交互和现实世界应用开辟了新的研究方向。通过将预训练的大型语言模型与机器人技术和视觉导航相结合,基于代理的基础视觉模型能够解决现实世界中的复杂任务,展示了人工智能的跨学科整合和应用潜力。
总结
具有对多种模式(包括自然语言和视觉)基础理解的模型对于开发能有效感知和推理现实世界的AI系统至关重要。今天主要为大家概括了视觉和语言基础模型,重点关注了它们的架构类型、训练目标、下游任务适应性和提示设计。
多模态理解: 我们提供了对文本提示、视觉提示和异构模态模型的系统分类。这些模型不仅涵盖了自然语言,还包括了视觉和其他感知模式的理解。
应用广泛性: 这些模型在各种视觉任务中的应用非常广泛,包括零样本识别和定位能力、关于图像或视频的视觉对话、跨模态和医疗数据理解。
通用模型: 视觉中的基础模型可以作为通用模型来解决多个任务。当与大型语言模型相结合时,它们促生了可以在复杂环境中持续学习和导航的基础实体代理。
整体而言,基础视觉和语言模型的研究不仅深入了解了各种架构和训练目标,还展示了这些模型在多个领域和应用中的潜力。通过集成文本、视觉和其他模态的理解,这些模型促进了机器人技术和现实世界任务的进展。然而,还需要进一步的研究来充分挖掘这些模型的潜力,并解决一些存在的挑战和局限性。
#I-JEPA
这里探讨了如何改善从图像中进行自监督学习的语义水平,而无需使用通过图像变换编码的额外先验知识。
计算机视觉中,有两种常见的从图像中进行自我监督学习的方法:基于不变性的方法和生成方法。
基于不变性的预训练方法优化编码器,使其产生相似的嵌入,用于同一图像的两个或多个视图,其中图像视图通常使用一组手工数据增强构建,如随机缩放、裁剪和色彩抖动等。这些预训练方法可以产生高语义水平的表示,但它们也引入了强烈的偏差,可能对某些下游任务甚至具有不同数据分布的预训练任务有害。
通常我们不清楚如何将这些偏差推广到不同抽象层次的任务。例如,图像分类和实例分割不需要相同的不变性。此外,将这些特定于图像的增强推广到其他模态(如音频)也不能直接进行。
认知学习理论提出,生物系统中表示学习的驱动机制是内部模型对感官输入响应的适应。这个想法是自监督生成方法的核心——它们移除或打乱输入的部分内容,并学习预测损坏的内容。
尤其是,我们熟知的mask denoising方法就是通过从输入中重建随机掩蔽的补丁来学习表示。该任务比视图不变性方法需要更少的先验知识,并且很容易推广到图像模态之外。然而,由此产生的表示通常处于较低的语义级别,并且在当前的基准和有监督的语义分类任务中表现不佳。因此,需要更复杂的适应机制(例如端到端的微调)才能充分利用这些方法。
本文则探讨了如何改善从图像中进行自监督学习的语义水平,而无需使用通过图像变换编码的额外先验知识。
论文标题:Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture
论文链接:https://arxiv.org/pdf/2301.08243.pdf
为此,作者引入了一种图像联合嵌入预测架构(I-JEPA)[1]。I-JEPA的思想是在抽象表示空间中预测缺失的信息;例如,给定单个上下文块,预测图像中各个目标块的表示,其中目标表示由学习的目标编码器网络计算。与预测像素/令牌空间的生成方法相比,I-JEPA使用抽象的预测目标,可以消除不必要的像素级细节,从而使模型学习更多的语义特征。另一个核心设计选择是提出的多块掩模策略,具体而言,作者证明了使用信息丰富(空间分布)的上下文块预测图像中的多个目标块(具有足够大的尺度)的重要性。
通过广泛的实证评估,作者证明:
I-JEPA可以学习强大的现成语义表示,而无需使用手工制作的视图增强;I-JEPA在ImageNet-1K线性探测,半监督1%ImageNet-1K和语义转移任务中优于像素重建方法(如MAE);I-JEPA在语义任务上与视图不变预训练方法相比具有竞争力,并且在低级视觉任务(如物体计数和深度预测)上取得更好的性能(第5和6节);通过使用更简单的模型,具有更少的刚性归纳偏见,I-JEPA可以应用于更广泛的任务。此外,I-JEPA还具有可扩展性和效率。
在ImageNet上训练本文ViT-H/14模型大约需要2400个GPU小时,比使用iBOT训练的ViTB/16快50%,比使用MAE训练的ViT-L/16高效140%。在表示空间中预测显着减少了自监督预训练所需的总计算量。
方法
所提出的基于图像的联合嵌入预测架构(I-JEPA)如图所示。
I-JEPA是一种预测目标块表示的方法。在I-JEPA中,目标对应于图像块的表示。
它首先从图像中随机采样一个上下文块x,并去除与目标块重叠的部分,然后将x通过上下文编码器fθ获得对应的patch-level表示sx,最后通过预测器gφ,将sx作为输入,以及每个patch的mask token,输出M个目标块表示sˆy(1), ..., sˆy(M),并计算预测值与目标值之间的L2距离,以此作为损失函数,最后通过梯度下降优化参数φ和θ,并使用指数移动平均更新目标编码器¯θ的参数。
此外,我们使用ViT架构作为上下文编码器、目标编码器和预测器的backbone。
编码器/预测器架构类似于生成式MAE方法。然而,一个关键的不同之处在于I-JEPA方法是非生成的,预测是在表示空间中进行的。需要注意的是,目标块是通过掩码目标编码器的输出而不是输入来获得的。这个细节至关重要。
实验结果
图像分类
I-JEPA在ImageNet-1K线性评估基准测试中显著提高了线性探测性能,同时使用更少的计算资源。
此外,I-JEPA在low shot ImageNet-1K测试中也表现出色,使用ViT-H/14架构时,I-JEPA的性能与ViT-L/16预训练的data2vec相当,而且使用的计算资源更少。随着图像输入分辨率的提高,I-JEPA的性能也超过了以前的方法,包括利用预训练期间额外手工数据增强的联合嵌入方法,如MSN、DINO和iBOT。
在迁移学习实验中,I-JEPA显著优于不使用增强的先前方法(MAE和data2vec),并且缩小了与最佳视图不变性基于方法的差距,甚至超过了流行的DINO在CIFAR100和Place205上的线性探测。
Local Prediction Tasks
I-JEPA学习到的语义图像表示显著提高了以前方法(如MAE和data2vec)的下游图像分类性能,并且可以弥补,甚至超越利用额外手工数据增强的视图不变性方法。此外,I-JEPA还学习到了局部图像特征,在低级和密集预测任务(如物体计数和深度预测)上超越了视图不变性方法。表4显示了使用线性探测器的各种低级任务的性能。特别是,在预训练之后,模型权重被冻结,并且在Clevr数据集上训练一个线性模型来执行物体计数和深度预测。与DINO和iBOT等视图不变性方法相比,I-JEPA方法在预训练期间有效地捕获低级图像特征,并在物体计数(Clevr/Count)和深度预测(Clevr/Dist)方面取得了超越它们的成绩。
扩展性
I-JEPA还比以往的方法具有更高的可扩展性。
从图5可以看出,I-JEPA在1%的ImageNet-1K上的半监督评估所需的GPU小时数比以前的方法要少,而且在不依赖手工数据增强的情况下也能取得良好的性能。
与直接将像素作为目标的重建方法(如MAE)相比,I-JEPA在表示空间中计算目标时会带来额外的开销(每次迭代约慢7%)。但是,由于I-JEPA仅需要大约5倍的迭代次数就可以收敛,因此实际上仍然可以节省大量的计算量。
与依赖手工数据增强来创建和处理每个图像的多个视图的视图不变性方法(如iBOT)相比,I-JEPA的运行速度也明显更快。特别是,最大的I-JEPA模型(ViT-H/14)所需的计算量比最小的iBOT模型(ViT-S/16)要少。
此外,结果还表明,I-JEPA可以从使用更大的数据集进行预训练中受益。当增加预训练数据集(IN1K与IN22K)的大小时,语义和低级任务的转移学习性能也会得到提高。表5还显示,在IN22K上预训练时,I-JEPA也可以从更大的模型大小中受益。与ViT-H/14模型相比,预训练ViT-G/16模型可以显著提高Place205和INat18等图像分类任务的下游性能。但是,ViT-G/16模型对低级下游任务没有改善。ViT-G/16使用更大的输入补丁大小,这可能会对局部预测任务造成不利影响。
总之,I-JEPA具有较高的可扩展性,可以从使用更大的数据集进行预训练和更大的模型大小中受益。它可以在不依赖手工数据增强的情况下取得良好的性能,并且比以前的方法更加高效。
预测器可视化
通过以上可视化结果,可以看到,I-JEPA预测器能够正确捕捉位置不确定性,并产生具有正确姿势的高级物体部件(例如鸟的背部和汽车的顶部)。但是,美中不足的是,它抛弃了精确的low-level图像细节以及背景信息。
总结
I-JEPA是一种简单有效的学习语义图像表示的方法,不依赖于手工数据增强。通过在表示空间中预测,I-JEPA比像素重建方法收敛更快,并学习到高语义水平的表示。与基于视图不变性的方法相比,I-JEPA提出了一种学习通用表示的联合嵌入架构的方法,而不依赖于手工制作的视图增强。
#Unimatch
光流估计/立体匹配/深度估计大一统! 场景理解新范式!一种更新的光流估计算法GMFlow,同时也将介绍其续作Unimatch,一种整合光流估计,立体匹配和双目深度估计的统一网络。这是一种全新的光流估计范式。
Paper: https://arxiv.org/pdf/2211.05783.pdf
Code: https://github.com/autonomousvision/unimatch
之前提到了一种在线标定光学防抖主摄和ToF方法。其中使用RAFT作为光流估计网络来进行密集匹配,本文我们来介绍一种更新的光流估计算法GMFlow。同时也将介绍其续作Unimatch,一种整合光流估计,立体匹配和双目深度估计的统一网络。这是一种全新的光流估计范式。
光流描述了两个视频帧像素之间的相对运动,是计算机视觉领域的一个经典问题。光流预测通常是从一对时间相关的图像对中,估计出第一张图像中各个像素点在相邻图像中的位置。
GMFlow
这篇论文讨论了一种 learning-based 的光流估计方法。目前光流估计主流的方法是使用基于代价体素(cost volume)构建相关,使用2D或者3D卷积进行光流回归。但受限于卷积的局部相关特性,这种方法在处理大的位移时存在困难。为了解决这个问题,现有代表性技术框架RAFT通过使用大量的迭代细化来逐渐提高预测质量,但是这样会增加推理时间。为了在精度和效率之间取得平衡,该论文提出了一种新的光流估计方法GMFlow:它将光流估计任务表示为全局匹配问题,通过直接比较特征相似性来得到匹配关系,直接输出光流。具体来说,GMFlow由三个主要部分组成:一个Transformer用于全局特征增强,一个相关性和softmax层用于全局特征匹配,一个self-attention层用于光流传播。此外,还提出了一种细化步骤,在更高的特征分辨率下复用GMFlow进行残差光流预测。该新框架仅使用一次细化,在具有挑战性的Sintel基准测试中的性能就优于31次细化的RAFT,且运行得更快,这表明这是一种新的精确和高效光流估计的范式。
FlowNet的相关计算
近年来,深度学习在许多领域展现出了巨大的潜力,它的快速发展也使得直接从数据中学习光流成为可能。FlowNet作为深度学习光流估计的先驱,直接将两张视频帧作为输入,输出稠密的光流。这类方法的主要就是借鉴传统视觉算法中,找图像匹配的思想,为了目标图像在参考图像中对应得位置,在目标图像对应像素位置周围依次滑动,做相关运算,如上图FlowNet网络所示,在第三层的Feature Map上,选取上图的一个坐标点,在下图选取对应的点以及其周围的邻域做相关运算,得到的值在输出Feature Map通道方向上依次排开。相关运算的输出通道数为441,再通过后续的网络得到回归得到光流。
这个方法的问题就是受限与计算量、效率等,邻域不能过大,在面对大运动的估计场景时,效果有限。
后须一系列方法都是在其基础上进行改进,比如通过堆叠多个FlowNet(如上图所示)来提升精度,这类方法中最具代表性的就是ECCV2020的best paper RAFT。其通过优化相关性计算,以及采用RNN来取代简单的堆叠模块达到显著的性能提升。但是本质上这些方法都是通过序列化方式增加模块,迭代地增大邻域感受野,达到Coarse-to-Fine的效果。
尽管具有出色的性能,但如此大量的顺序迭代的模块带来了线性增加的推理时间,这使得速度优化变得困难,并阻碍了其在实际应用程序中的部署。这就提出了一个问题:有没有可能在不需要大量迭代细化的情况下实现高精度和高效率的光流估计?
动机
SuperGlue稀疏匹配
上面提到,现有的光流估计很难应对大幅度运动的场景,此时作者想到光流估计的本质就是回归得到当前帧中像素移动到下一帧的移动量,即找到第二帧的对应的像素。因此作者鉴在现有稀疏匹配算法(如SuperGlue和LoFTR)中常见的Transformer来推提取征描述符之间的相关关系,将光流回归问题转换为一个匹配问题。
GMFlow与现有方法的对比
这篇论文提出了一种GMFlow框架来实现光流的全局匹配,具体来说:
- 将光流重新定义为一个全局匹配问题。彻底改进了主流的baseline,有效地解决了长期存在的大位移的挑战。
- 提出了一个GMFlow框架来实现全局匹配范式。它由三个主要部分组成:用于特征增强的Transformer,用于全局特征匹配的correlation和softmax,以及用于解决遮挡,实现光流传播的self-attention。
- 一个精细步骤来进一步增强模型性能。利用更高分辨率的特征,重用相同的GMFlow框架来进行残差光流估计,融合得到精度更高的光流。
在具有挑战性的Sintel基准测试上,GMFlow优于31次细化的RAFT,而只使用了一次细化步骤,运行速度更快,这为准确和高效的光流估计提供了一种新的范式。
方法
GMFlow框架
论文首先利用权重共享卷积网络从两个输入的视频帧中提取1/8分辨率层级的降采样密集特征。然后将这些特征输入到一个改进的swin transformer中以进行特征增强。接下来,通过关联所有成对的特征来比较特征的相似性,并通过一个可微的softmax获得光流。引入另一个自注意层,通过考虑特征的自相似性,将匹配像素的高质量流预测传播到不匹配像素,解决遮挡问题。最后得到的光流根据任务需求可以进一步可以利用1/4分辨率的残差特征,通过一个与前面共享CNN、Transformer layer和 self-attention layer权重的GMFlow进行进一步精细化。
特征增强
给定两个连续的视频帧和
全局匹配
# global correlation
b, c, h, w = feature0.shape
feature0 = feature0.view(b, c, -1).permute(0, 2, 1) # [B, H*W, C]
feature1 = feature1.view(b, c, -1) # [B, C, H*W]
correlation = torch.matmul(feature0, feature1).view(b, h, w, h, w) / (c ** 0.5) # [B, H, W, H, W]
# flow from softmax
init_grid = coords_grid(b, h, w).to(correlation.device) # [B, 2, H, W]
grid = init_grid.view(b, 2, -1).permute(0, 2, 1) # [B, H*W, 2]
correlation = correlation.view(b, h * w, h * w) # [B, H*W, H*W]
prob = F.softmax(correlation, dim=-1) # [B, H*W, H*W]
光流传播
光流遮挡是一个光流估计中常见的问题,遮挡区域通俗一些理解就是某块区域在下一帧突然消失或者突然出现了的部分,这些情况容易引起错误的光流损失。同时与纯粹的密集匹配问题不同,光流需要计算所有的像素的匹配情况,因此光流需要处理这些被遮挡和超出边界的像素。
为缓解这一问题,结合立体匹配中的代价聚合思路,同时一些相关工作也证明光流场与图像本身具有较高的结构相似性,作者提出通过特征的自相似性将匹配区域的高质量光流估计结果传播到未匹配区域。这个操作可以通过一个简单的 self-attention 层实现。
实验
全局匹配 vs 局部相关性+卷积
GMFlow作为一种新的光流估计范式,与之前方法最大的区别就是用Transformer和全局匹配来代替基于局部相关性的cost volume和CNN的方法,因此首先先对比下两种baseline堆叠不同数量的卷积残差块或者Transformer块来观察性能的变化,结果如下表:
两张baseline对比
与基于cost volume和CNN方法相比,论文方法性能较之前的方法显著提高,2个Transformer块的方法已经可以超过8个卷积块。同时在大运动 (s40+)场景下性能表现更为优异。这验证了这种新范式的有效性。
GMFlow vs RAFT
GMFlow vs RAFT
在Sintel数据集上,GMFlow只需一次精细化,即可超过RAFT 31次精细化的结果,同时推理速度更快,特别是在大运动(s40+)场景上。
Unimatch
很自然的,大家都会想到既然GMFlow借鉴了立体匹配的思路,是不是也可以用于立体匹配任务?因此作者趁热打铁,将GMFlow应用到立体匹配和多视角深度估计任务中。下面我们继续介绍这个大一统模型,看看怎么作者是怎么把GMFlow应用到其他任务中的。
统一模型
这篇文章提出了一个统一的模型UniMatch来整合三个运动估计和三维感知任务:光流估计,立体匹配和多视角深度估计。这些几何和运动估计任务的本质上都是特征对应关系的估计问题,因此,与以往针对每个特定任务的设计一个专门网络不同,作者将所有三个任务表述为一个统一的显式特征密集匹配问题,直接比较特征相似性得到匹配信息,用一个单一模型来解决三个问题。
这就需要提取到任务无关的、判别能力强的特征来完成密集匹配。因此作者使用GMFlow的Transformer进行特征增强,这大大提高了提取的特征的质量。由于特征提取网络结构和参数在不同任务之间是共享的,因此可以很自然地支持跨任务之间的迁移。在10个流行的光流、立体匹配和深度数据集上,UniMatch都优于或者与state-of-the-art方法相当,同时在模型设计和推理速度方面更简单、更高效。
研究背景
光流估计、立体匹配和深度估计是计算机视觉中常见的任务,即通过多视角的场景的稠密特征匹配从一组二维图像中理解三维场景结构和运动。传统方法通常使用优化方法来解决这些任务,例如光流的变分方法、立体视觉的半全局匹配(Semi-Global Matching)、从SFM中的光束平差法(Bundle Adjustment)。虽然经典方法取得了重要进展,但它们在无纹理区域和细结构等具有挑战性的情况下仍然存在困难。深度学习和大规模数据集的快速发展也使得可以使用复杂的深度神经网络直接对几何和运动进行前馈推理。目前基于学习的方法正在benchmark上占主导地位。
作者认为现有的方法大多是通过设计特定于任务的模型来独立解决每个任务,直观的想法是能否存在一个网络同时解决光流估计,立体匹配和深度估计这三个比较接近的几何问题。为了实现这一目标,作者首先确定了阻碍先前模型普遍适用性的主要障碍:先前的方法主要将任务特定的cost volume作为模型中间组件,并使用后续卷积网络进行光流/差异/深度回归。由于cost volume是任务相关的(例如,光流的cost volume通常基于2D邻域相关,而立体匹配网络通过1D相关而深度估计是3D相关),这就需要任务相关的卷积网络用于cost volume的后处理,参数并不共享。此外,卷积网络的类型也可能相当不同(2D,3D或Conv-GRU)。这给统一这些任务的pipeline中引入了额外的挑战。
动机
这篇论文的关键见解是,这些任务可以统一为明确的几何特征密集匹配问题,通过直接比较特征相似性来解决。统一模型自然地实现了跨任务迁移,因为每个任务都使用完全相同的可学习参数来进行特征提取。例如,在没有任何微调的情况下,预训练的光流模型可以直接用于立体匹配任务和深度估计任务。而且,当使用预训练的光流模型作为初始化进行微调时,既可以得到更快训练速度,而且还可以取得更好的性能。
这项工作是GMFlow的重大扩展,其中新的贡献如下:
- 统一光流估计/立体匹配/深度估计任务。GMFlow的目的是证明其是RAFt这类迭代架构的在光流估计任务中的有效替代方案,而这项工作统一了三个密集匹配估计任务,将GMFlow扩展到立体匹配和深度估计,并进行了大量实验
- 复用预先训练的光流模型来研究跨任务迁移行为
- 引入额外的后处理步骤,进一步提高了原始GMFlow的性能
在10个流行的数据集上论文展示了最先进的或高度有竞争力的性能
方法
不同视点之间的密集匹配关系是光流、立体匹配和深度估计任务的核心。为了统一这三个任务,本文的关键思想是使用一个显式的密集匹配方法,它通过直接比较特征相似性来识别匹配,因此需要一个较强的特征。因此作者使用上文GMFlow的Transformer来提取用于匹配的强特征。请注意,匹配层是根据每个任务的不同约束设计的,因此是特定于任务的。但是,匹配层是无参数的,因为它们只比较特征相似性。所有三个任务的可学习参数完全相同,因此可以复用进行跨任务迁移。
Flow Matching
Stereo Matching
立体匹配的目的是找到立体对之间沿水平扫描线的像素视差即一维对应(原匹配图像对做了极线校正),这可以看作是二维光流的一种特殊情况。不像上面光流中的二维全局匹配,我们只需要考虑沿着一维水平方向的匹配。
- 计算一个一维匹配相关性矩阵
-
- 使用可微的softmax,得到匹配分布情况
Depth Matching
分别将上述光流、立体匹配和深度估计的模型分别命名为GMFlow、GMStereo和GMDepth
细化(后处理)
前文提出的方法(使用1/8像素的特性)已经实现了具有竞争力的性能,简单且高效,接下来为了适应不同的任务,论文探索了两种类型的细化方法来进一步提升性能。
- 层次匹配细化: 层次匹配细化使用的就是前文的基于Transformer+softmax的全局匹配思路,因此是与任务无关的。该统一全局匹配方法在1/8的特征分辨率下进行,并获得了1/8的光流/视差/深度预测。为了提高性能和细粒度细节,这里采用全局加局部特征融合的思路,即将1/8的光流/视差/深度预测进行上采样到1/4分辨率,作为GMFlow中第一个CNN的输出,同时wrap得到第二个CNN的输出,两者输入到GMFlow的Transformer层进行特征增强,再通过一个local match的方式得到预测的光流/视差的残差添加到之前通过全局匹配获得的上采样流/视差预测中。可以注意到,在1/8和1/4的层次匹配阶段,论文的方法共享了Transformer和self-attention权重,因为除了不同的范围(全局和局部)外,它们基本上执行了非常相似的匹配过程。这不仅减少了参数,而且提高了泛化性。
- 局部回归细化:
Global vs. local matching
前文的结果显示,统一模型加一个任务无关的层次匹配细化,能够超过31次的细化的RAFT,这证明了基于全局匹配的范式的有效性。如上图所示,我们的统一全局匹配方法在大运动的情况下更具优势。但是对于小的运动,可能不需要执行全局匹配,在这种情况下,局部回归(cost volume + conv)是有利的。为了实现最佳的性能,一个简单的方法是结合这两种光流估计方法的优点。也就是说,局部回归方法被用作我们的统一模型的后处理步骤。这进一步改善了细粒度的细节和难以匹配的区域。
这种局部回归是任务相关的:
- 对于光流,论文使用二维correlation;对于校正的立体匹配,论文也使用correlation,因为论文发现虽然存在一些冗余,但它的表现优于一维correlation;对于未校正的深度估计,论文使用由当前深度预测和相对位姿转换构造的二维correlation。这种细化架构是特定于任务的,而不是在任务之间共享的。
- 对于不同的任务,附加迭代细化的可选数量也有所不同,论文根据经验选择这个数字。对于光流,在层次匹配细化后,论文在1/4特征分辨率下使用6个额外的细化步骤;对于修正的立体匹配,论文在层次匹配细化后,使用了1/4特征分辨率的3个额外的细化步骤;对于未修正的深度估计,论文使用1个额外的细化步骤
实验
前文已经有基于Transformer全局匹配的相关实验以及光流估计相关的实验,这里继续进行双目立体匹配和深度估计的实验结果展示,以及跨任务迁移的有效性证明
双目立体匹配
Visual comparisons on Middlebury test set
Stereo performance on KITTI 2015 test set.
Stereo performance on Middlebury test set
Stereo performance on ETH3D two-view stereo test set
与光流估计任务类似,论文使用额外的特定于任务的基于local match的局部回归细化来进一步提高性能。虽然校正后的立体匹配是一维匹配任务,但作者发现在“cost volume + 卷积”的回归方法中,二维相关性优于一维相关性。因此,最终的模型除了在1/4特征分辨率下的1个层次匹配细化外,还使用了3个额外的细化。与RAFTStereo 和CRETStereo相比,论文的最终模型所需的改进次数要小得多,归功于强大的特征增强。最终结果如上图所示,论文的方法在多个数据集取得最先进或者高度竞争力的性能,同时在模型设计和推理速度方面更简单、更高效。
深度估计
Depth performance on ScanNet test set
Depth performance on RGBD-SLAM, SUN3D and Scenes11 test datasets
论文在1/8的特征分辨率下使用了一个额外特定于任务的基于local match的局部回归细化,这进一步提高了性能同时保持较快的推理速度。最终结果如上图所示,本文方法在多个数据集取得最先进或者高度竞争力的性能,同时在模型设计和推理速度方面更简单、更高效。
跨任务迁移
Flow to stereo transfer:
Flow to depth transfer
论文的统一模型的还有一个独特好处是,它很自然地支持跨任务迁移,因为所有的任务的可学习参数都是完全相同的。更具体地说,可以直接使用预先训练好的光流模型,并将其应用于立体匹配和立体深度估计任务。如上图所示,其预训练光流模型的性能明显优于随机初始化模型。
finetune
值得注意的是,以往没有光流模型可以直接用于未校正的立体深度估计,而所提模型取得了良好的结果,如上图所示。预训练的流模型可以进一步细化立体和深度任务,不仅可以加快训练速度,而且比随机初始化获得更好的性能
总结
针对光流估计、校正的立体匹配和未矫正的深度估计,作者提出了统一的范式和模型。通过将这三个任务表述为一个统一的密集匹配问题,利用Transformer和softmax实现全局匹配,并结合self-attention处理遮挡问题,证明了它们都可以用一个统一的模型来解决。同时也支持跨任务迁移。利用三个任务相关的细化后处理,最终的模型在10个流行的光流/立体匹配/深度数据集上实现了最先进的或具有高度竞争力的性能,同时在模型设计和推理速度方面更简单、更高效。
#SOLIDER
SOLIDER 是 CVPR 2023 录用的一篇来自于阿里达摩院的工作,文章全名叫做Beyond Appearance: a Semantic Controllable Self-Supervised Learning Framework for Human-Centric Visual Tasks。它是一个专门用于支持各种人体任务的视觉预训练模型。
在现今的各种视觉智能场景中,对图像中人的理解和分析一直都是一个非常重要的环节。SOLIDER 提供一种自监督训练方式,让我们可以充分利用市面上大量的人体无标注数据训练出一个可以通用于下游各种人体视觉任务的预训练大模型。
论文链接:https://arxiv.org/abs/2303.17602
项目链接:https://github.com/tinyvision/SOLIDER
现今以人为中心的视觉任务引起了越来越多的研究关注,因为它们在现实场景中有着广泛的应用。我们的目标是从大量未标注的人体图像中学习一个通用的人体表征。基于此,我们提出了一个自监督的学习框架,叫做SOLIDER。与现有的自我监督学习方法不同,该方法利用人体图像中的先验知识来自监督训练模型,为表征引入更多的语义信息。
此外,我们还注意到不同的下游任务通常对预训练的人体表征中语义信息和表观信息的需求程度各不相同。例如人体解析任务(human parsing)需要表征中包含更多的语义信息,而人体再识别任务(person re-identification)则需要更多的表观信息来进行不同人的识别。
因此,一个单一的人体表征并不能适用于所有下游任务。SOLIDER 通过引入一个带有语义控制器的条件神经网络来解决这个问题。待预训练模型训练完成后,用户可以通过向语义控制器输入希望表征包含语义信息的比例,让控制器调整预训练模型,以生成符合指定语义信息量的人体表征。我们可以使用包含不同语义信息量的人体表征去适应不同的下游任务。我们实验发现SOLIDER可以在六个下游人体视觉任务中超过了state of the arts。
主要贡献
1、[贡献一] Semantic Supervision from Human Prior:利用人体图片先验打伪标签,进行自监督训练,使得预训练模型包含更多的语义信息。
2、[贡献二] Semantic Controller:引入一个语义控制器,控制预训练模型中语义信息的含量多少,来适应不同的下游任务。
具体方法
Overview
整个SOLIDER的训练流程图如图1所示:
Semantic Supervision from Human Prior
我们发现人体图片本身包含很强的先验。大部分人体图片中,人体基本占满整个图片,并且头朝上,脚朝下。这个先验之前也被很多工作使用过[1,2],因此,我们尝试用这种先验来指导模型自监督训练。简单来说,对每张图片,我们将图片像素特征进行聚类(这里我们以3类为例),沿Y轴将3类分别定义为上半身,下半身和脚。对每个像素根据其聚类结果打上伪标签,如图2(b)所示。然后进行像素级别的3分类训练。
聚类后我们发现很多时候由于噪声比较多,聚类效果并不好。为了达到更好的效果,借鉴[2]的思想,我们首先根据像素特征的模长进行2分类,将模长小的那类定义为背景类,如图2(d)所示。再对模长长的那类进行3分类聚类,得到前景中对应的三个语义part,如图2(e)所示。
除此之外,我们相信即使遮住了某个part,根据相邻语义part,模型应该有能力预测出被遮挡这个part属于哪一类。为了进一步提升语义信息的影响,我们引入MAE的思想,随机遮住某个part,然后让模型预测正确结果,进行自监督训练。
我们的框架以DINO作为baseline,模型的语义信息损失函数如下所示:
Semantic Controller
我们发现不同的下游任务对人体表征中语义信息的含量多少有着不同的需求,我们希望一次训练得到的预训练模型可以适合不同的下游任务。因此,我们引入一个语义控制器,将整个预训练模型变成一个条件网络。语义控制器如图1中所示,它被加到了backbone每个block的后面,它的输入是一个标量 λ 和前一层的特征图,这个标量λ就是用来控制表征中语义信息的含量。
在训练时,首先我们将λ设为1,送到DINO中的teacher branch,得到语义伪标签。之后,我们随机采样一个λ值(范围为0~1,文中也给出了不同采样分布的比较),得到对应的teacher和student branch的特征图f_t和f_s,用DINO的contrastive loss训练f_t和f_s,用语义伪标签训练f_s。最终公式如下所示:
在下游使用时,针对特定任务,我们预先设定对应的λ值,比如对行人再识别任务,我们将λ设为0.2,对于人体检测和人体解析任务,我们将λ设为1.0。然后进行下游任务的全参数finetuning。
实验结果
语义信息验证
首先,我们分析SOLIDER训练的模型是否包含了更多语义信息,如图3所示,左侧为DINO训练的模型,右侧为SOLIDER训练的模型。图中不同颜色表示不同人,不同形状表示人的不同语义part。可以看到左侧图片中,同一个人的不同part都聚在一起,不区分不同part。而右侧图片中,包含相同语义的part会聚在一起,即使来自于不同人,并且,如果相同语义的part表观也相似,他们会离的很近(比如红绿三角),表观不相似会有一定的距离(比如蓝红三角)。这说明相对于DINO训练的模型,SOLIDER模型包含了更多的语义信息。
验证
其次,我们想验证λ是否能够反映甚至控制表征中语义信息的含量。我们统计了两个距离,分别是训练集中不同图片同一个语义part之间的平均距离(inter-image distance)和同一个图片中不同语义part之间的平均距离(intra-image distance)。如图4所示,对于SOLIDER训练好的预训练模型,随着λ变大,输出特征的intra-image distance在不断变大,inter-image distance在不断变小,说明不相同语义的part在不断拉近,也就是说特征的语义表达能力越来越强。
为了进一步验证这个问题,我们尝试使用不同的λ来观察其表征在下游任务上的效果。可以看到在行人重识别任务上,随着λ增大,效果越来越差;反而对于人体检测任务,随着λ增大,效果越来越好。这也进一步说明,λ会对表征产生影响,并且可以用来控制其中语义信息对下游任务的影响。
消融实验和SOTA比较
最后,我们对提供了相应的消融实验(图5)和state of the arts之间的比较(图6)。可以看到在绝大多数任务上,我们的效果要优于当前的state of the art方法。
一些观点
1、这里我们训练只采用了LUPerson数据集,并且能看出来效果并未达到瓶颈,随着数据量的增加,效果还能进一步提升。
2、CVPR23上OpenGVLab有一篇专注于human-centric pretrain的文章HumanBench,很惊艳的工作,很开心能看到有更多学者关注于human-centric pretrain的研究。HumanBench的工程量也非常庞大。但和我们不同的是,它更关注于multi-task的监督训练,希望模型在下游不finetune就能有个很棒的效果。而我们更侧重于自监督预训练,为了充分利用大量无标注数据。
#All-in-one-Deflicker
带来一键去除视频闪烁的通用框架
该论文成功提出了第一个无需额外指导或了解闪烁的通用去闪烁方法,可以消除各种闪烁伪影。
高质量的视频通常在时间上具有一致性,但由于各种原因,许多视频会出现闪烁。例如,由于一些老相机硬件质量较差,不能将每帧的曝光时间设置为相同,因此旧电影的亮度可能非常不稳定。此外,具有非常短曝光时间的高速相机可以捕捉室内照明的高频率(例如 60 Hz)变化。
将图像算法应用于时间上一致的视频时可能会带来闪烁,例如图像增强、图像上色和风格转换等有效的处理算法。
视频生成方法生成的视频也可能包含闪烁伪影。
由于时间上一致的视频通常更具视觉上的吸引力,从视频中消除闪烁在视频处理和计算摄影领域中非常受欢迎。
该 CVPR 2023 论文致力于研究一种通用的闪烁去除方法:(1)对于各种闪烁模式或水平均具有较高的泛化性(例如,旧电影、高速相机拍摄的慢动作视频),(2)仅需要一段闪烁视频,并不需要其他辅助信息(例如,闪烁类型、额外的时间一致视频)。由于该方法没有过多假设,它具有广泛的应用场景。
代码链接:https://github.com/ChenyangLEI/All-in-one-Deflicker
项目链接:https://chenyanglei.github.io/deflicker
论文链接:https://arxiv.org/pdf/2303.08120.pdf
方法
通用的闪烁去除方法很具有挑战性,因为在没有任何额外指导的情况下很难强制整个视频的时间一致性。
现有的技术通常为每种闪烁类型设计特定的策略,并使用特定的知识。例如,对于由高速摄像机拍摄的慢动作视频,之前的工作可以分析照明频率。对于通过图像处理算法处理的视频,盲目视频时域一致性算法可以利用时域上一致的未处理视频上作为参考,从而获得长期的一致性。然而,闪烁类型或未经处理的视频并不总是可用的,因此现有的特定于闪烁的算法无法应用于这种情况。
一个直观的解决方案是使用光流来跟踪对应关系。然而,从闪烁视频中获得的光流不足够准确,光流的累积误差也会随着帧数的增加而增加。
通过两个关键的观察和设计,作者成功提出了一个通用的、无需额外指导的通用去闪烁方法,可以消除各种闪烁伪影。
一种良好的盲去闪烁模型应该具有跟踪所有视频帧之间对应点的能力。视频处理中的多数网络结构只能采用少量帧作为输入,导致感知野较小,无法保证长期一致性。研究者观察到神经图集非常适合闪烁消除任务,因此将引入神经图集到这项任务中。神经图集是视频中所有像素的统一且简洁的表示方式。如图 (a) 所示,设 p 为一个像素,每个像素 p 被输入到映射网络 M 中,该网络预测 2D 坐标(up,vp),表示像素在图集中对应的位置。理想情况下,不同帧之间的对应点应该共享图集中的一个像素,即使输入像素的颜色不同也应该如此。也就是说,这可以确保时间一致性。
其次,虽然从共享的图层中获取的帧是一致的,但图像的结构存在缺陷:神经图层不能轻松地建模具有大运动的动态对象;用于构建图层的光流也不完美。因此,作者们提出了一种神经过滤策略,从有缺陷的图层中挑选好的部分。研究者们训练了一个神经网络来学习两种类型的失真下的不变性,这两种失真分别模拟了图层中的伪影和视频中的闪烁。在测试时,该网络可作为过滤器很好地工作,以保留一致性属性并阻止有缺陷的图层中的伪影。
实验
研究者构建了一个包含各种真实闪烁视频的数据集。广泛的实验表明,在多种类型的闪烁视频上,研究者的方法实现了令人满意的去闪烁效果。研究者的算法甚至在公共基准测试中优于使用额外指导的基线方法。
研究者提供了 (a) 处理的到的闪烁视频和合成的闪烁视频的定量比较,研究者的方法的变形误差比基线要小得多,根据 PSNR,研究者的结果在合成数据上也更接近于真实值。对于其他真实世界视频,研究提供了 (b) 双盲实验以进行比较,大多数用户更喜欢研究者的结果。
如上图所示,研究者的算法可以很好的去除输入视频中的闪烁。注意,第三列图片展示了神经图层的结果,可以观察到明显的缺陷,但是研究者的算法可以很好的利用其一致性又避免引入这些缺陷。
该框架可以去除老电影、AI生成视频中包含的不同类别的闪烁。