> ## Documentation Index
> Fetch the complete documentation index at: https://avala.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Label-Taxonomie & Ontologie

> Effektive Label-Taxonomien mit Klassen, Attributen und Hierarchien entwerfen

Eine gut gestaltete Label-Taxonomie ist die Grundlage jedes Annotationsprojekts. Diese Seite behandelt, wie Sie Ihre Objektklassen strukturieren, Attribute konfigurieren und Hierarchien aufbauen, die konsistente, hochwertige Trainingsdaten produzieren.

## Was ist eine Ontologie?

Im Kontext der Datenannotation ist eine **Ontologie** (oder Label-Taxonomie) das vollständige Schema von Klassen, Attributen und Beziehungen, das Annotatoren zum Labeln von Daten verwenden. Sie definiert:

* **Was** für Objekte zu labeln sind (Objektklassen)
* **Wie** sie beschrieben werden (Attribute und Eigenschaften)
* **Wie** Klassen zueinander in Beziehung stehen (Hierarchie und Gruppierung)

Eine klare Ontologie reduziert die Verwirrung der Annotatoren, verbessert das Inter-Annotator-Agreement und produziert sauberere Trainingsdaten für Ihre Modelle.

## Objektklassen

Objektklassen sind die Kernbausteine Ihrer Taxonomie. Jede Klasse repräsentiert eine Kategorie von Objekten, die Annotatoren in den Daten identifizieren und labeln werden.

### Klassen definieren

Beim Erstellen eines Projekts in Avala definieren Sie Ihre Label-Konfiguration als Liste von Klassen:

```json theme={null}
{
  "labels": [
    { "name": "car", "color": "#FF0000" },
    { "name": "pedestrian", "color": "#00FF00" },
    { "name": "cyclist", "color": "#0000FF" },
    { "name": "truck", "color": "#FFA500" },
    { "name": "bus", "color": "#800080" }
  ]
}
```

Jede Klasse hat einen eindeutigen Namen und eine Anzeigefarbe, die im Annotationseditor verwendet wird. Wählen Sie Farben, die sich visuell voneinander und von häufigen Hintergrundfarben in Ihren Daten unterscheiden.

### Best Practices für Klassennamen

| Praxis                                             | Beispiel                                                                | Warum                                                 |
| -------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------- |
| Verwenden Sie kleingeschriebene, spezifische Namen | `sedan`, `pickup_truck`                                                 | Reduziert Mehrdeutigkeit                              |
| Vermeiden Sie überlappende Definitionen            | Verwenden Sie nicht sowohl `car` als auch `vehicle` auf derselben Ebene | Verhindert Annotator-Verwirrung                       |
| Seien Sie konsistent mit Trennzeichen              | `traffic_light` nicht `traffic-light` oder `trafficLight`               | Konsistentes Parsing in Trainingspipelines            |
| Negative/Hintergrundklassen nur bei Bedarf         | `unknown`, `ignore_region`                                              | Manche Modelle erfordern explizite Hintergrund-Labels |

## Attribute

Attribute fügen jeder Annotation strukturierte Metadaten über die Objektklasse hinaus hinzu. Sie ermöglichen Annotatoren, Eigenschaften wie Sichtbarkeit, Pose oder Zustand zu beschreiben.

### Attributtypen

Avala unterstützt mehrere Attributtypen, die Sie an jede Objektklasse anhängen können:

| Typ                 | Beschreibung                                 | Wann verwenden                            | Beispiel                                            |
| ------------------- | -------------------------------------------- | ----------------------------------------- | --------------------------------------------------- |
| **Dropdown**        | Einzelauswahl aus einer vordefinierten Liste | Sich gegenseitig ausschließende Optionen  | Verdeckung: `none`, `partial`, `heavy`              |
| **Checkbox**        | Boolescher Schalter                          | Einfache Ja/Nein-Flags                    | `is_parked: true/false`                             |
| **Text**            | Freitexteingabe                              | Eindeutige Bezeichner oder Beschreibungen | Kennzeichen                                         |
| **Zahl**            | Numerischer Wert                             | Messungen oder Zählungen                  | Geschätzte Entfernung in Metern                     |
| **Mehrfachauswahl** | Mehrere Auswahlmöglichkeiten aus einer Liste | Gleichzeitige, nicht-exklusive Zustände   | Sichtbar: `headlights`, `taillights`, `turn_signal` |

