1. Résumé
ml-sharp est l’implémentation open source du code et du modèle du projet SHARP par Apple, avec pour objectif de revenir directement aux représentations 3D gaussiennes (3DGS) de la scène à partir d’une seule image et d’obtenir une génération d’inférence « moins d’une seconde » sur les GPU standards. Le 3DGS résultant peut être rendu en temps réel pour une nouvelle synthèse de perspective haute résolution à partir de perspectives proches, avec un accent sur l’échelle « métrique » et absolue, permettant une navigation et un rendu plus proches du mouvement réel de la caméra.
2. Caractéristiques principales
- Image unique → 3DGS : Entrer une seule photo et sortir des splats gaussiens 3D (.ply) comme représentation de scène, ce qui est pratique pour accéder à divers outils de rendu/visualisation 3DGS.
- Génération de second niveau : Utilise un paramètre gaussen 3D de régression réseau en avant unique, en se concentrant sur une faible latence et une expérience interactive.
- Échelle mesurable : La sortie représente les attributs de mesure avec l’échelle absolue et le mouvement de la caméra, ce qui est plus propice au rendu de la trajectoire de la caméra et à l’aperçu AR/VR avec un « vrai sens de la distance ».
- Généralisation zéro prise : Positionnée comme un schéma de généralisation robuste à travers les ensembles de données, adapté pour convertir rapidement « n’importe quelle photo » en une expression 3D navigable.
5. CLI d’ingénierie : Fournit sharp outils en ligne de commande pour supporter la prédiction par lots, spécifier les points de contrôle et afficher les trajectoires des Gaussiens générés (avec limitations matérielles).
3. Installation
1. Créer un environnement (exemple) : conda create -n sharp python=3.13, puis conda activate sharp.
2. Installer les dépendances : exécuter le pip install -r requirements.txt dans le répertoire racine du dépôt.
3. Vérifier l’installation : Exécuter sharp --help pour confirmer que la commande est disponible.
4. Les poids par défaut des modèles seront automatiquement téléchargés et mis en cache localement pour la première exécution (vous pouvez également les télécharger manuellement selon le lien fourni dans le README et les spécifier avec -c).
4. Cas d’usage typiques
- Rédaction rapide de contenu 3D : Convertir rapidement une seule séquence en 3DGS pour la preuve de concept, la répétition de l’objectif et l’affichage interactif.
- Aperçu des scènes AR/VR : Convertir des photos en scènes navigables, effectuer des mouvements en gros plan et une vue immersive.
- 3D front du pipeline d’actifs : Transformer la carte de référence 2D en une représentation 3D rapprochée et rendue pour fournir la forme initiale à la reconstruction/édition ultérieure.
- Recherche et évaluation : Comparer la performance des différentes méthodes de synthèse de nouvelles perspectives en termes de rapidité, de détail et de stabilité, et reproduire les conclusions expérimentales.
5. Écologie et produits concurrents
1. Connexion écologique : La sortie .ply de SHARP est compatible avec les moteurs de rendu 3DGS courants ; Il convient de noter qu’il utilise les conventions de coordonnées OpenCV (x à droite, y en bas, z en avant), et peut nécessiter un ajustement de l’échelle/rotation/centre de gravité dans des moteurs de rendu tiers.
- Direction de la comparaison : La page du projet propose une comparaison vidéo visuelle avec diverses méthodes connexes (telles que Gen3C, ViewCrafter, TMPI, Flash3D, LVSM, SVC, etc.). Trois éléments sont généralement mis en avant lors du choix d’un modèle : la vitesse de génération (secondes), la netteté des détails (si la structure est stable) et la cohérence géométrique lors du mouvement de la caméra.
6. Limitations et précautions
1. Limitations matérielles des pistes de rendu : Les prédictions pour générer des 3DGS peuvent s’exécuter dans des environnements tels que CPU/CUDA/MPS, mais le rendu des pistes vidéo à travers --render nécessite actuellement des GPU CUDA.
- Limitations inhérentes à une seule image : Pour les réflexions fortes, les objets transparents, les textures répétitives et les scènes occultées, la géométrie et les textures peuvent dériver ou former des artefacts, il est donc recommandé de filtrer manuellement les entrées et les résultats.
- Détails de compatibilité de rendu tiers : différents visualiseurs ont des conventions différentes sur les systèmes de coordonnées, les échelles unitaires et les champs couleur/attribut, donc vérifiez d’abord les coordonnées et les transformations d’échelle lors de l’importation d’exceptions.
- Licence et usage commercial : Le code et les poids du modèle peuvent adopter des conditions de licence différentes ; Assurez-vous de bien lire la LICENCE et les LICENSE_MODEL de l’entrepôt avant de produire ou d’utiliser commercialement.
7. Adresse du projet
https://github.com/apple/ml-sharp
8. Questions fréquemment posées
Q : Quel est le format du fichier 3DGS produit par ml-sharp (SHARP) et comment l’utiliser ?
R : La sortie par défaut est un fichier .ply de splats 3D Gaussiens, qui peut être importé dans les outils courants de rendu/visualisation 3DGS pour une navigation ou un rendu interactif.
Q : Les poids des modèles de ml-sharp seront-ils téléchargés automatiquement, et où se trouve le cache ?
R : La première exécution de la prédiction téléchargera automatiquement le point de contrôle par défaut et le mettra en cache sur le chemin du cache Torch dans le répertoire utilisateur local ; Il peut également être téléchargé manuellement et spécifié avec -c.
Q : Pourquoi ai-je une erreur ou un échec pour afficher une vidéo avec sharp predict --render ?
R : Le rendu vidéo de piste repose actuellement sur des GPU CUDA ; Si votre environnement ne dispose pas de chaîne d’outils CUDA ou ne respecte pas les dépendances, il est recommandé de construire uniquement .ply et d’utiliser d’autres moteurs de rendu pour compléter la visualisation.
Q : ML-sharp peut-il fonctionner sur Mac (MPS) ?
R : La prédiction (générer 3DGS) peut généralement s’exécuter sur les backends de dispositifs pris en charge, mais le rendu de trajectoire repose toujours sur CUDA ; Sur Mac, il peut être .ply et rendu avec des outils externes.
Q : SHARP est-il adapté pour le monde ouvert dans les « scènes de longue distance » ?
R : Il convient davantage à la synthèse de nouvelles perspectives en « perspective proche » et aux mouvements de caméra à courte portée ; De grands déplacements, une forte occlusion et des changements extrêmes d’angle de vue peuvent entraîner une dégradation de la qualité.