深圳Yolo 视觉
深圳
立即加入
词汇表

CLIP (对比语言-图像预训练)

Explore how CLIP bridges the gap between vision and language. Learn about zero-shot learning, contrastive image-text pairs, and using CLIP with [YOLO26](https://docs.ultralytics.com/models/yolo26/) for open-vocabulary detection.

CLIP(对比式语言-图像预训练)是由OpenAI开发的一项革命性神经网络架构,它弥合了视觉数据与自然语言之间的鸿沟。与传统计算机视觉(CV)系统需要为固定类别进行耗时费力的数据标注不同,CLIP通过训练数百万个从互联网收集的图像-文本对来理解图像。 这种方法使模型能够实现零样本学习,即仅通过阅读文本描述,就能识别训练过程中从未明确接触过的物体、概念或风格。通过将视觉与语言信息映射到共享特征空间,CLIP成为强大的基础模型,可广泛应用于各类下游任务,且无需进行大量特定任务的微调

建筑如何运作

CLIP的核心机制涉及两个并行编码器:图像编码器(通常基于视觉Transformer ViT) 或ResNet)和文本编码器。 Transformer 类似于现代大型语言模型(LLMs)中使用的模型。通过称为对比学习的过程,系统被训练来预测批次中哪个文本片段与哪个图像匹配。

在训练过程中,模型通过优化参数,使匹配的图像-文本对的向量嵌入更趋近,同时将不匹配的对推离。这构建出一个多模态潜在空间,其中"金毛寻回犬"图像的数学表示与"一张狗的照片"的文本嵌入在空间上相邻。 通过计算这些向量间的余弦相似度,模型能量化图像与自然语言提示的契合程度,从而实现灵活的图像分类与检索。

实际应用

将视觉与语言相连接的能力,使CLIP成为现代人工智能应用中的基石技术:

使用CLIP特征与Ultralytics

标准目标检测器仅限于其训练类别,而基于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范式有助于理解其独特价值:

  • CLIP与监督学习的对比:传统监督模型要求为每个类别(如"猫"、"汽车")提供严格定义和标注示例。CLIP则从网络上原始的图文对中学习,不仅灵活性更高,还消除了人工标注的瓶颈——这类标注工作通常需Ultralytics 工具完成。
  • CLIP与YOLO26对比:CLIP提供概念的通用理解,而YOLO26则是专为速度和精准定位优化的实时目标检测器。CLIP常作为特征提取器或零样本分类器使用,YOLO26则是生产环境中高速实时推理的核心引擎。
  • CLIP 与标准对比学习的区别:诸如 SimCLR 等方法通常通过对比同一图像的两种增强视图来学习特征。而CLIP则将图像与文本描述进行对比,从而连接两种不同的数据模态,而非仅限于一种。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入