image augmentImages

Análisis de Robustez de Modelo para Detección de Neumonía en Rayos X

Scénario de test & Cas d'usage

Contexto empresarial

Un hospital busca mejorar la precisión de su modelo de Deep Learning para detectar signos de neumonía en radiografías de tórax. El conjunto de datos es limitado y se necesita generar variaciones realistas de las imágenes existentes para que el modelo no sobreajuste y generalice mejor a nuevos pacientes. Las variaciones deben simular pequeñas diferencias en la posición del paciente y en la exposición del equipo de rayos X.
Sobre el conjunto : image

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

Descubrir todas las acciones de image
Preparación de datos

Creación de una tabla de metadatos que apunta a las imágenes de rayos X y contiene una etiqueta de diagnóstico ('Normal' o 'Neumonia').

¡Copiado!
1DATA mycas.radiografias_torax;
2 LENGTH id_paciente $20 image_path $200 diagnostico $10;
3 INPUT id_paciente $ image_path $ diagnostico $;
4 DATALINES;
5 P001 /path/to/xray_normal_01.png Normal
6 P002 /path/to/xray_neumonia_01.png Neumonia
7 P003 /path/to/xray_normal_02.png Normal
8 ;
9RUN;
10 
11PROC CAS;
12 image.loadImages /
13 path='radiografias_torax'
14 casOut={name='cas_radiografias', caslib='mycas', replace=true}
15 TABLE={name='radiografias_torax', caslib='mycas'}
16 copyVars={'id_paciente', 'diagnostico'};
17RUN;

Étapes de réalisation

1
Aplicar un aumento estándar para simular variaciones realistas. Se extrae un parche central y se le aplican volteos y rotaciones leves de forma aleatoria. Se copian las variables de identificación y diagnóstico.
¡Copiado!
1PROC CAS;
2 image.augmentImages /
3 TABLE={name='cas_radiografias', caslib='mycas'}
4 seed=42
5 augmentations={{
6 crop='RANDOM',
7 width=512, height=512,
8 mutations={{
9 horizontalFlip=true,
10 rotateLeft={type='RANGE', value={-5, 5}},
11 lighten={type='RANGE', value={0.95, 1.05}}
12 }}
13 }}
14 casOut={name='radiografias_aumentadas', caslib='mycas', replace=true}
15 copyVars={'id_paciente', 'diagnostico'}
16 image='_image_';
17RUN;
2
Verificar que la tabla de salida contiene las imágenes aumentadas y que las etiquetas se han conservado correctamente.
¡Copiado!
1PROC CASUTIL;
2 list tables / caslib='mycas';
3 contents / TABLE={name='radiografias_aumentadas', caslib='mycas'};
4RUN;
5 
6PROC FREQ DATA=mycas.radiografias_aumentadas;
7 tables diagnostico;
8RUN;

Resultado esperado


La tabla 'radiografias_aumentadas' debe ser creada en la caslib 'mycas'. Debe contener una fila por cada imagen de entrada. Cada fila tendrá una versión aumentada de la imagen original. Las columnas 'id_paciente' y 'diagnostico' deben estar presentes y contener los valores correctos, asegurando que la etiqueta de la imagen no se pierda durante el proceso de aumento.