def download(args, df_val, folder, dataset_dir, class_name, class_code, class_list=None): ''' Manage the download of the images and the label maker. :param args: argument parser. :param df_val: DataFrame Values :param folder: train, validation or test :param dataset_dir: self explanatory :param class_name: self explanatory :param class_code: self explanatory :param class_list: list of the class if multiclasses is activated :return: None ''' print('-' * 10 + class_name + '-' * 10) print('[INFO] Downloading {} images.'.format(args.type_csv)) df_val_images = images_options(df_val, args) images_list = df_val_images['ImageID'][df_val_images.LabelName == class_code].values images_list = set(images_list) if class_list is not None: class_name_list = '_'.join(class_list) else: class_name_list = class_name download_img(folder, dataset_dir, class_name_list, images_list) get_label(folder, dataset_dir, class_name, class_code, df_val, class_name_list)
def download(args, df_val, folder, dataset_dir, class_name, class_code, class_list=None, threads = 20): ''' Manage the download of the images and the label maker. :param args: argument parser. :param df_val: DataFrame Values :param folder: train, validation or test :param dataset_dir: self explanatory :param class_name: self explanatory :param class_code: self explanatory :param class_list: list of the class if multiclasses is activated :param threads: number of threads :return: None ''' print('-' * 10 + class_name + '-' * 10) print('[INFO] Downloading {} images.'.format(args.type_csv)) df_val_images = images_options(df_val, args) images_list = df_val_images['ImageID'][df_val_images.LabelName == class_code].values images_list = set(images_list) print("[INFO] Found {} online images for {}.".format(len(images_list), folder)) if args.limit is not None: import itertools print('[INFO] Limiting to {} images.'.format(args.limit)) images_list = set(itertools.islice(images_list, args.limit)) if class_list is not None: class_name_list = '_'.join(class_list) else: class_name_list = class_name download_img(folder, dataset_dir, class_name_list, images_list, threads) get_label(folder, dataset_dir, class_name, class_code, df_val, class_name_list, args)
def download(args, df_val, folder, dataset_dir, class_name, class_code, class_list=None, threads=20): ''' Manage the download of the images and the label maker. :param args: argument parser. :param df_val: DataFrame Values :param folder: train, validation or test :param dataset_dir: self explanatory :param class_name: self explanatory :param class_code: self explanatory :param class_list: list of the class if multiclasses is activated :param threads: number of threads :return: None ''' if os.name == 'posix': rows, columns = os.popen('stty size', 'r').read().split() elif os.name == 'nt': try: columns, rows = os.get_terminal_size(0) except OSError: columns, rows = os.get_terminal_size(1) else: columns = 50 l = int((int(columns) - len(class_name)) / 2) print('\n' + bc.HEADER + '-' * l + class_name + '-' * l + bc.ENDC) print(bc.INFO + 'Downloading {} images.'.format(args.type_csv) + bc.ENDC) df_val_images = images_options(df_val, args) images_list = df_val_images['ImageID'][df_val_images.LabelName == class_code].values images_list = set(images_list) print(bc.INFO + '[INFO] Found {} online images for {}.'.format( len(images_list), folder) + bc.ENDC) if args.limit is not None: import itertools print(bc.INFO + 'Limiting to {} images.'.format(args.limit) + bc.ENDC) images_list = set(itertools.islice(images_list, args.limit)) if class_list is not None: class_name_list = '_'.join(class_list) else: class_name_list = class_name download_img(folder, dataset_dir, class_name_list, images_list, threads) if not args.sub: get_label(folder, dataset_dir, class_name, class_code, df_val, class_name_list, args)
def download(args, df_val, folder, dataset_dir, class_name, class_code, class_list=None, threads=20): ''' Manage the download of the images and the label maker. :param args: argument parser. :param df_val: DataFrame Values :param folder: train, validation or test :param dataset_dir: self explanatory :param class_name: self explanatory :param class_code: self explanatory :param class_list: list of the class if multiclasses is activated :param threads: number of threads :return: None ''' print('-' * 10 + class_name + '-' * 10) print('[INFO] Downloading {} images.'.format(args.type_csv)) df_val_images = images_options(df_val, args) images_list = df_val_images['ImageID'][df_val_images.LabelName == class_code].values images_list = set(images_list) print("[INFO] Found {} online images for {}.".format( len(images_list), folder)) if args.limit is not None: import itertools print('[INFO] Limiting to {} images.'.format(args.limit)) images_list = set(itertools.islice(images_list, args.limit)) if class_list is not None: class_name_list = '_'.join(class_list) else: class_name_list = class_name download_img(folder, dataset_dir, class_name_list, images_list, threads) get_label(folder, dataset_dir, class_name, class_code, df_val, class_name_list, args)
def download(args, df_val, folder, dataset_dir, class_name, class_code, class_list=None, threads=20): ''' Manage the download of the images and the label maker. :param args: argument parser. :param df_val: DataFrame Values :param folder: train, validation or test :param dataset_dir: self explanatory :param class_name: self explanatory :param class_code: self explanatory :param class_list: list of the class if multiclasses is activated :param threads: number of threads :return: None ''' if os.name == 'posix': rows, columns = os.popen('stty size', 'r').read().split() elif os.name == 'nt': try: columns, rows = os.get_terminal_size(0) except OSError: columns, rows = os.get_terminal_size(1) else: columns = 50 l = int((int(columns) - len(class_name)) / 2) print('\n' + bc.HEADER + '-' * l + class_name + '-' * l + bc.ENDC) print(bc.INFO + 'Downloading {} images.'.format(args.type_csv) + bc.ENDC) df_val_images = images_options(df_val, args) images_list = df_val_images['ImageID'][df_val_images.LabelName == class_code].values images_list = set(images_list) print(bc.INFO + '[INFO] Found {} online images for {}.'.format( len(images_list), folder) + bc.ENDC) if args.limit is not None: import itertools print(bc.INFO + 'Limiting to {} images.'.format(args.limit) + bc.ENDC) images_list = set(itertools.islice(images_list, args.limit)) if class_list is not None: class_name_list = '_'.join(class_list) else: class_name_list = class_name """ aws s3 --no-sign-request --only-show-errors cp s3://open-images-dataset/validation/78fc07b95a216074.jpg "OID\Dataset\validation\Coin" 1f990b331e554127_m03qhv5_c2198baf.png aws s3 --no-sign-request --only-show-errors cp s3://open-images-dataset/validation/1f990b331e554127_m03qhv5_c2198baf.png "OID\Dataset\validation\Heater" aws s3 --no-sign-request --only-show-errors cp s3://open-images-dataset/1f990b331e554127_m03qhv5_c2198baf.png "OID\Dataset\validation\Heater" """ # download the actual image download_img(folder, dataset_dir, class_name_list, images_list, threads, ".jpg") # again for the mask image images_list = df_val_images['MaskPath'][df_val_images.LabelName == class_code].values images_list = set(images_list) print(bc.INFO + '[INFO] Found {} online images for {}.'.format( len(images_list), folder) + bc.ENDC) if args.limit is not None: import itertools print(bc.INFO + 'Limiting to {} images.'.format(args.limit) + bc.ENDC) images_list = set(itertools.islice(images_list, args.limit)) masks_list = images_list # download_img(folder, dataset_dir, class_name_list, masks_list, threads, "") # print("\n\n\n\n\n") # print(mask) # orig_mask = "D:\oid-seg_masks\0" + mask[0] + "\\" + mask # orig_mask = "D:\oid-seg_masks" new_dst = str(os.path.join(dataset_dir, folder, class_name)) # path = image_dir + '/' + str(image) + file_format + ' "' + download_dir + '\\' + mask + '"' # for mask in masks_list: # orig_mask = str(os.path.join("D:\oid-seg_masks", '0' + mask[0], mask)) # command = ('xcopy /q /n ' + orig_mask + ' ' + new_dst) # # command = command + '\\0' + mask[0] + '\\' + mask + ' ' # # print(command) # subprocess.call(command) if not args.skip_json_gen: # get_label(folder, dataset_dir, class_name, class_code, df_val, class_name_list, args) make_json(MASK_DIR, masks_list, folder, class_name, dataset_dir)