新闻详情

新闻详情

首页 / 资讯中心 / 详情

CLIP 零样本图像分类指南:从首次安装到小样本落地的三条路线

发布时间:2026/9/18 10:22:37来源:尧图网络
CLIP 零样本图像分类指南:从首次安装到小样本落地的三条路线
CLIP 零样本图像分类指南从首次安装到小样本落地的三条路线【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP标注是新项目里最贵的环节一个类别的头批图往往只有几十张。CLIP 零样本图像分类改掉了这件事用一句英文描述每个类别就能拿到一个直接可用的基线分类器。这篇文章带你把从安装到小样本落地的路线完整走一遍。适用场景哪些活儿适合交给 CLIP先给结论类别的边界能不能用一句人话写清楚是判断合不合用 CLIP 的试金石。能它大概率就能干。这张图是 CLIP 的训练与推理流程。左半边是预训练阶段图像编码器与文本编码器把各自输入映射到同一个向量空间同一对图文的特征点积被拉高、跨对被压低。右半边就是零样本zero-shot的推理方式不需要任何标注——把类名套进统一句式过一遍文本编码器再与新图像取相似度最高的一项。模型从没见过这些类别却可以直接分类。视觉侧有 ViT 与 ResNet 两类骨干文本侧是 Transformer 编码器实现在 clip/model.py 里。CLIP 是图文配对的开源图像分类项目新、杂、少的分类问题是它的长项。下面这几类任务比较合适单图分类类别从几个到几百个且会持续新增按文本检索图像或做粗粒度的图文相似度匹配标注预算紧零标注或每类只有个位数样本新类别要当天上线不想维护重训流水线这几类则交给专用模型去做分割、检测、计数这类像素级任务上千个类别、且追求 top-1 极致精度的场景类别边界细到一句话写不出差别比如物种级的细粒度区分CLIP 怎么从安装跑到第一次预测依赖很少装好就能跑。克隆仓库并按包安装git clone https://gitcode.com/GitHub_Trending/cl/CLIP pip install -r CLIP/requirements.txt pip install -e CLIP第一步是加载模型。clip.load返回两样东西模型本身和一个图像变换preprocess缩放到 224、做归一化。推理时记住一条规则图像过preprocess文本过tokenize两边的输出已经处在同一个向量空间里。import torch import clip from PIL import Image device cuda if torch.cuda.is_available() else cpu # 首次运行自动下载约 335MB 权重缓存在 ~/.cache/clip model, preprocess clip.load(ViT-B/32, devicedevice) model.eval()再走一次图文相似度推理就能拿到分类结果names [good solder joint, insufficient solder, solder bridge, missing solder] # 句式统一只有类名部分变化 prompts [fa photo of a {n} solder pad on a circuit board for n in names] img preprocess(Image.open(pad_0007.jpg)).unsqueeze(0).to(device) txt clip.tokenize(prompts, truncateTrue).to(device) # 文本搬到同一设备 with torch.no_grad(): logits model(img, txt)[0] # 图文相似度已含可学习温度 print(logits.softmax(-1).numpy()) # 每类概率和为 1输出是每类的概率取最大值对应的类名即可。想交互式验证可以打开 notebooks/Interacting_with_CLIP.ipynb里面有相似度计算与零样本分类的完整过程。效果不够时按手里的标注量选路升级路径不用拍脑袋只看你手里有多少张标注图。一共三档先试便宜的。零标注把零样本提示词写对没有数据时提示词就是唯一的调参旋钮。它对小样本分类的影响经常比换模型更大。三条规则零成本句式统一所有类别共用同一模板只替换类名别让有的类带场景词、有的不带用完整短语a photo of a solder bridge优于裸词solder bridge裸词缺少这是一张图的语义锚点多模板集成同一类写 2 到 3 个模板各自 softmax 概率取平均能稳定拉高几个点。仓库自带 20 多个数据集的现成提示词库见 data/prompts.md每类 10 到 50 张冻结权重加一个线性头有了少量标注后模型一个参数都不动只接一个分类头。做法是先把图像特征离线抽出来存盘再交给传统分类器# 训练集过一遍只取 512 维图像特征 X torch.cat([model.encode_image(imgs) for imgs in batched_train]) clf LogisticRegression(max_iter2000) clf.fit(X.numpy(), y.numpy())训练在 CPU 上几十秒就能完成特征已存盘换类别时不用重跑模型。这个标注体量下这一档通常能吃掉大部分精度差距。还不够去文本端学措辞类别很多、数据仍然不够时还有最后一档权重全部继续冻结只在文本端学一组提示嵌入让模型学会你领域的措辞习惯。这一档常被叫作 CLIP 微调但它并不动原模型的任何一个参数。# 形状与文本编码器输出对齐序列长 77维度 512 prompt torch.nn.Parameter(torch.randn(77, 512) * 0.02) opt torch.optim.AdamW([prompt], lr1e-4)可训练参数只有几万量级过拟合风险低数据真正紧张时这一档的收益通常比线性头更大。CLIP 模型怎么选推理再快一半clip.available_models()能列出全部型号定义在 clip/clip.py 里。常用的三个取舍如下模型适用取舍ViT-B/32约 335MB速度与精度均衡默认首选ViT-B/16约 580MBpatch 更小零样本精度更高、推理更慢RN50ResNet-50CPU 上最快无卡环境优先想要精度余量先试 ViT-B/16完全没有卡直接用 RN50。模型选定后三个动作能压掉大部分推理耗时半精度GPU 上跑model.half()显存和耗时大约各降一半批处理一次喂 16 到 32 张图吞吐远高于逐张流水线场景务必使用缓存文本嵌入类别集固定时encode_text的结果算一次存下来之后每帧只跑图像侧小样本图像分类复盘PCB 焊点瑕疵筛查场景一条 SMT 产线要对焊盘做四类筛查——正常、缺锡、锡桥相邻焊点连锡、漏焊。立项时标注预算很紧每类 15 张、共 60 张其中每类留出 10 张做固定验证集。做法先用双模板集成出纯零样本基线模板分别是a photo of a {cls} solder pad on a circuit board与a close-up of a {cls} solder joint两套概率取平均再把 60 张标注拿去训线性头同一验证集上对比。方法验证集准确率纯零样本双模板集成约 78%线性头60 张标注约 93%提示嵌入微调在此基础上还能再抬 2 个点示意数据。结论很典型零样本直接给出可用基线线性头吃掉大部分差距微调只补零头。最终部署形态是特征提取 逻辑回归头批处理 8 张、fp16 推理单张约 40 毫秒示意数字产线节拍内放得下。CLIP 部署卡住了这四个问题出现得最多问断网环境怎么拿权重 答clip.load首次会联网拉取并做 SHA256 校验校验不过直接抛 RuntimeError。可以预先下好.pt文件放到~/.cache/clip也可以把本地文件路径直接传给clip.load它支持本地路径。问提示词为什么不用中文 答tokenizer 是按英文训练的 BPE 分词器中文会碎成大量未知 token相似度骤降。生产上用英文类名展示层再映射回中文标签。问类名和模板不一致会怎样 答裸类名、模板不统一、只有个别类带场景词任何一项都会让概率分布失真。先固定一套模板再逐类替换词面。描述超过 77 个 token 时clip.tokenize记得传truncateTrue否则直接报错。问为什么报设备不一致 答clip.tokenize返回的张量在 CPU 上忘记.to(device)就会和图像张量不在同一设备。这是新手遇到的第一条 traceback。精度同理跑 fp16 时文本侧同样要转。今天就先把零样本基线跑起来先跑一遍从安装跑到第一次预测里的那两段代码用 2 到 3 个类别拿到基线每个类别备齐至少 10 张标注图验证集固定下来模型、图像、文本三个张量的设备与精度对齐推理切换成批处理文本嵌入缓存起来把零样本、线性、微调三组数字记下来作为后续回归的基准你现在就可以从CLIP 怎么从安装跑到第一次预测里的那段代码开始先拿到基线再按标注预算决定走哪条路。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Flutter代码混淆实战:Dart层+Android R8+iOS LTO全链路防护 2026/9/18 11:16:49

