Les sept tâches de vision
Associe une ligne de sortie à la classification, à la détection, à la segmentation d’instance, à la segmentation sémantique, à l’estimation de profondeur, à la pose ou à OBB, puis choisis les poids YOLO26 pour commencer.
Choisir la tâche est la décision la plus coûteuse avant l’entraînement. Choisis la segmentation alors que des boîtes suffiraient, et ta facture d’annotation explose ; choisis des boîtes verticales pour des navires vus depuis un drone, et chaque boîte contient surtout de l’eau. Ultralytics YOLO prend en charge sept tâches avec une seule API : le choix dépend donc de la sortie dont tu as besoin, pas des outils.
Pratique
Les sept tâches en un coup d’œil#

Lis le tableau en regardant la colonne « Sortie » : c’est à elle que doit correspondre la ligne de sortie de ta spécification.
| Tâche | Sortie | Répond à la question | Poids YOLO26 |
|---|---|---|---|
| Classification | Une étiquette par image, avec une probabilité | « Que représente cette image ? » | yolo26n-cls.pt |
| Détection | Classe, boîte et score de confiance par objet | « Qu’y a-t-il, et où ? » | yolo26n.pt |
| Segmentation d’instance | Classe et masque de pixels par objet | « Quelle est la forme exacte de chaque objet ? » | yolo26n-seg.pt |
| Segmentation sémantique | Une classe pour chaque pixel | « De quel type de région s’agit-il pour chaque pixel ? » | yolo26n-sem.pt |
| Estimation de profondeur | Distance en mètres pour chaque pixel | « À quelle distance se trouve chaque pixel ? » | yolo26n-depth.pt |
| Estimation de pose | Boîte et points clés pour chaque personne ou objet | « Quelle est la posture du corps ? » | yolo26n-pose.pt |
| Boîtes englobantes orientées | Boîte tournée par objet | « Qu’est-ce qui se trouve où, et selon quel angle ? » | yolo26n-obb.pt |
Deux paires de notions prêtent à confusion. Segmentation d’instance vs segmentation sémantique : la segmentation d’instance sépare chaque objet (trois voitures, trois masques) ; la segmentation sémantique étiquette uniquement les pixels par classe (une région « voiture », sans décompte). Détection vs OBB : les deux renvoient une boîte par objet, mais une OBB pivote avec l’objet, ce qui compte lorsque les objets sont inclinés dans des images prises en plongée.
Une API, sept sorties#
Changer de tâche ne signifie pas changer d’outil. Le fichier de poids détermine le résultat renvoyé, et l’objet Results renseigne l’attribut correspondant :
from ultralytics import YOLO
image = "https://ultralytics.com/images/bus.jpg"
outputs = ["probs", "boxes", "masks", "semantic_mask", "depth", "keypoints", "obb"]
for suffix in ["-cls", "", "-seg", "-sem", "-depth", "-pose", "-obb"]:
weights = f"yolo26n{suffix}.pt"
model = YOLO(weights)
result = model(image, verbose=False)[0]
filled = [name for name in outputs if getattr(result, name) is not None]
print(f"{weights:18} task={model.task:9} -> {', '.join(filled)}")yolo26n-cls.pt task=classify -> probs
yolo26n.pt task=detect -> boxes
yolo26n-seg.pt task=segment -> boxes, masks
yolo26n-sem.pt task=semantic -> semantic_mask
yolo26n-depth.pt task=depth -> depth
yolo26n-pose.pt task=pose -> boxes, keypoints
yolo26n-obb.pt task=obb -> obbLis la colonne de droite : la segmentation et la pose renvoient aussi des boîtes, car elles ajoutent simplement un élément à la détection. La segmentation sémantique et la profondeur ne renvoient aucune sortie par objet : elles décrivent plutôt chaque pixel. Ton code en aval lit exactement l’un de ces attributs ; la ligne de sortie de ta spécification doit donc le nommer.
Choisir en pratique#
Commence par déterminer ce qu’une prédiction doit décrire, puis choisis la tâche la moins coûteuse qui répond à la question de décision :
- Une étiquette pour l’image entière → classification.
- Une classe pour chaque pixel, sans besoin de séparer les objets → segmentation sémantique.
- Une distance pour chaque pixel → estimation de profondeur.
- Une information sur chaque objet :
- sa position, pour le compter, le localiser ou le filtrer → détection (ajoute le suivi pour conserver son identité d’une image à l’autre) ;
- sa forme exacte, son contour ou sa surface → segmentation d’instance ;
- sa posture → pose ;
- sa rotation dans des images prises en plongée → OBB.
Si deux tâches conviennent, choisis celle qui coûte le moins cher à annoter et à exécuter. La détection est le choix par défaut pour la plupart des produits : les boîtes sont rapides à dessiner et à vérifier, et, avec le suivi, elles permettent déjà le comptage, les alertes de zone et l’analyse du trafic, comme dans cette vue d’autoroute :

