/ inputs_processing / augment_task_one.py
augment_task_one.py
 1  import albumentations as A
 2  import numpy as np
 3  import pandas as pd
 4  
 5  def augment_patches(path_to_images, target_path,num_of_patches, onera=False):
 6      
 7      dataset = pd.DataFrame(columns=['pair1','pair2','overlap'])
 8      
 9      if onera == False:
10          images_df = pd.read_csv(path_to_images + "s2mtcp_set.csv")
11      else:
12          images_df = pd.read_csv(path_to_images + "onera_set.csv")
13          
14      transform_overlap = A.Compose(
15      [A.RandomCrop(width=96, height=96),
16       A.RandomRotate90(p=0.5),
17       A.HorizontalFlip(p=0.5),
18       A.VerticalFlip(p=0.5)
19      ],
20      additional_targets={'image0': 'image'}
21      )
22      
23      transform_non = A.Compose(
24      [A.RandomCrop(width=96, height=96),
25       A.RandomRotate90(p=0.5),
26       A.HorizontalFlip(p=0.5),
27       A.VerticalFlip(p=0.5)
28      ]
29      )
30      pos = 0
31      for index in range(len(images_df)):
32          img1 = np.load(path_to_images+images_df['pair1'][index])
33          img2 = np.load(path_to_images+images_df['pair2'][index])
34          #make num_of_patches overlaping patches for this image pair
35          for i in range(num_of_patches):
36              #left
37              transformed = transform_overlap(image=img1, image0=img2)
38              prefix = images_df['pair1'][index][:-4]
39              np.save( target_path + prefix + '_lo_'+ str(i) +'.npy',transformed['image'])
40              #save in a dataframe
41              dataset.loc[pos,'pair1'] = prefix + '_lo_'+ str(i) +'.npy'
42              dataset.loc[pos,'overlap'] = 0
43              #right
44              prefix = images_df['pair2'][index][:-4]
45              np.save( target_path + prefix + '_ro_'+ str(i) + '.npy',transformed['image0'])
46              #save in a dataframe
47              dataset.loc[pos,'pair2'] =  prefix + '_ro_'+ str(i) + '.npy'
48              pos += 1
49                  
50          #make num_of_patches non_overlaping patches for this image pair
51          for i in range(num_of_patches):
52              #left
53              transformed = transform_non(image=img1)
54              prefix = images_df['pair1'][index][:-4]
55              np.save( target_path + prefix + '_ln_'+ str(i) +'.npy',transformed['image'])
56              #save in a dataframe
57              dataset.loc[pos,'pair1'] = prefix + '_ln_'+ str(i) +'.npy'
58              dataset.loc[pos,'overlap'] = 1
59              #right
60              transformed = transform_non(image=img2)
61              prefix = images_df['pair2'][index][:-4]
62              np.save( target_path + prefix + '_rn_'+ str(i) + '.npy',transformed['image'])
63              #save in a dataframe
64              dataset.loc[pos,'pair2'] =  prefix + '_rn_'+ str(i) + '.npy'
65              pos+=1
66                 
67      dataset.to_csv(target_path + 'dataset.csv', index=False)