Contents — find the section you need

Vor SegFormer gab es bereits Versuche, Transformer in die semantische Segmentierung einzuführen. Viele dieser Ansätze basierten jedoch auf Positionskodierungen und komplexen Decodern. Dadurch ergaben sich zwei Probleme: Die Genauigkeit konnte sinken, wenn die Testauflösung von der Trainingsauflösung abwich, und die Berechnung konnte aufwändig werden. SegFormer (Xie, Wang, Yu, Anandkumar, Alvarez und Luo, NeurIPS 2021) löst beide Probleme mit einem bemerkenswert einfachen Design: einem hierarchischen Encoder ohne Positionskodierung und einem All-MLP-Decoder, der vollständig ohne Faltung auskommt. Dieser Artikel untersucht anhand der Originalveröffentlichung (arXiv:2105.15203) Schritt für Schritt, warum dieses Design funktioniert.

Dieser Artikel basiert auf der Originalveröffentlichung „SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers“ (Xie et al., NeurIPS 2021, arXiv:2105.15203).

0. Lerninhalte

  • Die Probleme, die SegFormer bei früheren Transformer-basierten Segmentierungsmodellen lösen wollte

  • Die Funktionsweise des hierarchischen MiT-Encoders (Mix Transformer) ohne Positionskodierung

  • Warum ein Decoder, der ausschließlich aus MLPs ohne Faltung besteht, dennoch eine hohe Genauigkeit erzielen kann

Gemessene mIoU-Werte, Parameteranzahl und Rechenaufwand für B0–B5 auf Cityscapes und ADE20K

  • Wie man in der Praxis ein geeignetes Modell auswählt, einschließlich der Robustheit gegenüber Bildfehlern

1. Was ist SegFormer?

SegFormer ist ein semantisches Segmentierungsmodell, das einen hierarchischen Transformer-Encoder (MiT) ohne Positionskodierung mit einem ressourcenschonenden All-MLP-Decoder kombiniert, der ohne Faltung auskommt. Die zentrale Idee besteht darin, die Arbeitsteilung zwischen Encoder und Decoder neu zu gestalten: Sobald der Encoder Merkmale in verschiedenen Auflösungen erzeugt hat, kann der Decoder deutlich vereinfacht werden.

2. Warum war dieses Design notwendig?

Die direkte Verwendung eines Vision Transformers (ViT) als Encoder für die semantische Segmentierung führt zu zwei Problemen. Erstens haben die von ViT erzeugten Merkmale nur eine einzige Auflösung. Objekte können innerhalb eines Bildes viele verschiedene Größen aufweisen, und herkömmliche CNN-basierte Segmentierungsmodelle wie FCN und U-Net begegnen diesem Problem durch die Kombination von Merkmalen in verschiedenen Auflösungen. Ein ViT, der nur eine Auflösung erzeugt, verliert diese Fähigkeit zur Darstellung in verschiedenen Skalierungen.

Das zweite Problem ist die Abhängigkeit von der Positionskodierung. ViT unterteilt ein Bild in Bildausschnitte und übergibt diese an einen Transformer. Der Transformer selbst besitzt jedoch keine Information über die Position der einzelnen Bildausschnitte. Daher muss eine feste oder gelernte Positionskodierung separat hinzugefügt werden. Da diese Kodierung für die während des Trainings verwendete Eingabeauflösung erstellt wird, erfordert ein Bild mit einer anderen Auflösung zur Inferenzzeit eine Interpolation der Positionskodierung, was die Genauigkeit verringern kann. Segmentierung erfordert oft höher auflösende Eingaben als die Objekterkennung, wodurch diese Auflösungsabhängigkeit besonders problematisch ist.

SegFormer löst beide Probleme an der Wurzel, indem es einen hierarchischen Encoder verwendet und die Positionskodierung vollständig eliminiert.

3. Was ist die Eingabe?

Wie bei anderen Segmentierungsmodellen ist die Eingabe ein RGB-Bild x \in \mathbb{R}^{H \times W \times 3}. SegFormer wird anhand hochauflösender Bilder (1024×2048) für Cityscapes und Bildern mit einer Auflösung von etwa 512×512 für ADE20K evaluiert. Während ViT mit groben 16×16-Pixel-Patches herunterskaliert, beginnt der Encoder von SegFormer mit Patches von nur 4×4 Pixeln, wodurch zu Beginn der Merkmalsextraktion mehr Details erhalten bleiben.

