def main(): training_file = open('training.txt','w') testing_file = open('testing.txt','w') training_images = {'blur':list(), 'noblur':list()} testing_images = {'blur':list(), 'noblur':list()} parser = argparse.ArgumentParser(description='generates training/testing files for blur') parser.add_argument('-l', '--limit', type=int, metavar='COUNT', required=False, help='Maximum number of images to use') parser.add_argument('-r', '--random', action="store_true", default=False, required=False, help='Fetch images ordered randomly if limit is active') parser.add_argument('--tag_require', action='append', dest='tags_require', default=None, required=False, help='Tag that must be present on selected images') parser.add_argument('--tag_exclude', action='append', dest='tags_exclude', default=None, required=False, help='Tag that must not be present on selected images') parser.add_argument('-p', '--percent_training', dest='percent', default=0.25, required=False, help='Tag indicating what percent of images for training') parser.add_argument('database', help='Name of database to use') args = parser.parse_args() db = Database.instance(args.database) db_mapper = DatabaseMapper(db) images = db_mapper.get_images_for_analysis(kDomain, limit=args.limit, random=args.random, tags_require=args.tags_require, tags_exclude=args.tags_exclude) blur_images = list() noblur_images = list() for image in images: if image['annotations'][0]['model'] == 'blur': blur_images.append(image) else: noblur_images.append(image) random.shuffle(blur_images) random.shuffle(noblur_images) blur_training_len = int(len(blur_images)*float(args.percent)) noblur_training_len = int(len(noblur_images)*float(args.percent)) training_images['blur'] = blur_images[:blur_training_len] testing_images['blur'] = blur_images[blur_training_len:] training_images['noblur'] = noblur_images[:noblur_training_len] testing_images['noblur'] = noblur_images[noblur_training_len:] for file,image_dict in ((training_file,training_images),(testing_file,testing_images)): for model in image_dict.keys(): for image in image_dict[model]: file.write('{}\t{}\n'.format(rigor.imageops.find(image), model))
def main(): rigor.domain.money.init(parameters) logger = rigor.logger.getLogger(__file__) database_mapper = DatabaseMapper(Database.instance(kDatabase)) logger.debug('Fetching image IDs from database') images = database_mapper.get_images_for_analysis(kDomain, kLimit, False) for parameter_set in get_parameters(): timestamp = datetime.utcnow().strftime("{0}-%Y%m%d_%H%M%S%f".format(kDomain)) with open("{0}.params".format(timestamp), "w") as parameter_file: json.dump(parameter_set, parameter_file) parameter_file.write("\n") with open("{0}.results".format(timestamp), "w") as result_file: image_config = partial(rigor.domain.money.run, parameters=parameter_set) logger.debug('Processing {0} images'.format(len(images))) for result in map(image_config, images): result_file.write("\t".join([str(x) for x in result])) result_file.write("\n")
def main(): training_file = open('training.txt', 'w') testing_file = open('testing.txt', 'w') training_images = {'blur': list(), 'noblur': list()} testing_images = {'blur': list(), 'noblur': list()} parser = argparse.ArgumentParser( description='generates training/testing files for blur') parser.add_argument('-l', '--limit', type=int, metavar='COUNT', required=False, help='Maximum number of images to use') parser.add_argument( '-r', '--random', action="store_true", default=False, required=False, help='Fetch images ordered randomly if limit is active') parser.add_argument('--tag_require', action='append', dest='tags_require', default=None, required=False, help='Tag that must be present on selected images') parser.add_argument('--tag_exclude', action='append', dest='tags_exclude', default=None, required=False, help='Tag that must not be present on selected images') parser.add_argument( '-p', '--percent_training', dest='percent', default=0.25, required=False, help='Tag indicating what percent of images for training') parser.add_argument('database', help='Name of database to use') args = parser.parse_args() db = Database.instance(args.database) db_mapper = DatabaseMapper(db) images = db_mapper.get_images_for_analysis(kDomain, limit=args.limit, random=args.random, tags_require=args.tags_require, tags_exclude=args.tags_exclude) blur_images = list() noblur_images = list() for image in images: if image['annotations'][0]['model'] == 'blur': blur_images.append(image) else: noblur_images.append(image) random.shuffle(blur_images) random.shuffle(noblur_images) blur_training_len = int(len(blur_images) * float(args.percent)) noblur_training_len = int(len(noblur_images) * float(args.percent)) training_images['blur'] = blur_images[:blur_training_len] testing_images['blur'] = blur_images[blur_training_len:] training_images['noblur'] = noblur_images[:noblur_training_len] testing_images['noblur'] = noblur_images[noblur_training_len:] for file, image_dict in ((training_file, training_images), (testing_file, testing_images)): for model in image_dict.keys(): for image in image_dict[model]: file.write('{}\t{}\n'.format(rigor.imageops.find(image), model))