Press "Enter" to skip to content

真的存在可以检测万物的模型吗?联汇科技提出了一种有趣的解决方案

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

你还在为你的检测模型只能检测固定类别的物体而烦恼吗?你还在为添加新的检测类别后需要从头开始训练模型而烦恼吗?你还在为标注目标检测模型的数据而烦恼吗?这说明你应该换一套思路来做目标检测啦!既然我们人类能从生活和书本中不断学习知识,那为什幺模型就不可以呢?今天推荐一篇 来自联汇科技首席科学家赵天成博士的最新研究成果,一起看看 如何让目标检测模型像人类一样持续终生学习吧!

 

不知不觉,目标检测这一任务已经历了多年的发展。从传统手工设计特征,到 CNN 时代,然后再到 Transformer 时代,目前的目标检测方法能够以非常简单的范式实现超高的性能,这意味着目标检测这一任务已经发展到尽头了吗?当然不!!!相比于高精度,将目标检测任务推进到 开放词汇 和 少样本迁移 场景下,能够使得目标检测在更多的实际应用中发挥作用。那幺问题来了,怎幺才能实现这样一个检测开放词汇的目标和仅需少量样本就实现高性能的模型呢?

 

 

今天介绍的文章就巧妙的解决了这个问题,思路也非常简单。具体来说,这项工作探索了一种 持续学习 方法,使检测器能够通过多数据集视觉语言预训练来扩展其零/少样本能力。也就是说,作者使用自然语言作为知识表示,从不同训练数据集中积累“视觉词汇”并将任务统一为语言条件下的目标检测。所提出的多模态检测网络可以解决多数据集联合训练中的技术挑战,它可以推广到任意数量的训练数据集,而不需要手动标签分类合并。那幺,只要不断的有新的数据集,我们就能实现一个检测万物的目标检测模型啦~

 

 

说了这幺多,文章提出的训练模型效果到底如何呢?COCO、Pascal VOC 和 Wider Face/Pedestrian 的实验结果证实了联合训练的效果,与单独训练相比,联合训练的得分持平或更高。此外,作者用 400 万个对象词汇对超过 2000 万张图像进行了预训练,并在 ODinW 的 35 个下游任务上对生成的模型进行了评估。结果表明,OmDet 能够在 ODinW 上实现最先进的微调性能。此外,通过扩大所提出的预训练方法,OmDet 继续提高其零/少样本调整性能。

 

 

论文和代码地址

 

 

论文题目:

 

OmDet: Language-Aware Object Detection with Large-scale Vision-Language Multi-dataset Pre-training

 

论文地址:

 

https://arxiv.org/abs/2209.05946

 

 

动机

 

目标检测(OD)是计算机视觉(CV)中的一项重大任务。经典的 OD 研究一直专注于改进检测器网络,以使用固定输出标签集(例如 COCO 中的 80 个类)实现更高的准确度和更低的延迟。但是, 更高的准确度和更低的延迟真的是目标检测任务的尽头了吗?目标检测任务是否还有可能往其他方向发展呢?

 

最近,基于视觉语言预训练(VLP)的新兴研究方向一直在升级 OD 模型以解决更具挑战性的开放词汇设置,在这个设置中检测器可以通过零/少样本适应泛化到新的视觉概念。一些基于 VLP 的方法利用大规模 visual grounding 数据集进行预训练,一些工作将类别不可知区域建议网络(RPN)与零样本图像文本分类器相结合,分别用于定位和分类。这些方法都促进了开放词汇下目标检测的发展。

 

与以往基于 VLP 的方法利用一个大型视觉语言语料库进行预训练不同,本文探索了一种 持续学习 的方法,即检测器能否从许多视觉词汇量增加的 OD 数据集中逐步学习,并最终实现开放词汇检测能力。这种方法之所以吸引人,有以下几个原因:1) 它开启了终身学习的可能性 ,因为可以通过向其提供新数据集来提高检测器的零/少样本性能;2) 它具有成本效益 ,因为创建许多特定领域的小型数据集比创建单个大词汇量的大型数据集要便宜得多。

 

另一方面,来自具有不同标签的多个 OD 数据集的联合训练面临两个关键技术挑战:

 

1. 分类冲突: 每个 OD 数据集都用其标签进行注释,经典检测器将类型分类问题制定为固定的 Softmax 层。这种设计禁止从不同的标签集学习或动态适应新任务的可能性。

 

