# 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, '')
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, '')
_, 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.')