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
Esempio n. 2
0
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
Esempio n. 4
0
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)