ErlerPhilipp / points2surf

Learning Implicit Surfaces from Point Clouds (ECCV 2020)
https://www.cg.tuwien.ac.at/research/publications/2020/erler-2020-p2s/
MIT License
443 stars 46 forks source link

My Own datasets #5

Closed qiaogh97 closed 3 years ago

qiaogh97 commented 3 years ago

Hi, @ErlerPhilipp ! I want to deal a scene data using make_dataset.py. After set enforce_solid=False, I still can't find any file in 02_meshes_cleaned. I get "ValueError: Dataset is empty! datasets/lounge/05_query_pts". So I would like to ask if it's possible to deal with that data.

lounge.zip

ErlerPhilipp commented 3 years ago

Hi @qiao1025566574

The main problem is that your mesh is not closed. P2S is not really working with open meshes since the SDF basically enforces a solid object and the model will try to close it, which usually fails due to the heuristic (the grid is only evaluated near the point cloud). Sometimes, the model tries to consider the walls, floor and ceiling as double-sided but it's unreliable. I'm working on this issue and a follow-up paper should solve it.

If you want it only for evaluation, you should set the 'only_for_evaluation' setting in the settings.ini to 1. This disables a few checks and skips some processing steps. The reason why you don't get an output is probably the num_max_faces parameter. The reason for this parameter is that the SDF calculation of trimesh has an extremely high memory consumption, which scales with the number of vertices/faces in the mesh.

If you want it for training, honestly, you should try another method. In short, I recommend using another method for indoor reconstruction. "Convolutional occupancy networks" by Peng et al. seems good but I haven't tried it yet. If you really want P2S for this, you need to close the mesh manually and move the camera for the point cloud sampling into the room.

Does this answer you question?

qiaogh97 commented 3 years ago

Thanks for your detailed explanation! That is exactly the answer I want. I'm looking forward to your new study.