AI 场景识别怎么限定标签?用 CLIP 比较室内、街道与海滩候选

用 CLIP 比较固定场景候选,解释相对 softmax 分数,并用明确与歧义图片核对分类边界。

限定标签的场景识别,可以先用 CLIP 比较一张图片与几条候选描述的匹配程度。这里演示室内、街道、海滩和一个宽泛的其他候选。它解决的是候选集合内的相对排序,不是证明图片只能属于其中某一类。

先定标签含义,再写对应文本

准备一张自有 scene.jpg,先人工写出场景类别以及是否模糊。室内与街道可能同时出现,例如透过窗户看到道路;若业务需要多标签,不能硬套单选。将这些歧义提前记录,比事后调整分数更有效。

AI 场景识别怎么限定标签?用 CLIP 比较室内、街道与海滩候选

python -m pip install torch "transformers==4.57.1" pillow

本例使用 Python 3.11、CPU 和 CLIP 4.57.1 接口;首次加载联网下载权重。英文短描述与模型卡展示的调用方式保持一致。本文未运行该场景模型,没有提供实测准确率。

把图像和候选文本一起送入模型

保存为 scene_labels.py,运行 python scene_labels.py。

from PIL import Image
import torch
from transformers import CLIPModel, CLIPProcessor

name = "openai/clip-vit-base-patch32"
processor = CLIPProcessor.from_pretrained(name)
model = CLIPModel.from_pretrained(name).eval()
labels = ["室内", "街道", "海滩", "其他或无法确认"]
prompts = ["a photo taken indoors", "a photo of a street",
           "a photo of a beach", "a photo of another scene"]
image = Image.open("scene.jpg").convert("RGB")
inputs = processor(text=prompts, images=image, padding=True, return_tensors="pt")
with torch.inference_mode():
    scores = model(**inputs).logits_per_image[0].softmax(dim=-1)
for index in torch.argsort(scores, descending=True).tolist():
    print(labels[index], round(float(scores[index]), 4))

解释分数时最容易出错的地方

输出列出四个候选的排序和相对分数。候选变更后 softmax 分数也会变,不能把“海滩 0.8”解释为在所有可能场景中有 80% 正确率。增加“其他”文字也不自动获得可靠的未知类别检测。

准备三张人工明确的对照图,再加入夜景、近景和混合场景,记录每张图的前两名、分差与人工判断。检查清晰样本是否命中,再看歧义样本是否需要复核。

怎样接入真实分类规则

只有在自己的带标签样本上核对过门槛,才决定哪些候选可进入自动分类、哪些进入人工队列。不同措辞会改变匹配结果,修改提示文本后要复跑同一组对照样本。

本题输出文本候选类别,图库以图搜图则输出相关图片路径,两者输入和验收目标不同。若希望开放式描述场景,应使用描述任务并逐项核对事实,不把这四条候选扩写成未经验证的说明。

资料与适用范围

本文依据 2026 年 10 月 1 日读取的项目资料编写。安装后请记录实际依赖版本;版本升级时先用小样本核对接口和输出。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30746.html

赞 (0)
AI小管家的头像AI小管家
KMeans 和 DBSCAN 怎么选?对比离群点处理、簇数与新样本预测
上一篇 6小时前
用 DeepSeek 学随机森林:从学习提示词到本地训练验证
下一篇 6小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部