microsoft/beit-large-patch16-512

microsoft
Clasificación de imagen

El modelo BEiT es un Transformer de Visión (ViT), que es un modelo de codificador transformer (similar a BERT). A diferencia del modelo ViT original, BEiT está preentrenado en una gran colección de imágenes de forma auto-supervisada, específicamente ImageNet-21k, con una resolución de 224x224 píxeles. El objetivo de preentrenamiento del modelo es predecir tokens visuales desde el codificador de VQ-VAE de DALL-E de OpenAI, basándose en parches enmascarados. Luego, el modelo se ajustó de forma supervisada en ImageNet, un conjunto de datos que consta de 1 millón de imágenes y 1,000 clases, también en una resolución de 224x224. Las imágenes se presentan al modelo como una secuencia de parches de tamaño fijo (resolución 16x16), que están incrustados linealmente. Contrario a los modelos ViT originales, los modelos BEiT usan incrustaciones de posición relativa (similar a T5) en lugar de incrustaciones de posición absoluta, y realizan la clasificación de imágenes mediante una media de los estados ocultos finales de los parches, en lugar de colocar una capa lineal encima del estado oculto final del token [CLS].

Como usar

Aquí está cómo usar este modelo para clasificar una imagen del conjunto de datos COCO 2017 en una de las 1,000 clases de ImageNet:

from transformers import BeitFeatureExtractor, BeitForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = BeitFeatureExtractor.from_pretrained('microsoft/beit-large-patch16-512')
model = BeitForImageClassification.from_pretrained('microsoft/beit-large-patch16-512')
inputs = feature_extractor(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])

Actualmente, tanto el extractor de características como el modelo admiten PyTorch.

Funcionalidades

Transformador de Visión grande
Preentrenamiento auto-supervisado
1 millón de imágenes y 1,000 clases en ImageNet
Uso de incrustaciones de posición relativa

Casos de uso

Clasificación de imágenes