Friday, October 30, 2009

Automatic detection of keypoints for 3D reconstruction

I would like to find a way to automatically detect the keypoints used for alignement and interpolation when the mesh is adapted to fit 3D scans.

Since a lot of 3D scans have already been manually processed, we can learn a statistical model of these keypoints. Such a model would contain a part about the local topology for each keypoint and a part about relative positions between them.

Once the model is built, the solution should be the configuration of vertices having the maximum likelihood according to the model.

If this works, this should save a huge amount of time in the treatment of 3D scans...

2 comments:

  1. From the picture.. we learn that two people have unsimilar faces mostly due to the difference in their : nose, eyes and ears... but have I guessed correctly that you found the keypoints only on male models? Have you tried this when you use ONLY female models. I think we should have one statistical analysis for the males and one for the females. We have more precision this way. If you try a mixed sex one.. I think you will have more white regions on the cheeks, chin, cranium and lips.. this could mess the analysis up.

    ReplyDelete
  2. The pictures actually says nothing about what makes two faces similar or not. It just indicates the vertices having non-flat neighbourhood (flat = black).

    I want to use this feature to build a model of the local aspect of keypoints. From what i know of the related algorithm it should not require to separate male and female faces. It just need to know if a vertex has a high propability or not to be a keypoint given the local features and the distance to other keypoints.

    The algorithm I want to use is an adaptation of the one described in this article www.cs.cornell.edu/~dph/papers/pict-struct-ijcv.pdf.

    The only possible issue is the relevence of the feature i have chosen. It might not be discriminative enough.

    Technically, the value associated to the vertex is computed over the vertices contained in a ball centered on the current vertex, the radius of the ball being chosen by the user. Using all vertices contained in this ball we perform a principal component analysis. Intuitively we guess that if we have a flat neighbourhood, all vertices should lie in the plane indicated by the first 2 principal component. projecting all neighbour vertices on the 3rd principal component and summing their resulting norm is then an indication of the non-flatness of the neighbourhood.

    ReplyDelete

© MHteam 2001-2010