4. Was sagt es voraus?

Die Ausgabe ist eine Segmentierungskarte mit einem Viertel der Eingangsauflösung. Die Klasse jedes Pixels wird als \hat{y} \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times N_{cls}} dargestellt (N_{cls} ist die Anzahl der Klassen). Anschließend wird die ursprüngliche Auflösung mittels Nearest-Neighbor-Interpolation oder einer ähnlichen Methode wiederhergestellt. Die Grundidee ist, dass der Decoder, wenn der Encoder ausreichend reichhaltige Merkmale in verschiedenen Skalen erzeugt, lediglich eine Kombination einfacher linearer Schichten benötigt, um diese zu integrieren und in eine präzise Maske umzuwandeln.

5. Grundlegende Architektur

SegFormer besteht aus zwei Hauptblöcken: einem MiT (Mix Transformer)-Encoder, der Merkmale in vier Auflösungen extrahiert, und einem All-MLP-Decoder, der diese Merkmale kombiniert und eine Segmentierungsmaske ausgibt.

Diagram 1 · Use the button to switch views
SegFormer basic pipeline A pipeline in which an input image passes through MiT encoder Stages 1–4, reducing its resolution from 1/4 to 1/32 while extracting features, and then applies an All-MLP decoder. Input image MiT encoder (no positional encoding) Stage 1 (1/4) Stage 2 (1/8) Stage 3 (1/16) Stage 4 (1/32) Each stage: Overlap Patch Merging Efficient Self-Attention Mix-FFN (3×3 Conv injects position implicitly) All-MLP decoder 1. Unify channels with MLPs 2. Upsample to 1/4 resolution 3. Concatenate 4. Fuse with MLP (4C→C) 5. Predict classes with MLP Mask

Abbildung 1 – Der MiT-Encoder erzeugt Merkmale in vier Auflösungen (1/4, 1/8, 1/16 und 1/32), die der All-MLP-Decoder ausschließlich mit linearen Schichten zu einer Segmentierungsmaske kombiniert. Die einzige Faltung findet im Mix-FFN des Encoders statt. Der Decoder besteht vollständig aus linearen Schichten.

Da der Encoder Merkmale in vier Auflösungen im Voraus erstellt, kann der Decoder mit minimalem Aufwand eine präzise Maske erzeugen: Merkmale ausrichten und kombinieren. Diese Arbeitsteilung ist der Hauptgrund für die geringe Anzahl an Parametern in SegFormer.

6. Technische Details der Komponenten

Zusammenführen überlappender Bildausschnitte – eine vierstufige Hierarchie

Anstatt das Bild wie ViT nur einmal in Bildausschnitte zu unterteilen, reduziert der MiT-Encoder die Auflösung schrittweise in vier Stufen. Die Ausgabeauflösungen betragen 1/4, 1/8, 1/16 und 1/32 der Eingabeauflösung und bilden damit die hierarchische Struktur von CNN-Backbones wie ResNet nach.

Die Methode der Bildausschnittpartitionierung unterscheidet sich auch von den nicht überlappenden Bildausschnitten von ViT: Benachbarte Bildausschnitte überlappen sich beim Zusammenführen. Die erste Stufe verwendet die Kernelgröße K=7, den Stride S=4 und das Padding P=3; spätere Stufen verwenden K=3, S=2, P=1. Die Überlappung erhält die lokale Kontinuität über Patchgrenzen hinweg – die von benachbarten Patches geteilten Informationen – während die Feature-Map reduziert wird.

Effiziente Selbstaufmerksamkeit

Herkömmliche Multi-Head-Selbstaufmerksamkeit erfordert O(N^2) Berechnungen für eine Sequenz der Länge N. Da N bei hochauflösender Segmentierung sehr groß wird, stellt dies einen erheblichen Flaschenhals dar. SegFormer führt die Sequenzreduktion ein, welche die Schlüssel- und Wertsequenzen vor der Berechnung der Aufmerksamkeit um ein Reduktionsverhältnis R komprimiert.

\text{Attention}(Q, K, V) = \text{Softmax}\!\left(\frac{QK^{\top}}{\sqrt{d_{head}}}\right)V

