CenterPose
CenterPose pour l'estimation de points clés / pose. Détecte les centres d'objets et régresse les localisations des points clés. Utilisé pour l'estimation de pose 6-DoF des objets.
Définir model.backbone.pretrained_backbone_path.
Pour les actions TAO Deploy TensorRT (gen_trt_engine, TensorRT evaluate et TensorRT inference), consultez d'abord references/tao-deploy-centerpose.md. Les modèles de spec de déploiement se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.
Schémas Dataclass
Les schémas TAO Core générés sont empaquetés dans schemas/<action>.schema.json, avec schemas/manifest.json listant les actions disponibles. Chaque schéma généré produit également references/spec_template_<action>.yaml à partir du champ default au niveau supérieur du schéma. L'activation d'AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. L'exécution d'AutoML exige toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et se analysent. Utilisez le schéma d'entraînement empaqueté pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids des options, les conditions mathématiques, les dépendances et les paramètres populaires. Ne s'attendez pas à ~/tao-core à l'exécution ; les responsables régénèrent les schémas/modèles avant d'empaqueter la skill bank.
Politique d'action Train
Ce modèle est activé pour AutoML au niveau du modèle. Avant de traiter toute demande à l'étape d'entraînement, lisez references/skill_info.yaml et résolvez le remplacement d'exécution soit à partir d'une valeur automl_policy explicite, soit de la demande de workflow de l'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, utilisez la valeur par défaut auto. Quand automl_policy: auto, automl_enabled: true et que schemas/train.schema.json et references/spec_template_train.yaml sont empaquetés, routez l'action d'entraînement par défaut via tao-skill-bank:tao-run-automl avec le skill_dir de ce modèle. Préservez les surcharges de workflow/application pour les datasets, les specs, les répertoires de sortie, les paramètres GPU/plateforme, les checkpoints parents et automl_policy. Utilisez l'entraînement direct du modèle uniquement quand automl_policy: off ou que le schéma/modèle d'entraînement empaqueté est manquant ; dans le cas de 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 telles que evaluate, inference, export et les flux de déploiement restent dans cette skill de modèle. La surcharge automl_policy par exécution ne modifie pas les métadonnées du modèle.
Exigences d'entraînement
- Type de dataset : centerpose
- Formats : default
- Métrique de suivi : val_3DIoU
Exigences de Dataset par action
| Action | Clé Spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | dataset.test_data | eval_dataset | test.tar.gz | Non |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_image_dir | calibration_dataset | train.tar.gz | Oui |
| inference | dataset.inference_data | inference_dataset | val.tar.gz | Non |
| train | dataset.train_data | train_datasets | train.tar.gz | Non |
| train | dataset.val_data | eval_dataset | val.tar.gz | Non |
Surcharges Spec typiques
Les surcharges de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau 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": 30,
"train.checkpoint_interval": 10,
"train.validation_interval": 10,
"train.num_gpus": 1,
"dataset.category": "bike",
"dataset.batch_size": 4,
"dataset.train_data": f"{S3_TRAIN}/train.tar.gz",
"dataset.val_data": f"{S3_EVAL}/val.tar.gz",
}
evaluate (sources de données obligatoires) :
{
"dataset.category": "bike",
"dataset.test_data": f"{S3_EVAL}/test.tar.gz",
}
inference (sources de données obligatoires) :
{
"dataset.category": "bike",
"dataset.inference_data": f"{S3_EVAL}/val.tar.gz",
}
gen_trt_engine (sources de données obligatoires) :
{
"gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/train.tar.gz"],
}
Dataset d'évaluation
Optionnel. Les datasets de validation et test sont fournis sous forme de tarballs distincts.
Paramètres importants
- dataset.num_classes: Nombre de catégories d'objets. Par défaut 1.
- dataset.num_joints: Nombre de points clés par objet. Fixé à 8 (points clés de boîte englobante). Plage valide : exactement 8.
- dataset.input_res: Résolution d'entrée. Fixée à 512. Résolution de sortie fixée à 128.
- dataset.category: Nom de la catégorie d'objet. Par défaut « cereal_box ».
- model.backbone.model_type: Par défaut fan_small. Options de backbone limitées dans le schéma.
- train.optim.lr: Taux d'apprentissage. Par défaut 6e-5. Planificateur MultiStep avec lr_steps=[90, 120], lr_decay=0.1.
- train.loss_config: Configuration de perte enrichie avec bascules : mse_loss, obj_scale, obj_scale_uncertainty, hps_uncertainty, reg_bbox, hm_hp. Poids : wh_weight=0.1, off_weight=1, hp_weight=1.
- inference.use_pnp: Utiliser PnP pour la pose 6-DoF. Par défaut True. Nécessite des paramètres intrinsèques de caméra (focal_length_x/y, principle_point_x/y).
- export.input_width: Taille d'entrée d'export. Fixée à 512x512. opset_version=16.
Multi-GPU / Multi-Node
Méthode de lancement : Gérée par Lightning (processus Python unique, Lightning lance les workers).
| Clé Spec | Description | Par défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices de périphériques GPU | [0] |
- Stratégie :
auto(Lightning choisit automatiquement la meilleure stratégie) - Pas de configuration explicite
num_nodesoudistributed_strategy— single-node uniquement - Pas de
sync_batchnorm
Valeurs par défaut Export / TRT
- Export input : 512x512 (fixe), opset 16
- Types de données TRT : FP32, FP16, INT8
- opt_batch_size TRT : 4, max_batch_size : 8
Référence TAO Deploy complète : tao-deploy-centerpose.
Matériel
Minimum 1 GPU, recommandé 2 GPUs. 16GB+ VRAM par GPU. CenterPose consomme modérément de mémoire selon la résolution d'entrée et le nombre de points clés.
Modèles d'erreur
Inadéquation num_joints: Assurez-vous que dataset.num_joints correspond au nombre de points clés dans vos annotations.
Spec Param / Inférence du 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 aides SDK avant create_job(). Cela reflète l'ancien flux de microservices infer_params.py.
Mappages d'inférence depuis TAO Core centerpose.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 travail parent |
| evaluate | evaluate.trt_engine |
parent_model |
fichier modèle déduit du dossier de résultats du travail parent |
| evaluate | results_dir |
output_dir |
répertoire de résultats du travail actuel |
| export | encryption_key |
key |
clé de chiffrement |
| export | export.checkpoint |
parent_model |
fichier modèle déduit du dossier de résultats du travail parent |
| export | export.onnx_file |
create_onnx_file |
chemin ONNX de sortie |
| export | results_dir |
output_dir |
répertoire de résultats du travail actuel |
| gen_trt_engine | encryption_key |
key |
clé de chiffrement |
| gen_trt_engine | gen_trt_engine.onnx_file |
parent_model |
fichier modèle déduit du dossier de résultats du travail parent |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_cache_file |
create_cal_cache |
chemin du cache de calibration |
| gen_trt_engine | gen_trt_engine.trt_engine |
create_engine_file |
chemin du moteur TensorRT de sortie |
| gen_trt_engine | results_dir |
output_dir |
répertoire de résultats du travail actuel |
| inference | encryption_key |
key |
clé de chiffrement |
| inference | inference.checkpoint |
parent_model |
fichier modèle déduit du dossier de résultats du travail parent |
| inference | inference.trt_engine |
parent_model |
fichier modèle déduit du dossier de résultats du travail parent |
| inference | results_dir |
output_dir |
répertoire de résultats du travail actuel |
| train | encryption_key |
key |
clé de chiffrement |
| train | model.backbone.pretrained_backbone_path |
ptm_if_no_resume_model |
PTM quand aucun checkpoint de reprise n'existe |
| train | results_dir |
output_dir |
répertoire de résultats du travail actuel |
| train | train.resume_training_checkpoint_path |
resume_model |
fichier modèle déduit du dossier de résultats du travail actuel |
Pour parent_model ou parent_model_folder, passez l'identifiant du travail enfant d'entraînement/export/AutoML en amont comme parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artefacts de checkpoint et retourne le fichier ou dossier modèle sélectionné. Ne réajoutez pas ces mappages à config.json et ne patchez pas les scripts de runner générés pour deviner les chemins de checkpoint.