ErlerPhilipp / points2surf

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

How to reconstruct my own pointcloud? #28

Closed WildEchoes closed 1 year ago

WildEchoes commented 1 year ago

Thanks for your excellent work! I have a problem with your code. After using make_pc_dataset.py I don't know how to reconstruct the point cloud to a mesh. Looking forward to your reply.

ErlerPhilipp commented 1 year ago

Right, I didn't write it explicitly in the readme. The best solution is most likely to duplicate a matching experiment eval script, e.g. experiments/eval_p2s_max.sh, and adapt it to your new dataset. I recommend picking the one for the max model.

In this file, you need to specify your testset.txt in the dataset parameter. In case you have strong noise, you may also need to increase the epsilon, certainty_threshold, and sigma parameters.

WildEchoes commented 1 year ago

Right, I didn't write it explicitly in the readme. The best solution is most likely to duplicate a matching experiment eval script, e.g. experiments/eval_p2s_max.sh, and adapt it to your new dataset. I recommend picking the one for the max model.

In this file, you need to specify your testset.txt in the dataset parameter. In case you have strong noise, you may also need to increase the epsilon, certainty_threshold, and sigma parameters.

Thanks for your reply! I will try later.

WildEchoes commented 1 year ago

Right, I didn't write it explicitly in the readme. The best solution is most likely to duplicate a matching experiment eval script, e.g. experiments/eval_p2s_max.sh, and adapt it to your new dataset. I recommend picking the one for the max model.

In this file, you need to specify your testset.txt in the dataset parameter. In case you have strong noise, you may also need to increase the epsilon, certainty_threshold, and sigma parameters.

After creating my own eval script, I meet a new problem.

Traceback (most recent call last): File "/home/yy/reconstruction/points2surf/full_eval.py", line 81, in full_eval(opt=points_to_surf_eval.parse_arguments()) File "/home/yy/reconstruction/points2surf/full_eval.py", line 69, in full_eval evaluation.mesh_comparison( File "/home/yy/reconstruction/points2surf/source/base/evaluation.py", line 315, in mesh_comparison ref_mesh_files = [f for f in os.listdir(ref_meshes_dir_abs) FileNotFoundError: [Errno 2] No such file or directory: 'datasets/our/03_meshes'

ErlerPhilipp commented 1 year ago

are the files and paths really correct? you should see several folders in datasets/our. make sure to call the experiment scripts from the repo root like bash experiments/eval_p2s_max.sh

WildEchoes commented 1 year ago

are the files and paths really correct? you should see several folders in datasets/our. make sure to call the experiment scripts from the repo root like bash experiments/eval_p2s_max.sh

Thanks for your timely reply! After I create a "03_meshs" path it doesn't happen. But a new problem has appeared.

Traceback (most recent call last): File "/home/yy/reconstruction/points2surf/full_eval.py", line 81, in full_eval(opt=points_to_surf_eval.parse_arguments()) File "/home/yy/reconstruction/points2surf/full_eval.py", line 69, in full_eval evaluation.mesh_comparison( File "/home/yy/reconstruction/points2surf/source/base/evaluation.py", line 349, in mesh_comparison raise ValueError('Results are empty!') ValueError: Results are empty!

And my script likes that:

// name from filename NAME=$0 NAME=${NAME##/} NAME=${NAME%.} NAME=${NAME#eval_}

python full_eval.py \ --indir 'datasets' \ --outdir 'results' \ --modeldir 'models' \ --dataset 'test/testset.txt' \ --models ${NAME} \ --modelpostfix '_model_249.pth' \ --batchSize 501 \ --workers 7 \ --cache_capacity 5 \ --query_grid_resolution 256 \ --epsilon 3 \ --certainty_threshold 13 \ --sigma 5 \

ErlerPhilipp commented 1 year ago

your dataset contains only point clouds, right? so there are no ground-truth meshes? this means that parts of the evaluation don't make sense anyway. you can just ignore them as they will only try to produce tables for e.g. chamfer distance.

you should find the reconstructions in a folder like results/max_model/own.

WildEchoes commented 1 year ago

your dataset contains only point clouds, right? so there are no ground-truth meshes? this means that parts of the evaluation don't make sense anyway. you can just ignore them as they will only try to produce tables for e.g. chamfer distance.

you should find the reconstructions in a folder like results/max_model/own.

I'm truly grateful for your help.

ErlerPhilipp commented 1 year ago

i'm happy if this is useful for you. if there are any other issues, feel free to re-open this issue or create a new one.