10-18-2019 06:34 AM - edited 10-18-2019 06:41 AM
I wonder if someone had an opportunity to extract points of interest from randomly scattered laser data available as 3d point cloud?
I have plotted it successfully using scatter plot. But I want to take measurements on curvature. I have read we could create mathematical model for one axis in terms of other two axis i.e.
Z = a + bx + cy + dx2 ....
But model might not define angles, slopes, height that I want to analyse on surface.
Random scatteredness of data provides limited options to use standard slope equations to achieve these measurements.
Any ideas?
10-18-2019 07:23 AM
Usually when you have data and want to make a mathematical model, you have in mind a "model" that you think represents your data + "noise" (or other factors). For example, you talk about a 3D point cloud -- one model might be "the data all represent a point in 3D space, with random noise in the X, Y, and Z coordinates". Of course, you'd want to be a bit more precise -- are you assuming that the noise is equally distributed about all three coordinates? Once you have your model, you can try to fit your data to the mathematical representation of your model using some goodness-of-fit criteria (the method of Least Squares is probably the most common). Note that the model I just described should give you data points that are spherically arranged around the "true value".
Your model sounds like it might be somewhat different, as you talk about "curvature" (and I'm unsure what that means). Define your model, and you should be able to define a method to estimate its parameters from the data.
Bob Schor
10-18-2019 09:08 AM
Lets assume a laser scanner goes around arm to capture 3d point cloud for my arm. I plot it with 3d scatter plot and its all fine. I want to precisely measure how big my biceps have grown. Whilst posing for taking picture, I want to also calculate angle that my arm is rotated to pump my biceps!
I just want to know if there is a way with 3d that it could be easily calculated. Currently, I am happening to sort the entire 3 million point arrays in order and using xy graphs to take my measurements. i7 processor on my pc takes few minutes to sort all this data!
I am hopeful that I am doing it out of naivety and there are easier methods to achieve this? How would the experts solve such problem rather sorting and segmenting data? Or is it the only way to achieve accurate measurements with 3d point cloud
10-18-2019 11:55 AM
OK, so you are looking at an arm. How do you scan it with a Laser Scanner? Is there (for example) a beam that sweeps left-to-right, top-to-bottom (like an old-fashioned TV or Monitor display) and returns "distance of nearest surface from the Laser"? Do you have one beam or multiple beams? Are they arranged in a ring, on the inside of a sphere (with the subject inside)? What is the relevant geometry?
Concerning a model, you could model the arm as a cylinder, 20 cm long and 5 cm in diameter (the upper arm). Pretty crude, but you could refine it. Fitting this should at least get you orientation ...
Bob Schor
10-20-2019 08:09 AM
I have no information on hardware. I got data on csv that i plotted successfully on scatter plot modelled as a cylinder.
Data is few millions point arrays for x,y,z axis. I want algorithm to automatically calculate distance between fingers and elbow, muscle size, posing angle etc.
I just want to know if my option is to only sort random scattered data and use data within x,y,z arrays to code algorithm? It is possible to use simple techniques to segment different portions of arm.
Another approach is to be able to write mathematical equation where each terms in equation define different parts of arm. For instance, to reach tip of elbow, there could be a relation between the three parameters which when entered would highlight tip of elbow on 3d scatter plot.
I am beginning to feel that I might have to do grafting and work with arrays and use simple maths functions to come up with some results!! Thanks for your interest, Bob