Recherche de site Web

Depth Anything V2 : un modèle d'estimation de profondeur monoculaire puissant


Introduction

Cet article discutera de Depth Anything V2, une solution pratique pour une estimation robuste de la profondeur monoculaire. Le modèle Depth Anything vise à créer un modèle de base simple mais puissant qui fonctionne bien avec n'importe quelle image dans toutes les conditions. L'ensemble de données a été considérablement élargi à l'aide d'un moteur de données pour collecter et annoter automatiquement environ 62 millions d'images non étiquetées pour y parvenir. Ces données à grande échelle contribuent à réduire les erreurs de généralisation.

Ce modèle puissant utilise deux stratégies clés pour rendre la mise à l'échelle des données efficace. Premièrement, un objectif d'optimisation plus ambitieux est défini à l'aide d'outils d'augmentation des données, ce qui pousse le modèle à apprendre des représentations plus robustes. Deuxièmement, une supervision auxiliaire est ajoutée pour aider le modèle à hériter des riches connaissances sémantiques des encodeurs pré-entraînés. Les capacités de tir nul du modèle ont été testées de manière approfondie sur six ensembles de données publiques et des photos aléatoires, démontrant une capacité de généralisation impressionnante.

Le réglage fin avec les informations de profondeur métrique de NYUv2 et KITTI a également établi de nouvelles références de pointe. Ce modèle de profondeur amélioré améliore également considérablement ControlNet conditionné en profondeur.

Travaux connexes sur l'estimation de la profondeur monoculaire (MDE)

Les progrès récents dans l'estimation de la profondeur monoculaire se sont orientés vers une estimation de la profondeur relative sans tir et des techniques de modélisation améliorées telles que la diffusion stable pour le débruitage de la profondeur. Des travaux tels que MiDaS et Metric3D ont collecté des millions d’images étiquetées, relevant ainsi le défi de la mise à l’échelle des ensembles de données. Depth Anything V1 a amélioré la robustesse en exploitant 62 millions d'images non étiquetées et a mis en évidence les limites des données réelles étiquetées, en plaidant pour des données synthétiques pour améliorer la précision de la profondeur. Cette approche intègre des images réelles pseudo-étiquetées à grande échelle et met à l’échelle les modèles d’enseignants pour résoudre les problèmes de généralisation à partir de données synthétiques. Dans l’apprentissage semi-supervisé, l’accent s’est déplacé vers les applications du monde réel, visant à améliorer les performances en incorporant de grandes quantités de données non étiquetées. Dans ce contexte, la distillation des connaissances met l'accent sur le transfert des connaissances par le biais d'une distillation au niveau de la prédiction à l'aide d'images réelles non étiquetées, mettant en valeur l'importance des données non étiquetées à grande échelle et des modèles d'enseignants plus grands pour un transfert efficace des connaissances à différentes échelles de modèles.

Points forts du modèle

La recherche vise à construire une référence d'évaluation polyvalente pour l'estimation de la profondeur monoculaire relative qui peut : -

  1. Fournit une relation de profondeur précise

  2. Couvrir de nombreuses scènes

  3. Contient principalement des images haute résolution pour une utilisation moderne.

Le document de recherche vise également à construire un modèle de base pour le MDE qui présente les atouts suivants :

  • Fournissez des prédictions robustes pour des scènes complexes, notamment des mises en page complexes, des objets transparents comme le verre et des surfaces réfléchissantes telles que des miroirs et des écrans.
  • Capturez des détails fins dans les cartes de profondeur prédites, comparables à la précision de Marigold, y compris des objets minces comme des pieds de chaise et de petits trous.
  • Offrez une gamme d’échelles de modèles et des capacités d’inférence efficaces pour prendre en charge diverses applications.
  • Être hautement adaptable et adapté à l'apprentissage par transfert, permettant d'affiner les tâches en aval. Par exemple, Depth Anything V1 a été le modèle pré-entraîné de choix pour toutes les équipes dirigeantes du 3e MDEC1.

Qu’est-ce que l’estimation de la profondeur monoculaire (MDE) ?

L'estimation de la profondeur monoculaire est un moyen de déterminer à quelle distance se trouvent les objets sur une photo prise avec un seul appareil photo.

Résultat de la comparaison de l'image originale avec V1 et V2 (source de l'image)

Imaginez que vous regardez une photo et que vous êtes capable de distinguer les objets proches de vous et ceux qui sont éloignés. L'estimation de la profondeur monoculaire utilise des algorithmes informatiques pour le faire automatiquement. Il examine des indices visuels dans l’image, comme la taille et le chevauchement des objets, pour estimer leurs distances.

Cette technologie est utile dans de nombreux domaines, tels que les voitures autonomes, la réalité virtuelle et les robots, où il est important de comprendre la profondeur des objets dans l’environnement pour naviguer et interagir en toute sécurité.

