image compareImages

Validation de conformité visuelle (Golden Sample)

Scénario de test & Cas d'usage

Contexte Métier

Une usine de fabrication de circuits imprimés (PCB) souhaite automatiser son contrôle qualité. Le système doit comparer chaque photo prise sur la ligne de production (source) avec une image de référence certifiée conforme ('Golden Sample'). L'objectif est de détecter les défauts structurels (composants manquants, soudures ratées) en utilisant l'indice de similarité structurelle (SSIM).
À propos du Set : image

Traitement, manipulation et analyse d'images.

Découvrir toutes les actions de image
Préparation des Données

Création d'une table contenant l'image de référence unique et d'une table simulant un lot de 5 pièces de production, dont certaines défectueuses.

Copié !
1 
2DATA casuser.ref_pcb;
3LENGTH _path_ $255 type $20;
4_path_='/mnt/
5data/quality/golden_master_pcb.png';
6type='gold';
7OUTPUT;
8 
9RUN;
10 
11DATA casuser.prod_batch;
12LENGTH _path_ $255 batch_id $10;
13INPUT _path_ $ batch_id $;
14CARDS;
15/mnt/
16DATA/prod/pcb_001.png BATCH_A /mnt/
17DATA/prod/pcb_002.png BATCH_A /mnt/
18DATA/prod/pcb_003.png BATCH_A /mnt/
19DATA/prod/pcb_004.png BATCH_A /mnt/
20DATA/prod/pcb_005.png BATCH_A ;
21 
22RUN;
23 

Étapes de réalisation

1
Chargement des tables en mémoire (Simulation car les images physiques sont hypothétiques ici)
Copié !
1 
2PROC CAS;
3TABLE.loadTable / path='ref_pcb.sashdat' caslib='casuser' casOut={name='ref_pcb', replace=true};
4TABLE.loadTable / path='prod_batch.sashdat' caslib='casuser' casOut={name='prod_batch', replace=true};
5 
6RUN;
7 
2
Comparaison 'Un-vers-Tous' : Chaque pièce produite est comparée à l'image maître via 'pairAll=True'.
Copié !
1 
2PROC CAS;
3image.compareImages / sourceImages={TABLE={name='prod_batch', caslib='casuser'}} referenceImages={TABLE={name='ref_pcb', caslib='casuser'}} casOut={name='resultats_qualite', caslib='casuser', replace=true} method='SSIM' pairAll=true copyVars={'batch_id'};
4 
5RUN;
6 

Résultat Attendu


Une table 'resultats_qualite' contenant 5 lignes (une par pièce produite). Chaque ligne aura un score SSIM proche de 1 pour les pièces conformes et nettement inférieur pour les pièces défectueuses. La colonne 'batch_id' est conservée pour la traçabilité.