Ejemplo n.º 1
0
def _mask_dataset():
    # Load model and compile function
    with open('../cache/foreground_model.pkl', 'rb') as f:
        model, threshold = cPickle.load(f)

    x = T.matrix('x')
    y = model.get_output(x)
    output_func = theano.function(inputs=[x], outputs=(y >= threshold))

    # Load data
    image_data = DataLoader('../data/cuhk_small.mat', verbose=True)

    # Pre-processing
    print "Pre-processing ..."

    images = image_data.get_all_images()
    images = [_input_preproc(image) for image in images]
    images = imageproc.images2mat(images).astype(theano.config.floatX)

    # Compute masks
    print "Computing masks ..."

    masks = output_func(images)

    # Save masks
    print "Saving data ..."

    mask_data = DataSaver()

    cur_index = 0
    for gid in xrange(image_data.get_n_groups()):
        m, v = image_data.get_n_pedes_views(gid)
        mask_data.add_group(m, v)

        for pid in xrange(m):
            n_images = image_data.get_n_images(gid, pid)

            for vid, n in enumerate(n_images):
                view_masks = [0] * n
                for k in xrange(n):
                    mask = masks[cur_index, :]
                    mask = mask.reshape(160, 80, 1)
                    orig_image = image_data.get_image(gid, pid, vid, k)
                    orig_image = imageproc.imresize(orig_image, (160, 80, 3))
                    view_masks[k] = (mask * orig_image).astype(numpy.uint8)
                    cur_index += 1

                mask_data.set_images(gid, pid, vid, view_masks)

    mask_data.save('../data/cuhk_small_masked.mat')
Ejemplo n.º 2
0
def _mask_dataset():
    # Load model and compile function
    with open('../cache/foreground_model.pkl', 'rb') as f:
        model, threshold = cPickle.load(f)

    x = T.matrix('x')
    y = model.get_output(x)
    output_func = theano.function(inputs=[x], outputs=(y >= threshold))

    # Load data
    image_data = DataLoader('../data/cuhk_small.mat', verbose=True)

    # Pre-processing
    print "Pre-processing ..."

    images = image_data.get_all_images()
    images = [_input_preproc(image) for image in images]
    images = imageproc.images2mat(images).astype(theano.config.floatX)

    # Compute masks
    print "Computing masks ..."

    masks = output_func(images)

    # Save masks
    print "Saving data ..."

    mask_data = DataSaver()

    cur_index = 0
    for gid in xrange(image_data.get_n_groups()):
        m, v = image_data.get_n_pedes_views(gid)
        mask_data.add_group(m, v)

        for pid in xrange(m):
            n_images = image_data.get_n_images(gid, pid)

            for vid, n in enumerate(n_images):
                view_masks = [0] * n
                for k in xrange(n):
                    mask = masks[cur_index, :]
                    mask = mask.reshape(160, 80, 1)
                    orig_image = image_data.get_image(gid, pid, vid, k)
                    orig_image = imageproc.imresize(orig_image, (160, 80, 3))
                    view_masks[k] = (mask * orig_image).astype(numpy.uint8)
                    cur_index += 1

                mask_data.set_images(gid, pid, vid, view_masks)

    mask_data.save('../data/cuhk_small_masked.mat')
Ejemplo n.º 3
0
def _prepare_data(load_from_cache=False, save_to_cache=False):
    if load_from_cache:
        with open(_cached_datasets, 'rb') as f:
            datasets = cPickle.load(f)
    else:
        # Setup data files
        input_data = DataLoader(
            '../data/parse/cuhk_large_labeled_subsampled.mat',
            verbose=True)

        target_data = DataLoader(
            '../data/parse/cuhk_large_labeled_subsampled_parse.mat',
            verbose=True)

        input_images = input_data.get_all_images()
        target_images = target_data.get_all_images()

        # Pre-processing
        print "Pre-processing ..."

        inputs = [_input_preproc(image) for image in input_images]
        inputs = imageproc.images2mat(inputs)

        targets = [_target_preproc(image) for image in target_images]
        targets = imageproc.images2mat(targets)

        # Prepare the datasets
        print "Prepare the datasets ..."

        datasets = Datasets(inputs, targets)
        datasets.split(train_ratio=0.5, valid_ratio=0.3)

    if save_to_cache:
        with open(_cached_datasets, 'wb') as f:
            cPickle.dump(datasets, f, protocol=cPickle.HIGHEST_PROTOCOL)

    return datasets
Ejemplo n.º 4
0
def _prepare_data(load_from_cache=False, save_to_cache=False):
    if load_from_cache:
        with open(_cached_datasets, 'rb') as f:
            datasets = cPickle.load(f)
    else:
        # Setup data files
        input_data = DataLoader(
            '../data/parse/cuhk_large_labeled_subsampled.mat', verbose=True)

        target_data = DataLoader(
            '../data/parse/cuhk_large_labeled_subsampled_parse.mat',
            verbose=True)

        input_images = input_data.get_all_images()
        target_images = target_data.get_all_images()

        # Pre-processing
        print "Pre-processing ..."

        inputs = [_input_preproc(image) for image in input_images]
        inputs = imageproc.images2mat(inputs)

        targets = [_target_preproc(image) for image in target_images]
        targets = imageproc.images2mat(targets)

        # Prepare the datasets
        print "Prepare the datasets ..."

        datasets = Datasets(inputs, targets)
        datasets.split(train_ratio=0.5, valid_ratio=0.3)

    if save_to_cache:
        with open(_cached_datasets, 'wb') as f:
            cPickle.dump(datasets, f, protocol=cPickle.HIGHEST_PROTOCOL)

    return datasets