Die K, V Sequenzen werden vor ihrer Verwendung von der Länge N auf N/R reduziert. Das Reduktionsverhältnis R für die Stufen 1–4 ist auf [64, 16, 4, 1] festgelegt: Flache Stufen haben eine hohe Auflösung und lange Sequenzen und werden daher stark komprimiert; tiefe Stufen haben eine geringere Auflösung und kürzere Sequenzen und werden daher nicht komprimiert. Dies reduziert den Rechenaufwand von O(N^2) auf O(N^2/R) und ermöglicht Self-Attention auch für hochauflösende Eingaben.

Mix-FFN – Wie die Positionskodierung eliminiert wird

SegFormer kann die Positionskodierung vollständig vermeiden, indem es eine 3×3-Faltung in das Feedforward-Netzwerk (FFN) integriert und so Mix-FFN erzeugt.

x_{out} = \text{MLP}\big(\text{GELU}(\text{Conv}_{3\times3}(\text{MLP}(x_{in})))\big) + x_{in}

Die 3×3-Faltung verwendet Zero-Padding am Bildrand. Dieser aufgefüllte Rand gibt indirekt einen Hinweis darauf, wo sich das Objekt im Bild befindet. Dadurch werden Positionsinformationen in die Merkmale integriert, indem Mix-FFN die Daten durchläuft – ohne explizite Positionskodierung. Folglich ist beim Testen mit einer anderen Auflösung als der Trainingsauflösung keine Interpolation der Positionskodierung erforderlich, was die Genauigkeit beeinträchtigen könnte.

All-MLP-Decoder – Warum Faltung unnötig ist

Der Decoder besteht aus den folgenden vier Schritten und verwendet ausschließlich lineare Schichten (MLPs).

  1. Kanäle vereinheitlichen: Jedes Merkmal F_i wird mit einer unabhängigen linearen Schicht auf die gleiche Anzahl von Kanälen C abgebildet.

  2. Hochskalieren und Verketten: Jedes Merkmal wird auf 1/4 der Auflösung hochskaliert und entlang der Kanaldimension verkettet.

  3. Fusion: Die verketteten 4C -dimensionalen Merkmale werden mithilfe einer linearen Schicht auf C Dimensionen abgebildet.

  4. Predict: Mithilfe einer abschließenden linearen Schicht wird eine Segmentierungsmaske mit einem Kanal pro Klasse ausgegeben.

\hat{M} = \text{Linear}\Big(\text{Concat}\big(\text{Upsample}(\text{Linear}(F_1)), \dots, \text{Upsample}(\text{Linear}(F_4))\big)\Big)

Die Originalveröffentlichung untermauert dieses Design mit einer Analyse des effektiven rezeptiven Feldes (ERF). CNN-basierte Decoder wie DeepLabv3+ benötigen komplexe Mechanismen – dilatierte Faltungen und Multi-Scale-Pooling –, um ein breites rezeptives Feld zu erhalten und eine hohe Genauigkeit zu erzielen. Im Gegensatz dazu erfasst der MiT-Encoder in flachen Stufen auf natürliche Weise lokale ERFs und in tiefen Stufen nicht-lokale ERFs, die das gesamte Bild abdecken, durch Selbstaufmerksamkeit – ohne zusätzliche Mechanismen. Da der Encoder selbst bereits Merkmale mit Informationen von lokalen bis globalen Skalen erzeugt, benötigt der Decoder keinen komplexen Mechanismus zur Erweiterung des rezeptiven Feldes. Dies ist der theoretische Grund, warum eine einfache Kombination linearer Schichten ausreicht.

Trainingsrezept

