许可证: mit
评估指标:
- 准确率
- F1分数
任务标签: 图像分类
演示样例:
- 图片链接: https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Welchcorgipembroke.JPG/1200px-Welchcorgipembroke.JPG
示例标题: 彭布罗克柯基犬
- 图片链接: https://upload.wikimedia.org/wikipedia/commons/d/df/Shihtzu_%28cropped%29.jpg
示例标题: 西施犬
- 图片链接: https://upload.wikimedia.org/wikipedia/commons/5/55/Beagle_600.jpg
示例标题: 比格犬
该模型由本人首发于Kaggle的笔记本创建。
模型动机
最近有人问我,能否像上次区分猫狗的笔记本那样,将狗狗图像分类到各自的品种。我的回答是:完全可以!
由于问题的复杂性,我们将采用2020年谷歌论文发布的最先进计算机视觉架构——视觉Transformer。
视觉Transformer与传统**卷积神经网络(CNN)**的核心差异在于图像处理方式。前者将图像划分为16x16的图块,作为带有位置编码的序列输入Transformer,通过自注意力机制实现全局感知;而后者虽然使用相同尺寸的图块,但依赖卷积和池化层作为归纳偏置,需要人工通过局部居中/裁剪/边界框等方式引导网络关注重点区域。
这种特性使视觉Transformer架构天生具备更强的灵活性和扩展性,让我们能像NLP领域的BERT和GPT那样,构建计算机视觉的基础模型——通过海量图像数据的自监督/监督预训练,泛化至图像分类、识别、分割等各类视觉任务。这种技术迁移让我们向通用人工智能的目标更进一步。
需要注意的是,视觉Transformer相比卷积神经网络具有更弱的归纳偏置(这正是其扩展性的代价)。这一特性导致即使参数量更少,性能良好的预训练模型通常需要更多数据支持。
幸运的是,本模型采用HuggingFace提供的谷歌预训练模型,其基于ImageNet-21k数据集(1400万图像,2.1万类别)训练,使用16x16图块和224x224分辨率,有效规避了数据限制。我们将对这个模型进行微调,使其适应由Jessica Li导入Kaggle的斯坦福狗狗数据集(约2万张图像),最终实现120种犬类的图像分类!
模型描述
本模型基于谷歌视觉Transformer(vit-base-patch16-224-in21k)架构,在Kaggle斯坦福狗狗数据集上微调训练,用于120种犬类的图像分类。
使用场景与限制
本微调模型仅适用于数据集中包含的犬种分类,不适用于其他动物或犬种外的图像识别。
使用方法
from transformers import AutoImageProcessor, AutoModelForImageClassification
import PIL
import requests
url = "https://upload.wikimedia.org/wikipedia/commons/5/55/Beagle_600.jpg"
image = PIL.Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("wesleyacheng/dog-breeds-multiclass-image-classification-with-vit")
model = AutoModelForImageClassification.from_pretrained("wesleyacheng/dog-breeds-multiclass-image-classification-with-vit")
inputs = image_processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("预测类别:", model.config.id2label[predicted_class_idx])
模型训练指标
训练轮次 |
Top-1准确率 |
Top-3准确率 |
Top-5准确率 |
宏观F1 |
1 |
79.8% |
95.1% |
97.5% |
77.2% |
2 |
83.8% |
96.7% |
98.2% |
81.9% |
3 |
84.8% |
96.7% |
98.3% |
83.4% |
模型评估指标
Top-1准确率 |
Top-3准确率 |
Top-5准确率 |
宏观F1 |
84.0% |
97.1% |
98.7% |
83.0% |