摘要
面向任务的目标检测旨在找到适合执行特定任务的物体。 作为一项具有挑战性的任务,它需要在模糊语义下同时进行视觉数据处理和推理。 最近的解决方案主要是多合一模型。 然而,目标检测主干在没有文本监督的情况下进行了预训练。 因此,为了将任务要求纳入其中,他们复杂的模型在高度不平衡和稀缺的数据集上进行了广泛的学习,导致性能上限,训练繁琐,泛化性差。 相反,我们提出了 TaskCLIP,这是一种更自然的两阶段设计,由一般目标检测和任务推理对象选择组成。 特别是对于后者,我们采用最近取得成功的大型视觉-语言模型 (VLM) 作为我们的主干,它提供了丰富的语义知识和用于图像和文本的统一嵌入空间。 然而,VLM 的直接应用会导致质量不佳,因为对象图像的嵌入与其视觉属性(主要是形容词短语)之间存在错位。 为此,我们在预训练的 VLM 之后设计了一个基于 transformer 的对齐器,以重新校准两个嵌入。 最后,我们采用可训练的评分函数来后处理 VLM 匹配结果以进行对象选择。 实验结果表明,我们的 TaskCLIP 在准确性 (+6.2%) 和效率方面均优于基于 DETR 的模型 TOIST。
关键词:
视觉语言模型 任务导向目标检测
1引言
目标检测算法在 COCO [29] 和 Pascal VOC [9] 等数据集上取得了巨大进展,它们能够识别场景中预定义类别的目标实例 [13, 17, 49]。 然而,在实际应用中,人工智能被期望处理更具体的“任务导向目标检测”。 为此,研究人员提出了一个名为 COCO-Tasks [41] 的新基准,该基准比传统目标检测任务更具挑战性。 图 1(a) 强调了一个简单但实用的任务绝不局限于封闭且预定义的目标集(或由名词组成的文本提示)。 输入以可供性(例如,“舒适地坐下”)的形式出现,将目标选择条件化为它们完成任务的能力。 特别是,这对先前的目标检测算法提出了重大挑战。 可供性作为提示本质上是模棱两可的,例如,最合适的物体范围从“床”到看似无关的“厕所”,针对相同的任务“舒适地坐下”,具体取决于不同的场景。
当前的解决方案采用两阶段或单阶段设计来应对这一挑战。 前者从常规目标检测开始,然后进行任务驱动的目标选择,而后者旨在用一个模型完成这两个子任务。 [41, 16] 中提出的两阶段设计在传统检测器提取的目标之上应用了目标偏好的排序。 更近期的单阶段设计 [26] 主要依赖于高级目标检测模型,例如基于 transformer 的 DETR [3] 作为主干网络。 工作 [44] 进一步利用大型语言模型 (LLM) 来生成中间视觉可供性特征,这弥合了主要为动词短语的可供性和主要为名词的目标类型之间的语义差距。
然而,尽管一体化模型听起来很有吸引力,但其背后的成本和困难不容忽视。 正如先前解决方案 [3] 所指出的那样,Transformer 被认为是数据饥渴的,而获得诸如 COCO-Tasks 之类的数据集仍然极其困难。 如图 1(b) 所示,该数据集还存在严重的类别不平衡问题,因为只有少数对象与所关注的任务相关,而其余对象被标记为负样本。 此外,所有先前工作都需要将特定于任务的信息显式输入到目标检测或选择模型中 [41, 26] ,从根本上限制了它们对数据集域迁移甚至对 affordance 提示的轻微变化的鲁棒性。 例如,将任务名称更改为同义词会导致模型性能显著下降,即使任务的底层特征保持不变。 这就引出了一个问题:考虑到该领域数据有限,是否从头开始针对特定任务训练这些专门的单阶段模型是最佳选择。 这也提出了另一个重要问题:我们如何设计更通用的计算机视觉模型,使其能够处理各种任务?
图 1: (a) 面向任务的目标检测的歧义。 (b) 数据稀疏性和不平衡:合适的对象只占总训练样本的一小部分。 © 直接将 VLM 用于对象选择时的嵌入错位。
我们对解决方案的追求借鉴了人类的推理过程,这种过程天生是多阶段的。 首先,他们识别潜在的对象实例并提取它们的视觉特征。 在此过程中,人类解析任务,辨别候选对象所需的视觉或功能属性,这些属性对于完成任务至关重要。 随后,他们根据这些与任务相关的属性评估实例,选择最符合任务要求的实例。 关键的是,人类并不仅仅寻求直接匹配任务的实例;相反,他们进行了一步一步的推理过程,利用合适对象的共同特征作为线索。 这在精神上类似于现有的两阶段解决方案。 但是,它们的性能不佳,主要是因为第二阶段的瓶颈,即物体视觉特征与任务可行性语义的关联。
在本文中,我们提出了 TaskCLIP,这是一种面向任务的两阶段目标检测算法,它以近期大规模视觉语言模型 (VLMs) 在语言监督视觉任务的零样本迁移方面的成功为动力,一次性解决了先前算法中的挑战。 在第一阶段,我们对每个场景执行通用目标检测 [12, 39]。 同时,我们通过 LLMs [2, 36] 将任务可行性解析为几个形容词,这些形容词描述了合适对象的常见属性。 在我们的第二阶段,像 CLIP [38] 和 Flamingo [1] 这样的 VLMs 充当预训练的骨干,它们匹配图像和文本嵌入。 然后,生成的亲和矩阵指导选择合适的对象。 它们通过构建一个统一的高质量嵌入空间来实现视觉和文本特征的对齐,从而解决了当前两阶段设计中的瓶颈。 更重要的是,我们避免了全方位模型的复杂定制、昂贵的训练和较差的泛化能力,其中所有参数都是从头开始学习并专门针对 COCO-Tasks 中的少量任务进行调整,训练样本有限。 鉴于 TaskCLIP 通过选择满足视觉特征的项目来解决任务,我们的模型可以用于训练组中未包含的其他任务,前提是它们共享相同的基本属性。
但是,将像 CLIP 这样的 VLMs 整合到我们的两阶段设计中并非易事。 标准的多模态 VLMs 虽然擅长对齐,但缺乏选择最合适对象的推理能力。 一方面,这些模型主要集中于将名词与视觉嵌入对齐,而抽象概念,例如 带有形容词的短语,则没有得到很好的支持(如图 1© 所示)。 另一方面,大型 VLMs 在包含名词以外对象的丰富而多样化的自然语言注释上进行训练。 为了应对这种情况,我们提出了一种重新对齐机制,该机制可以无缝地融入端到端模型训练。 它恢复了多模态 VLM 在共享嵌入空间中对形容词进行编码并将其准确地与相关的视觉嵌入相关联的能力。
简而言之,我们认为两阶段模型确实是一种更自然、更可泛化、更高效、更有效的設計。 我们的贡献总结如下:
-
我们没有从零开始训练多模态模型,而是提出了第一个基于 VLM 的两阶段面向任务的目标检测框架,利用视觉语言预训练中的大量语义信息及其支持校准的联合视觉文本嵌入空间的能力。
-
我们设计了一个基于 Transformer 的对齐模块,以重新校准来自 VLM 的视觉和文本嵌入,确保对象视觉特征与来自对象共同属性的形容词短语之间良好匹配。
-
为了进一步减轻由不平衡训练样本造成的高假阴性率,我们专门设计了一种按组选择机制。 它通过充分利用来自通用目标检测器的可用知识,确保选择所有最合适对象的实例。
-
我们的框架提供了自然的基于任务的推理和高质量的目标检测,同时还展示了比以前的工作更高的训练效率。 与早期的基于 DETR 的模型相比,TaskCLIP 在 COCO-Tasks 数据集上获得了类似的准确率,但训练效率显着提高,泛化性更强。
2相关工作
图 2: (a) CoTDet [44] 工作流程。 (二)。 TaskCLIP(本工作)工作流程。
2.1面向任务的目标检测
这侧重于识别图像中完成特定任务(例如,倒酒)的最合适的对象。 它需要能够根据对任务和视觉场景的深入理解来推理和选择对象。 因此,面向任务的目标检测比简单的视觉目标检测 [8, 7, 40, 30] 和场景理解 [6, 48, 42, 5, 20, 21] 复杂得多。 第一个任务驱动目标检测数据集名为 COCO-Tasks,由一项研究 [41] 基于 MS COCO 2014 [29] 提出。 它还引入了一个两阶段框架作为基准,该框架最初使用现有的目标检测网络来识别潜在的合适项目,然后使用门控图神经网络 (GGNN) [27] 对全局对象间关系进行建模,以进行对象偏好排名。 随后的工作,TOIST 和 CoTDet [26, 44],基于 DETR [52, 24, 3],可以被视为单阶段框架。 与 GGNN 相比,DETR 基模型中的自注意力模块在整合文本和视觉信息方面更为有效。 然而,由于复杂的模型结构和大量参数,训练基于 DETR 的模型以进行面向任务的目标检测面临着多重挑战。 相反,我们的 TaskCLIP 采用相关的视觉语言,并提供了一种更有效的替代方案。 另一个问题是,虽然以前基于 DETR 的模型包括文本模态,但它们没有考虑到模型的泛化能力。 以 CoTDet [44] 为例,如图 2。(a) 所示。 对于每个任务,在使用 LLM (ChatGPT) 和文本编码器 (RoBERTa [31]) 生成特定任务的视觉 affordance 和视觉特征嵌入后,模型需要对这些嵌入向量进行微调。 任务名称的改变会导致检测精度显著下降。
2.2视觉语言模型
近年来,将预训练的 VLM 扩展到支持新的应用已经证明了它们的成功。 在最成功的努力中,Flamingo [1]、OpenAI CLIP [38] 和 OpenCLIP [4] 在处理图像文本匹配方面表现出令人印象深刻的性能,因为它们拥有深层的语义知识和对跨越两种模态的内容的全面理解。 这些模型已成功应用于下游应用,例如目标检测 [43]、动作识别 [45]、图像字幕 [35]、密集预测 [51]、疾病预后 [34] 和语义分割 [28, 46, 25]。 然而,现有的基于 CLIP 的算法主要集中在将图像块与文本中的名词进行匹配。 因此,需要额外的校准来促进图像块和作为形容词短语的视觉属性之间的匹配。
3方法
图 3: TaskCLIP 模型架构:(a) 设计的总体框架。 (b) 对齐模块的架构。 © 评分函数的详细设计
3.1任务视觉属性准备
表 1: TaskCLIP LLM 提示。
(a) Description words bank preparation | ||||
| ||||
(b) Synonym task generation | ||||
| ||||
(c) Visual features selection | ||||
|
为了弥合任务能力和合适的物体类别之间的语义和推理差距,我们利用 LLM 生成与任务相关的视觉通用属性,如图 2(b) 所示。 在表 1 中。 (a) 中,我们详细说明了用于指导 LLM 为每个任务生成适当的视觉属性的提示。 为了说明这个过程,我们以任务 10 (倒酒) 作为示例。 对于任务 10,该过程如下展开:
(1). 我们首先通过向 LLM 查询以下内容来启动该流程:“ 请列出解决 倒酒 任务的项目? ” LLM 生成的响应包含几个现实生活中的物品,例如“酒杯”,“杯子”,“高脚杯”等。
(2)。 基于此初始响应,我们继续进行第二个提示:“ 总结[酒杯,杯子,高脚杯,…]的视觉特征,用于盛放葡萄酒。 ” 它的设计目的是引导 LLM 在“盛放葡萄酒”任务的背景下,具体总结所提及物品的视觉特征。
(3)。 最终,我们从 LLM 响应中获得了可以执行此任务的物体的通用视觉属性,例如“窄边框”和“透明度”。 总共,我们生成了𝐍𝐰𝐨𝐫𝐝=20个通用属性。
(4)。 我们将这些生成的通用属性保存在描述词库中。 如图 2所示,当出现新任务时,LLM 将从描述词库中选择最合适的属性。 由于 TaskCLIP 是通过将项目图像与视觉特征描述词对齐来训练的,即使任务名称发生变化,只要新任务的内在属性可以用词库中的词语来表达,我们的模型仍然有效。 因此,与之前的工作相比,TaskCLIP 表现出更强的任务泛化能力。
3.2文本和视觉嵌入向量生成
同时,我们为场景中的所有物体生成Nbbx个边界框,如图 3(a)所示。 在训练过程中,我们直接使用 ground truth 边界框,而对于推理,我们使用预训练的目标检测网络(例如 Faster R-CNN [12] 或 YOLOv8 [23])。 注意,在我们框架的基本设置中,在推理期间,目标检测网络只负责为图像中的所有项目生成边界框。 我们将在第 3.6 节中介绍一种分组机制,以进一步利用目标分类信息并指导我们模型的最终决策。 基于边界框的协调,我们提取 Nbbox 图像块。 在生成 Nword 个通用视觉属性和 Nbbox 个图像块后,我们将它们传递到预训练的 VLM(例如 OpenAI CLIP [38])中,以生成文本和图像嵌入,如图 3(a) 所示。 这里我们使用 Lword 和 Lbbox 来表示视觉特征词和图像块的列表。 这些列表的长度分别为 Nword 和 Nbbox。 计算过程总结如下:
假设嵌入维度为 D,生成的视觉嵌入矩阵和文本嵌入矩阵的形状分别为 Nbbox×D 和 Nword×D。 为了更好地将新知识引入视觉语言模型,我们还在 CLIP 模型之后添加了视觉和文本适配器 [11]。
这里 W1v、W2v 和 W1t、W2t 是视觉和文本适配器网络中瓶颈线性层的权重。 α 和 β 是超参数,这里我们选择 0.3。
3.3全局注意力
为了更清楚地了解每个边界框项目在整个场景中的作用,我们首先使用 CLIP 视觉编码器对输入图像进行编码。 随后,我们使用边界框列表的嵌入 (EV0) 作为目标,并使用图像嵌入作为记忆。 在交叉注意力模块之后,我们获得了具有全局信息的边界框嵌入。
3.4视觉和文本嵌入空间重新校准
尽管 OpenAI CLIP 及其衍生作品 [38, 50] 在匹配文本与图像块方面取得了较高的准确率,但它们专注于 名词(例如“酒杯”和“杯子”),而不是 视觉属性(例如“透明度”和“窄边”)。 为了将图像块与特定任务的视觉属性词匹配,重新校准视觉和文本的嵌入空间至关重要。 因此,我们在预训练的 VLM 旁边设计了一个基于 Transformer 的 对齐器 模块。 在图 3(a) 中,我们将视觉嵌入矩阵和文本嵌入矩阵传递到多层对齐器模块,以生成新的重新校准的视觉和文本嵌入矩阵,分别为 EVm 和 ETm。 这里 m 表示对齐器模块中的层数。 在图 3(b) 中,我们展示了对齐器模块每一层的网络结构。 对齐器模块有多层,每一层都有两个自注意力模块、一个交叉注意力模块和一个前馈网络层。 对于 ith 对齐器模块层,输入 (EVi 和 ETi) 是来自上一对齐器模块层的视觉和文本嵌入矩阵。 在每一层,视觉和文本嵌入矩阵都将首先通过一个自注意力层。 自注意力层的目的是学习最优的affordance,可以用来解决这个任务。 例如,如图 1(a) 场景 5 所示,为了解决 舒适地坐着 的任务,我们更愿意选择椅子而不是床。 在自注意力层之后,我们使用交叉注意力层来重新校准文本嵌入和视觉嵌入。 对齐器网络的最后一部分是一个全连接的前馈层,文本嵌入矩阵将通过该层。 与之前试图微调预训练的视觉语言模型 [10, 15] 的工作类似,在我们的对齐器模块中,我们专注于文本嵌入向量的转换。 因此,我们只将文本嵌入矩阵通过最后一个前馈层。
3.5分数函数和训练
经过 m 个 Transformer 对齐器层的处理,我们获得了重新校准的图像视觉嵌入 (EVm) 和文本嵌入 (ETm)。 在 图 3(a) 中,我们在 ETm 和 ETm 之间执行矩阵到矩阵的乘法,以生成预测的亲和矩阵 Ap。 计算可以概括为:
亲和矩阵 Ap 的形状为 Nbbx×Nword。 在传统的 CLIP 中,为了执行零样本图像分类,我们将直接对亲和矩阵应用 softmax 函数以获得预测标签。 在面向任务的目标检测中,由于我们需要找到最优的项目,因此需要进一步处理。 关于 Ap[i][j] 的含义,它表示边界框 i 具有视觉属性 j 的得分。 为了做出最终决定,选择可以被视为理想任务可供性的最优项目,我们将亲和矩阵传递到分数函数中。 在图 3© 中,我们展示了分数函数模型架构。 它将首先将每个边界框的视觉特征得分向量编码为更高维的向量。 在图 3© 中,我们将编码后的新矩阵表示为 Hp,其维度为 Nbbox×D′。 此编码过程为:
然后我们将 Hp 传递到自注意力层。 在这里,我们加入了自注意力层,因为我们的目标是学习不同项目的相对重要性,使我们能够为这项任务选择最合适的项目。 在自注意力层之后,我们使用多个完全连接层进行回归,最终产生得分向量,(S→p)。 S→p1×Nbbox 而 S→p 的值范围从 0 到 1。 为了进行推理,我们将设置一个阈值 (δ),并且我们有:
这里 P[i] 是对边界框 i 的项目是否是此任务的理想可供性的预测。 在训练期间,我们将有真实分值向量 S→g 。 对于 S→gith 元素,如果它可以解决该任务,则其值为 1,否则其值为 0。 反向传播期间的损失 L 为:
这里 MSELoss 是均方误差损失函数 [19] 。 在获得损失后,我们执行反向传播并对 CLIP 适配器、全局注意力层、Transformer 对齐模块和评分函数进行端到端训练,如图 3(a) 所示。 与基于 DETR 的工作的端到端训练风格不同,我们的框架不会触及目标检测网络和视觉语言模型。 重用视觉语言预训练知识使我们的框架与以前的工作相比具有更高的训练效率,如第 4 节所示。
表 2: 原始 COCO-Tasks 数据集任务名称和来自 ChatGPT 的对应同义词任务名称。 同义词任务名称在括号中。
task1: step on (trend on) | task2: sit comfortably (lounge easily) | task3: place flowers (arrange blooms) | ||
task4: get potatoes out of fire (retrieve tubers from heat) | task5: water plant (irrigate vegetation) | task6: get lemon out of tea (remove citrus from brew) | ||
task7: dig hole (excavate pit) | task 8: open bottle of beer (uncap ale) | task9: open parcel (unwrap package) | ||
task10: serve wine (serve a cocktail) | task11: pour sugar (dispense sweetener) | task12: smear butter (spread cream) | ||
task13: extinguish fire (douse flames) | task 14: pound carpet (beat rug) |
3.6按组选择机制
当使用现有的目标检测网络(例如 Faster R-CNN)时,我们不仅获得了边界框 (bbox) 信息,还获得了 bbox COCO 类。 为了帮助我们找到所有合适的可供性,我们在此提出按组选择机制。 假设在一张图像中,我们找到了总共 N 个边界框。 在得分函数之后,我们发现 ith 边界框的回归得分高于此任务的阈值。 考虑到边界框的质量,我们可能会遗漏一些与 ith 边界框属于相同 COCO 类别的项目。 在大多数情况下,相同类别的项目显示出很高的可能性成为理想的任务可供性。 为了弥补这种假阴性缺陷,我们的按分组选择机制将检查所有其他边界框,并查看以下情况是否满足:
这里 P 是最终预测,用于查看边界框 i 是否是理想的可供性。 P 的形状是 1×N。 class 和 conf 也是两个 1×N 向量,分别代表边界框 COCO 类别类型和类别置信度。 β 是一个超参数,用于识别前端检测网络对边界框分类结果的置信度是否足够。 在我们的实验中,我们将其设置为 0.8。 等式 9 的含义是,假设我们发现 jth 边界框与 ith 边界框具有相同的 COCO 类别,并且置信度很高,我们也将 jth 边界框项目设置为理想的可供性。 正如我们在图 1 (b) 中所示,由于类别 1 项目的样本远少于类别 0,因此我们的原始模型具有较高的真阳性和假阴性率。 因此,按分组选择机制将减少假阴性预测。
4实验
4.1数据集和指标
数据集 我们对 COCO-Tasks 数据集[41]进行了实验,该数据集源于 MS COCO2014[29]。 COCO-Tasks 数据集与 MS COCO2014 的主要区别在于每个项目的标注方式。 在 COCO-Tasks 中,目标是检测最适合用于解决特定任务的项目。 COCO-Tasks 数据集包含总共 14 个任务,每个任务包含 3600 张训练图像和 900 张测试图像。 在每张图像中,边界框的标签可以分类为类别 0(非理想可供性)或类别 1(理想可供性)。 重要的是要注意,同一个项目(例如,一张床)可能在不同的图像中针对同一任务(例如,舒适地坐着)被归类为相反的类别(理想可供性与非理想可供性),如图1©所示。
与任务无关的实验 为了评估模型的泛化能力,我们不仅使用了 COCO-Tasks 数据集中的 14 个原始任务,还进行了与任务无关的实验。 最初,参考表 1。 (b),对于 COCO-Tasks 数据集中的每个原始任务,我们要求 ChatGPT 生成同义任务词,如表 2所示。 例如,同义词任务 上菜酒? 是 供应鸡尾酒? . 这两个任务共享共同的可供性(如酒杯),因此在原始 COCO-Tasks 数据集上训练的有效泛化模型应该能够处理新的任务。
指标 我们使用 AP@0.5 指标来进行面向任务的检测。 然后,我们通过对所有 14 个任务的 AP@0.5 准确率进行平均来计算 mAP@0.5。 为了与之前的研究保持一致[41, 26],我们只报告与合适可供性(类别 1)相关的预测的准确率结果。
表 3: 实验设置和模型比较。
| Algorithm | Platform | Training epoch |
Vision-Language |
Pretraining |
|
# Trainable |
Parameters |
|
| — | — | — | — | — |
| DETR-basedmethods [44, 26] | ×8 A100 GPUs | 30 epochs | ✗ | Large |
| TaskCLIP | ×1 RTX4090 GPU | 20 epochs | ✓ | Small |
4.2实现细节
对于目标检测网络,我们对 Faster R-CNN [40] 和 YOLOv8 [22] 进行了实验。 Faster R-CNN 的实现利用了 Detectron2 [47] 中的 X101-FPN 配置。 至于 YOLOv8,我们采用了 YOLOv8x 配置。 关于大型视觉语言模型 (VLM),我们采用了 OpenCLIP [4, 38]。 具体而言,视觉 Transformer 编码器配置为 ViT/H,文本编码器为 RoBERTa [31]。 我们使用 PyTorch [37] 实现 Transformer 对齐模块和评分函数。 该模型训练了 20 个 epoch,初始学习率为 1e-6,采用 AdamW [32] 作为优化器。 我们使用 OpenAI ChatGPT [33] 为每个任务生成了视觉特征属性。
在表 3 中,我们展示了 TaskCLIP 和以前基于 DETR 的模型(包括 TOIST 和 CotDet [26, 44])的实验设置的高级比较。 与基于 Transformer 的方法相比,我们的训练模型要小得多,因为我们有效地利用了预训练的大型 VLM。 与从头开始训练不同,我们的主要训练重点在于重新校准视觉和文本嵌入空间。 在没有采用任何额外的训练辅助方法(如知识蒸馏 [14])的情况下,我们的整个框架可以在 单个 NVIDIA RTX 4090 GPU 上进行训练和部署。
表 4: 与先前方法的比较。 括号中的值表示来自与任务无关的实验的结果。
Task (AP@0.5(%)) | GGNN [41] | TOIST [26] | TOIST† [26] | CoTDet [44] | TaskCLIP | TaskCLIP* |
---|---|---|---|---|---|---|
task1 | 36.6 (-) | 44.0 (-) | 45.8 (-) | 58.9 (56.2) | 48.4 (47.6) | 52.1 (50.9) |
task2 | 29.8 (-) | 39.5 (-) | 40.0 (-) | 55.0 (53.1) | 44.6 (44.1) | 47.4 (46.6) |
task3 | 40.5 (-) | 46.7 (-) | 49.4 (-) | 51.2 (48.2) | 52.4 (52.4) | 54.1 (54.1) |
task4 | 37.6 (-) | 43.1 (-) | 49.6 (-) | 68.5 (57.3) | 60.6 (60.6) | 62.5 (62.5) |
task5 | 41.0 (-) | 53.6 (-) | 53.4 (-) | 60.5 (54.9) | 54.4 (54.4) | 56.9 (56.9) |
task6 | 17.2 (-) | 23.5 (-) | 26.9 (-) | 47.7 (35.0) | 31.5 (31.5) | 34.0 (34.0) |
task7 | 43.6 (-) | 52.8 (-) | 58.3 (-) | 76.9 (50.5) | 67.7 (67.7) | 69.9 (69.9) |
task8 | 17.9 (-) | 21.3 (-) | 22.6 (-) | 40.7 (3.6) | 18.6 (18.6) | 19.2 (19.2) |
task9 | 21.0 (-) | 23.0 (-) | 32.5 (-) | 47.4 (20.1) | 39.4 (39.4) | 41.4 (41.4) |
task10 | 40.6 (-) | 46.3 (-) | 50.0 (-) | 66.5 (58.5) | 55.7 (55.7) | 58.1 (58.1) |
task11 | 22.3 (-) | 33.1 (-) | 35.5 (-) | 41.9 (30.6) | 38.1 (38.1) | 39.8 (39.8) |
task12 | 28.4 (-) | 41.7 (-) | 43.7 (-) | 48.3 (47.3) | 47.6 (47.6) | 49.8 (49.8) |
task13 | 39.1 (-) | 48.1 (-) | 52.8 (-) | 61.7 (9.4) | 46.3 (46.3) | 48.7 (48.7) |
task14 | 40.7 (-) | 52.9 (-) | 56.2 (-) | 71.4 (58.4) | 67.4 (67.4) | 69.8 (69.8) |
mean (mAP@0.5(%)) | 32.6 (-) | 41.3 (-) | 44.1 (-) | 56.9 (40.9) | 48.1 (47.9) | 50.3 (50.1) |
*TOIST† represents the model with noun-pronoun distillation. | ||||||
*TaskCLIP* is our method with a select-by-grouping mechanism, where we also apply different optimized thresholds for each task. |
4.3与先前工作的比较
在表 4 中,我们展示了 TaskCLIP 在 COCO-Task 数据集上的性能与先前工作的比较。 这里我们展示了原始 COCO-Task 数据集任务结果和同义词任务结果(括号中)。 我们使用 Faster R-CNN 作为前端目标检测网络来识别每个项目的边界框 (bbox)。 OpenAI CLIP 和评分函数之间的 Transformer 对齐模块包含 8 层,每层自注意力和交叉注意力具有注意力头大小 (NHead) 为 4。 我们将每个评分函数输出的阈值设置为 0.15,作为所有任务的基线 TaskCLIP 结果。 此外,我们在表 4 中提供了 TaskCLIP 在各种优化下的性能。 在第 4.4 节中,我们将深入探讨 Transformer 对齐模块的层大小 (NLayer)、注意力头大小 (NHead) 和阈值 (δ) 对检测精度 (AP@0.5) 的影响。
在先前专注于面向任务的目标检测的工作中,TOIST 和 CoTDet 基于 DETR,而工作 [41] 采用预训练的目标检测网络作为前端。 然而,在后端,工作 [41] 使用门控图神经网络 (GGNN) [27] 来选择可能作为特定任务的理想 affordance 的对象。 鉴于 TOIST 和 GGNN 都需要人工参与来为特定任务准备词语,它们 以一种不自然的方式依赖于任务,使其难以应用于其他任务。 因此,对于与任务无关的评估,我们只考虑 CoTDet 和 TaskCLIP。 为了评估 CoTDet 在同义词任务上的性能,我们遵守其 ChatGPT 提示并使用 RoBERTa 生成新的项目和视觉特征文本嵌入。 对于 TaskCLIP,我们参考 表 1。 ©, 请求 ChatGPT 从训练阶段维护的视觉描述词库中选择视觉描述词。 然后直接使用这些新选择的描述词来使 TaskCLIP 执行目标检测。
如 表 4 所示,TaskCLIP 在原始 COCO-Tasks 数据集上超过了 GGNN 和 TOIST。 尽管 TaskCLIP 在原始 COCO-Tasks 数据集上的准确率低于 CoTDet,但它在新的同义词数据集上比 CoTDet 高出 9% 以上。 这是因为 CoTDet 的训练涉及描述词和 affordance 文本嵌入向量的直接训练。 因此,当出现新任务且 ChatGPT 改变其响应时,CoTDet 的准确率会显著下降。 相反,TaskCLIP 专注于学习任务的视觉特征,这使得它具有更好的泛化能力。
如表 3 所示,由于 TaskCLIP 利用现有的预训练视觉语义信息,而不是从头开始重新校准,因此 TaskCLIP 的训练效率超过了 TOIST 和 CoTDet。
4.4消融研究
4.4.1超参数调优
表 5: Transformer 对齐器模型架构搜索。
threshold = 0.2 | threshold = 0.4 | |||||||||||||||||||||||
NLayer = 4 | NLayer = 6 | NLayer = 8 | NLayer = 10 | NLayer = 4 | NLayer = 6 | NLayer = 8 | NLayer = 10 | |||||||||||||||||
NHead | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 | 4 | 8 | 16 |
mAP@0.5(%) | 33.5 | 43.5 | 42.6 | 43.6 | 43.4 | 42.7 | 44.4 | 43.0 | 44.2 | 43.4 | 42.6 | 44.5 | 30.2 | 42.4 | 41.7 | 42.7 | 42.6 | 41.6 | 43.6 | 42.2 | 43.4 | 42.7 | 41.8 | 43.8 |
在本节中,我们重点关注三个超参数:Transformer 对齐器模块的隐藏层数量 (NLayer)、每个对齐器层中的注意力头数量 (NHead) 以及分数函数阈值 (δ)。 在表 5 中,我们展示了 NLayer 和 NHead 对 14 个任务中 mAP@0.5 的影响,在两个不同的 δ 值下,分别是 0.2 和 0.4。 我们选择 Faster R-CNN 作为目标检测网络。 如前述研究 [41] 所述,COCO-Tasks 数据集中每个任务的适当 affordances 出现的频率远低于不理想的 affordances,平均比率为 ∼1:15。 为解决这个问题,我们在变体分析研究中将 Transformer 对齐器架构的阈值设置为低于 0.5。 表 5 表明,在 (NLayer,NHead) 格式下,产生最佳准确率结果的前三个配置是 (8,4)、(8,16) 和 (10,16)。 在这些配置中,我们认为组合 (NLayer: 8, NHead: 4) 在模型大小和准确率之间取得了最佳平衡。 在阈值影响的调查中,我们考虑了 COCO-Tasks 的数据不平衡。 在这里,我们使用 g-means [18] 来确定每个任务的最佳阈值。 对齐器配置 (8,4) 在所有 14 个任务上的平均阈值 (δ) 为 0.15,这也是表 4 中使用的 δ 值。
表 6: 不同模型组件影响的变体分析研究。
AP@0.5 (%) | task1 | task2 | task3 | task4 | task5 | task6 | task7 | task8 | task9 | task10 | task11 | task12 | task13 | task14 | Mean(%) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(a) without aligner | 25.3 | 35.3 | 30.1 | 26.5 | 24.9 | 21.4 | 40.3 | 4.6 | 16.9 | 36.2 | 22.0 | 22.9 | 20.7 | 36.7 | 26.0 (+0.0) |
(b) F-RCNN | 48.4 | 44.6 | 52.4 | 60.6 | 54.4 | 31.5 | 67.7 | 18.6 | 39.4 | 55.7 | 38.1 | 47.6 | 46.3 | 67.4 | 48.1 (+22.1) |
(c) F-RCNN+diff δ | 48.4 | 44.8 | 52.4 | 60.6 | 54.5 | 31.5 | 67.6 | 18.8 | 39.4 | 55.9 | 38.1 | 47.6 | 46.3 | 67.4 | 48.6 (+22.6) |
(d) F-RCNN+SG | 52.0 | 47.4 | 54.1 | 62.5 | 56.7 | 34.0 | 69.9 | 19.2 | 41.5 | 58.1 | 39.8 | 49.8 | 48.7 | 69.8 | 50.1 (+24.1) |
(e) F-RCNN+both | 52.1 | 47.4 | 54.1 | 62.5 | 56.9 | 34.0 | 69.9 | 19.2 | 41.4 | 58.1 | 39.8 | 49.8 | 48.7 | 69.8 | 50.3 (+24.3) |
(f) YOLOv8 | 48.7 | 46.6 | 45.6 | 57.1 | 50.1 | 30.9 | 62.5 | 22.0 | 38.0 | 53.9 | 36.9 | 40.0 | 42.6 | 65.4 | 47.5 (+21.5) |
(g) YOLOv8+diff δ | 48.7 | 45.4 | 45.6 | 57.1 | 50.1 | 31.1 | 61.0 | 23.1 | 38.2 | 55.6 | 36.3 | 40.5 | 43.1 | 65.3 | 47.7 (+21.7) |
(h) YOLOv8+SG | 48.6 | 46.6 | 45.9 | 57.1 | 50.4 | 31.1 | 62.5 | 22.2 | 38.3 | 54.3 | 37.1 | 40.0 | 42.6 | 64.4 | 47.8 (+21.8) |
(i) YOLOv8+both | 49.0 | 46.2 | 46.0 | 57.5 | 50.4 | 31.3 | 61.5 | 23.2 | 38.5 | 55.6 | 36.6 | 40.5 | 43.3 | 66.9 | 49.0 +(23.0) |
(j) ground truth bounding box | 61.2 | 73.0 | 56.3 | 76.6 | 56.6 | 47.4 | 81.5 | 28.7 | 49.9 | 67.7 | 47.9 | 56.0 | 52.1 | 81.5 | 62.5 |
*Here we use F R-CNN to represent Faster R-CNN. |
4.4.2TaskCLIP 组件分析
表 6 说明了 TaskCLIP 的每个组件对最终准确率的贡献,包括目标检测网络、Transformer 对齐器模块和按组选择机制。 我们将性能与基线进行比较,基线直接根据亲和矩阵选择目标,没有任何重新校准和对齐。 为了评估 Transformer 对齐器的效果,我们展示了 OpenCLIP 和评分函数 (fscore) 组合的准确率。 原始 OpenAI CLIP 和 OpenCLIP 模型主要设计用于将图像与名词匹配,这使得它们难以准确地将每个边界框项目图像与其相应的视觉特征属性匹配。 对于表 6 (b-e) 和表 6 (f-i),我们描述了各种优化对 TaskCLIP 的最终性能的影响。 TaskCLIP 有效地使用与任务相关的属性嵌入(文本嵌入)重新校准项目嵌入(视觉空间)。 我们在表 6 (j) 中报告了使用真实边界框获得的准确率。
4.5可视化和讨论
图 4: TaskCLIP 的预测结果(虚线蓝色矩形)和真实值(实线红色矩形)的可视化(a)。 表现良好的示例。 (二)。 表现不佳的示例。
图 4 展示了我们模型在各种图像样本中的预测结果以及真实值。 具体而言,图 4 (a) 展示了我们的模型表现良好的示例。 预测结果与真实值在各种任务中高度重叠,这证明了我们模型的强大泛化能力。 然而,图 4 (b) 突出了两个我们的模型表现不佳的示例。 这些示例说明了我们的模型面临的两个常见挑战。 首先,在图 4 (b) 的上半部分,有两个椅子被描绘,但由于一个人占据了附近的椅子,只有远处的椅子可以用来打开一瓶啤酒。 虽然真实值准确地捕捉到了这种细微的差别,但我们的模型错误地识别了所有基于视觉特征类似椅子的物体。 此外,在图 4 (b) 的下半部分,我们的模型错误地选择了杯子和领带来灭火。 这种错误预测是由于领带的视觉特征与 LLM 用于解决该任务提供的视觉特征非常相似,例如坚固的手柄和桶状形状。 因此,由于领带的误导性外观,我们的模型错误地识别了它。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。