/ inputs_processing / augment_downstream.py
augment_downstream.py
1 import albumentations as A 2 import numpy as np 3 import pandas as pd 4 5 def CDaugment_patches(path_to_images, path_to_train, path_to_test, target_path_train, target_path_test, num_of_patches): 6 7 dataset_train = pd.DataFrame(columns=['pair1','pair2','change_mask']) 8 dataset_test = pd.DataFrame(columns=['pair1','pair2','change_mask']) 9 10 transform = A.Compose( 11 [A.RandomCrop(width=96, height=96), 12 A.RandomRotate90(5), 13 A.HorizontalFlip(p=0.5), 14 A.VerticalFlip(p=1) 15 ], 16 additional_targets={'image0': 'image'} 17 ) 18 19 #train 20 train_setdf = pd.read_csv(path_to_train+'train_set.csv', dtype=str) 21 #test 22 test_setdf = pd.read_csv(path_to_test+'test_set.csv', dtype=str) 23 24 ####################################train############################################################# 25 pos = 0 26 for index in range(len(train_setdf)): 27 img1 = np.load(path_to_images+train_setdf['pair1'][index]) 28 img2 = np.load(path_to_images+train_setdf['pair2'][index]) 29 mask = np.load(path_to_train+train_setdf['change_mask'][index]) 30 31 #make 100 patches per image pair 32 for i in range(num_of_patches): 33 34 transformed = transform(image=img1, image0=img2, mask = mask) 35 #left 36 prefix_l = train_setdf['pair1'][index][:-4] 37 np.save(target_path_train + prefix_l + '_l_'+ str(i) +'.npy',transformed['image']) 38 #mask 39 prefix_m = train_setdf['change_mask'][index][:-4] 40 np.save(target_path_train + prefix_m +'_'+ str(i) +'.npy',transformed['mask']) 41 #right 42 prefix_r = train_setdf['pair2'][index][:-4] 43 np.save(target_path_train + prefix_r + '_r_'+ str(i) + '.npy',transformed['image0']) 44 #save in a dataframe 45 dataset_train.loc[pos,'pair1'] = prefix_l + '_l_'+ str(i) +'.npy' 46 dataset_train.loc[pos,'pair2'] = prefix_r + '_r_'+ str(i) + '.npy' 47 dataset_train.loc[pos,'change_mask'] = prefix_m +'_'+ str(i) +'.npy' 48 pos += 1 49 50 dataset_train.to_csv(target_path_train + 'dataset_train.csv', index=False) 51 #################################test##################################################### 52 pos = 0 53 for index in range(len(test_setdf)): 54 img1 = np.load(path_to_images+test_setdf['pair1'][index]) 55 img2 = np.load(path_to_images+test_setdf['pair2'][index]) 56 mask = np.load(path_to_test+test_setdf['change_mask'][index]) 57 58 #make 100 patches per image pair 59 for i in range(num_of_patches): 60 61 transformed = transform(image=img1, image0=img2, mask = mask) 62 #left 63 prefix_l = test_setdf['pair1'][index][:-4] 64 np.save(target_path_test + prefix_l + '_l_'+ str(i) +'.npy',transformed['image']) 65 #mask 66 prefix_m = test_setdf['change_mask'][index][:-4] 67 np.save(target_path_test + prefix_m +'_'+ str(i) +'.npy',transformed['mask']) 68 #right 69 prefix_r = test_setdf['pair2'][index][:-4] 70 np.save(target_path_test + prefix_r + '_r_'+ str(i) + '.npy',transformed['image0']) 71 #save in a dataframe 72 dataset_test.loc[pos,'pair1'] = prefix_l + '_l_'+ str(i) +'.npy' 73 dataset_test.loc[pos,'pair2'] = prefix_r + '_r_'+ str(i) + '.npy' 74 dataset_test.loc[pos,'change_mask'] = prefix_m +'_'+ str(i) +'.npy' 75 pos += 1 76 77 dataset_test.to_csv(target_path_test + 'dataset_test.csv', index=False) 78 79 80 # Paths and parameters 81 path_to_images = '/home/dvalsamis/Documents/data/sysu/SYSU_NPY/total_NPY/' 82 path_to_train = '/home/dvalsamis/Documents/data/sysu/SYSU_NPY/train_labels_NPY/' 83 path_to_test = '/home/dvalsamis/Documents/data/sysu/SYSU_NPY/test_labels_NPY/' 84 target_path_train = '/home/dvalsamis/Documents/data/sysu/SYSU_NPY/aug_train_data/' 85 target_path_test = '/home/dvalsamis/Documents/data/sysu/SYSU_NPY/aug_test_data/' 86 num_of_patches = 5 87 88 # Call the function 89 CDaugment_patches(path_to_images, path_to_train, path_to_test, target_path_train, target_path_test, num_of_patches) 90 91 print("Done")