Die Originalveröffentlichung verwendet ein einfaches Trainingssetup ohne besondere Tricks. Der MiT-Encoder ist auf ImageNet-1K vortrainiert, während der Decoder mit zufälliger Initialisierung trainiert wird. Zur Optimierung wird AdamW verwendet, wobei die Lernrate von einem Anfangswert von 0,00006 gemäß einem Polynom-Schema (Potenzgesetz-Abfall mit Koeffizient 1,0) abfällt. Die Anzahl der Iterationen beträgt 160.000 für ADE20K und Cityscapes und 80.000 für COCO-Stuff. Die Trainingsaugmentation beschränkt sich auf zufälliges Skalieren mit einem Verhältnis von 0,5–2,0, zufälliges horizontales Spiegeln und zufälliges Zuschneiden (512×512 für ADE20K, 1024×1024 für Cityscapes und 640×640 für B5 auf ADE20K). Die Arbeit gibt ausdrücklich an, dass sie keine weit verbreiteten Verfahren wie OHEM (Online Hard Example Mining), Hilfsverluste oder klassenbalancierte Verluste verwendet. Ziel ist es zu zeigen, dass der MiT-Encoder und der All-MLP-Decoder auch ohne diese Zusätze hohe mIoU-Werte erreichen können.

7. Vergleich der Modellvarianten

SegFormer ist in sechs Größen verfügbar, von MiT-B0 bis MiT-B5. Nachfolgend sind die in Tabelle 2 der Originalveröffentlichung angegebenen Messergebnisse für Cityscapes und ADE20K aufgeführt.

Modell Parameter Cityscapes FLOPs Cityscapes mIoU (MS) ADE20K FLOPs ADE20K mIoU
SegFormer-B0 3,8M 125,5G 76,2 8,4G 37,4
SegFormer-B1 13,1 Mio. 243,7G 78,5 15,9G 42,2
SegFormer-B2 24,2 Mio. 717.1G 81,0 62,4G 46,5
SegFormer-B3 44,0 Mio. 962,9G 81,7 79,0G 49,4
SegFormer-B4 64,1 Mio. 1240,6G 82,3 95,7G 50,3
SegFormer-B5 84,7 Mio. 1460,4G 84,0 183,3G 51,0

Quelle: Tabelle 2 der Originalveröffentlichung (Xie et al., NeurIPS 2021). Der Cityscapes mIoU-Wert wurde mit Multi-Scale- und Links-Rechts-Flip-Tests (MS) gemessen. Die Parameteranzahl umfasst den vollständigen Encoder und Decoder; selbst bei B5 beträgt der Anteil des Decoders nur etwa 4 %. Zum Vergleich: B5 erreicht 82,4 mIoU mit Single-Scale-Tests (SS) und 84,0 mIoU mit MS-Tests.

Die Veröffentlichung vergleicht diese Ergebnisse mit dem damaligen Stand der Technik und berichtet, dass SegFormer-B4 mit 64,1 Millionen Parametern einen mIoU-Wert von 50,3 % auf ADE20K erreicht und damit die beste Methode dieser Zeit um 2,2 Punkte übertrifft – und das mit einem Modell, das nur etwa ein Fünftel so groß ist. B0 erzielt einen praxisnahen Cityscapes mIoU-Wert von 76,2 mit nur 3,8 Millionen Parametern, was die kantenorientierte Architektur des Modells bestätigt.

8. Womit es zu kämpfen hat

Die meisten Schwächen von SegFormer sind typisch für Transformer-basierte Modelle. Erstens: Größere Modelle (B3 und höher) verursachen hohe Trainings- und Inferenzkosten. Die FLOPs von Cityscapes steigen von 125,5 G für B0 auf 1460,4 G für B5 – mehr als das Zehnfache. Bei hochauflösender Segmentierung kann dies die Echtzeitverarbeitung erschweren.

Die Abhängigkeit von umfangreichen Trainingsdaten ist ebenfalls relevant. Der MiT-Encoder ist auf ImageNet-1K vortrainiert, daher beeinflussen Qualität und Quantität der Feinabstimmungsdaten die Übertragung auf Bereiche, die sich deutlich von den Trainingsdaten unterscheiden, wie z. B. medizinische oder Satellitenbilder, erheblich.

Sehr kleine Objekte und dünne Strukturen – beispielsweise Kabel und Schilder – stellen auch für SegFormer eine Herausforderung dar. Die Methode „Overlapped Patch Merging“ reduziert die Auflösung bereits im ersten Schritt um den Faktor 4×4, sodass Strukturen mit nur wenigen Pixeln Breite bereits vor Erreichen tieferer Verarbeitungsstufen Informationen verlieren können.

