Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Swin Transformer

Swin Transformer est un Transformer de vision hiérarchique qui calcule l’auto-attention dans des fenêtres locales décalées, de sorte que son coût augmente de façon linéaire avec la taille de l’image.

Swin Transformer, abréviation de Shifted Window Transformer, est un transformer de vision hiérarchique qui calcule l’auto-attention au sein de petites fenêtres locales et décale ces fenêtres entre les couches consécutives. Ze Liu et ses collègues de Microsoft Research Asia l’ont présenté dans l’article de 2021 Swin Transformer : transformer de vision hiérarchique utilisant des fenêtres décalées, qui a remporté le prix Marr du meilleur article à ICCV 2021. Les fenêtres locales font croître linéairement le coût de l’attention en fonction du nombre de pixels, plutôt que de façon quadratique, et la fusion des patchs par étapes produit des cartes de caractéristiques mult échelles, comme celles d’un réseau neuronal convolutif. Ces propriétés ont rendu les transformers utilisables comme backbones polyvalents pour la détection d’objets et la segmentation d’images haute résolution, au-delà de la classification.

Fonctionnement des fenêtres décalées#

Swin commence par diviser l’image en patchs de 4×4 pixels et projette chacun d’eux dans un embedding de token ; une image de 224×224 devient ainsi une grille de tokens de 56×56 avec 96 canaux dans le modèle Tiny. L’attention globale sur l’ensemble des 3 136 tokens comparerait chacun d’eux à tous les autres ; Swin divise la grille en fenêtres non chevauchantes de 7×7 tokens et ne calcule l’attention qu’à l’intérieur de chacune. L’article donne le coût de l’attention globale comme 4hwC² + 2(hw)²C pour une grille h×w à C canaux, contre 4hwC² + 2M²hwC pour des fenêtres de M×M tokens, ce qui est linéaire en hw.

Les fenêtres seules n’échangeraient jamais d’information ; un bloc sur deux décale donc la grille de fenêtres d’une demi-fenêtre, soit 3 tokens, de sorte que les nouvelles fenêtres chevauchent les anciennes frontières. Pour conserver un nombre constant de fenêtres, l’implémentation fait pivoter cycliquement la carte de caractéristiques et masque l’attention entre les tokens qui n’étaient pas voisins dans l’image d’origine. Chaque bloc ajoute aussi aux scores d’attention un biais de position relative appris.

Entre les étapes, une couche de fusion de patchs concatène chaque groupe de 2×2 tokens voisins et le projette linéairement, divisant la résolution par deux et doublant le nombre de canaux. Les quatre étapes produisent des cartes de caractéristiques à 1/4, 1/8, 1/16 et 1/32 de la résolution d’entrée, soit les mêmes strides que ResNet ; Swin s’intègre ainsi aux têtes de détection et de segmentation existantes, comme un réseau pyramidal de caractéristiques. L’implémentation torchvision présente les deux mécanismes :

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)}")

Le programme affiche Window [7, 7], shift [0, 0] then [3, 3], suivi des sorties des étapes (1, 56, 56, 96), (1, 28, 28, 192), (1, 14, 14, 384) et (1, 7, 7, 768) : chaque étape réduit la grille de moitié et double le nombre de canaux, produisant la pyramide attendue par les têtes de prédiction dense.

Swin Transformer, ViT et réseaux convolutifs#

Le ViT d’origine découpe les images en patchs de 16×16, conserve une seule résolution à travers toutes les couches et applique une attention globale. Cela convient à la classification d’images, mais devient coûteux pour les images haute résolution utilisées en détection et en segmentation. Swin réintroduit deux a priori des réseaux convolutifs — la localité et une hiérarchie de caractéristiques — tout en conservant les poids dépendants des entrées du mécanisme d’attention. Ses fenêtres locales diffèrent de l’attention à fenêtre glissante, où chaque token porte son attention sur son propre voisinage : les fenêtres de Swin sont des partitions fixes communes aux tokens, ce qui permet d’effectuer efficacement les multiplications matricielles sur GPU.

À sa sortie, le plus grand modèle, Swin-L préentraîné sur ImageNet-22K, a atteint une précision top-1 de 87,3 % sur ImageNet-22K, un AP de 58,7 pour les boîtes et de 51,1 pour les masques sur COCO test-dev, ainsi qu’un mIoU de 53,5 sur ADE20K, les meilleurs résultats publiés sur ces benchmarks de détection et de segmentation sémantique. Sa réussite a également stimulé la recherche sur les réseaux convolutifs : ConvNeXt de Meta (2022) a modernisé ResNet en reprenant des choix de conception de Swin et a égalé ou dépassé sa précision.

Swin peut servir de backbone à un modèle Ultralytics personnalisé : le module TorchVision d’un fichier YAML de modèle charge swin_t de torchvision avec ses poids ImageNet préentraînés, et une tête de détection YOLO s’entraîne sur l’unique carte de caractéristiques stride-32 qu’il renvoie.

Variantes et applications#

  • Swin Transformer V2 : la conception a été étendue à 3 milliards de paramètres et à des images allant jusqu’à 1 536×1 536 pixels en 2022, avec une attention cosinus mise à l’échelle et un biais de position continu à espacement logarithmique pour stabiliser l’entraînement.
  • Reconnaissance d’actions vidéo : Video Swin Transformer étend les fenêtres à trois dimensions, dans l’espace et le temps, pour classifier les actions dans des séquences vidéo.
  • Super-résolution et restauration : SwinIR utilise des blocs Swin pour agrandir les images, réduire le bruit et supprimer les artefacts JPEG.
  • Analyse d’images médicales : Swin-Unet et Swin UNETR associent des encodeurs Swin à des décodeurs de type U-Net, et Swin UNETR segmente les tumeurs cérébrales dans des volumes d’IRM 3D.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique