Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

loss item #16

Closed
roywithfiringblade opened this issue Mar 22, 2022 · 9 comments
Closed

loss item #16

roywithfiringblade opened this issue Mar 22, 2022 · 9 comments

Comments

@roywithfiringblade
Copy link

Thanks for sharing this work. i am a little confused about the loss item. i know that 'coarse_raycolor' is corresponding to L_render in paper, what is 'ray_masked_loss' and 'ray_miss_loss'?
And if i understand correctly, 'zero_one_loss_items' is the L_sparse in paper. but since we already set the neural points as input data and didn't load mvsnet model, can the parameters of mvsnet also be updated? (when i inspect the variable , the only model is "ray_marching") And you set the neural points to nn.parameter to update, any reasons behind it?

@Xharlie
Copy link
Owner

Xharlie commented Mar 22, 2022

hi the ray_masked_loss is the loss that only apply to the rays which have neural points neighbors, this is the real loss that drive the opitmization, coarse_raycolor is the ray_masked_loss + rays that hit nothing and have no gradient. ray_miss_loss is the metric to see whether the ray hit no neural points actually have foreground color.
please see the "color loss weight", if a loss has weight 0.0, it means it just for better understanding, not for optimization

@Xharlie Xharlie closed this as completed Mar 22, 2022
@roywithfiringblade
Copy link
Author

roywithfiringblade commented Mar 22, 2022 via email

@roywithfiringblade
Copy link
Author

@Xharlie Sorry, stille confused about the neural points parameterization, can you reopen the issue?

@Xharlie Xharlie reopened this Mar 24, 2022
@Xharlie
Copy link
Owner

Xharlie commented Mar 24, 2022

hi what do you mean by the "neural points parameterization", i guess you are confused about the input to compute radiance?
we use the world coordinate distance, camera coordinate distance between a neural point to shading location, and point feature to calculate the contribution from neural point to shading location, then send the weighted sum inter feature to calculate color and density.

@roywithfiringblade
Copy link
Author

@Xharlie in neural_points.py :code likeself.xyz = nn.Parameter(saved_features["neural_points.xyz"]) and self.points_embeding = nn.Parameter(points_embeding) turns the input to parameters.
and in mvs_points_volumetric_model.py line 87 :
if len(neural_params) > 0: self.neural_point_optimizer = torch.optim.Adam(neural_params, lr=opt.plr, #/ 5.0, betas=(0.9, 0.999)) self.optimizers.append(self.neural_point_optimizer)
you use an adam optimizer to update the neural points directly, rather than optimize the mvs model. That is what i am confused.
Cause the neural points should be the output of the pre-trained mvsnet, and it seems we only optimize the mlp model and the neural points direclty, the mvs model is fixed (after dtu dataset pretrained).

@Xharlie
Copy link
Owner

Xharlie commented Mar 25, 2022

yea, the mvs model is fixed, since later we found using the pretrained mvs model is already good enough

@Xharlie Xharlie closed this as completed Mar 25, 2022
@roywithfiringblade
Copy link
Author

@Xharlie if the mvs model is already fixed, the confidence of every point should also be unchanged. so how does point pruning works?

@Xharlie
Copy link
Owner

Xharlie commented Mar 27, 2022

hi, i think you confused point initialization (mvs, etc.) with per-scene optimization, please refer to Fig.3 in the paper. All the details are in the paper, i have to retype my paper here to answer this question.

@roywithfiringblade
Copy link
Author

hi, i think you confused point initialization (mvs, etc.) with per-scene optimization, please refer to Fig.3 in the paper. All the details are in the paper, i have to retype my paper here to answer this question.

Thanks for explanation, i think i have understood that. @Xharlie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants