def parse_args(): # Command line args parser = argparse.ArgumentParser() parser.add_argument("--config_file", type=str, default=ROOT + "config/config.yaml", help="path to config file") parser.add_argument("--verify_mask", type=MyBool, default=False, help="Whether write masked templates to file for user to verify if mask is correct or not") parser.add_argument("--augment_imgs", type=MyBool, default=False, help="Whether do image augment and create many new images") parser.add_argument("--setup_train_test_txt", type=MyBool, default=False, help="Setup train.txt and valid.txt for yolo. Copy validation images to a new folder.") parser.add_argument("--setup_yolo", type=MyBool, default=False, help="Setup yolo.cfg, yolo.data, ") parser.add_argument("--create_bash_for_yolo", type=MyBool, default=False, help="Create two bash scripts for trainning yolo and doing inference: s2_train.sh & s3_inference.sh") args_from_command_line = parser.parse_args() # Args from configuration file args_from_file = read_all_args(args_from_command_line.config_file) # Combine the two args = args_from_command_line args.__dict__.update(args_from_file.__dict__) return args
def set_args(): args = cf.SimpleNamespace() configs = read_all_args(ROOT + "config/config.yaml") # 1. Path to model definition file # e.g.: "data/custom1_generated/yolo.cfg" args.f_yolo_config = configs.f_yolo_config # 2. Path to data config file # e.g.: "data/custom1_generated/yolo.data" args.f_yolo_data = configs.f_yolo_data # 3. Other training settings training_args = set_training_args() args.__dict__.update(training_args.__dict__) # 4. Folder to save model save_model_to = "checkpoints/" + cf.get_readable_time(no_blank=True) + "/" cf.create_folder(save_model_to) args.save_model_to = save_model_to cf.write_dict(save_model_to + "configs.yaml", args.__dict__) # return print("\nArgs:\n", args) return args
def __init__(self, config_path, weights_path): args = read_all_args(config_path) args_inference = cf.dict2class(args.yolo_inference) self.model = create_model(weights_path, args.f_yolo_config, args_inference.img_size) self.classes = load_classes(args.f_yolo_classes) # Extracts class labels from file self.plotter = Yolo_Detection_Plotter_CV2(classes=self.classes, if_show=False) self.args, self.args_inference = args, args_inference
def parse_args(): # Command line args parser = argparse.ArgumentParser() parser.add_argument( "--config_file", type=str, default="config/config.yaml", help="path to config file. e.g.: ROOT/config/config.yaml") parser.add_argument( "--verify_mask", type=MyBool, default=False, help= "Whether write masked template images to file for user to verify if mask is correct or not" ) parser.add_argument( "--augment_imgs", type=MyBool, default=False, help="Whether do image augment and create many new images") parser.add_argument( "--setup_yolo", type=MyBool, default=False, help= "Setup config files for yolo: yolo.cfg, yolo.data, train.txt, valid.txt" ) parser.add_argument( "--create_bash_for_yolo", type=MyBool, default=False, help= "Create two bash scripts for trainning yolo and doing inference: s2_train.sh & s3_inference.sh" ) args = parser.parse_args() # Config file args_file = read_all_args(args.config_file) # Update args.__dict__.update(args_file.__dict__) return args
if 1: # Set path import sys, os ROOT = os.path.dirname( os.path.abspath(__file__)) + "/../../" # root of the project sys.path.append(ROOT) import cv2 from config.config import read_all_args args = read_all_args(config_file="config/config.yaml") def read_list(filename): with open(filename, 'r') as f: lines = [line.rstrip() for line in f] return lines # Get input images list file_eval_images = args.f_yolo_valid fnames = read_list(file_eval_images) # Get output folder folder_data_eval = args.f_data_eval if not os.path.exists(folder_data_eval): os.makedirs(folder_data_eval) print(f"Writing images to {folder_data_eval}") # Copy images for i, name in enumerate(fnames): print(f"{i}/{len(fnames)}: {name}") I = cv2.imread(name, cv2.IMREAD_UNCHANGED) cv2.imwrite(folder_data_eval + "/" + name.split('/')[-1], I)