了解 OpenAI 的 CLIP 如何通过零样本学习、图像-文本对齐以及计算机视觉中的实际应用来革新 AI。
CLIP(对比语言-图像预训练)是一种开创性的多模态模型架构。 多模态模型架构。 是由OpenAI推出的开创性多模式模型架构,它在计算机视觉和自然语言处理之间架起了一座桥梁。 处理之间的桥梁。与在固定的预标记类别集上进行训练的传统计算机视觉系统不同,CLIP 通过对图像和文本描述进行训练,学会 与传统的计算机视觉系统不同,CLIP 通过对从互联网上收集的数以亿计的图像-文本对进行训练,学习将图像与文本描述联系起来。 互联网上收集的数以亿计的图像文本对进行训练,从而学会将图像与文本描述联系起来。这种方法能让模型通过自然语言的视角理解视觉概念,从而实现 零镜头学习能力,即 在这种情况下,模型可以正确地classify 图像归入它在训练过程中从未见过的类别。通过将 通过在共享特征空间中对视觉和文本信息进行整合,CLIP 可作为一个通用的 基础模型。 任务的通用基础模型。
CLIP 背后的核心机制依赖于两个独立的编码器:一个是视觉转换器 (ViT),另一个是 ResNet。 视觉Transformer (ViT)或 ResNet 来处理图像。 处理图像,以及一个文本 Transformer处理 语言。该模型采用 对比学习,使这两种 模式同步。在训练过程中,CLIP 接收一批(图像、文本)对,并学习预测哪段文本描述 与哪张图片相匹配。它通过优化参数来最大化正确图像对的嵌入之间的余弦相似度,同时将正确图像对的嵌入之间的余弦相似度最大化。 嵌入之间的余弦相似度最大化,而错误配对的相似度最小化。 错误配对的相似度最小。
这一训练过程会产生一个共享的潜在空间,在这一空间中,语义相似的图像和文本会相互靠近。 相近。例如,"金毛寻回犬 "图像的向量表示与文本串 "一张金毛寻回犬的照片 "的向量表示非常接近。 与文本字符串 "金毛猎犬的照片 "的向量表示非常接近。这种对齐方式允许 开发人员只需 只需提供一个潜在文本标签列表,模型就会将其与输入图像进行比较,以找到最佳的 匹配。
CLIP 的灵活性使其被众多行业和应用所采用:
虽然 CLIP 最初是为分类设计的,但其文本编码功能已被集成到现代 对象检测架构,以实现 开放词汇检测。YOLO模型允许 YOLO-World 模型允许用户在运行时使用自然语言提示定义自定义类,利用 CLIP 的语言理解能力 无需重新训练即可识别对象。
下面的示例演示了如何将YOLO 模型与 ultralytics 软件包来detect
文本定义的自定义对象:
from ultralytics import YOLO
# Load a pre-trained YOLO-World model utilizing CLIP-based text features
model = YOLO("yolov8s-world.pt")
# Define custom classes using natural language prompts
model.set_classes(["person wearing a hat", "red backpack"])
# Run inference on an image to detect the specified objects
results = model.predict("bus_stop.jpg")
# Display the detection results
results[0].show()
将 CLIP 与标准监督模型(如 ResNet或早期版本的YOLO。
最近的研究往往将这些方法结合起来。例如 视觉语言模型 (VLM) 通常以 CLIP 为骨干提供丰富的语义,而 YOLO26 等模型的架构改进则旨在提高这些多模态系统的速度和精度。 等模型的架构改进,旨在提高这些多模态系统的速度和精度。