Presentation is loading. Please wait.

Presentation is loading. Please wait.

Detection of closed sharp edges in point clouds Speaker: Liuyu Time:2007-09-27.

Similar presentations


Presentation on theme: "Detection of closed sharp edges in point clouds Speaker: Liuyu Time:2007-09-27."— Presentation transcript:

1 Detection of closed sharp edges in point clouds Speaker: Liuyu Time:2007-09-27

2 Background Knowledge Realistic parts to point clouds: Point clouds to “ realistic ” parts: an important part in the reverse engineering of industrial parts scan algorithm

3 Reference Detection of closed sharp edges in point clouds using normal estimation and graph theory Authors : Kris Demarsin, Denis Vanderstraeten, Tim Volodine, Dirk Roose Publish: CAD 39(2007) 276-283 edges

4 Authors Kris Demarsin: K.U.Leuven, Belgium Department of Computer Science Promoter: D. Roose Co-Promoter: D. Vanderstaeten (Metris)

5 Authors Tim Volodine research assistant Department of Computer Science Celestijnenlaan 200A 1.28 B-3001 Heverlee Promoter: D. RooseD. Roose Co-Promoter: D. Vanderstaeten (Metris)Metris

6 Authors Dirk Roose : Professor at the department of Computer Science, Faculty of Applied Sciences, K.U.Leuven; Head of the research group Scientific Computing Email: Dirk.Roose@cs.kuleuven.ac.beDirk.Roose@cs.kuleuven.ac.be

7 Algorithm 1 1. Segment point cloud using the Segment point cloud using the normals = > point clusters(clusters); 2. Build graph G all connectingBuild graph G all connecting neighboring clusters; 3. Add edges, indicating a piece ofAdd edges, indicating a piece of a sharp feature line, to G all = > G extended; 4. Build the pruned minimum spanningBuild the pruned minimum spanning tree of G extended = > G extended;

8 Algorithm 1 5. Prune short branches in G pruned_mstPrune short branches in G pruned_mst => G pruned_branches ; 6. Close the sharp feature lines in G pruned_branches => G closed ;Close the sharp feature lines in G pruned_branches => G closed ; 7. Smooth the sharp feature lines in G closedSmooth the sharp feature lines in G closed => G smooth => G smooth.

9 Step 1. Clusters Delaunay neighorhood of p Choose k(=20) nearest neighbors of p: The least square plane through the (k+1) points p Radius Contain total k points

10 Step 1. Clusters Project the points onto the plane Delaunay triangulate the projected points, Obtaining the Delaunay neighorhood of p P2 P1 P P4 P3

11 Step 1. Clusters Normal estimation and First order segmentation of point cloud N(p) : the normal in p is estimated as the normal of the least squares plane through Delaunay neighhood of p p1, p2 are two adjacent points; if < α max (threshold), then p1,p2 belong to one cluster.

12 Step 1. Clusters Fig. 1 illustrates the result of the first order segmentation, applied to the point cloud of the two intersecting cylinders. One large cluster with many small clusters defining the boundary, each point colored corresponding to the cluster it belong to.

13 Algorithm 1 1. Segment point cloud using the normals = > point clusters(clusters); 2. Build graph G all connecting neighboring clusters;Build graph G all connecting neighboring clusters; 3. Add edges, indicating a piece of a sharp feature line, to G all = > G extended;Add edges, indicating a piece of a sharp feature line, to G all = > G extended; 4. Build the pruned minimum spanning tree of G extended = > G extended;Build the pruned minimum spanning tree of G extended = > G extended;

14 Step 2. Building graph G all Vertex: represents a cluster Edge: connect two clusters containing at least one point with overlapping 1-ring neighborhood. Vetex

15 Step 2. Building graph G all Sharp edges (feature lines ): What: a feature of the point cloud with very high normal variation How: small clusters; distinguish between small and large clusters. threshold = mean( size (clusters))

16 Step 2. Building graph G all Fig. 2 only the edges between two small clusters is plotted. The area bounded by the rectangle is used to illustrate the following steps of the algorithm in detail Fig.3(a)

17 Algorithm 1 1. Segment point cloud using the normals = > point clusters(clusters); 2. Build graph G all connecting neighboring clusters; 3. Add edges, indicating a piece of a sharp feature line, to G all = > G extended;Add edges, indicating a piece of a sharp feature line, to G all = > G extended; 4. Build the pruned minimum spanning tree of G extended = > G extended;Build the pruned minimum spanning tree of G extended = > G extended;

18 Step 3. Add edges to G extended Why: Gaps: Caused by points on a sharp edge with a normal aligned with the normal of a neighboring large cluster.

