Spaces:
Paused
Paused
| import argparse | |
| ### configs | |
| def config_parser(): | |
| '''Define command line arguments | |
| ''' | |
| parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) | |
| parser.add_argument('--config', required=True, | |
| help='config file path') | |
| parser.add_argument("--seed", type=int, default=777, | |
| help='Random seed') | |
| parser.add_argument("--no_reload", action='store_true', | |
| help='do not reload weights from saved ckpt') | |
| parser.add_argument("--no_reload_optimizer", action='store_true', | |
| help='do not reload optimizer state from saved ckpt') | |
| parser.add_argument("--ft_path", type=str, default='', | |
| help='specific weights npy file to reload for coarse network') | |
| parser.add_argument("--export_bbox_and_cams_only", type=str, default='', | |
| help='export scene bbox and camera poses for debugging and 3d visualization') | |
| parser.add_argument("--export_coarse_only", type=str, default='') | |
| # testing options | |
| parser.add_argument("--render_only", action='store_true', | |
| help='do not optimize, reload weights and render out render_poses path') | |
| parser.add_argument("--render_opt", default=None, type=str, | |
| choices=['train', 'test', 'video'], help='rendering mode') | |
| parser.add_argument("--render_video_flipy", action='store_true') | |
| parser.add_argument("--render_video_rot90", default=0, type=int) | |
| parser.add_argument("--render_video_factor", type=float, default=0, | |
| help='downsampling factor to speed up rendering, set 4 or 8 for fast preview') | |
| parser.add_argument("--dump_images", action='store_true') | |
| parser.add_argument("--eval_ssim", action='store_true') | |
| parser.add_argument("--eval_lpips_alex", action='store_true') | |
| parser.add_argument("--eval_lpips_vgg", action='store_true') | |
| # logging/saving options | |
| parser.add_argument("--i_print", type=int, default=500, | |
| help='frequency of console printout and metric loggin') | |
| parser.add_argument("--i_weights", type=int, default=5000, | |
| help='frequency of weight ckpt saving') | |
| # arguments for feature distillation | |
| parser.add_argument("--freeze_density", action='store_true', | |
| help='freeze density grid') | |
| parser.add_argument("--freeze_rgb", action='store_true', | |
| help='freeze rgb grid and mlp') | |
| parser.add_argument("--freeze_feature", action='store_true', | |
| help='freeze feature grid') | |
| parser.add_argument("--only_distill_loss", action='store_true', | |
| help='train on only loss of features') | |
| parser.add_argument("--weighted_distill_loss", action='store_true', | |
| help='train on weighted loss') | |
| parser.add_argument("--seg_mask", action='store_true', | |
| help='generate segmentation mask') | |
| parser.add_argument("--segment", action='store_true', | |
| help='interactively set threshold and re-render until stopped.') | |
| parser.add_argument("--segment_everything", action='store_true', | |
| help='if true, adopt SamAutomaticMaskGenerator to generate masks for all possible objects in the first frame.') | |
| parser.add_argument("--stop_at", type=int, default=1000000, | |
| help='at what iteration to stop training.') | |
| parser.add_argument("--get_cam_trajectory", action='store_true', | |
| help='Get the camera poses of the training set as the trajectory.') | |
| # prompt options | |
| parser.add_argument("--num_prompts", type=int, default=3, help='number of prompts') | |
| parser.add_argument("--num_epochs", type=int, default=1, help='number of training epochs') | |
| parser.add_argument("--lamb", type=float, default=1., help='the negative force in seg loss') | |
| parser.add_argument("--tau", type=float, default=0.5, help='the iou threshold') | |
| parser.add_argument('--prompt_type', type=str, default='scene', choices=['scene', 'file', 'input', 'interactive', 'text'], | |
| help='the type of prompt, point or box') | |
| # type 1: scene property | |
| parser.add_argument("--scene", type=str, default=None, | |
| help='scene, used for querying point and box coords') | |
| # type 2: json file | |
| parser.add_argument("--prompt_file", type=str, default=None, | |
| help='json file containing prompts') | |
| # type 3: directly input the prompts | |
| parser.add_argument('--coords', metavar='N', type=int, nargs='+', help='get prompts from command line') | |
| # type 4: interactive backend | |
| parser.add_argument("--interactive", action='store_true', help='interactive backend, \ | |
| input points are from interactive GUI') # TODO | |
| # type 5: text discription | |
| parser.add_argument("--text", type=str, default=None, | |
| help='text discription of the prompt') | |
| # sp_name for instance | |
| parser.add_argument("--sp_name", type=str, default=None, help="if None, use default, else use this as e_flag") | |
| # seg training | |
| parser.add_argument("--use_fine_stage", action='store_true', | |
| help='fine stage can be used when IoU is low') | |
| parser.add_argument("--seg_poses", default='train', type=str, | |
| choices=['train', 'video'], help='which poses are used for segmentation') | |
| # seg testing | |
| parser.add_argument('--seg_type', nargs = '+', type=str, default=['seg_img', 'seg_density'], | |
| help='segmentation type in inference') | |
| parser.add_argument("--save_ckpt", action='store_true', | |
| help='save segmentation ckpt') | |
| parser.add_argument("--mobile_sam", action='store_true', help='Replace the original SAM encoder with MobileSAM to accelerate segmentation') | |
| return parser | |