贡献
该研究探索了如何通过图像空间坐标为基础的指令微调目标,来提高视觉大型语言模型(V-LLM)的空间感知能力。
现有的问题
虽然V-LLM在视觉问答等任务上表现出色,但它们的空间推理能力相对较弱,不能很好地区分物体的左右位置关系等简单的空间推理任务。
方法
模型架构与训练
模型架构
视觉编码器采用ViT-L/14,将图像编码成256个视觉标记。
适配层使用线性层,将视觉标记投影到4096维。
LLM使用LLaMA,处理图像标记和文本标记的联合输入,生成文本输出。
模型有两个变体:LocVLM-B(224*224)和LocVLM-L(336*336),分别处理不同分辨率的图像。
训练
训练分为2个阶段,第一阶段只更新适配层权重,使视觉编码器输出与LLM输入对齐(使用CC3M数据集,该数据集的格式就是一张图片配一段描述的文字)。第二阶段使用本文提出的定位相关指令微调目标,联合微调适配层和LLM。针对视频域,使用额外的视频指令微调阶段,仅微调适配层权重。引入视频域的三个指令微调目标,并使用伪标签生成策略进行训练。
图像空间坐标的处理和生成方法
工作前提:通过基于坐标的推理,给llm注入额外的空间意识,也可以提高它们的一般推理能力。
如何在一个图像中指明一个对象的位置
1.用一个框来表示对象的位置
2.用对象的中心点来指明其位置。
如何描述点的坐标
1.归一化浮点描述(NFP):就是把一个点的像素坐标归一化到(0,1)中(保留4位小数)
2.整数值绑定(IVB):将像素线性映射到224*224的网格中,全都是整数表示
3.基于图像网格锚点的偏差(DIGA):在图像中划定多个坐标确定的锚点,在描述一个点的坐标的时候只需要选择描述锚点编号以及目标点与锚点的偏差即可。
最终选择了IVB
微调任务
Location Prediction (LocPred)
给定一个目标类别(例如“猫”),要求模型生成该目标在图像中的位置(点位置或边界框)。该目标的类别和边界框来源于COCO训练集的注释。为了防止类别匹配错误,研究者首先筛选只包含单个该类别目标的图像(只包含一只猫的图像)。
Negative Prediction (NegPred)
使用与LocPred相同的提示模板,但要求模型生成一个在图像中不存在的目标类别的位置信息(例如图片中只有一只猫,但是要求其给出狗的位置信息)。研究者使用COCO边界框注释来找出每个图像中不存在的目标类别,并给出相应的否定回答,例如“图像中没有这样的对象”。
Reverse Location Prediction (RevLoc)
与LocPred相反,给定一个点位置或边界框,要求模型描述该位置的对象。研究者同样利用COCO训练集的注释来获取边界框和对象类别。
伪数据生成
因为前面的微调任务依赖于COCO数据集,而COCO数据的内容是不够丰富的,因此考虑生成一些伪数据以提高训练集的数据量。具体来说,有两种方法:
1.针对COCO数据集(有文字描述和边界框),去掉文字描述,保留边界框,让之前训练好的VLM对这个这个图像生成一段文字描述(要描述位置信息),由此丰富数据。
2.利用无标签的数据,如ImageNet或视频数据,配合现成的全景分割框架SEEM生成伪边界框(生成各个像素的语义,然后聚合)。
视频域处理
通过对LocVLM模型进行简单修改,使其可以处理视频数据
视频编码器处理(改为处理视频帧序列):在视频域LocVLM模型中,视频编码器以图像为单位独立处理视频帧,并为每个视频帧生成视觉特征。
时空池化:利用时空池化策略,将视频帧的视觉特征在时间维度上平均池化,以获得时间特征,同时在空间维度上平均池化,以获得空间特征。然后将这些特征进行拼接,以生成视频的视觉表示。
视频域指令微调:研究者提出了视频域的指令微调目标,包括基于伪标签的视频对象定位和逆定位。这些目标要求模型根据视频帧预测静态对象的边界框,并描述边界框中的内容。
模型训练:在ActivityNet视频数据集上,研究者首先对适配层进行微调,然后对适配层和语言模型一起进行微调,以获得视频域LocVLM模型。
实验
8*A100,三个数据集(CC3M,COCO,自己收集的Localize-Instruct-200K)
ICL相当于提供了上下文信息
LocVLM有效消除幻觉
LocVLM模型可以直接处理文本形式的图像空间坐标(“描述位于(x1, y1, x2, y2)区域的物体”),并进行相应的描述(“这是一只小狗”)。
消融实验: