1. 其他教程
  2. 使用 Vision Transformers 进行图像分类

使用 Vision Transformer 进行图像分类

简介

图像分类是计算机视觉中的一个核心任务。构建更好的分类器来识别图片中的对象是一项活跃的研究领域,因为它在人脸识别到制造质量控制等领域都有应用。

最先进的图像分类器基于最初在 NLP 任务中流行的*Transformer*架构。这类架构通常被称为 Vision Transformers (ViT)。这类模型非常适合与 Gradio 的*image*输入组件一起使用,因此在本教程中,我们将使用 Gradio 构建一个用于图像分类的 Web 演示。我们可以在**一行 Python 代码**中完成整个 Web 应用程序的构建,它看起来将和页面底部的演示一样。

让我们开始吧!

先决条件

请确保您已经 安装gradio Python 包。

第一步 — 选择一个 Vision 图像分类模型

首先,我们需要一个图像分类模型。在本教程中,我们将使用来自Hugging Face Model Hub的模型。该 Hub 包含了数千种涵盖数十种不同机器学习任务的模型。

展开左侧边栏的“任务”类别,然后选择“图像分类”作为我们感兴趣的任务。您将看到 Hub 上所有用于分类图像的模型。

在撰写本文时,最受欢迎的模型是 google/vit-base-patch16-224,它在 ImageNet 图像上进行了 224x224 像素的分辨率训练。我们将在此演示中使用此模型。

第二步 — 使用 Gradio 加载 Vision Transformer 模型

当使用 Hugging Face Hub 的模型时,我们无需定义输入或输出组件。同样,我们无需担心预处理或后处理的细节。所有这些都将根据模型标签自动推断。

除了导入语句,只需一行 Python 代码即可加载和启动演示。

我们使用 gr.Interface.load() 方法,并传入模型路径,包括 huggingface/ 来指定它来自 Hugging Face Hub。

import gradio as gr

gr.Interface.load(
             "huggingface/google/vit-base-patch16-224",
             examples=["alligator.jpg", "laptop.jpg"]).launch()

请注意,我们添加了另一个参数 examples,它允许我们用一些预定义的示例来预填充我们的界面。

这将生成以下界面,您可以在浏览器中直接尝试。当您输入图像时,它会自动预处理并发送到 Hugging Face Hub API,在那里它将通过模型并以人类可理解的预测结果返回。尝试上传您自己的图片!


大功告成!您只用一行代码就构建了一个图像分类器的 Web 演示。如果您想与他人分享,请在 launch() Interface 时尝试设置 share=True

gradio