Ultralytics YOLO27:

ADE20K-Datensatz#

Der Datensatz ADE20K ist ein groß angelegter Benchmark für die semantische Segmentierung des MIT CSAIL. Er umfasst 20.210 Trainings- und 2.000 Validierungsbilder, die detailliert mit 150 Kategorien aus Innen- und Außenbereichen sowie Objekt- und Materialklassen annotiert sind. Er ist eine etablierte Ressource zum Trainieren und Evaluieren von Modellen für die dichte Szenenerfassung mit Ultralytics YOLO.

Wichtige Funktionen#

  • Der vollständige SceneParsing-Benchmark von ADE20K umfasst 25.562 Bilder: 20.210 für das Training, 2.000 für die Validierung und 3.352 für Tests. Da die Annotationen der Testbilder nicht öffentlich verfügbar sind, verwenden das herunterladbare Archiv ADEChallengeData2016 und die Ultralytics-Konfiguration ade20k.yaml nur die Trainings- und Validierungsabschnitte.
  • Der Datensatz umfasst 150 semantische Klassen aus den Kategorien Innenräume, Außenbereiche, Objekte und sonstige Flächen.
  • Die Annotationen sind dichte Segmentierungsmasken auf Pixelebene, die sich für die Szeneninterpretation eignen.

Datensatzstruktur#

Die Ultralytics-Konfiguration erwartet die offizielle Verzeichnisstruktur von ADEChallengeData2016:

ADEChallengeData2016/
├── images/
│   ├── training/
│   └── validation/
└── annotations/
    ├── training/
    └── validation/
Manueller Download erforderlich

ADE20K enthält kein Skript für den automatischen Download. Lade das Archiv ADEChallengeData2016.zip mit einer Größe von ~1 GB herunter und entpacke es direkt in deinen Ordner datasets/. Der oberste Ordner im Archiv heißt bereits ADEChallengeData2016/. So erhältst du die oben gezeigte passende Verzeichnisstruktur datasets/ADEChallengeData2016/ – erstelle keinen Ordner ADEChallengeData2016, in den du das Archiv entpackst, sonst entsteht ein verschachteltes Verzeichnis datasets/ADEChallengeData2016/ADEChallengeData2016/, das die YAML-Datei nicht findet.

Das Feld masks_dir ist auf annotations gesetzt. Dadurch wird jedes Bild unter images/ mit der entsprechenden Maske unter annotations/ verknüpft. Die ursprünglichen ADE20K-Masken verwenden Quell-Label-IDs, wobei 0 ignoriert wird. Der Abschnitt label_mapping ordnet gültige Labels von 1 bis 150 fortlaufenden Trainings-IDs von 0 bis 149 zu und bildet ignorierte Pixel auf 255 ab.

Anwendungsfälle#

ADE20K wird häufig zum Trainieren und Bewerten von Modellen für Deep Learning in der semantischen Segmentierung und Szeneninterpretation eingesetzt. Die vielfältigen Kategorien und komplexen Szenen machen den Datensatz wertvoll für Anwendungen wie autonome Navigation, Robotik, erweiterte Realität und Bildbearbeitung.

Die große Vielfalt an Innen- und Außenaufnahmen macht ADE20K außerdem zu einem aussagekräftigen Benchmark für die Bewertung der Modellgeneralisierung über verschiedene Domänen hinweg. Vortrainierte YOLO26-Modelle für semantische Segmentierung erreichen auf dem ADE20K-Validierungssatz bis zu 51.5 mIoU – die vollständige Benchmark-Tabelle findest du auf der Seite zu Modellen für semantische Segmentierung. Datensätze im ADE20K-Format sind außerdem vollständig mit der Ultralytics Platform für die Verwaltung von Datensätzen und das Training kompatibel.

YAML-Datei des Datensatzes#

Eine YAML-Datei für den Datensatz definiert die ADE20K-Pfade, Klassen, das Maskenverzeichnis und die Label-Zuordnung. Die Datei ade20k.yaml wird unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ade20k.yaml gepflegt.

ultralytics/cfg/datasets/ade20k.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# ADE20K semantic segmentation dataset (150 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/ade20k
# Example usage: yolo semantic train data=ade20k.yaml model=yolo26n-sem-ade20k.pt
# parent
# ├── ultralytics
# └── datasets
#     └── ADEChallengeData2016 ← downloads here (1 GB)
#         └── images
#         └── annotations

# Dataset root directory
path: ADEChallengeData2016
train: images/training
val: images/validation

masks_dir: annotations # semantic mask directory

