zju3dv / ENeRF

SIGGRAPH Asia 2022: Code for "Efficient Neural Radiance Fields for Interactive Free-viewpoint Video"
https://zju3dv.github.io/enerf
Other
413 stars 28 forks source link

关于zjumocap_train.yaml文件下某些项的作用 #48

Closed CHDTevior closed 6 months ago

CHDTevior commented 1 year ago

我正在尝试调整这个文件中的一些数值以尝试微调预训练模型。在其中我产生了一些疑问,请问enerf项下的train_input_views_prob的作用,我现在的理解是train_dataset项下的input_views控制了输入的训练视角的数量,test_dataset项下则是控制参与评估的数量。

我在finetune时使用了如下设置 train_dataset: data_root: 'zju_mocap' scene: 'CoreView_test4' split: train frames: [0, 599, 1] input_views: [0, -1, 1] render_views: [0, -1, 1] input_ratio: 0.5

test_dataset: data_root: 'zju_mocap' scene: 'CoreView_test4' split: test frames: [0, 600, 100] input_views: [0, -1, 2] render_views: [1, -1, 2] input_ratio: 0.5 (其他的部分与原文件相同) 另外,我在用我自己的类似zju-mocap数据集(6个同步摄像头)进行训练的时候,有一个很奇怪的现象是,训练后的psnr,ssim,lpips等值变得比之前更优了,但是从gui中渲染出来的效果却没有使用预训练模型时候的渲染效果清晰,请问这是什么原因呢? image image image image

haotongl commented 10 months ago

Hello, and thank you for your attention! The meaning of "train_input_views_prob" refers to the probability of selecting the number of source views. For example, if you have "train_input_views_prob" as [0.4, 0.5, 0.1] and "train_input_views" as [2, 3, 4], it signifies that during each training iteration, there is a 0.4 probability of using 2 source views, a 0.5 probability of using 3 source views, and a 0.1 probability of using 4 source views.

If you have only six cameras, ENeRF can easily overfit when training the viewpoints. I've noticed that you are currently using only half of the available viewpoints for training (3 views). Please consider trying the following parameter settings:

input_views: [0, -1, 1] render_views: [0, -1, 1]

This should help improve the training process.