def __init__(self, weights_file_path: str, image_file_path: Path, user_name: str, image_name: str, complete_event: Event): super(OptimizeThread, self).__init__() self.rank_net = RankNet(IMAGE_SHAPE, use_vgg16=False) self.rank_net.trainable_model.load_weights(weights_file_path) self.enhancer = IE.ImageEnhancer(str(image_file_path), (IMAGE_WIDTH, IMAGE_HEIGHT)) enhance_generator = EnhanceGenerator(self.enhancer) self.optimizer = ParameterOptimizer(self.rank_net, enhance_generator, EnhanceDecorder()) self.image_file_path = image_file_path self.user_name, self.image_name = user_name, image_name self.complete_event = complete_event
import EnhanceGenerator, EnhanceDecorder, Predictor, ParameterOptimizer from pathlib import Path from gdrive_scripts import config if __name__ == "__main__": optimize_dir_path = Path(__file__).parent / 'optimize' weights_dir_path = Path(__file__).parent / 'weights' optimizable_dir_path = Path(__file__).parent / 'optimizable' for category_name in ['flower']: weight_path = weights_dir_path / f'{category_name}.h5' for image_path in optimizable_dir_path.iterdir(): print(f'optimize {image_path.name} used {category_name}.h5') generator = EnhanceGenerator(str(image_path), config.ImageInfo.size) enhance_decoder = EnhanceDecorder() predictor = Predictor(str(weight_path)) optimizer = \ ParameterOptimizer.Optimizer(predictor, generator, enhance_decoder) best_param_list, logbook = optimizer.optimize(ngen=20, param_list_num=1) save_dir_path = optimize_dir_path / category_name save_dir_path.mkdir(exist_ok=True, parents=True) image_name = image_path.stem save_path = str(save_dir_path / f'{image_name}.png')
user_name_list = ['oba', 'sakao', 'tamiya'] for user_name in user_name_list: for category_dir_path in optimizable_dir_path.iterdir(): category_name = category_dir_path.name weight_path = weights_dir_path / user_name / f'{category_name}.h5' if not weight_path.exists(): print(f'{category_name}.h5 not found in {user_name}') continue for image_path in category_dir_path.iterdir(): print(f'{user_name} - {image_path.name} in {category_name}') generator = EnhanceGenerator(str(image_path), IMAGE_SIZE) enhance_decoder = EnhanceDecorder() predictor = Predictor(str(weight_path)) optimizer = \ ParameterOptimizer.Optimizer(predictor, generator, enhance_decoder) best_param_list, logbook = \ optimizer.optimize(ngen=20, param_list_num=1) save_dir_path = optimize_dir_path / user_name / category_name save_dir_path.mkdir(parents=True, exist_ok=True) image_name = image_path.stem save_path = str(save_dir_path / f'{image_name}.png')
if __name__ == "__main__": katsudon_path_list = [ r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\Questionnaire\image\katsudon\1\1.jpg', r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\Questionnaire\image\katsudon\2\2.png'] salad_path_list = [ r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\Questionnaire\image\salad\1\1.jpg', r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\Questionnaire\image\salad\2\2.jpg', r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\Questionnaire\image\salad\3\3.jpg'] path_dict = {'katsudon': katsudon_path_list, 'salad': salad_path_list} key = 'salad' for index, image_path in enumerate(path_dict[key], start=1): enhancer = ResizableEnhancer(image_path, config.IMAGE_SIZE) enhance_generator = EnhanceGenerator(enhancer) enhance_decoder = EnhanceDecorder() # cnn = RankNet(config.IMAGE_SHAPE, use_vgg16=False) vgg = RankNet(config.IMAGE_SHAPE, use_vgg16=True) records_num = 4000 weights_dir_path = Path( r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\improve_tournament\weights') optimize_dir_path = Path( r'C:\Users\init\Documents\PythonScripts\ImageEnhancementFromUserPreference\Experiment\improve_tournament\optimize')/key/str(index) # cnn_weights_path = str(weights_dir_path/f'{records_num}.h5') vgg_weights_path = str(weights_dir_path/'vgg'/f'{records_num}.h5')