def resize_all(output_shape): resizer_1 = ds.resize(u.mul_shape(output_shape, 4)) resizer_2 = ds.resize(u.mul_shape(output_shape, 2)) resizer_3 = ds.resize(output_shape) def f(x): x = resizer_1(x) y = resizer_2(x) z = resizer_3(y) return x, y, z return f
def prepare(dataset, epochs, batch_size, input_shape, output_shape): stream = ds.epochs(dataset.image_ids, epochs) # stream = ds.stream(check, stream) stream = ds.stream( lambda x: (dataset.load_image(x), dataset.load_output(x)), stream) stream = ds.stream(ds.apply_to_x(ds.resize(input_shape)), stream) stream = ds.stream(ds.apply_to_y(ds.resize(output_shape)), stream) # stream = ds.stream(ds.apply_to_x(check), stream) stream = ds.bufferize(stream, size=20) batch = ds.stream_batch(stream, size=batch_size) batch = ds.stream( ds.apply_to_y(lambda x: ds.image2mask(x).reshape(x.shape + (1, ))), batch) return batch
def imageid2categoricalpixel(dataset, input_shape): """Convert image_id to categorical pixel.""" resizer = ds.resize(input_shape) def f(image_id): return to_regression(dataset, resizer, input_shape, image_id) return f
def prepare(dataset, input_shape): stream = ds.epochs(dataset.image_ids, epochs=1) # stream = ds.stream(check, stream) stream = ds.stream( lambda x: (dataset._img_filenames[x], dataset.load_image(x)), stream) stream = ds.stream(ds.apply_to_y(ds.resize(input_shape)), stream) return stream
def resize_all(output_shape): resizer_0 = ds.resize(u.mul_shape(output_shape, 16)) resizer_1 = ds.resize(u.mul_shape(output_shape, 8)) resizer_2 = ds.resize(u.mul_shape(output_shape, 4)) resizer_3 = ds.resize(u.mul_shape(output_shape, 2)) resizer_4 = ds.resize(output_shape) def f(x): w = resizer_0(x) x = resizer_1(x) y = resizer_2(x) z = resizer_3(y) v = resizer_4(x) return w, x, y, z, v return f
def prepare(dataset, input_shape, output_shape): resizer = ds.resize(u.mul_shape(output_shape, 32)) stream = ds.epochs(dataset.image_ids, epochs=1) stream = ds.stream( lambda x: (dataset._img_filenames[x], resizer(dataset.load_image(x))), stream) return stream
def prepare(dataset, epochs, batch_size, input_shape, base_path): lm = load_masks(dataset, base_path) stream = ds.epochs(dataset.image_ids, epochs) stream = ds.stream(lambda x: (dataset.load_image(x), lm(x)), stream) stream = ds.stream(ds.apply_to_x(ds.resize(input_shape)), stream) batch = ds.stream_batch(stream, size=batch_size, fun=lambda x, y: (np.array(x), fix_y(y))) return batch
def resize_all(dataset, output_shape): out_shape_1 = u.mul_shape(output_shape, 4) resizer_1 = ds.resize(out_shape_1) resizer_2 = ds.resize(u.mul_shape(output_shape, 2)) resizer_3 = ds.resize(output_shape) def f((image_id, img)): cat = dataset.to_categorical(image_id) result = np.zeros(out_shape_1 + [cat.shape[2]]) for i in range(0, cat.shape[2]): result[:, :, i] = resizer_1(cat[:, :, i]) x = resizer_1(img) y = resizer_2(x) z = resizer_3(y) x = x.reshape(x.shape + (1, )) y = y.reshape(y.shape + (1, )) z = z.reshape(z.shape + (1, )) return result, x, y, z return f
def imageid2categoricalpixel(dataset, output_shape): """Convert image_id to categorical pixel.""" resizer = ds.resize(output_shape) def f(image_id): cat = dataset.to_categorical(image_id) # expand values to be better separable after resizing cat[cat > 0] = 255 # class_ids = set(dataset.get_class_ids(image_id)) result = np.zeros(list(output_shape[:2]) + [cat.shape[2]]) for i in class_ids: result[:, :, i] = resizer(cat[:, :, i]) # fix value generated from resizing result[result <= 127] = 0 result[result > 127] = 1 return result return f
def resize_all(output_shape): resizer_orig = ds.resize(u.mul_shape(output_shape, 32)) # resizer_0 = ds.resize(u.mul_shape(output_shape, 16)) # resizer_1 = ds.resize(u.mul_shape(output_shape, 8)) # resizer_2 = ds.resize(u.mul_shape(output_shape, 4)) # resizer_3 = ds.resize(u.mul_shape(output_shape, 2)) # resizer_4 = ds.resize(output_shape) def f(input_): input_ = resizer_orig(input_) # w = resizer_0(input_) # x = resizer_1(w) # y = resizer_2(x) # z = resizer_3(y) # v = resizer_4(z) return input_, # , w, x, y, z, v return f
output6 = layers.Conv2D(1, (1, 1), activation='sigmoid')(mul6) return models.Model(inputs=model.inputs, outputs=[output6]) coco_path = '/media/hachreak/Magrathea/datasets/coco/size_320x320' model_path = '' epochs = 100 batch_size = 3 input_shape = (320, 320, 3) output_shape = (10, 10) action = 'train' # action = 'evaluate' resizer = ds.resize(input_shape[:2]) # validation dataset dataset_val = u.get_dataset(coco_path, 'val') gen_val = prepare(dataset_val, epochs, batch_size, input_shape, output_shape, load_image=dataset_val.load_image, resizer=resizer) # img_o = load_augmented_image(dataset_val, ds.resize((320,320)), 0) # fuu = next(gen_val) # import ipdb; ipdb.set_trace()