Scénario de test & Cas d'usage
Traitement, manipulation et analyse d'images.
Découvrir toutes les actions de imageSimulation 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.
| 1 | DATA 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; |
| 8 | RUN; |
| 9 | |
| 10 | PROC 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. */ |
| 13 | QUIT; |
| 1 | /* Table 'road_scenes_cas' supposée disponible en mémoire CAS avec la colonne '_image_'. */ |
| 1 | PROC 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 | }; |
| 18 | QUIT; |
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.