Beispiel #1
0
                           '%s_%s' % (opt.phase, opt.which_epoch))

    webpage = html.HTML(
        web_dir, 'Experiment = %s, Phase = %s, Epoch = %s' %
        (opt.name, opt.phase, opt.which_epoch))

    # statistics
    psnrs = np.zeros((opt.how_many, S))
    entrs = np.zeros((opt.how_many, S))

    # pp dataset_loader.dataset.imgs
    # ['./datasets/val/100APPLE/IMG_0429.png',
    # './datasets/val/100APPLE/IMG_0791.png']
    for i, data_raw in enumerate(dataset_loader):
        data_raw = data_raw.cuda()
        data_raw = util.crop_mult(data_raw, mult=8)

        # pdb.set_trace();
        # (Pdb) pp data_raw.size()
        # torch.Size([1, 3, 256, 256])

        # with no points
        for (pp, sample_p) in enumerate(sample_ps):
            xxx = '%08d_%.3f' % (i, sample_p)
            img_path = [xxx.replace('.', 'p')]

            data = util.get_colorization_data(data_raw,
                                              opt,
                                              ab_thresh=0.,
                                              p=sample_p)
Beispiel #2
0
    # create website
    web_dir = os.path.join(opt.results_dir, opt.name,
                           '%s_%s' % (opt.phase, opt.which_epoch))
    webpage = html.HTML(
        web_dir, 'Experiment = %s, Phase = %s, Epoch = %s' %
        (opt.name, opt.phase, opt.which_epoch))

    # statistics
    psnrs = np.zeros((opt.how_many, S))
    entrs = np.zeros((opt.how_many, S))
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

    for i, data_raw in enumerate(dataset_loader):
        data_raw[0] = data_raw[0].to(device)
        data_raw[0] = util.crop_mult(data_raw[0], mult=8)
        data = {}
        A = []
        B = []

        HintB = []
        MaskB = []
        for f in range(0, data_raw[0].shape[1] * opt.n_frames, 3):
            #                 print(data_raw[:,f:f+3].shape)
            d = util.get_colorization_data(data_raw[0], opt, p=opt.sample_p)
            A.append(d["A"])
            B.append(d["B"])
            HintB.append(d["hint_B"])
            MaskB.append(d["mask_B"])
        data["A"] = torch.cat(A, 1)
        data["B"] = torch.cat(B, 1)
Beispiel #3
0
    model = create_model(opt)
    model.setup(opt)
    model.eval()

    # create website
    web_dir = os.path.join(opt.results_dir, opt.name, opt.test_name, '%s_%s' % (opt.phase, opt.which_epoch))
    webpage = html.HTML(web_dir, 'Experiment = %s, TestSet= %s, Phase = %s, Epoch = %s' % (opt.name, opt.test_name, opt.phase, opt.which_epoch))

    # statistics
    psnrs = np.zeros((opt.how_many, S))
    entrs = np.zeros((opt.how_many, S))

    for i, data_raw in enumerate(dataset_loader):
        data_raw[0] = data_raw[0].cuda()
        data_raw[0] = util.crop_mult(data_raw[0], mult=8, HWmax=[4096, 4096])

        # with no points
        for (pp, sample_p) in enumerate(sample_ps):
            img_path = [('%08d_%.3f' % (i, sample_p)).replace('.', 'p')]
            data = util.get_colorization_data(data_raw, opt, ab_thresh=0., p=sample_p)

            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_reg']))
            entrs[i, pp] = model.get_current_losses()['G_entr']

            save_images(webpage, visuals, img_path, aspect_ratio=opt.aspect_ratio, width=opt.display_winsize)
Beispiel #4
0
    net = network.Colorization(4,True)
    # net = siggraph.SIGGRAPHGenerator(4,2)
    net.load_state_dict(torch.load(state_dict_name))
    net.eval()
    net.to(device)
    if len(gpu_ids)>1:
        net = nn.DataParallel(net,device_ids=[int(item) for item in gpu_ids.split(',')])  # list of int

    train_datasets = ImageFolder(os.path.join(root,phase),transform=transforms.Compose([
                                                   transforms.Resize((opt.loadSize, opt.loadSize)),
                                                   transforms.ToTensor()]))
    lens = len(train_datasets)
    print('test datasets is [{}] '.format(lens))
    dataloader = torch.utils.data.DataLoader(train_datasets,batch_size=batch_size,shuffle=False)
    for index , data in enumerate(dataloader):
        data[0] = util.crop_mult(data[0], mult=8)
        data = util.get_colorization_data(data,opt,ab_thresh=0,p=opt.sample_p)
        if(data is None):
            continue
        input = torch.cat((data['A'],data['hint_B'],data['mask_B']),dim=1)
        input = input.to(device)
        outputclass,outputreg = net(input)
        realclass = util.encode_ab_ind(data['B'][:,:,::4,::4],opt).to(device)
        lossreg = L1oss(outputreg,data['B'].to(device))
        lossclass = CEloss(outputclass.type(torch.cuda.FloatTensor),realclass[:,0,:,:].type(torch.cuda.LongTensor))
                        
        image_fake = util.lab2rgb(torch.cat([data['A'].type(torch.cuda.FloatTensor),outputreg.type(torch.cuda.FloatTensor)],dim=1),opt)
        print('  images [{}/{}] loss is [reg: {:.5}/[class: {:.5}]],  '.
                format((index+1)*data['A'].shape[0],lens,lossreg.item()*10,lossclass.item()))
        # torchvision.utils.save_image(image_fake,'hemin.png')
        if index %loss_fre == 0:
        }
        # with torch.no_grad():
        self.model.set_input(data)
        self.model.forward()
        fake_reg = torch.cat((self.model.real_A, self.model.fake_B_reg), dim=1)
        return fake_reg


image_path = "./large.JPG"
image = Image.open(image_path)
image = transforms.Compose([
    transforms.Resize(512),
    transforms.ToTensor(),
])(image)
image = image.view(1, *image.shape)
image = util.crop_mult(image, mult=8, HWmax=[4032, 4032])
transforms.ToPILImage()(image[0]).show(command='fim')

data = util.get_colorization_data([image], opt, ab_thresh=0., p=0.125)
img = torch.cat((data["A"], data["B"]), dim=1)
hint = torch.cat((data["hint_B"], data["mask_B"]), dim=1)

# print(data["mask_B"], data["hint_B"])
# data["hint_B"] = torch.zeros_like(data["hint_B"])
# data["mask_B"] = torch.zeros_like(data["mask_B"])
# model = Colorization()
with torch.no_grad():
    model = Colorization()
    model.eval()
    for param in model.parameters():
        param.requires_grad = False