在深度学习领域,目标检测算法用于识别和定位图像中的特定对象,是计算机视觉中至关重要的任务。然而,传统的目标检测算法只能在有限类目的数据集上进行推理,这是因为训练集中的类别是有限的,推理时也只能识别这些有限的类目,限制了其应用范围。因此,我们需要使用开放集(Open-Set)检测技术,开放集检测可以在推理过程中识别训练时未被见过的类目。为了丰富交互方式,我们还将采用视觉定位(Visual Grounding)检测,将图像和自然语言描述一起作为输入。
**YOLO-World (CVPR 2024)、Grounding DINO (ECCV 2024)**是SOTA的开放集目标检测算法,**YOLO11 (Ultralytics 2024)**则是今年9月最新开源的闭集YOLO检测算法。在这篇文章中,我们将对这三种SOTA算法的原理进行解析,并进行相关实践。
相关基础知识

图像来源于YOLO-World论文
视觉定位(Visual Grounding)是指将图像和自然语言描述结合起来,通过文本信息在图像中定位特定对象或区域的一种技术。
其特点在于能够通过自然语言的描述,精确地在图像中找到对应的对象或区域,增强了人机交互的直观性和灵活性。
视觉定位的意义在于扩展了传统目标检测的应用场景,使得机器能够理解和处理更复杂的多模态信息。
在与非视觉定位的目标检测相比,视觉定位不仅依赖于图像特征,还结合了文本信息,使得模型可以处理更加多样化和细粒度的任务,例如根据描述找到图像中的某个特定对象,而不仅仅是识别预定义的类别。
**开放集目标检测(Open-Set Object Detection)是指在推理过程中能够识别未在训练集中出现过的新类目的技术。**其特点在于模型不仅能够检测已知类别的对象,还能推断出未知类别的对象,这显著扩展了模型的应用范围和灵活性。开放集目标检测的意义在于能够更好地适应现实世界中无穷无尽的新对象和场景,提升了机器感知和理解的能力。
传统的目标检测方法存在局限性,因为它们只能处理固定词汇的对象检测,例如 COCO 数据集中包含的80个类别。
目前的一些视觉-语言模型试图通过从语言编码器(例如 BERT)中蒸馏词汇知识来解决开放词汇检测问题。然而,这些基于蒸馏的方法由于训练数据的稀缺和词汇多样性的有限而受到很大限制,例如 OV-COCO 数据集中仅包含48个基础类别。
最近的一些方法重新定义了目标检测训练为区域级别的视觉-语言预训练,并大规模训练开放词汇对象检测器。然而,这些方法在真实世界场景中的检测仍然面临两个方面的挑战:(1) 计算负担沉重,(2) 在边缘设备上部署复杂。
相关检测算法介绍
Grounding DINO将基于Transformer的检测器DINO与基于grounding数据的预训练相结合,用于处理开放集目标检测任务,可以通过文本输入(如类别名称或文本描述)来检测任意对象。
Grounding DINO根据输入的的图像-文本,输出多个边界框和名词短语对。例如,如下图所示,模型从输入图像中定位出一只猫和一张桌子,并从输入文本中提取出“猫”和“桌子”作为相应的标签。目标检测任务和引用表达理解(REC)任务都可以与这一流程对齐。按照GLIP的方法,将所有类别名称连接成输入文本用于目标检测任务。REC需要为每个文本输入对应一个边界框。我们使用得分最高的输出边界框作为REC任务的输出。
Grounding DINO模型包含一个用于图像特征提取的图像骨干网络,一个用于文本特征提取的文本骨干网络,一个用于图像和文本特征融合的特征增强器,一个用于查询初始化的语言引导查询选择模块,以及一个用于框细化的跨模态解码器。