Configuration du pipeline de perception FoundationPose
Objectif
Préparer le pipeline de perception FoundationPose
pour l'inférence de profondeur, segmentation et pose. L'installation de l'environnement et la construction du moteur relèvent de ce domaine ; l'adaptation des données, l'inférence et l'évaluation de pose relèvent de
foundationpose-pipeline quand cette compétence est installée.
Exigences
Travailler à partir du checkout du produit, pas du répertoire de la compétence installée. Trouver le checkout de l'utilisateur en
vérifiant pyproject.toml (projet foundationpose-perception-pipeline),
tools/build_tao_engine.py, et config/defaults.yaml. S'ils sont absents et que la configuration a été demandée, cloner
l'URL du produit ci-dessus dans l'espace de travail de l'utilisateur et y entrer. Pour les demandes de conseil uniquement, utiliser les
diagnostics fournis sans cloner ou installer quoi que ce soit. Les commandes ci-dessous utilisent des chemins relatifs
à la racine du produit ; les liens references/ sont relatifs à cette compétence.
Lire les sections Requirements et Install du README.md du checkout pour la révision correspondante.
La pile supportée nécessite Linux x86_64, glibc >= 2.38, GLIBCXX_3.4.31, driver NVIDIA >= 580,
un toolkit CUDA >= 12.8 avec nvcc, Python 3.12, uv, Git, Docker avec accès GPU, wget et unzip.
Commencer le dimensionnement du GPU à 24 Go et mesurer la scène la plus dense ; 32 Go a été testé. Budgéter le disque du cache de profondeur
comme environ width * height * 4 * 3 octets par scène, plus les prédictions et modèles.
Maintenir des répertoires frères pour sam3/, foundation-pose-inference-library/ et models/ à côté
du checkout du produit. models/ contient l'ONNX et le moteur déployables, pas la source FoundationStereo.
Instructions
-
Vérification préalable avant installation. Vérifier glibc, GLIBCXX, driver,
nvcc, outils et accès GPU Docker. Un hôte Ubuntu 22.04 avec glibc 2.35 ne peut pas charger la bibliothèque FoundationPose fournie ; signaler l'environnement d'exécution non supporté et arrêter la configuration là. Ne pas remplacer le libc système ni essayer de résoudre cela avecLD_LIBRARY_PATH. Voir installation. -
Installer dans le venv Python 3.12 du produit. Suivre installation pour uv, SAM3, la construction FoundationPose et TAO Deploy. Sur un nouveau venv utiliser
uv sync --extra foundationpose; sur un venv existant utiliseruv sync --inexact --extra foundationposepour préserver les paquets hors bande. -
Vérifier l'accès au checkpoint. SAM3 est contrôlé à Hugging Face ; un token autorisé existant ou un checkpoint en cache utilisable suffit. Demander une action utilisateur uniquement si l'accès manque. FoundationPose et l'export FoundationStereo documenté sont des téléchargements NGC publics ; chercher des identifiants n'est pas la première réponse à une défaillance réseau.
-
Préparer le moteur de profondeur. Lire construction du moteur. Utiliser l'emplacement ONNX de l'utilisateur ou le répertoire frère
models/. Adapter le dataset avant de mesurer la forme du moteur ; utilisertools/bop_adapt/adapt.py --config <profile> --src <source>comme décrit dans la section Dataset adaptation du README du checkout. Seuls les adaptateurs enregistrés sont supportés. Construire avec--shape-from-scenesur une scène adaptée et FP32 sauf si l'utilisateur demande une expérience de précision. Définiroverrides.depth.enginedansconfig/<profile>.yaml. -
Définir les chemins d'exécution et vérifier. À partir de la racine du produit :
source .venv/bin/activate export FOUNDATIONPOSE_ROOT="$(realpath ../foundation-pose-inference-library)" PIPELINE_SITE="$(realpath .venv/lib/python3.12/site-packages)" export LD_LIBRARY_PATH="${PIPELINE_SITE}/tensorrt_libs:${PIPELINE_SITE}/nvidia/cu13/lib:${LD_LIBRARY_PATH:-}" python tools/verify_sam3.py python tools/verify_foundationpose.py python tools/verify_foundationstereo.py --config <profile> --engine <engine-path> python test/check_engine_depth_smoke.py --config <profile> --engine <engine-path>Les trois premiers vérifient les composants ; le dernier nécessite aussi un dataset adapté. Attendre
backend=tao,normalization=imagenet, la forme fixe prévue, et aucun avertissementcropping N rows. Un moteur non chargé ou indisponible est une vérification incomplète, pas une réussite.
Dépannage
| Symptôme | Action |
|---|---|
GLIBC_2.38 not found |
Utiliser un OS/environnement d'exécution supporté ; un venv ou chemin de recherche de bibliothèque ne peut pas mettre à niveau le libc hôte. |
libcudart.so.13 manquant |
Vérifier les wheels d'environnement d'exécution du venv du produit et les chemins de bibliothèque absolus avant de relancer la pose. |
| SAM3 se casse après sync | Utiliser --inexact ; confirmer numpy 1.26.x et réinstaller le paquet SAM3 frère s'il est élagué. |
La construction pycuda ne trouve pas cuda.h |
Vérifier le toolkit CUDA, nvcc sur PATH, ou CUDA_ROOT. |
| Import TAO ou conflit de dépendance | Utiliser TAO Deploy 7.1.0 avec --no-deps ; synchroniser les dépendances déclarées avec --inexact. |
| Disparité du fichier secondaire du moteur ou écrêtage | Reconstruire pour ce GPU, cette version TensorRT, cette précision et cette forme de scène adaptée. |
Exemples
- « Installer le pipeline de perception FoundationPose sur cette machine GPU Ubuntu 24.04. »
- « Le pipeline ne peut pas charger libcudart.so.13 après avoir déplacé le checkout. »
- « Construire le moteur de profondeur TAO pour mes scènes T-LESS adaptées. »
Limitations et achèvement
Les moteurs sont spécifiques à la machine et ne doivent pas être commités. Sans dataset, télécharger l'ONNX et signaler la construction du moteur dépendante de la forme et la validation de scène comme en attente ; ne pas inventer une forme de rig. La licence Apache du pipeline ne couvre pas les poids de modèles téléchargés séparément ; conserver leurs conditions en amont et les exigences d'accès de SAM3.
Signaler quelles étapes de vérification préalable, installation, checkpoint, moteur et vérification ont réellement réussi, les chemins du checkout et du moteur, les versions utilisées et les obstacles restants. Ne pas assimiler l'installation ou un smoke check à la précision de pose mesurée.