目录

本地 AI 图像分类器

本地 AI 图像分类器

用文字描述来分类图片,完全本地运行,不依赖任何云 API。

原理

使用 OpenAI CLIP 计算图片与一组文字标签之间的相似度,得分最高的标签即为分类结果。

from PIL import Image
import clip, torch

model, preprocess = clip.load("ViT-B/32")
image = preprocess(Image.open("photo.jpg")).unsqueeze(0)
labels = ["a cat", "a dog", "a car", "a tree"]
text = clip.tokenize(labels)

with torch.no_grad():
    logits, _ = model(image, text)
    probs = logits.softmax(dim=-1)

best = labels[probs.argmax()]
print(f"预测结果:{best}")

界面

基于 Flask 的 Web UI,拖入图片,输入标签,立即得到分类结果。

状态

v0.1.0 — 概念验证版。CPU 可运行,大批量图片较慢。