Passer au contenu principal
Une taxonomie d’étiquettes bien conçue est le fondement de tout projet d’annotation. Cette page explique comment structurer vos classes d’objets, configurer les attributs et construire des hiérarchies qui produisent des données d’entraînement cohérentes et de haute qualité.

Qu’est-ce qu’une ontologie ?

Dans le contexte de l’annotation de données, une ontologie (ou taxonomie d’étiquettes) est le schéma complet de classes, attributs et relations que les annotateurs utilisent pour étiqueter les données. Elle définit :
  • Quels objets étiqueter (classes d’objets)
  • Comment les décrire (attributs et propriétés)
  • Comment les classes sont liées entre elles (hiérarchie et regroupement)
Une ontologie claire réduit la confusion des annotateurs, améliore l’accord inter-annotateurs et produit des données d’entraînement plus propres pour vos modèles.

Classes d’objets

Les classes d’objets sont les éléments de base de votre taxonomie. Chaque classe représente une catégorie d’objet que les annotateurs identifieront et étiquetteront dans les données.

Définir les classes

Lors de la création d’un projet dans Avala, vous définissez votre configuration d’étiquettes comme une liste de classes :
{
  "labels": [
    { "name": "car", "color": "#FF0000" },
    { "name": "pedestrian", "color": "#00FF00" },
    { "name": "cyclist", "color": "#0000FF" },
    { "name": "truck", "color": "#FFA500" },
    { "name": "bus", "color": "#800080" }
  ]
}
Chaque classe a un nom unique et une couleur d’affichage utilisée dans l’éditeur d’annotation. Choisissez des couleurs visuellement distinctes les unes des autres et des couleurs d’arrière-plan courantes dans vos données.

Bonnes pratiques de nommage des classes

PratiqueExemplePourquoi
Utilisez des noms en minuscules et spécifiquessedan, pickup_truckRéduit l’ambiguïté
Évitez les définitions qui se chevauchentN’ayez pas à la fois car et vehicle au même niveauÉvite la confusion des annotateurs
Soyez cohérent avec les séparateurstraffic_light et non traffic-light ou trafficLightAnalyse cohérente dans les pipelines d’entraînement
N’incluez des classes négatives/d’arrière-plan que si nécessaireunknown, ignore_regionCertains modèles nécessitent des étiquettes d’arrière-plan explicites

Attributs

Les attributs ajoutent des métadonnées structurées à chaque annotation au-delà de la classe d’objet. Ils permettent aux annotateurs de décrire des propriétés comme la visibilité, la pose ou l’état.

Types d’attributs

Avala supporte plusieurs types d’attributs que vous pouvez attacher à n’importe quelle classe d’objet :
TypeDescriptionQuand l’utiliserExemple
Liste déroulanteSélection unique dans une liste prédéfinieOptions mutuellement exclusivesOcclusion : none, partial, heavy
Case à cocherBascule booléenneIndicateurs simples oui/nonis_parked: true/false
TexteSaisie de texte libreIdentifiants ou descriptions uniquesNuméro de plaque d’immatriculation
NombreValeur numériqueMesures ou comptagesDistance estimée en mètres
Sélection multipleSélections multiples dans une listeÉtats concurrents non exclusifsVisible : headlights, taillights, turn_signal
Comparaison des types d'attributs

Configurer les attributs

Les attributs sont définis dans la configuration de classification du projet aux côtés de la configuration des étiquettes :
{
  "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"]
      }
    ]
  }
}

Attributs conditionnels

Utilisez le champ applies_to pour afficher les attributs uniquement pour les classes pertinentes. Cela garde l’interface de l’annotateur propre — un pedestrian n’a pas besoin d’un attribut is_parked, et un traffic_light n’a pas besoin de truncation.
Marquez les attributs comme required pour les propriétés dont votre pipeline d’entraînement de modèle dépend. Laissez les attributs optionnels pour les métadonnées supplémentaires utiles mais non critiques.

Taxonomies hiérarchiques

Pour les domaines complexes, les listes de classes plates deviennent difficiles à gérer. Les taxonomies hiérarchiques regroupent les classes liées sous des catégories parentes.

Exemple : taxonomie de véhicules

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

Quand utiliser les hiérarchies

