Ejemplo n.º 1
0
def handle_characters(alphabet_folder, character_folder, rotate):
    for root, _, character_images in os.walk(character_folder):
        character_name = root.split('/')[-1]
        mkdir(f'{alphabet_folder}.{rotate}/{character_name}')
        for img_path in character_images:
            # print(root+'/'+img_path)
            img = io.imread(root+'/'+img_path)
            img = transform.rotate(img, angle=rotate)
            img = transform.resize(img, output_shape, anti_aliasing=True)
            img = (img - img.min()) / (img.max() - img.min())
            # print(img.min(), img.max())
            # print(f'{alphabet_folder}.{rotate}/{character_name}/{img_path}')
            io.imsave(f'{alphabet_folder}.{rotate}/{character_name}/{img_path}', img)
Ejemplo n.º 2
0
def handle_alphabet(folder):
    print('{}...'.format(folder.split('/')[-1]))
    for rotate in [0, 90, 180, 270]:
        # Create new folders for each augmented alphabet
        mkdir(f'{folder}.{rotate}')
        for root, character_folders, _ in os.walk(folder):
            for character_folder in character_folders:
                # For each character folder in an alphabet rotate and resize all of the images and save
                # to the new folder
                handle_characters(folder, root + '/' + character_folder, rotate)
                # return

    # Delete original alphabet
    rmdir(folder)
Ejemplo n.º 3
0
def handle_characters(alphabet_folder,
                      character_folder,
                      rotate=0,
                      n_variations=None):
    global id_img
    for root, _, character_images in os.walk(character_folder):
        character_name = root.split('/')[-1]
        mkdir(
            str(alphabet_folder) + '.' + str(rotate) + '/' +
            str(character_name))
        for img_path in character_images:
            # print(root+'/'+img_path)
            img = io.imread(root + '/' + img_path)
            img = transform.rotate(img, angle=rotate)
            img = transform.resize(img, output_shape, anti_aliasing=True)
            img = (img - img.min()) / (img.max() - img.min())
            img = 1 - img
            if n_variations is not None:
                for _ in range(n_variations):
                    basename_img = img_path.split(".")[0]

                    trans = transform.AffineTransform(
                        shear=uniform(-pi / 6, pi / 6),
                        rotation=uniform(-pi / 6, pi / 6))

                    shift_y, shift_x = np.array(img.shape[:2]) / 2.
                    tf_shift = transform.SimilarityTransform(
                        translation=[-shift_x, -shift_y])
                    tf_shift_inv = transform.SimilarityTransform(
                        translation=[shift_x, shift_y])

                    img_trans = transform.warp(
                        img, (tf_shift + (trans + tf_shift_inv)).inverse)
                    io.imsave(str(alphabet_folder) + '.' + str(rotate) + '/' + str(character_name) + '/' + \
                              str(basename_img) + '.' + str(id_img) + '.png', img_trans)
                    id_img += 1
            else:
                io.imsave(str(alphabet_folder) + '.' + str(rotate) + '/' + str(character_name) + '/' + \
                              str(img_path), img)
Ejemplo n.º 4
0
def handle_alphabet(folder):
    print('{}...'.format(folder.split('/')[-1]))
    n_variations_character = 10
    transforms = torchvision.transforms.Compose([
        torchvision.transforms.ToPILImage(),
        torchvision.transforms.RandomAffine(20, scale=(0.9, 1.1), shear=20),
        # torchvision.transforms.ToTensor(),
    ])

    for rotate in [0]:
        # Create new folders for each augmented alphabet
        mkdir(str(folder) + '.' + str(rotate))
        for root, character_folders, _ in os.walk(folder):
            for character_folder in character_folders:
                # For each character folder in an alphabet rotate and resize all of the images and save
                # to the new folder
                handle_characters(folder,
                                  root + '/' + character_folder,
                                  n_variations=n_variations_character,
                                  rotate=rotate)
                # return

    # Delete original alphabet
    rmdir(folder)
Ejemplo n.º 5
0
        # Create new folders for each augmented alphabet
        mkdir(f'{folder}.{rotate}')
        for root, character_folders, _ in os.walk(folder):
            for character_folder in character_folders:
                # For each character folder in an alphabet rotate and resize all of the images and save
                # to the new folder
                handle_characters(folder, root + '/' + character_folder, rotate)
                # return

    # Delete original alphabet
    rmdir(folder)


# Clean up previous extraction
rmdir(prepared_omniglot_location)
mkdir(prepared_omniglot_location)