<img src="https://mintcdn.com/avala/QI4wcFsXqwG8KGbR/images/reference/attribute-types-comparison-light.svg?fit=max&auto=format&n=QI4wcFsXqwG8KGbR&q=85&s=866d0c1d56119fc7d7f88e48e751d2aa" alt="Vergleich der Attributtypen" className="block dark:hidden w-full" width="400" height="150" data-path="images/reference/attribute-types-comparison-light.svg" />

<img src="https://mintcdn.com/avala/QI4wcFsXqwG8KGbR/images/reference/attribute-types-comparison.svg?fit=max&auto=format&n=QI4wcFsXqwG8KGbR&q=85&s=4f02fa3d4a69dc7282f63ae245d406f0" alt="Vergleich der Attributtypen" className="hidden dark:block w-full" width="400" height="150" data-path="images/reference/attribute-types-comparison.svg" />

### Attribute konfigurieren

Attribute werden in der Klassifikationskonfiguration des Projekts zusammen mit der Label-Konfiguration definiert:

```json theme={null}
{
  "labels": [
    { "name": "car", "color": "#FF0000" }
  ],
  "classification": {
    "attributes": [
      {
        "name": "occlusion",
        "type": "dropdown",
        "options": ["none", "partial", "heavy"],
        "required": true,
        "applies_to": ["car", "pedestrian", "cyclist"]
      },
      {
        "name": "is_parked",
        "type": "checkbox",
        "required": false,
        "applies_to": ["car", "truck", "bus"]
      },
      {
        "name": "truncation",
        "type": "dropdown",
        "options": ["none", "partial", "heavy"],
        "required": true,
        "applies_to": ["car", "pedestrian", "cyclist"]
      }
    ]
  }
}
```

### Bedingte Attribute

Verwenden Sie das Feld `applies_to`, um Attribute nur für relevante Klassen anzuzeigen. Dies hält die Benutzeroberfläche des Annotators sauber — ein `pedestrian` benötigt kein `is_parked`-Attribut, und eine `traffic_light` benötigt kein `truncation`.

<Tip>
  Markieren Sie Attribute als `required` für Eigenschaften, von denen Ihre Modelltrainingspipeline abhängt. Lassen Sie optionale Attribute für ergänzende Metadaten, die nützlich, aber nicht kritisch sind.
</Tip>

## Hierarchische Taxonomien

Für komplexe Domänen werden flache Klassenlisten unhandlich. Hierarchische Taxonomien gruppieren verwandte Klassen unter Oberkategorien.

### Beispiel: Fahrzeugtaxonomie

```
Vehicle
├── Car
│   ├── Sedan
│   ├── SUV
│   └── Hatchback
├── Truck
│   ├── Pickup
│   └── Semi
├── Bus
│   ├── City Bus
│   └── School Bus
└── Motorcycle
```

### Wann Hierarchien verwenden

| Szenario                 | Empfehlung                                                    |
| ------------------------ | ------------------------------------------------------------- |
| Weniger als 15 Klassen   | Flache Liste ist einfacher und schneller                      |
| 15-50 Klassen            | In 3-5 Oberkategorien gruppieren                              |
| 50+ Klassen              | Mehrstufige Hierarchie mit Suche verwenden                    |
| Klassen teilen Attribute | Unter Elternklasse gruppieren, damit Attribute vererbt werden |

### Hierarchien entwerfen

1. **Beginnen Sie breit, dann verfeinern Sie.** Starten Sie mit Oberkategorien (`vehicle`, `pedestrian`, `infrastructure`) und fügen Sie Spezifität nur hinzu, wo Ihr Modell sie benötigt.
2. **Jede Blattklasse sollte eindeutig sein.** Wenn Annotatoren nicht zuverlässig zwischen zwei Unterklassen unterscheiden können, führen Sie sie zusammen.
3. **Tiefe und Breite ausbalancieren.** Tiefe Hierarchien (4+ Ebenen) verlangsamen Annotatoren. Bevorzugen Sie breitere Bäume mit 2-3 Ebenen.

## Einzellabel- vs. Mehrlabel-Klassifikation

Avala unterstützt beide Klassifikationsmodi je nach Ihren Projektanforderungen.

### Einzellabel

Jedes Objekt oder jede Szene erhält genau ein Klassenlabel. Dies ist der Standard für die meisten Annotationstypen.

* Objekterkennung: Jede Bounding Box erhält eine Klasse
* Szenenklassifikation: Jedes Bild erhält eine Kategorie

### Mehrlabel

