Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Swin Transformer

Swin Transformer es un Transformer visual jerárquico que calcula la autoatención en ventanas locales desplazadas, por lo que su coste crece linealmente con el tamaño de la imagen.

Swin Transformer, abreviatura de Shifted Window Transformer, es un Transformer de visión jerárquico que calcula la autoatención dentro de pequeñas ventanas locales y desplaza esas ventanas entre capas consecutivas. Ze Liu y sus colegas de Microsoft Research Asia lo presentaron en el artículo de 2021 Swin Transformer: Hierarchical Vision Transformer using Shifted Windows, que ganó el premio Marr al mejor artículo de ICCV 2021. Las ventanas locales hacen que el coste de la atención crezca de forma lineal con el número de píxeles, en lugar de cuadrática, y la fusión progresiva de parches produce mapas de características multiescala, como los de una red neuronal convolucional. Estas características hicieron que los Transformers fueran backbones prácticos de propósito general para la detección de objetos y la segmentación en imágenes de alta resolución, más allá de la clasificación.

Cómo funcionan las ventanas desplazadas#

Swin divide primero la imagen en parches de 4×4 píxeles y proyecta cada uno en un embedding de token, de modo que una imagen de 224×224 se convierte en una cuadrícula de 56×56 tokens con 96 canales en el modelo Tiny. La atención global sobre los 3136 tokens compararía cada token con todos los demás; Swin divide la cuadrícula en ventanas no solapadas de 7×7 tokens y calcula la atención solo dentro de cada ventana. El artículo establece que el coste de la atención global es 4hwC² + 2(hw)²C para una cuadrícula h×w con C canales, frente a 4hwC² + 2M²hwC para ventanas de M×M tokens, que es lineal en hw.

Las ventanas por sí solas nunca intercambiarían información, así que cada dos bloques la cuadrícula de ventanas se desplaza media ventana, es decir, 3 tokens, y las nuevas ventanas atraviesan los límites anteriores. Para mantener constante el número de ventanas, la implementación desplaza cíclicamente el mapa de características y enmascara la atención entre tokens que no eran vecinos en la imagen original. Cada bloque también añade a las puntuaciones de atención un sesgo de posición relativa aprendido.

Entre etapas, una capa de fusión de parches concatena cada grupo de tokens vecinos de 2×2 y los proyecta linealmente, reduciendo a la mitad la resolución y duplicando los canales. Las cuatro etapas producen mapas de características a 1/4, 1/8, 1/16 y 1/32 de la resolución de entrada, los mismos pasos que ResNet, por lo que Swin se integra en cabezas existentes de detección y segmentación, como una red piramidal de características. La implementación de torchvision muestra ambos mecanismos:

import torch
from torchvision.models import swin_t

# Swin-T architecture; random weights are enough to inspect its structure
model = swin_t().eval()

# Each pair of blocks uses 7x7 windows, the second shifted by 3 patches
regular, shifted = model.features[1]
print(f"Window {regular.attn.window_size}, shift {regular.attn.shift_size} then {shifted.attn.shift_size}")

# features alternates stages with patch merging; stage outputs are (batch, height, width, channels)
x = torch.randn(1, 3, 224, 224)
with torch.no_grad():
    for i, layer in enumerate(model.features):
        x = layer(x)
        if i % 2 == 1:
            print(f"Stage {i // 2 + 1}: {tuple(x.shape)}")

Imprime Window [7, 7], shift [0, 0] then [3, 3], seguido de las salidas de las etapas (1, 56, 56, 96), (1, 28, 28, 192), (1, 14, 14, 384) y (1, 7, 7, 768): cada etapa reduce a la mitad la cuadrícula y duplica los canales, y genera así la pirámide que esperan las cabezas de predicción densa.

Swin Transformer frente a ViT y las CNN#

El ViT original divide las imágenes en parches de 16×16, mantiene una única resolución en todas las capas y aplica atención global, algo adecuado para la clasificación de imágenes, pero costoso con las entradas de alta resolución que requieren la detección y la segmentación. Swin recupera dos sesgos de las redes convolucionales —la localidad y una jerarquía de características—, pero conserva los pesos de la atención, que dependen de la entrada. Sus ventanas locales se diferencian de la atención con ventana deslizante, donde cada token atiende a su propio vecindario, porque las ventanas de Swin son particiones fijas compartidas por los tokens, lo que permite aprovechar eficazmente las multiplicaciones de matrices en GPU.

En su lanzamiento, el modelo más grande, Swin-L preentrenado con ImageNet-22K, alcanzó una precisión top-1 del 87,3 % en ImageNet-1K, un AP de recuadro de 58,7 y un AP de máscara de 51,1 en COCO test-dev, y 53,5 mIoU en ADE20K, los mejores resultados publicados en esos benchmarks de detección y segmentación semántica. Su éxito también impulsó la investigación en convoluciones: ConvNeXt de Meta (2022) modernizó ResNet con decisiones de diseño tomadas de Swin y igualó o superó su precisión.

Swin puede servir como backbone de un modelo Ultralytics personalizado: el módulo TorchVision de un archivo YAML de modelo carga swin_t de torchvision con sus pesos preentrenados de ImageNet, y una cabeza de detección YOLO se entrena con el único mapa de características de paso 32 que devuelve.

Variantes y aplicaciones#

  • Swin Transformer V2: amplió el diseño hasta los 3000 millones de parámetros y admitió imágenes de hasta 1536×1536 píxeles en 2022, mediante atención coseno escalada y un sesgo de posición continuo con escala logarítmica para mantener estable el entrenamiento.
  • Reconocimiento de acciones en vídeo: Video Swin Transformer amplía las ventanas a tres dimensiones, a través del espacio y el tiempo, para clasificar acciones en clips de vídeo.
  • Superresolución y restauración: SwinIR usa bloques Swin para ampliar imágenes, reducir el ruido y eliminar artefactos JPEG.
  • Análisis de imágenes médicas: Swin-Unet y Swin UNETR combinan codificadores Swin con decodificadores de estilo U-Net, y Swin UNETR segmenta tumores cerebrales en volúmenes de RM 3D.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático