autonomousvision / occupancy_networks

This repository contains the code for the paper "Occupancy Networks - Learning 3D Reconstruction in Function Space"
https://avg.is.tuebingen.mpg.de/publications/occupancy-networks
MIT License
1.5k stars 292 forks source link

What can I do if I only want to use the MISE part? #3

Closed MayuOshima closed 5 years ago

MayuOshima commented 5 years ago

Hello, now I have some 3D object points(in .npy file) and I want to use the method MISE described in your paper to construct a mesh . But how can I do that?

LMescheder commented 5 years ago

Hi @MayuOshima, MISE is an algorithm to extract a mesh from a continuous occupancy function representation. I'm not sure what you want to achieve, but you can take a look at the interface. Here you can see how it is used in practice. If you want to reconstruct from a point cloud instead, take a look at configs/pointcloud/onet.yaml. Note however, that the pretrained model was trained on (aligned) ShapeNet. So, if you want to apply it to some different object category you might want to retrain / finetune the network.

MayuOshima commented 5 years ago

Hi @MayuOshima, MISE is an algorithm to extract a mesh from a continuous occupancy function representation. I'm not sure what you want to achieve, but you can take a look at the interface. Here you can see how it is used in practice. If you want to reconstruct from a point cloud instead, take a look at configs/pointcloud/onet.yaml. Note however, that the pretrained model was trained on (aligned) ShapeNet. So, if you want to apply it to some different object category you might want to retrain / finetune the network.

Sorry for having not described my question clearly!

I mean, after I do the steps (mark voxels -> subdevide voxels -> evaluate network) x n and finally I reach the desired resolution and get the points(which are markd red in your paper), then I write these points in a .npy file.

If I understand your method correctly, then I need apply the marching cubes algorithm and simplify the mesh and refine the mesh. So I want to know where did you implement the whole steps - [(mark voxels -> subdevide voxels -> evaluate network) x n & marching cubes & simplify mesh & refine mesh]

As there are so many code in this project, I am getting a little confused about the implement.

LMescheder commented 5 years ago

If I understand your method correctly, then I need apply the marching cubes algorithm and simplify the mesh and refine the mesh. So I want to know where did you implement the whole steps - [(mark voxels -> subdevide voxels -> evaluate network) x n & marching cubes & simplify mesh & refine mesh]

See here for the implementation of the inner loop of MISE. The outer loop is defined here. Finally, mesh extraction and refinement is done here, which calls this method for refinement and this function for simplification.

MayuOshima commented 5 years ago

If I understand your method correctly, then I need apply the marching cubes algorithm and simplify the mesh and refine the mesh. So I want to know where did you implement the whole steps - [(mark voxels -> subdevide voxels -> evaluate network) x n & marching cubes & simplify mesh & refine mesh]

See here for the implementation of the inner loop of MISE. The outer loop is defined here. Finally, mesh extraction and refinement is done here, which calls this method for refinement and this function for simplification.

Thank you!!

LMescheder commented 5 years ago

You're welcome. Let me know if you have other questions.

raphaelsulzer commented 2 years ago

Hi, could you explain the 'threshold' parameter of the MISE code?