bennyguo / instant-nsr-pl

Neural Surface reconstruction based on Instant-NGP. Efficient and customizable boilerplate for your research projects. Train NeuS in 10min!
MIT License
857 stars 84 forks source link

Ra-NeuS #65

Closed wangyida closed 1 year ago

wangyida commented 1 year ago

Adding a new up_est_method z-axis, so that the normalized poses could be always with an averaged up-direction of [0,0,1] as mentioned by nerf2mesh, even when ground is missing in the training data. Such z-axis behaves similarly with ground when ground is included in the training data.

z-axis up-direction

Extensions

bennyguo commented 1 year ago

Hi! It seems that this new up_est_method rotates the average camera up direction to +z. May I ask how this is different from up_est_method == 'camera'?

wangyida commented 1 year ago

Hi Benny, the difference is that when camera is not positioned evenly surrouding the central object, e.g. the distance is not the same, camera setup will make the object tilted against z axis. the new axis-z setup will still position the object straight up along z axis.

bennyguo commented 1 year ago

I see. Could you keep the config files unchanged and only modify the dataset? Also, is there an example scene illustrating the difference between the two methods so that I can test (for example some scene in Mip-NeRF360 dataset)?

wangyida commented 1 year ago

Sure I can do it on bonsai scene

wangyida commented 1 year ago

pose compare When ground is included, the new up direction option axis-z behaves similarly with ground. BTW you may need a light github theme to view this figure, the captions are with transparent background.

bennyguo commented 1 year ago

Sorry I totally forgot about this PR 😂 Thank you very much for the newly added features, and I'll look into the code soon.

wangyida commented 1 year ago

Guess a naive implementation for point center should be conditioned on points of sparse MVS reconstruction instead of cameras @bennyguo

wangyida commented 1 year ago

@bennyguo there are some new functions added, you mind review a bit further to see which of these modules are useful?