La acción `augmentImages` en SAS Viya se utiliza para aumentar imágenes creando parches y aplicándoles diversas mutaciones. Esta técnica es fundamental en el aprendizaje profundo para expandir artificialmente el conjunto de datos de entrenamiento, lo que ayuda a mejorar la robustez y el rendimiento del modelo al exponerlo a una mayor variedad de datos de imagen.
| Parámetro | Descripción |
|---|---|
| addColumns | Especifica columnas adicionales para agregar a la tabla de salida. |
| augmentations | Especifica la lista de opciones de recorte y mutación. |
| casOut | Especifica la tabla de salida para almacenar las imágenes aumentadas. |
| copyVars | Especifica las variables a copiar de la tabla de entrada a la tabla de salida. |
| decode | Cuando se establece en True, decodifica las imágenes antes de escribirlas en la tabla de salida. |
| image | Especifica el nombre de la columna que contiene los binarios de la imagen. |
| seed | Especifica una semilla para la escritura aleatoria de imágenes. |
| table | Especifica la tabla de entrada que contiene los datos de la imagen. |
| writeRandomly | Cuando se establece en True, escribe la imagen resultante de forma aleatoria en la tabla de salida. |
Este código crea una tabla CAS llamada 'my_images' que contiene la ruta a las imágenes que se utilizarán para el aumento. Es un requisito previo para poder cargar y procesar las imágenes.
| 1 | DATA mycas.my_images; |
| 2 | LENGTH image_path $200; |
| 3 | INPUT image_path $; |
| 4 | DATALINES; |
| 5 | /path/to/your/image1.jpg |
| 6 | /path/to/your/image2.png |
| 7 | /path/to/your/image3.bmp |
| 8 | ; |
| 9 | RUN; |
| 10 | |
| 11 | PROC CAS; |
| 12 | image.loadImages / |
| 13 | path="my_images" |
| 14 | casOut={name="images_table", caslib="mycas", replace=true} |
| 15 | TABLE={name="my_images", caslib="mycas"}; |
| 16 | RUN; |
Este ejemplo toma cada imagen de la tabla 'images_table', extrae un parche de 224x224 píxeles desde la esquina superior izquierda (0,0), y luego crea una versión volteada horizontalmente de ese parche.
| 1 | PROC CAS; |
| 2 | image.augmentImages / |
| 3 | TABLE={name='images_table'} |
| 4 | augmentations={{width=224, height=224, x=0, y=0, mutations={horizontalFlip=true}}} |
| 5 | casOut={name='augmented_simple', caslib='mycas', replace=true} |
| 6 | copyVars={'_id_', '_path_'}; |
| 7 | RUN; |
Este ejemplo demuestra un escenario de aumento más complejo. Para cada imagen, se realizan dos tipos de aumentos. El primero ('useWholeImage=true') aplica una serie de mutaciones a la imagen completa. El segundo ('sweepImage=true') barre la imagen con una ventana de 256x256, creando múltiples parches. A cada parche se le aplica aleatoriamente una rotación a la izquierda, un aclarado o un oscurecimiento. La semilla ('seed') asegura la reproducibilidad de las operaciones aleatorias.
| 1 | PROC CAS; |
| 2 | image.augmentImages / |
| 3 | TABLE={name='images_table'} |
| 4 | seed=1234 |
| 5 | augmentations={ |
| 6 | {useWholeImage=true, mutations={horizontalFlip=true, verticalFlip=true, colorJittering=true}}, |
| 7 | {sweepImage=true, width=256, height=256, stepSize=128, |
| 8 | mutations={ |
| 9 | rotateLeft={type='RANGE', value={10, 45}}, |
| 10 | lighten={type='RANGE', value={1.1, 1.5}}, |
| 11 | darken={type='RANGE', value={0.5, 0.9}} |
| 12 | } |
| 13 | } |
| 14 | } |
| 15 | casOut={name='augmented_detailed', caslib='mycas', replace=true} |
| 16 | copyVars={'_id_', '_path_'}; |
| 17 | RUN; |
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 ge...
Una agencia geoespacial necesita entrenar un modelo de segmentación de imágenes para clasificar la cobertura del suelo (bosque, agua, urbano) a partir de imágenes satelitales de...
En una línea de producción, un sistema de visión artificial captura imágenes de piezas para control de calidad. Ocasionalmente, se generan archivos de imagen corruptos o vacíos....