in part_generator.py [0:0]
def __getitem__(self, index):
path = self.paths[index]
json_data = json.load(open(path))
input_parts_json = json_data['input_parts']
target_part_json = json_data['target_part']
# sample random affine parameters
theta = np.random.uniform(*self.rotate)
trans_pixel = 512*self.trans
translate_x = np.random.uniform(-trans_pixel, trans_pixel)
translate_y = np.random.uniform(-trans_pixel, trans_pixel)
scale = np.random.uniform(*self.scale)
if self.large_aug:
line_diameter = np.random.uniform(*self.line_diameter_scale)*16
else:
line_diameter = 16
# apply random affine transformation
affine_target_part_json= self.affine_trans(target_part_json, theta, translate_x, translate_y, scale)
processed_img_partial = []
affine_vector_input_part = []
for i in range(self.n_part):
key = self.id_to_part[i]
affine_input_part_json = self.affine_trans(input_parts_json[key], theta, translate_x, translate_y, scale)
affine_vector_input_part += affine_input_part_json
processed_img_partial.append(self.processed_part_to_raster(affine_input_part_json, side=self.image_size, line_diameter=line_diameter))
processed_img_partial.append(self.processed_part_to_raster(affine_vector_input_part, side=self.image_size, line_diameter=line_diameter))
processed_img_partonly = self.processed_part_to_raster(affine_target_part_json, side=self.image_size, line_diameter=line_diameter)
processed_img = self.processed_part_to_raster(affine_vector_input_part+affine_target_part_json, side=self.image_size, line_diameter=line_diameter)
# RandomHorizontalFlip
if np.random.random() > 0.5:
processed_img = processed_img.flip(-1)
processed_img_partial = torch.cat(processed_img_partial, 0).flip(-1)
processed_img_partonly = processed_img_partonly.flip(-1)
else:
processed_img_partial = torch.cat(processed_img_partial, 0)
return processed_img, processed_img_partial, processed_img_partonly