19 Step 3. Add edges to G extended How: add edges between two points that share two large neighboring clusters whose Eulcidean distance is less the maximum. maximum = max( Eulcidean distance( small neighboring clusters)) Add edges

20 Algorithm 1 1. Segment point cloud using the normals = > point clusters(clusters); 2. Build graph G all connecting neighboring clusters; 3. Add edges, indicating a piece of a sharp feature line, to G all = > G extended; 4. Build the pruned minimum spanning tree of G extended = > G extended;Build the pruned minimum spanning tree of G extended = > G extended;

21 Step 4. Building G pruned_mst Weights of edges: w i = length of edge Edges between small clusters ( w i is smaller) Edges between large clusters ( w i is larger) Edges between a small cluster and a large cluster Edges that are added MST: minimum spanning tree a1a4 a2 a5 a6 a3

22 Step 4. Building G pruned_mst We can now remove these latter edges which results in G pruned_mst, as illustrated in Fig. 3(c).

23 Algorithm 1 1. Segment point cloud using the normals = > point clusters(clusters); 2. Build graph G all connecting neighboring clusters; 3. Add edges, indicating a piece of a sharp feature line, to G all = > G extended; 4. Build the pruned minimum spanning tree of G extended = > G extended;

24 Algorithm 1 5. Prune short branches in G pruned_mstPrune short branches in G pruned_mst => G pruned_branches ; 6. Close the sharp feature lines in G pruned_branches => G closed ;Close the sharp feature lines in G pruned_branches => G closed ; 7. Smooth the sharp feature lines in G closedSmooth the sharp feature lines in G closed => G smooth => G smooth.

25 Step 5. Construction of G pruned_branches Algorithm 2 : Pruning algorithm : parameter d max = 5; for all points p in G pruned_mst with more than two incident edges do if (at least 2 incident branches have depth ≥ d max ) then remove all incident branches with depth < d max end if if (exactly 1 incident branch has depth ≥ d max ) and (at least 2 incident branches have depth < d max ) then from the short branches, keep only the one with the largest depth end if end for Adjusted by the user

26 Step 5. Construction of G pruned_branches A detail of the resulting graph G pruned_branches for the two intersecting cylinders is seen in Fig. 3(d). G pruned_branches has a reduced number of endpoints with exactly one incident edge

27 Algorithm 1 5. Prune short branches in G pruned_mst => G pruned_branches ; 6. Close the sharp feature lines in G pruned_branches => G closed ;Close the sharp feature lines in G pruned_branches => G closed ; 7. Smooth the sharp feature lines in G closedSmooth the sharp feature lines in G closed => G smooth => G smooth.

28 Sept 6. Building G closed Endpoints : vertices in the graph with exactly one incident edge Connect algorithm: Parameter n Adjusted by the user

29 Sept 6. Building G closed for all endpoints p i,compute the set N of the n nearest neighbors if( exist at least one other endpoint in N) then connect p i to the closed endpoint q i which has no path with p i and distance( p i, q i ) ≥ d max end if

30 Sept 6. Building G closed if( exist no other endpoint in N) then connect p i to a point in N which has more than one incident edge. end if end for

31 Sept 6. Building G closed The two endpoints that still existed in Fig. 3(d) are now connected, as illustrated in Fig. 3(e).

32 Algorithm 1 5. Prune short branches in G pruned_mst => G pruned_branches ; 6. Close the sharp feature lines in G pruned_branches => G closed ; 7. Smooth the sharp feature lines in G closedSmooth the sharp feature lines in G closed => G smooth => G smooth.

33 Step 7. Generate G smooth Smoothing Function: L : Laplacian operator; L(f): a modification of L; The i-th row of L(f) The i-th row of L Curvature at pi The user-specified parameter

34 Step 7. Generate G smooth Reference paper: Smoothing of Meshes and Point Clouds Using Weighted Geometry-Aware Bases Authors: Tim Volodine, Denis Vanderstraeten, Dirk Roose

35 Step 7. Generate G smooth Using a smoothing method to get a smooth graph G smooth Results for the two intersecting cylinders:Fig.(6)

36 Algorithm 1 5. Prune short branches in G pruned_mst => G pruned_branches ; 6. Close the sharp feature lines in G pruned_branches => G closed ; 7. Smooth the sharp feature lines in G closed => G smooth.

37 Results Cube point cloud

38 Results Mobile phone point cloud

39 Results A larger detail of the mobile phone

40 Results The brick point cloud

41 Results Analysis

42 Results analysis

43 Conclusion Advantages Meshless, only the coordinates of the points are used Cluster the points, and practical for large point clouds Constitute a pre-process step for surface reconstruction.

44 The end, and Thank you!


Download ppt "Detection of closed sharp edges in point clouds Speaker: Liuyu Time:2007-09-27."

Similar presentations


Ads by Google