基于CLIP的图像分类、语义分割和目标检测

OpenAI CLIP模型是一个创造性的突破; 它以与文本相同的方式处理图像。 令人惊讶的是,如果进行大规模训练,效果非常好。

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D场景编辑器

CLIP 将图像视为一系列不重叠的补丁,每个补丁都是一个视觉标记(类似于 NLP 中的文本标记或单词)。 因此,图像只是一系列视觉标记,可以使用旧的转换器像文本一样进行处理。

训练数据是从网络上抓取的图像标题对。 CLIP 模型经过训练,可以使用对比损失将图像/文本转换为向量嵌入。 经过训练的 CLIP 模型将在同一向量空间中生成图像和文本嵌入,使我们能够通过计算 (i) 图像嵌入和 (ii) 文本嵌入之间的余弦相似度来计算 (i) 图像和 (ii) 一段文本的相似度。

将任意图像/文本转换为矢量嵌入正在成为一种基本的人工智能原语。 它免费解锁了许多人工智能功能,而这些功能之前需要数周/数月的训练数据收集和模型训练工作。 实际上,它允许对许多用例进行零样本预测,例如 图像分类、图像分割与目标检测。本文将介绍如何利用CLIP实现这三种图像预测任务。

1、图像分类

给定 (i) 一张图像和 (ii) 可能的类(文本)列表,我们要求 CLIP 生成 (i) 图像嵌入和 (ii) 类(文本)嵌入。 预测的类别是其嵌入最接近图像嵌入的类别。

以下是改编自 zero-shot-prediction 的伪代码:

复制代码
classes = ["credit card", "driver's license", "passport"]

model, preprocess = clip.load('ViT-B/32')

image_input = preprocess(image)
text_inputs = torch.cat([clip.tokenize(f"a photo of a {c}") for c in classes])

image_features = model.encode_image(image_input)
text_features = model.encode_text(text_inputs)

# Pick the most similar class for the image
similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1)

2、图像分割

同样,CLIPSeg 是基于 CLIP 的图像分割模型。 给定(i)图像和(ii)任意文本(例如"煎饼"),它可以找到与图像中文本相对应的轮廓。

CLIPSeg 上的一个优秀的 Hugging Face 博客:使用 CLIPSeg 进行零样本图像分割

3、对象检测

最后,OWL-ViT 是一个基于 CLIP 的对象检测模型。 给定(i)图像和(ii)任意文本(例如"煎饼"),它可以找到与图像中的文本相对应的边界框(矩形)。

点击这里查看HF上的 OWL-ViT 演示

4、CLIP加速产品迭代速度

至关重要的是,没有模型训练步骤! 此外,CLIP可以进行图像分类、图像分割和任意类别的对象检测(开放词汇设置)。 使用自定义模型,每次我们必须预测新类别时,我们都需要收集新类别(标签)的训练数据,并训练新模型。 这是一个非常耗时的过程,通常需要几周到几个月的时间。 有了 CLIP,所有这些步骤都被消除了; CLIP 可以预测任意类别!

因此,对于能够容忍潜在较高错误率的用例,基于 CLIP 的模型可以加快产品迭代速度,而只有对于精度要求较高的用例才需要训练自定义模型。


原文链接:用CLIP分类、分割和检测 --- BimAnt

相关推荐
babytiger2 小时前
如何将yolo训练图像数据库的某个分类的图像取出来
数据库·yolo·分类
用户Taobaoapi201414 小时前
淘宝店铺所有商品详情API技术文档
大数据·数据挖掘·数据分析
钓了猫的鱼儿18 小时前
无人机航拍数据集|第34期 无人机咖啡成熟度目标检测YOLO数据集3224张yolov11/yolov8/yolov5可训练
yolo·目标检测·无人机·猫脸码客·无人机航拍数据集·无人机咖啡成熟度
HPC_fac1305206781621 小时前
英伟达发布高效小模型Jet-Nemotron:基于PostNAS与JetBlock架构,准确率与吞吐量双突破
人工智能·笔记·深度学习·架构·数据挖掘·语音识别·gpu算力
DogDaoDao1 天前
用PyTorch实现多类图像分类:从原理到实际操作
图像处理·人工智能·pytorch·python·深度学习·分类·图像分类
专注API从业者1 天前
基于 Node.js 的淘宝 API 接口开发:快速构建异步数据采集服务
大数据·前端·数据库·数据挖掘·node.js
max5006001 天前
北京大学MuMo多模态肿瘤分类模型复现与迁移学习
人工智能·python·机器学习·分类·数据挖掘·迁移学习
2501_924877351 天前
智慧零售漏扫率↓79%!陌讯多模态融合算法在智能收银与货架管理的实战解析
大数据·人工智能·算法·目标检测·边缘计算·零售
WSSWWWSSW1 天前
Seaborn数据可视化实战:Seaborn数据可视化实战入门
python·信息可视化·数据挖掘·数据分析·matplotlib·seaborn
tainshuai2 天前
朴素贝叶斯:用 “概率思维” 解决分类问题的经典算法
算法·分类·数据挖掘