NVPanoptix3D
NVPanoptix3D pour la reconstruction de scène 3D panoptique à partir d'images RGB posées. Produit une segmentation panoptique 3D (masques sémantiques, d'instance et panoptiques) avec complétion d'occupation. Construit sur un backbone VGGT avec une tête de style Mask2Former et reconstruction de frustum 3D.
Utilise des checkpoints de stage 2D et 3D. Définissez train.checkpoint_2d et train.checkpoint_3d pour l'initialisation par étapes.
Schémas Dataclass
Les schémas TAO Core générés sont packagés dans schemas/<action>.schema.json, avec schemas/manifest.json listant les actions disponibles. Chaque schéma généré émet également references/spec_template_<action>.yaml à partir du champ default de haut niveau du schéma. L'activation d'AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. AutoML exécutable nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et se parsent. Utilisez le schéma d'entraînement packagé pour automl_default_parameters, automl_disabled_parameters, défauts, bornes min/max, énumérations, poids d'option, conditions mathématiques, dépendances et paramètres populaires. Ne vous attendez pas à ~/tao-core à l'exécution ; les responsables régénèrent les schémas/templates avant de packager la banque de skills.
Politique Train Action
Ce modèle est activé AutoML au niveau du modèle. Avant de traiter toute demande d'entraînement, lisez references/skill_info.yaml et résolvez la substitution d'exécution à partir d'une valeur automl_policy explicite ou d'une demande de workflow utilisateur. Traitez les expressions comme « turn off AutoML », « disable AutoML », « no HPO » ou « plain training » comme automl_policy: off pour cette exécution uniquement ; sinon par défaut à auto. Quand automl_policy: auto, automl_enabled: true et schemas/train.schema.json et references/spec_template_train.yaml sont packagés, acheminez l'action train via tao-skill-bank:tao-run-automl par défaut avec skill_dir de ce modèle. Préservez les substitutions de workflow/application pour les datasets, specs, répertoires de sortie, paramètres GPU/plateforme, checkpoints parents et automl_policy. Utilisez l'entraînement direct du modèle uniquement quand automl_policy: off ou que le schéma/template d'entraînement packageé manque ; dans le cas du schéma manquant, signalez qu'AutoML est activé mais non exécutable pour ce modèle jusqu'à ce que les schémas soient générés.
Les actions non-train comme evaluate, inference, export et les flux de déploiement restent dans cette skill de modèle. La substitution automl_policy par exécution ne change pas les métadonnées du modèle.
Exigences d'entraînement
- Type de dataset : nvpanoptix3d
- Formats : front3d, matterport
- Métrique de suivi : kpi
Exigences de Dataset par Action
| Action | Clé Spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | dataset.frustum_mask_path | eval_dataset | meta/frustum_mask.npz | Non |
| evaluate | dataset.label_map | eval_dataset | meta/colormap.json | Non |
| evaluate | dataset.val.json_path | eval_dataset | meta/val.json | Non |
| evaluate | dataset.val.base_dir | eval_dataset | Non | |
| evaluate | dataset.test.json_path | inference_dataset | meta/test.json | Non |
| evaluate | dataset.test.base_dir | inference_dataset | Non | |
| inference | dataset.frustum_mask_path | inference_dataset | meta/frustum_mask.npz | Non |
| inference | dataset.label_map | inference_dataset | meta/colormap.json | Non |
| inference | inference.images_dir | inference_dataset | images.tar.gz | Non |
| train | dataset.frustum_mask_path | train_datasets | meta/frustum_mask.npz | Non |
| train | dataset.label_map | train_datasets | meta/colormap.json | Non |
| train | dataset.train.json_path | train_datasets | meta/train.json | Non |
| train | dataset.train.base_dir | train_datasets | Non | |
| train | dataset.val.json_path | eval_dataset | meta/val.json | Non |
| train | dataset.val.base_dir | eval_dataset | Non | |
| train | dataset.test.json_path | inference_dataset | meta/test.json | Non |
| train | dataset.test.base_dir | inference_dataset | Non |
Substitutions Spec typiques
Les substitutions de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau d'exigences de Dataset par Action ci-dessus et les inclure dans spec_overrides.
S3_TRAIN = "s3://bucket/data/train"
S3_EVAL = "s3://bucket/data/eval"
train (sources de données obligatoires) :
{
"train.num_epochs": 10,
"train.checkpoint_interval": 10,
"train.validation_interval": 10,
"train.num_gpus": 1,
"dataset.enable_3d": True,
"model.sem_seg_head.num_classes": 13,
"dataset.frustum_mask_path": f"{S3_TRAIN}/meta/frustum_mask.npz",
"dataset.label_map": f"{S3_TRAIN}/meta/colormap.json",
"dataset.train.json_path": f"{S3_TRAIN}/meta/train.json",
"dataset.train.base_dir": f"{S3_TRAIN}",
"dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
"dataset.val.base_dir": f"{S3_EVAL}",
"dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
"dataset.test.base_dir": f"{S3_EVAL}",
}
evaluate (sources de données obligatoires) :
{
"dataset.enable_3d": True,
"dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
"dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
"dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
"dataset.val.base_dir": f"{S3_EVAL}",
"dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
"dataset.test.base_dir": f"{S3_EVAL}",
}
inference (sources de données obligatoires) :
{
"dataset.enable_3d": True,
"dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
"dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
"inference.images_dir": f"{S3_EVAL}/images.tar.gz",
}
Dataset Eval
Optionnel. Splits val/test configurés via chemins dataset.val et dataset.test.
Paramètres importants
- model.sem_seg_head.num_classes: Nombre de classes sémantiques. Défaut 13.
- model.mode: Mode de prédiction. Options : panoptic, instance, semantic. Défaut panoptic.
- model.backbone_type: Backbone. Défaut vggt (seule option dans le schéma).
- model.mask_former.num_object_queries: Requêtes d'objets. Défaut 100.
- model.mask_former.dec_layers: Couches du décodeur. Défaut 10.
- model.frustum3d.truncation: Troncature frustum 3D. Défaut 3.
- model.frustum3d.panoptic_weight: Poids de perte panoptique. Défaut 25.
- model.frustum3d.completion_weights: Poids de perte de complétion. Défaut [50, 25, 10].
- dataset.name: Nom du dataset. Options : front3d, matterport, synthetic_hospital, synthetic_warehouse.
- dataset.downsample_factor: Facteur de sous-échantillonnage d'image. Défaut 1 (Front3D), 2 (Matterport).
- dataset.target_size: Taille d'image cible. Défaut [320, 240].
- dataset.depth_min: Profondeur min. Défaut 0,4 mètres.
- dataset.depth_max: Profondeur max. Défaut 6,0 mètres.
- train.lr: Taux d'apprentissage. Défaut 2e-4. backbone_multiplier=0.1.
- train.lr_scheduler: Options : MultiStep, Warmuppoly. Milestones [88, 96].
- train.precision: Options : fp16, fp32. Défaut fp16.
- train.distributed_strategy: Options : ddp, fsdp. activation_checkpoint=True par défaut.
- train.clip_grad_norm: Norme de clipping du gradient. Défaut 0,1.
- export.onnx_file_2d: Chemin ONNX pour le composant modèle 2D.
- export.onnx_file_3d: Chemin ONNX pour le composant modèle 3D.
- export.max_voxels: Voxels max pour l'entrée du moteur. Défaut 700000.
- inference.mode: Options : semantic, instance, panoptic.
Multi-GPU / Multi-Node
Méthode de lancement : Gérée par Lightning (processus python unique, Lightning génère les workers).
| Clé Spec | Description | Défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices de périphérique GPU | [0] |
train.num_nodes |
Nombre de nœuds | 1 |
train.distributed_strategy |
ddp uniquement |
ddp |
fsdpn'est PAS supporté pour NVPanoptix3D (le code ne gère queddp)ddpavec activation checkpointing (activé par défaut) :find_unused_parameters=Falseddpsans :find_unused_parameters=True- Backbones FAN avec 3D activé activent automatiquement
sync_batchnorm
Variables d'env multi-node (définies par l'orchestrateur) : WORLD_SIZE, NODE_RANK, MASTER_ADDR, MASTER_PORT, NUM_GPU_PER_NODE.
Valeurs par défaut Export / TRT
- Exporte les modèles ONNX 2D et 3D séparés (onnx_file_2d, onnx_file_3d)
- Types de données TRT : FP32, FP16 uniquement
- max_voxels : 700000 (limite du tenseur d'entrée du moteur)
Matériel
Minimum 2 GPU(s), recommandé 4 GPU(s). 40 Go+ (A100 recommandé) de VRAM par GPU. La reconstruction 3D consomme beaucoup de mémoire. fp16 recommandé. activation_checkpoint activé par défaut. FSDP pour multi-node. AutoML est activé au niveau du modèle ; préservez cette recommandation GPU/VRAM lors du routage de train via AutoML.
Motifs d'erreur
Masque frustum manquant : Assurez-vous que meta/frustum_mask.npz est présent dans le répertoire du dataset.
Inadéquation du facteur de sous-échantillonnage : Utilisez downsample_factor=2 pour Matterport3D, 1 pour Front3D / datasets synthétiques.
OOM occupancy 3D : Réduisez frustum_dims ou grid_dimensions si vous manquez de mémoire GPU lors de la reconstruction 3D.
Spec Param / Inférence Modèle Parent
Les mappages d'inférence spécifiques au modèle appartiennent à ce fichier MD, pas à config.json. Les runners générés doivent lire cette section et appliquer les mappages avec les helpers SDK avant create_job(). Cela reflète l'ancien flux microservices infer_params.py.
Mappages d'inférence du TAO Core nvpanoptix3d.config.json :
| Action | Champ Spec | Fonction d'inférence | Signification |
|---|---|---|---|
| evaluate | encryption_key |
key |
clé de chiffrement |
| evaluate | evaluate.checkpoint |
parent_model |
fichier modèle déduit du dossier de résultats du job parent |
| evaluate | results_dir |
output_dir |
répertoire de résultats du job courant |
| export | encryption_key |
key |
clé de chiffrement |
| export | export.checkpoint |
parent_model |
fichier modèle déduit du dossier de résultats du job parent |
| export | export.onnx_file_2d |
create_onnx_file_2d |
create_onnx_file_2d |
| export | export.onnx_file_3d |
create_onnx_file_3d |
create_onnx_file_3d |
| export | results_dir |
output_dir |
répertoire de résultats du job courant |
| inference | encryption_key |
key |
clé de chiffrement |
| inference | inference.checkpoint |
parent_model |
fichier modèle déduit du dossier de résultats du job parent |
| inference | results_dir |
output_dir |
répertoire de résultats du job courant |
| train | encryption_key |
key |
clé de chiffrement |
| train | results_dir |
output_dir |
répertoire de résultats du job courant |
| train | train.checkpoint_2d |
parent_model_or_ptm |
modèle parent s'il est disponible, sinon PTM |
| train | train.checkpoint_3d |
ptm |
modèle pré-entraîné |
| train | train.resume_training_checkpoint_path |
resume_model |
fichier modèle déduit du dossier de résultats du job courant |
Pour parent_model ou parent_model_folder, passez l'id du job enfant train/export/AutoML amont en tant que parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artifacts de checkpoint et retourne le fichier ou dossier modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne patchquez pas les scripts runner générés pour deviner les chemins de checkpoint.