curvature analysis

Feel free to ask any question here
hd_surveyor
Posts: 14
Joined: Wed Jan 20, 2016 10:38 am

curvature analysis

Post by hd_surveyor »

Hi, Daniel
I would like to analyze the scans of some irregular walls and highlight the parts that have a radius of curvature of less than 20 cm.
The clouds are ascii files x, y, z, intensity (no normal), point spacing about 5 mm (see attached image)
I tried to use the tools in the Tools> Other> Bends> Gaussian / Mean / Normal rate change but do not know which function to use and what is the kernel value (the only data inserted by the user).
It is also possible to distinguish the concave areas from those convex?

Thanks
Alberto


.
Attachments
example.jpg
example.jpg (97.86 KiB) Viewed 11188 times
daniel
Site Admin
Posts: 7710
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: curvature analysis

Post by daniel »

I bet the Gaussian curvature should be the most helpful (see https://en.wikipedia.org/wiki/Gaussian_curvature) but you should take the square root of the result to get something approaching (you can use the 'SF Arithmetic' tool to do this).

The mean curvature (https://en.wikipedia.org/wiki/Mean_curvature) is more directly equivalent to a radius of curvature, but it's also less robust.

The kernel radius is the size of the neighborhood that is extracted around each point in order to estimate the curvature. The bigger it is, the less sensitive to noise the measure will be (but it will also be smoother). And if it's too small then there won't be enough points to compte the curvature (and you have to be sure that the data is noiseless).

Setting it correctly depends on both the density of your cloud and on the range of curvatures you are interested in. I bet you could set at least 5 cm here?

And last but not least, the curvature measures are all unsigned. Therefore you can't differentiate the convex and concave areas...
Daniel, CloudCompare admin
hd_surveyor
Posts: 14
Joined: Wed Jan 20, 2016 10:38 am

Re: curvature analysis

Post by hd_surveyor »

Hello
I tried both methods gaussian sqr and mean with similar results and some problems: they do not work well near the corners and i think they are very sensitive to the noise of the scanner providing curvature values of areas that should be flat and smooth; for this i thought of an alternative method:
I have created a matrix of points around the cloud to be analyzed, selected the points at 20 cm from the latter and divided into external and Internal with the cutting tool, then i calculated the distance of the cloud of relief from internal and external clouds and ighlighted the points more distant than 20 cm.
Is a very slow process, i hope that you can automate it creating for example an offset tool for the clouds.

regards
Alberto

.
Attachments
example_1.jpg
example_1.jpg (155.9 KiB) Viewed 11170 times
example_2.jpg
example_2.jpg (181.2 KiB) Viewed 11170 times
daniel
Site Admin
Posts: 7710
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: curvature analysis

Post by daniel »

Interesting.

You say that the curvature computation methods are very sensitive to noise. That's true but especially for small kernels. Have you tried big ones? What is the maximum you tried?

Otherwise they are made for smooth surfaces, therefore corners are indeed badly taken into account.
Daniel, CloudCompare admin
hd_surveyor
Posts: 14
Joined: Wed Jan 20, 2016 10:38 am

Re: curvature analysis

Post by hd_surveyor »

I tried with 10 cm on a section with very smooth walls and the result seem strange (i could be wrong), i attach the WeTransfer link to the cloud if you want to play with it:
https://www.wetransfer.com/downloads/f1 ... 934/443441

regards
Alberto


.
Attachments
smooth_gallery.jpg
smooth_gallery.jpg (138.21 KiB) Viewed 11155 times
Sascher
Posts: 16
Joined: Tue Dec 16, 2014 1:59 pm

Re: curvature analysis

Post by Sascher »

are there any rules or guides for setting the kernel size?
daniel
Site Admin
Posts: 7710
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: curvature analysis

Post by daniel »

Well it's hard to tell ;)

This 'kernel' is in fact the radius of a sphere inside which the neighbors are extracted (around each point). With the point and its neighbor, we then compute the quadric that best fit them and we deduce the curvature values for the central point directly from this quadric formula.

Therefore the result is perfect if the quadric fits the points perfectly. But a quadric is a smooth surface. Therefore it doesn't work on sharp edges and corners. And if there's too much noise and outliers you'll definitely get strange results.

If you set a small radius, then the noise will have a big effect on the result. But if you use a too high radius, the quadric might not properly fit to the cloud geometry.

To properly compute the curvature on complex shapes one would need to make a very clean reconstruction of the surface (at least locally). In fact you basically need a clean mesh!
Daniel, CloudCompare admin
Sascher
Posts: 16
Joined: Tue Dec 16, 2014 1:59 pm

Re: curvature analysis

Post by Sascher »

Thanks for your thorough answer.
I am just wondering if there is kind of a rule of thumb; like for instance the ratio of wavelength and resolution - a quater of the wavelength equals the resolution.
So if I want to visualise objects in my point cloud that have a certain extent, how do I set the the associated kernel?
Thanks for these interesting and multidisciplinary discussions!
hd_surveyor
Posts: 14
Joined: Wed Jan 20, 2016 10:38 am

Re: curvature analysis

Post by hd_surveyor »

I would like to have a confirmation: the mean curvature method applied to a cloud imported in meters, returns values (radiuses) also in meters?

Alberto
daniel
Site Admin
Posts: 7710
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: curvature analysis

Post by daniel »

In fact the mean curvature (and the others I guess) is expressed in inverted units (cloud in m. --> curvature in m^-1 = 1/m).

If you have a sphere of radius 2, the mean curvature will be 1/2 = 0.5. If you have a sphere of radius 20, you'll have a mean curvature of 1/20 = 0.05.
Daniel, CloudCompare admin
Post Reply