FastViT图像分类模型使用指南

FastViT是由Apple公司在2023年8月发布的一个用于图像分类的新型视觉变换器(Vision Transformer)。该模型在ImageNet-1k数据集上进行了训练,能够识别该数据集中的1000个独特类别。FastViT的名称来源于其在FastViT论文摘要中报告的“最先进的延迟-准确性权衡”。根据论文,FastViT在移动设备上对ImageNet数据集的分类速度是CMT(一种最新的混合变换器架构)的3.5倍,是EfficientNet的4.9倍,是ConvNeXt的1.9倍,这使得该模型成为图像分类的极佳选择。

FastViT的原始代码库包含了一些有限的代码,可以加载FastViT,但使用示例不包括推理代码。自论文和相关代码发布以来,timm(一个实现了多个视觉功能的Python包,如层、优化器和数据加载器)在Hugging Face Hub上提供了一个实现。然后,Roboflow将模型集成到Autodistill中,这是一个框架,可以让用几行代码就能使用FastViT等最先进的基础模型进行推理和数据标注。

在本指南中,将展示如何使用autodistill-fastvit来使用FastViT。如果想从源代码使用该项目,请查看Apple FastViT代码库。首先,需要安装FastViT。要安装Autodistill FastViT包装器,请运行以下命令:

pip install autodistill-fastvit

现在已经在系统上安装了FastViT,可以开始尝试使用该模型了。FastViT能够识别ImageNet-1k数据集中的所有类别。类别列表涵盖了从秃鹫到汽车后视镜再到螺丝的所有内容。可以使用以下Python代码检索这些类别的列表:

from autodistill_fastvit import FASTVIT_IMAGENET_1K_CLASSES print(FASTVIT_IMAGENET_1K_CLASSES)

或者,可以参考。接下来,将展示如何使用FastViT进行推理。让对以下狗的图片进行分类:

from autodistill_fastvit import FastViT, FASTVIT_IMAGENET_1K_CLASSES from autodistill.detection import CaptionOntology # 使用FASTVIT_IMAGENET_1K_CLASSES中的提示进行零样本分类 base_model = FastViT( ontology=CaptionOntology( { "Beagle": "beagle", "Border Collie": "collie" } ) ) # 零样本分类,不使用提示 # base_model = FastViT(None) predictions = base_model.predict("./example.png") labels = [FASTVIT_IMAGENET_1K_CLASSES[i] for i in predictions.class_id.tolist()] print(labels)

在上面的代码中,指定了两种分类选项:Beagle或Border Collie。如果这些提示都不相关,则不会返回任何结果。代码返回了以下结果:

['Beagle']
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485