| import argparse |
|
|
|
|
| def str2bool(v): |
| return v.lower() in ("true", "1") |
|
|
|
|
| arg_lists = [] |
| parser = argparse.ArgumentParser() |
|
|
|
|
| def add_argument_group(name): |
| arg = parser.add_argument_group(name) |
| arg_lists.append(arg) |
| return arg |
|
|
|
|
| |
| |
| net_arg = add_argument_group("Network") |
| net_arg.add_argument( |
| "--model_name", type=str, default="SGM", help="" "model for training" |
| ) |
| net_arg.add_argument( |
| "--config_path", |
| type=str, |
| default="configs/sgm.yaml", |
| help="" "config path for model", |
| ) |
|
|
| |
| |
| data_arg = add_argument_group("Data") |
| data_arg.add_argument( |
| "--rawdata_path", type=str, default="rawdata", help="" "path for rawdata" |
| ) |
| data_arg.add_argument( |
| "--dataset_path", type=str, default="dataset", help="" "path for dataset" |
| ) |
| data_arg.add_argument( |
| "--desc_path", type=str, default="desc", help="" "path for descriptor(kpt) dir" |
| ) |
| data_arg.add_argument( |
| "--num_kpt", type=int, default=1000, help="" "number of kpt for training" |
| ) |
| data_arg.add_argument( |
| "--input_normalize", |
| type=str, |
| default="img", |
| help="" "normalize type for input kpt, img or intrinsic", |
| ) |
| data_arg.add_argument( |
| "--data_aug", |
| type=str2bool, |
| default=True, |
| help="" "apply kpt coordinate homography augmentation", |
| ) |
| data_arg.add_argument( |
| "--desc_suffix", type=str, default="suffix", help="" "desc file suffix" |
| ) |
|
|
|
|
| |
| |
| loss_arg = add_argument_group("loss") |
| loss_arg.add_argument("--momentum", type=float, default=0.9, help="" "momentum") |
| loss_arg.add_argument( |
| "--seed_loss_weight", |
| type=float, |
| default=250, |
| help="" "confidence loss weight for sgm", |
| ) |
| loss_arg.add_argument( |
| "--mid_loss_weight", type=float, default=1, help="" "midseeding loss weight for sgm" |
| ) |
| loss_arg.add_argument( |
| "--inlier_th", |
| type=float, |
| default=5e-3, |
| help="" "inlier threshold for epipolar distance (for sgm and visualization)", |
| ) |
|
|
|
|
| |
| |
| train_arg = add_argument_group("Train") |
| train_arg.add_argument("--train_lr", type=float, default=1e-4, help="" "learning rate") |
| train_arg.add_argument("--train_batch_size", type=int, default=16, help="" "batch size") |
| train_arg.add_argument( |
| "--gpu_id", type=str, default="0", help="id(s) for CUDA_VISIBLE_DEVICES" |
| ) |
| train_arg.add_argument( |
| "--train_iter", type=int, default=1000000, help="" "training iterations to perform" |
| ) |
| train_arg.add_argument("--log_base", type=str, default="./log/", help="" "log path") |
| train_arg.add_argument( |
| "--val_intv", type=int, default=20000, help="" "validation interval" |
| ) |
| train_arg.add_argument( |
| "--save_intv", type=int, default=1000, help="" "summary interval" |
| ) |
| train_arg.add_argument("--log_intv", type=int, default=100, help="" "log interval") |
| train_arg.add_argument( |
| "--decay_rate", type=float, default=0.999996, help="" "lr decay rate" |
| ) |
| train_arg.add_argument( |
| "--decay_iter", type=float, default=300000, help="" "lr decay iter" |
| ) |
| train_arg.add_argument( |
| "--local_rank", type=int, default=0, help="" "local rank for ddp" |
| ) |
| train_arg.add_argument( |
| "--train_vis_folder", |
| type=str, |
| default=".", |
| help="" "visualization folder during training", |
| ) |
|
|
| |
| |
| vis_arg = add_argument_group("Visualization") |
| vis_arg.add_argument( |
| "--tqdm_width", type=int, default=79, help="" "width of the tqdm bar" |
| ) |
|
|
|
|
| def get_config(): |
| config, unparsed = parser.parse_known_args() |
| return config, unparsed |
|
|
|
|
| def print_usage(): |
| parser.print_usage() |
|
|
|
|
| |
| |
|
|