https://arxiv.org/abs/2112.03857
https://github.com/microsoft/GLIP
这篇论文做的任务是phrase grounding,属于visual grounding的一种。phrase grounding的任务是输入句子和图片,将句子中提到的物体都框出来。visual grounding其他任务和细节可以参考
https://zhuanlan.zhihu.com/p/388504127
GLIP既可以做目标检测也可以做grounding,
贡献
性能
1. background:
对于检测数据集:
训练时输入标签名(person、hairdryer)、框、图片。
测试时输入图片,预测出框和标签名。
训练过程如下:
2. background as grounding:
groudning模型的输入是短语、短语中名词的框和图片。
将object模型转为grounding的办法:通过prompt的方式将标签名转化为短语。
如coco有80个标签,将80个标签用逗号连接,短语前加“Detect:”,来组成短句。
公式2变成公式3的过程中,T的大小会变化,从Nc变成NM
构建token:上图流程图中,M(sub-word tokens)总是比短语格式c多,原因有四个1)一些短语占了多个toeken位置,比如 traffic light。2)一些短语被分开成sub words,比如toothbrush分成了 tooth#, #brush。3)一些是添加的token,如逗号,Deteckt等,4)结尾会添加[NoObj]的token。在训练的时候,phrase是正例的话,多个subwords都是正例。测试时多个token的平均pro作为短语的probability。
3. detection和grounding联动:由上面的方法,可以用grounding模型来预训练检测任务,从而可以迁移GLIP模型做zero-shot的检测
O0是视觉backbone的feature, P0 是文本backbone的feature
X-MHA(cross-modality multi-head attention module)
L是DyHead中DyHeadModules个数,BERT Layer为新增。
attention部分在多模态中比较常见,比如co-attention、guided attention等。可以参考多模态中attention其他优化。
DeepFusion优点:
提高了phrase grounding效果
使得视觉特征language-aware
grounding数据集语义都很丰富,目标检测不超过2000个类别,但是grounding数据集如Flickr30K包括了4.4w不同的短语,量级不同。
如何扩增grounding数据:
FourODs(2.66M数据)是4个检测数据集集合,包括objects365、OpenImages、VG数据集(除了coco)、ImageNetBox。
GoldG+ 数据集包括1.3M数据集,包括Flickr30K、VG caption、GQA。
GoldG 数据集是GoldG+去除了coco数据集
zero-shot在coco上:
Flick 30k:图文匹配grounding数据集,goldG中包含了该数据集
O365: 0.66M
GoldG: 0.8M
FourODs: 2.66M
但是不是O365+GoldG效果反而更好