CLIP (Contrastive Language-Image Pre-training)
探索 CLIP(对比语言-图像预训练),连接视觉与语言。了解它如何实现零样本学习并驱动 Ultralytics YOLO26。
CLIP(对比语言-图像预训练)是一种由 OpenAI 开发的革命性神经网络架构,弥合了视觉数据与自然语言之间的鸿沟。不同于传统的计算机视觉(CV)系统需要针对固定类别进行耗时的数据标注,CLIP 通过在从互联网收集的数百万个图像-文本对上进行训练,学会理解图像。这种方法使模型能够执行零样本学习,也就是说,只需读取文本描述,它就能识别训练期间从未明确见过的对象、概念或风格。通过将视觉信息和语言信息映射到共享特征空间中,CLIP 成为适用于各种下游任务的强大基础模型,无需进行大量面向特定任务的微调。
架构的工作原理#
CLIP 的核心机制包含两个并行编码器:图像编码器,通常基于视觉 Transformer(ViT)或 ResNet;以及文本 Transformer,其结构类似于现代大型语言模型(LLMs)所使用的 Transformer。通过一种称为对比学习的过程,系统经过训练后能够预测一个批次中的哪段文本与哪张图像相匹配。
在训练过程中,模型会优化其参数,使匹配的图像-文本对的向量嵌入彼此靠近,同时将不匹配的对彼此推远。这样便形成了一个多模态潜在空间,其中“金毛寻回犬”图像的数学表示在空间位置上接近“狗的照片”这段文本的嵌入。通过计算这些向量之间的余弦相似度,模型可以量化图像与自然语言提示的匹配程度,从而实现灵活的图像分类和检索。
实际应用#
将视觉与语言联系起来的能力,使 CLIP 成为现代 AI 应用中的基石技术:
- 智能语义搜索:CLIP 允许用户使用复杂的自然语言处理(NLP)查询搜索大型图像数据库。例如,在零售业中的 AI场景中,购物者可以搜索“复古碎花夏装”,并检索到视觉上准确的结果,即使图像没有这些特定的元数据标签。这通常由高性能向量数据库提供支持。
- 生成式 AI 控制:Stable Diffusion 等模型依赖 CLIP 解读用户提示并引导生成过程。CLIP 充当评分器,评估生成的视觉输出与文本描述的匹配程度,这对于高质量的文生图合成至关重要。
- 开放词汇目标检测:YOLO-World 等高级架构集成 CLIP 嵌入,可根据任意文本输入检测对象。这使得医疗领域中的 AI等领域能够进行动态检测,因为在无需重新训练的情况下识别新型设备或异常情况是必需的。
使用 CLIP 特征与 Ultralytics#
虽然标准目标检测器只能检测训练类别中的对象,但使用基于 CLIP 的特征可以实现开放词汇检测。以下 Python 代码演示了如何使用 ultralytics 包,通过自定义文本提示检测对象:
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 范式区分开来:
- CLIP 与监督学习的对比:传统监督模型要求为每个类别(例如“猫”“汽车”)提供严格的定义和带标签示例。CLIP 从网络上获取的原始文本-图像对中学习,提供了更大的灵活性,并消除了手动标注这一瓶颈,而手动标注通常通过 Ultralytics Platform 等工具完成。
- CLIP 与 YOLO26 的对比:CLIP 提供对概念的通用理解,而 YOLO26 是一种专用的实时目标检测器,针对速度和精确定位进行了优化。CLIP 通常用作特征提取器或零样本分类器,而 YOLO26 则是在生产环境中执行高速实时推理的引擎。
- CLIP 与标准对比学习的对比:SimCLR 等方法通常比较同一图像的两个增强视图来学习特征。CLIP 则将图像与文本描述进行对比,连接两种不同的数据模态,而不仅仅处理一种模态。









