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

w~视觉~合集26

我自己的原文哦~  https://blog.51cto.com/whaosoft/12663170

#InternVL

本文设计了一个大规模的视觉-语言基础模型(InternVL),将视觉基础模型的参数扩展到60亿,并逐步与LLM对齐,利用来自不同来源的网络规模的图像-文本数据。该模型可广泛应用于32个通用视觉-语言基准,包括图像级别或像素级别的识别等视觉感知任务,以及零样本图像/视频分类等视觉-语言任务,并与LLM相结合以创建多模式对话系统。ViT-22B被取代了?上海AI Lab等提出InternVL:60亿视觉参数刷爆多模态榜单

论文链接:https://arxiv.org/abs/2312.14238

开源代码:https://github.com/OpenGVLab/InternVL

大型语言模型(LLMs)在开放世界语言任务中展现出令人印象深刻的能力,极大地推动了人工通用智能(AGI)系统的发展。它们的模型规模和性能仍在快速增长。利用LLMs的视觉大型语言模型(VLLMs)也取得了重大突破,实现了复杂的视觉-语言对话和互动。然而,与LLMs的快速增长相比,视觉和视觉-语言基础模型的进展滞后。

为了将视觉模型与语言模型(LLMs)进行联系,现有的视觉语言联合模型(VLLMs)常常采用轻量级的“粘合”层,例如QFormer或线性投影,来对齐视觉和语言模型的特征。然而,这种对齐存在以下几个局限性:(1)参数规模的不一致。LLMs的参数规模已经达到1000亿,而广泛使用的VLLMs的视觉编码器仍在10亿左右。这种差距可能导致LLMs的能力被低估。(2)表示的不一致。在纯视觉数据上训练的视觉模型或与BERT系列对齐的模型往往与LLMs存在表示上的不一致。(3)连接效率低下。粘合层通常是轻量级的和随机初始化的,可能无法捕捉到多模态理解和生成所需的丰富的跨模态交互和依赖关系。

简介

在本研究中,我们设计了一个大规模的视觉-语言基础模型(InternVL),将视觉基础模型的参数扩展到60亿,并逐步与LLM对齐,利用来自不同来源的网络规模的图像-文本数据。该模型可广泛应用于32个通用视觉-语言基准,包括图像级别或像素级别的识别等视觉感知任务,以及零样本图像/视频分类、零样本图像/视频-文本检索等视觉-语言任务,并与LLM相结合以创建多模式对话系统。它具有强大的视觉能力,可以成为ViT-22B的良好替代品。

方法与模型

如图所示,与传统的仅使用视觉的backbone方法 和双编码器模型不同,本文提出的InternVL采用了一个视觉编码器InternViT-6B和一个语言中间件QLLaMA。具体地,InternViT-6B是一个具有60亿参数的视觉Transformer,通过自定义,实现了性能和效率之间的良好平衡。QLLaMA是一个具有80亿参数的语言中间件,初始化使用多语增强的LLaMA。它可以为图像-文本对比学习提供稳健的多语言表示,或者作为连接视觉编码器和现成的LLM解码器的桥梁。

为了使这两个具有模态和结构差异的大型组件对齐,我们引入了一种渐进对齐训练策略。该训练策略逐步进行,从大规模嘈杂数据上的对比学习开始,逐渐过渡到精致和高质量数据上的生成学习。通过这种方式,我们确保有效组织和充分利用来自各种来源的规模庞大的图像-文本数据。然后,配备对齐的视觉编码器和语言中间件。

1 模型设计

大规模视觉编码器:InternViT-6B

我们使用普通的视觉变换器(ViT)实现了InternVL的视觉编码器。为了与LLM的规模相匹配,我们将视觉编码器扩展到了60亿个参数,从而得到了InternViT-6B模型。为了在准确性、速度和稳定性之间取得良好的平衡,我们对InternViT-6B进行了超参数搜索。我们在{32,48,64,80}的模型深度、{64,128}的头部维度和{4,8}的MLP比率范围内进行变化。模型的宽度和头部数量是根据给定的模型规模和其他超参数计算得出的。我们在LAION-en数据集的一个1亿子集上使用对比学习来衡量具有不同配置的InternViT-6B变体的准确性、速度和稳定性。我们报告了以下发现:(1)速度。对于不同的模型设置,在计算未达到饱和状态时,深度较小的模型每张图像的速度更快。然而,当GPU计算得到充分利用时,速度差异变得可以忽略;(2) 准确性。在相同数量的参数下,深度、头部维度和MLP比率对性能的影响很小。根据这些发现,我们确定了我们最终模型的最稳定配置,如表1所示。语言中间件:QLLaMA。语言中间件QLLaMA旨在对齐视觉和语言特征。QLLaMA是基于预训练多语言LLaMA开发的,并添加了96个可学习的查询和交叉注意力层(10亿个参数),其随机初始化。通过这种方式,QLLaMA可以将视觉元素平滑地整合到语言模型中,从而增强了合并特征的一致性和有效性。

“瑞士军刀”模型:InternVL

通过灵活组合视觉编码器和语言中间件,InternVL可以支持各种视觉或视觉语言任务。(1)对于视觉感知任务,InternVL的视觉编码器,即InternViT-6B,可以作为视觉任务的主干。给定输入图像I ∈RH×W×3,我们的模型可以为密集预测任务生成特征图F ∈RH/14×W/14×D,或者通过全局平均池化和线性投影进行图像分类。(2)对于对比任务,如图4(a)(b)所示,我们引入了两种推理模式:InternVL-C和InternVL-G,分别使用视觉编码器或InternViT和QLLaMA的组合来编码视觉特征。具体而言,我们对InternViT的视觉特征或QLLaMA的查询特征应用注意力汇聚,计算全局视觉特征If。此外,我们通过提取QLLaMA的[EOS]标记的特征来对文本进行编码,得到Tf。通过计算If和Tf之间的相似度得分,我们支持包括图文检索在内的各种对比任务。(3)对于生成任务,与QLLAma相比,QLLaMA具有更强大的图像字幕能力,这得益于其参数的扩大。QLLaMA的查询对InternViT-6B的视觉表示进行重新组织,并作为QLLaMA的前缀文本。随后的文本标记将逐个序列地生成。(4)对于多模态对话,我们引入了InternVL-Chat,将InternVL作为视觉组件连接到LLMs。为此,我们有两个不同的配置。

2 Alignment Strategy

InternVL的训练分为三个渐进阶段,包括视觉-语言对比训练、视觉-语言生成训练和监督微调。这些阶段有效利用来自不同来源的公共数据,包括来自网络的噪声图像-文本对到高质量的标题、视觉问答和多模态对话数据集。

视觉-语言对比训练

在第一阶段,我们通过对比学习在网络规模上将InternViT-6B 与多语言的 LLaMA7B对齐,使用包括LAION-en、LAION-multi、LAION-COCO、COYO和Wukong等多语言内容的公开数据集进行训练。我们使用这些数据集的组合,并过滤掉一些极低质量的数据来训练我们的模型。原始数据集包含60.3亿个图像-文本对,经过清理后剩下49.8亿个。

在训练过程中,我们采用LLaMA-7B编码文本为Tf,并使用InternViT-6B 提取视觉特征If。遵循CLIP 的目标函数,我们在一批次的图像-文本对的相似度得分上最小化对称的交叉熵损失。这一阶段使得InternVL在零样本图像分类和图像-文本检索等对比任务中表现出色,而该阶段的视觉编码器也能在语义分割等视觉感知任务上表现良好。

视觉-语言生成训练

在训练的第二阶段,我们将InternViT-6B 与 QLLaMA 相连接,并采用生成性训练策略。具体来说,QLLaMA 在第一阶段继承了LLaMA-7B 的权重。我们保持 InternViT-6B 和 QLLaMA 的权重不变,只训练添加的可学习查询和交叉注意力层,并使用经过筛选的高质量数据。可以看到,我们进一步过滤了低质量标题的数据,将其从第一阶段的49.8亿减少到10.3 亿。

根据BLIP-2的损失函数,这一阶段的损失由图像-文本对比(ITC)损失、图像-文本匹配(ITM)损失和图像引导文本生成(ITG)损失组成。这使得查询能够提取强大的视觉表示,并通过有效的训练目标和大规模的以LLM为初始化的QLLaMA进一步对齐特征空间。

监督微调

为了展示InternVL在创建多模态对话系统方面的优点,我们将其与现成的LLM解码器(例如,Vicuna或InternLM)通过一个MLP层连接,并进行监督微调(SFT)。我们收集了一系列高质量的指令数据,总共约为 400万个样本。对于非对话数据集,我们使用中描述的方法进行转换。由于QLLaMA和LLM解码器具有相似的特征空间,即使冻结LLM解码器,选择仅训练MLP层或同时训练MLP层和QLLaMA,我们仍然可以实现强大的性能。这种方法不仅加快了SFT过程,还保持了LLM的原始语言能力。

实验与结果

首先,我们验证了InternVL的最核心组件InternViT-6B的视觉感知能力。

我们使用ImageNet-1K数据集评估InternViT-6B生成的视觉表示的质量。遵循常见做法,我们采用线性探测评估方法,即在保持骨干网络冻结的同时训练线性分类器。除了在ImageNet-1K验证集上的性能指标外,我们还报告了在几个ImageNet变体上的性能指标,以评估其领域泛化能力。

为了研究InternViT-6B的像素级感知能力,我们在ADE20K数据集上进行了广泛的语义分割实验。

除此之外,我们还评估了InternVL在各种视觉语言任务中的固有能力。比如零样本图像分类,零样本视频分类,零样本图像-文本检索,零样本图像字幕生成等。

零样本图像-文本检索结果对比

零样本图像分类结果

零样本视频分类结果

12个基准方法的对比结果

零样本图像描述结果

#SegRefiner

这里分享 NeruIPS 2023 论文​​SegRefiner: Towards Model-Agnostic Segmentation Refinement with Discrete Diffusion Process​​,通过Diffusion实现高精度图像分割。

为了实现高精度的图像分割,来自北京交大、南洋理工、字节跳动等的研究者们引入了一种基于扩散模型Diffusion去逐步提高mask质量的方法。

  • 论文地址:https://arxiv.org/abs/2312.12425
  • 开源代码:https://github.com/MengyuWang826/SegRefiner

背景介绍

尽管图像分割在过去得到了广泛研究和快速发展,但获得细节上非常准确的分割 mask 始终十分具有挑战性。因为达成高精度的分割既需要高级语义信息,也需要细粒度的纹理信息,这将导致较大的计算复杂性和内存使用。

而对于分辨率达到2K甚至更高的图像,这一挑战尤为突出。由于直接预测高质量分割 mask 具有挑战性,因此一些研究开始集中于 refine 已有分割模型输出的粗糙 mask。

为了实现高精度的图像分割,来自北京交大、南洋理工、字节跳动等的研究者们引入了一种基于扩散模型Diffusion去逐步提高mask质量的方法。

现有方法

Model-Specific

一类常见的 Refinement 方法是 Model-Specific 的,其通过在已有分割模型中引入一些新模块,从而为预测 Mask 补充了更多额外信息,从而增强了已有模型对于细节的感知能力。这一类方法中代表性的工作有 PointRend,RefineMask,MaskTransfiner等。然而,这些方法是基于特定模型的改进,因此不能直接用于 refine 其他分割模型输出的粗糙 mask。

Model-Agnostic

另一类 Refinement 方法是 Model-Agnostic 的,其只使用原始图像和粗糙mask作为输入信息,如 BPR,SegFix,CascadePSP,CRM 等。由于这类方法在 Refinement 过程中未使用已有模型的中间特征,因此不依赖于特定分割模型,可以用于不同分割模型的 Refinement。然而,尽管这类方法能够有效地提升分割准确度,但由于粗糙 mask 中存在多种多样的错误预测(如下图所示),导致模型无法稳定地修正粗糙 mask 中的全部预测错误。

实现目标

相比于 Model-Specific 的方法,Model-Agnostic 的方法能够直接应用于不同分割模型的 Refinement,从而有着更高的实用价值。更进一步地,由于不同分割任务(语意分割,实例分割等)的结果都可以被表示为一系列 binary mask,具有相同的表征形式,在同一个模型中统一实现不同分割任务的 Refinement 同样是可能的。因此,我们希望实现能够应用于不同分割模型和分割任务的通用 Refinement 模型。

如前所述,已有分割模型产生的错误预测是多种多样的,而想要通过一个通用模型一次性地更正这些多样性的错误十分困难。面对这一问题,在图像生成任务中取得巨大成功的扩散概率模型给予了我们启发:扩散概率模型的迭代策略使得模型可以在每一个时间步中仅仅消除一部分噪声,并通过多步迭代来不断接近真实图像的分布。这大大降低了一次性拟合出目标数据分布的难度,从而赋予了扩散模型生成高质量图像的能力。直观地,如果将扩散概率模型的策略迁移到 Refinement 任务中,可以使得模型在进行 Refinement 时每一步仅关注一些“最明显的错误”,这将降低一次性修正所有错误预测的难度,并可以通过不断迭代来逐渐接近精细分割结果,从而使得模型能够应对更具挑战性的实例并持续纠正错误,产生精确分割结果。

在这一想法下,我们提出了一个新的视角:将粗糙 mask 视作 ground truth 的带噪版本,并通过一个去噪扩散过程来实现粗糙 mask 的 Refinement,从而将 Refinement 任务表示为一个以图像为条件,目标为精细 mask 的数据生成过程。

算法方案

扩散概率模型是一种由前向和反向过程表示的生成模型,其中前向过程通过不断加入高斯噪声得到不同程度的带噪图像,并训练模型预测噪声;而反向过程则从纯高斯噪声开始逐步迭代去噪,最终采样出图像。而将扩散概率模型迁移到 Refinement 任务中,数据形式的不同带来了以下两个问题:

  1. 由于自然图像往往被视作高维高斯变量,将图像生成的过程建模为一系列高斯过程是十分自然的,因此已有的扩散概率模型大多基于高斯假设建立;而我们的目标数据是 binary mask,通过高斯过程拟合这样一个离散变量的分布并不合理。
  2. 作为一种分割 Refinement 方法,我们的核心思想是将粗糙 mask 视为带有噪声的 ground truth,并通过消除这种噪声来恢复高质量的分割结果。这意味着我们扩散过程的结尾应当收敛到确定性的粗糙 mask(而非纯噪声),这也与已有的扩散概率模型不同。

针对上述问题,我们建立了如下图所示的基于“随机状态转移”的离散扩散过程。其中,前向过程将 ground truth 转换为“不同粗糙程度”的 mask,并用于训练;而反向过程用于模型推理,SegRefiner 从给出的粗糙 mask 开始,通过逐步迭代修正粗糙 mask 中的错误预测区域。以下将详细介绍前向和反向过程。