Les deux principales catégories sont :

  • Estimation absolue de la profondeur : cette variante de tâche, ou estimation métrique de la profondeur, vise à fournir des mesures exactes de la profondeur à partir de la caméra en mètres ou en pieds. Les modèles d'estimation de profondeur absolue produisent des cartes de profondeur avec des valeurs numériques représentant les distances réelles.
  • Estimation de la profondeur relative : l'estimation de la profondeur relative prédit l'ordre relatif des objets ou des points dans une scène sans fournir de mesures exactes. Ces modèles produisent des cartes de profondeur qui montrent quelles parties de la scène sont plus proches ou plus éloignées les unes des autres sans préciser les distances en mètres ou en pieds.

Cadre du modèle

Le pipeline modèle pour entraîner Depth Anything V2 comprend trois étapes principales :

  • Formation d'un modèle d'enseignant basé sur l'encodeur DINOv2-G sur des images synthétiques de haute qualité.
  • Génération d'une pseudo-profondeur précise sur des images réelles non étiquetées à grande échelle.
  • Formation d'un modèle étudiant final sur les images réelles pseudo-étiquetées pour une généralisation robuste.

Voici une explication plus simple du processus de formation pour Depth Anything V2 :

Tout d’abord, un modèle d’enseignant compétent est formé à l’aide d’images synthétiques précises. Ensuite, pour remédier au changement de distribution et au manque de diversité des données synthétiques, des images réelles non étiquetées sont annotées à l'aide du modèle de l'enseignant. Enfin, les modèles étudiants sont formés à l’aide d’images pseudo-étiquetées de haute qualité générées au cours de ce processus. Source de l'image

Architecture du modèle : Depth Anything V2 utilise le Dense Prediction Transformer (DPT) comme décodeur de profondeur, qui est construit sur les encodeurs DINOv2. Traitement des images : toutes les images sont redimensionnées de sorte que leur côté le plus court soit de 518 pixels, puis un recadrage aléatoire de 518 × 518 est effectué. Afin de standardiser la taille d'entrée pour la formation. Formation du modèle d'enseignant : le modèle d'enseignant est d'abord formé sur des images synthétiques. Dans cette étape : Taille du lot : une taille de lot de 64 est utilisée. Itérations : le modèle est entraîné pour 160 000 itérations. Optimiseur : L'optimiseur Adam est utilisé. Taux d'apprentissage : le taux d'apprentissage pour l'encodeur est défini sur 5e-6, et pour le décodeur, il est de 5e-5. Formation sur des images réelles pseudo-étiquetées : Dans la troisième étape, le modèle est formé sur des images réelles pseudo-étiquetées générées par le modèle enseignant. Dans cette étape : Taille du lot : une taille de lot plus grande de 192 est utilisée. Itérations : le modèle est entraîné pour 480 000 itérations. Optimiseur : le même optimiseur Adam est utilisé. Taux d'apprentissage : les taux d'apprentissage restent les mêmes que lors de l'étape précédente. Gestion des ensembles de données : au cours des deux étapes de formation, les ensembles de données ne sont pas équilibrés mais sont simplement concaténés, ce qui signifie qu'ils sont combinés sans aucun ajustement de leurs proportions. Poids des fonctions de perte : le rapport de pondération des fonctions de perte Lssi (perte auto-supervisée) et Lgm (perte correspondant à la vérité terrain) est défini sur 1:2. Cela signifie que Lgm reçoit deux fois plus d'importance que Lssi pendant l'entraînement.

Cette approche permet de garantir que le modèle est robuste et fonctionne bien sur différents types d'images.

Pour vérifier les performances du modèle, le modèle Depth Anything V2 a été comparé à Depth Anything V1 et MiDaS V3.1 à l'aide de 5 ensembles de données de test. Le modèle s'avère supérieur au MiDaS. Cependant, légèrement inférieur à la V1.

Comparaison de modèles (source d'image)

Démonstration

Depth Anything offre une solution pratique pour l’estimation de la profondeur monoculaire ; le modèle a été formé sur 1,5 million d'images étiquetées et plus de 62 millions d'images non étiquetées.

La liste ci-dessous contient les détails du modèle pour l'estimation de la profondeur et leurs temps d'inférence respectifs.

Estimation de la profondeur avec le temps d'inférence (Source de l'image)

Pour cette démonstration, nous recommanderons l'utilisation d'une NVIDIA RTX A4000. La NVIDIA RTX A4000 est une carte graphique professionnelle hautes performances conçue pour les créateurs et les développeurs. L'architecture NVIDIA Ampere comprend 16 Go de mémoire GDDR6, 6 144 cœurs CUDA, 192 cœurs Tensor de troisième génération et 48 cœurs RT. Le RTX A4000 offre des performances exceptionnelles dans les flux de travail exigeants, notamment le rendu 3D, l'IA et la visualisation de données, ce qui en fait un choix idéal pour les professionnels de l'architecture, des médias et de la recherche scientifique.

Exécutons le code ci-dessous pour vérifier le GPU

