()
| 1 | import configargparse |
| 2 | def config_parser(): |
| 3 | parser = configargparse.ArgumentParser() |
| 4 | parser.add_argument("-f", "--fff", help="a dummy argument to fool ipython", default="1") |
| 5 | parser.add_argument("--device", type=int, default=-1, help='CUDA_VISIBLE_DEVICES') |
| 6 | parser.add_argument("--multi_gpu", action='store_true', help='use multiple gpu on the server') |
| 7 | parser.add_argument('--config', is_config_file=True, help='config file path') |
| 8 | parser.add_argument("--expname", type=str, help='experiment name') |
| 9 | parser.add_argument("--basedir", type=str, default='../logs', help='where to store ckpts and logs') |
| 10 | parser.add_argument("--datadir", type=str, default='./data/llff/fern', help='input data directory') |
| 11 | |
| 12 | # 7Scenes |
| 13 | parser.add_argument("--trainskip", type=int, default=1, help='will load 1/N images from train sets, useful for large datasets like 7 Scenes') |
| 14 | parser.add_argument("--df", type=float, default=1., help='image downscale factor') |
| 15 | parser.add_argument("--reduce_embedding", type=int, default=-1, help='fourier embedding mode: -1: paper default, \ |
| 16 | 0: reduce by half, 1: remove embedding, 2: DNeRF embedding') |
| 17 | parser.add_argument("--epochToMaxFreq", type=int, default=-1, help='DNeRF embedding mode: (based on Nerfie paper): \ |
| 18 | hyper-parameter for when α should reach the maximum number of frequencies m') |
| 19 | parser.add_argument("--render_pose_only", action='store_true', help='render a spiral video for 7 Scene') |
| 20 | parser.add_argument("--save_pose_avg_stats", action='store_true', help='save a pose avg stats to unify NeRF, posenet, direct-pn training') |
| 21 | parser.add_argument("--load_pose_avg_stats", action='store_true', help='load precomputed pose avg stats to unify NeRF, posenet, nerf tracking training') |
| 22 | parser.add_argument("--train_local_nerf", type=int, default=-1, help='train local NeRF with ith training sequence only, ie. Stairs can pick 0~3') |
| 23 | parser.add_argument("--render_video_train", action='store_true', help='render train set NeRF and save as video, make sure render_test is True') |
| 24 | parser.add_argument("--render_video_test", action='store_true', help='render val set NeRF and save as video, make sure render_test is True') |
| 25 | parser.add_argument("--frustum_overlap_th", type=float, help='frustsum overlap threshold') |
| 26 | parser.add_argument("--no_DNeRF_viewdir", action='store_true', default=False, help='will not use DNeRF in viewdir encoding') |
| 27 | parser.add_argument("--load_unique_view_stats", action='store_true', help='load unique views frame index') |
| 28 | |
| 29 | # NeRF training options |
| 30 | parser.add_argument("--netdepth", type=int, default=8, help='layers in network') |
| 31 | parser.add_argument("--netwidth", type=int, default=128, help='channels per layer') |
| 32 | parser.add_argument("--netdepth_fine", type=int, default=8, help='layers in fine network') |
| 33 | parser.add_argument("--netwidth_fine", type=int, default=128, help='channels per layer in fine network') |
| 34 | parser.add_argument("--N_rand", type=int, default=1536, help='batch size (number of random rays per gradient step)') |
| 35 | parser.add_argument("--lrate", type=float, default=5e-4, help='learning rate') |
| 36 | parser.add_argument("--lrate_decay", type=float, default=250, help='exponential learning rate decay (in 1000 steps)') |
| 37 | parser.add_argument("--chunk", type=int, default=1024*32, help='number of rays processed in parallel, decrease if running out of memory') |
| 38 | parser.add_argument("--netchunk", type=int, default=1024*64, help='number of pts sent through network in parallel, decrease if running out of memory') |
| 39 | parser.add_argument("--no_batching", action='store_true', help='only take random rays from 1 image at a time') |
| 40 | parser.add_argument("--no_reload", action='store_true', help='do not reload weights from saved ckpt') |
| 41 | parser.add_argument("--ft_path", type=str, default=None, help='specific weights npy file to reload for coarse network') |
| 42 | parser.add_argument("--no_grad_update", action='store_true', default=False, help='do not update nerf in training') |
| 43 | |
| 44 | # NeRF-Hist training options |
| 45 | parser.add_argument("--NeRFH", action='store_true', help='my implementation for NeRFH, to enable NeRF-Hist training, please make sure to add --encode_hist, otherwise it is similar to NeRFW') |
| 46 | parser.add_argument("--N_vocab", type=int, default=1000, |
| 47 | help='''number of vocabulary (number of images) |
| 48 | in the dataset for nn.Embedding''') |
| 49 | parser.add_argument("--fix_index", action='store_true', help='fix training frame index as 0') |
| 50 | parser.add_argument("--encode_hist", default=False, action='store_true', help='encode histogram instead of frame index') |
| 51 | parser.add_argument("--hist_bin", type=int, default=10, help='image histogram bin size') |
| 52 | parser.add_argument("--in_channels_a", type=int, default=50, help='appearance embedding dimension, hist_bin*N_a when embedding histogram') |
| 53 | parser.add_argument("--in_channels_t", type=int, default=20, help='transient embedding dimension, hist_bin*N_tau when embedding histogram') |
| 54 | |
| 55 | # NeRF rendering options |
| 56 | parser.add_argument("--N_samples", type=int, default=64, help='number of coarse samples per ray') |
| 57 | parser.add_argument("--N_importance", type=int, default=64,help='number of additional fine samples per ray') |
| 58 | parser.add_argument("--perturb", type=float, default=1.,help='set to 0. for no jitter, 1. for jitter') |
| 59 | parser.add_argument("--use_viewdirs", default=True, action='store_true', help='use full 5D input instead of 3D') |
| 60 | parser.add_argument("--i_embed", type=int, default=0, help='set 0 for default positional encoding, -1 for none') |
nothing calls this directly
no outgoing calls
no test coverage detected