Пример #1
0
            # torch.Size([1, 2, 256, 256])
            # (Pdb) pp data['hint_B'].max()
            # tensor(0., device='cuda:0')
            # (Pdb) pp data['hint_B'].min()
            # tensor(0., device='cuda:0')

            # (Pdb) pp data['mask_B'].size()
            # torch.Size([1, 1, 256, 256])
            # (Pdb) pp data['mask_B'].min()
            # tensor(-0.5000, device='cuda:0')
            # (Pdb) pp data['mask_B'].max()
            # tensor(-0.5000, device='cuda:0')

            model.set_input(data)
            model.test(True)  # True means that losses will be computed
            visuals = util.get_subset_dict(model.get_current_visuals(),
                                           to_visualize)

            psnrs[i,
                  pp] = util.calculate_psnr_np(util.tensor2im(visuals['real']),
                                               util.tensor2im(visuals['fake']))

            save_images(webpage,
                        visuals,
                        img_path,
                        aspect_ratio=opt.aspect_ratio,
                        width=opt.display_winsize)

        if i % 5 == 0:
            print('processing (%04d)-th image... %s' % (i, img_path))

        if i == opt.how_many - 1:
Пример #2
0
def select_photos():
    to_visualize = ['gray', 'real', 'fake_reg', 'mask', 'hint']
    opt.load_model = True
    opt.num_threads = 1
    opt.batch_size = 1
    opt.display_id = -1
    opt.phase = 'val'

    opt.serial_batches = True
    opt.aspect_ratio = 1.

    model = create_model(opt)
    model.setup(opt)

    # tensor_image = tensor_image.cuda()
    sample_ps = 0.03125
    data_raw = [None] * 4

    # loader = transforms.Compose(transforms.ToTensor())
    # raw_image = Image.open(args.input)
    # # tensor_image = TF.to_tensor(raw_image)
    # tensor_image = loader(raw_image.float())
    # tensor_image = raw_image.unsqueeze(0)
    # data_raw[0] = tensor_image.cuda()

    # print(opt.input)
    tensor_image = Image.open(opt.input).convert('RGB')
    tensor_image = tensor_image.resize((opt.loadSize, opt.loadSize))
    tensor_image = ToTensor()(tensor_image).unsqueeze(0)
    data_raw[0] = tensor_image.cuda()
    # data_raw[0] = util.crop_mult(data_raw[0], mult=8)

    data = util.get_colorization_data(data_raw, opt, ab_thresh=0., p=sample_ps)

    model.set_input(data)

    # model.eval()
    model.test(True)

    # gets the visuals from the model
    global visuals
    visuals = util.get_subset_dict(model.get_current_visuals(), to_visualize)

    # output images
    raw_image = Image.fromarray(util.tensor2im(visuals['real']))
    image = raw_image.resize((512, 512), Image.ANTIALIAS)
    image = ImageTk.PhotoImage(image)
    label = tk.Label(text="Original Image", compound='top', image=image)
    label.photo = image  # assign to class variable to resolve problem with bug in `PhotoImage`
    label.grid(row=1, column=1)
    all_labels.append(label)

    raw_image = Image.fromarray(util.tensor2im(visuals['hint']))
    # lab_raw_image = util.rgb2lab(raw_image, opt)

    image = raw_image.resize((512, 512), Image.ANTIALIAS)
    image = ImageTk.PhotoImage(image)
    label = tk.Label(image=image, text="Hint Image", compound='top')
    label.bind("<Button-1>", lambda e: choose_colour())
    label.photo = image
    label.grid(row=1, column=3)
    all_labels.append(label)

    raw_image = Image.fromarray(util.tensor2im(visuals['fake_reg']))
    image = raw_image.resize((512, 512), Image.ANTIALIAS)
    image = ImageTk.PhotoImage(image)
    label = tk.Label(image=image, text="Colourised Image", compound='top')
    label.bind("<Button-1>", lambda e: choose_colour())
    label.photo = image
    label.grid(row=1, column=5)
    all_labels.append(label)

    original = Image.open(opt.input)
    original = original.resize((opt.loadSize, opt.loadSize))
    original = np.asarray(original)
    label = tk.Label(text="PSNR Numpy: " + str(
        util.calculate_psnr_np(original, util.tensor2im(visuals['fake_reg']))))
    label.grid(row=4, column=1)
    all_labels.append(label)

    label = tk.Label(
        text="MSE : " +
        str(util.calculate_mse(original, util.tensor2im(visuals['fake_reg']))))
    label.grid(row=4, column=3)
    all_labels.append(label)

    label = tk.Label(
        text="MSE : " +
        str(util.calculate_mae(original, util.tensor2im(visuals['fake_reg']))))
    label.grid(row=4, column=5)

    all_labels.append(label)