Gleichzeitig ist die im Originalartikel beschriebene Robustheitsbewertung anhand von Cityscapes-C ein deutlicher Vorteil. Bei verrauschten Bildern mit hinzugefügtem Gaußschen Rauschen erzielt SegFormer-B5 eine maximale relative Verbesserung des mIoU-Werts von 588 % gegenüber DeepLabv3+ mit einem Xception-71-Backbone; bei schneeähnlichen Störungen beträgt die maximale relative Verbesserung 295 %. Diese Messungen zeigen eine höhere Toleranz gegenüber Bildfehlern als herkömmliche CNN-basierte Modelle. Diese Robustheit wird darauf zurückgeführt, dass die Selbstaufmerksamkeit weniger leicht von lokalem Rauschen beeinflusst wird.

9. Wie man in der Praxis ein Modell auswählt

Für Edge-Geräte und Echtzeitverarbeitung sind SegFormer-B0 oder B1 realistische Optionen. B0 bietet mit 3,8 Millionen Parametern und 76,2 Mio. IoU auf Cityscapes ein ausgewogenes Verhältnis zwischen Genauigkeit und Kompaktheit und ermöglicht so den Einsatz auf eingebetteten Systemen und Drohnen.

Für Anwendungen wie die Erkennung befahrbarer Bereiche beim autonomen Fahren, die hochauflösende Bilder und gleichbleibende Genauigkeit erfordern, stellen B2 oder B3 oft einen guten Kompromiss dar. B4 und B5 bieten die höchste Genauigkeit, ihre Cityscapes-FLOPs übersteigen jedoch 1200G. Daher ist für Echtzeit-Inferenz auf einer fahrzeuginternen GPU in der Regel eine Optimierung wie Quantisierung oder TensorRT-Konvertierung erforderlich.

Für die Offline-Präzisionsanalyse von medizinischen oder Satellitenbildern hat Genauigkeit Vorrang vor Echtzeitleistung. B4 oder B5 sind geeignet, gegebenenfalls mit Feinabstimmung anhand domänenspezifischer Daten.

Für Außenumgebungen mit häufig wechselndem Wetter oder Lichtverhältnissen, wie z. B. Agrarroboter und Überwachungskameras im Außenbereich, ist die auf Cityscapes-C gemessene Robustheit ein praktischer Vorteil. Im Vergleich zu CNN-basierten Modellen ähnlicher Genauigkeit ist bei SegFormer mit einem geringeren Genauigkeitsverlust bei Bildfehlern zu rechnen.

Grundlagen der Objekterkennung und semantischen Segmentierung finden Sie unter „Einführung in die Objekterkennung und semantische Segmentierung“. Aktuelle Trends in der Segmentierung werden unter „Technologietrends in der semantischen Segmentierung“ beschrieben.

10. Kurzzusammenfassung

  • SegFormer kombiniert einen hierarchischen Encoder (MiT), der Merkmale auf verschiedenen Skalen ohne Positionskodierung erzeugt, mit einem All-MLP-Decoder, der ohne Faltung auskommt.

  • Die 3×3-Faltung in Mix-FFN liefert implizit Positionsinformationen, wodurch die Positionskodierung entfällt. Gleichzeitig ermöglicht das breite effektive rezeptive Feld des Transformers einen einfachen MLP-Decoder.

Die Modellfamilie reicht von B0 (3,8 Mio. Parameter, 76,2 mIoU bei Cityscapes) bis B5 (84,7 Mio. Parameter, 84,0 mIoU), und die Messergebnisse bestätigen auch ihre Robustheit gegenüber Bildfehlern.

Referenzen

Überprüfen Sie Ihr Verständnis
Wie unterscheiden sich die Ergebnisse von Bildklassifizierung und -segmentierung?

Die Klassifizierung sagt eine Bezeichnung für das gesamte Bild voraus, während die Segmentierung eine Bezeichnung für jedes einzelne Element vorhersagt. Pixel. Kleine Objekte und Konturen sollten nicht nur anhand der Bildgenauigkeit beurteilt werden.

...

What to read next

Review the backgroundYOLO11 ausführlich erklärt – Was haben C3k2 und C2PSA gegenüber YOLOv8 verändert?Continue the seriesEinführung in maschinelles Lernen: Pose-SchätzungExplore another aspect of this fieldBenchmark für lokale LLMs: Erste Antwortzeit, Generierungsrate und Speicher