!nvidia-smi

Ensuite, clonez le dépôt et importez les bibliothèques nécessaires.

from PIL import Image
import requests
!git clone https://github.com/LiheYoung/Depth-Anything
cd Depth-Anything

Installez le fichier exigences.txt.

!pip install -r requirements.txt
!python run.py --encoder vitl --img-path /notebooks/Image/image.png --outdir depth_vis

Arguments :

  • --img-path : 1) spécifiez un répertoire contenant toutes les images souhaitées, 2) spécifiez une seule image, ou 3) spécifiez un fichier texte qui répertorie tous les chemins d'image.
  • Le paramètre --pred-only enregistre uniquement la carte de profondeur prédite. Sans cette option, le comportement par défaut consiste à visualiser l'image et la carte de profondeur côte à côte.
  • Le paramètre --grayscale enregistre la carte de profondeur en niveaux de gris. Sans cette option, une palette de couleurs est appliquée par défaut à la carte de profondeur.

Si vous souhaitez utiliser Depth Anything sur des vidéos :

!python run_video.py --encoder vitl --video-path assets/examples_video --outdir video_depth_vis

0:00

/0:02

1×

Exécutez la démo Gradio : -

Pour exécuter la démo de gradio localement : -

!python app.py

Remarque : Si vous rencontrez KeyError : 'deep_anything', veuillez installer les derniers transformateurs à partir des sources :

!pip install git+https://github.com/huggingface/transformers.git

Voici quelques exemples démontrant comment nous avons utilisé le modèle d’estimation de la profondeur pour analyser diverses images.

Caractéristiques du modèle

Les modèles offrent une estimation fiable de la profondeur relative pour n'importe quelle image, comme indiqué dans les images ci-dessus. Pour l'estimation de la profondeur métrique, le modèle Depth Anything est affiné à l'aide des données de profondeur métriques de NYUv2 ou KITTI, permettant de solides performances dans les scénarios dans le domaine et sans tir. Les détails peuvent être trouvés ici.

De plus, le ControlNet conditionné en profondeur est recyclé sur la base de Depth Anything, offrant une synthèse plus précise que la version précédente basée sur MiDaS. Ce nouveau ControlNet peut être utilisé dans ControlNet WebUI ou ControlNet de ComfyUI. L'encodeur Depth Anything peut également être affiné pour des tâches de perception de haut niveau telles que la segmentation sémantique, atteignant 86,2 mIoU sur Cityscapes et 59,4 mIoU sur ADE20K. Plus d’informations sont disponibles ici.

Applications du modèle Depth Anything

L'estimation de la profondeur monoculaire a une gamme d'applications, notamment la reconstruction 3D, la navigation et la conduite autonome. En plus de ces utilisations traditionnelles, les applications modernes explorent le contenu généré par l’IA, comme les images, les vidéos et les scènes 3D. DepthAnything v2 vise à exceller dans les indicateurs de performances clés, notamment la capture de détails fins, la gestion des objets transparents, la gestion des réflexions, l'interprétation de scènes complexes, la garantie de l'efficacité et une forte transférabilité entre différents domaines.

Réflexions finales

Depth Anything V2 est présenté comme un modèle de base plus avancé pour l'estimation de la profondeur monoculaire. Ce modèle se distingue par ses capacités à fournir une prévision de profondeur puissante et fine, prenant en charge diverses applications. La profondeur de toute taille de modèle varie de 25 millions à 1,3 milliard de paramètres et constitue une excellente base pour affiner les tâches en aval.

Tendances futures

  1. Intégration avec d'autres technologies d'IA : combinaison de modèles MDE avec d'autres technologies d'IA telles que les GAN (Generative Adversarial Networks) et le NLP (Natural Language Processing) pour des applications plus avancées en AR/VR, en robotique et en systèmes autonomes.
  2. Spectre d'applications plus large : étendre l'utilisation de l'estimation de profondeur monoculaire dans des domaines tels que l'imagerie médicale, la réalité augmentée et les systèmes avancés d'aide à la conduite (ADAS).
  3. Estimation de la profondeur en temps réel : avancées vers une estimation de la profondeur en temps réel sur les appareils de pointe, la rendant plus accessible et plus pratique pour les applications quotidiennes.
  4. Généralisation inter-domaines : développer des modèles qui peuvent mieux se généraliser dans différents domaines sans nécessiter de recyclage approfondi, améliorant ainsi leur adaptabilité et leur robustesse.
  5. Outils et interfaces conviviaux : création d'outils et d'interfaces plus conviviaux qui permettent aux non-experts d'exploiter de puissants modèles MDE pour diverses applications.

Références

  • Profondeur N'importe quoi Hugging Face blog
  • Document de recherche officiel Depth Anything V2
  • Libérer la puissance des données non étiquetées à grande échelle
  • Profondeur N'importe quoi Github
  • Présentation du NVIDIA RTX A4000

Articles connexes: