Automatic 3D surface segmentation


End of engeenering studies project (ENSIMAG-ENSERG), done in collaboration with Total and the laboratory LIS (Laboratory of Image and signals, Grenoble). During this project, I achieved an algorithm able to cut a surface at its thicknesses. This was based on a new theoretical approach using the critical points of the distance function, computed using the tetrahedrisation of Delaunay. Application was to cut potential reserves of hydrocarbures.


ALGORITHM

Without any details, basics steps are :

  1. Delaunay tetrahedrisation computation and its dual Voronoi graph, using the CGAL library

  2. Computation of the critical points of the distance function, as the intersections of Voronoi Graph and its dual Delaunay tetrahedrisation.

  3. Computation of the stable manifold of the level 2 critical point, as surface that are a boundary between two sub-parts of the objects

  4. Computation of the stable manifold of the level 3 critical point,  as the inner part of an union of stable manifold of critical points of level 2.

  5. Filtering of the critical points of level 3 ( these are the maxima of the distance function, ie the subobjects) that are outside the given input surface

  6. Merge between some subobjects, if the thickness between them is weak

  7. Deletion of small objects

     


ILLUSTRATIONS

Here is a simple example of a closed surface we want to cut as an human would do, in two equal parts. Black dots are the surface vertices.


 

In read are the two found maxima of the distance function. These are the two critical point of level 3. la fonction distance.

The green surface is a stable manifold of an interesting critical point of level 2 (shown in green, as the intersection of a delaunay triangle and its dual a Voronoi edge). The blue path is the gradient descent on the two sides of the critical point, leading to two associated critical points of level 3..

 

This single triangle is also a stable manifold of  a critical point of level 2. It is a border between an inner maximum of the distance function, and another maximum, outside the object that is at the infinite.


The stable manifold of a critical point of level 3. Clearly, it is a desirable sub-object


 

In red are themaxima. In blue are the critical points of level 1.

We can see here that for a more complex object, there are many maxima, not all corresponding to a sub-object.


An even more complicated sub-object.  

And its many maxima

Here, all maxima are associated to a sub-object.

 

Some maxima are merged and that leads to the correct segmentation.

It works on this bone

  A little problem, the cut could be more precisely positionned on the legs.


During the project, a paper describing a very closed algorithm was published by another team :  "Shape segmentation and matching with flow discretization
T. K. Dey, J. Giesen and S. Goswami. Proc. Workshop Algorithms Data Strucutres (WADS 03), LNCS 2748, F. Dehne, J.-R. Sack, M. Smid Eds., 25--36"


 

 

Author :  Adrien Auclair  
adrien.auclair at club-internet.fr
Last update : 05/05/2004