# ADE20K 150-class labels
names:
  0: wall
  1: building
  2: sky
  3: floor
  4: tree
  5: ceiling
  6: road
  7: bed
  8: windowpane
  9: grass
  10: cabinet
  11: sidewalk
  12: person
  13: earth
  14: door
  15: table
  16: mountain
  17: plant
  18: curtain
  19: chair
  20: car
  21: water
  22: painting
  23: sofa
  24: shelf
  25: house
  26: sea
  27: mirror
  28: rug
  29: field
  30: armchair
  31: seat
  32: fence
  33: desk
  34: rock
  35: wardrobe
  36: lamp
  37: bathtub
  38: railing
  39: cushion
  40: base
  41: box
  42: column
  43: signboard
  44: chest of drawers
  45: counter
  46: sand
  47: sink
  48: skyscraper
  49: fireplace
  50: refrigerator
  51: grandstand
  52: path
  53: stairs
  54: runway
  55: case
  56: pool table
  57: pillow
  58: screen door
  59: stairway
  60: river
  61: bridge
  62: bookcase
  63: blind
  64: coffee table
  65: toilet
  66: flower
  67: book
  68: hill
  69: bench
  70: countertop
  71: stove
  72: palm
  73: kitchen island
  74: computer
  75: swivel chair
  76: boat
  77: bar
  78: arcade machine
  79: hovel
  80: bus
  81: towel
  82: light
  83: truck
  84: tower
  85: chandelier
  86: awning
  87: streetlight
  88: booth
  89: television receiver
  90: airplane
  91: dirt track
  92: apparel
  93: pole
  94: land
  95: bannister
  96: escalator
  97: ottoman
  98: bottle
  99: buffet
  100: poster
  101: stage
  102: van
  103: ship
  104: fountain
  105: conveyor belt
  106: canopy
  107: washer
  108: plaything
  109: swimming pool
  110: stool
  111: barrel
  112: basket
  113: waterfall
  114: tent
  115: bag
  116: minibike
  117: cradle
  118: oven
  119: ball
  120: food
  121: step
  122: tank
  123: trade name
  124: microwave
  125: pot
  126: animal
  127: bicycle
  128: lake
  129: dishwasher
  130: screen
  131: blanket
  132: sculpture
  133: hood
  134: sconce
  135: vase
  136: traffic light
  137: tray
  138: ashcan
  139: fan
  140: pier
  141: crt screen
  142: plate
  143: monitor
  144: bulletin board
  145: shower
  146: radiator
  147: glass
  148: clock
  149: flag

# Map source label IDs to train IDs; ignore_label is converted to 255.
label_mapping:
  0: ignore_label
  1: 0
  2: 1
  3: 2
  4: 3
  5: 4
  6: 5
  7: 6
  8: 7
  9: 8
  10: 9
  11: 10
  12: 11
  13: 12
  14: 13
  15: 14
  16: 15
  17: 16
  18: 17
  19: 18
  20: 19
  21: 20
  22: 21
  23: 22
  24: 23
  25: 24
  26: 25
  27: 26
  28: 27
  29: 28
  30: 29
  31: 30
  32: 31
  33: 32
  34: 33
  35: 34
  36: 35
  37: 36
  38: 37
  39: 38
  40: 39
  41: 40
  42: 41
  43: 42
  44: 43
  45: 44
  46: 45
  47: 46
  48: 47
  49: 48
  50: 49
  51: 50
  52: 51
  53: 52
  54: 53
  55: 54
  56: 55
  57: 56
  58: 57
  59: 58
  60: 59
  61: 60
  62: 61
  63: 62
  64: 63
  65: 64
  66: 65
  67: 66
  68: 67
  69: 68
  70: 69
  71: 70
  72: 71
  73: 72
  74: 73
  75: 74
  76: 75
  77: 76
  78: 77
  79: 78
  80: 79
  81: 80
  82: 81
  83: 82
  84: 83
  85: 84
  86: 85
  87: 86
  88: 87
  89: 88
  90: 89
  91: 90
  92: 91
  93: 92
  94: 93
  95: 94
  96: 95
  97: 96
  98: 97
  99: 98
  100: 99
  101: 100
  102: 101
  103: 102
  104: 103
  105: 104
  106: 105
  107: 106
  108: 107
  109: 108
  110: 109
  111: 110
  112: 111
  113: 112
  114: 113
  115: 114
  116: 115
  117: 116
  118: 117
  119: 118
  120: 119
  121: 120
  122: 121
  123: 122
  124: 123
  125: 124
  126: 125
  127: 126
  128: 127
  129: 128
  130: 129
  131: 130
  132: 131
  133: 132
  134: 133
  135: 134
  136: 135
  137: 136
  138: 137
  139: 138
  140: 139
  141: 140
  142: 141
  143: 142
  144: 143
  145: 144
  146: 145
  147: 146
  148: 147
  149: 148
  150: 149
# Download URL (manual): https://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip

Verwendung#

