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 la 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 la distance de chaque pixel d'une image, cette technique crée une carte de profondeur, une représentation où l'intensité du pixel correspond à la distance. Cette capacité imite la vision binoculaire 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.
Mé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 vision stéréoscopique utilise deux caméras placées côte à côte. Les algorithmes analysent les légères différences, ou disparité, entre les images de gauche et de droite pour trianguler la distance. Cela repose fortement sur une correspondance de caractéristiques précise pour identifier les mêmes points dans les deux images.
- Estimation de la profondeur monoculaire : Cette méthode avancée estime la profondeur à partir d'une seule image. Comme une seule photo 2D ne contient pas de données de profondeur inhérentes, des modèles d'apprentissage profond sont entraînés sur de vastes ensembles de données pour reconnaître des indices visuels tels que la perspective, la taille des objets et l'occlusion. Les architectures modernes, telles que les réseaux de neurones convolutifs (CNN), excellent dans cette tâche, permettant de déduire une structure 3D à partir de caméras standard.
- LiDAR et temps de vol (ToF) : Des capteurs actifs tels que le LiDAR (Light Detection and Ranging) et les caméras à temps de vol émettent des impulsions lumineuses et mesurent le temps qu'elles mettent pour revenir. Ces méthodes génèrent des nuages de points extrêmement précis et sont souvent utilisées pour collecter des données de vérité terrain pour l'entraînement de modèles d'apprentissage automatique.
Applications 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 la 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 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 entrer en collision avec elle.
- 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.
Exemple de code : Estimation de profondeur monoculaire#
Bien qu'il existe des modèles de profondeur spécialisés, tu peux souvent déduire des relations spatiales en utilisant les boîtes de.___ (bounding boxes) de détection d'objets comme indicateur proxy de la distance dans des scénarios simples (les boîtes plus grandes signifient souvent des objets plus proches). Voici comment charger un modèle en utilisant le 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 vision par ordinateur#
Il est important de distinguer l'estimation de la profondeur des termes associés. Alors que la détection d'objets identifie ce que est un objet et où il se trouve dans l'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.
Avancées dans l'IA spatiale#
Les progrès récents en IA générative comblent le fossé entre la vision 2D et 3D. Des techniques telles que les champs de radiance neuronaux (NeRF) utilisent plusieurs images 2D pour reconstruire des scènes 3D complexes, en s'appuyant fortement sur les principes de profondeur sous-jacents. De plus, à mesure que les techniques d'optimisation de modèles s'améliorent, l'exécution d'une estimation de la profondeur très précise sur des appareils d'IA en périphérie (edge AI) 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 telles que la Ultralytics Platform pour l'entraînement et le déploiement efficaces de modèles.






