I have point cloud data set where single data is represented by N * 3 where N is number of points. Similarly I have "M" number of points clouds in Dataset. The range of these point clouds varies largely. Some have very large values (e.g., in term of 10^6 for all N points) while some has very small values (e.g., in term of 10^1 for all N points). I want to normalize each point cloud. How should i do that?
Q1. Should I normalize(min-max) each point cloud (single point cloud N*3) individually along x, y, z dimension by choosing min and max from this point cloud only. In this scenario, for all "M" point clouds we have different min-max. The same is done for output point cloud. Please view the image for more understanding https://i.sstatic.net/tKauw.jpg
Q2. Or Should I normalize (min-max) all point clouds along x, y, z dimension by choosing min and max (from M * N *3 in x, y, z columns) from this entire data set only. In this scenario, for all "m" point clouds we have same min-max. Please view the image for more understanding https://i.sstatic.net/0HAhn.jpg
You should use option 1.
The point of normalisation is to standardise the inputs to your network - in the case of min-max normalisation this will map your 3 features (I assume xyz
) to the interval [0,1].
Option 2 is undesirable as it standardises the normalisation instead. As the centroids of your point clouds are highly variable, this will increase the difficulty of input discrimination for your model.
You could also consider standardising using variable standard deviation.