Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Estimation de la profondeur

Découvrez comment l'estimation de la profondeur crée des cartes de profondeur à partir d'images - stéréo, ToF, LiDAR et apprentissage profond monoculaire - pour alimenter la robotique, l'AR/VR et la perception 3D.

L'estimation de la profondeur est une tâche fondamentale vision par ordinateur (VA) qui consiste à déterminer la distance des objets d'une scène par rapport à la caméra. En calculant la valeur de profondeur pour chaque pixel d'une image, ce processus transforme des données bidimensionnelles standard en une représentation 3D riche, souvent appelée "profondeur", ce processus transforme les données bidimensionnelles standard en une représentation 3D riche, souvent appelée carte de profondeur. Cette capacité est essentielle pour que les machines perçoivent les relations spatiales, ce qui leur permet de naviguer dans des environnements, manipuler des objets et comprendre la géométrie du monde, comme le fait le système visuel humain.

Mécanismes d'estimation de la profondeur

L'estimation de la profondeur peut être réalisée à l'aide de différentes méthodes, allant de la détection active à forte intensité matérielle à des approches d'apprentissage profond (DL) basées sur des logiciels. les approches d'apprentissage profond (DL) pilotées par logiciel.

  • Vision stéréoscopique : Inspirés de la vision binoculaire humaine, les systèmes de vision stéréo utilisent deux caméras légèrement éloignées l'une de l'autre. En analysant la disparité, c'est-à-dire la différence de position horizontale d'un objet entre les images de gauche et de droite, des algorithmes peuvent trianguler mathématiquement la distance. entre les images de gauche et de droite, des algorithmes peuvent mathématiquement trianguler la distance. Cette méthode repose en grande partie sur une sur la fiabilité de la correspondance des caractéristiques entre les images.
  • Estimation de la profondeur monoculaire : Cette technique permet d'estimer la profondeur à partir d'une seule image 2D. tâche difficile car une seule image ne contient pas d'informations explicites sur la profondeur. Moderne réseaux neuronaux convolutionnels (CNN) modernes modernes sont entraînés sur des ensembles massifs de données pour reconnaître les indices monoculaires, tels que la taille de l'objet, la perspective et l'occlusion. La recherche sur la prédiction monoculaire de la profondeur a considérablement progressé, permettant aux caméras standard de déduire des structures 3D.
  • Capteurs actifs (LiDAR et ToF) : Contrairement aux systèmes de caméras passives, les capteurs actifs émettent des signaux pour mesurer la distance. Le LiDAR (Light Detection and Ranging) utilise des impulsions laser pour créer des nuages de points 3D précis. pour créer des nuages de points 3D précis, tandis que les caméras à temps de vol (ToF) mesurent le temps que met la lumière à revenir vers le capteur. Ces technologies fournissent des données de vérité terrain de haute précision souvent utilisées pour former des modèles d'apprentissage modèles d'apprentissage automatique (ML).

Applications concrètes

La capacité à percevoir la troisième dimension permet de débloquer des fonctionnalités essentielles dans divers secteurs d'activité.

Systèmes autonomes et robotique

Dans le domaine des véhicules autonomes, l'estimation est vitale pour la sécurité et la navigation. Les voitures autonomes combinent les données des caméras avec celles du LiDAR pour detect obstacles, estimer la distance avec les autres véhicules et construire une carte de la route en temps réel, détecter les obstacles, estimer la distance avec les autres véhicules et construire une carte de la route en temps réel. De même, en robotique, la perception de la profondeur permet aux bras automatisés automatisés d'effectuer des opérations de "pick and place" en évaluant avec précision la position et la forme des articles dans les flux de travail de l'automatisation de la fabrication. d'automatisation de la fabrication.

Réalité augmentée (RA)