2. 前景/背景不一致: 由于标签集不同,因此在数据集 A 中可能会将目标建议视为前景,而在数据集 B 中将其视为背景。例如,类型“猫”在数据集 A 中,但在数据集 B 中没有。本文的研究表明,这个问题极大地损害了经典检测器的多数据集性能,因为 RPN 头部被相互冲突的 ground truth 标签所混淆。

 

为了应对上述挑战,作者提出了一种新颖的基于 VLP 的目标检测框架:OmDet。作者首先制定 语言感知对象检测 ,它是 OD 任务的通用版本,即给定一个图像和一个任务(一组对象名称),检测任务中出现的对象实例。

 

其次,作者引入了一种新颖的 深度视觉语言融合网络 ,以使定位和分类都具有语言感知能力,即检测器可以根据当前任务的条件动态修改其对象定位和分类行为。

 

最后,作者开发了一种新的 多数据集训练算法 ,使 OmDet 能够从任意数量的 OD 数据集中学习,而不管它们的标签集如何,作者将预训练扩展到大量数据集,总词汇量超过 400 万个独特的文本标签。

 

所提出的方法首先在一项小规模研究中得到验证,以确认其多数据集学习能力。作者在实验中使用了四个 OD 数据集,包括 COCO、Pascal VOC、Wider Face和 Wider Pedestrian。结果表明,OmDet 不仅能够从所有数据集中学习而不会出现标签冲突,而且由于其在任务之间的知识共享,它比单个数据集检测器具有更强的性能。

 

然后作者进行了更大规模的研究以将 OmDet 扩展到非常大的词汇预训练。使用混合了 2000 万张图像和 400 万个独特文本标签的 OD 数据集进行预训练,其中包括人工标注和伪标签。得到的模型在最近提出的 ODinW 数据集上进行评估,该数据集涵盖了各个领域的 35 个不同的 OD 任务。

 

综合评估表明,与在更大数据集上预训练的 GLIP 相比,所提出的持续学习范式能够实现新的最先进的性能。此外,实验还表明,积累多个数据集以扩展到大词汇量 OD 学习是提高 OmDet 的零/少样本能力以及参数效率训练性能的有效方法。

 

这项工作的贡献有四个方面:

 

1)提出了 OmDet,一种新颖的语言感知 OD 架构和训练框架,能够有效地从任意数量的 OD 数据集中学习。

 

2)通过解决标签差异和前/背景不一致挑战来确认所提出的多数据集训练的有效性的实验。

 

3)通过同时掌握 35 个不同的下游任务,显示 OmDet 在 ODinW 数据集上的最新性能的实验。

 

4)研究结果表明,通过多数据集训练扩大视觉概念词汇量,可以有效提高模型零/少样本学习和参数效率微调。

 

 

方法

 

3.1 语言感知的对象检测定义

 

OmDet 专为任检测而设计。设 V 是 OmDet 可能检测到的大量对象类型词汇表。任务是模型应在此前向路径中检测到的 k 个对象类型的集合,其中。T 的大小可以是从 1 到 K 的动态范围,其中 K 是单个推理运行中支持的最大对象类型数。然后给定一个输入图像 x 和一个任务 T,该模型预计会检测到从 x 中出现在 T 中的所有对象。由于 T 不是固定的,理想模型可以根据任务动态调整其检测目标。

 

3.2 模型架构

 

 

遵循上述设计原则,引入了 OmDet,这是一个任务条件检测网络,可以从无限的任务组合中学习。它由视觉 Backbone、任务编码器、标签编码器和多模式检测网络组成。整体结构如上图所示。

 

视觉Backbone

 

从初始图像(具有 3 个颜色通道)开始,视觉编码器 是传统的 CNN 主干或 Vision Transformer 主干(例如 Swin Transformer)生成较低分辨率的视觉特征图。然后使用特征金字塔网络(FPN)从上到下聚合信息并输出一组视觉特征图。

 

任务编码器和标签编码器

 

任务集 是自然语言单词的集合。一个任务编码器或一个标签编码器是一个 Transformer 模型,它对没有顺序信息的任务集 T 进行编码,并输出一组上下文词嵌入,即 和 , 其中 d 是上下文词嵌入维度大小。

 

多模态检测网络

 