前向过程

反向过程

模型结构

算法评估

由于 Refinement 任务的核心是获取细节精确的分割结果,在实验中我们选取了三个代表性的高质量分割数据集,分别对应Semantic Segmentation,Instance Segmentation 和 Dichotomous Image Segmentation。

Semantic Segmentation

如表1所示,我们在 BIG 数据集上将提出的 SegRefiner 与四种已有方法:SegFix,CascadePSP,CRM 以及 MGMatting 进行了对比。其中前三个为语义分割的 Refinement 方法,而 MGMatting 使用图像和 mask 进行 Matting 任务,也可以用于 Refinement 任务。结果表明,我们提出的 SegRefiner 在 refine 四个不同语义分割模型的粗糙 mask 时,都在 IoU 和 mBA 两项指标上获得了明显提升,且超越了之前的方法。

Instance Segmentation

实例分割中,我们选择了之前的工作广泛使用的 COCO 数据集进行测试,并使用了 LVIS 数据集的标注。与原始 COCO 标注相比,LVIS 标注提供了更高质量和更详细的结构,这使得 LVIS 标注更适合评估改进模型的性能。   

首先,在表2中,我们将提出的SegRefiner与两种 Model-Agnostic 的实例分割 Refinement 方法 BPR 和 SegFix 进行了比较。结果表明我们的 SegRefiner 在性能上明显优于这两种方法。

然后在表3中,我们将 SegRefiner 应用于其他7种实例分割模型。我们的方法在不同准确度水平的模型上都取得了显著的增强效果。值得注意的是,当应用于三种 Model-Specific 的实例分割 Refinement 模型(包括PointRend、RefineMask 和 Mask TransFiner)时,SegRefiner 依然能稳定提升它们的性能,这说明 SegRefiner 具有更强大的细节感知能力。

Dichotomous Image Segmentation

Dichotomous Image Segmentation 是一个较新提出的任务,如下图所示,其数据集包含大量具有复杂细节结构的对象,因此十分适合评估我们 SegRefiner 对细节的感知能力。

在本实验中,我们将 SegRefiner 应用于6种分割模型,结果如表4所示。可以看到,我们的SegRefiner在 IoU 和 mBA 两项指标上都明显提升了每个分割模型的准确度。

可视化展示

#codebook 技术史(从 VAE 到 VQ/RQ-VAE 到 FSQ)

本文详细介绍了变分自编码器(VAE)及其衍生模型VQ-VAE和RQ-VAE,探讨了它们在图像生成和压缩中的原理和应用。文章还讨论了VAE的ELBO目标、KL散度、以及如何通过量化技术和残差量化提高模型性能和稳定性。​

VAE:

VAE (variational autoencoder, 变分自编码器) 是一种强大的生成模型, Encoder 把数据编码到隐空间 , 其学习条件概率, Decoder把数据从隐空间中重建回来  ,其学习另一个条件概率  。VAE 额外有一个限制条件是让  满足 Gaussian分布。这样做的好处就是训练结束后可以扔掉 Encoder, 直接从这个先验分布 上随便采样 , 然后通过 Decoder 就能生成一个  。

VAE 最主要的是这个 ELBO :

图片

ELBO,即evidence low bound,evidence指的就是  ,而 ELBO 表示 evidence 的最小期望。我们要让这个 lower bound 尽可能变大,得到的模型就会更可能产生我们期望看到的  。

为解释 ELBO 是怎么来的,我们一步一步来看。

K-L散度:

我们首先讲解 KL 散度,为衡量模型生成的分布与原始分布的相似度,常用的便是 K–L( Kullback–Leibler )散度。定义如下,对于两个具有概率密度函数  和  的分布:

图片

K–L 散度具有两个重要性质:

  1. 不对称性:显然,K–L 散度对于  和 来说是不对称的。
  2. Gibbs 不等式:它总是【非负】的,并且当且仅当  和  在每一处都相同时才为 0。

为了理解这一点,我们可以将 KL 散度分解为两部分:

图片

第二项带有负号,其对应的是  的信息熵;第一项也带有负号,代表  和  之间的交叉熵。第一项始终不大于每个给定符号下的第二项,这便是 Gibbs 不等式;而 Gibbs 不等式的证明可以使用 Jensen 不等式

若  是凸函数,则有:

设  由于  所以其为凸函数,以及

那么:

图片

VAE 理论框架(联合概率建模角度):

VAE 框架可以从多个角度建立,例如概率分布视角、贝叶斯视角 以及 联合概率视角,这里我选用联合概率这一简单的方法来阐述:

假设原始数据样本为  ,分布为  ,我们希望借助隐变量  (标准正态分布)来建模  ,因此我们设立  来逼近  :

图片

 是标准正态分布,  是我们的生成式模型;此外还需明确的是  是  的原始分布,  是encoder生成的  ,训练时要让其逼近正态分布。

我们直接采用联合建模的角度,原来我们的目的是让  来逼近  ,我们转变下思路变为让  与 越相近越好,注意除了,中也有参数:

图片

KL 散度便是我们的终极目标,我们将从这个 KL 散度推导出最终的 ELBO:

图片

这里被我们拆开为两项,第一项:

图片

无论  是什么,它一定是确定的,故第一项是常数

第二项:

图片

因此我们很快便得到了最终的 ELBO,注意多了个负号。

ELBO:

ELBO 有两项,分别为: 以及 -  ,这两部分可以理解为【重构误差项】 以及【KL散度项】:

重构误差项:这部分度量了模型生成数据的质量,即解码器  使用从编码器  采样的  来重构输入  的准确性,这是负对数似然,表明给定潜在变量  后,重构原来的  的概率有多大。目标是最大化这部分期望值,即希望模型能生成与输入  尽可能接近的数据。

KL散度项:- 是后验分布  和先验分布  之间的负K–L 散度,以此衡量编码器的输出分布与标准正态分布的差异。目标是最小化KL散度,确保潜在变量 z 尽可能接近正态分布。

至此我们推导出了VAE的损失函数,了解了ELBO的原理。​

VQ-VAE:

paper:[Neural Discrete Representation Learning]

​​https://arxiv.org/abs/1711.00937​​

paper:Neural Discrete Representation Learning

背景:

VAE中的隐变量 z 的每一维都是一个连续值, 而VQ-VAE 中  的每一维都是离散的整数,这些整数便可 index 到已训练好的 codebook(码本,本质上就是一批 embedding)。这样做符合自然界模态的特点,例如语言本质上就是由很多字符组成,每个字符都可以是用数字索引到字符库里的某个字符,NLP中可以理解为token_id索引到vocab里的某个token,所以VQ-VAE可以理解为 【图像tokenization】 的过程,事实上这种思想可以借鉴引用到很多领域,例如广告推荐里将广告用一串索引表示。

文章还指出,VAE 存在后验坍塌(Posterior Collapse) 的问题,这一般是由散度消失(KL-Vanishinig)导致的,因此该问题也称为KL-vanishing。简单来说就是解码器太强,模型的 潜在空间(latent space)无效化,即编码器  退化为与先验  相同的分布,ELBO里的KL散度项为0,而忽略了输入数据的信息。

方法:

将隐变量  离散化的关键操作是VQ, 即 vector quatization。

图1. VQ-VAE 流程图

  1. 图像  输入至 encoder 中得到
  2. codebook 是一个K*D 的 table(紫色方块):
  3. 将中每一维都映射为 codebook 中K个embedding之一
  4. 全部替换后图中绿色的变为紫色的,然后进行重构

从到的变化可以理解为聚类,如图中右子图所示,由于变化后的embedding位于codebook内,当然就可以只用整数来表示。

训练:

ELBO 损失项:

图片

我们先看原有的 ELBO ,这里p和q互换以与图示对应,q代表encoder,p代表decoder;

这里后验分布  里都是one-hot向量,如下所示:

图片

而非之前VAE里的正态分布,由此  预估的每一维都是codebook里每个embedding的概率;我们假设采样的先验分布  是均匀分布,则每一维对于某个embedding选取概率有  ,则有:

图片

第一项表示one-hot中为1对应的那一维对KL散度的贡献,第二项代表其他维的贡献。

因此 ELBO 中第二项可以忽略,只有重构损失项。

那我们再看第一项损失,可以简单写为:

