Hi,
me and a friend have used a laser scanner to scan an object. We are looking for the least detectable movement/deformation by the instrument. When we compare cloud0 to cloud1 (reference to deformation) we notice some noise (big errors). In the Cloud Compare documentation it says that it's possible to apply "measurement noise filtering", how do we do that? Is it also possible to get a report where the deformation is displayed in 95% confidence interval for example?
Thanks in advance,
Carl
Deformation analysis: measurement noise filtering etc.
Re: Deformation analysis: measurement noise filtering etc.
Interesting.
First make sure that you compute distances with the right parameters (i.e. use local modeling if the reference cloud is not dense enough, etc.). If you can mesh the reference cloud it's even better (you'll get signed distances - otherwise you can also use the new qM3C2 plugin to get signed distances while comparing two clouds).
Once you are sure the distances values are reliable:
First make sure that you compute distances with the right parameters (i.e. use local modeling if the reference cloud is not dense enough, etc.). If you can mesh the reference cloud it's even better (you'll get signed distances - otherwise you can also use the new qM3C2 plugin to get signed distances while comparing two clouds).
Once you are sure the distances values are reliable:
- There's no automatic way to get the 95% interval: if you have signed distances, you can fit a normal distribution on the distances (Edit > Scalar Fields > Compute Stat. Params) so as to compute the "theoretical" 95% confidence interval (if the distances do follow a normal law it's simply " mean +/- 2*sigmas "). Otherwise if the distances distribution is not "Gaussian" it's easier to compute unsigned distances, then display the histogram (Edit > Scalar Fields > Show histogram) and manually find the actual 95% limit by clicking on the histogram (a vertical bar with the percentage of values on the left will appear where you click).
- To filter noise you can either use the 'SOR' method of the qPCL plugin (Statistical Outliers Removal). This method doesn't use the distances though (it only looks locally if the points follow the same trend as their direct neighbors). If you simply want to remove the points with distances above a given threshold (your 95% limit for instance) then you can use the 'Edit > Scalar Fields > Filter by value' method.
Daniel, CloudCompare admin
Re: Deformation analysis: measurement noise filtering etc.
How have you co-registered the reference model and the scan ?
Because having this info is important to know the minimum change you can expect to detect in the best case (i.e. with a scan with no positional error).
Because having this info is important to know the minimum change you can expect to detect in the best case (i.e. with a scan with no positional error).
Re: Deformation analysis: measurement noise filtering etc.
Thanks for taking time to reply!
We have a few additional questions:
1. What exactly is meant by signed distance?
2. What is co-registration? As far as we know co-registration is when Point Clouds are registered to the same local coordinate system. In our case we have only one scan for each epoch so we wonder what is meant by co-registration in this case?
3. How can we detect the least noticable movement in CloudCompare?
We have a few additional questions:
1. What exactly is meant by signed distance?
2. What is co-registration? As far as we know co-registration is when Point Clouds are registered to the same local coordinate system. In our case we have only one scan for each epoch so we wonder what is meant by co-registration in this case?
3. How can we detect the least noticable movement in CloudCompare?
Re: Deformation analysis: measurement noise filtering etc.
Signed distances are +/- values depending on the position of the point relatively to the surface (i.e. below/above or also inside/outside). The sign is guessed from the surface normal. By default if you compare directly two point clouds you can't 'sign' the distances as there's no reliable normal. You can only get one with a mesh. But you can also use the qM3C2 plugin which is able to compute normals on the cloud AND take them into account during the distance computation.
Otherwise I would say that the least noticeable movement should be obtained with a good knowledge of the measurement noise (and registration error as well if any) and statistical considerations. Because CC can compute very small distances (its base relative precision is about 1e-7) but it doesn't mean that they correspond to a true 'change'.
Once again the M3C2 plugin is able to compute a confidence value for each distance it computes (i.e. "does the value corresponds to a reliable change or is it only noise?"). There's also a similar approach with the "Tools > Statistics > Local Stat. Test" method (which requires a noise model as input).
P.S. : a simple way to measure the noise it to acquire points on a (truly) flat surface and check how the resulting point cloud fits with a theoretical plane (see "Tools > Fit > Plane"). You generally have to do this at varying distances, angles of incidence, etc.
Otherwise I would say that the least noticeable movement should be obtained with a good knowledge of the measurement noise (and registration error as well if any) and statistical considerations. Because CC can compute very small distances (its base relative precision is about 1e-7) but it doesn't mean that they correspond to a true 'change'.
Once again the M3C2 plugin is able to compute a confidence value for each distance it computes (i.e. "does the value corresponds to a reliable change or is it only noise?"). There's also a similar approach with the "Tools > Statistics > Local Stat. Test" method (which requires a noise model as input).
P.S. : a simple way to measure the noise it to acquire points on a (truly) flat surface and check how the resulting point cloud fits with a theoretical plane (see "Tools > Fit > Plane"). You generally have to do this at varying distances, angles of incidence, etc.
Daniel, CloudCompare admin