V3D / mesh_recon /configs /neuralangelo-ortho-wmask.yaml
heheyas
init
cfb7702
name: ${basename:${dataset.scene}}
tag: ""
seed: 42
dataset:
name: ortho
root_dir: /home/xiaoxiao/Workplace/wonder3Dplus/outputs/joint-twice/aigc/cropsize-224-cfg1.0
cam_pose_dir: null
scene: scene_name
imSize: [1024, 1024] # should use larger res, otherwise the exported mesh has wrong colors
camera_type: ortho
apply_mask: true
camera_params: null
view_weights: [1.0, 0.8, 0.2, 1.0, 0.4, 0.7] #['front', 'front_right', 'right', 'back', 'left', 'front_left']
# view_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
model:
name: neus
radius: 1.0
num_samples_per_ray: 1024
train_num_rays: 256
max_train_num_rays: 8192
grid_prune: true
grid_prune_occ_thre: 0.001
dynamic_ray_sampling: true
batch_image_sampling: true
randomized: true
ray_chunk: 2048
cos_anneal_end: 20000
learned_background: false
background_color: black
variance:
init_val: 0.3
modulate: false
geometry:
name: volume-sdf
radius: ${model.radius}
feature_dim: 13
grad_type: finite_difference
finite_difference_eps: progressive
isosurface:
method: mc
resolution: 192
chunk: 2097152
threshold: 0.
xyz_encoding_config:
otype: ProgressiveBandHashGrid
n_levels: 10 # 12 modify
n_features_per_level: 2
log2_hashmap_size: 19
base_resolution: 32
per_level_scale: 1.3195079107728942
include_xyz: true
start_level: 4
start_step: 0
update_steps: 1000
mlp_network_config:
otype: VanillaMLP
activation: ReLU
output_activation: none
n_neurons: 64
n_hidden_layers: 1
sphere_init: true
sphere_init_radius: 0.5
weight_norm: true
texture:
name: volume-radiance
input_feature_dim: ${add:${model.geometry.feature_dim},3} # surface normal as additional input
dir_encoding_config:
otype: SphericalHarmonics
degree: 4
mlp_network_config:
otype: VanillaMLP
activation: ReLU
output_activation: none
n_neurons: 64
n_hidden_layers: 2
color_activation: sigmoid
system:
name: ortho-neus-system
loss:
lambda_rgb_mse: 0.5
lambda_rgb_l1: 0.
lambda_mask: 1.0
lambda_eikonal: 0.2 # cannot be too large, will cause holes to thin objects
lambda_normal: 1.0 # cannot be too large
lambda_3d_normal_smooth: 1.0
# lambda_curvature: [0, 0.0, 1.e-4, 1000] # topology warmup
lambda_curvature: 0.
lambda_sparsity: 0.5
lambda_distortion: 0.0
lambda_distortion_bg: 0.0
lambda_opaque: 0.0
sparsity_scale: 100.0
geo_aware: true
rgb_p_ratio: 0.8
normal_p_ratio: 0.8
mask_p_ratio: 0.9
optimizer:
name: AdamW
args:
lr: 0.01
betas: [0.9, 0.99]
eps: 1.e-15
params:
geometry:
lr: 0.001
texture:
lr: 0.01
variance:
lr: 0.001
constant_steps: 500
scheduler:
name: SequentialLR
interval: step
milestones:
- ${system.constant_steps}
schedulers:
- name: ConstantLR
args:
factor: 1.0
total_iters: ${system.constant_steps}
- name: ExponentialLR
args:
gamma: ${calc_exp_lr_decay_rate:0.1,${sub:${trainer.max_steps},${system.constant_steps}}}
checkpoint:
save_top_k: -1
every_n_train_steps: ${trainer.max_steps}
export:
chunk_size: 2097152
export_vertex_color: True
ortho_scale: 1.35 #modify
trainer:
max_steps: 3000
log_every_n_steps: 100
num_sanity_val_steps: 0
val_check_interval: 4000
limit_train_batches: 1.0
limit_val_batches: 2
enable_progress_bar: true
precision: 16