glrh11/vit-base-patch16-224

glrh11
Clasificación de imagen

El modelo Vision Transformer (ViT) preentrenado en ImageNet-21k (14 millones de imágenes, 21.843 clases) a una resolución de 224x224, y ajustado en ImageNet 2012 (1 millón de imágenes, 1.000 clases) a resolución 224x224. Introducido en el artículo 'An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale' por Dosovitskiy et al. Los pesos del modelo han sido convertidos desde el repositorio timm por Ross Wightman.

Como usar

Aquí se muestra cómo usar este modelo para clasificar una imagen del dataset COCO 2017 en una de las 1.000 clases de ImageNet:

from transformers import ViTImageProcessor, ViTForImageClassification
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# el modelo predice una de las 1000 clases de ImageNet
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])

Funcionalidades

Modelo Visual Transformer (ViT)
Preentrenado en ImageNet-21k
Resolución de 224x224
Usa patches de tamaño fijo de 16x16 para las imágenes
Incluye un token [CLS] para tareas de clasificación
Embeddings de posición absolutas
Posibilidad de ser ajustado para tareas específicas
Implementación en PyTorch

Casos de uso

Clasificación de imágenes
Extracción de características de imágenes para tareas posteriores
Entrenar un clasificador estándar usando el encoder preentrenado