多模式检测网络(MDN)是 OmDet 的核心组件。作者部署早期融合以尽早结合来自图像和当前任务的信息,以实现强大的性能。受到 Sparse-RCNN 网络设计的启发,作者开发了一种基于迭代查询的融合机制。

 

让是一组固定的可学习建议特征。它是一组高维(例如,d=256)潜在特征,通过结合来自视觉 backbone 的信息和来自任务编码器的上下文任务嵌入,捕获潜在实例的丰富信息。此外,是一组可学习的建议框,它们一对一地分配给每个建议特征。然后给定 FPN 输出和任务/标签编码器输出,初始 MDN 操作如下:

 

 

MDN 可以堆叠以迭代细化其输出,与 Sparse-RCNN 相同,关键区别在于 T 在动态卷积层之前与建议特征融合,并且 T 也在 MDN 块的每次运行时迭代更新。这使网络能够学习联合调整任务嵌入和建议嵌入,并根据给定任务调整对象定位和对象分类头。

 

3.3 模型训练

 

预测损失

 

鉴于上述网络,OmDet 还在固定大小的分类和框坐标预测集上使用集合预测损失。基于集合的损失使用匈牙利算法在预测和对象之间产生最佳二分匹配。匹配成本定义如下:

 

 

这里是预测分类和 ground truth 类别标签的 focal 损失,和分别是归一化中心坐标与预测框和 ground truth 框的高度和宽度之间的 L1 损失和广义 IoU 损失。和是每个分量的系数。训练损失与匹配成本相同,只是仅在匹配对上执行。最终损失是由训练 batch 内的对象数量归一化的所有对的总和。

 

任务抽样策略

 

为了在训练时模拟极端的多任务设置,并强制模型将其输出限制在给定任务上,在训练期间使用了一种新的任务采样策略。

 

1. 假设给定任务的最大尺寸为 K,对于 mini-batch 中来自数据集 d 的图像 x,首先对 k∈[1, K] 进行均匀分布的采样。

 

2. 设 x 中唯一对象类型的数量为 m,如果 m>k,则仅保留 k 个对象类型的随机子集,并删除此 mini-batch 的额外标注。如果 m<k,则从数据集 d 的词汇表 V 中随机选择额外的负对象类型。如果数据 d 的词汇量小于 K,则缺失负数的提醒用掩码 0 填充。

 

3. 使用上述采样任务和 ground truth 标注训练模型。

 

使用上述方法,每个 mini-batch 中的每个图像都会有一组不同的任务可供学习。当从包含 1200 种唯一对象类型的大词汇量对象检测数据集(例如 LVIS)中学习时,任务大小 k 的唯一组合是。如果 k=20,那幺它会产生 1.34E43 种可能性,这是一个相当大的数字。实验表明,所提出的训练策略很好地达到了目的,并产生了执行任务条件对象检测的模型。

 

3.4 实现细节

 

对于文本嵌入,作者没有使用提示(prompt)。这是因为初步研究表明使用提示模板与不使用提示模板之间没有重大区别。此外,初步研究还表明,使用单模态语言模型(例如 BERT 和 RoBERTa)与多模态语言模型(例如 CLIP)之间没有显着差异 。作者怀疑这是因为对象检测不涉及复杂的语言理解。因此,整个研究都使用了 CLIP-B/16 文本编码器。

 

对于任务和标签编码器,两个独立的 Transformer 用于进一步编码文本嵌入,为任务中的每个元素创建上下文集嵌入。研究表明,集合编码能够提高 OmDet 的性能。

 

对于视觉 Backbone,实验中使用了 Swin Transformers 和 ConvNeXt。标准  FPN 用于从视觉编码器中提取四级特征图。两个主干都在 ImageNet 21K 数据上进行了预训练。

 

最后,MDN 网络利用 MHSA 来融合任务和视觉特征。作者使用 ROIAlignV2 作为 ROI Pooler 从主干中提取区域特征。6 个连续的 MDN 块级联以创建最终的边界框和分类预测。

 

 

实验

 

 

作者在四个数据集上进行了实验,COCO 是具有 118K 图像的较大数据,而其他 3 个数据集几乎小 10 倍。此外,COCO 数据集具有多种类别,涵盖 Pascal VOC 和 WIDER Pedestrian 中的类。WIDER Face 是唯一具有“人脸”类的数据集。因此,这四个数据集是 MDOD 研究的一个很好的测试平台。

 

 

