コード例 #1
0
ファイル: downloader.py プロジェクト: quantron/OIDv4_ToolKit
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)
コード例 #2
0
ファイル: downloader.py プロジェクト: akulubala/OIDv4_ToolKit
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)