Depth Estimation
Apprends comment l'estimation de profondeur ajoute une perspective 3D à la vision par ordinateur. Explore des techniques comme la profondeur monoculaire et la vision stéréo en utilisant les modèles Ultralytics YOLO26.
L'estimation de profondeur est un processus essentiel en 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 à quelle distance se trouve chaque pixel d'une image, cette technique crée une depth map, une représentation où l'intensité du pixel correspond à la distance. Cette capacité imite la binocular vision humaine, permettant aux machines de percevoir les relations spatiales et la géométrie. C'est une technologie fondamentale pour permettre aux systèmes autonomes de naviguer en toute sécurité, de comprendre leur environnement et d'interagir avec des objets physiques.
Link to this sectionMécanismes et techniques principaux#
Il existe plusieurs façons de parvenir à une estimation de profondeur, allant des solutions matérielles aux approches purement logicielles utilisant l'intelligence artificielle.
- Systèmes de vision stéréoscopique : Semblable aux yeux humains, la stereo vision 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 pour trianguler la distance. Cela repose fortement sur une feature matching précise pour identifier les mêmes points dans les deux cadres.
- Estimation de profondeur monoculaire : Cette méthode avancée estime la profondeur à partir d'une seule image. Comme une simple photo 2D manque de données de profondeur intrinsèques, les deep learning models sont entraînés sur de vastes ensembles de données pour reconnaître des indices visuels tels que la perspective, la taille de l'objet et l'occlusion. Les architectures modernes, comme les convolutional neural networks (CNNs), excellent dans cette tâche, rendant possible la dérivation d'une structure 3D à partir de caméras standards.
- LiDAR et Time-of-Flight (ToF) : Les capteurs actifs comme le LiDAR (Light Detection and Ranging) et les Time-of-Flight cameras émettent des impulsions lumineuses et mesurent le temps qu'elles mettent à revenir. Ces méthodes génèrent des point clouds très précis et sont souvent utilisées pour collecter des données de vérité terrain pour l'entraînement des modèles de machine learning.
Link to this sectionApplications concrètes#
La capacité d'évaluer la distance est transformatrice dans de nombreuses industries, alimentant des applications qui nécessitent une conscience spatiale.
- Conduite autonome : Les voitures autonomes s'appuient sur l'estimation de profondeur pour détecter les obstacles, mesurer la distance par rapport aux autres véhicules et naviguer en toute sécurité dans des réseaux routiers complexes. Elle fait partie intégrante de la 3D object detection pour identifier les piétons et les cyclistes.
- Robotique et automatisation : Les robots utilisent la perception de profondeur pour des tâches telles que le path planning et la manipulation d'objets. Par exemple, un robot d'entrepôt doit savoir exactement à quelle distance se trouve une étagère pour ramasser un colis sans entrer en collision avec celle-ci.
- Réalité augmentée (AR) : Pour placer des objets virtuels de manière convaincante dans une scène réelle, les appareils AR doivent comprendre la géométrie 3D de l'environnement. L'estimation de profondeur garantit que les personnages virtuels peuvent se cacher derrière des meubles réels, un concept connu sous le nom de gestion des occlusions.
Link to this sectionExemple de code : Estimation de profondeur monoculaire#
Bien qu'il existe des modèles de profondeur spécialisés, tu peux souvent déduire les relations spatiales en utilisant les bounding boxes de détection d'objets comme indicateur de distance dans des scénarios simples (des boîtes plus grandes signifient souvent des objets plus proches). Voici comment charger un modèle en utilisant le package ultralytics pour détecter des objets, ce qui constitue la première étape de nombreux pipelines utilisant 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}")Link to this sectionRelation avec d'autres concepts de vision par ordinateur#
Il est important de distinguer l'estimation de profondeur des termes associés. Alors que l'object detection identifie ce qu'est un objet et où il se trouve dans l'espace 2D (en utilisant une bounding box), l'estimation de profondeur identifie à quelle distance il se trouve (axe Z). De même, la semantic segmentation classe les pixels en catégories (ex. route, ciel, voiture), tandis que l'estimation de profondeur attribue une valeur de distance à ces mêmes pixels.
Link to this sectionAvancées dans l'IA spatiale#
Les progrès récents en generative AI comblent le fossé entre la vision 2D et 3D. Des techniques comme les Neural Radiance Fields (NeRF) utilisent plusieurs images 2D pour reconstruire des scènes 3D complexes, s'appuyant fortement sur les principes de profondeur sous-jacents. De plus, à mesure que les techniques d'model optimization s'améliorent, l'exécution d'une estimation de profondeur très précise sur des edge AI devices devient réalisable. Cela permet une informatique spatiale en temps réel sur du matériel aussi petit que des drones ou des lunettes intelligentes, facilité par des plateformes comme l'Ultralytics Platform pour un entraînement et un déploiement de modèles efficaces.






