零样本图像分类 (Transformers.js)¶
体验直接在浏览器中运行的强大 AI 图像分类模型!借助 Transformers.js,我们可以在客户端执行零样本图像分类任务。这意味着模型可以在没有针对特定标签进行专门训练的情况下,对图像进行分类。
上传一张图片,并输入一些候选标签(英文,以逗号分隔),模型将判断图片与哪些标签最匹配。
分类结果:
- -
工作原理¶
这个演示利用了 Transformers.js 库,特别是其零样本图像分类能力:
- 加载库: 通过 CDN 引入 Transformers.js。
- 模型加载: 首次点击“分类图像”按钮时,会从 Hugging Face Hub 下载预训练的 CLIP 模型 (例如
Xenova/clip-vit-base-patch32
)。该模型能够理解图像和文本之间的关系。模型会被缓存以供后续使用。 - 图像处理与分类:
- 用户上传的图像被转换成模型可以处理的格式。
- 用户提供的候选标签列表也会被模型处理。
- 模型计算图像与每个候选标签的相似度分数。
- 显示结果: 最匹配的标签及其置信度分数会显示出来。
什么是零样本学习?¶
零样本学习(Zero-Shot Learning, ZSL)是机器学习中的一种能力,模型可以在没有见过任何特定类别样本的情况下,对该类别的对象进行分类。对于图像分类,这意味着模型可以识别出训练数据中未包含的对象类别,只要这些类别可以通过文本描述提供给模型。
CLIP (Contrastive Language–Image Pre-training) 模型是实现零样本图像分类的关键技术之一。它通过在大量的图像和文本对上进行训练,学会了将图像和描述它们的文本映射到同一个多模态嵌入空间中。因此,它可以判断一张图片和一段描述性文字是否相关。
优势¶
- 灵活性: 无需为新的图像类别重新训练模型,只需提供新的候选标签。
- 客户端处理: 保护用户隐私,降低服务器成本和延迟。
- 广泛适用性: 可用于各种需要动态定义分类标签的场景。
探索 Transformers.js 和 Hugging Face Hub,发现更多可以在浏览器中直接运行的强大 AI 功能!