然而  包含了argmin,这个操作是没有梯度的,无法更新 encoder;VQ-VAE 使用了一个很精巧也很直接的方法,称为 Straight-Through Estimator,称为“直通估计(https://papers.cool/arxiv/1308.3432)”。其思想是在前向传播的时候可以任意变量(可以不可导),而反向传播的时候,直接 跳过 这个不可导的操作。对应图1中红色箭头,表明跳过  的操作。

根据这个思想,我们设计的目标函数是

图片

sg 代表阻止梯度回传

codebook 损失项:

为使得  与  尽量接近,设置损失: ;

这里我们理解下:是编码器得到的,是离得最近的embedding,两者都有可训练的参数;因此在实际训练时,codebook相对自由宽松,没什么限制条件,而编码器生成的要保证重建效果,我们更希望主要靠近,并且因为  的梯度等于以及梯度之和,故可拆解为:

图片

第一项可以理解为不变,主要靠近,第二项相反,由此我们可以给第二项设置一个相对较小的权重,来达到更希望主要靠近的效果。

整体损失项:

图片

文中指出,实验发现  设置[0,1]均具有鲁棒性,故使用  ,还可以使用滑动平均的方式更新,下面阐述。

滑动平均方法:

具体来说使用 指数移动平均(EMA)来更新 codebook :

设  为编码器输出中最接近词典项  的一组  个元素,那么可以将损失写为:

图片

理论上可以求得  的最优值,可以通过封闭形式的解求得,即该集合中所有元素的平均值:

图片

这种更新方法通常用于 K-Means 等算法。然而,当处理小批量(minibatches)时,无法直接使用上述更新方式。因此,我们可以采用指数移动平均,作为该更新的在线版本:

图片

其中,  的取值范围在 0 到 1 之间,论文发现 0.99 是一个不错的选择。

应用:

按照之前 VAE 的逻辑,使用时去掉encoder,在正态分布里采样即可生成图片;那么VQ-VAE呢?其假设先验分布为均匀分布,然而并没有直接在均匀分布里采样,而是使用 PixelCNN 来学习编码的分布(这里非常奇怪,在issue一节讨论),即学习  。

简单介绍下,PixelCNN 是一种采用自回归方式逐像素从左上角生成的图像生成模型,其中使用了mask conv操作,可以类比 GPT,使用 mask self-attention 操作。

所以最后我们通过 PixelCNN 来随机生成 ,然后再用VQ-VAE的 Decoder 来生成最后的图片。

Issue:

VQ-VAE 到底是不是 VAE ?

VAE 的核心是encoder学习一个先验分布,最后只需要从这个先验分布里采样就可以用来生成,然而VQ-VAE事实上并不行,其假设先验分布为均匀分布,但并不能从均匀分布里采样解码得到真实图像,这就说明这就不过只是一个AE 类模型

那么问题出在哪了?回顾 VQ-VAE 的设计,发现并没有类似 VAE 里的 KL散度loss 来迫使先验分布逼近均匀分布。你可能会问假设分布是均匀分布,KL散度是一个常数呀,上面不是还推导了?那么我们再回顾一下:

图片

KL散度是常数,那么这一项就不会优化,也就不存在要让  更逼近  的说法,也就是  不会被更新,其生成的分布根本不可控。

那么继续深究,这一项为何会是常数?原因就在于  始终是一个one-hot分布,无论怎么优化都是如此,而one-hot分布和均匀分布的 KL散度 始终是 logK,因此 ELBO里 的这一项毫无意义。

其实本质上VQ-VAE 做的是【图像 tokenization】的工作,生成模型部分交给自回归模型 PixelCNN 去负责了。

此外:苏神在 博客 评论里还指出 VQ-VAE里边从均匀分布采样离散的code直接传入decoder,生成结果也不至于差得完全不可看,还是勉强能看的,比纯AE要好点,但要保证质量,还是得 pixelcnn。

VQ-VAE 的核心贡献?

核心贡献不在于其提出了一种新的 VAE 架构,而在于提供了一个序列压缩技术。正如上所说,其本质是一个利用codebook 做图像 tokenization 的工作,然而这种 codebook 的思想不仅可以应用于图像,音频、视频甚至短视频、广告都是可以的,所以我们才看到VQ-VAE的思想应用于各个领域,这才是VQ-VAE的魅力所在。

VQ-VAE-2:

论文:​​https://arxiv.org/pdf/1906.00446​​

主要变化就是把 VQ-VAE 的 encoder 和 decoder 都进行了分层, bottom层对local feature进行建模,top层采取全局自注意力机制。

RQ-VAE:

paper:​​https://arxiv.org/pdf/2203.01941​​

背景:

VQ-VAE 的序列长度较长,需要大量的codebook,这势必会导致_codebook collapse(码本摊缩)_问题,使得VQ-VAE的训练很不稳定;而 RQ-VAE 则采取一种 _residual quantization(残差量化)_的新方法,通过D轮迭代,将feature map表示为D个堆叠的离散编码,可以进一步减小feature map(可以理解为经过encoder后的表示)的spatial resolution,例如从原始图像的256256变为88。这样 进一步增加下采样因子 减少分辨率,使得 AR 模型能够减少计算成本、提高图像生成速度,并更好地学习codebook中各向量之间的长依赖关系。

方法:

RQ v.s. VQ:

VQ:

假设codebook表示为  ,对于向量  ,其映射为近邻向量的操作表示为:

图片

给定图片输入为  ,提取的 feature map 为:,通过映射后得到的code map为: ,其中  是feature map中(h,w)位置上的向量。

假设 codebook 大小为 K,那么整个feature map为  个 bit,根据_rate-distortion theory(率失真理论)_,H和W每缩小一半,K都要增加到  ,因此说VQ-VAE需要大量的codebook。

RQ:

在RQ里,定义新的映射为近邻向量的操作:

图片

可以看到并非之前单一的数字,而是一个元组,那么每一位的k如何选择?首先初始化残差 \mathbf{r}_0=\mathbf{z} ,然后按照如下方法计算:

图片

可以这么理解,我要模拟 ,但是我模拟的  肯定和  有差距,我用  表示出来这两者的差,然后我继续模拟  ,但是我模拟的  肯定又和有差距,我用表示出来...... 因此每个  逐步相加,理论上和要模拟的  越来越逼近。

可以看出VQ将空间分为K个簇,而RQ将空间分为  个簇,来实现更精确的量化。

共享codebook机制:

虽然我们可以为每一层深度 d 分别构建一个码本,但在每个量化深度上使用的是单个共享码本。共享码本在构建 RQ 近似向量 z 时有两个优势:

  1. 使用单独的码本需要广泛的超参数搜索,以确定每一层的码本大小,而共享码本只需确定总码本大小 K。
  2. 共享码本使得所有的 embedding 在每一层量化时都可用。因此,每一层都可以使用相同的 embedding,以最大化其效用。

RQ-Transformer:

可以看出编码得到的 feature map 输入给 Transformer 来作为自回归任务的输入,整个 RQ-Transformer 分为Spatial Transformer和 Depth Transformer 两部分。

输入处理:

RQ-VAE 提取的代码映射  会按照 栅格扫描顺序(raster-scan order)重新排列为二维数组  ,其中  。每一行  包含 D 个代码:

图片

自回归建模总公式为:

图片

建模动机:

直接将 \mathbf{S} 展开为长度 TD 的序列并输入传统 Transformer 的方法存在不足,无法利用导 RQ-VAE 降低后的长度 T的优势。此外,这种直接展开会增加计算成本。由此设计为 Spatial Transformer和 Depth Transformer 两部分。

空间 Transformer(Spatial Transformer)

首先空间 Transformer的输入为每个位置上的 feature(各个残差项之和),并加上位置编码(PE),如下:

图片

整个 Spatial Transformer 表示为:

图片

深度 Transformer (Depth Transformer):

深度 Transformer 的任务是在给定位置 t 自回归地预测 D 个残差项code,即

在深度 d 和位置 t 时,Transformer 的输入  被定义为之前深度的嵌入之和

图片

每个深度的预测基于之前所有深度的估计,使得每一层的估计更加精细。

 是深度 d 的位置嵌入,且在所有位置 t 上共享。

整个 Depth Transformer 表示为:

图片

训练:

RQ-VAE 的训练损失函数  包含两部分:

重构损失(Reconstruction Loss)

这个损失度量的是输入  和重构结果  之间的欧氏距离,用于确保重构后的样本尽可能接近原始输入。这里同样会采用 Straight-Through Estimator。

承诺损失(Commitment Loss)

(sg[·] 是 stop-gradient 操作符,用于在反向传播时阻止梯度的传递),该损失的作用是最小化每个维度 d 上的量化误差,从而鼓励编码器的输出  更接近量化后的值  。

论文内提及codebook会采用聚类特征的指数滑动平均来更新,从而提升模型的训练效果和稳定性。

RQ-VAE 同时还采用了对抗训练(Adversarial Training )以提高重构图像的感知质量。采用了基于 patch 的对抗损失和感知损失。

负对数似然损失 (Negative Log-Likelihood, NLL) :

用于训练 RQ-Transformer:

图片

Trick:

曝光偏差 (Exposure Bias):

曝光偏差是自回归(AR)模型中的常见问题。在训练和推断阶段,由于预测错误的累积,模型性能会下降。尤其是在 RQ-Transformer 中,随着深度 D 的增加,量化特征向量的估计变得更加困难,误差也会累积。

论文采用了软标签 (Soft Labeling) 和 随机采样 (Stochastic Sampling)策略:

软标签(Soft Labeling):

基于 RQ-VAE 中代码嵌入之间的几何关系,定义了一个温度参数  控制的类别分布:

图片

当  时,分布  会收缩为一个 one-hot 分布:

软标签的作用:

利用嵌入之间的几何距离,为目标代码的监督引入了软标签分布; 在位置  和深度  上,假设特征向量为  ,并令残差向量为  。负对数似然(NLL)损失使用了该软分布作为监督。

区别于 one-hot 标签,该监督机制使用了软化后的分布  。

随机采样(Stochastic Sampling):

在原始的 RQ-VAE 中,代码选择是确定性的。然而,这里通过从软分布  中进行采样来选择代码 。当  时,随机采样等价于原始确定性代码选择。

优势:随机采样为特征映射提供了不同的代码组合,从而缓解了训练和推断中的不一致性。​

FSQ:

paper:Finite Scalar Quantization: VQ-VAE Made Simple

​​https://arxiv.org/abs/2309.15505​​

方法:

论文提出使用 FSQ(Finite Scalar Quantization) 来替代 VQ-VAE中的“VQ”,其离散化思路非常简单,就是“四舍五入”。如上图所示,假设最后要把x映射为d维(图中d=3),我们把z的每一维用L个value表示(图中L=3),然后将z的每一维的L个value四舍五入(图中则变化为正方体的边线所在顶点处),由此便离散化了。

还有个区别图式中便是VQ里量化后的  会用一个单独的数字代替,表示codebook里的索引;而FSQ里会用L个数字组成的元组(例如(-1,0,1))来替代,也表示索引,整体codebook数量为L^d,图里为9。

方案对比如下:

具体来说给定一个 d -维表示  ,我们的目标是将  量化为有限的码字集。为此,我们首先应用一个边界函数  ,然后将结果四舍五入为整数。我们选择  使得  取得  个唯一值之一(例如,  ),上图的右子图可视化了这个转化,由于tanh取值范围为(-1,1),由此z的范围是 () ,故四舍五入后便是L个取值,图中L=5,则有-2,-1,0,1,2这5个取值。

由此,我们得到  ,其中  便是码本,且  。

为了在整个四舍五入操作中传播梯度,使用了前述 STE(直通估计) 技巧 ,通过以下方式轻松实现“停止梯度(sg)”操作:

图片

实验:

从图中可以看到,编码表大小2^10是一个分界点,在2^10左右时,FSQ与VQ的效果接近;超过2^10时,FSQ占优,反之小于2^10时,VQ占优。文中建议  ,并且d是个位数,相比之下VQ-VAE中d是三位数。​

引用:

Elijha:VQ-VAE解读(https://zhuanlan.zhihu.com/p/91434658)

Variational Autoencoders(https://amaires.github.io/VAE/)

变分自编码器(二):从贝叶斯观点出发 - 科学空间|Scientific Spaces(https://spaces.ac.cn/archives/5343)

VQ-VAE的简明介绍:量子化自编码器 - 科学空间|Scientific Spaces(https://spaces.ac.cn/archives/6760)

简单得令人尴尬的FSQ:“四舍五入”超越了VQ-VAE - 科学空间|Scientific Spaces(https://www.spaces.ac.cn/archives/9826)

#ADPN-MM

视频片段定位 TSG:一句话精准视频片段定位

只需一句话描述,就能在一大段视频中定位到对应片段!

比如描述“一个人一边下楼梯一边喝水”,通过视频画面和脚步声的匹配,新方法一下子就能揪出对应起止时间戳:

就连“大笑”这种语义难理解型的,也能准确定位:

方法名为自适应双分支促进网络(ADPN),由清华大学研究团队提出。

具体来说,ADPN是用来完成一个叫做视频片段定位(Temporal Sentence Grounding,TSG)的视觉-语言跨模态任务,也就是根据查询文本从视频中定位到相关片段。

ADPN的特点在于能够高效利用视频中视觉和音频模态的一致性互补性来增强视频片段定位性能。

相较其他利用音频的TSG工作PMI-LOC、UMT,ADPN方法从音频模态获取了更显著地性能提升,多项测试拿下新SOTA。

目前该工作已经被ACM Multimedia 2023接收,且已完全开源。

一起来看看ADPN究竟是个啥~

一句话定位视频片段

视频片段定位(Temporal Sentence Grounding,TSG)是一项重要的视觉-语言跨模态任务。

它的目的是根据自然语言查询,在一个未剪辑的视频中找到与之语义匹配的片段的起止时间戳,它要求方法具备较强的时序跨模态推理能力。

然而,大多数现有的TSG方法只考虑了视频中的视觉信息,如RGB、光流(optical flows)、深度(depth)等,而忽略了视频中天然伴随的音频信息。

音频信息往往包含丰富的语义,并且与视觉信息存在一致性和互补性,如下图所示,这些性质会有助于TSG任务。

(a)一致性:视频画面和脚步声一致地匹配了查询中的“走下楼梯”的语义;(b)互补性:视频画面难以识别出特定行为来定位查询中的“笑”的语义,但是笑声的出现提供了强有力的互补定位线索。

因此研究人员深入研究了音频增强的视频片段定位任务(Audio-enhanced Temporal Sentence Grounding,ATSG),旨在更优地从视觉与音频两种模态中捕获定位线索,然而音频模态的引入也带来了如下挑战:

  • 音频和视觉模态的一致性和互补性是与查询文本相关联的,因此捕获视听一致性与互补性需要建模文本-视觉-音频三模态的交互。
  • 音频和视觉间存在显著的模态差异,两者的信息密度和噪声强度不同,这会影响视听学习的性能。

为了解决上述挑战,研究人员提出了一种新颖的ATSG方法“自适应双分支促进网络”(Adaptive Dual-branch Prompted Network,ADPN)。

通过一种双分支的模型结构设计,该方法能够自适应地建模音频和视觉之间的一致性和互补性,并利用一种基于课程学习的去噪优化策略进一步消除音频模态噪声的干扰,揭示了音频信号对于视频检索的重要性。

ADPN的总体结构如下图所示:

图2:自适应双分支促进网络(ADPN)总体示意图

它主要包含三个设计:

1、双分支网络结构设计

考虑到音频的噪声更加明显,且对于TSG任务而言,音频通常存在更多冗余信息,因此音频和视觉模态的学习过程需要赋予不同的重要性,因此本文涉及了一个双分支的网络结构,在利用音频和视觉进行多模态学习的同时,对视觉信息进行强化。

具体地,参见图2(a),ADPN同时训练一个只使用视觉信息的分支(视觉分支)和一个同时使用视觉信息和音频信息的分支(联合分支)。

两个分支拥有相似的结构,其中联合分支增加了一个文本引导的线索挖掘单元(TGCM)建模文本-视觉-音频模态交互。训练过程两个分支同时更新参数,推理阶段使用联合分支的结果作为模型预测结果。

2、文本引导的线索挖掘单元(Text-Guided Clues Miner,TGCM)

考虑到音频与视觉模态的一致性与互补性是以给定的文本查询作为条件的,因此研究人员设计了TGCM单元建模文本-视觉-音频三模态间的交互。

参考图2(b),TGCM分为”提取“和”传播“两个步骤。

首先以文本作为查询条件,从视觉和音频两种模态中提取关联的信息并集成;然后再以视觉与音频各自模态作为查询条件,将集成的信息通过注意力传播到视觉与音频各自的模态,最终再通过FFN进行特征融合。

3、课程学习优化策略

研究人员观察到音频中含有噪声,这会影响多模态学习的效果,于是他们将噪声的强度作为样本难度的参考,引入课程学习(Curriculum Learning,CL)对优化过程进行去噪,参考图2(c)。

他们根据两个分支的预测输出差异来评估样本的难度,认为过于难的样本大概率表示其音频含有过多的噪声而不适于TSG任务,于是根据样本难度的评估分数对训练过程的损失函数项进行重加权,旨在丢弃音频的噪声引起的不良梯度。

(其余的模型结构与训练细节请参考原文。)

多项测试新SOTA

研究人员在TSG任务的benchmark数据集Charades-STA和ActivityNet Captions上进行实验评估,与baseline方法的比较如表1所示。

ADPN方法能够取得SOTA性能;特别地,相较其他利用音频的TSG工作PMI-LOC、UMT,ADPN方法从音频模态获取了更显著地性能提升,说明了ADPN方法利用音频模态促进TSG的优越性。

表1:Charades-STA与ActivityNet Captions上实验结果

研究人员进一步通过消融实验展示了ADPN中不同的设计单元的有效性,如表2所示。

表2:Charades-STA上消融实验

研究人员选取了一些样本的预测结果进行了可视化,并且绘制了TGCM中”提取“步骤中的”文本 to 视觉“(T→V)和”文本 to 音频“(T→A)注意力权重分布,如图3所示。

可以观察到音频模态的引入改善了预测结果。从“Person laughs at it”的案例中,可以看到T→A的注意力权重分布更接近Ground Truth,纠正了T→V的权重分布对模型预测的错误引导。

图3:案例展示

总的来说,本文研究人员提出了一种新颖的自适应双分支促进网络(ADPN)来解决音频增强的视频片段定位(ATSG)问题。

他们设计了一个双分支的模型结构,联合训练视觉分支和视听联合分支,以解决音频和视觉模态之间的信息差异。

他们还提出了一种文本引导的线索挖掘单元(TGCM),用文本语义作为指导来建模文本-音频-视觉交互。

最后,研究人员设计了一种基于课程学习的优化策略来进一步消除音频噪音,以自感知的方式评估样本难度作为噪音强度的度量,并自适应地调整优化过程。

他们首先在ATSG中深入研究了音频的特性,更好地提升了音频模态对性能的提升作用。

未来,他们希望为ATSG构建更合适的评估基准,以鼓励在这一领域进行更深入的研究。

论文链接:https://dl.acm.org/doi/pdf/10.1145/3581783.3612504
仓库链接:https://github.com/hlchen23/ADPN-MM

#RTMO~

RTMO 是基于 MMPose 的单阶段实时人体姿态估计模型,它结合了坐标回归与 YOLOX 检测框架,在多人场景下实现了领先的速度与精度。RTMO 在 CrowdPose 数据集上首次达到了 80+ 的 AP,是多人拥挤场景当前效果最好的实时模型。

实时多人在图像中的姿态估计面临着在速度和精度之间实现平衡的重大挑战。尽管两阶段的上下文方法在图像中人数增加时会减慢速度,但现有的单阶段方法往往无法同时实现高精度和实时性能。

这是一个单阶段姿态估计框架,通过在YOLO架构中使用双一维 Heatmap 来表示关键点,实现与自上而下方法相当的准确度,同时保持高速度。作者提出了一种动态坐标分类器和一种定制的损失函数,用于 Heatmap 学习,专门针对坐标分类和密集预测模型之间的不兼容性。RTMO在单阶段姿态估计器中超过了最先进的方法,在COCO上实现了1.1%更高的AP,同时使用相同的基础架构约9倍的速度。作者的最大模型RTMO-l在COCO val2017上达到了74.8%的AP,并在单个V100 GPU上实现了141 FPS,证明了其效率和准确性。

实时高精度的单阶段人体姿态估计算法 RTMO 正式开源!RTMO 结合了坐标回归策略与 YOLOX 检测框架,克服了现有的单阶段人体姿态估计模型精度与速度难以兼得的难题。RTMO 具有两个突出的优势:

  • 在密集的多人场景中,速度和精度均领先。相比传统的二阶段模型如 RTMPose,RTMO 的速度受画面中的人数的影响可以忽略不计。同时它在多个多人密集场景的数据集上获得了最高精度,如在 CrowdPose 数据集上取得83.8 AP,较以往最佳模型提升 5.3 AP。
  • 模型简单易部署。作为端到端的单阶段模型,RTMO 可以一条命令完成推理和部署,无需额外的人体检测器网络,大大简化了使用流程。

项目主页:https://github.com/open-mmlab/mmpose/tree/main/projects/rtmo

论文链接:https://arxiv.org/abs/2312.07526

效果展示

让我们一起先看看 RTMO 在多人场景中的检测效果(latency 为 NVIDIA 3090 TensorRT-FP16 测试结果)

图1 推理效果图1

图2 推理效果图2

实时姿态估计模型的性能对比

现有的实时姿态估计模型主要包括二阶段 top-down 架构的轻量级模型(例如 RTMPose)以及基于 YOLO 架构的单阶段模型(例如 YOLO-Pose, YOLOv8-Pose)。我们在 CPU 和 GPU 上分别比较了它们的速度和精度。

图3 CPU 上实时姿态估计模型的速度-精度对比图

图4 GPU 上实时姿态估计模型的速度-精度对比图

相较其他实时单阶段模型,RTMO 在性能上全面领先,达到了和二阶段模型 RTMPose 差不多的精度。而相比二阶段模型,RTMO 在画面中人数较多时有速度优势。在相同精度要求下,当画面中人数超过 4(cpu)/2(gpu) 时,RTMO 的推理速度就已经超越了 RTMPose。

多人场景下的领先性能

多人加拥挤场景一直是姿态估计领域的难题。RTMO 在训练过程中使用了 MixUp 数据增强,模拟了拥挤的场景;在正负样本分配的过程中考虑了姿态估计的准确度,减少了关键点错位造成的误差;再加上 MMPose 多数据集训练的加持。因此,RTMO 在多人拥挤场景下依旧有很高的精度。在针对这类场景的 CrowdPose 和 OCHuman 两个数据集上,RTMO 都取得了当前最高的精度。

图5 CrowdPose 测试集 SOTA 模型精度

在 CrowdPose 上,RTMO-l 取得了 83.8 的 AP,相比之前的最佳模型有 5.3 AP 的提升。谁能想到这是一个能跑 100+ FPS 的轻量级模型呢?

图6 OCHuman 数据集 SOTA 模型精度

在 OCHuman 上,RTMO 同样取得了当前最高的精度(不使用标注检测框的情况下)。

便捷的推理接口

得益于 MMPose 框架便捷的推理接口,只需要一行代码,我们就可以调用 RTMO 模型进行推理。

图7 一行代码用 RTMO 完成多人姿态估计

在 OpenXLab 应用平台上,RTMPose 应用也已集成 RTMO。无需本地安装,在浏览器中就能在线使用 RTMO 处理图像、视频。

RTMPose 应用链接:https://openxlab.org.cn/apps/detail/mmpose/RTMPose

图8 在线试用 RTMO

多平台部署支持

对于需要在业务侧部署模型的小伙伴,RTMO 也带来了福音。

不同于二阶段姿态估计模型,RTMO 无需使用人体检测器预先获取人体检测框,因此它的部署相比 RTMPose 要更加简单。RTMO 项目主页介绍了如何使用 MMDeploy 部署 RTMO 模型,无论是用 ONNX 还是 TensorRT 后端都可以一键搞定。   

图9 RTMO 部署教程

此外,我们还提供了开箱即用的轻量推理库 rtmlib (https://github.com/Tau-J/rtmlib)

  • 无需安装 mmcv,mmengine,mmpose 等一系列训练库,有 opencv 就能推理
  • 超级友好简洁的推理和可视化接口
  • 自动下载和缓存 onnx 模型
  • 支持 RTMPose 全系列官方及衍生模型:RTMPose,DWPose,RTMO,RTMW etc.

代码样例:

import cv2from rtmlib import Body, draw_skeletondevice = 'cpu'  # cpu, cuda
backend = 'onnxruntime'  # opencv, onnxruntime, openvino
img = cv2.imread('./demo.jpg')openpose_skeleton = False  # True for openpose-style, False for mmpose-stylebody = Body(pose='rtmo',to_openpose=openpose_skeleton,mode='balanced',  # balanced, performance, lightweightbackend=backend,device=device)keypoints, scores = body(img)# visualize# if you want to use black background instead of original image,
# img_show = np.zeros(img_show.shape, dtype=np.uint8)img_show = draw_skeleton(img_show, keypoints, scores, kpt_thr=0.5)cv2.imshow('img', img_show)
cv2.waitKey()

One More Thing

RTMPose 家族的全身姿态估计模型 RTMW 也进行了全面更新,基于 DWPose 蒸馏方案(同样已集成在 MMPose 中)进行了加强,相较于 alpha 版本中 RTMW-x 取得 70.2 mAP 精度,蒸馏得到的 RTMW-l 用 60% 的计算量取得了 70.1 mAP。

图10 DWPose (上) 与 RTMW (下) 效果对比动图

图11  DWPose (上) 与 RTMW (下) 效果对比静图

总结

RTMO 是基于 MMPose 的单阶段实时人体姿态估计模型,它结合了坐标回归与 YOLOX 检测框架,在多人场景下实现了领先的速度与精度。RTMO 在 CrowdPose 数据集上首次达到了 80+ 的 AP,是多人拥挤场景当前效果最好的实时模型。作为单阶段模型,RTMO 推理部署简单方便。我们还提供了 Python 推理接口、多平台部署方案,开发者可以快速上手使用。诚挚欢迎对人体姿态估计感兴趣的小伙伴来试用 RTMO,提出宝贵意见!

项目主页:https://github.com/open-mmlab/mmpose/tree/main/projects/rtmo

1 Introduction

多人姿态估计(MPPE)在计算机视觉领域中至关重要,应用范围涵盖增强现实到体育分析等领域。实时处理对于需要即时反馈的应用尤其关键,例如为运动员定位提供指导。尽管已经出现了许多实时姿态估计技术,但实现速度与精度之间的平衡仍然具有挑战性。

当前实时姿态估计方法可分为两类:自上而下方法(Top-down)和一阶段方法(One-stage)。自上而下方法利用预训练的检测器为目标创建边界框,然后对每个个体进行姿态估计。关键限制在于,它们的推理时间与图像中的人数成正比(参见图1)。另一方面,单阶段方法直接预测图像中所有个体的关键点位置。然而,当前实时单阶段方法在精度方面与自上而下方法相比仍存在差距(参见图1)。这些方法依赖于YOLO架构,直接回归关键点的坐标,这会阻碍性能,因为这种技术类似于使用每个关键点的狄拉克δ分布,忽略了关键点固有的歧义和不确定性。

另一种方法是,坐标分类方法使用双一维 Heatmap 来增加空间分辨率,通过将关键点位置的概率分布在跨越整个图像的两组bin上。这可以提供更准确的目标检测,同时计算成本最小。然而,将坐标分类直接应用于密集预测场景,如单阶段姿态估计,会导致由于图像和每个人占据的区域不同,bin利用率低下。此外,传统的Kullback-Leibler散度(KLD)损失将所有样本视为同等,这在单阶段姿态估计中是不最优的,因为在不同网格中,实例的难度显著不同。

在这项工作中,作者克服了上述挑战,并将坐标分类方法集成到基于YOLO的框架中,从而导致了实时多人单阶段姿态估计模型的开发。RTMO引入了一个动态坐标分类器(DCC),该分类器包括动态bin分配定位到边界框和可学习bin表示。此外,作者提出了一种基于最大似然估计(MLE)的新颖损失函数,以有效地训练坐标 Heatmap 。这种新的损失函数允许学习每个样本的不确定性,自动调整任务难度并平衡硬样本和易样本之间的优化,从而实现更有效和协调的训练。

因此,RTMO实现了与实时自上而下方法相当的准确性,并超过了其他轻量级单阶段方法,如图1所示。此外,RTMO在处理图像中的多个实例时表现出优越的速度,超过了具有相似准确度的自上而下方法。值得注意的是,RTMO-1模型在COCO val2017数据集上达到了74.8%的平均精度(AP),并在NVIDIA V100 GPU上以每秒141帧的速度运行。在CrowdPose基准测试中,RTMO-1实现了73.2%的AP,为单阶段方法创造了新的最先进水平。本工作的关键贡献包括:

  1. 针对密集预测场景的一种创新坐标分类技术,利用坐标bin进行精确的关键点定位,同时解决实例大小和复杂性带来的挑战。
  2. 提出一种新的实时单阶段多人姿态估计方法,无缝集成坐标分类与YOLO架构,实现了现有自上而下和单阶段多人姿态估计方法中性能与速度的最佳平衡。

2 Related Works

One-Stage Pose Estimator

受到单阶段目标检测算法进步的启发,一系列单阶段姿态估计方法出现了。这些方法在单次前向传播中执行MPPE,并直接从预定的根位置回归实例特定关键点。替代方法,如PETR和ED-Pose,将姿态估计视为一组预测问题,建立了端到端的全流程框架进行关键点回归。除了回归解决方案外,技术如FCPose, InsPose和CID利用动态卷积或注意力机制生成实例特定 Heatmap 以进行关键点定位。

与两阶段姿态估计方法相比,单阶段方法消除了预处理(例如,对于自上而下方法的人体检测)和后处理(例如,对于自下而上方法的关键点分组)的需要。这导致了两项好处:

  1. 一致的推理时间,与图像中的实例数量无关;
  2. 简化了一条 Pipeline ,便于部署和实际应用。

尽管具有这些优势,但现有的单阶段方法在平衡高精度和实时推理方面仍然存在困难。高精度模型[42, 46]通常依赖于资源密集的 Backbone 网络(例如,HRNet或Swin),这使得实时估计变得具有挑战性。相反,实时模型[30, 33]在性能上妥协。作者的模型解决了这一权衡,既提供了高精度,又提供了快速的实时推理。

Coordinate Classification

SimCC和RTMPose都采用了坐标分类进行姿态估计。这些方法根据水平轴和垂直轴上的子像素bin对关键点进行分类,实现空间区分而无需依赖高分辨率特征图。这有效地平衡了准确度和速度。然而,对于密集预测方法,将bin跨越整个图像是不切实际的,因为需要大量bin以减小量化误差,这会导致许多bin对于单个实例是多余的,从而降低效率。DFL在预定义的 Anchor 点周围设置bin,这可能不包括大型实例的关键点,并且对于小型实例可能会导致显著的量化误差。作者的方法根据每个实例的大小分配bin,将它们放置在局部区域内,优化bin利用率,确保覆盖关键点,并最小化量化误差。

Transformer-Enhanced Pose Estimation

基于Transformer的结构在姿态估计中变得无处不在,利用最先进的Transformer Backbone 网络以提高准确性,如ViTPose,或结合Transformer编码器与CNN以捕获空间关系。TokenPose和Poseur证明了基于 Token 的关键点嵌入在 Heatmap 和回归方法中都是有效的,利用视觉线索和解剖学约束。

PETR和ED-Pose将Transformer引入端到端多人在图像中的姿态估计,RTMPose将自注意力与基于SimCC的框架相结合,进行关键点依赖分析,这种方法也被RTMO所采用。虽然位置编码是注意力的标准,作者创新性地将其用于为每个空间bin形成表示向量,以计算bin-keypoint相似性,这有助于提高准确的局部化预测。

3 Methodology

动态坐标分类器通过生成一维 Heatmap 预测的详细过程可以在第3.1节中找到, 而基于MLE的 Heatmap 损失则可以在第 3.2 节中找到。完整的训练和推理过程可以在第 3.3 节中找到。

Dynamic Coordinate Classifier

每个网格单元与对应的姿态特征包含了关键点相对于网格的位移。以前的工作直接回归这些位移,因此性能较差。作者的研究探讨了将坐标分类与单阶段姿态估计框架集成以提高关键点定位准确性的方法。现有坐标分类方法的一个显著局限性在于它们的静态bin分配策略。为了解决这个问题,作者引入了Dynamic Coordinate Classifier (DCC),该方法在两个一维 Heatmap 中动态分配范围并为bin形成表示,从而有效地解决了密集预测环境中坐标分类的兼容性问题。

动态bin分配

在自上而下的姿态估计器中使用的坐标分类技术将bin分配到整个输入图像。这种方法导致了单阶段方法中的bin浪费,因为每个主体只占据了图像的一小部分。DFL在预定义的 Anchor 点附近设置bin,这可能会遗漏大型实例的关键点,并在小型实例中导致严重的量化误差。DCC通过动态地为每个实例的边界框分配bin来解决这个问题,确保局部覆盖。边界框最初使用点卷积层进行回归,然后通过一个1.25的因子扩展以覆盖所有关键点,即使在不准确的预测情况下也是如此。这些扩展的边界框沿着水平和垂直轴均匀地划分成bin。每个水平bin的x坐标使用以下公式计算:

MLE for Coordinate Classification

与KLD不同, 作者的MLE损失允许可学习的方差, 表示不确定性。这种不确定性学习框架会自动调整各种样本的难度。对于困难的样本, 模型预测较大的方差以促进优化。对于简单的样本, 它预测较小的方差, 有助于提高准确性。采用可学习的方差在KLD中是有问题的 - 模型倾向于预测较大的方差以压缩目标分布, 因为这将简化学习。

Training and Inference

4 Experiments

Settings

数据集

实验主要在COCO2017 Keypoint Detection基准测试上进行,包括约25万个包含17个关键点的实例。在val2017和测试-dev集上与最先进的方法进行了性能比较。为了探索模型性能的极限,训练还扩展到了其他数据集:CrowdPose,AIC,MPII,JHMDB,Halpe,和PoseTrack18。这些标注被转换为COCO格式。RTMO还在CrowdPose基准测试上进行了评估,该测试由于场景复杂(拥挤且受阻碍)而闻名,包括20万张图像和大约8万个包含14个关键点的实例。OKS-based平均精度(AP)作为两个数据集的评估指标。

实现细节

RTMO Pose被用于比较

RTMDetno,一个高度高效的目标检测模型,作为自上而下模型的目标检测器。由于自上而下模型在图像中人数增加时会变慢,作者将COCO val2017集按人数划分并相应地评估自上而下模型的速度。如图3所示,RTMO系列在性能和速度上都优于可比轻量级单阶段方法。与自上而下模型相比,RMO-m和RMO-l的准确性与RTMPose-m和RTMPose-l相当,且在图像中人数更多时更快。使用ONNXRuntime,RMO与RTMPose在速度上相当,大约有四个人时。使用TensorRT FP16,RMO在有两或更多人时更快。这证明了RMO在多行人场景中的优势。

重要的是,尽管图像中处理标记的数量随人数变化,推理延迟的差异微乎其微。例如,RMO-l在GPU子集上的延迟比在只有一个人的子集上高约0.1 ms,占总延迟的约0.5%。

在COCO test-dev上,作者对RTMO与领先的单阶段姿态估计器进行了评估,结果如表1所示。RTMO在速度和精度方面取得了显著的进步。具体来说,RTMO-s使用ResNet-50 Backbone 网络,比PETR快十倍,同时保持相似的准确性。

与轻量级模型KAPAO和YOLO-Pose相比,RTMO在不同的模型大小上始终优于其他模型。当在COCO train2017上进行训练时,RTMO-l在所有测试模型中表现第二好。性能最好的模型是ED-Pose,使用Swin-L Backbone 网络,但非常沉重,不适合部署。使用相同的ResNet-50 Backbone 网络,RTMO-l比ED-Pose提高了1.1%的AP,并且更快。此外,将ED-Pose转移到ONNX格式导致其延迟比PyTorch模型慢约1.5秒/帧。

相比之下,RTMO-l的ONNX模型仅需19.1ms处理一张图像。通过进一步在额外的多人姿态数据集上进行训练,RTMO-l在单阶段姿态估计器中准确度方面最佳。

为了评估RTMO在具有挑战性的场景下的性能,作者在CrowdPose基准测试上对其进行了测试,该基准测试的特征是密集人群、重要的人重叠和遮挡。结果如表2所示。在自下而上和单阶段方法中,RTMO-s的准确度与DEKR相当,但仅使用15%的参数。当在CrowdPose数据集上进行训练时,RTMO-l超过了使用Swin-L Backbone 网络的ED-Pose,尽管具有较小的模型大小。

值得注意的是,RTMO-l在中等和困难样本上的性能超过了ED-Pose,表明该模型在具有挑战性的情况下非常有效。此外,通过使用额外的训练数据,RTMO-l达到了最先进的81.7% AP,突显了该模型的能力。

Quantitative Results

RTMO采用坐标分类方法,并在具有挑战性的多行人场景中表现出强大的性能,其中个体相对较小且经常发生遮挡。

图4揭示了在如此困难的情况下,RTMO能够生成空间准确的heatmap,从而为每个关键点提供稳健和上下文敏感的预测。

Ablation Study

分类与回归

为了评估坐标分类与回归的有效性,作者将模型的1D heatmap生成替换为全连接层进行回归,并使用OKS损失进行监督。表3比较了性能。使用DCC模块和MLE损失,坐标分类在COCO上的回归性能比回归提高了2.1%的AP。

坐标分类的损失

与其他具有坐标分类的姿势估计方法相比,作者的研究认为KLD不适合RTMO。表3中的证据表明,与作者的MLE损失相比,使用KLD的准确度较低。作者将这种改进归因于MLE损失函数中包含可学习的方差,这有助于在硬样本和易样本之间平衡学习。具体来说,在一阶段姿势估计器框架中,每个网格的难度水平不同,并受到多个因素的影响,包括分配给网格的实例姿势和大小,以及网格和实例之间的相对位置。KLD无法考虑这种可变性,因此在这个上下文中效率较低。

坐标分类的动态策略

作者首先采用了一种类似于DFL的静态坐标分类策略,其中每个网格周围的bin在固定范围内分布。这种方法在COCO数据集上优于回归方法,但在CrowdPose上表现不佳。将Dynamic Bin Allocation (DBA)策略引入到这种 Baseline 中,导致两个数据集上的性能均下降。这是合理的,因为每个样本的bin语义在不同样本上不同,且没有相应的表示调整。这个问题通过引入Dynamic Bin Encoding (DBE)得到了解决。

使用DBE,作者的DCC方法在两个数据集上都超过了静态策略的有效性。此外,如果没有动态bin编码(DBE),相邻空间位置的概率可以显著变化,这与相邻空间位置应该具有相似概率的预期相反。相反,结合DBE可以导致更平滑的输出heatmap,表明通过启用能够更好地捕捉相邻位置相似性的表示向量,解码器训练得到了改善。

特征图选择。特征金字塔利用多尺度特征检测不同大小实例;较深的特征通常检测较大物体。作者的初始模型受到YOLOX的启发,使用了P3、P4、P5特征,步长分别为8、16和32像素。然而,P3在模型头中贡献了78.5%的FLOPs,而仅占10.7%的正确检测率。为了提高效率,作者关注P4和P5。如表4所示,省略P3导致了速度显著提高,但准确性损失很小,表明仅P4和P5对于多行人姿态估计是有效的。这表明P3在检测较小实例中的作用可以通过剩余特征得到充分补偿。

5 Conclusion

总之,作者的RTMO模型显著提高了单阶段多行人姿态估计中的速度与精度权衡。通过将坐标分类集成到YOLO基于的框架中,作者实现了实时处理和高精度。作者的方法具有动态坐标分类器和基于最大似然估计的损失函数,有效地提高了密集预测模型中的位置精度。这一突破不仅增强了姿态估计,而且为未来在密集预测视觉检测任务方面的进一步发展奠定了坚实的基础。

#ViTs~

这里提出了一种比较分析各种自监督视觉Transformer(ViTs),重点关注它们的局部代表性。受大型语言模型的启发,作者研究了ViTs在几乎不需要微调的情况下执行各种计算机视觉任务的能力。作者设计了一个评估框架,用于分析在稀疏语义分割、实例识别、目标检索和跟踪等背景下,局部表示的质量。

在本文中提出了一种比较分析各种自监督视觉 Transformer (ViTs),重点关注它们的局部代表性。受大型语言模型的启发,作者研究了ViTs在几乎不需要微调的情况下执行各种计算机视觉任务的能力。作者设计了一个评估框架,用于分析在稀疏语义分割、实例识别、目标检索和跟踪等背景下,局部(即块级)表示的质量。作者发现,对比学习方法如DINO生成的通用块表示可以立即应用于下游任务,而无需参数调优,相比之下,Mask图像建模方法。后者方法,例如在Mask自动编码器中学习的嵌入,具有高方差特征,这些特征会损害基于距离的算法,如k-NN,并且对大多数下游任务不包含有用信息。

此外,作者证明了通过移除这些高方差特征可以提高k-NN,并对本文中的基准和Scale-MAE,这是Mask自动编码器的最新扩展,进行了分析。最后,作者发现一个目标实例检索设置,在这个设置中,预训练在两个数量级更多的数据上的DINOv2模型,其性能不如计算量较小的DINO模型。

1 Introduction

自然语言处理领域的最新进展催生出了通用模型,这些模型在经过大规模预训练后,可以在没有针对特定任务的微调的情况下执行各种与语言相关的任务。基于自监督 Transformer 的语言模型在提示或通过在上下文中学习的方式(只需几个例子)上,实现了在翻译、问答和常识推理等任务上的竞争性能。

自监督 Transformer 在计算机视觉领域也变得越来越受欢迎。两种截然不同的自监督学习范式已经证明在视觉 Transformer (ViTs)上具有良好的性能:基于对比学习的(例如MOCO或DINO)和基于Mask图像建模的(例如MAE或SimMIM)。这些模型是否具有计算机视觉任务的通用能力,类似于自然语言处理模型中观察到的能力,仍然是一个未回答的问题。

由于ViTs没有文本输入,因此评估它们在下游任务上的零样本能力具有挑战性。大多数ViTs为整个图像(通常为[CLS]Token)生成一个嵌入向量,并为每个局部块生成一个嵌入向量。在本论文中关注的是需要局部意识的视觉任务,如图像分割和目标跟踪。作者提出了利用块表示的少量样本评估方法。

为了最小化特定任务的参数调优,作者采用了两种方法:无需调整参数的k最近邻(k-NN)和具有单层可训练参数的线性检测。预训练ViTs对于图像 Level 的任务(如图像分类)的全图像表示在文献中得到了相对较好的探索。

除了相对较大的任务特定"head"之外,对整个backbone进行微调仍然可以获得优越的分割和跟踪性能。对这些模型的分析超出了本文的范围,因为它们的出色性能不仅来自自监督预训练,而且还受到head架构和用于fine-tuning的数据的影响。本文的重点在于通过使用仅有的几个Token样本暴露出自监督ViTs的固有能力。

作者发现,尽管Mask图像建模产生的backbone具有较好的fine-tuning性能,但预训练的块嵌入却远不如对比学习方法学习的近邻方法的好。作者深入研究了这一现象,并确定了大约200个与作者的下游任务相关的无关数据集特征。这些特征与直觉相反,不包含作者考虑的下游任务所需的有用信息,但在所有特征中具有最高的方差。移除这些特征可以提高大多数任务上的k-NN性能。

作者进一步探索了块嵌入在多个图像中识别同一目标实例的有用性。在一个卫星图像数据集上进行了实验,并在几种图像变换下测量块嵌入的质量。作者发现,DINO意外地超过了其新兄弟DINOv2。此外,在区分细粒度目标类别方面测量了块嵌入的质量。最后,在多目标跟踪数据集上进行了目标关联实验。作者发现,DINO和DINOv2显著优于Mask图像模型和监督ViTs,使其成为视频中最适合的目标检索。

主要贡献如下:

  1. 设计了一个评估框架和少样本数据集,来分析预训练视觉 Transformer 在局部意识任务中的内在能力。作者在作者的框架上,使用五个代表性的ViTs在三个任务:块分类、实例和细粒度检索以及视频帧中的目标关联上进行分析比较。
  2. 作者发现,与Mask图像建模相比,对比预训练可以产生显著更多的通用块嵌入,这些嵌入可以在不需要微调的情况下直接应用于下游任务。作者识别出基于k-NN的方法中MAE类似模型性能不佳的原因。在移除高方差特征(在作者的实验中为200个)后,MAE类似模型在k-NN上的性能显著提高。
  3. 作者证明,移除这些特征不仅对作者所提出的基准有益,还对其他研究中提出的基准有益。例如,Scale-MAE [25],它评估了一个在航空图像上训练的类似MAE的网络,在不同的分辨率和使用k-NN在计算出的表示(无论是所有块的平均值,还是[CLS]Token)上,与其他最先进的算法进行比较。作者观察到同样的高方差特征问题,并在移除200个这样的特征后,展示了优越的性能。
  4. 作者发现,在20倍 未标注 数据的训练下,DINOv2在大多数场景中超过了所有其他ViTs,包括在图像腐败的块分类的鲁棒性方面。令人惊讶的是,它在识别变换图像中覆盖相同目标实例的块时,表现不如大多数ViTs,这表明盲目增加更多的数据可能并不能普遍提高所有结果。

2 Related work

视觉 Transformer (ViT)的出现及其在许多下游任务中的应用,为计算机视觉开辟了新的方向,包括图像分割、图像分类和目标检测。与语言模型不同,ViT的大小没有达到175B参数,因此扩展ViTs并不容易。两项工作DINOv2和ViT-22B声称,他们的核心技术贡献在于稳定训练大规模ViTs在数百万张图像上的训练。

Park和Kim 分析了多头自注意力(MSA)和ViTs的几个属性。他们发现MSAs将损失函数平坦化,从而减轻了其非凸性问题的影响。他们还观察到MSAs和卷积层互补,表明MSAs可以作为低通滤波器,而卷积层则可以作为高通滤波器。Park等人[21]分析了基于对比学习(CL)和Mask图像建模(MIM)的ViT方法之间的差异,并比较了它们在下游任务上的性能。他们证明CL方法比MIM方法更有效地捕获长程全局模式,例如物体形状。其次,他们证明基于CL的方法更倾向于形状,而基于MIM的方法更倾向于纹理。Raghu等人[24]对ViTs和CNNs在几个图像分类基准上的内部表示结构进行了分析。他们证明ViTs的网络层具有比CNN更均匀的表示,这主要是由于自注意力的作用,它可以使信息在早期聚合,以及ViT的残差连接,它们也可以将特征从较低 Level 传播到较高 Level 。

其他工作专注于分析ViTs的鲁棒性。Bhojanapalli等人[2]研究了ViT模型对输入和模型扰动的鲁棒性,用于图像分类。Bhojanapalli等人[2]表明, Transformer 对几乎任何单个层的删除都具有鲁棒性,并且当预训练在足够大的数据集上时,ViTs在各种扰动下表现出不逊于ResNet对应物的好结果。Paul和Chen[22]分析了ViTs对几种常见的破坏、扰动、分布转移和自然对抗样本的鲁棒性。他们还分析和演示了ViTs在各种方面的优越鲁棒性,例如遮蔽、能量/损失函数分析和在鲁棒分类数据集上的对高频伪迹的敏感性。[17]研究了Transformers在分类任务中对严重遮挡、扰动和域转移的鲁棒性。他们的发现表明,ViTs与CNNs相比,对局部纹理的偏见显著较小。

另一种有助于模型普遍性的研究,并使零样本图像分类(可能还有其他视觉任务)成为可能,涉及视觉语言模型,包括对比模型如CLIP和自回归模型如CM3Leon。对这些模型的分析超出了本文的范围。

虽然不是完全相同的现象,但[8]中也分析了一种类似的现象,即在特征图中出现伪迹。该研究表明,在监督和自监督的视觉 Transformer (ViTs)中,推理过程中会在图像的低信息背景区域出现一些伪迹。值得注意的是,作者对MAE的观察是特征方差较大的特征的存在,而[8]观察到某些Token出现了伪迹。

作者的工作分析了并比较了不同ViTs,关于它们在局部表示图像的能力。作者探索并比较了从使用不同自监督或监督策略训练的ViTs中获得的局部块表示。为此,作者在少量样本设置下探究了块级特征的质量,用于密集块分类、细粒度检索和跟踪。

3 Can Transformers Recognize Semantics of Patches?

在本文中,作者使用了五个ViT模型。MAE和SimMIM被用作Mask图像建模的代表模型。对比模型由DINO 和其对应模型DINOv2表示,与本工作中使用的所有其他ViTs不同,DINOv2是在比ImageNet更大的数据集上进行预训练的。作者使用监督ViT作为 Baseline ,并在一个设置中使用iBOT,它像DINO一样在ImageNet上进行训练,但使用类似于DINOv2的损失项。这些模型在附录A.1中详细描述。

为了分析ViT模型的局部表示,作者首先研究了它们在块级分类方面的能力。为此,在Cityscapes数据集上设置了一个少样本块级分类实验。

城市景观(Cityscapes)[6]的训练集包括18个城市中的2975张图像。除非另有说明,作者使用每个城市4张图像的训练数据集(总共72张图像)。后来作者还探索了通过增加或减少这个数量的训练样本对性能的影响。城市景观数据集的原验证集包含500张图像,这些图像来自3个不同的城市。对于作者进行分析,作者选择了每个城市的10张图像,总共30张图像。作者将城市景观数据集的像素密集分割标签转换为块级类别,通过在每个块中选择最常见类别。作者通过测量像素准确率和分割mIoU来评估表示的质量。

由于作者在分析中使用的ViT模型作为输入图像大小为224x224,作者将大小为1024x2048的图像分割成256x256的块,并将每个块视为单独的图像。这些块被重新缩放到224x224,并传递给预训练的 Transformer 。作者提取并存储所有图像(训练和验证)以及所有ViTs的对应块的表示。

作者使用两个简单的分类器来分析潜在的表示:k-NN(k=1)和拟合线性softmax分类器。这两种方法都在少量训练集的块表示上进行训练。选择这两个基本方法的动机是了解给定物体类别的块是否在表示空间中与其他物体类别线性可分或聚类。在MAE的情况下,作者遵循[15](它反过来引用了[10])的建议,在线性层之前对提取的特征进行批归一化。作者注意到,使用批归一化进行线性检测可以获得几乎2.5倍更好的结果。作者没有在SimMIM中使用批归一化,因为添加它会使性能变差。

对于线性模型,训练集的大小很重要,而对于k-NN,它的重要性较小。在图1中展示了不同训练集大小时,k-NN和线性分类器的性能。作者首先发现,线性模型通常比k-NN获得更好的结果,尤其是在有更多的训练数据时。然而,对于DINO版本和监督ViT,k-NN和线性分类器之间的性能相当。相反,MAE表示获得的k-NN性能令人惊讶地差。虽然它的线性结果只略低于其DINO对应物,但k-NN分类器导致大约4倍更差的表现。

接下来对图2中网络不同层上提取的表示进行详细分析,以了解k-NN块分类性能。在有监督ViT和DINO之间,表现非常相似。从第一层到第八层,性能逐渐提高,然后趋于饱和。最后两层性能稍微下降,这在有监督ViT中更为明显。

DINOv2的行为相当不同。在第一层,它的性能比DINO差。对于最容易的五种目标类别(_road_, vegetation, sky, car, _building_),其性能在最后层赶上。对于其他更难的目标类别,DINOv2在第十层与DINO和有监督ViT持平,然后在第十一层和第十二层显著超过它们。特别是,_bus_类别的IoU从第九层的0.059跳到第十二层的0.729。因此,DINOv2的优势主要来自更难的类别。

再次,作者观察到在MAE的情况下,k-NN性能较差。SimMIM,另一个用于重构图像的ViT,在中间层表现比MAE好,但只在中间层。对于更容易的目标类别,这个差异更加显著。最后三层的质量与MAE相似。

根据[19],DINOv2在与其他预训练视觉 Transformer (ViTs)的比较中,通过在ImageNet的域转移版本上的性能,被认为是非常鲁棒的。在本小节中,作者将这种分析扩展到图像块表示层面。

有人可以声称,对各种退化的鲁棒性可能归因于训练过程中使用的增强。具体来说,使用颜色增强增强的模型被假设表现出更高的对那些退化的抵抗力(模糊、高斯噪声等)。然而,根据[15],基于颜色抖动的增强会降低其性能。这表明性能和对退化的鲁棒性之间可能存在权衡。由于计算限制,进一步研究这个假设留给了未来的工作。

图3表明,与DINO和监督ViT相比,DINOv2在最小模糊半径下相对更具鲁棒性。对于更强的模糊版本,这三个模型降级几乎相同。MAE降级相对较快。kNN的结果与线性检测的结果相似,除了MAE,对于MAE,即使是最小的降级也会导致预测崩溃:kNN预测所有块(通常为_vegetation_或_sky_)的同一类别。

根据[21],基于Mask的方法(如MAE)更依赖于高频特征,而基于对比训练的方法(包括DINO)更依赖于低频特征。这意味着DINO表示相对于高频噪声应该更鲁棒,而MAE表示在低频噪声下应该表现更好。在作者的实验中,MAE在所有噪声频率下表现都更差。相反,监督ViT对高频噪声具有100%的鲁棒性。这可以解释为其目标学习整个图像的目标类别,使其最后层忘记无关的高频信息。类似的现象在[16]中也有报道。

作者在ADE20K上得到了类似的结果。作者创建了一个类似的小样本ADE20K训练数据子集,它由训练集(每个类别4张图像,总共600张)和验证集(300张)中的600张图像组成,大小为672x448。对于k-NN和线性检测,作者在作者测试的ViTs(见附录A.3中的表2)之间得到了相似的相对性能。

4 Enhancing k-NN Accuracy in Masked Image Modeling

在这个部分,作者解决了一个与基于MIM的k-NN任务相关的挑战。问题在于,与其它特征相比,某些特征具有显著更高的方差。作者提出了一种解决方案,然后更深入地研究了这些特征所包含的信息。

Why MIM-based models have poor k-NN performance.

在作者的实验中,作者发现MAE的块嵌入在线性检测上表现得相当好,但在k-NN上却失败了。作者假设MAE的块嵌入在某些维度上可能具有很高的方差,这可能会极大地增加同一类别块之间的距离,从而损害k-NN,而不会影响(可能是小边缘)线性模型的性能。

MAE和SimMIM的特征方差非常多样化。 作者计算了所有模型的每个特征的方差。在图4(a)中,作者按降序排列所有768个特征的方差。作者观察到,监督ViT(和DINO)的所有特征的方差相对均匀。然而,对于MAE和SimMIM,有多个特征具有非常高的方差,并且存在接近零方差特征的长尾巴。

Simple Remedy

作者删除了具有最高方差的前m个特征,并使用缩短的嵌入进行了k-NN和线性检测的少量样本分割性能测量。如图4(b)所示,仅删除m=10个特征,MAE的k-NN性能从0.058跃升到0.170,而线性检测的性能并未受到影响。当m=200时,k-NN性能进一步增加到0.295。之后,k-NN和线性检测的得分开始下降。这一发现表明,对于线性模型和k-NN,大约四分之一MAE嵌入特征对于块级图像分割是不利的。另一方面,这些特征构成了嵌入特征的近似所有方差。

作者选择了一个最近基于MIM的算法,它采用k-NN进行性能比较,与最先进的算法进行比较。作者通过删除其m=200个高方差特征进行了实验。

Scale-MAE的训练方式是具有一个有意义的[CLS]Token,可以与块Token的平均值一起用作图像表示。作者使用[CLS]Token表示进行图像分类,使用k-NN并显示它超过了MAE。作者复制了结果并确认块向量的平均值确实比[CLS]差。然而,在从[CLS]中删除200个高方差特征后,在UCMerced和RESISC数据集的几乎所有地面采样距离(GSD)值下,平均块表示超过了利用[CLS]表示的方法。结果如图4所示。作者观察到,从[CLS]中删除200个高方差特征并不显著改变结果;然而,一旦作者使用图像块的平均向量,并在块表示中删除200个高方差特征,它们就超过了利用[CLS]表示的方法。

What information do these features hold?

一个假设是, 这些特征对于在同一类别中识别特定实例的物体或区分细粒度的物体类别是必要的。在第五节中, 作者提供了对此假设的否定证据:删除高方差特征可以大大改善检索性能,以至于失去一些实例特定信息的负面影响, 如果这是真的, 是无法检测到的。

作者对所有其他ViTs进行了类似的分析,并将其结果可视化在图4(c)上。当删除高方差特征时,提高k-NN性能的现象仅存在于使用像素级重建目标的模型中。对于其他ViTs,删除高方差特征不会提高k-NN性能,但也不会损害它。线性检测性能在这些删除中也保持稳健。

对于MAE,特征归一化具有类似的效果,但对于SimMIM却不是这样。作者通过将线性模型的预训练批归一化层应用到MAE嵌入中,并在将其传递给k-NN分类器之前,创建了另一个版本的MAE嵌入。它通过删除m=200个特征的方式,几乎同样地提高了k-NN性能。它还提高了SimMIM的k-NN性能,但线性检测却严重恶化。作者得出的结论是,特征归一化是减少高方差特征负面影响的一种替代策略,但不是完全相同的方法。

作者确定了从Cityscapes、ADE20K和FAIR1M数据集中提取的块表示的200个高方差特征。其中196个特征在Cityscapes和ADE20K之间共享,而在Cityscapes和FAIR1M之间共享192个特征。

总之,高方差特征不包含语义或全局信息,它们存储了一些有用的像素级细节,这些细节在图像重构中是有益的,并且在所有基于MIM的方法和数据集中都被一致检测到。

5 At Which Granularity Transformers Detect Objects?

在第3节中分析了ViTs在目标 Level 的少样本语义分割任务上的性能。这涉及将预定义的目标(如飞机和汽车)分配给每个包含这些目标的块。这导致了下一个问题,即ViTs是否可以学习区分同一类别但不同类型的目标(如汽车类型或飞机类型)或者当有其他实例可用时,ViTs是否可以很好地区分同一确切的目标。

方法论。 作者使用FAIR1M,这是一个设计用于细粒度目标检测的大型卫星图像数据集。请注意,作者测试的ViTs中没有一个是在卫星图像上预训练的(甚至DINOv2,据作者所知,它也没有在卫星图像上预训练)。FAIR1M中的物体根据5个超级类别进行标注:飞机、船、车辆、法院和公路,以及37个细粒度类别(飞机类型、船舶类型等)。标注形式为旋转边界框(不具有像素精度)。然而,据作者所知,所有物体实例都出现在同一张图像上。对于这些实验,包括最近的一个MAE的扩展,即Scale-MAE,它专门针对卫星图像进行了训练。为了测试作者的假设,即高方差特征会影响基于距离的指标,作者还将使用MAE-200和Scale-MAE-200。这些变体从表示向量中删除了200个高方差特征。

这些图像的大小各不相同,通常比1000x1000像素大。作者将所有图像都裁剪到224x224像素的块,并保留每个细粒度类别中的每个块的8个实例。这确保了作者的数据集包含每个类别中的至少8个实例,但实际上它包含更多常见物体的实例。附录中的表3列出了数据集统计信息。作者有196个图像,每个ViT-B/16模型有196个块,而DINOv2有256个块。

接下来,作者创建了所有图像的变换版本。对于第一组实验,作者应用了水平位移1,2,3和4像素。对于第二组实验,作者将图像逆时针旋转5,10,15和20度。对于第三组实验,作者按0.8,0.9,1.1和1.2的比例缩放图像。对于第四和第五组实验,作者应用了模糊和高斯噪声降质。作者计算了所有这些图像的块表示。这创建了许多具有相同物体实例的图像。

对于每个覆盖有标注目标的变换图像的块,作者从原始图像块的完整集合中检索最近的块。理想情况下,最近的块应该是未经过模糊、噪声或位移的原始块。否则,最佳选择应该是同一细粒度类别的另一个实例,第三好的选择是同一超级类别的物体块。最坏的情况是,最近的块属于另一个类别或背景块。对于每个模型和图像变换 Level ,作者计算了哪些块的最近块属于所提到的类别。

图像降级会导致所有指标降低。 结果如6所示。当目标块变换较小(例如具有10像素标准差的高斯噪声)时,对于所有模型,最接近的块几乎总是原始块。对于MAE,在约40-50%的块中,最接近的块是正确的,但对于剩下的块,最接近的块是背景块。随着变换的增强,所有模型的正确块比例降低,剩余块中有超过一半是与同一细粒度目标类别的块(再次,除了MAE)。

对于涉及图像平移、旋转和缩放等实验,第一级评估,称为'相同块',并不简单,因为立即不清楚哪个块对应原始块。作者定义相应的块为包含旋转块中心点的块。作者还注意到,几个靠近旋转块角落的块可能没有对应的块,这限制了相同块检索的准确度。

结果和上限一起显示在图6中。作者观察到,对于旋转和缩放,所有模型在5度旋转和少量缩放下表现出显著的较低鲁棒性,与尝试的最高模糊半径或噪声水平相比。模型性能的顺序与其他图像变换一致:DINO表现最好,其次是MAE(以及去除了200个高方差特征的Scale-MAE),然后是DINOv2和监督ViT,其中MAE作为远离突出物。值得注意的是,Scale-MAE显著优于MAE;然而,删除其200个高方差特征也显著提高了其性能。

DINO是最鲁棒的一个。 在测试的所有ViTs中,DINO在所有变换下都是最鲁棒的。令人惊讶的是,DINOv2在所有指标下都不如DINO鲁棒,且与监督ViT类似。为了验证DINOv2的这种劣势是否来自块级损失项或者模型和数据集的规模,对iBOT嵌入进行了相同的分析。iBOT比DINO执行得更好(附录中的图11),这意味着块级损失不能成为借口。

作者注意到,大多数检索到的块来自同一图像块。一个可能的解释是,块嵌入包含图像级信息。作者重复这个实验,将原始图像的块从可用块的集合中删除。在这种设置下,最近的块可以是同一细粒度类别、同一超类别、错误的超类别,也可以是背景块。在这里,DINOv2处于领先地位,监督ViT和DINO稍逊一筹,而MAE表现不佳(图7)。

改进MAE的性能。作者重复了这个实验,使用了缩短的MAE和Scale-MAE(去掉了200个最高方差特征)。这个版本的MAE和Scale-MAE的性能显著优于原始的(MAE和Scale-MAE)版本,并超过了DINOv2和监督ViT,仅次于DINO。这个结果表明,删除MAE嵌入的高方差特征不仅有助于语义分割,而且有助于在变换图像中识别特定目标实例。另一方面,这也增加了高方差特征不能提供识别实例所需任何独特信息的证据,因为几乎在所有小变形块上(图6)都表现出了理想性能。

6 How Well ViTs Track Objects?

目标跟踪需要在一个视频中识别同一目标实例在不同帧之间。在本节中分析了块嵌入的鲁棒性, 因为目标会经历外观变化。

作者在MOT17数据集上重复实验, 并看到类似的行为。对比学习方法在基于Mask图像建模的 ViTs上明显优于ViTs。结果见附录A.3。

7 Conclusion and Limitations

作者对自监督ViT模型提取的局部块嵌入的质量及其属性进行了全面的分析和比较。作者观察到,对比学习基础的DINO系列在监督和Mask图像建模方法上都优于其他方法。此外,作者识别并研究了MAE的低kNN分类性能,限制了其在没有微调的情况下的使用。作者发现,具有相对较高方差的特征对块分类或检索任务不具有信息量,而它们的删除可以提高kNN性能,同时不影响线性检测。

局限性。 由于计算成本高,作者无法重新训练网络,从而无法分析在讨论的视觉 Transformer (ViTs)中的架构选择或损失组成部分。因此,作者的比较仅限于现有的预训练网络。

The Choice of Self-supervised Vision Transformers

作者使用了以下预训练视觉 Transformer 进行作者的分析。

DINO是一个自监督的视觉 Transformer ,它利用一个自蒸馏(学生-老师)框架。相同图像的不同增强版本通过老师网络和学生网络,学生网络被优化为产生与老师相同的[CLS]向量。然后,老师权重从学生的权重中使用指数移动平均进行更新。

Mask自动编码器(MAE)是一种用于重建原始图像的模型,它利用部分观测进行训练。在训练过程中,输入图像的大随机部分被遮挡。只有可见的块被编码器应用。一个相对轻量级的解码器将编码器的输出作为输入,并将[MASK]Token作为被遮挡的块的输入,并尝试重建原始图像。作者使用预训练的编码器作为块的特征提取器。

SimMIM是另一个使用Mask图像建模的视觉 Transformer 框架。与MAE的主要区别在于,SimMIM在编码器输出之上使用了一个简单的线性解码器。

在一个实验中,作者分析了iBOT,这是另一个老师-学生框架,它还针对学生网络遮挡了一些块。除了DINO的目标之外,它还有一个损失项,强迫学生网络在未遮挡图像上生成与老师相似的被遮挡块的块表示。

DINOv2是iBOT的一个较新的扩展,它在一个更大的数据集上进行训练。该数据集包括来自ImageNet-2,Mapillary SLS和Google Landmarks v2的1700万张图像,以及从大量网络爬取图像中检索的1250万张相似于预选的27个公开可用数据集的图像。主模型具有超过10亿参数,这迫使作者使用多种正则化技术来稳定训练。他们还提供了主模型的精馏版本,这是作者工作中使用的版本。

最后,作者使用一个在ImageNet-1k上训练的带有图像级标签的监督 Baseline 。在[CLS]Token之上训练了一个线性层。在本论文中,它将被称为监督ViT

所有方法都应用于多种大小的ViTs。在本工作中只关注一个对所有方法都可用的大小:ViT-B/16,它有8600万个参数。DINOv2是唯一没有ViT-B/16版本的模型。相反,作者使用了最接近的一个:ViT-B/14,它是从ViT-g/14模型中提炼出来的。这是DINOv2与其他方法之间的另一个区别:块稍小,图像大小为224x224px的图像有更大的DINOv2块数量。

这些模型在预训练期间使用的数据增强类型也有所不同。MAE只使用了简单的缩放和翻转。DINO还额外使用了颜色抖动和模糊,并且在老师和学生网络之间存在一些差异。监督ViT使用RandAugment的一部分技巧,并使用了Mixup。DINOv2的增强方法类似于DINO。更多信息可以在表1中找到。

作者将图像传递给这些ViTs,并从第12层提取所有块嵌入。所有ViTs在这些嵌入之上应用层归一化[1]。为了保持一致性,作者在提取ViTs内部层的嵌入时也应用层归一化。

Data Augmentations used in ViTs

作者测试的所有ViTs在预训练阶段都使用了数据增强。在本节中, 作者将讨论使用的不同增强策略之间的差异。

DINODINOv2中, 一张图像被裁剪成两个全局裁剪或视图, 用于老师网络, 多个局部视图用于学生网络。它们为不同的视图应用不同的增强。MAE只应用裁剪增强。请参阅表1以获取更多信息。对于缩放裁剪, 所有模型都选择 224 作为输出大小。

监督ViT采用了以下技术进行数据增强。

在表1中, 作者总结了增强的详细信息。

Results on more datasets

作者还在ADE20K上进行了块分类实验。如表2所示,各种ViTs在k-NN和线性检测设置下的排名相似。

图9显示了在MOT17数据集上进行跟踪实验的结果。

Statistics of the Few-shot Version of FAIR1M Dataset

作者创建了FAIR1M训练集的一个子集,确保每个细粒度目标类别至少出现8张图像。作者将原始图像裁剪成224x224像素的块,并为每个块保留包含的目标类别列表。作者定义类别A在块中存在,如果至少有一个类型为A的旋转边界框,其面积至少为块的1/3。对于每个细粒度类别,作者选择了包含该类别的8张图像。然后作者从队列中删除这些图像,并继续处理下一个目标类别。这样作者收集了37x8-1图像,因为有一个特定的细粒度类别(_bus_)只有7个块。

表3显示了作者的295张图像的每个类别的块数。请注意,DINOv2每个图像有256个块,而其他所有模型每个图像有196个块。

Reconstruction Error Analysis for MAE

为了理解MAE的高方差特征中存储了什么信息,如果删除它们不会损害块分类或块检索性能,作者进行了图像重建实验。假设被删除的特征在某些重建属性中发挥了作用。使用MAE的预训练解码器在两种设置下进行实验:当没有块被遮挡时,以及当75%的块被遮挡时。

如表4所示,当高方差特征用零填充时,重建指标略有恶化。这表明这些特征包含关于如何重构图像的知识,但对于大多数其他下游任务并不是必要的。使用均方误差(MSE)、峰值信噪比(PSNR)和结构相似性指数(SSIM)指标评估重建准确性。

Frequency Noise Computation

在图3中展示了一些针对各种降质(包括基于频率的随机噪声)的降解分析及其结果。在本节中将简要介绍这些实验并说明它们的设置。

Additional Experiments on FAIR1M

a.7.1 DINO vs. iBOT vs. DINOv2

第5节中最令人惊讶的结果是,与DINOv2相比,DINO表示在给定一个损坏的块时,检索最接近的块方面表现更好。DINOv2与DINO之间存在一系列差异,这些差异可以分为两类:与损失项相关的差异和与模型和数据集规模的差异相关的差异。DINOv2的新的块级损失项首次出现在iBOT中。

在这里在iBOT上进行了与DINO和DINOv2相同的实验,以比较它们。如图11所示,iBOT至少与DINO一样好。这意味着新的损失项不能归因于DINOv2的检索性能较差。

Discussion on Tiling

有许多处理这种图像的方法, 包括将它们缩放到较小的尺寸, 将它们分割成较小的块进行实验 (然后将这些块组合在一起以重构原始图像大小), 或者强迫ViT处理完整的图像, 通过插值位置嵌入。将图像分割成较小的块的风险是, 较小的块可能会失去图像的全局上下文, 这在 Transformer 架构中是一个重要因素。在本文的所有实验中, 作者选择了块化方法。在这里,作者探索使用完整尺寸图像的影响。 

a.8.1 Cityscapes

总之, 尽管预期图像的全局上下文会包含更多的信息, 但输入大小对性能的降解太强了。

a.8.2 Tracking

作者还进行了类似的实验来研究目标跟踪设置。请注意,在这个设置中将所有边界框内的块表示进行平均。如果目标被分成多个相同图像的块,则平均发生在来自不同块的块表示上。

如图12所示,作者看到了DINO和DINOv2对于分块图像的上述现象,块化图像表现更好。对于MAE,作者看到了一个令人惊讶的结果,从完整图像的块表示中提取的目标表示表现更好。请注意,本文中所有目标跟踪实验的结果都是在BDD-100k数据集中的4个视频中报告的。

Sample Predictions on Cityscapes

在图13中展示了基于本文中使用的ViTs进行语义分割的结果。作者固定了Cityscapes数据集中的两个图像。第一和第三张图展示了原始图像及其对应的原始Mask,第二和第四张图分别展示了ViTs对于对应实例的语义分割Mask。第一行第一列到第三列和第五列到第七列分别对应k-NN预测和线性检测预测的语义分割Mask。

在这些图中可以定性确认作者的观察结果,即MAE几乎完全无法正确分割k-NN预测的块。然而,它的性能与线性检测相当。作者还观察到,去掉MAE中最大方差前200个特征后的MAE在k-NN预测方面的性能超过MAE,并且与线性检测预测的MAE几乎相同。正如作者所预期的,DINO和DINOv2在定性上优于所有其他方法。

#Morph Studio

“发光的水母从海洋中慢慢升起,”在 Morph Studio 中继续输入想看到的景象,“在夜空中变成闪闪发光的星座”。  文生视频“黑马”来袭:好用、1080P 、7秒时长还免费

几分钟后,Morph Studio 生成一个短视频。一只水母通体透明,闪闪发光,一边旋转着一边上升,摇曳的身姿与夜空繁星相映成趣。  

视频发不了...

输入“ joker cinematic ”,曾经席卷全球的那张脸又回来了。

近期,专注于 text-to-video 生成技术与社区的初创公司 Morph Studio 对模型进行了一次重要更新。这些视频正是模型更新后的作品,画面清晰,细节生动。  

Morph Studio 是世界第一个推出公众可随意测试 text-to-video 产品的团队,比 Runway 开放 Gen2 公测的时间还早。  

和一些炙手可热的 text-to-video 产品仅提供 720P 的免费服务不同,Morph Studio 从一开始就提供默认 1080P 以及最长 7 秒生成时间的免费服务。更高分辨率、更长生成时长、更好的意图表达是我们认为 text-to-video 的三个最关键的指标,三个指标上 Morph 都做到了行业 SOTA 。 

好莱坞电影单镜头平均时长有 6 秒,将生成时长拉到 7 秒可以解锁更多用户的创作需求。 

体验 Morph Studio 的模型很简单,注册 discord 即可免费使用。

画面红色方框部分中带有“pro”字样的模型就是更新后的模型,也是本文体验的对象。 

摄像机运动是视频制作的基础语言,也是一种强大的叙述手段。Morph 提供几种常规的摄像机语言,包括变焦、平移(上、下、左、右)、旋转(顺时针或逆时针)和静态镜头。  

Morph 还提供控制视频运动的 MOTION 功能(1-10)。数值越大动作越剧烈、夸张,设置的数值越小,动作越微妙、平滑。 

帧率(FPS)提供从8 -30 的调整幅度,值越高,视频越流畅,尺寸也越大。例如,-FPS 30 将生成最流畅但也是最大的视频。默认情况下,所有视频均以每秒 24 帧的速度创建。  

视频长度默认为 3 秒,生成 7 秒视频,可以在命令中输入 -s 7。另外,模型还提供 5 种视频比例供选择。

如果你对镜头、帧率和视频长度等细节有要求,请在输入内容性提示后继续输入相应参数。(目前仅支持英文输入。)  

我们体验了一把更新后的模型服务,强烈感受到 1080P 带来的视觉震撼。 

直到最近,人类才有了第一张雪豹在星空下漫步的照片:  

人类拍摄到的第一张雪豹在星空下漫步的照片 。

我们想知道,Morph Studio 的模型能不能生成这种比较罕见的动物视频呢?

同样的 prompt ,我们将 Morph Studio 的作品放在了视频上部分,将用 Pika 生成的作品放在视频下部分。

Morph Studio 的答卷,文本理解准确。1080P 画面中,雪豹毛发细节丰富,栩栩如生。背景中可以看到银河和星星。不过雪豹走动幅度不明显。  

Pika 的作业中,雪豹确实在步行,但夜空似乎被理解成飘着鹅毛大雪的夜。无论是雪豹风格还是细节,还有画面清晰度都还有差距。

再看看人物生成的效果。

Morph Studio 生成的作品中,高分辨率带来极为细腻的面部轮廓和微表情,黎明光照下,发丝细节清晰可见。

受制于分辨率和色彩、光线层次的缺乏,Pika 生成的画面整体偏青,人物面部细节也不太尽如人意。

人物、动物都感受过了,再来看看建筑(人造物)的生成效果。

和 Pika 作品更偏绘画质感的画面相比,Morph Studio 的作品比较好地平衡了梵高元素和现实元素,光线层次非常丰富,特别是云海的流动细节,Pika 作品里的天空几乎是静止的。

最后,体验一下自然风景创作。

你可能会怀疑 Morph Studio 的作品是不是人类摄影师在自然条件下的真实拍摄。

Pika 生成的视频因为缺乏细腻的光影层次,海浪、沙滩显得平板一块,海浪拍打沙滩的动作比较呆板。

除了高分辨率带来的震撼体验,同样的 prompt 生成视频(比如动物、建筑、人物和自然风景主题),对手多少会在某些生成任务中“失手”,Morph Studio 的发挥相对更稳定一些,corner case 相对少一些,能更准确预测用户意图。 

从一开始,这家初创公司对文生视频的理解就是,视频要能非常精准地描述用户输入,所有优化工作也是朝着这个方向在走。Morph Studio 的模型结构对文字意图理解比较深刻,这次更新做了一些结构上的改变,还特地对一些数据做了更详尽的标注。 

除了比较好的文本理解能力,画面的细节处理并未被高分辨率输出难倒。 事实上,模型更新后,画面动作内容更丰富,这也反应在我们用 Morph Studio 生成的作品中。

1080P 意味着模型要处理更多的像素,给细节生成带来更大的挑战,但从结果看,画面不但没有拉垮掉,反而因为丰富的层次细节而更有表现力。

这是我们用模型生成的一组自然景观,既有壮观的巨浪和火山喷发,也有花朵的细腻特写。

高分辨率输出给用户带来更好的视觉享受,但也拉长了模型输出的时间,影响到体验。  

Morph Studio 现在生成速度为 3 分半生成 1080p 视频,和 Pika 生成 720P 的视频速度一样。 初创公司算力资源有限,Morph Studio 一直保持 SOTA,实属不易。 

另外,视频风格上,除了电影写实,Morph Studio 模型也支持漫画、3D 动画等常见风格。

Morph Studio  专注的 text-to-video 技术,被视为 AI 行业竞赛的下一个阶段。 

“即时视频可能代表 AI 技术的下一次飞跃,”《纽约时报》在一篇科技报道的标题中称,并认为它将与网络浏览器、iPhone 一样重要。  

2022 年 9 月,Meta 的机器学习工程师团队推出了一款名为 Make-A-Video 的新系统,用户输入对场景的粗略描述,系统就会生成一个对应的短视频。  

2022 年 11 月,清华大学和北京人工智能研究院( BAAI )的研究人员也发布了 CogVideo。  

当时,这些模型生成的视频,除了模糊(比如 CogVideo 生成的视频分辨率只有 480 x 480 ),画面也比较失真,还存在许多技术限制。但它们仍然代表了 AI 内容生成领域的重大发展。 

表面上看,视频只是一连串的帧(静止的图像)以一种给人运动错觉的方式组合在一起。然而,保证一系列图像在时间、空间上的一致性,难度要大得多。 

扩散模型的出现加速了技术的进化。研究人员尝试将扩散模型推广到其他领域(如音频、3D 和视频),视频合成技术取得显著进步。  

基于扩散模型的技术主要是让神经网络通过梳理数海量规模的图像、视频和文字说明,自动学习一些模式。当你输入内容需求时,这个神经网络会生成一个列表,囊括所有它认为创建图像可能用到的特征(比如猫耳朵的轮廓、手机的边缘)。  

然后,第二个神经网络(也就是扩散模型)负责创建图像并生成这些特征所需要的像素,并将像素转换为连贯的图像。  

通过分析数以千计的视频,AI 可以学会以类似的连贯方式将许多静止图像串在一起。关键在于要训练一个能真正理解每一帧之间关系和一致性的模型。  

“这是我们在过去一百年中建立的最令人印象深刻的技术之一,” Runway CEO Cristóbal Valenzuela 曾对媒体表示,“你需要让人们真正使用它。”  

2023 年被一些业内人士视为视频合成的突破之年。1 月还不见公开的  text-to-video 模型,一年行将结束之际已经有几十个类似产品和数百万用户。  

a16z合伙人Justine Moore在社交平台上分享的文生视频模型的时间轴,我们可以从中看到除了大厂还有很多创业公司,另外,技术迭代的速度非常快。  

目前的 AI 文生视频,并没有形成类似 LLM 统一明确的技术范式,关于怎样生成稳定的视频,业界还处于探索阶段。但研究人员相信,当用越来越多的数据训练他们的系统时,这些缺陷都能消除。最终,这项技术会使创建视频像写句子一样简单。  

国内一位资深的 AI 行业投资人告诉我们,文生视频技术的几篇最重要的论文都是 2022 年 7-8 月出来的,类比文生图的产业化进程,这项技术临近产业化的节点会出现在一年后,也就是 2023 年 7-8 月。  

整个视频技术的发展特别快,技术越来越成熟,这位投资人士说,根据之前在 GAN 领域的投资经验,他们预测未来半年到 1 年会是 text-to-video 技术的产品化时期。 

Morph 团队汇集了视频生成领域最优秀的年轻研究者们,经过过去一年日以继夜地密集研发,创始人徐怀哲与联合创始人李峰、殷子欣、赵世豪、刘少腾等核心技术骨干一起,攻克了 AI 视频生成难题。 

除了技术团队外,Morph Studio 最近也加强了其产品团队的实力,猫眼电影签约制作人、上海国际电影节评委,前硅谷头部 AIGC 公司核心成员海辛也于近期加入 Morph Studio。

海辛表示,Morph Studio 在技术研究上在整个行业里都占据着领先的位置;团队扁平、沟通效率和执行力都特别高;每位成员都对行业充满热情。她最大的梦想曾是加入一个动画公司。AI 时代来临后,她很快意识到,未来的动画行业将会发生变革,过去数十年动画底座是 3D 引擎,很快将迎来全新的 AI 引擎时代。未来的皮克斯会在一家 AI 公司中诞生。而 Morph 就是她的选择。 

创始人徐怀哲表示,Morph 正在积极布局 AI 视频赛道,我们立志于做 AI 视频时代的 Super App,为用户实现梦境。

2024 年,这个赛道会迎来自己的 Midjourney 时刻,他补充说。 

PS: 体会原汁原味的免费1080P视频生成乐趣,请移步至:

​​https://discord.com/invite/VVqS8QnBkA ​​

相关文章:

w~视觉~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663170 #InternVL 本文设计了一个大规模的视觉-语言基础模型(InternVL),将视觉基础模型的参数扩展到60亿,并逐步与LLM对齐,利用来自不同来源的网络规模的图像-文…...

Qt支持RKMPP硬解的视频监控系统/性能卓越界面精美/实时性好延迟低/录像存储和回放/云台控制

一、前言 之前做的监控系统,已经实现了在windows上硬解码比如dxva2和d3d11va,后续又增加了linux上的硬解vdpau的支持,这几种方式都是跨系统的硬解实现方案,也是就是如果都是windows系统,无论X86还是ARM都通用&#xf…...

【Qt】图片绘制不清晰的问题

背景 实现一个图片浏览器&#xff0c;可以支持放大/缩小查看图片。主要组件如下&#xff1a; // canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget>class CanvasWidget : public QWidget {Q_OBJECT public:explicit CanvasWidget(QImag…...

2008年IMO几何预选题第3题

设有两个圆凸内接四边形 A B Q D ABQD ABQD 和 B P Q C BPQC BPQC, 在线段 P Q PQ PQ 上存在一点 E E E, 使得, ∠ E A P ∠ E D Q \angle EAP\angle EDQ ∠EAP∠EDQ, ∠ E B P ∠ E C Q \angle EBP\angle ECQ ∠EBP∠ECQ. 求证: A A A, B B B, C C C, D D D 四点共…...

NAT拓展

NAT ALG&#xff08;NAT应用级网&#xff09; 为某些应用层协议&#xff0c;因为其报文内容可能携带IP相关信息&#xff0c;而普通NAT转化无法将这些IP转化&#xff0c;从而导致协议无法正常运行 例如FTP&#xff0c;DHCP&#xff0c;RSTP&#xff0c;ICMP&#xff0c;IPSEC…...

Flink四大基石之State

State state 可以理解为-- 历史计算结果 有状态计算和无状态计算 无状态计算: 不需要考虑历史数据, 相同的输入,得到相同的输出!如:map, 将每个单词记为1, 进来一个hello, 得到(hello,1),再进来一个hello,得到的还是(hello,1) 有状态计算: 需要考虑历史数据, 相同的输入,可…...

Spacy小笔记:zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别

Spacy小笔记 最近频繁用到spacy&#xff0c;就小记一下。 2024.11.29 zh_core_web_trf、zh_core_web_lg、zh_core_web_md 和 zh_core_web_sm区别 首先&#xff0c;它们都是预训练的中文模型&#xff1a; zh_core_web_trf:395M 架构: 基于 Transformer 架构&#xff08;bert…...

第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024)

重要信息 2024年11月29日-12月1日 中国陕西西安石油大学雁塔校区 大会官网&#xff1a;www.icmsp.net 大会简介 第六届智能控制、测量与信号处理国际学术会议&#xff08;ICMSP 2024&#xff09;由西安石油大学、中海油田服务股份有限公司、浙江水利水电学院与中国石油装备…...

docker服务容器化

docker服务容器化 1 引言2 多个容器间网络联通2.1 单独创建关联2.2 创建时关联 3 服务搭建3.1 镜像清单3.2 容器创建 4 联合实战4.2 flink_sql之kafka到starrocks4.2 flink_sql之mysql到starrocks 5 文献借鉴 1 引言 ​ 利用docker可以很效率地搭建服务&#xff0c;本文在win1…...

【QT】控件8

1.QDial 通过调节旋钮位置来控制窗口的不透明度&#xff1a; void Widget::on_dial_valueChanged(int value) {qDebug()<<value;this->setWindowOpacity((double)value/100); }效果演示&#xff1a; 2.Date/Time Edit 计算两个日期的差值 ui界面设计 计算按钮按下…...

漫谈推理谬误——错误因果

相关文章 漫谈推理谬误——错误假设-CSDN博客文章浏览阅读736次&#xff0c;点赞22次&#xff0c;收藏3次。在日常生活中&#xff0c;我们会面临各种逻辑推理&#xff0c;有些看起来一目了然&#xff0c;有些非常的科学严谨&#xff0c;但也有很多似是而非&#xff0c;隐藏了陷…...

【数据结构】队列实现剖析:掌握队列的底层实现

在计算机科学中&#xff0c;**队列&#xff08;Queue&#xff09;**是一种常见的数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则。队列的应用非常广泛&#xff0c;例如任务调度、资源管理、进程通信等。本篇文章旨在为计…...

【C++】IO库(二):文件输入输出

8.2 文件输入输出 头文件 fstream 定义了三个类型来之支持文件IO&#xff0c;分别是&#xff1a; ifstream&#xff1a;从一个给定文件读取数据&#xff1b;ofstream&#xff1a;向一个给定文件写入数据&#xff1b;fstream&#xff1a;读写给定文件。 在 C 当中&#xff0c…...

105.【C语言】数据结构之二叉树求总节点和第K层节点的个数

目录 1.求二叉树总的节点的个数 1.容易想到的方法 代码 缺陷 思考:能否在TreeSize函数内定义静态变量解决size的问题呢? 其他写法 运行结果 2.最好的方法:分而治之 代码 运行结果 2.求二叉树第K层节点的个数 错误代码 运行结果 修正 运行结果 其他写法 1.求二…...

力扣637. 二叉树的层平均值

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 提示&#xff1a; 树中节点数量在 [1, 104] 范围内-231 < Node.val < 231 - 1 代码&#xff1a; /*** Definition for a binary tree node.* stru…...

【前端】Next.js 服务器端渲染(SSR)与客户端渲染(CSR)的最佳实践

关于Next.js 服务器端渲染&#xff08;SSR&#xff09;与客户端渲染&#xff08;CSR&#xff09;的实践内容方面&#xff0c;我们按下面几点进行阐述。 1. 原理 服务器端渲染 (SSR): 在服务器上生成完整的HTML页面&#xff0c;然后发送给客户端。这使得用户在首次访问时能够…...

路径规划之启发式算法之一:A-Star(A*)算法

A*算法是一种启发式搜索算法&#xff0c;常用于解决路径规划问题。 一、A*算法的定义与原理 A*算法是一种用于在图形或网格中查找最短路径的算法。它在搜索过程中综合考虑了每个节点的实际距离&#xff08;g值&#xff09;和预估距离&#xff08;h值&#xff09;&#xff0c;以…...

Android复习代码1-4章

public class RudioButton extends AppCompatActivity {Overrideprotected void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_rudio_button);// 找到RadioGroup和TextView的实例RadioGroup radioGrou…...

【问题】webdriver.Chrome()设置参数executable_path报不存在

场景1: 标红报错unresolved reference executable_path 场景2: 执行报错TypeError: __init__() got an unexpected keyword argument executable_path 原因&#xff1a; 上述两种场景是因为selenium4开始不再支持某些初始化参数。比如executable_path 解决&#xff1a; 方案…...

win10系统安装docker-desktop

1、开启Hyper-v ———————————————— Hyper-V 是微软提供的一种虚拟化技术&#xff0c;它允许你在同一台物理计算机上运行多个独立的操作系统实例。这种技术主要用于开发、测试、以及服务器虚拟化等领域。 —————————————————————— &#…...

小程序-基于java+SpringBoot+Vue的乡村研学旅行平台设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…...

组件A底部栏(position: fixed )事件使用$emit更新内容失败bug解决

今天遇到一个很离奇的bug&#xff0c;记录一下 问题&#xff1a;在组件内底部栏使用$emit触发按钮事件但打印出来的值是初始化的值&#xff0c;更新的值被重置导致更新失败 原因&#xff1a;组件内底部使用了 position: fixed; 固定&#xff0c; 导致组件内插槽 this 与 保存按…...

数据结构——排序第三幕(深究快排(非递归实现)、快排的优化、内省排序,排序总结)超详细!!!!

文章目录 前言一、非递归实现快排二、快排的优化版本三、内省排序四、排序算法复杂度以及稳定性的分析总结 前言 继上一篇博客基于递归的方式学习了快速排序和归并排序 今天我们来深究快速排序&#xff0c;使用栈的数据结构非递归实现快排&#xff0c;优化快排&#xff08;三路…...

C++的类功能整合

1. 类的基本概念 类是面向对象编程的核心&#xff0c;它封装了数据和操作数据的函数。 #include <iostream> using namespace std;class MyClass { public:int publicData;void publicFunction() {cout << "Public function" << endl;}private:i…...

《String类》

目录 一、定义与概述 二、创建字符串对象 2.1 直接赋值 2.2 使用构造函数 三、字符串的不可变性 四、常用方法 4.1 String对象的比较 4.1.1 比较是否引用同一个对象 4.1.2 boolean equals(Object anObject)方法&#xff1a;按照字典序比较 4.1.3 int compareTo(Strin…...

【docker】docker的起源与容器的由来、docker容器的隔离机制

Docker 的起源与容器的由来 1. 虚拟机的局限&#xff1a;容器的需求萌芽 在 Docker 出现之前&#xff0c;开发和部署软件主要依赖虚拟机&#xff08;VMs&#xff09;&#xff1a; 虚拟机通过模拟硬件运行操作系统&#xff0c;每个应用程序可以运行在自己的独立环境中。虽然虚…...

Window 安装 Nginx

参考链接 Windows 环境nginx安装使用及目录结构详解_windows 安装nginx-CSDN博客 Nginx 安装及配置教程&#xff08;Windows&#xff09;【安装】_nginx下载安装-CSDN博客 安装 1&#xff09;下载 nginx: download 2&#xff09;解压 3&#xff09;启动 3.1&#xff09;方…...

replace (regexp|substr, newSubstr|function)替换字符串中的指定部分

replace 方法用于替换字符串中的指定部分。它可以接受一个子字符串或正则表达式作为第一个参数&#xff0c;第二个参数是替换的内容。 用法示例 基本替换 let str "Hello, world!"; let newStr str.replace("world", "everyone"); console.lo…...

【ROS2】Ubuntu22.04安装ROS humble

一. ROS简介 1.1 什么是ROS ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务&#xff0c;包括硬件抽象&#xff0c;底层设备控制&#xff0c;常用函数的实现&#xff0c;进程间消息传递&#xff0c;以及包管理。ROS的核心思想就是将机器人的软件功能做…...

cesium 3Dtiles变量

原本有一个变亮的属性luminanceAtZenith&#xff0c;但是新版本的cesium没有这个属性了。于是 let lightColor 3.0result._customShader new this.ffCesium.Cesium.CustomShader({fragmentShaderText:void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial mate…...

遵义企业网站建设/福州网站建设

[rootlocalhost Desktop]# cd ~ [rootlocalhost ~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[b-e] 创建raid10名字为/dev/md0 由四块硬盘组成硬盘编号为/dev/sdb-sde目录 mdadm: layout defaults to n2 mdadm: layout defaults to n2 mdadm: chunk size defaults to 512K 创建…...

上海网站seo外包/微博热搜榜排名今日

http://weekly.dockone.io/issues转载于:https://www.cnblogs.com/zengkefu/p/5529599.html...

合肥动态网站制作建设/宁波正规seo推广

1. 分支结构1.1 if 结构1 if (/* 判断语句 true false */) {2 // 语句体3 }4 /*5 执行流程&#xff1a;6 当程序运行到if结构时&#xff0c;首先判断if之后的小括号里面的判断语句是否为true&#xff0c;如果为true&#xff0c;执行语句体&#xff0c;如果为false&#xff0c;执…...

做360全景有什么网站/上海seo网络优化

网络设备介绍 网络设备是计算机体系结构中必不可少的一部分&#xff0c;处理器如果想与外界通信&#xff0c;通常都会选择网络设备作为通信接口。众所周知&#xff0c;在 OSI&#xff08;Open Systems Interconnection&#xff0c;开放网际互连&#xff09;中&#xff0c;网络被…...

图片网站建设/搜狗收录查询

03/27每日十句口语 Did you enter the contest? 你参加比赛了吗? Do you accept credit cards? 你们收信用卡吗? Don‘t cry over spilt milk&#xff0e; 不要做无益的后悔。 Don‘t let chances pass by&#xff0e; 不要让机遇从我们身边溜走。 He owned himself defeat…...

一键免费做网站/如何做一个网页

在项目中遇见好几次这个bug&#xff0c;被坑很多次&#xff0c;而且很难找出问题所在 Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 81: http://monntor/api/uur/test/e7e0ff2c-0f10-4705-a3a7-d410d0b9d08d/heat{heat}/list/95374904…...