Profondeur : la tâche qui répond à la question « à quelle distance ? »#
L’estimation de profondeur renvoie une carte de la taille de l’image, avec une distance en mètres par pixel — sans classe ni boîte. Utilise-la lorsque la distance détermine la décision : un robot qui évite les obstacles, un véhicule qui ralentit lorsqu’un objet est proche ou une estimation approximative du volume d’un tas.
from ultralytics import YOLO
model = YOLO("yolo26n-depth.pt")
result = model("https://ultralytics.com/images/bus.jpg", verbose=False)[0]
depth = result.depth.data # meters, one value per pixel
print(f"depth map {tuple(depth.shape)}, nearest {float(depth.min()):.1f} m, farthest {float(depth.max()):.1f} m")depth map (1080, 810), nearest 2.0 m, farthest 14.9 mUne caméra unique déduit la profondeur à partir d’indices appris, comme la perspective et la taille des objets. Mesure donc son erreur sur tes propres scènes avant de l’utiliser pour des distances critiques pour la sécurité. La profondeur se combine bien avec la détection : détecte l’objet, puis lis la carte de profondeur dans sa boîte.
Pièges#
| Confusion | Symptôme | Meilleur choix |
|---|---|---|
| Segmentation alors que des boîtes suffiraient | Aucun code en aval ne lit jamais le masque | Détection |
| Boîtes droites sur des images prises en plongée | Les boîtes couvrent surtout l’arrière-plan et les objets voisins s’éliminent mutuellement | OBB |
| Classification pour une scène contenant plusieurs objets | L’étiquette dépend d’un petit objet | Détection plus une règle |
| Segmentation sémantique alors que tu as besoin de décomptes | Les objets qui se touchent fusionnent en une seule région | Segmentation d’instance |
| Taille de la boîte utilisée comme approximation de la distance | Les règles ne fonctionnent plus lorsque la taille des objets varie | Estimation de profondeur, ou détection plus profondeur |
| Pose pour vérifier la présence | Tu ne lis jamais de point clé | Détection |
Des sorties plus riches coûtent plus cher à chaque étape : les masques et les points clés prennent plus de temps à dessiner et à réviser, et exigent des règles d’annotation plus strictes. Commence par la tâche la moins coûteuse qui répond à la règle de décision, et passe à une solution plus avancée uniquement lorsqu’un utilisateur réel a besoin de ces détails supplémentaires.
Afficher la solution
Pour la spécification du chariot élévateur, la réponse est détection, avec yolo26n.pt, et la lecture de result.boxes.
La décision doit connaître la position des chariots élévateurs et des personnes pour que le code puisse vérifier leur proximité. Les boîtes suffisent. La segmentation d’instance augmenterait le coût d’annotation sans modifier l’alerte, car le bord inférieur d’une boîte indique déjà la position au sol. La pose n’est pas nécessaire, puisque la posture n’entre pas dans la décision. La profondeur pourrait aider à convertir les positions dans l’image en mètres, mais une caméra fixe calibrée permet de cartographier le plancher sans cela. Une OBB ne vaut la peine d’être testée que si les caméras regardent directement vers le bas et que les chariots élévateurs apparaissent selon des angles diagonaux marqués.