microsoft/swinv2-base-patch4-window8-256

microsoft
Clasificación de imagen

El modelo Swin Transformer v2 está pre-entrenado en ImageNet-1k a una resolución de 256x256. Fue presentado en el artículo Swin Transformer V2: Scaling Up Capacity and Resolution por Liu et al. y fue liberado por primera vez en este repositorio. El transformador Swin es un tipo de transformer de visión que construye mapas de características jerárquicas al combinar parches de imágenes en capas más profundas y tiene una complejidad de cálculo lineal con respecto al tamaño de la imagen de entrada debido al cálculo de la autoatención solo dentro de cada ventana local. De este modo, puede servir como una columna vertebral de propósito general tanto para la clasificación de imágenes como para tareas de reconocimiento denso. A diferencia de los transformadores de visión anteriores, que producen mapas de características de una sola resolución baja y tienen una complejidad de cálculo cuadrática con respecto al tamaño de la imagen de entrada debido al cálculo de la autoatención global, Swin Transformer v2 agrega 3 mejoras principales: 1) un método de post-norm residual combinado con atención de coseno para mejorar la estabilidad del entrenamiento; 2) un método de sesgo de posición continuo espaciado logarítmicamente para transferir eficazmente modelos pre-entrenados utilizando imágenes de baja resolución a tareas downstream con entradas de alta resolución; 3) un método de preentrenamiento auto-supervisado, SimMIM, que reduce la necesidad de vastas imágenes etiquetadas.

Como usar

Cómo utilizar 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-base-patch4-window8-256")
model = AutoModelForImageClassification.from_pretrained("microsoft/swinv2-base-patch4-window8-256")

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("Predicted class:", model.config.id2label[predicted_class_idx])

Para más ejemplos de código, consulte la documentación.

Funcionalidades

Construcción de mapas de características jerárquicos al fusionar parches de imágenes en capas más profundas
Complejidad de cálculo lineal respecto al tamaño de la imagen de entrada
Método de post-norm residual con atención de coseno para mejorar la estabilidad del entrenamiento
Método de sesgo de posición continuo espaciado logarítmicamente
Método de preentrenamiento auto-supervisado SimMIM

Casos de uso

Clasificación de imágenes