探索 CLIP(对比语言-图像预训练)以连接视觉与语言。了解它如何实现零样本学习并赋能 Ultralytics YOLO26。
CLIP(对比语言-图像预训练)是由OpenAI开发的一种革命性的神经网络架构,它弥合了视觉数据与自然语言之间的鸿沟。与需要对固定类别进行劳动密集型数据标注的传统计算机视觉 (CV)系统不同,CLIP 通过在从互联网收集的数百万图像-文本对上进行训练来学习理解图像。这种方法使模型能够执行零样本学习,这意味着它可以通过阅读文本描述来识别在训练期间从未明确见过的物体、概念或风格。通过将视觉和语言信息映射到共享特征空间中,CLIP 作为一个强大的基础模型,可用于各种下游任务,而无需大量的任务特定微调。
CLIP 的核心机制涉及两个并行编码器:一个图像编码器(通常基于 Vision Transformer (ViT) 或 ResNet),以及一个文本 Transformer,类似于现代 大型语言模型 (LLMs) 中使用的 Transformer。通过一种称为 对比学习 的过程,系统被训练来预测在一个批次中哪个文本片段与哪个图像匹配。
在训练过程中,模型优化其参数,使匹配的图像-文本对的向量 嵌入 彼此靠近,同时将不匹配的对推开。这创建了一个多模态 潜在空间,其中“金毛寻回犬”图像的数学表示在空间上靠近“一只狗的照片”的文本嵌入。通过计算这些向量之间的 余弦相似度,模型可以量化图像与自然语言提示的对应程度,从而实现灵活的 图像分类 和检索。
连接视觉和语言的能力使CLIP成为现代AI应用的基石技术:
尽管标准目标检测器受限于其训练类别,但使用基于CLIP的特征可以实现开放词汇检测。以下 Python 代码演示了如何使用
ultralytics 包,用于使用自定义文本提示 detect 对象:
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model utilizing CLIP features
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes using natural language text prompts
model.set_classes(["person wearing sunglasses", "red backpack"])
# Run inference on an image to detect the text-defined objects
results = model.predict("travelers.jpg")
# Display the results
results[0].show()
区分CLIP与其他常见的AI范式有助于理解其具体用途:

开启您的机器学习未来之旅