Depth Estimation
L’estimation de profondeur prédit la distance entre chaque pixel et la caméra, et produit une carte de profondeur à partir de caméras stéréo, de capteurs actifs ou d’une seule image.
L'estimation de profondeur est la tâche de vision par ordinateur qui consiste à prédire, pour chaque pixel d'une image, la distance entre la caméra et la surface représentée par ce pixel. Le résultat est une carte de profondeur, une grille de distances de la taille de l'image qui ajoute la troisième dimension absente d'une photo en 2D. Elle fournit aux robots, aux véhicules et aux appareils de réalité augmentée la disposition 3D d'une scène à partir de caméras ordinaires.
Méthodes d'estimation de la profondeur#
- Vision stéréoscopique : deux caméras calibrées, séparées par une distance connue, voient chaque point à des positions horizontales légèrement différentes. Ce décalage, appelé disparité, donne la profondeur selon la formule distance focale × écartement des caméras ÷ disparité. Les objets éloignés, dont la disparité est faible, sont donc mesurés avec moins de précision, et il est difficile de faire correspondre des surfaces sans texture, comme des murs blancs, entre les deux images.
- LiDAR et autres capteurs actifs : le LiDAR mesure le temps de retour des impulsions laser et fournit des points précis mais clairsemés à longue portée. Les caméras à temps de vol et à lumière structurée fournissent une profondeur dense à courte portée, principalement en intérieur. Ces capteurs produisent aussi les données de référence utilisées pour entraîner les modèles par apprentissage.
- Estimation monoculaire de la profondeur : un réseau de neurones prédit la profondeur à partir d'une seule image, en s'appuyant sur des indices tels que la perspective, la taille connue d'objets familiers, les gradients de texture et l'occultation. Le problème est mal posé, car une petite voiture proche et une vraie voiture lointaine peuvent produire la même image. Le modèle se fie donc à ce qu'il a appris sur les scènes habituelles.
- SLAM visuel et autres méthodes multi-vues : la structure à partir du mouvement et le SLAM visuel reconstituent la profondeur en triangulant des points entre des images prises depuis différentes positions.
Estimation monoculaire de la profondeur par apprentissage profond#
Les modèles de profondeur appris se répartissent en deux catégories. Les modèles de profondeur relative prédisent l'ordre et la forme des surfaces jusqu'à une échelle et un décalage inconnus, ce qui suffit pour des effets comme le flou d'arrière-plan et pour déterminer ce qui est le plus proche. MiDaS a rendu cette approche efficace dans des scènes très différentes en s'entraînant avec une fonction de perte invariante à l'échelle et au décalage sur un mélange de jeux de données, notamment des films 3D. Depth Anything V2 entraîne des modèles comptant de 25 millions à 1,3 milliard de paramètres sur des annotations synthétiques et de grands ensembles d'images réelles pseudo-étiquetées. Les modèles de profondeur métrique prédisent des distances en mètres, nécessaires aux robots et aux outils de mesure : le modèle Depth Pro d'Apple produit une carte de profondeur métrique de 2,25 mégapixels en 0,3 seconde sur un GPU standard, sans paramètres intrinsèques de caméra.
Les modèles de profondeur YOLO26 d'Ultralytics prédisent la profondeur métrique à partir d'une image grâce à une tête de profondeur logarithmique dont la sortie couvre environ 0,02 à 150 mètres. Un même modèle traite ainsi des pièces de quelques mètres de profondeur et des scènes de conduite jusqu'à 80 mètres. Quelques lignes suffisent pour charger le modèle, effectuer une prédiction et enregistrer le résultat :
from ultralytics import YOLO
# Load a YOLO26 monocular depth model
model = YOLO("yolo26n-depth.pt")
# Predict a depth map for one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Per-pixel depth in meters, at the original image's resolution
depth = result.depth.data
print(f"Nearest {depth.min():.1f} m, farthest {depth.max():.1f} m")
# Save a colorized depth map blended over the photo
result.save(filename="depth_result.jpg")La plage affichée indique les surfaces les plus proches et les plus éloignées que le modèle voit dans la scène de rue, et l'image enregistrée colore chaque pixel selon la distance prédite.
Mesure de la précision#
Les modèles de profondeur sont évalués pixel par pixel à partir des données de référence des capteurs. L'erreur relative absolue (AbsRel) calcule la moyenne de l'erreur en proportion de la profondeur réelle, la racine de l'erreur quadratique moyenne (RMSE) l'exprime en mètres, et δ1 correspond à la proportion de pixels dont la prédiction se situe dans un facteur de 1,25 par rapport à la valeur réelle. Les benchmarks standard sont NYU Depth V2, constitué de scènes d'intérieur capturées avec un capteur Kinect, et KITTI, constitué de scènes de conduite avec des données de référence LiDAR, généralement évaluées jusqu'à 80 mètres. Avant l'évaluation, les prédictions de profondeur relative sont alignées sur les données de référence en échelle et en décalage ; leurs scores ne mesurent donc que la forme. Les moyennes calculées sur tous les pixels masquent aussi les débordements de profondeur, où la profondeur prédite déborde des limites des objets. C'est pourquoi Depth Pro a introduit des métriques dédiées à la précision des contours.
Estimation de profondeur et tâches connexes#
- Détection d'objets 3D : prédit pour chaque objet une boîte 3D définissant sa position, sa taille et son orientation, souvent à partir de la profondeur.
- Segmentation sémantique : attribue une étiquette de classe à chaque pixel. Combinée à une carte de profondeur, elle indique au robot la nature de chaque surface et sa distance.
- Reconstruction 3D : construit un maillage complet ou un nuage de points d'une scène, généralement en fusionnant les données de profondeur provenant de nombreux points de vue.
Applications concrètes#
- Aide à la conduite et conduite autonome : l'estimation de profondeur par caméra ajoute des estimations de distance aux voitures et aux piétons détectés, en complément du LiDAR ou à sa place.
- Robotique : la préhension et la navigation nécessitent de connaître la distance à chaque surface. La profondeur obtenue à partir d'une seule caméra RGB évite d'ajouter des capteurs sur les petits robots.
- Réalité augmentée : les cartes de profondeur permettent de masquer correctement les objets virtuels derrière les objets réels et de les placer sur des surfaces réelles.
- Photographie : les modes portrait des téléphones floutent l'arrière-plan grâce à la profondeur obtenue à partir de deux caméras, de capteurs à double pixel ou d'un modèle monoculaire. L'intensité du flou dépend de la distance estimée pour chaque pixel.