ScénarioRecommandation
Moins de 15 classesUne liste plate est plus simple et rapide
15-50 classesRegroupez en 3-5 catégories de premier niveau
Plus de 50 classesUtilisez une hiérarchie multi-niveaux avec recherche
Les classes partagent des attributsRegroupez sous un parent pour que les attributs soient hérités

Concevoir les hiérarchies

  1. Commencez large, puis affinez. Débutez avec des catégories de premier niveau (vehicle, pedestrian, infrastructure) et ajoutez de la spécificité uniquement là où votre modèle en a besoin.
  2. Chaque classe feuille doit être non ambiguë. Si les annotateurs ne peuvent pas distinguer de manière fiable deux sous-classes, fusionnez-les.
  3. Équilibrez profondeur et largeur. Les hiérarchies profondes (4+ niveaux) ralentissent les annotateurs. Préférez des arbres plus larges avec 2-3 niveaux.

Classification mono-étiquette vs multi-étiquette

Avala supporte les deux modes de classification selon les besoins de votre projet.

Mono-étiquette

Chaque objet ou scène reçoit exactement une étiquette de classe. C’est le mode par défaut pour la plupart des types d’annotation.
  • Détection d’objets : chaque boîte englobante reçoit une classe
  • Classification de scène : chaque image reçoit une catégorie

Multi-étiquette

Un objet ou une scène peut recevoir plusieurs étiquettes simultanément. Utilisez ceci lorsque les catégories ne sont pas mutuellement exclusives.
  • Une image peut être à la fois rainy et nighttime
  • Un véhicule peut être à la fois damaged et parked
Configurez la classification multi-étiquette dans la configuration de classification de votre projet en définissant le type de classification au niveau de la tâche :
{
  "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"] }
    ]
  }
}

Liste de vérification de conception d’ontologie

Avant de démarrer votre projet d’annotation, vérifiez votre ontologie par rapport à cette liste :
VérificationQuestion
ComplétudeChaque objet que votre modèle doit détecter a-t-il une classe ?
Exclusivité mutuelleUn annotateur peut-il toujours assigner exactement une classe sans ambiguïté ?
Couverture des attributsToutes les propriétés nécessaires à l’entraînement sont-elles capturées comme attributs ?
Granularité cohérenteLes classes au même niveau sont-elles également spécifiques ?
Clarté pour l’annotateurUn nouvel annotateur peut-il comprendre chaque classe uniquement par son nom ?
Alignement avec le modèleLa taxonomie correspond-elle à ce que l’architecture de votre modèle attend ?
ÉvolutivitéPouvez-vous ajouter de nouvelles classes plus tard sans restructurer ?

Pièges courants

Sur-spécification des classes

Créer trop de classes finement détaillées conduit à un faible accord inter-annotateurs et à des données d’entraînement clairsemées par classe. Problème : 50 sous-classes de véhicules où la plupart ont moins de 100 exemples chacune. Solution : Commencez avec 5-10 classes larges. Ajoutez des sous-classes uniquement lorsque vous avez suffisamment de données et que votre modèle bénéficie de la distinction.

Limites ambiguës

Lorsque deux classes se chevauchent conceptuellement, les annotateurs ne s’accorderont pas sur laquelle utiliser. Problème : van et minivan existent tous les deux, mais les annotateurs ne peuvent pas les distinguer de manière fiable. Solution : Fusionnez-les en une seule classe ou fournissez des directives visuelles explicites avec des images de référence montrant la frontière.

Cas limites manquants

Les données du monde réel contiennent des objets qui ne rentrent pas proprement dans votre taxonomie. Problème : Un annotateur rencontre une voiturette de golf mais la taxonomie n’a que car, truck et motorcycle. Solution : Incluez une classe fourre-tout comme other_vehicle et révisez périodiquement les éléments étiquetés avec celle-ci pour identifier les classes à ajouter.

Prochaines étapes

Concepts fondamentaux

Revoyez les éléments de base de la plateforme Avala.

Contrôle qualité

Configurez des flux de révision pour valider la qualité des annotations.

Types d'annotation

Consultez les formats JSON pour les boîtes englobantes, polygones, cuboïdes et plus.

Premier jeu de données

Téléchargez des données et créez votre premier projet d’annotation.