Pour réalité augmentée soit immersive, les objets virtuels doivent interagir de manière réaliste avec le monde physique. L'estimation de la profondeur permet aux appareils mobiles de comprendre la géométrie d'une pièce, ce qui permet de placer des meubles ou des personnages virtuels sur le sol ou de les cacher derrière des objets réels (occlusion), améliorant ainsi considérablement l'expérience utilisateur. sur le sol ou cachés derrière des objets du monde réel (occlusion), ce qui améliore considérablement l'expérience de l'utilisateur.

Exemple Python : Approximation de la distance avec YOLO11

Bien qu'il existe des modèles de profondeur dédiés, les développeurs utilisent souvent des modèles 2D détection d'objets avec les données d'étalonnage pour approximation de la distance. Les ultralytics simplifie cela grâce à son module de solutions, qui permet aux utilisateurs d'estimer la distance des objets suivis en se basant sur la position de leur boîte englobante. d'estimer la distance des objets suivis en se basant sur la position de leur boîte englobante.

Le code suivant montre comment utiliser YOLO11 pour track objets et calculer leur distance approximative distance approximative de la caméra.

import cv2
from ultralytics import YOLO, solutions

# Load the YOLO11 model for object detection
model = YOLO("yolo11n.pt")

# Initialize the DistanceCalculation solution
# This estimates distance based on bounding box centroids
dist_obj = solutions.DistanceCalculation(names=model.names, view_img=True)

# Open a video file or camera stream
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break

    # Track objects and calculate distance
    tracks = model.track(im0, persist=True, show=False)
    im0 = dist_obj.start_process(im0, tracks)

    # Display result (or save/process further)
    cv2.imshow("Distance Estimation", im0)
    if cv2.waitKey(1) == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

Estimation de la profondeur et concepts connexes

Il est important de distinguer l'estimation de la profondeur des termes similaires dans l'écosystème de l'IA :

  • Détection d'objets en 3D: Alors que l'estimation de la profondeur attribue une valeur de distance à chaque pixel l'estimation de la profondeur attribue une valeur de distance à chaque pixel, la détection d'objets 3D se concentre sur l'identification spécifiques et à placer une boîte de délimitation 3D (cuboïde) autour d'eux. autour d'eux. La détection 3D vous indique "où se trouve la voiture et sa taille", tandis que l'estimation de la profondeur fournit la géométrie de l'ensemble de la scène, y compris la route. géométrie de l'ensemble de la scène, y compris la route et l'arrière-plan.
  • Calcul de la distance: Il s'agit se réfère généralement à la mesure de l'espace linéaire entre deux points spécifiques ou entre la caméra et un objet distinct (souvent à l'aide d'une heuristique 2D), comme le montre l'exemple de code ci-dessus. (souvent à l'aide d'une heuristique 2D), comme le montre l'exemple de code ci-dessus. L'estimation de la profondeur est une tâche de prédiction dense par pixel qui génère une carte topographique complète de la vue.
  • Flux optique: il mesure le mouvement apparent des objets entre les images. mouvement apparent des objets entre les images. Bien que le flux optique puisse être utilisé pour déduire la profondeur (structure à partir du mouvement), son principal résultat est un champ de vecteurs de mouvement et non une carte de distance statique, son principal résultat est un champ de vecteurs de mouvement, et non une carte de distance statique.

Faire progresser l'IA spatiale

Les progrès récents de l'IA générative et des modèles fondateurs permettent de combler le fossé entre la 2D et la 3D. Des techniques telles que Neural Radiance Fields (NeRF) utilisent des images 2D clairsemées pour reconstruire des scènes 3D complexes, en s'appuyant fortement sur les principes de profondeur sous-jacents. scènes 3D complexes, en s'appuyant fortement sur les principes de profondeur sous-jacents. Au fur et à mesure que l'optimisation du modèle s'améliore, l'estimation très précise de la profondeur devient possible sur les appareils périphériques, alimentant la prochaine génération de drones intelligents, de robots de service et d'appareils d'informatique spatiale, drones intelligents, de robots de service et de dispositifs d'informatique spatiale.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant