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))
Beispiel #2
0
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")
Beispiel #3
0
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))