这有两个好处: GLIP可以同时从 detection 和 grounding 数据中训练学习,以改进两种任务,训练一个优秀的 grounding 模型; GLIP可以通过 self-training 「3、Transfer learning with GLIP: one model for all」 GLIP可以有效的迁移到各种任务中,而只需要很少甚至不需要额外的人工标注。 实验 GLIP variants 经过预训练,GLIP可以轻松地应用于 grounding 和 detection 任务,在三个基准上显示了强大的域迁移性能: COCO,包含80个类别; LVIS GLIP-T(C)达到46.7 AP,超过了Faster RCNN,GLIP-L达到49.8 AP,超过DyHead-T。 在有监督下,GLIP-T比标准DyHead提高5.5 AP (55.2 vs 49.7)。
See " "grpc::internal::GrpcLibraryInitializer."); g_glip->init(); grpc_init_called_ = true; } } GrpcLibraryCodegen极为简单,仅仅调用了g_glip->init();所以重点在g_glip上,让我们看看它的来源 [sgiuy3s04j.jpg] g_glip在GrpcLibraryInitializer类的构造函数中被初始化。 grpc声明了一个全局的静态变量static internal::GrpcLibraryInitializer g_gli_initializer;以确保在main函数之前就完成了g_glip的初始化 这个变量会被用在CompletionQueue的构造函数中,后面会说到 从图中可以看到g_glip->init方法实际调用的是GrpcLibrary中的init方法 class GrpcLibrary
多数据源并行输入预训练框架 相对于 GLIP 中将 detection 数据通过拼接类别名词的方式转化为 grounding 形式(串行),我们通过将 grounding 数据中的对应名词词组抽取出来和 取得了 9.9% AP 提升,在 Rare 类别上更是提升了 12.4% AP,尽管相对于 GLIP 我们只使用了少于其一半的数据量,注意训练集中未包含 LVIS 中任何图片。 表 1:LVIS 上不同方法 Zero-shot transfer performance 比较 在训练效率上,基于相同 32 张 V100 的硬件条件,GLIP-T 的训练时间是 DetCLIP-T 在测试效率上,基于单张 V100,DetCLIP-T 的推理效率 2.3 FPS (0.4 秒每张图)是 GLIP-T 的 0.12 FPS (8.6 秒每张图)的 20 倍。 图 6:DetCLIP 与 GLIP 在 LVIS 数据集上预测结果的可视化对比 参考文献: [1] Gu, Xiuye, et al.
在对象检测任务中,模型将所有类别名称拼接作为输入文本,这与GLIP方法一致。 受GLIP的启发,我们为特征融合添加了图像到文本和文本到图像的交叉注意模块。这些模块可帮助调整不同模式的特征。 表2中对Grounding DINO、GLIP和DINO模型进行比较的实验结果的总结。 作者使用LVIS作为下游任务来测试他们的模型在零样本设置下的能力,并将GLIP作为基线。结果在表3中展示。Grounding DINO在相同设置下优于GLIP。 结果显示,Grounding DINO在相同的设置下表现优于GLIP。
南京理工大学 「收录情况」:NeurIPS-2022 「论文链接」:https://arxiv.org/abs/2206.05836 「代码链接」:https://github.com/microsoft/GLIP GLIPv2建立在MDETR和GLIP基础上,使用classification-to-matching技巧将localization任务转换为一个grounded vision-language任务。 GLIPv2 vs GLIP:1)GLIP的grounded pre-training提高了localization的性能和提高了VL understanding的能力,从而形成了localization 和VL understanding的统一模型;2)GLIPv2 引入了图像间region-word的对比损失,这是另一个比GLIP中预训练任务更强的grounding任务。 GLIP通过添加几个否定句来形成包含更多(否定)phrase的较长的文本输入,从而缓解了这个问题,但是,受限于文本token的最大长度(GLIP和GLIPv2中为256),只能添加少量的否定句,否定phrase
这个指针的内容就是上面的static const grpc_event_engine_vtable vtable 2.2 grpc::g_core_codegen_interface 把思路回到第二节开头,不仅g_glip grpc_library.h class GrpcLibraryInitializer final { public: GrpcLibraryInitializer() { if (grpc::g_glip == nullptr) { static auto* const g_gli = new GrpcLibrary(); grpc::g_glip = g_gli; }
实验表明,多模态查询能够大幅度推动主流检测大模型的开放世界目标检测能力,例如在基准检测数据集LVIS上,无需下游任务模型微调,提升主流检测大模型GLIP精度约7.8%AP,在13个基准小样本下游任务上平均提高了 从头训练一个检测大模型会具备较好的泛化性但是消耗巨大,例如,单卡训练GLIP[1]需要利用3000万数据量训练480 天。 在文章中,作者分别将MQ-Det的结构设计和训练技术应用于目前的SOTA模型GLIP[1]和GroundingDINO[2],来验证方法的通用性。 表1 各个检测模型在LVIS基准数据集下的finetuning-free表现 从表1可以看到,MQ-GLIP-L在GLIP-L基础上提升了超过7%AP,效果十分显著! 图2也展示了MQ-Det对于GLIP的显著提升。
实验表明,多模态查询能够大幅度推动主流检测大模型的开放世界目标检测能力,例如在基准检测数据集LVIS上,无需下游任务模型微调,提升主流检测大模型GLIP精度约7.8%AP,在13个基准小样本下游任务上平均提高了 获取多模态查询能力的难点 :如何得到这样一个具备多模态查询的模型,存在三个挑战:(1)直接用有限的图像示例进行微调很容易造成灾难性遗忘;(2)从头训练一个检测大模型会具备较好的泛化性但是消耗巨大,例如,单卡训练GLIP 在文章中,作者分别将MQ-Det的结构设计和训练技术应用于目前的SOTA模型GLIP 和GroundingDINO ,来验证方法的通用性。 表1 各个检测模型在LVIS基准数据集下的finetuning-free表现 从表1可以看到,MQ-GLIP-L在GLIP-L基础上提升了超过7%AP,效果十分显著! 5. 图2也展示了MQ-Det对于GLIP的显著提升。 图2 数据利用效率对比;横轴:训练样本数量,纵轴:OdinW-13上的平均AP 6.
GLIP将目标检测和短语基础统一用于预训练。 这种统一带来了两个好处:1)它允许GLIP从检测和接地数据中学习,以改进任务和引导良好的接地模型;2) GLIP可以利用大量的图像-文本对,以自我训练的方式生成基础框,使学习到的表示语义丰富。 2) 在COCO上进行微调后,GLIP在val上达到60.8 AP,在测试开发上达到61.5 AP,超过了之前的SoTA。 3) 当转移到13个下游目标检测任务时,一个单发GLIP与一个完全监督的动态头部相匹敌。守则将于https://github.com/microsoft/GLIP. GLIP unifies object detection and phrase grounding for pre-training.
测试共包含三种知名的开放世界检测模型:GroundingDINO、GLIP和Owl-ViT。 此外,研究人员还设置了一个简单的基准模型——CLIP(结合GLIP提案),即使用CLIP对GLIP提出的分类进行重新分类。 模型的评估依据是定位召回率,即正确定位的地点数与总定位尝试中的地点数之比。 - 结果 由下表所示,开放世界检测器如GroundingDINO、Owl-ViT和GLIP对某些特定地点类型(例如学校、咖啡馆和便利店)是有明显偏好的。 与之相比,CLIP(结合 GLIP 提案)能识别更多种类的地点。这主要是因为对象检测数据集中存在的类别偏差,这些数据集通常只包含有限的词汇。
首先使用GLIP模型来定位对象,然后利用对象信息检索不同类型的外部知识,最后将这些知识与对象区域视觉特征集成到一个统一的基于Transformer的答案预测模型中,以预测答案。 Regional Feature Extraction Module 给定一个图像,首先采用对象检测器GLIP来生成区域提议框(和Faster-rcnn 的 region proposals 一个意思) ”作为GLIP模型的prompts,包含MSCOCO数据集的所有对象类别。 从GLIP中得到对象边界框后,根据对图像进行裁剪,得到区域提议Regional Features,此外,对每一个区域提议还会引入位置编码Regional Positions,然后从中提取以物体为中心的视觉特征 中的每一项都由一个实体(即上一步GLIP模型提取的Region标签)和相应的描述组成,例如,实体“pegboard”和描述“board wall covering with regularly-spaced
"C++") : fab(s) { } virtual void tell() { cout << fab; } }; class Gloam { private: int glip Gloam::Gloam(int g, const char* s) : glip(g), fb(s){} Gloam::Gloam(int g, const Frabjous &f) : glip(g ), fb(f){} //使用Frabjous的默认复制构造函数 void Golam::tell() { fb.tell(); cout << glip <<endl; } 3. Gloam::Gloam(int g, const char* s) : glip(g), Frabjous(s){} Gloam::Gloam(int g, const Frabjous &f) : glip(g), Frabjous(f){} //使用Frabjous的默认复制构造函数 void Golam::tell() { Frabjous::tell(); cout << glip
SAM、YOLO-World、GLIP等视觉基础模型受益于大规模2D数据集和弱监督训练,能以低成本实现高质量分割。 然而,SAM不提供类别标签,YOLO-World和GLIP仅提供类别预测而无像素级掩码,难以直接用于3D分割。将点云渲染为2D图像会引入遮挡和视角相关变化,常导致跨视角边界和语义不一致。 通过组合多个物体构建复杂场景,并使用GLIP作为检测模型(无需微调),我们的方法取得了与其他专门方法相近的部件分割精度(表3)。
(1)第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter; (2)第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP Gated Cross-modality Interaction: GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。 不少方法都在Objects365上预训练过,例如GLIP, OWL, and UNINEXT,但是他们在这些训练过的数据集上效果也并不是很好。
(1)第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter; (2)第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP Gated Cross-modality Interaction: GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。 不少方法都在Objects365上预训练过,例如GLIP, OWL, and UNINEXT,但是他们在这些训练过的数据集上效果也并不是很好。
(1)第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter; (2)第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP Gated Cross-modality Interaction: GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。 不少方法都在Objects365上预训练过,例如GLIP, OWL, and UNINEXT,但是他们在这些训练过的数据集上效果也并不是很好。
但都有一些不足之处: 第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter; 第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP 3、Gated Cross-modality Interaction GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。 此前不少方法都在Objects365上预训练过,例如GLIP、OWL和UNINEXT,但是它们在这些训练过的数据集上效果也并不是很好。 另外,实验还比较了RoboFlow100和ODinW评测基准。
已有的方法可以分为三类: 第一类采用自监督的训练方式,例如DINO和CLIP等,这类方法在做下游感知类任务的时候需要再训练单独的Head或者Adapter; 第二类方法是开集检测,对齐图像的局部区域和文本表达,例如GLIP Gated Cross-modality Interaction GLIP等方法直接融合文本和视觉特征,在类别名很多的情况下融合的代价逐步提升。
他是GLIP/GLIPv2的主要作者之一,GLIP曾获得CVPR2022的Best Paper Award的提名。
GLIP提出了一种基于短语定位的开集检测预训练框架,并在零样本设置中进行评估。Grounding DINO 将定位预训练融入到检测 Transformer 中,并通过跨模态融合。 具体来说,这种标注方法包含三个步骤 提取名词短语:首先使用n-gram算法从文本中提取名词短语; 伪标签:采用一个预训练的开集检测器,例如GLIP ,为每张图像给定名词短语的生成伪边界框,从而提供粗糙的区域 在获得第一步中的目标名词集合 T=\{t_{k}\}^{K} 之后,作者利用一个预训练的开集检测器,即 GLIP-L,生成伪边界框 \{B_{i}\} 及其置信度得分 \{c_{i}\} : \{B_{i},t_{i},c_{i}\}_{i=1}^{N}=\texttt{GLIP-Labeler}(I,T), \tag{7} 其中 \{B_{i},t_{i},c_{i}\}_{i=1}^{ [可选] 重新标记:作者可以将每个裁剪的图像与所有名词前向传播,并分配相似度最大的名词,这可以帮助纠正由GLIP错误标记的文本。