图像分类是计算机视觉中的核心任务。构建更好的分类器来识别图片中的物体是一个活跃的研究领域,因为它有着从面部识别到制造质量控制的应用。
最先进的图像分类器基于transformers架构,最初在NLP任务中流行。这种架构通常被称为视觉变换器(ViT)。这些模型非常适合与Gradio的image输入组件一起使用,因此在本教程中,我们将使用Gradio构建一个用于图像分类的Web演示。我们将能够用一行Python代码构建整个Web应用程序,并且它将看起来像页面底部的演示。
让我们开始吧!
确保你已经安装了gradio Python包。
首先,我们需要一个图像分类模型。在本教程中,我们将使用来自Hugging Face Model Hub的模型。该中心包含数千个模型,涵盖数十种不同的机器学习任务。
展开左侧边栏中的任务类别,并选择“图像分类”作为我们感兴趣的任务。然后,您将看到Hub上所有设计用于分类图像的模型。
在撰写本文时,最受欢迎的是google/vit-base-patch16-224,它已经在分辨率为224x224像素的ImageNet图像上进行了训练。我们将使用这个模型进行演示。
当使用来自 Hugging Face Hub 的模型时,我们不需要为演示定义输入或输出组件。同样,我们也不需要关心预处理或后处理的细节。所有这些都会自动从模型标签中推断出来。
除了import语句外,只需一行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,在那里通过模型处理并返回一个人类可理解的预测结果。尝试上传您自己的图片吧!
你已经完成了!只需一行代码,你就为图像分类器构建了一个网页演示。如果你想与他人分享,尝试在launch()接口时设置share=True!