Flutter代码混淆实战:Dart层+Android R8+iOS LTO全链路防护

1. 项目概述:为什么Flutter应用必须做代码混淆?Flutter应用上线前不做代码混淆,就像把自家保险柜的密码写在门上还贴张纸条注明“请勿偷看”。这不是危言耸听——我去年帮一家教育类App做安全审计时,用flutter build apk --releas…

阅读更多 →
MiroFish鱼群模拟:Boids三法则与Canvas性能优化 2026/9/18 11:16:49

MiroFish鱼群模拟:Boids三法则与Canvas性能优化

第一次看到 MiroFish 这个名字,我脑子里先蹦出来的不是代码,而是一片没有边界的深水:光线从水面斜切下来,一群鱼本来散得七零八落,忽然像被一根看不见的线牵动,齐刷刷转向,聚成一团,…

阅读更多 →
AI Agent 驱动 Unity 编辑器:自动化编译与测试的工程实践 2026/9/18 11:16:49

AI Agent 驱动 Unity 编辑器:自动化编译与测试的工程实践

1. 为什么让 AI Agent 直接驱动 Unity 编辑器先说清楚我在解决什么问题。项目标题里写着"让 AI Agent 直接驱动 Unity 编辑器编译与测试",听起来像是个实验室玩具,但其实这是我在搭建自动化流水线时被逼出来的需求。平时我们做 Unity 项目&…

阅读更多 →
从车联中台到AI训练:智能汽车数据闭环架构解析 2026/9/18 11:16:49

从车联中台到AI训练:智能汽车数据闭环架构解析

简介:方案面向车企数字化与智能汽车应用领域,基于大数据中台解决海量车辆接入、实时数据采集、智能应用协同等核心问题,适合产品经理、方案架构师与车联网技术负责人参考。资源为一份完整的PPT方案,内容覆盖智能汽车行业认知、复杂…

阅读更多 →
GPS网平差全流程:闭合环检验、间接平差与坐标转换 2026/9/18 11:16:49

GPS网平差全流程:闭合环检验、间接平差与坐标转换

有一次外业收工回来,六台接收机、三个同步时段,基线解算软件吐出上百条 ΔX、ΔY、ΔZ,每条基线后面还挂着一个 33 的方差-协方差阵。我当时的想法很朴素:把基线读进来,点一下平差,坐标就出来了。结果第一次…

阅读更多 →
分布式发电并网工程要点:出力模型、控制策略与容量配置 2026/9/18 11:13:49

分布式发电并网工程要点:出力模型、控制策略与容量配置

简介:这是一份新能源与分布式发电技术主题的PPT学习教案,面向电气工程、能源动力等相关专业学生与工程技术人员,帮助系统掌握分布式发电的基本概念、运行特点与实际应用场景。资源共1个PPTX演示文稿,共27页,压缩包大小…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