microsoft/swinv2-large-patch4-window12to24-192to384-22kto1k-ft

microsoft
Clasificación de imagen

El modelo Swin Transformer v2 está pre-entrenado en ImageNet-21k y afinado en ImageNet-1k a una resolución de 384x384. Fue introducido en el artículo Swin Transformer V2: Scaling Up Capacity and Resolution por Liu et al. y lanzado por primera vez en este repositorio. Swin Transformer es un tipo de Vision Transformer que construye mapas de características jerárquicas al fusionar parches de imágenes en capas más profundas y tiene una complejidad computacional lineal en relación al tamaño de la imagen de entrada debido a la computación de self-attention solo dentro de cada ventana local. Por lo tanto, puede servir como un backbone de propósito general tanto para la clasificación de imágenes como para tareas de reconocimiento denso. A diferencia de transformadores de visión previos, produce mapas de características de una sola resolución baja y tiene una complejidad computacional cuadrática debido a la computación global de self-attention. Swin Transformer v2 añade tres mejoras principales: 1) un método de residual-post-norm combinado con atención coseno para mejorar la estabilidad del entrenamiento; 2) un método de sesgo de posición continuo espaciado logarítmicamente para transferir efectivamente modelos pre-entrenados usando imágenes de baja resolución a tareas con entradas de alta resolución; 3) un método de pre-entrenamiento auto-supervisado, SimMIM, para reducir la necesidad de vastas cantidades de imágenes etiquetadas.

Como usar

Aquí se explica 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 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("microsoft/swinv2-large-patch4-window12to24-192to384-22kto1k-ft")
model = AutoModelForImageClassification.from_pretrained("microsoft/swinv2-large-patch4-window12to24-192to384-22kto1k-ft")

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

Mapas de características jerárquicas
Complejidad computacional lineal respecto al tamaño de la imagen de entrada
Self-attention dentro de ventanas locales
Método de residual-post-norm con atención coseno
Sesgo de posición continuo espaciado logarítmicamente
Método de pre-entrenamiento auto-supervisado, SimMIM

Casos de uso

Clasificación de imágenes
Tareas de reconocimiento denso