wutong16 / Voxurf

[ ICLR 2023 Spotlight ] Pytorch implementation for "Voxurf: Voxel-based Efficient and Accurate Neural Surface Reconstruction"
Other
399 stars 28 forks source link

Should f^geo requires gradients when predicting RGB? #36

Open Liu-SD opened 8 months ago

Liu-SD commented 8 months ago

Hollo, I've read your paper and the source code, and have a question about the $f^{geo}$ branch of the dual color network. The code lib/voxurf_womask_fine.py line 949

rgb_logit = self.rgbnet(rgb_feat)

shows that the rgb_feat, i.e. the neighbouring SDF values and their differences require gradients, so that SDF values are optimized through the color predicting branch. Is that reasonable?

And when I add a detach() operation to rgb_feat, the CD in DTU24 increased from 0.7+ to 1.0+. Following is the comparisons.

截图 2024-01-02 20-32-25 截图 2024-01-02 20-32-29

A straightforward guess is that the $f^{geo}$ branch indicates that similar geometry patterns generate similar color (like roof in DTU24), therefore optimizing the SDF patterns of roof consistently, leading to smooth roof surfaces.

===============================================================

Maybe should keep the gradients of k0. So I tried to only detach all_feat, all_grad and center_sdf (line 931, 932 and 947). But the CD is still 1.0+.