image

flattenImages

##set_image

Description

L'action flattenImages du set d'actions Image est l'outil ultime pour transformer vos images multidimensionnelles en un format 'large' (wide formatStructure de données où chaque observation occupe une seule ligne, avec des variables distinctes en colonnes (ex: une colonne par date). Format privilégié pour l'entraînement de modèles SAS Viya.). Concrètement, elle prend chaque pixel de l'image et le place dans sa propre colonne. C'est l'étape indispensable avant de donner vos images à manger à des algorithmes de Machine LearningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle. traditionnels (comme les régressions ou les forêts aléatoires) qui préfèrent les lignes de chiffres aux matrices complexes. C'est un peu comme si vous passiez votre photo préférée à la déchiqueteuse, mais de manière très organisée et réversible !

Syntaxe Officielle
image.flattenImages /
casOut={casouttable},
copyVars={"variable-name-1" <, "variable-name-2", ...>},
groupChannels=TRUE | FALSE,
height=64-bit-integer,
image="variable-name",
images={flattenImagesTableIn},
numberOfChannels="COLOR_IMAGE" | "GRAY_SCALE_IMAGE" | 64-bit-integer,
table={castable},
transpose=TRUE | FALSE,
width=64-bit-integer

Paramètres Clés

Nom du paramètre Description
casOut Spécifie les paramètres de la table CAS de sortie qui contiendra les images aplaties. Chaque ligne correspondra à une image et chaque colonne à un pixel/canal.
table Spécifie la table d'entrée contenant les images chargées en mémoire. Alias de 'images.table'.
width / height Définissent les dimensions cibles pour l'aplatissement. L'action redimensionne automatiquement l'image à ces dimensions avant de créer les colonnes.
numberOfChannels Définit si l'image doit être traitée en couleur (3 canaux) ou en niveaux de gris (1 canal) avant d'être aplatie.
groupChannels Si activé, regroupe tous les pixels d'un canal ensemble (ex: tous les rouges, puis tous les verts, puis tous les bleus) plutôt que de les entrelacer par pixel.
copyVars Liste des variables de la table d'origine à conserver dans la table aplatie (typiquement le chemin du fichier ou l'étiquette/label).

Préparation des données

Chargement d'images pour aplatissement

Avant d'aplatir, il faut charger des images. Ici nous utilisons l'action loadImages pour préparer le terrain.

1PROC CAS; image.loadImages / path="/data/images/mnist/", casOut={name="imgs_data", replace=true}; RUN;

Exemples d'utilisation

Aplatissement basique en niveaux de gris

On transforme les images en format 28x28 pixels en une seule ligne de 784 colonnes.

1PROC CAS; image.flattenImages / TABLE="imgs_data", casOut={name="flat_mnist", replace=true}, width=28, height=28, numberOfChannels="GRAY_SCALE_IMAGE"; RUN;
Résultat Attendu :
Une table nommée flat_mnist avec 784 colonnes de pixels (plus les colonnes copiées par défaut).
Aplatissement expert avec regroupement de canaux et métadonnées

Dans cet exemple, on aplatit des images en 32x32 couleur, en regroupant les canaux (R, G, B séparés) et en gardant explicitement certaines colonnes d'origine.

1PROC CAS; image.flattenImages / TABLE={name="imgs_data"}, casOut={name="flat_color_imgs", replace=true}, width=32, height=32, numberOfChannels="COLOR_IMAGE", groupChannels=true, copyVars={"_path_", "_label_", "_id_"}; RUN;
Résultat Attendu :
Une table avec 3072 colonnes de pixels (32*32*3) organisées par canal, incluant le chemin et le label pour chaque image.