X-VLM: Multi-Grained Vision Language Pre-Training

本文介绍了X-VLM,一个端到端的多模态模型,旨在通过多粒度视觉语言预训练来改进目标检测依赖的视觉特征学习。X-VLM包含图像编码器、文本编码器和跨模态编码器,充分利用物体检测框信息。模型通过预测bbox、对比学习和匹配预测等任务促进跨模态语义对齐。实验表明,X-VLM在图像文本检索、视觉问答等多个任务上表现出色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Introduction

  • 大部分 VLM (Visual-Language Model) 依赖于目标检测模型抽取视觉特征,因此会难以学得多个物体间的关系。为了解决上述问题,作者提出了端到端的多模态模型 X-VLM 来进行 “multi-grained vision language pre-training” (align the text with fine-grained (object-centric) features + learn alignments between the texts and coarse-grained (overall) features of the image). 例如在下图中,数据集包含 image caption、region annotations such as “man wearing backpack”、object labels such as “backpack”
    在这里插入图片描述

Method

  • Overview: X-VLM 由 image encoder I t r a n s I_{trans} Itrans (swin transformer), text encoder T t r a n s T_{trans} Ttrans (6-layer transformer; 由 BERT base 的前 6 层初始化) 和 cross-modal encoder X t r a n s X_{trans} Xtrans (6-layer transformer; 由 BERT base 的后 6 层初始化) 组成,所有 encoders 均为 Transformer. 同时,X-VLM 更充分地利用了预训练数据集中的物体检测框信息,每个样本可以表示为 ( I , T , { ( V j , T j ) } N ) (I,T,\{(V^j,T^j)\}^N) (I,T,{(Vj,Tj)}N),其中 I I I 为 image, T T T 为 text, { ( V j , T j ) } N \{(V^j,T^j)\}^N {(Vj,Tj)}N 为图片中 N N N 个 bbox 的图像和文本信息 (对于某些样本而言,可能有 T = NaN T=\text{NaN} T=NaN,即图像没有描述文本,或 N = 0 N=0 N=0,即没有物体检测框信息)
  • Vision Encoding: I t r a n s I_{trans} Itrans 为 Swin transformer. 对于 224 × 224 224\times224 224×224 的输入图像 (预训练时图像尺寸为 224 × 224 224\times224 224×224,微调时图像尺寸为 384 × 384 384\times384 384×384),patch 大小为 32 × 32 32\times32 32×32 时, I t r a n s I_{trans} Itrans 输出为 { v 1 , . . . , v N I } \{v_1,...,v_{N^I}\} {v1,...,vNI} ( N I = 49 N^I=49 NI=49),其中 v p i v_{p_i} vpi 编码了 patch p i p_i pi 的视觉信息。因此对于视觉对象 V j V^j Vj (object, region, or the image) 而言,它的视觉编码为 I t r a n s ( V j ) = { v c l s j , v p 1 j , . . . , v p M j } I_{trans}(V^j)=\{v_{cls}^j,v_{p_1^j},...,v_{p_M^j}\} Itrans(Vj)={vclsj,vp1j,...,vpMj} ( j ∈ [ 0 , N ] j\in[0,N] j[0,N]),其中 p 1 j , . . . , p M j p_1^j,...,p_M^j p1j,...,pMj V j V^j Vj 包含的 M M M 个 patch, v c l s j v_{cls}^j vclsj v p 1 j , . . . , v p M j v_{p_1^j},...,v_{p_M^j} vp1j,...,vpMj 的均值,代表 V j V^j Vj 整体的视觉特征。对于整张图像而言, I t r a n s I_{trans} Itrans 可以编码出 N + 1 N+1 N+1 个视觉对象,包括 N N N 个 bbox V 1 , . . . , V N V^1,...,V^N V1,...,VN 和整张图像 I = V 0 I=V^0 I=V0
    在这里插入图片描述
  • Cross-Modal Modeling:
    在这里插入图片描述
    • Bounding Box Prediction: 作者让模型根据图像 I I I V j V^j Vj 对应的文本描述 T j T^j Tj 去预测 V j V^j Vj 对应 bbox b j b^j bj 的位置,这可以帮助模型更好地进行跨模态细粒度语义对齐
      在这里插入图片描述其中,Sigmoid 是用于输出归一化的 bbox 坐标, x c l s j x_{cls}^j xclsj 为 cross-modal encoder 输入 I , T j I,T^j I,Tj 后输出的 [CLS] 对应的特征向量
      在这里插入图片描述损失函数采用 L1 损失 (scale-variant) 和 generalized IoU loss (scale-invariant) 之和
      在这里插入图片描述
    • Contrastive Learning: 和 CLIP 类似,X-VLM 也使用了对比损失。随机采样 N N N 个图像文本对 (1 个 batch),可以计算如下的 in-batch vision-to-text similarity
      在这里插入图片描述其中, ( V , T ) (V,T) (V,T) 为正样本, V V V 和同一 batch 内的其他文本 T i T^i Ti 组成 N − 1 N-1 N1 个负样本。 s ( V , T ) = g v ( v c l s ) T g w ( w c l s ) s(V,T)=g_v(v_{cls})^Tg_w(w_{cls}) s(V,T)=gv(vcls)Tgw(wcls) 为余弦相似度, v c l s , w c l s v_{cls},w_{cls} vcls,wcls 分别为 V V V T T T 的 [CLS] 对应的输出, g v , g w g_v,g_w gv,gw 分别将 v c l s , w c l s v_{cls},w_{cls} vcls,wcls 变换为低维的归一化特征表示。类似地,text-to-vision similarity
      在这里插入图片描述损失函数
      在这里插入图片描述其中, y v 2 t ( V ) , y t 2 v ( T ) y^{v2t}(V),y^{t2v}(T) yv2t(V),yt2v(T) 为 ground-truth one-hot similarity (only the positive pair has the probability of one), H H H 为交叉熵损失
    • Matching Prediction:对于每个 V V V,根据 in-batch vision-to-text similarity p v 2 t ( V ) p^{v2t}(V) pv2t(V) 从 batch 内采样出一个 in-batch hard negative text,与 V V V 更相近的 text 被采样的几率更大;同理,对于每个 T T T,也采样出一个 in-batch hard negative visual concept,由此得到 N N N 个正样本和 2 N 2N 2N 个负样本。损失函数为交叉熵损失
      在这里插入图片描述其中, p m a t c h p^{match} pmatch 为模型预测的匹配概率
    • Masked Language Modeling:随机 mask 25% 的文本,其中 10% 替换为随机 token,10% 不变,80% 替换为 [MASK],然后使用 cross-modal encoder 的输出加上线性层和 Softmax 重构 mask 掉的 token. 损失函数
      在这里插入图片描述其中, T ^ \hat T T^ 为 masked text, p j ( V , T ^ ) p^j(V,\hat T) pj(V,T^) 为 masked token t j t_j tj 的预测概率
      在这里插入图片描述

