def visualize_images_to_folder(output_folder, batch_idx, image, target,
                                   output, dataset):

        for i in range(image.shape[0]):
            outpath = os.path.join(output_folder, '{0}_{1:04d}_{2:02d}.png')
            scipy.misc.imsave(outpath.format('img', batch_idx, i),
                              np.transpose(image[i, :, :, :], axes=[1, 2, 0]))
            scipy.misc.imsave(
                outpath.format('tgt', batch_idx, i),
                map_segmentation_to_colors(target[i, :, :], dataset))
            scipy.misc.imsave(
                outpath.format('prd', batch_idx, i),
                map_segmentation_to_colors(output[i, :, :], dataset))
def test_gradients():
    from utils.loss import SegmentationLosses
    import numpy as np
    from dataloaders import make_dataloader
    from torch.utils.data import DataLoader
    import matplotlib.pyplot as plt
    from dataloaders.utils import map_segmentation_to_colors
    import sys

    kwargs = {'pin_memory': True, 'init_set': 'set_dummy.txt'}
    _, train_loader, _, _, num_classes = make_dataloader('active_cityscapes_region', 513, 513, 1, True, **kwargs)

    model = DeepLab(backbone='mobilenet', output_stride=16, mc_dropout=False)
    train_params = [{'params': model.get_1x_lr_params(), 'lr': 0.001},
                    {'params': model.get_10x_lr_params(), 'lr': 0.001 * 10}]
    optimizer = torch.optim.SGD(train_params, momentum=0.9, weight_decay=5e-4, nesterov=False)
    criterion = SegmentationLosses(weight=None, cuda=True).build_loss(mode='ce')
    model = model.cuda()
    model.eval()

    for name, param in model.named_parameters():
        if param.requires_grad:
            print(name)
            print(param)
            break

    display = False
    for i, sample in enumerate(train_loader):
        image, target = sample['image'], sample['label']
        image, target = image.cuda(), target.cuda()

        if display:
            gt_colored = map_segmentation_to_colors(np.array(target[0].cpu().numpy()).astype(np.uint8), 'cityscapes')
            image_unnormalized = ((np.transpose(image[0].cpu().numpy(), axes=[1, 2, 0]) *
                                   (0.229, 0.224, 0.225) + (0.485, 0.456, 0.406)) * 255).astype(np.uint8)
            plt.figure()
            plt.title('display')
            plt.subplot(211)
            plt.imshow(image_unnormalized)
            plt.subplot(212)
            plt.imshow(gt_colored)
            plt.show()

        optimizer.zero_grad()
        output = model(image)
        loss = criterion(output, target)
        loss.backward()
        for name, param in model.named_parameters():
            if param.requires_grad:
                print(name)
                print(param.grad)
                input()
        optimizer.step()

    sys.exit(0)
 def _visualize_entropy(image_normalized, entropy_map, prediction):
     import matplotlib
     import matplotlib.pyplot as plt
     image_unnormalized = ((np.transpose(image_normalized, axes=[1, 2, 0]) *
                            (0.229, 0.224, 0.225) + (0.485, 0.456, 0.406)) *
                           255).astype(np.uint8)
     prediction_mapped = map_segmentation_to_colors(
         prediction.astype(np.uint8), 'cityscapes')
     norm = matplotlib.colors.Normalize(vmin=np.min(entropy_map),
                                        vmax=np.max(entropy_map),
                                        clip=False)
     plt.figure()
     plt.title('display')
     plt.subplot(1, 3, 1)
     plt.imshow(image_unnormalized)
     plt.subplot(1, 3, 2)
     plt.imshow(prediction_mapped)
     plt.subplot(1, 3, 3)
     plt.imshow(entropy_map, norm=norm, cmap='gray')
     plt.show(block=True)
Exemple #4
0
                            num_workers=0)

    active_selector = ActiveSelectionMCDropout(19, cityscapes_train.env,
                                               crop_size, 2)
    print('Before Expansion', len(dataloader))
    cityscapes_train.expand_training_set(
        active_selector.get_random_uncertainity(
            cityscapes_train.remaining_image_paths, 10))
    print('After Expansion', len(dataloader))

    for i, sample in enumerate(dataloader, 0):
        for j in range(sample['image'].size()[0]):
            image = sample['image'].numpy()
            gt = sample['label'].numpy()
            print(gt.shape)
            gt_colored = map_segmentation_to_colors(
                np.array(gt[j]).astype(np.uint8), 'cityscapes')
            image_unnormalized = ((np.transpose(image[j], axes=[1, 2, 0]) *
                                   (0.229, 0.224, 0.225) +
                                   (0.485, 0.456, 0.406)) * 255).astype(
                                       np.uint8)
            plt.figure()
            plt.title('display')
            plt.subplot(211)
            plt.imshow(image_unnormalized)
            plt.subplot(212)
            plt.imshow(gt_colored)

        if i == 1:
            break

    plt.show(block=True)
if __name__ == "__main__":

    from torch.utils.data import DataLoader
    import matplotlib.pyplot as plt
    from dataloaders.utils import map_segmentation_to_colors

    path = os.path.join(constants.DATASET_ROOT, 'pascal')
    crop_size = -1
    base_size = 512
    split = 'train'

    pascal_train = ActivePascalRegion(path, base_size, crop_size, split, 'set_dummy.txt')
    pascal_train.expand_training_set({pascal_train.image_paths[299]: [(36, 100, 127, 127)]}, 0)
    dataloader = DataLoader(pascal_train, batch_size=1, shuffle=False, num_workers=0)

    for i, sample in enumerate(dataloader):
        for j in range(sample['image'].size()[0]):
            image = sample['image'].numpy()
            gt = sample['label'].numpy()
            gt_colored = map_segmentation_to_colors(np.array(gt[j]).astype(np.uint8), 'pascal')
            image_unnormalized = ((np.transpose(image[j], axes=[1, 2, 0]) * (0.229, 0.224, 0.225) + (0.485, 0.456, 0.406)) * 255).astype(np.uint8)
            plt.figure()
            plt.title('display')
            plt.subplot(211)
            plt.imshow(image_unnormalized)
            plt.subplot(212)
            plt.imshow(gt_colored)

    plt.show(block=True)