image augmentImages

Scénario Performance : Génération massive de données pour véhicule autonome

Scénario de test & Cas d'usage

Contexte Métier

Un constructeur automobile développe un modèle de perception pour la conduite autonome. Pour couvrir un maximum de scénarios (météo, heure du jour, obstacles), il est nécessaire de générer un très grand volume de données d'entraînement à partir d'une bibliothèque d'images de route existante. Ce test valide la capacité de l'action à gérer plusieurs schémas d'augmentation complexes en une seule passe sur un grand nombre d'images.
À propos du Set : image

Traitement, manipulation et analyse d'images.

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

Simulation d'une table de métadonnées pour un grand nombre d'images de route. Le code SAS génère 5000 enregistrements pour simuler un jeu de données volumineux.

Copié !
1DATA casuser.road_scenes_meta (drop=i);
2 LENGTH scene_id $ 20 image_path $ 60;
3 DO i = 1 to 5000;
4 scene_id = 'SCENE_' || put(i, z5.);
5 image_path = '/mnt/data/road_scenes/' || scene_id || '.png';
6 OUTPUT;
7 END;
8RUN;
9 
10PROC CASUTIL;
11 load DATA=casuser.road_scenes_meta casout='road_scenes_cas' replace;
12 /* En situation réelle, on chargerait les 5000 images depuis le path. */
13QUIT;

Étapes de réalisation

1
Supposons que la table 'road_scenes_cas' contenant les 5000 images et leurs ID est chargée en CAS.
Copié !
1/* Table 'road_scenes_cas' supposée disponible en mémoire CAS avec la colonne '_image_'. */
2
Exécution de l'action 'augmentImages' avec deux configurations d'augmentation distinctes pour maximiser la diversité des données générées. La première crée des 'patches' avec une instabilité de couleur (simulant la météo). La seconde utilise l'image entière et applique des rotations. L'écriture se fait de manière aléatoire pour pré-mélanger le jeu de données.
Copié !
1PROC CAS;
2 image.augmentImages /
3 TABLE={name='road_scenes_cas'}
4 casOut={name='augmented_road_scenes', replace=true}
5 seed=2024
6 writeRandomly=true
7 copyVars={'scene_id'}
8 augmentations={
9 {
10 sweepImage=true, width=256, height=256, stepSize=128,
11 mutations={colorJittering=true}
12 },
13 {
14 useWholeImage=true,
15 mutations={rotateLeft={type='RANGE', value={5, 20}}}
16 }
17 };
18QUIT;

Résultat Attendu


L'action doit s'exécuter et générer une table 'augmented_road_scenes' de très grande taille, contenant des millions d'images augmentées (plusieurs patches par image source + une image entière tournée). Le processus doit être robuste et utiliser efficacement les ressources du cluster CAS. La présence de la colonne 'scene_id' dans la table de sortie garantit la traçabilité vers l'image d'origine.