Contents — find the section you need
Des tentatives d'introduction des Transformers dans la segmentation sémantique existaient déjà avant SegFormer, mais nombre d'entre elles reposaient sur des encodages positionnels et des décodeurs complexes. Elles se heurtaient donc à deux problèmes : la précision pouvait chuter lorsque la résolution de test différait de celle de l'entraînement, et le coût de calcul pouvait devenir élevé. SegFormer (Xie, Wang, Yu, Anandkumar, Alvarez et Luo, NeurIPS 2021) résout ces deux problèmes grâce à une conception remarquablement simple : un encodeur hiérarchique sans encodage positionnel et un décodeur All-MLP sans aucune convolution. Cet article examine, étape par étape, le fonctionnement de cette conception, en s'appuyant sur l'article original (arXiv:2105.15203).
Cet article est basé sur l'article original « SegFormer : Conception simple et efficace pour la segmentation sémantique avec des Transformers » (Xie et al., NeurIPS 2021, arXiv:2105.15203).
0. Ce que vous apprendrez
-
Les problèmes que SegFormer s'est efforcé de résoudre dans les modèles de segmentation antérieurs basés sur les Transformers
-
Le fonctionnement de l'encodeur hiérarchique MiT (Mix Transformer) sans encodage positionnel
-
Pourquoi un décodeur composé uniquement de MLP, sans aucune convolution, peut atteindre une précision élevée
-
Mesures du mIoU, du nombre de paramètres et du coût de calcul pour les modèles B0 à B5 sur les jeux de données Cityscapes et ADE20K
-
Comment choisir un modèle en pratique, notamment sa robustesse face à la corruption d'images
1. Qu'est-ce que SegFormer ?
SegFormer est un modèle de segmentation sémantique qui combine un encodeur Transformer hiérarchique (MiT) sans encodage positionnel avec un décodeur All-MLP léger, sans aucune convolution. Son idée centrale est de repenser la répartition des tâches entre l'encodeur et le décodeur : une fois que l'encodeur a généré des caractéristiques à plusieurs résolutions, le décodeur peut être considérablement simplifié.
2. Pourquoi cette conception était-elle nécessaire ?
Utiliser un Vision Transformer (ViT) directement comme encodeur pour la segmentation sémantique pose deux problèmes. Premièrement, les caractéristiques produites par le ViT n'ont qu'une résolution unique. Or, les objets peuvent avoir des tailles très différentes au sein d'une même image, et les modèles de segmentation classiques basés sur les CNN, tels que FCN et U-Net, résolvent ce problème en combinant des caractéristiques à plusieurs résolutions. Un ViT ne produisant qu'une seule résolution perd cette capacité de représentation multi-échelle.
Le second problème est la dépendance à l'encodage positionnel. ViT divise une image en patchs et les transmet à un Transformer. Cependant, ce dernier ne dispose d'aucune information sur la position de chaque patch dans l'image. Un encodage positionnel, fixe ou appris, doit donc être ajouté séparément. Cet encodage étant conçu pour la résolution d'entrée utilisée lors de l'entraînement, une image de résolution différente lors de l'inférence nécessite une interpolation de l'encodage positionnel, ce qui peut réduire la précision. La segmentation requiert souvent des entrées à plus haute résolution que la détection, rendant cette dépendance à la résolution particulièrement problématique.
SegFormer résout ces deux problèmes à la source en utilisant un encodeur hiérarchique et en éliminant complètement l'encodage positionnel.
3. Quel est le format d'entrée ?
Comme pour les autres modèles de segmentation, l'entrée est une image RGB x \in \mathbb{R}^{H \times W \times 3}. SegFormer est évalué sur des images haute résolution (1024×2048) pour Cityscapes et sur des images d'environ 512×512 pour ADE20K. Alors que ViT effectue un sous-échantillonnage avec des patchs grossiers de 16×16 pixels, l'encodeur de SegFormer commence avec des patchs de seulement 4×4 pixels, préservant ainsi davantage de détails au début de l'extraction des caractéristiques.
4. Que prédit-il ?
La sortie est une carte de segmentation à un quart de la résolution d'entrée, où la classe de chaque pixel est représentée par \hat{y} \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times N_{cls}} (N_{cls} étant le nombre de classes). La carte est ensuite ramenée à sa résolution d'origine par interpolation au plus proche voisin ou une méthode similaire. L'idée principale est que si l'encodeur génère des caractéristiques multi-échelles suffisamment riches, le décodeur n'a besoin que d'une combinaison de couches linéaires simples pour les intégrer et les convertir en un masque précis.
5. Architecture de base
SegFormer se compose de deux blocs principaux : un encodeur MiT (Mix Transformer) qui extrait les caractéristiques à quatre résolutions, et un décodeur All-MLP qui combine ces caractéristiques et produit un masque de segmentation.
Figure 1 — L'encodeur MiT produit des caractéristiques à quatre résolutions (1/4, 1/8, 1/16 et 1/32), et le décodeur All-MLP les combine en utilisant uniquement des couches linéaires pour créer un masque de segmentation. La seule convolution se trouve dans le Mix-FFN de l'encodeur ; Le décodeur est entièrement composé de couches linéaires.
Comme l'encodeur construit les caractéristiques à quatre résolutions différentes à l'avance, le décodeur peut obtenir un masque précis avec un traitement quasi minimal : alignement et combinaison des caractéristiques. Cette division du travail explique principalement le faible nombre total de paramètres de SegFormer.
6. Détails techniques des composants
Fusion de patchs superposés — une hiérarchie en quatre étapes
Contrairement à ViT qui divise l'image en patchs une seule fois, l'encodeur MiT réduit progressivement la résolution en quatre étapes. Les résolutions de sortie sont respectivement de 1/4, 1/8, 1/16 et 1/32 de la résolution d'entrée, reproduisant ainsi la structure hiérarchique utilisée par les réseaux de neurones convolutifs (CNN) tels que ResNet.
La méthode de partitionnement des patchs diffère également de celle de ViT, qui utilise des patchs non superposés : les patchs adjacents se chevauchent lors de leur fusion. La première étape utilise la taille de noyau K=7, le pas S=4 et le remplissage P=3 ; les étapes suivantes utilisent K=3, S=2, P=1. Le chevauchement préserve la continuité locale aux limites des patchs (l'information partagée par les patchs voisins) tandis que la carte de caractéristiques est réduite.
Auto-attention efficace
L'auto-attention multi-têtes classique nécessite O(N^2) calculs pour une séquence de longueur N. Comme N devient très grand pour la segmentation haute résolution, cela constitue un goulot d'étranglement important. SegFormer introduit la réduction de séquence, qui compresse les séquences de clés et de valeurs par un facteur de réduction R avant le calcul de l'attention.
Les séquences K, V sont raccourcies de leur longueur initiale N à N/R avant d'être utilisées. Le taux de réduction R pour les étapes 1 à 4 est fixé à [64, 16, 4, 1] : les étapes superficielles, ayant une haute résolution et des séquences longues, subissent une compression importante ; les étapes profondes, ayant une résolution plus faible et des séquences plus courtes, ne subissent aucune compression. Ceci réduit le coût de calcul de O(N^2) à O(N^2/R) et rend l'auto-attention applicable même aux entrées haute résolution.
Mix-FFN — Comment l'encodage positionnel est éliminé
SegFormer peut se passer complètement d'encodage positionnel car il intègre une convolution 3×3 au réseau de neurones à propagation avant (FFN), créant ainsi Mix-FFN.
La convolution 3×3 utilise un remplissage de zéros aux limites de l'image. Ce remplissage introduit indirectement une information sur la position du modèle dans l'image, permettant ainsi d'intégrer cette information aux caractéristiques simplement en passant par Mix-FFN, sans encodage positionnel explicite. Par conséquent, les tests à une résolution différente de celle de l'entraînement ne nécessitent pas d'interpolation d'un encodage positionnel, ce qui pourrait réduire la précision.
Décodeur tout MLP — pourquoi la convolution est inutile
Le décodeur se compose des quatre étapes suivantes, utilisant uniquement des couches linéaires (MLP) :
-
Unification des canaux : chaque caractéristique d'étape F_i est associée au même nombre de canaux C à l'aide d'une couche linéaire indépendante.
-
Suréchantillonnage et concaténation : chaque caractéristique est suréchantillonnée à un quart de la résolution et concaténée le long de la dimension des canaux. 3. Fusion : mapper la caractéristique concaténée de dimension 4C vers la dimension C à l'aide d'une couche linéaire.
-
Prédiction : générer un masque de segmentation avec un canal par classe grâce à une dernière couche linéaire.
L'article original justifie cette conception par une analyse du champ réceptif effectif (ERF). Les décodeurs basés sur les CNN, tels que DeepLabv3+, nécessitent des mécanismes complexes (convolutions dilatées et pooling multi-échelle) pour obtenir un champ réceptif étendu et atteindre une précision élevée. À l'inverse, l'encodeur MiT acquiert naturellement des ERF locaux dans les étapes superficielles et des ERF non locaux couvrant l'ensemble de l'image dans les étapes profondes grâce à l'auto-attention, sans mécanismes supplémentaires. L'encodeur construisant déjà des caractéristiques contenant des informations des échelles locales aux échelles globales, le décodeur n'a pas besoin d'un mécanisme complexe d'expansion du champ réceptif. C'est la raison théorique pour laquelle une simple combinaison de couches linéaires est suffisante.
Protocole d'entraînement
L'article original utilise un protocole d'entraînement simple, sans techniques particulières. L'encodeur MiT est pré-entraîné sur ImageNet-1K, tandis que le décodeur est entraîné à partir d'une initialisation aléatoire. L'algorithme AdamW est utilisé pour l'optimisation, avec un taux d'apprentissage décroissant à partir d'une valeur initiale de 0,00006 selon une loi de puissance (décroissance en loi de puissance de coefficient 1,0). Le nombre d'itérations est de 160 000 sur ADE20K et Cityscapes, et de 80 000 sur COCO-Stuff. L'augmentation des données d'entraînement se limite à un redimensionnement aléatoire (ratio 0,5–2,0), à un retournement horizontal aléatoire et à un recadrage aléatoire (512×512 pour ADE20K, 1024×1024 pour Cityscapes et 640×640 pour B5 sur ADE20K). L'article précise qu'il n'utilise pas de techniques courantes telles que l'extraction d'exemples difficiles en ligne (OHEM), les pertes auxiliaires ou les pertes équilibrées par classe. L'objectif est de démontrer que l'encodeur MiT et le décodeur All-MLP peuvent atteindre un mIoU élevé sans ces ajouts.
7. Comparaison des variantes du modèle
SegFormer est disponible en six tailles, de MiT-B0 à MiT-B5. Voici les résultats mesurés sur Cityscapes et ADE20K, présentés dans le tableau 2 de l'article original.
| Modèle | Paramètres | FLOPs Cityscapes | mIoU Cityscapes (MS) | FLOPs ADE20K | mIoU ADE20K |
|---|---|---|---|---|---|
| SegFormer-B0 | 3,8 M | 125,5 G | 76,2 | 8,4 G | 37,4 |
| SegFormer-B1 | 13,1 M | 243,7 G | 78,5 | 15,9G | 42,2 |
| SegFormer-B2 | 24,2M | 717,1G | 81,0 | 62,4G | 46,5 |
| SegFormer-B3 | 44,0M | 962,9G | 81,7 | 79,0G | 49,4 |
| SegFormer-B4 | 64,1M | 1240,6G | 82,3 | 95,7G | 50,3 |
| SegFormer-B5 | 84,7M | 1460,4G | 84,0 | 183,3G | 51,0 |
Source : Tableau 2 de l’article original (Xie et al., NeurIPS 2021). Le mIoU de Cityscapes est mesuré à l’aide de tests multi-échelles et de retournement gauche-droite (MS). Le nombre de paramètres inclut l'encodeur et le décodeur complets ; même pour B5, le décodeur ne représente qu'environ 4 % du total. À titre de référence, B5 atteint un mIoU de 82,4 avec des tests à échelle unique (SS) et de 84,0 avec des tests à échelle multiple (MS).
L'article compare ces résultats avec l'état de l'art de l'époque et indique que SegFormer-B4 atteint un mIoU de 50,3 % sur ADE20K avec 64,1 millions de paramètres, surpassant ainsi la meilleure méthode de cette période de 2,2 points avec un modèle cinq fois plus petit. B0 maintient un mIoU pratique de 76,2 sur Cityscapes avec seulement 3,8 millions de paramètres, ce qui confirme la pertinence de sa conception axée sur les contours.
8. Ses points faibles
La plupart des faiblesses de SegFormer sont communes aux modèles basés sur Transformer en général. Premièrement, les modèles plus grands (B3 et supérieurs) présentent des coûts d'entraînement et d'inférence élevés. Le nombre d'opérations en virgule flottante (FLOPs) de Cityscapes passe de 125,5 Gbit/s pour la version B0 à 1 460,4 Gbit/s pour la version B5, soit une augmentation de plus de dix fois. Pour la segmentation haute résolution, cette augmentation peut rendre difficile le fonctionnement en temps réel.
La dépendance à des données de pré-entraînement à grande échelle est également un facteur important. L'encodeur MiT est pré-entraîné sur ImageNet-1K ; par conséquent, la qualité et la quantité des données d'ajustement fin ont un impact considérable sur le transfert vers des domaines très différents des données de pré-entraînement, tels que l'imagerie médicale ou satellitaire.
Les très petits objets et les structures fines (par exemple, les câbles et les panneaux de signalisation) ne sont pas non plus faciles à traiter pour SegFormer. La fusion de patchs superposés (Overlapped Patch Merging) effectue un sous-échantillonnage de 4×4 dès la première étape, ce qui peut entraîner une perte d'informations pour des structures de quelques pixels seulement avant d'atteindre les étapes suivantes.
Parallèlement, l'évaluation de la robustesse sur Cityscapes-C présentée dans l'article original constitue un atout majeur. Pour les images corrompues par du bruit gaussien, SegFormer-B5 enregistre une amélioration relative maximale du mIoU de 588 % par rapport à DeepLabv3+ avec une architecture Xception-71 ; pour une corruption de type neige, l’amélioration relative maximale est de 295 %. Ces mesures démontrent une meilleure tolérance à la corruption d’image que les modèles CNN classiques. Cette robustesse serait due au fait que l’auto-attention est moins sensible au bruit local.
9. Comment choisir un modèle en pratique
Pour les dispositifs embarqués et le traitement en temps réel, SegFormer-B0 ou B1 constituent un choix réaliste. B0 offre un bon compromis entre précision et compacité avec 3,8 millions de paramètres et un mIoU de 76,2 sur Cityscapes, ce qui rend son déploiement sur des systèmes embarqués et des drones envisageable.
Pour des applications telles que la reconnaissance de zones praticables pour la conduite autonome, où des images haute résolution et une précision constante sont requises, B2 ou B3 représentent souvent un compromis raisonnable. Les modèles B4 et B5 offrent la plus grande précision, mais leur nombre d'opérations en virgule flottante (FLOPs) sur Cityscapes dépasse 1 200 Gbit/s. Par conséquent, l'inférence en temps réel sur un GPU embarqué nécessite généralement une optimisation telle que la quantification ou la conversion TensorRT.
Pour l'analyse de précision hors ligne d'images médicales ou satellitaires, la précision prime sur les performances en temps réel. Les modèles B4 ou B5 conviennent, avec un ajustement fin sur des données spécifiques au domaine si nécessaire.
Pour les environnements extérieurs soumis à des intempéries ou à des variations de luminosité fréquentes, comme les robots agricoles et les caméras de surveillance extérieures, la robustesse mesurée sur Cityscapes-C constitue un avantage pratique. Comparé aux modèles basés sur les réseaux de neurones convolutifs (CNN) de précision similaire, SegFormer devrait subir une perte de précision moindre en cas de corruption d'image.
Pour apprendre les fondamentaux de la détection d'objets et de la segmentation sémantique, consultez « Introduction à la détection d'objets et à la segmentation sémantique ». Pour connaître les tendances récentes en matière de segmentation, consultez « Tendances technologiques en segmentation sémantique ».
10. Résumé en trois lignes
-
SegFormer combine un encodeur hiérarchique (MiT) qui génère des caractéristiques multi-échelles sans encodage positionnel avec un décodeur All-MLP sans convolution.
-
La convolution 3×3 de Mix-FFN laisse implicitement fuiter des informations positionnelles, ce qui élimine le besoin d'encodage positionnel, tandis que le large champ réceptif effectif du Transformer permet l'utilisation d'un décodeur MLP simple.
-
La famille de méthodes s'étend de B0 (3,8 millions de paramètres, 76,2 mIoU sur Cityscapes) à B5 (84,7 millions de paramètres, 84,0 mIoU), et les résultats mesurés confirment également sa robustesse face à la corruption d'images.
Références
Quelle est la différence entre les résultats de la classification et de la segmentation d'images ?
La classification prédit une étiquette pour l'image entière, tandis que la segmentation…
Prédit une étiquette pour chaque pixel. Les petits objets et les contours ne doivent pas être évalués uniquement avec une précision au niveau de l'image.
Commentaires
Veuillez vous connecter.
Aucune entrée pour le moment.