# Unzip dataset
for root, _, files in os.walk(raw_omniglot_location):
    for f in files:
        if f in dataset_zip_files:
            print('Unzipping {}...'.format(f))
            zip_ref = zipfile.ZipFile(root + f, 'r')
            zip_ref.extractall(prepared_omniglot_location)
            zip_ref.close()

print('Processing background set...')
for root, alphabets, _ in os.walk(prepared_omniglot_location + 'images_background/'):
    for alphabet in sorted(alphabets):
        handle_alphabet(root + alphabet)
Ejemplo n.º 6
0
Tracksuits, Clutches, Socks, Innerwear Vests, Night suits, Salwar, Stoles, Face\
Moisturisers, Perfume and Body Mist, Lounge Shorts, Scarves, Briefs, Jumpsuit, Wallets,\
Foundation and Primer, Sports Shoes, Highlighter and Blush, Sunscreen, Shoe\
Accessories, Track Pants, Fragrance Gift Set, Shirts, Sweatshirts, Mask and Peel,\
Jewellery Set, Face Wash and Cleanser, Messenger Bag, Free Gifts, Kurtas, Mascara,\
Lounge Pants, Caps, Lip Care, Trunk, Tunics, Kurta Sets, Sunglasses, Lipstick, Churidar,\
Travel Accessory\
".split(',')))

# Clean up folders
rmdir(DATA_PATH + '/fashion_small/images_background')
rmdir(DATA_PATH + '/fashion_small/images_evaluation')

# Create class folders
for c in background_classes:
    mkdir(DATA_PATH + f'/fashion_small/images_background/{c}/')

for c in evaluation_classes:
    mkdir(DATA_PATH + f'/fashion_small/images_evaluation/{c}/')

root = path_to_fashion + '/images'
with open(path_to_fashion + '/styles.csv') as f:
    for line in tqdm(f.readlines()[1:]):
        line = line.split(',')
        class_name = line[4]
        if class_name in evaluation_classes:

            subset_folder = 'images_evaluation'
        elif class_name in background_classes:
            subset_folder = 'images_background'
        else:
Ejemplo n.º 7
0
1. Download files from https://drive.google.com/file/d/0B3Irx3uQNoBMQ1FlNXJsZUdYWEE/view and place in
    data/miniImageNet/images
2. Run the script
"""
from tqdm import tqdm as tqdm
import numpy as np
import shutil
import os

from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

# Clean up folders
rmdir(DATA_PATH + '/miniImageNet/images_background')
rmdir(DATA_PATH + '/miniImageNet/images_evaluation')
mkdir(DATA_PATH + '/miniImageNet/images_background')
mkdir(DATA_PATH + '/miniImageNet/images_evaluation')

# Find class identities
classes = []
for root, _, files in os.walk(DATA_PATH + '/miniImageNet/images/'):
    for f in files:
        if f.endswith('.jpg'):
            classes.append(f[:-12])

classes = list(set(classes))

# Train/test split
np.random.seed(0)
np.random.shuffle(classes)
background_classes, evaluation_classes = classes[:80], classes[80:]
Ejemplo n.º 8
0
    data/miniImageNet/images
2. Run the script
"""
from tqdm import tqdm as tqdm
import numpy as np
import shutil
import os

from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

import pdb; pdb.set_trace()
# Clean up folders
rmdir(DATA_PATH + '/miniImageNet/images_background')
rmdir(DATA_PATH + '/miniImageNet/images_evaluation')
mkdir(DATA_PATH + '/miniImageNet/images_background')
mkdir(DATA_PATH + '/miniImageNet/images_evaluation')

# Find class identities
classes = []
for root, _, files in os.walk(DATA_PATH + '/miniImageNet/images/'):
    for f in files:
        if f.endswith('.jpg'):
            classes.append(f[:-12])

classes = list(set(classes))

# Train/test split
np.random.seed(0)
np.random.shuffle(classes)
background_classes, evaluation_classes = classes[:80], classes[80:]
1. Download files from https://drive.google.com/file/d/0B3Irx3uQNoBMQ1FlNXJsZUdYWEE/view and place in
    data/miniImageNet/images
