Hi there,
For my research I want to know the difference between two 3D-models of human faces. I do this by comparing multiple methods/models to a reference method/model.
What I did is, firstly, is to sample all the models with points, then registrate the models roughly by point-picking, then cutting the models, so that the 'compared' model is always smaller than the 'reference'. After that I ICP the two models and then compute the distance between them.
The ICP gives me an difference in RMS. Do I understand this is a value in scale, like say 0,70 RMS = mean = 0,70 mm diference between the models?
Afterwards the 'compute distance' gives me also an number, let's say mean 0,80 and stdev 0,60. Does this mean there is a mean difference of 0,80 mm with a stdev of 0,60 mm, between the models?
Obviously one of the two is a wrong assumption. But I don't understand the values given, exactly.
Could someone explain what the values represent, exactly?
Thanks in advance,
Garaio
Difference between ICP RMS and the "Compute Distance" value
Re: Difference between ICP RMS and the "Compute Distance" value
Hi,
Juste to make things clear:
- you don't need to sample the reference entities (it's better to keep them as meshes)
- you don't need to cut the model for the registration part (either by picking points or with ICP since recent version avec the 'overlap' parameter now)
- but it may be interesting for the comparison if you don't want to take far points into account
Otherwise, mind that the ICP algorithm computes the RMS on a subset of the points. And the RMS is the root of the mean square errors. So it's quite different from the average / mean value (it's more related to the standard deviation).
You can also get the RMS after the distances have been computed (it will be more reliable). Just use the histogram tool and look at the console. You can also use the 'Fit Stat. distrib' method to fit a Normal distribution and read the mean and standard deviation. But they are probably the same as what is output in the console.
And yes the RMS is expressed in the same units as the points (as all the distances, etc.).
Juste to make things clear:
- you don't need to sample the reference entities (it's better to keep them as meshes)
- you don't need to cut the model for the registration part (either by picking points or with ICP since recent version avec the 'overlap' parameter now)
- but it may be interesting for the comparison if you don't want to take far points into account
Otherwise, mind that the ICP algorithm computes the RMS on a subset of the points. And the RMS is the root of the mean square errors. So it's quite different from the average / mean value (it's more related to the standard deviation).
You can also get the RMS after the distances have been computed (it will be more reliable). Just use the histogram tool and look at the console. You can also use the 'Fit Stat. distrib' method to fit a Normal distribution and read the mean and standard deviation. But they are probably the same as what is output in the console.
And yes the RMS is expressed in the same units as the points (as all the distances, etc.).
Daniel, CloudCompare admin
Re: Difference between ICP RMS and the "Compute Distance" value
Hi,
Thanks for the reply.
I thought sampling the reference increases the resolution whereof the distance could be computed. I sampled ever mesh with a density of 100.
Would it be possible to calculate the resolution the of the sampled point cloud?
Also, for ICP I use 600000 points with the option 'Enable farthest point removal' enabled. I also enable scaling, because my compared mesh is not in the correct scale because it's made via fotogrammetry. Whereafter I compute the distance between the two clouds.
The value it gives in the console after the computation, is the final mean and standard deviation, I assume?
My question now is, provided the ICP settings and the sampled point-clouds, is the distance computation a reliable source of information?
Hope you can help with this.
Best regards,
Garaio
Thanks for the reply.
I thought sampling the reference increases the resolution whereof the distance could be computed. I sampled ever mesh with a density of 100.
Would it be possible to calculate the resolution the of the sampled point cloud?
Also, for ICP I use 600000 points with the option 'Enable farthest point removal' enabled. I also enable scaling, because my compared mesh is not in the correct scale because it's made via fotogrammetry. Whereafter I compute the distance between the two clouds.
The value it gives in the console after the computation, is the final mean and standard deviation, I assume?
My question now is, provided the ICP settings and the sampled point-clouds, is the distance computation a reliable source of information?
Hope you can help with this.
Best regards,
Garaio
Re: Difference between ICP RMS and the "Compute Distance" value
A mesh has no sampling issue (as you compute the distance to the nearest triangle/surface and not to the nearest vertex. So you should definitely use a mesh as reference.
For ICP, you shouldn't use the 'farthest point removal' option. It was an old 'research' option, and it is now replaced by the overlap parameter.
Yes the displayed values are the mean and std. deviation of the computed distances.
And I'll answer your question by another question: what do you mean by reliable? ;D If you are referring to the output values (mean and std. dev.) then it depends. The mean doesn't mean (appart than indicating a global shift / tendency). And the std. dev. is probably better (it gives an information of the amplitude of variations).
For ICP, you shouldn't use the 'farthest point removal' option. It was an old 'research' option, and it is now replaced by the overlap parameter.
Yes the displayed values are the mean and std. deviation of the computed distances.
And I'll answer your question by another question: what do you mean by reliable? ;D If you are referring to the output values (mean and std. dev.) then it depends. The mean doesn't mean (appart than indicating a global shift / tendency). And the std. dev. is probably better (it gives an information of the amplitude of variations).
Daniel, CloudCompare admin