OCDNet
OCDNet pour la détection de texte en scène. Détecte les régions de texte orientées arbitrairement dans les images naturelles en utilisant une approche de binarisation différentiable.
Définis train.pretrained_model_path pour les poids pré-entraînés.
Pour les actions TAO Deploy TensorRT (gen_trt_engine, évaluation TensorRT et inference TensorRT), consulte d'abord references/tao-deploy-ocdnet.md. Les modèles de spécification de déploiement se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.
Schémas de classe de données
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 du 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'AutoML exécutable nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et soient parsables. Utilise le schéma train fourni pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids d'options, les conditions mathématiques, les dépendances et les paramètres populaires. N'attends pas ~/tao-core à l'exécution ; les mainteneurs régénèrent les schémas/modèles avant de packager la skill bank.
Politique d'action d'entraînement
Ce modèle est activé pour AutoML au niveau du modèle. Avant de traiter toute demande au stade de l'entraînement, lis references/skill_info.yaml et résous le remplacement d'exécution soit à partir d'une valeur automl_policy explicite, soit à partir de la demande de workflow de l'utilisateur. Traite les phrases comme « turn off AutoML », « disable AutoML », « no HPO » ou « plain training » comme automl_policy: off pour cette exécution uniquement ; sinon utilise par défaut auto. Quand automl_policy: auto, automl_enabled: true, et que schemas/train.schema.json et references/spec_template_train.yaml sont packagés, route l'action d'entraînement via tao-skill-bank:tao-run-automl par défaut avec le skill_dir de ce modèle. Préserve les remplacements de workflow/application pour les datasets, les specs, les répertoires de sortie, les paramètres GPU/platform, les points de contrôle parents et automl_policy. Utilise l'entraînement direct du modèle uniquement quand automl_policy: off ou quand le schéma train/modèle packageé est manquant ; dans le cas du schéma manquant, signale 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 du modèle. Le remplacement automl_policy par exécution ne change pas les métadonnées du modèle.
Exigences d'entraînement
- Type de dataset : ocdnet
- Formats : default
- Métrique de monitoring : hmean
Exigences de dataset par action
| Action | Clé de spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | dataset.validate_dataset.data_path | eval_dataset | test.tar.gz | Oui |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_image_dir | calibration_dataset | train/img.tar.gz | Oui |
| inference | inference.input_folder | eval_dataset | test/img.tar.gz | Non |
| prune | dataset.validate_dataset.data_path | eval_dataset | test.tar.gz | Oui |
| quantize | dataset.train_dataset.data_path | train_datasets | train.tar.gz | Oui |
| quantize | dataset.validate_dataset.data_path | eval_dataset | test.tar.gz | Oui |
| quantize | dataset.quant_calibration_dataset.images_dir | train_datasets | train/img.tar.gz | Non |
| retrain | dataset.train_dataset.data_path | train_datasets | train.tar.gz | Oui |
| retrain | dataset.validate_dataset.data_path | eval_dataset | test.tar.gz | Oui |
| train | dataset.train_dataset.data_path | train_datasets | train.tar.gz | Oui |
| train | dataset.validate_dataset.data_path | eval_dataset | test.tar.gz | Oui |
Remplacements de spec typiques
Les remplacements de sources de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de sources de données à partir du tableau Per-Action Dataset Requirements 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.train_dataset.loader.batch_size": 16,
"dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
"dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}
gen_trt_engine (sources de données obligatoires) :
{
"gen_trt_engine.tensorrt.data_type": "INT8",
"gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/train/img.tar.gz"],
}
evaluate (sources de données obligatoires) :
{
"dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}
inference (sources de données obligatoires) :
{
"inference.input_folder": f"{S3_EVAL}/test/img.tar.gz",
}
prune (sources de données obligatoires) :
{
"dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}
quantize (sources de données obligatoires) :
{
"dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
"dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
"dataset.quant_calibration_dataset.images_dir": f"{S3_TRAIN}/train/img.tar.gz",
}
retrain (sources de données obligatoires) :
{
"dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
"dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}
Dataset d'évaluation
Optionnel. Dataset de test fourni comme tarball séparé.
Paramètres importants
- model.backbone : Par défaut deformable_resnet18. Les convolutions déformables améliorent la détection de régions de texte pour le texte irrégulier.
- train.optimizer.args.lr : Taux d'apprentissage. Par défaut 0,001 (Adam).
- postprocess.thresh : Seuil de binarisation pour l'extraction de régions de texte.
- postprocess.box_thresh : Seuil de confiance de la boîte pour filtrer les détections.
Multi-GPU / Multi-nœud
Méthode de lancement : Gérée par Lightning (processus Python unique, Lightning crée les workers).
| Clé de spec | Description | Par défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices de périphériques GPU | [0] |
train.distributed_strategy |
ddp, fsdp, ou deepspeed_stage_3_offload |
ddp |
ddpavec activation checkpointing :find_unused_parameters=Falseddpsans :find_unused_parameters=Truefsdpforce FP16deepspeed_stage_3_offloadest uniquement supporté pour OCDNet (force FP16)- Les backbones FAN activent automatiquement
sync_batchnorm
Matériel
Minimum 1 GPU, recommandé 1 GPU. 8 GB+ VRAM par GPU. OCDNet est léger. Un single GPU suffit pour la plupart des datasets.
Modèles d'erreur
Faible taux de détection : Ajuste postprocess.thresh et box_thresh. Les seuils par défaut peuvent être trop agressifs pour certains datasets.
Spécification de 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 helpers SDK avant create_job(). Cela reflète le flux infer_params.py des anciens microservices.
Mappages d'inférence à partir de ocdnet.config.json de TAO Core :
| Action | Champ de spec | Fonction d'inférence | Signification |
|---|---|---|---|
| evaluate | evaluate.checkpoint |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| evaluate | evaluate.trt_engine |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| evaluate | model.pruned_graph_path |
pruned_model |
modèle parent élagué |
| evaluate | results_dir |
output_dir |
répertoire des résultats du job actuel |
| export | export.checkpoint |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| export | export.onnx_file |
create_onnx_file |
chemin ONNX de sortie |
| export | results_dir |
output_dir |
répertoire des résultats du job actuel |
| gen_trt_engine | gen_trt_engine.onnx_file |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_cache_file |
create_cal_cache |
chemin du cache de calibrage |
| 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 des résultats du job actuel |
| inference | inference.checkpoint |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| inference | inference.trt_engine |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| inference | model.pruned_graph_path |
pruned_model |
modèle parent élagué |
| inference | results_dir |
output_dir |
répertoire des résultats du job actuel |
| prune | prune.checkpoint |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| prune | results_dir |
output_dir |
répertoire des résultats du job actuel |
| quantize | quantize.model_path |
parent_model |
fichier modèle déduit du dossier des résultats du job parent |
| quantize | results_dir |
output_dir |
répertoire des résultats du job actuel |
| retrain | model.pruned_graph_path |
parent_model |
modèle parent élagué |
| retrain | results_dir |
output_dir |
répertoire des résultats du job actuel |
| train | model.pretrained_model_path |
ptm_if_no_resume_model |
PTM quand aucun checkpoint de reprise n'existe |
| train | results_dir |
output_dir |
répertoire des résultats du job actuel |
| train | train.resume_training_checkpoint_path |
resume_model |
fichier modèle déduit du dossier des résultats du job actuel |
Pour parent_model ou parent_model_folder, passe l'ID du job enfant train/export/AutoML amont comme parent_job_id. Le SDK liste le dossier des résultats du parent, filtre les artefacts de checkpoint et retourne le fichier ou dossier du modèle sélectionné. N'ajoute pas ces mappages à config.json et ne modifie pas les scripts de runners générés pour deviner les chemins de checkpoints.
Déploiement
- tao-deploy-ocdnet — Flux de déploiement OCDNet pour la génération de moteur TensorRT, l'évaluation TensorRT et l'inference TensorRT en utilisant TAO Deploy.