# ignore images that are already in database
    print('Filter images already in database...')
    imgs_filenames = set(imgs.values())
    imgs_existing = dbConn.execute('''
        SELECT filename FROM {}.image;
    '''.format(dbSchema), None, 'all')
    imgs_existing = set([i['filename'] for i in imgs_existing])

    imgs_filenames = list(imgs_filenames.difference(imgs_existing))
    imgs_filenames = [(i,) for i in imgs_filenames]

    # push image to database
    print('Adding to database...')
    dbConn.insert('''
        INSERT INTO {}.image (filename)
        VALUES %s;
    '''.format(dbSchema),
    imgs_filenames)


    # locate all segmentation masks
    if args.label_folder is not None:
        print('\nAdding segmentation masks...')
        labelFiles = glob.glob(os.path.join(args.label_folder, '**'), recursive=True)
        for l in tqdm(labelFiles):

            if os.path.isdir(l) or 'classes.txt' in l:
                continue

            basePath, _ = os.path.splitext(l)
            baseName = basePath.replace(args.label_folder, '')
Beispiel #2
0
    print('Filter images already in database...')
    imgs_filenames = set(imgs.values())
    imgs_existing = dbConn.execute(
        sql.SQL('''
        SELECT filename FROM {id_img};
    ''').format(id_img=sql.Identifier(args.project, 'image')), None, 'all')
    imgs_existing = set([i['filename'] for i in imgs_existing])

    imgs_filenames = list(imgs_filenames.difference(imgs_existing))
    imgs_filenames = [(i, ) for i in imgs_filenames]

    # push image to database
    print('Adding to database...')
    dbConn.insert(
        sql.SQL('''
        INSERT INTO {id_img} (filename)
        VALUES %s;
    ''').format(id_img=sql.Identifier(args.project, 'image')), imgs_filenames)

    # locate all segmentation masks
    if args.label_folder is not None:
        print('\nAdding segmentation masks...')
        labelFiles = glob.glob(os.path.join(args.label_folder, '**'),
                               recursive=True)
        for l in tqdm(labelFiles):

            if os.path.isdir(l) or 'classes.txt' in l:
                continue

            basePath, _ = os.path.splitext(l)
            baseName = basePath.replace(args.label_folder, '')
Beispiel #3
0
        _, ext = os.path.splitext(i)
        if ext.lower() not in VALID_IMAGE_EXTENSIONS:
            continue

        baseName = i.replace(imgBaseDir, '')
        imgs.add(baseName)

    # ignore images that are already in database
    print('Filter images already in database...')
    imgs_existing = dbConn.execute(
        sql.SQL('''
        SELECT filename FROM {};
    ''').format(sql.Identifier(project, 'image')), None, 'all')
    if imgs_existing is not None:
        imgs_existing = set([i['filename'] for i in imgs_existing])
    else:
        imgs_existing = set()

    imgs = list(imgs.difference(imgs_existing))
    imgs = [(i, ) for i in imgs]

    # push image to database
    print('Adding to database...')
    dbConn.insert(
        sql.SQL('''
        INSERT INTO {} (filename)
        VALUES %s;
    ''').format(sql.Identifier(project, 'image')), imgs)

    print('Done.')