Mit den folgenden Codebeispielen kannst du ein YOLO26n-sem-Modell 100 Epochen lang mit einer Bildgröße von 640 auf dem ADE20K-Datensatz trainieren. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite zum Training des Modells.

Trainingsbeispiel
from ultralytics import YOLO

# Ein Modell laden
model = YOLO("yolo26n-sem-ade20k.pt")  # Modell mit Vortraining auf ADE20K laden (für das Training empfohlen)

# Das Modell trainieren
results = model.train(data="ade20k.yaml", epochs=100, imgsz=640)

Zitate, Lizenz und Danksagungen#

ADE20K-Bilder sind ausschließlich für nichtkommerzielle Forschungs- und Bildungszwecke freigegeben. Die Annotationssoftware des Datensatzes steht unter einer separaten BSD-3-Lizenz. Für eine kommerzielle Nutzung ist eine Genehmigung von MIT CSAIL erforderlich.

Wenn du den ADE20K-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Arbeit:

Zitat
@inproceedings{zhou2017scene,
  title={Scene Parsing through ADE20K Dataset},
  author={Zhou, Bolei and Zhao, Hang and Puig, Xavier and Fidler, Sanja and Barriuso, Adela and Torralba, Antonio},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2017}
}

Wir möchten der Computer-Vision-Gruppe von MIT CSAIL dafür danken, dass sie diese wertvolle Ressource für die Computer-Vision-Community erstellt und gepflegt hat. Weitere Informationen zum ADE20K-Datensatz und seinen Erstellern findest du auf der ADE20K-Datensatzwebsite.

Häufig gestellte Fragen#

  • Der ADE20K-Datensatz ist ein groß angelegter Benchmark zur Szeneninterpretation für die semantische Segmentierung. Er umfasst 20.210 Trainingsbilder und 2.000 Validierungsbilder, die öffentlich für 150 Kategorien aus den Bereichen Innenräume, Außenbereiche, Objekte und sonstige Flächen verfügbar sind. Forschende verwenden ADE20K wegen der vielfältigen Szenen, der feingliedrigen Kategorien und standardisierten Bewertungsmetriken wie der mittleren Schnittmenge über Vereinigungsmenge (mIoU). Dadurch eignet sich der Datensatz ideal für den Vergleich dichter Vorhersagemodelle.

  • Mit den folgenden Codebeispielen kannst du ein YOLO26n-sem-Modell 100 Epochen lang mit einer Bildgröße von 640 auf dem ADE20K-Datensatz trainieren. Eine ausführliche Liste der verfügbaren Argumente findest du auf der Seite zum Training des Modells.

    Trainingsbeispiel
    from ultralytics import YOLO
    
    # Ein Modell laden
    model = YOLO("yolo26n-sem-ade20k.pt")  # Modell mit Vortraining auf ADE20K laden (für das Training empfohlen)
    
    # Das Modell trainieren
    results = model.train(data="ade20k.yaml", epochs=100, imgsz=640)
  • Der ADE20K-Datensatz folgt der offiziellen Verzeichnisstruktur von ADEChallengeData2016. Die Bilder liegen unter images/training/ und images/validation/, die zugehörigen Masken unter annotations/training/ und annotations/validation/. Die Ultralytics-YAML-Datei verknüpft jedes Bild über das Feld masks_dir: annotations mit seiner Maske und verwendet label_mapping, um die Quell-Label-IDs 1–150 in fortlaufende Trainings-IDs 0–149 umzuwandeln. Dabei wird das Ignorier-Label auf 255 abgebildet.

  • Ja. Lade das Archiv ADEChallengeData2016.zip (~1 GB) herunter und entpacke es vor dem Training direkt in deinen Ordner datasets/. Der oberste Ordner im Archiv heißt bereits ADEChallengeData2016/. Wenn du das Archiv dort entpackst – und nicht in einem separaten, selbst erstellten Ordner ADEChallengeData2016 –, erhältst du die Verzeichnisstruktur images/ und annotations/, die ade20k.yaml erwartet.

  • Die Annotationsmasken von ADE20K speichern Quell-Label-IDs, wobei 0 die Ignorier- oder Hintergrundklasse bezeichnet. Der Abschnitt label_mapping ordnet gültige Labels von 1 bis 150 fortlaufenden Trainings-IDs von 0 bis 149 zu und weist ignorierten Pixeln 255 zu. So werden diese Pixel während des Trainings und der Validierung bei der Berechnung von Verlust und Metriken ausgeschlossen.

  • Nein. ADE20K-Bilder werden unter Nutzungsbedingungen freigegeben, die ihre Verwendung auf nichtkommerzielle Forschung und Bildung beschränken. Die zugehörige Annotationssoftware steht unter einer separaten BSD-3-Lizenz. Wende dich an MIT CSAIL, um dich über Möglichkeiten einer kommerziellen Lizenzierung zu informieren.

Kommentare