facebook/dinov2-giant-imagenet1k-1-layer

facebook
Clasificación de imagen

El Vision Transformer (ViT) es un modelo de codificador transformer (similar a BERT) preentrenado en una gran colección de imágenes de manera autogestionada. Las imágenes se presentan al modelo como una secuencia de parches de tamaño fijo, que se incrustan linealmente. También se agrega un token [CLS] al principio de una secuencia para usarlo en tareas de clasificación. Además, se agregan embeddings de posición absoluta antes de alimentar la secuencia a las capas del codificador Transformer. Cabe destacar que este modelo no incluye ninguna capa afinada. Al preentrenar el modelo, este aprende una representación interna de las imágenes que luego se puede utilizar para extraer características útiles para tareas posteriores: si tienes un conjunto de datos de imágenes etiquetadas, por ejemplo, puedes entrenar un clasificador estándar colocando una capa lineal encima del codificador preentrenado. Se coloca típicamente una capa lineal encima del token [CLS], ya que el último estado oculto de este token puede verse como una representación de una imagen completa.

Como usar

Aquí hay cómo usar este modelo:

from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import requests

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

processor = AutoImageProcessor.from_pretrained('facebook/dinov2-giant-imagenet1k-1-layer')
model = AutoModelForImageClassification.from_pretrained('facebook/dinov2-giant-imagenet1k-1-layer')

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Clase predicha:", model.config.id2label[predicted_class_idx])

Funcionalidades

Modelo de codificador transformer (similar a BERT)
Preentrenado en una colección grande de imágenes
Aprendizaje autogestionado
Secuencia de parches de tamaño fijo
Incrustación lineal
Token [CLS] para tareas de clasificación
Embeddings de posición absoluta
Sin cabezas afinadas

Casos de uso

Clasificación de imágenes entre una de las 1000 etiquetas ImageNet
Entrenamiento de clasificadores estándar colocando una capa lineal encima del codificador preentrenado