jsnln / WNNC

Winding Number Normal Consistency
MIT License
9 stars 2 forks source link

Questions Regarding Differentiability and Applicability to Non-Watertight Point Clouds #1

Closed Chuan-10 closed 1 month ago

Chuan-10 commented 1 month ago

Hi,

Thank you so much for sharing this excellent work! I’m relatively new to this field and would greatly appreciate your guidance on a few questions:

  1. Is this method differentiable? Would it be suitable to incorporate as a module within an optimization pipeline using PyTorch?
  2. Is this approach designed specifically for watertight objects, or could it also be applied to optimize the normals of point clouds in a scene?

Thank you in advance for your time and assistance!

jsnln commented 1 month ago

Thank you for your interest in our work!

  1. The winding number F(x; mu) is differentiable with respect to mu. In our paper, it is discretized as a matrix-vector sum: mu -> A mu. So its back propagation is exactly s -> A^T s. We implemented both the operators A, A^T, but I have been too busy lately to write a corresponding torch.autograd.Function API to plug it into the pytorch autograd framework (maybe later I will but no definite date). Also note that the back propagation of mu -> G mu is itself because G is symmetric, so this is differentiable as well. However, F(x; mu) is not differentiable w.r.t. x, because that would requires adaptively updating the octree.
  2. The more watertight the better. It is possible for the method to work on an object which is not watertight but for which one can still distinguish its inside and outside parts, e.g. a half sphere. But I doubt it would work for open scenes such as streets or rooms.
Chuan-10 commented 1 month ago

I understand that the current implementation may not be directly compatible with PyTorch’s autograd framework. I’ll keep an eye on future updates or have a try by myself.

Thanks for your time and helpful explanation!

dongshengLiu commented 3 days ago

@jsnln Hello author, for non-water-tight scenes, such as complex building interiors and streets, what methods can I refer to for reconstructing meshes from unoriented point clouds ? Thanks.

dongshengLiu commented 3 days ago

@jsnln By the way, tested on Armadillo and bunny, the current reconstruction results are of poor quality, looking forward to your updated code ~_~