0

for a simple hand pose estimation I want to first fit 3 cylinders on the point cloud data. The main goal is extracting the hand pose.

I have (~1300 points per frame, some of those are a cupboard and desk next to the human) that I read into Matlab and then work only on points within the "arm" cylinder. How would I go about this? I figure I would use ICP and sample a number of points from the shapes, but I have no idea of how to to this, nor how to exactly relate the transforms to the parameters of the cylinders (I figure this would be height, radius, central bottom point and direction of the cylinder).

Any help or resources I could get to learn how to do this would be helpful. Libraries as well.

thegermanpole
  • 133
  • 2
  • 7

1 Answers1

0

Fitting points to model with outliers shouts RANSAC: iteratively sample a very small set of points, estimate the model parameters from them, check and see how many of all the input points this model "explains" and finally, pick the model that explained the most points.

However, you are trying to fit three models simultaneously (each cylinder is a "model"). A good approach in this scenario is to use Robust Multi-Model Estimation.

Shai
  • 111,146
  • 38
  • 238
  • 371
  • I found that algorithm as well, however I am still lost on how I would adapt this to 3D cylinders, I assume I have to change the number of parameters and adapt the distance calculation to an ellipsoid? or should I treat it as a hull and just maximize the number of "inside points"? – thegermanpole Jan 15 '15 at 16:25
  • @thegermanpole are your points surface points or interior points? I think your first stage would be to fit a single cylinder to part of the data: Suppose you are given only points associated with the torso (+fair amount of outliers), can you find the parameters of the torso cylinder? – Shai Jan 15 '15 at 16:33
  • The points are surface points, I would have to think on how to do that. If I understood it correctly I would try to take a small sample of my points, generate a cylinder with some correlation to the sample (let's say height = maximum height difference, radias = radius of sample, central base lowest point, direction vector from base to hightest point?) and then test for out and inliers? edit:: just figured out how to project to 2D, so i might try ellipsis instead. should be a bit cheaper computationally – thegermanpole Jan 15 '15 at 16:47
  • try [this](http://www.geometrictools.com/Documentation/CylinderFitting.pdf) @thegermanpole – Shai Jan 15 '15 at 16:53