Ein Objekt oder eine Szene kann gleichzeitig mehrere Labels erhalten. Verwenden Sie dies, wenn Kategorien sich nicht gegenseitig ausschließen.

* Ein Bild kann sowohl `rainy` als auch `nighttime` sein
* Ein Fahrzeug kann sowohl `damaged` als auch `parked` sein

Konfigurieren Sie Mehrlabel-Klassifikation in der Klassifikationskonfiguration Ihres Projekts, indem Sie den Klassifikationstyp auf Aufgabenebene festlegen:

```json theme={null}
{
  "classification": {
    "type": "multi-label",
    "categories": [
      { "name": "weather", "options": ["clear", "rainy", "foggy", "snowy"] },
      { "name": "time_of_day", "options": ["daytime", "nighttime", "dawn", "dusk"] },
      { "name": "road_condition", "options": ["dry", "wet", "icy"] }
    ]
  }
}
```

## Checkliste für das Ontologie-Design

Bevor Sie Ihr Annotationsprojekt starten, überprüfen Sie Ihre Ontologie anhand dieser Checkliste:

| Prüfung                       | Frage                                                                      |
| ----------------------------- | -------------------------------------------------------------------------- |
| **Vollständigkeit**           | Hat jedes Objekt, das Ihr Modell erkennen muss, eine Klasse?               |
| **Gegenseitige Exklusivität** | Kann ein Annotator immer genau eine Klasse ohne Mehrdeutigkeit zuweisen?   |
| **Attributabdeckung**         | Sind alle für das Training benötigten Eigenschaften als Attribute erfasst? |
| **Konsistente Granularität**  | Sind Klassen auf derselben Ebene gleich spezifisch?                        |
| **Klarheit für Annotatoren**  | Kann ein neuer Annotator jede Klasse allein anhand ihres Namens verstehen? |
| **Modellabstimmung**          | Entspricht die Taxonomie dem, was Ihre Modellarchitektur erwartet?         |
| **Skalierbarkeit**            | Können Sie später neue Klassen hinzufügen, ohne umzustrukturieren?         |

## Häufige Fehler

### Überdetaillierte Klassen

Zu viele feingranulare Klassen führen zu niedrigem Inter-Annotator-Agreement und spärlichen Trainingsdaten pro Klasse.

**Problem:** 50 Fahrzeug-Unterklassen, von denen die meisten weniger als 100 Beispiele haben.

**Lösung:** Beginnen Sie mit 5-10 breiten Klassen. Fügen Sie Unterklassen nur hinzu, wenn Sie genügend Daten haben und Ihr Modell von der Unterscheidung profitiert.

### Mehrdeutige Grenzen

Wenn zwei Klassen sich konzeptionell überschneiden, werden Annotatoren sich uneinig sein, welche zu verwenden ist.

**Problem:** Sowohl `van` als auch `minivan` existieren, aber Annotatoren können sie nicht zuverlässig unterscheiden.

**Lösung:** Entweder zu einer einzelnen Klasse zusammenführen oder explizite visuelle Richtlinien mit Referenzbildern bereitstellen, die die Grenze aufzeigen.

### Fehlende Sonderfälle

Reale Daten enthalten Objekte, die nicht sauber in Ihre Taxonomie passen.

**Problem:** Ein Annotator trifft auf einen Golfwagen, aber die Taxonomie hat nur `car`, `truck` und `motorcycle`.

**Lösung:** Fügen Sie eine Sammelklasse wie `other_vehicle` hinzu und überprüfen Sie regelmäßig die damit gelabelten Elemente, um Klassen zu identifizieren, die Sie hinzufügen müssen.

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Grundkonzepte" icon="book" href="/docs/de/getting-started/concepts">
    Die grundlegenden Bausteine der Avala Plattform überprüfen.
  </Card>

  <Card title="Qualitätskontrolle" icon="shield-check" href="/docs/annotation/guides/quality-control">
    Prüf-Workflows einrichten, um die Annotationsqualität zu validieren.
  </Card>

  <Card title="Annotationstypen" icon="pen-to-square" href="/docs/annotation/reference/annotation-types">
    JSON-Formate für Bounding Boxes, Polygone, Quader und mehr ansehen.
  </Card>

  <Card title="Erster Datensatz" icon="rocket" href="/docs/annotation/tutorials/first-dataset">
    Daten hochladen und Ihr erstes Annotationsprojekt erstellen.
  </Card>
</CardGroup>
