Closed nonci closed 5 months ago
Hi, thanks for your interest in our work.
The normalizing processing is at: https://github.com/OpenRobotLab/PointLLM/blob/d2368d2fc8b750a9401e2402d462e527b9c0e149/pointllm/data/object_point_dataset.py#L153
Best, Runsen
Thank you for the fast reply! I have seen that function, but there is still something that doesn't add up. Reading your code, it seems to me that you are normalizing the coordinates (relative to the centroid) in the sphere of radius 1. I would expect, than, to have the x,y,z coordinates in the range [-1, 1] (maybe I am wrong). Analyzing the clouds, however, I see that some values are far off these extremes. For example, the cloud with id "75b28ddd9eca4c4988e3029e45dfd5f0" has coordinates:
[[-0.0483, 0.4880, 0.1857],
[-1.4152, 0.2186, -0.1576],
...
where -1.4152 is unexpected.
I have also tried to apply pc_norm
to these clouds, but the encoder results are not semantically meaningful in that case.
Thanks for your details.
There are occasionally some samples having noises. For example, "75b28ddd9eca4c4988e3029e45dfd5f0" has one point outside the object.
Maybe you should manually handle such samples.
It's also worth noting that the PC_norm should always be applied online, even if you use the point encoder only.
Thanks for the share of the point clouds, but I am still curious about how the point clouds are generated?
They are from the Cap3D projects. https://cap3d-um.github.io/
Thanks a lot~
@nonci Hi, do you have any more question regarding to this issue?
I get it, I'll try to remove such outliers if needed, thank you,
Hi, very interesting work! I am using for my thesis Point-BERT encoder with the weights you provided in issue #1 and the clouds taken from HuggingFace Objaverse_660K_8192_npy_split_a* files and it works fine without further steps. I can't figure out, however, how the x,y,z components of such clouds are normalized (if they are), or how they are generated. This would be essential to test the encoder with other clouds. Thank you.