riccardomarin / NICP

34 stars 3 forks source link

Inference on a sample pointcloud completely fails #5

Closed AntiLibrary5 closed 3 months ago

AntiLibrary5 commented 3 months ago

Hi, I liked reading the paper. Nice ideas. I wanted to try firsthand. I use a pointcloud as input in the spirit of Fig 5 in the paper with following command. PYTHONPATH=. python ./src/lvd_templ/evaluation/evaluation_benchmark.py

input pointcloud, out_ss, out__ss_cham0+D for my sample
Description Description Description
out__ss_cham0+D for test_scan_044
Description

As we see, it worked for the example in the demo folder provided, but fails for the sample I use (from amass). Are there hyperparameters to be tweaked? If not, why do you think NICP fails here?

Thank you.

riccardomarin commented 3 months ago

Hi @AntiLibrary5, Thank you for your message and your interest!

The result is definitely not what is expected: I observe similar results when the input point cloud is not vertically oriented correctly. Could you open in the same MeshLab window your input PC and the provided demo and verify that their "floors" are kind of aligned?

AntiLibrary5 commented 3 months ago

I see, it was probably due to the "y-axis alignment" issue? Adding the global_rot arg fixes it :) thanks. Just a follow up question, out_ss.ply is smpl fitting, can we access the parameters? or is it only the template morphed to the scan? In the paper, it mentions "we fit SMPL as in LVD"

image image

riccardomarin commented 3 months ago

Glad it worked! :)

Yes, the code also returns the SMPL parameters in a file called "loss_out_ss.npy" in the output folder. Loading it, you will find the parameters corresponding to out_ss.ply. For reference of the keys contained in the .npy, you can check here.

If you want the SMPL parameters also for the step after the chamfer refinement, you can uncomment these lines of the script.

AntiLibrary5 commented 3 months ago

Awesome. Thanks!