Depth Estimation
Apprends comment l’estimation de profondeur ajoute une perspective 3D à la vision par ordinateur. Découvre des techniques comme la profondeur monoculaire et la vision stéréo avec les modèles Ultralytics YOLO26.
L'estimation de la profondeur est un processus essentiel de la vision par ordinateur qui détermine la distance des objets par rapport à une caméra, ajoutant ainsi une troisième dimension aux images 2D. En calculant la distance de chaque pixel dans une image, cette technique crée une carte de profondeur, une représentation dans laquelle l'intensité des pixels correspond à la distance. Cette capacité imite la vision binoculaire humaine, permettant aux machines de percevoir les relations spatiales et la géométrie. Il s'agit d'une technologie fondamentale pour permettre aux systèmes autonomes de se déplacer en toute sécurité, de comprendre leur environnement et d'interagir avec des objets physiques.
Mécanismes et techniques fondamentaux#
Il existe plusieurs façons d'obtenir une estimation de la profondeur, allant des solutions matérielles aux approches entièrement logicielles utilisant l'intelligence artificielle.
- Systèmes de vision stéréo : À l'instar des yeux humains, la vision stéréo utilise deux caméras placées côte à côte. Les algorithmes analysent les légères différences, ou disparités, entre les images de gauche et de droite afin de trianguler la distance. Cette méthode repose largement sur une mise en correspondance précise des caractéristiques pour identifier les mêmes points dans les deux images.
- Estimation monoculaire de la profondeur : Cette méthode avancée estime la profondeur à partir d'une seule image. Comme une photo 2D unique ne contient pas intrinsèquement de données de profondeur, des modèles d'apprentissage profond sont entraînés sur de vastes jeux de données afin de reconnaître des indices visuels tels que la perspective, la taille des objets et l'occlusion. Les architectures modernes, comme les réseaux neuronaux convolutifs (CNNs), excellent dans cette tâche, ce qui permet de déduire une structure 3D à partir de caméras standard.
- LiDAR et temps de vol (ToF) : Des capteurs actifs comme le LiDAR (détection et télémétrie par laser) et les caméras à temps de vol émettent des impulsions lumineuses et mesurent le temps qu'elles mettent à revenir. Ces méthodes génèrent des nuages de points très précis et sont souvent utilisées pour collecter des données de vérité terrain destinées à l'entraînement de modèles de machine learning.
Applications concrètes#
La capacité à évaluer les distances transforme de nombreux secteurs en alimentant des applications qui nécessitent une perception spatiale.
- Conduite autonome : Les voitures autonomes s'appuient sur l'estimation de la profondeur pour détecter les obstacles, mesurer la distance avec les autres véhicules et parcourir en toute sécurité des réseaux routiers complexes. Elle est essentielle à la détection d'objets 3D pour identifier les piétons et les cyclistes.
- Robotique et automatisation : Les robots utilisent la perception de la profondeur pour des tâches telles que la planification de trajectoire et la manipulation d'objets. Par exemple, un robot d'entrepôt doit savoir exactement à quelle distance se trouve une étagère pour saisir un colis sans la percuter.
- Réalité augmentée (AR) : Pour intégrer de manière convaincante des objets virtuels dans une scène du monde réel, les appareils de réalité augmentée doivent comprendre la géométrie 3D de l'environnement. L'estimation de la profondeur garantit que les personnages virtuels peuvent se cacher derrière des meubles réels, un concept connu sous le nom de gestion de l'occlusion.
Exemple de code : estimation monoculaire de la profondeur#
Bien qu'il existe des modèles de profondeur spécialisés, tu peux souvent déduire les relations spatiales en utilisant les boîtes englobantes de la détection d'objets comme approximation de la distance dans des scénarios simples (des boîtes plus grandes indiquent souvent des objets plus proches). Voici comment charger un modèle à l'aide du paquet ultralytics pour détecter des objets, ce qui constitue la première étape de nombreux pipelines tenant compte de la profondeur.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Process results
for result in results:
# Get bounding boxes (xyxy format)
boxes = result.boxes.xyxy
# Iterate through detections
for box in boxes:
print(f"Detected object at: {box}")Relation avec d'autres concepts de la vision par ordinateur#
Il est important de distinguer l'estimation de la profondeur des termes connexes. Alors que la détection d'objets identifie ce qu'est un objet et où il se trouve dans un espace 2D (à l'aide d'une boîte englobante), l'estimation de la profondeur identifie à quelle distance il se trouve (axe Z). De même, la segmentation sémantique classe les pixels en catégories (par exemple, route, ciel, voiture), tandis que l'estimation de la profondeur attribue une valeur de distance à ces mêmes pixels.
Progrès de l'IA spatiale#
Les progrès récents de l'IA générative réduisent l'écart entre la vision 2D et 3D. Des techniques comme les champs de radiance neuronaux (NeRF) utilisent plusieurs images 2D pour reconstruire des scènes 3D complexes, en s'appuyant largement sur les principes sous-jacents de la profondeur. En outre, à mesure que les techniques d'optimisation des modèles progressent, il devient possible d'exécuter une estimation de la profondeur très précise sur des appareils d'IA en périphérie. Cela permet l'informatique spatiale en temps réel sur du matériel aussi compact que des drones ou des lunettes connectées, grâce à des plateformes comme l'Ultralytics Platform pour entraîner et déployer efficacement les modèles.