2. Run the script
"""
from tqdm import tqdm as tqdm
import numpy as np
import shutil
import os

from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

# Clean up folders
rmdir(DATA_PATH + '/few-shot/images_background')
rmdir(DATA_PATH + '/few-shot/images_evaluation')
mkdir(DATA_PATH + '/few-shot/images_background')
mkdir(DATA_PATH + '/few-shot/images_evaluation')

# Find class identities
classes = []
for root, _, files in os.walk(DATA_PATH + '/few-shot/images/'):
    for f in files:
        if f.endswith('.jpg'):
            classes.append(f[:-12])

classes = list(set(classes))

# Train/test split
np.random.seed(0)
np.random.shuffle(classes)
background_classes, evaluation_classes = classes[:80], classes[80:]
Ejemplo n.º 10
0
from distutils.dir_util import copy_tree
from tqdm import tqdm as tqdm
from os import walk
import numpy as np
import shutil

from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

# Clean up folders
rmdir(DATA_PATH + '/kaggle/images_background')
rmdir(DATA_PATH + '/kaggle/images_evaluation')
rmdir(DATA_PATH + '/kaggle/images_test')
mkdir(DATA_PATH + '/kaggle/images_background')
mkdir(DATA_PATH + '/kaggle/images_evaluation')
mkdir(DATA_PATH + '/kaggle/images_test')

classes = []
for _, folders, _ in walk(DATA_PATH + '/kaggle/images'):
    for f in folders:
        classes.append(f)

np.random.seed(0)
np.random.shuffle(classes)
background_classes, evaluation_classes, test_classes = classes[:80], classes[
    80:100], classes[100:]

print('Preparing background_data....')
for i in tqdm(range(len(background_classes))):
    folder = background_classes[i]
    src = DATA_PATH + '/kaggle/images/' + folder
Ejemplo n.º 11
0
from distutils.dir_util import copy_tree
from tqdm import tqdm as tqdm
from os import walk
import numpy as np
import shutil

from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

# Clean up folders
rmdir(DATA_PATH + '/whoas/images_background')
rmdir(DATA_PATH + '/whoas/images_evaluation')
mkdir(DATA_PATH + '/whoas/images_background')
mkdir(DATA_PATH + '/whoas/images_evaluation')

classes = []
for _, folders, _ in walk(DATA_PATH + '/whoas/images'):
    for f in folders:
        classes.append(f)

np.random.seed(0)
np.random.shuffle(classes)
background_classes, evaluation_classes = classes[:83], classes[83:]

print('Preparing background_data....')
for i in tqdm(range(len(background_classes))):
    folder = background_classes[i]
    src = DATA_PATH + '/whoas/images/' + folder
    dst = DATA_PATH + '/whoas/images_background/' + folder
    copy_tree(src, dst)
from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

import sys
sys.path.append('./')

parser = argparse.ArgumentParser()
parser.add_argument('--size',
                    default='small',
                    help='Dataset size: small or large (default: small)')
args = parser.parse_args()

# Clean up folders
rmdir(DATA_PATH + '/fashion-dataset/images_background')
rmdir(DATA_PATH + '/fashion-dataset/images_evaluation')
mkdir(DATA_PATH + '/fashion-dataset/images_background')
mkdir(DATA_PATH + '/fashion-dataset/images_evaluation')

# Find class identities
classes = []
meta_file = open(DATA_PATH + '/fashion-dataset/styles.csv', 'r')
meta_data = meta_file.readlines()[1:]
meta_train_file = open(DATA_PATH + '/fashion-dataset/metaTrain.txt', 'r')
meta_test_file = open(DATA_PATH + '/fashion-dataset/metaTest.txt', 'r')
meta_train_data = set([line.rstrip() for line in meta_train_file])
meta_test_data = set([line.rstrip() for line in meta_test_file])

# Train/test split
background_classes, evaluation_classes = meta_train_data, meta_test_data

# Create class folders
Ejemplo n.º 13
0
import sys
sys.path.append('../')
import os
import shutil
import natsort
import numpy as np
from tqdm import tqdm as tqdm
import pandas as pd
from config import DATA_PATH
from few_shot.utils import mkdir, rmdir

# Creating and deleting folder/files
rmdir(DATA_PATH + '/fashionNet/images_background')
rmdir(DATA_PATH + '/fashionNet/images_evaluation')
rmdir(DATA_PATH + '/fashionNet/refac_Images')
mkdir(DATA_PATH + '/fashionNet/images_background')
mkdir(DATA_PATH + '/fashionNet/images_evaluation')
mkdir(DATA_PATH + '/fashionNet/refac_Images')

print("Is the DATA_PATH is Correct?",
      os.path.exists(DATA_PATH + '/fashionNet/images/'))
'''
Directory File Name Change
1. styles.csv to map image_id and subCategory, class_laebls, meta_sets
2. Rename the images using os.rename() for support and query split
'''

_classes = []
split = []
PATH = os.path.join(DATA_PATH, 'fashionNet/styles.csv')
df = pd.read_csv(PATH, engine='python')