Inspection optique
Inspection optique pour la détection de défauts à l'aide de réseaux Siamois. Compare des paires d'images pour détecter les défauts de fabrication, les anomalies ou les problèmes de qualité.
Définissez train.pretrained_model_path pour les poids Siamois pré-entraînés.
Pour les actions TAO Deploy TensorRT (gen_trt_engine, TensorRT evaluate et TensorRT inference), consultez d'abord references/tao-deploy-optical-inspection.md. Les modèles de spec Deploy se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.
Schémas de classes de données
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é émet également references/spec_template_<action>.yaml à partir du champ default de haut niveau du schéma. L'activation AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. L'exécution d'AutoML nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et se parsent. Utilisez le schéma train 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. N'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 d'entraînement
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 à partir d'une valeur automl_policy explicite ou de la demande de workflow de l'utilisateur. Traitez les phrases 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 que schemas/train.schema.json et references/spec_template_train.yaml sont empaquetés, routez l'action d'entraînement via tao-skill-bank:tao-run-automl par défaut avec le skill_dir de ce modèle. Préservez les remplacements de workflow/application pour les datasets, specs, répertoires de sortie, paramètres GPU/platform, 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 train empaqueté est manquant ; 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 autres que l'entraînement comme evaluate, inference, export et les flux de déploiement restent dans cette skill de modèle. Le remplacement automl_policy par exécution ne change pas les métadonnées du modèle.
Conditions d'entraînement
- Type de dataset : optical_inspection
- Formats : default
- Métrique de suivi : val_acc
Conditions de dataset par action
| Action | Clé Spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | dataset.test_dataset.images_dir | eval_dataset | images.tar.gz | Non |
| evaluate | dataset.test_dataset.csv_path | eval_dataset | dataset.csv | Non |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_image_dir | calibration_dataset | images.tar.gz | Oui |
| inference | dataset.infer_dataset.images_dir | inference_dataset | images.tar.gz | Non |
| inference | dataset.infer_dataset.csv_path | inference_dataset | dataset.csv | Non |
| train | dataset.train_dataset.images_dir | train_datasets | images.tar.gz | Non |
| train | dataset.train_dataset.csv_path | train_datasets | dataset.csv | Non |
| train | dataset.validation_dataset.images_dir | eval_dataset | images.tar.gz | Non |
| train | dataset.validation_dataset.csv_path | eval_dataset | dataset.csv | Non |
| train | dataset.test_dataset.images_dir | eval_dataset | images.tar.gz | Non |
| train | dataset.test_dataset.csv_path | eval_dataset | dataset.csv | Non |
Remplacements typiques de spec
Les remplacements de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau Conditions 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.train_dataset.images_dir": f"{S3_TRAIN}/images.tar.gz",
"dataset.train_dataset.csv_path": f"{S3_TRAIN}/dataset.csv",
"dataset.validation_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.validation_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
"dataset.test_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.test_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}
gen_trt_engine (sources de données obligatoires) :
{
"gen_trt_engine.tensorrt.data_type": "fp16",
"gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/images.tar.gz"],
}
evaluate (sources de données obligatoires) :
{
"dataset.test_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.test_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}
inference (sources de données obligatoires) :
{
"dataset.infer_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.infer_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}
Dataset d'évaluation
Optionnel. Le dataset d'évaluation utilise le même format (images + CSV).
Paramètres importants
- model.model_type : variant Siamois. Les options incluent Siamese, Siamese_3.
- model.model_backbone : custom par défaut.
- model.embedding_vectors : nombre de dimensions d'embedding. Par défaut 5.
- train.optim.lr : taux d'apprentissage. Par défaut 5e-4.
- dataset.num_input : nombre d'images d'entrée par comparaison.
- dataset.input_map : mappage des canaux d'entrée / paires d'images.
Multi-GPU / Multi-nœud
Méthode de lancement : gérée par Lightning (processus python unique, Lightning engendre les workers).
| Clé Spec | Description | Par défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices d'appareil GPU | [0] |
- Stratégie :
auto(Lightning choisit la meilleure stratégie automatiquement) - Pas de config
num_nodesoudistributed_strategyexplicite — mono-nœud uniquement - Réseau Siamois léger, une seule GPU généralement suffisante
Matériel
Minimum 1 GPU, recommandé 1 GPU. 8 GB+ VRAM par GPU. Les réseaux Siamois pour l'inspection sont légers. Une seule GPU suffit.
Motifs d'erreur
Erreur de format CSV : assurez-vous que dataset.csv a le format de colonne correct pour les chemins de paires d'images et les labels.
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 assistants SDK avant create_job(). Cela reflète l'ancien flux infer_params.py des microservices.
Mappages d'inférence à partir de optical_inspection.config.json de TAO Core :
| 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 |
create_onnx_file |
chemin de sortie ONNX |
| export | results_dir |
output_dir |
répertoire de résultats du job courant |
| 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 job parent |
| gen_trt_engine | gen_trt_engine.tensorrt.calibration.cal_cache_file |
create_cal_cache |
chemin de cache d'étalonnage |
| gen_trt_engine | gen_trt_engine.trt_engine |
create_engine_file |
chemin de sortie du moteur TensorRT |
| gen_trt_engine | 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 | inference.trt_engine |
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.pretrained_model_path |
ptm_if_no_resume_model |
PTM quand aucun checkpoint de reprise n'existe |
| 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 d'entraînement/export/AutoML en amont comme parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artefacts checkpoint et retourne le fichier ou dossier de modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne patchchez pas les scripts runner générés pour deviner les chemins de checkpoint.
Déploiement
- tao-deploy-optical-inspection — flux de déploiement Inspection optique pour la génération de moteur TensorRT, l'évaluation TensorRT et l'inférence TensorRT utilisant TAO Deploy.