在上表中,作者将本文方法和 baseline 方法进行了对比。从结果中可以看出,OmDet 性能更强,而 OmDet-Shallow 仅部分解决了 MDOD 挑战。与 OmDet-Single 相比,OmDet-Shallow 在 PASCAL VOC、WIDER FACE 和 WIDER Pedestrian 上取得了良好的性能。这是合理的,因为 OmDet-Shallow 解决了分类冲突挑战并实现了对象标签嵌入之间的语义共享。

 

 

作者在上图中的 COCO 图像上可视化 OmDet-Shallow 和 OmDet 的输出,这证实了我们的假设 OmDet-Shallow 检测许多不在 Pascal VOC 和 Wider Face/Pedestrian 中的对象作为背景。可以发现,尽管由于与 WIDER Pedestrian 重叠,OmDet-Shallow 正确地检测到了最后图像中的所有行人,但它错过了对象“Skis”。与 OmDetShallow 不同,OmDet 受益于深度融合和任务条件对象检测,并正确检测所有图像。

 

 

上表展示了ODinW 中 35 个下游任务的零样本、全模型、仅头部和 prompt fine-tuning 的平均 AP。OmDet 在全模型微调下优于 GLIP-Tiny ,全模型微调是使用可调文本编码器在更大的数据集上进行预训练的。

 

此外,添加更多预训练数据集可显着改善零样本设置。具体来说,添加 object365 数据集可以在平均 mAP 上获得 3.7 个点的绝对增益。令人惊讶的是,将 LVIS 添加到训练前数据会使性能降低 1.1 个百分点。作者推测性能下降是由于 LVIS 数据集的嘈杂和不完整的标注。

 

 

ODinW 中的 35 个下游任务具有不同的训练数据大小,从只有 17 个训练图像到超过 32K 个训练图像。因此,作者将 35 个任务分为三类: 1)Fewshot(8 个任务):训练图像少于 200 个的任务;2)Medium-shot(13 个任务):训练数据在 200 到 2000 个之间的任务;3)Big -shot(14 个任务):具有超过 2000 个训练图像的任务。

 

上表总结了全模型微调的结果。结果表明,大规模多数据集预训练对于域内训练数据有限的少样本和中等样本任务特别有效。特别是对于少样本数据集,OmDet 以 6.41 的绝对 AP 点胜过 OmDet-C。而对于Big -shot任务,预训练的优势就变得不那幺明显了。

 

 

上图展示了预训练中使用的词汇量大小与 ODinW 上仅使用 head-only 和 prompt tuning 的 AP 分数。

 

随着预训练期间包含更多视觉概念,可以观察到明显的上升曲线。这表明:

 

(1)多数据集预训练能够积累大量的视觉概念,这导致提取通用视觉特征的更强大的主干(由仅头部 FT 结果支持)。

 

(2)语言的多样性对于成功的 prompt tuning 至关重要,这样整个模型的输出只能由任务嵌入来控制(不到整个模型参数的 1%)。

 

 

最后,上图显示了语言感知 OD 的定性可视化。通过输入不同的任务,例如[三明治,烟草管] 与 [打火机,瓶子],OmDet 可以根据给定任务动态调整其对象定位和分类。

 

 

总结

 

这项工作提出通过大量 OD 数据集的持续预训练来推进零/少样本 OD。OmDet 是为了解决多数据集联合训练过程中的分类冲突和前/背景不一致问题而提出的。所提出的深度融合机制多模态检测网络能够检测以自由形式自然语言格式的用户任务输入为条件的指定对象。

 

实验表明,通过多数据集预训练扩大词汇量可有效提高零/少样本学习和参数效率微调。OmDet 在一系列不同的下游任务上实现了最先进的性能。未来可通过有效的任务采样策略改进 OmDet,利用更多样化的多模态数据集,并探索不同的语言和视觉 backbone,冻结特定参数或完全更新它们。

 

关于作者

 

 

赵天成博士,卡耐基梅隆大学(CMU)计算机博士,国际顶会多次最佳论文获奖者。2018微软研究院年度杰出博士获奖者之一,端到端对话系统研究领军者,UCLA电子工程系2014级全系第一毕业生,浙江大学滨江研究院Om人工智能研究中心主任、特聘研究员。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注