Experiment

Pre-training Datasets

  • 为了便于比较,X-VLM 准备了 2 种预训练数据集设置 (4M / 16M),其中 Ann(otations) 为图片的 object annotations 和 region annotations
    在这里插入图片描述

Image-Text Retrieval

在这里插入图片描述

Visual Question Answering, Natural Language for Visual Reasoning (NLVR2), Visual Grounding, Image Captioning

在这里插入图片描述

References

### Task-agnostic 视频语言模型 (VLM) 的预训练及其在视频理解中的应用 #### 定义与背景 Task-agnostic 视频语言模型(VLM)是一种能够处理多任务场景的通用型模型,旨在通过联合建模视频和文本数据来捕捉跨模态的信息交互。这种类型的模型通常通过对大规模未标注或多标签的数据集进行自监督学习完成预训练阶段[^2]。相比传统的任务特定模型,Task-agnostic VLM 更加灵活,在多个下游任务中表现出色。 #### 预训练方法概述 预训练的核心目标是从大量无标记或弱标记的多媒体数据中提取有用的特征表示。对于视频语言模型而言,常见的做法是将视频序列分解为离散的时间步,并将其映射到高维向量空间中。具体来说,给定一段视频片段 \( v \),以及对应的自然语言描述 \( t \),可以通过以下方式实现: 1. **Token化**: 将视频帧转换为一系列 token 嵌入,这一步骤可能涉及使用冻结的视觉编码器(如 ResNet 或 Swin Transformer)提取每帧的空间特征。 2. **时间建模**: 利用可训练的 MLP 层或其他结构进一步捕获帧间关系,从而得到最终的视频 token 表示。 3. **对比学习框架**: 在许多情况下,采用基于对比损失的目标函数优化模型参数,使得正样本对之间的相似度最大化而负样本最小化[^3]。 #### 应用于视频理解的具体案例分析 以 Meta AI 和 CMU 提出的任务无关视频语言模型为例,该架构展示了如何有效地结合来自不同源域的知识来进行广泛的视频理解和生成任务。此外,还有其他研究尝试比较不同类型 VLM 架构的效果差异,例如 BLIPBASE 和 XVLMCLIP 这两类分别代表了编解码器网络混合模式和平行流模式的设计理念。 当涉及到实际应用场景时,像 SeeDo 系统那样利用预先训练好的大型多模态语言模型去解析真实世界的演示录像成为一种新兴趋势[^1]。它不仅继承了传统模仿学习技术的优点——即把复杂的操作拆分成更易于管理的小单元;同时还引入了先进的 NLP 技术支持更加多样化的动作执行形式。 ```python import torch from transformers import VideoMAEModel, AutoTokenizer def extract_video_features(video_frames): video_encoder = VideoMAEModel.from_pretrained('videomae-base') tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') with torch.no_grad(): frame_embeddings = video_encoder(video_frames).last_hidden_state text_input_ids = tokenizer("A man is playing basketball", return_tensors="pt")['input_ids'] # Hypothetical fusion mechanism between visual and textual embeddings. fused_representation = combine_visual_textual(frame_embeddings, text_input_ids) return fused_representation def combine_visual_textual(vis_emb, txt_id): pass # Placeholder for actual implementation details. video_data = ... # Preprocessed input data structure containing frames. result = extract_video_features(video_data) print(result.shape) ``` 上述代码片段展示了一个简单的例子说明怎样加载现成工具包里的组件并组合起来形成初步解决方案雏形。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值