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

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

探索 CLIP(对比语言-图像预训练)以连接视觉与语言。了解它如何实现零样本学习并赋能 Ultralytics YOLO26。

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

架构工作原理

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

在训练过程中,模型优化其参数,使匹配的图像-文本对的向量 嵌入 彼此靠近,同时将不匹配的对推开。这创建了一个多模态 潜在空间,其中“金毛寻回犬”图像的数学表示在空间上靠近“一只狗的照片”的文本嵌入。通过计算这些向量之间的 余弦相似度,模型可以量化图像与自然语言提示的对应程度,从而实现灵活的 图像分类 和检索。

实际应用

连接视觉和语言的能力使CLIP成为现代AI应用的基石技术:

  • 智能语义搜索:CLIP允许用户使用复杂的自然语言处理(NLP)查询来搜索大型图像数据库。例如,在零售AI中,购物者可以搜索“复古碎花夏日连衣裙”,并检索到视觉上准确的结果,而无需图像具有特定的元数据标签。这通常由高性能的向量数据库提供支持。
  • 生成式 AI 控制Stable Diffusion 等模型依赖 CLIP 来解释用户提示并指导生成过程。CLIP 充当评分器,评估生成的视觉输出与文本描述的匹配程度,这对于高质量的 文本到图像 合成至关重要。
  • 开放词汇目标检测:像YOLO-World这样的先进架构集成了CLIP嵌入,以基于任意文本输入来detect目标。这使得在医疗AI等领域实现动态检测成为可能,在这些领域,无需重新训练即可识别新设备或异常情况。

将 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 Platform 等工具进行管理的手动标注瓶颈。
  • CLIP 与 YOLO26: 尽管 CLIP 提供了对概念的通用理解,但 YOLO26 是一种专门的实时目标检测器,针对速度和精确的定位进行了优化。CLIP 通常用作特征提取器或零样本分类器,而 YOLO26 则是生产环境中高速 实时推理 的引擎。
  • CLIP 与 标准对比学习: 像 SimCLR 这样的方法通常通过比较同一图像的两个增强视图来学习特征。CLIP 将图像与文本描述进行对比,桥接了两种不同的数据模态,而不仅仅是一种。

让我们一起共建AI的未来!

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