|
- import configargparse
-
- def config_parser(cmd=None):
- parser = configargparse.ArgumentParser()
- parser.add_argument('--config', is_config_file=True,
- help='config file path')
- parser.add_argument("--expname", type=str,
- help='experiment name')
- parser.add_argument("--basedir", type=str, default='./log',
- help='where to store ckpts and logs')
- parser.add_argument("--add_timestamp", type=int, default=0,
- help='add timestamp to dir')
- parser.add_argument("--datadir", type=str, default='./data/llff/fern',
- help='input data directory')
- parser.add_argument("--progress_refresh_rate", type=int, default=10,
- help='how many iterations to show psnrs or iters')
-
- parser.add_argument('--with_depth', action='store_true')
- parser.add_argument('--downsample_train', type=float, default=1.0)
- parser.add_argument('--downsample_test', type=float, default=1.0)
-
- parser.add_argument('--model_name', type=str, default='TensorVMSplit',
- choices=['TensorVMSplit',
- 'TensorCP',
- 'TensorVMSplitSem',
- 'TensorVMSplitSemVM'
- ])
-
- # load secene box
- parser.add_argument("--scene_bbox", type=float ,action='append', nargs='+')
- parser.add_argument("--scene_bbox_stretch", type=float, default=5.5)
- parser.add_argument("--near", type=float, default=0.1)
- parser.add_argument("--far", type=float, default=10.0)
-
- # loader options
- parser.add_argument("--batch_size", type=int, default=4096)
- parser.add_argument("--n_iters", type=int, default=30000)
-
- parser.add_argument('--dataset_name', type=str, default='blender',
- choices=['blender',
- 'llff',
- 'nsvf',
- 'dtu',
- 'tankstemple',
- 'own_data',
- 'replica',
- 'replica_dmnerf'])
- # semantic config
- parser.add_argument("--use_semantic", type=int, default=1, help='semantic branch')
- # parser.add_argument('--use_semantic', action='store_true', help='semantic branch' )
- parser.add_argument('--scene_file', type=str, default='')
- parser.add_argument("--sem_info_path", type=str,
- default="/data/dzy_data/nerf/datasets/nerf_replica/replica_ins/office_0/tps_renderings/")
-
- # training options
- # learning rate
- parser.add_argument("--lr_init", type=float, default=0.02,
- help='learning rate')
- parser.add_argument("--lr_basis", type=float, default=1e-3,
- help='learning rate')
- parser.add_argument("--lr_decay_iters", type=int, default=-1,
- help = 'number of iterations the lr will decay to the target ratio; -1 will set it to n_iters')
- parser.add_argument("--lr_decay_target_ratio", type=float, default=0.1,
- help='the target decay ratio; after decay_iters inital lr decays to lr*ratio')
- parser.add_argument("--lr_upsample_reset", type=int, default=1,
- help='reset lr to inital after upsampling')
-
- # loss
- parser.add_argument("--L1_weight_inital", type=float, default=0.0,
- help='loss weight')
- parser.add_argument("--L1_weight_rest", type=float, default=0,
- help='loss weight')
- parser.add_argument("--Ortho_weight", type=float, default=0.0,
- help='loss weight')
- parser.add_argument("--TV_weight_density", type=float, default=0.0,
- help='loss weight')
- parser.add_argument("--TV_weight_app", type=float, default=0.0,
- help='loss weight')
- parser.add_argument("--TV_weight_sem", type=float, default=0.0,
- help='loss weight')
- # model
- # volume options
- parser.add_argument("--n_lamb_sigma", type=int, action="append")
- parser.add_argument("--n_lamb_sh", type=int, action="append")
- parser.add_argument("--n_lamb_sem", type=int, action="append")
- parser.add_argument("--data_dim_color", type=int, default=27)
-
- parser.add_argument("--rm_weight_mask_thre", type=float, default=0.0001,
- help='mask points in ray marching')
- parser.add_argument("--alpha_mask_thre", type=float, default=0.0001,
- help='threshold for creating alpha mask volume')
- parser.add_argument("--distance_scale", type=float, default=25,
- help='scaling sampling distance for computation')
- parser.add_argument("--density_shift", type=float, default=-10,
- help='shift density in softplus; making density = 0 when feature == 0')
-
- # network decoder
- parser.add_argument("--shadingMode", type=str, default="MLP_PE",
- help='which shading mode to use')
- parser.add_argument("--pos_pe", type=int, default=6,
- help='number of pe for pos')
- parser.add_argument("--view_pe", type=int, default=6,
- help='number of pe for view')
- parser.add_argument("--fea_pe", type=int, default=6,
- help='number of pe for features')
- parser.add_argument("--featureC", type=int, default=128,
- help='hidden feature channel in MLP')
-
-
-
- parser.add_argument("--ckpt", type=str, default=None,
- help='specific weights npy file to reload for coarse network')
- parser.add_argument("--render_only", type=int, default=0)
- parser.add_argument("--render_test", type=int, default=0)
- parser.add_argument("--render_train", type=int, default=0)
- parser.add_argument("--render_path", type=int, default=0)
- parser.add_argument("--export_mesh", type=int, default=0)
-
- # rendering options
- parser.add_argument('--lindisp', default=False, action="store_true",
- help='use disparity depth sampling')
- parser.add_argument("--perturb", type=float, default=1.,
- help='set to 0. for no jitter, 1. for jitter')
- parser.add_argument("--accumulate_decay", type=float, default=0.998)
- parser.add_argument("--fea2denseAct", type=str, default='softplus')
- parser.add_argument('--ndc_ray', type=int, default=0)
- parser.add_argument('--nSamples', type=int, default=1e6,
- help='sample point each ray, pass 1e6 if automatic adjust')
- parser.add_argument('--step_ratio',type=float,default=0.5)
-
-
- ## blender flags
- parser.add_argument("--white_bkgd", action='store_true',
- help='set to render synthetic data on a white bkgd (always use for dvoxels)')
-
-
-
- parser.add_argument('--N_voxel_init',
- type=int,
- default=100**3)
- parser.add_argument('--N_voxel_final',
- type=int,
- default=300**3)
- parser.add_argument("--upsamp_list", type=int, action="append")
- parser.add_argument("--update_AlphaMask_list", type=int, action="append")
-
- parser.add_argument('--idx_view',
- type=int,
- default=0)
- # logging/saving options
- parser.add_argument("--N_vis", type=int, default=5,
- help='N images to vis')
- parser.add_argument("--vis_every", type=int, default=10000,
- help='frequency of visualize the image')
-
- # todo : add GAN args
- parser.add_argument("--grid_size", type=float, action="append",help='GAN encoder input volume size')
- # todo : GAN_check_gt
- parser.add_argument("--GAN_check_gt", action='store_true',help='use 3d rgb_volume gt to render img')
- parser.add_argument("--GAN_render_N_samples", type=int, default=64, help='number of samples in GAN rendering')
-
- parser.add_argument('--gpu_ids', type=str, default='0', help='gpu ids: e.g. 0 0,1,2, 0,2. use -1 for CPU')
- # parser.add_argument("--voxel_size", type=float ,action='append', nargs='+',help='GAN encoder input volume size')
- parser.add_argument('--raw_noise_std',
- type=float,
- default=1.0)
-
- parser.add_argument('--local_rank', type=int, default=0, help='local rank for distributed training')
- parser.add_argument('--distributed',action='store_true',
- help='if specified, ddistributed')
- # for discriminators
- parser.add_argument('--num_D', type=int, default=2, help='number of discriminators to use')
- parser.add_argument('--n_layers_D', type=int, default=3, help='only used if which_model_netD==n_layers')
- parser.add_argument('--ndf', type=int, default=64, help='# of discrim filters in first conv layer')
- parser.add_argument('--lambda_feat', type=float, default=10.0, help='weight for feature matching loss')
- parser.add_argument('--no_ganFeat_loss', action='store_true',
- help='if specified, do *not* use discriminator feature matching loss')
- parser.add_argument('--no_vgg_loss', action='store_true',
- help='if specified, do *not* use VGG feature matching loss')
- parser.add_argument('--no_lsgan', action='store_true',
- help='do *not* use least square GAN, if false, use vanilla GAN')
- parser.add_argument('--pool_size', type=int, default=0,
- help='the size of image buffer that stores previously generated images')
- parser.add_argument('--training', type=int, default=1, help='GAN training')
-
-
- if cmd is not None:
- return parser.parse_args(cmd)
- else:
- return parser.parse_args()
|