RIP-AV-su-lab / AV /Tools /data_augmentation.py
weidai00's picture
Upload 72 files
6c0075d verified
import numpy as np
import tensorlayer as tl
def data_augmentation1_5(*args):
# image3 = np.expand_dims(image3,-1)
args = tl.prepro.rotation_multi(args, rg=180, is_random=True,
fill_mode='reflect')
args = np.squeeze(args).astype(np.float32)
return args
def data_augmentation3_5(*args):
# image3 = np.expand_dims(image3,-1)
args = tl.prepro.shift_multi(args, wrg=0.10, hrg=0.10, is_random=True,
fill_mode='reflect')
args = np.squeeze(args).astype(np.float32)
return args
def data_augmentation4_5(*args):
args = tl.prepro.swirl_multi(args,is_random=True)
args = np.squeeze(args).astype(np.float32)
return args
def data_augmentation2_5(*args):
# image3 = np.expand_dims(image3,-1)
args = tl.prepro.zoom_multi(args, zoom_range=[0.5, 2.5], is_random=True,
fill_mode='reflect')
args = np.squeeze(args).astype(np.float32)
return args
def data_aug5_old(data_mat, label_mat, label_data_centerness, choice):
data_mat = np.transpose(data_mat, (1, 2, 0))
label_mat = np.transpose(label_mat, (1, 2, 0))
label_data_centerness = np.transpose(label_data_centerness, (1, 2, 0))
if choice == 0:
data_mat = data_mat
label_mat = label_mat
label_data_centerness = label_data_centerness
elif choice == 1:
data_mat = np.fliplr(data_mat)
label_mat = np.fliplr(label_mat)
label_data_centerness = np.fliplr(label_data_centerness)
elif choice == 2:
data_mat = np.flipud(data_mat)
label_mat = np.flipud(label_mat)
label_data_centerness = np.flipud(label_data_centerness)
elif choice == 3:
data_mat, label_mat, label_data_centerness= data_augmentation1_5(data_mat, label_mat, label_data_centerness)
elif choice == 4:
data_mat, label_mat, label_data_centerness= data_augmentation2_5(data_mat, label_mat, label_data_centerness)
elif choice == 5:
data_mat, label_mat, label_data_centerness= data_augmentation3_5(data_mat, label_mat, label_data_centerness)
elif choice == 6:
data_mat, label_mat, label_data_centerness= data_augmentation4_5(data_mat, label_mat, label_data_centerness)
data_mat = np.transpose(data_mat, (2, 0, 1))
label_mat = np.transpose(label_mat, (2, 0, 1))
label_data_centerness = np.transpose(label_data_centerness, (2, 0, 1))
return data_mat, label_mat, label_data_centerness
# data augmentation for variable number of input
def data_aug5(*args,choice):
datas=[np.transpose(item, (1, 2, 0)) for item in args]
if choice==1:
datas=[np.fliplr(item) for item in datas]
elif choice==2:
datas = [np.flipud(item) for item in datas]
elif choice==3:
datas = data_augmentation1_5(*datas)
elif choice==4:
datas = data_augmentation2_5(*datas)
elif choice==5:
datas = data_augmentation3_5(*datas)
elif choice==6:
datas = data_augmentation4_5(*datas)
datas = [np.transpose(item, (2, 0, 1)) for item in datas]
return tuple(datas)