image compareImages

Control de Calidad Automatizado en Línea de Montaje

Scénario de test & Cas d'usage

Contexto empresarial

Una fábrica de componentes electrónicos necesita validar automáticamente la calidad de las placas de circuito impreso (PCB) en la línea de montaje. El sistema debe comparar la foto de cada PCB recién fabricada (tabla origen) con una imagen 'Gold Standard' o perfecta (tabla referencia) correspondiente al modelo específico del producto. Se utiliza SSIM para detectar micro-defectos estructurales.
Sobre el conjunto : image

Procesamiento, manipulación y análisis de imágenes.

Descubrir todas las acciones de image
Preparación de datos

Simulación de dos tablas: 'production_line' (imágenes capturadas) y 'gold_standards' (imágenes perfectas). Se utiliza una columna 'model_id' para el emparejamiento.

¡Copiado!
1 
2DATA casuser.production_line;
3LENGTH _path_ $100 model_id $20 timestamp datetime.;
4INFILE DATALINES dsd;
5INPUT _path_ $ model_id $ timestamp;
6DATALINES;
7"/mnt/cam/prod_A1_001.jpg","PCB_Model_X",1984501000, "/mnt/cam/prod_A1_002.jpg","PCB_Model_X",1984501010, "/mnt/cam/prod_B2_099.jpg","PCB_Model_Y",1984501020;
8 
9RUN;
10 
11DATA casuser.gold_standards;
12LENGTH _path_ $100 model_id $20;
13INFILE DATALINES dsd;
14INPUT _path_ $ model_id $;
15DATALINES;
16"/ref/gold_PCB_Model_X.jpg","PCB_Model_X", "/ref/gold_PCB_Model_Y.jpg","PCB_Model_Y";
17 
18RUN;
19/* Nota: Se asume que image.loadImages se ejecuta aquí para cargar los binarios usando estas tablas */

Étapes de réalisation

1
Ejecución de comparación dirigida por ID de modelo usando el método SSIM (predeterminado).
¡Copiado!
1 
2PROC CAS;
3image.compareImages / TABLE={name='production_line', caslib='casuser'}, referenceImages={TABLE={name='gold_standards', caslib='casuser'}}, pairSourceOn='model_id', pairReferenceOn='model_id', method='SSIM', casOut={name='qc_results', caslib='casuser', replace=true};
4 
5RUN;
6 
7QUIT;
8 
2
Filtrado de piezas defectuosas donde la similitud es inferior al 95%.
¡Copiado!
1 
2PROC CAS;
3SIMPLE.distinct / TABLE={name='qc_results', where='_ssim_ < 0.95'};
4 
5RUN;
6 
7QUIT;
8 

Resultado esperado


La tabla 'qc_results' debe contener una fila por cada pieza fabricada. La columna '_ssim_' indicará el grado de perfección (1.0 = perfecta). El sistema identificará correctamente qué imagen de producción corresponde a qué estándar basándose en 'model_id', ignorando las diferencias en los nombres de archivo.