Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf ·...

71
Voronoi Diagrams Robust and Efficient implementation Master’s Thesis Defense Nirav Patel Binghamton University Department of Computer Science Thomas J. Watson School of Engineering and Applied Science May 5th, 2005 Nirav Patel Voronoi Diagrams

Transcript of Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf ·...

Page 1: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Voronoi DiagramsRobust and Efficient implementation

Master’s Thesis Defense

Nirav Patel

Binghamton UniversityDepartment of Computer Science

Thomas J. Watson School of Engineering and Applied Science

May 5th, 2005

Nirav Patel Voronoi Diagrams

Page 2: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 3: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Motivation

”The Universal Spatial Data Structure” –FranzAurenhammer

Primary motivation: To obtain skeletal representations for twodimensional shapes to be converted to embroidery data by anautomated design system. Current methods employed by thatsystem produced skeletons somewhat unreliably due to theirinability to handle degenerate cases where intricate detail waspresent in the input shape.

Nirav Patel Voronoi Diagrams

Page 4: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Applications of Voronoi diagram

The Voronoi diagram is one of the most fundamental and versatiledata structures in computational geometry. It’s many applicationsinclude:

• Collision detection

• Pattern recognition

• Geographical optimization

• Geometric clustering

• Closest pairs algorithms

• k-nearest-neighbor queries

Nirav Patel Voronoi Diagrams

Page 5: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Definition of Voronoi Diagram

Definition

For a set P of points p1, p2, . . . , pn in the Euclidean plane, thepartition Vor (P) of the plane into regions R(p1),R(p2), . . . ,R(pn)associated with each member of P, such that each point in aregion R(pi ), 1 ≤ i ≤ n is closer to pi than any other point in P.

Nirav Patel Voronoi Diagrams

Page 6: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Structure of a Voronoi diagram

Voronoi Vertex

Generators

Ordinary Voronoi Edge

Infinite Voronoi Edges

A region that corresponds to a generator pi is called it’s Voronoiregion and is denoted as R (pi ).

Nirav Patel Voronoi Diagrams

Page 7: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Structure of a Voronoi diagram

Voronoi Vertex

Generators

Ordinary Voronoi Edge

Infinite Voronoi Edges

A common boundary of two Voronoi regions is called a Voronoiedge.

Nirav Patel Voronoi Diagrams

Page 8: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Structure of a Voronoi diagram

Voronoi Vertex

Generators

Ordinary Voronoi Edge

Infinite Voronoi Edges

A point at which the boundaries of three or more Voronoi regionsmeet is called a Voronoi vertex.

Nirav Patel Voronoi Diagrams

Page 9: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of Voronoi diagram

1 A Voronoi edge between two Voronoi regions R(pi ) and R(pj)is a portion of the perpendicular bisector of the line segmentconnecting the two generators pi and pj .

2 A Voronoi vertex is the center of the circle that passesthrough the three generators whose regions are incident to thevertex, i.e., it is the circumcenter of the triangle with thosegenerators as the vertices.

3 A Voronoi region R (pi ) is a convex (possibly unbounded)polygon containing the corresponding generator pi .

Nirav Patel Voronoi Diagrams

Page 10: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of Voronoi diagram

1 A Voronoi edge between two Voronoi regions R(pi ) and R(pj)is a portion of the perpendicular bisector of the line segmentconnecting the two generators pi and pj .

2 A Voronoi vertex is the center of the circle that passesthrough the three generators whose regions are incident to thevertex, i.e., it is the circumcenter of the triangle with thosegenerators as the vertices.

3 A Voronoi region R (pi ) is a convex (possibly unbounded)polygon containing the corresponding generator pi .

Nirav Patel Voronoi Diagrams

Page 11: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of Voronoi diagram

1 A Voronoi edge between two Voronoi regions R(pi ) and R(pj)is a portion of the perpendicular bisector of the line segmentconnecting the two generators pi and pj .

2 A Voronoi vertex is the center of the circle that passesthrough the three generators whose regions are incident to thevertex, i.e., it is the circumcenter of the triangle with thosegenerators as the vertices.

3 A Voronoi region R (pi ) is a convex (possibly unbounded)polygon containing the corresponding generator pi .

Nirav Patel Voronoi Diagrams

Page 12: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Correlation between Voronoi diagram and Primary cyclestructure

(a) (b)

Figure: (a) Voronoi Diagram (V ,E ) (b) Corresponding primary cyclestructure G = (V ,E ,C )

Nirav Patel Voronoi Diagrams

Page 13: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 14: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Various algorithms for Voronoi computation

”It is notoriously difficult to obtain a practicalimplementation of an abstractly described geometricalgorithm” –Steven Fortune

• Sweep line

• Divide-and-conquer

• Spiral-search

• Three dimensional convex hull

• Incremental

Nirav Patel Voronoi Diagrams

Page 15: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Sweep line algorithms

• Proposed by Steven Fortune.

• A vertical line (also called a sweep line) is swept across theplane, from left to right.

• The Voronoi diagram is incrementally constructed as pointgenerators are encountered by the sweep line.

Nirav Patel Voronoi Diagrams

Page 16: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Snapshot of execution of Sweepline algorithm

Vertical sweep line

Point generators

1

1Source:http://www.diku.dk/hjemmesider/studerende/duff/Fortune/Nirav Patel Voronoi Diagrams

Page 17: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of sweep line algorithms

• Elegant solution as in easy to understand and easy toimplement

• Shortcomings when dealing with degenerate cases like morethan three co-circular point generators

• Relies heavily on the accuracy of numerical calculations, whichlimits its use to theoretical purposes

Nirav Patel Voronoi Diagrams

Page 18: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Divide and conquer algorithms

1 The set of point generators, P,is split by a dividing line intosubsets L and R of about thesame size.

2 The Voronoi diagrams Vor (L)and Vor (R) are computedrecursively.

3 Vor (L) and Vor (R) are mergedto get the Vor (P).

Nirav Patel Voronoi Diagrams

Page 19: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of divide-and-conquer algorithms

• Implementation details are somewhat complicated

• Numerical errors are likely by construction

• The average and worst case time complexity is Ω (n log n) andit is possible to achieve better performance using othermethods.

Nirav Patel Voronoi Diagrams

Page 20: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Incremental algorithms

Obtain Vor (P) from Vor (P − q) by inserting the site q.

Nirav Patel Voronoi Diagrams

Page 21: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Properties of incremental algorithms

• As the region of q can have up to n − 1 edges, for n = |P|,this leads to a runtime of O

(n2

). Several authors have

further tuned the technique of inserting Voronoi regions,producing efficient and numerically robust algorithms thathave average time complexity of O (n)

• The implementation of incremental algorithms is simplecompared to other techniques.

Nirav Patel Voronoi Diagrams

Page 22: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Summary of approaches to deal with numerical inaccuracy

Reliance on numerical values

Heavy

Exact ArithmeticThe topological structure is decided based on the signs of results ofnumerical computations. Two strategies:

1 Implementing the algorithms on top of a model of exactarithmetic capable of infinite precision computation.

2 Restricting the precision of input data (e.g., using only 24 bitintegers) such that other techniques may be used thatguarantee correctness of specific mathematical operations onthat data.

Nirav Patel Voronoi Diagrams

Page 23: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Summary of approaches to deal with numerical inaccuracy

Reliance on numerical values

Medium

Tolerance basedEvery numerical computation is accompanied by calculation of anupper bound on its error. Based on this, the result is judged to beeither reliable or unreliable.

• Program code is comparatively complex because there mustbe two branches for processing after each calculation, oneeach for the reliable and unreliable case

• Software is less portable because the errors are often tied to aparticular computation environment

Nirav Patel Voronoi Diagrams

Page 24: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Summary of approaches to deal with numerical inaccuracy

Reliance on numerical values

Small

Topology OrientedDoes not rely directly on numerical computations because of theassumption that there is error associated with all numeric computa-tions.

• Derived topological properties are given higher priority andonly the numerical computations consistent with that derivedtopology are accepted

• This approach can guarantee correctness at a relatively lowcost since models of exact computation or restrictions oninput are not required

Nirav Patel Voronoi Diagrams

Page 25: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 26: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Overall approach to ensure robustness

1 Reduce the algorithm into simple routines with preciselydefined topological requirements.

2 Ensure every routine achieves its goals and leaves the Voronoidata structures in a topologically consistent state.

3 Build upon the reliability of smaller routines to insert eachgenerator while maintaining the topological consistency andcorrectness of the resulting Voronoi diagram.

Nirav Patel Voronoi Diagrams

Page 27: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Overall approach to ensure robustness

1 Reduce the algorithm into simple routines with preciselydefined topological requirements.

2 Ensure every routine achieves its goals and leaves the Voronoidata structures in a topologically consistent state.

3 Build upon the reliability of smaller routines to insert eachgenerator while maintaining the topological consistency andcorrectness of the resulting Voronoi diagram.

Nirav Patel Voronoi Diagrams

Page 28: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Overall approach to ensure robustness

1 Reduce the algorithm into simple routines with preciselydefined topological requirements.

2 Ensure every routine achieves its goals and leaves the Voronoidata structures in a topologically consistent state.

3 Build upon the reliability of smaller routines to insert eachgenerator while maintaining the topological consistency andcorrectness of the resulting Voronoi diagram.

Nirav Patel Voronoi Diagrams

Page 29: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Steps for robustness of math routines

1 Avoid using thresholds

2 Use all topological information available

3 Back-up routines for special case handling

4 For border-line cases use two different methods and choose amore reliable value based on topology

Nirav Patel Voronoi Diagrams

Page 30: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Example math routine

Computing point on a bisector for two line segments

l 1

l 2

pbpb

l 1

l 2

l 3

(a) (b)

Figure: Computing bisector point pb of lines l1 and l2 (a) normal case (b)nearly parallel lines, l3 is the generated line

Nirav Patel Voronoi Diagrams

Page 31: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 32: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Numerical and Topological Process

u1

u2

u3

u4u5

u6

u7

u8

u9 u10

(a) (b)

(c)

1 u1, u2, u3, u4 are thevertices to be removed

2 New vertices and newedges are generated

3 New cycle is formed

Nirav Patel Voronoi Diagrams

Page 33: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Numerical and Topological Process

u1

u2

u3

u4u5

u6

u7

u8

u9 u10

(a) (b)

(c)

1 u1, u2, u3, u4 are thevertices to be removed

2 New vertices and newedges are generated

3 New cycle is formed

Nirav Patel Voronoi Diagrams

Page 34: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Numerical and Topological Process

u1

u2

u3

u4u5

u6

u7

u8

u9 u10

(a) (b)

(c)

1 u1, u2, u3, u4 are thevertices to be removed

2 New vertices and newedges are generated

3 New cycle is formed

Nirav Patel Voronoi Diagrams

Page 35: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 36: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Types of Vertices and Edges

Line Generators

Parabolic Edges

Endpoint separators

Apex Vertex

Separator Vertices

Nirav Patel Voronoi Diagrams

Page 37: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Making End point regions

When computing a Voronoi diagram the endpoints of linesegments are considered to be separate generators which arealready inserted into a previously created Voronoi diagram (i.e., thefirst step of this approach).Topological requirement: To generate two new vertices on theprimary cycle of each endpoint corresponding to the open segment.

Nirav Patel Voronoi Diagrams

Page 38: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Making End point regions

R p1

R p2

Separators

R p1 R p2

ekSeparator vertices

(a)

(b)

Re k

Nirav Patel Voronoi Diagrams

Page 39: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Making End point regions

R p1

R p2

Separators

R p1 R p2

ekSeparator vertices

(a)

(b)

Re k

Nirav Patel Voronoi Diagrams

Page 40: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Marking vertices to be removed

Topological properties applicable to this routine:

• The vertices and edges to be removed form a tree structure.

• The tree structure has a unique path between the regions ofthe endpoints pi and pj .

• The path goes between the two groups of regions; one is tothe right of the open segment ek and the other is to the left.

• Any separator is not completely removed.

Nirav Patel Voronoi Diagrams

Page 41: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Marking vertices to be removed

Nirav Patel Voronoi Diagrams

Page 42: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Removal of a whole region

• When marking vertices and edges for removal in somesituations it is possible that all vertices corresponding to aparticular cycle are marked for deletion.

• Extra Voronoi vertices are inserted into the diagramcorresponding to the intersection of the line segment joiningthe Voronoi point generators and the bisector of that segment.

Nirav Patel Voronoi Diagrams

Page 43: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Removal of a whole region

Nirav Patel Voronoi Diagrams

Page 44: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Generating new vertices

Generating new Voronoi vertices on edges connected to thosemarked for deletion while maintaining the topological consistencyof regions surrounding the tree marked for deletion.

Nirav Patel Voronoi Diagrams

Page 45: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Forming the new cycle for generator

The primary cycle for the new generator ek is created.

Nirav Patel Voronoi Diagrams

Page 46: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 47: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Finding the nearest generator

A method using grid data structures was implemented to find thenearest generator more efficiently. The generators already insertedwithin the Voronoi diagram are placed into in a regular grid (i.e.,each cell is of equal size). When a new generator is to be insertedits corresponding cell in the grid is located. The generators in thiscell and its surrounding cells are searched to determine the nearestgenerator. The grid resolution depends on the width w and heighth of the bounding box of generators. There are w

√n ∗ h

√n cells in

the grid.

Nirav Patel Voronoi Diagrams

Page 48: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Reordering of generators

To order the insertion of generators such that the size of thestructure to be deleted remains close to constant. This can beachieved if generators are uniformly distributed during insertion.Method:

1 All generators are placed on a regular grid where each grid cellhas an associated number m indicating the number ofgenerators present within the cell.

2 The grid cells are then sorted in ascending order based on m.

3 The generators are ordered according to the index of their gridcell in the sorted list and by x-coordinate for generators thatare within the same grid cell.

Nirav Patel Voronoi Diagrams

Page 49: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Trimming/Skeletonization algorithm

• A simple approach: Compute the orientation of each Voronoivertex with respect to the closed contour associated with aregion.

• Multiple Voronoi vertices lie on boundary points of the region.Due to numerical inaccuracy, determining the orientation ofthese points with respect to the contour becomes unreliable.

• Proposed approach: Label different types of vertices andedges when computing Voronoi diagram. Using this labeling ifat least one of vertices can be determine to be ”in” or ”out”then all the other vertices in the primary cycle can be reliablydetermined.

Nirav Patel Voronoi Diagrams

Page 50: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Converge Vertices - Primary cycle structure

l 1

l 2

separator converge

separator

normal

p1R p1

l 1

l 2

p1

l 1

l 2

p1

INOUT IN OUT

(a)

(b) (c)

Key: Generators Voronoi Vertices Voronoi Edges Skeleton Vertices

Nirav Patel Voronoi Diagrams

Page 51: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Converge Vertices - Skeleton

l 1

l 2

separator converge

separator

normal

p1R p1

l 1

l 2

p1

l 1

l 2

p1

INOUT IN OUT

(a)

(b) (c)

Key: Generators Voronoi Vertices Voronoi Edges Skeleton Vertices

Nirav Patel Voronoi Diagrams

Page 52: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Parallel Vertices - Primary cycle structure

l 1 l 2

separatorparallel

p1

R p1separatorparallel

IN

OUT

l 1 l 2

p1IN

OUT

(a)

(b)

Key: Generators Voronoi Vertices Voronoi Edges Skeleton VerticesNirav Patel Voronoi Diagrams

Page 53: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Parallel Vertices - Skeleton

l 1 l 2

separatorparallel

p1

R p1separatorparallel

IN

OUT

l 1 l 2

p1IN

OUT

(a)

(b)

Key: Generators Voronoi Vertices Voronoi Edges Skeleton Vertices

Nirav Patel Voronoi Diagrams

Page 54: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 55: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Automated embroidery generation

1 Voronoi diagram is constructed for a given shape.

2 Skeleton for the given shape is generated from the Voronoidiagram.

3 The automation system then uses it in conjunction withoutline and thickness/distance transform information tointerpret and convert it to higher level embroidery designprimitives.

4 These primitives are then used to generate detailed sequencesof individual stitch locations that when sewn on embroideryequipment reproduce a visual representation of the shape inan aesthetically pleasing manner.

Nirav Patel Voronoi Diagrams

Page 56: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Generated stitch data for automated embroidery

Nirav Patel Voronoi Diagrams

Page 57: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Structural Indexing

A rich source of information in visual data is present in thegeometric structure of two dimensional shape. Structural Indexingtries to exploit this fact and the Voronoi skeletal is useful here tofurther decompose the structure of a shape. In the implementationpresented here, Voronoi diagrams are used generate the skeletonsof shapes using their edge contours as discussed previously. Theedge contours are generated either from scanned images or fromTrue Type Fonts.

Nirav Patel Voronoi Diagrams

Page 58: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Metrics used for structural indexing

1

32

Key:

Angle of Concavity

CEP Norms

CEP Shape Vectors

Characteristic edge points (CEPs)

Nirav Patel Voronoi Diagrams

Page 59: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Steps for structural indexing

1 The Voronoi skeletons are analyzed and converted to a set ofskeletal nodes and connecting skeletal branches.

2 Several geometric metrics are computed from these skeletalnodes.

3 The metrics related to a skeleton node are encoded as ajunction node and saved within a GTree (a databasesupporting multidimensional range queries).

4 Given the skeletal representation of an object, similar objectscan be retrieved from the database.

Nirav Patel Voronoi Diagrams

Page 60: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 61: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 62: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Types of tests peformed

Manual input

• Testing particular parts of code.• Creating degenerate cases.• Gaining better visual understanding of the

functioning of the algorithm.

Random input

• Large scale testing of the code. The data-setsusually ranged from 10,000 to 100,000generators.

• Comparing performance of code with otherimplementations.

True Type Font outlines

• Automated testing of all the characters for afont at various sizes, orientations and positionsin the plane.

• 12 million test cases in one such test.

Nirav Patel Voronoi Diagrams

Page 63: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Random point generators - Test results

SizeNo

reorderingReordering

based on grid

10,000 15.67 12.4220,000 42.32 26.7950,000 94.23 67.5370,000 123.80 92.20

100,000 219.32 127.32

Point generator test

CPU Time for Voronoi diagram Computation

Point Generator Test

0.00

50.00

100.00

150.00

200.00

250.00

10,00

0

20,00

0

50,00

0

70,00

0

100,0

00

No. of points

CP

U ti

me

in m

illis

econ

ds

No reordering

Reordering based ongrid

Nirav Patel Voronoi Diagrams

Page 64: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Random segment generators - Test results

SizeNo

reordering

Reordering based on

grid10,000 856.40 730.0020,000 2130.50 1320.6050,000 4469.80 3694.0070,000 6893.10 4870.20

100,000 9863.50 6850.40

Line generator test

CPU Time for Voronoi diagram Computation

Line generator test

0.00

2000.00

4000.00

6000.00

8000.00

10000.00

12000.00

10,00

0

20,00

0

50,00

0

70,00

0

100,0

00

No. of lines

CP

U ti

me

in m

illis

econ

ds

No reordering

Reordering based ongrid

Nirav Patel Voronoi Diagrams

Page 65: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Comparision Tests

The code was then tested against existing publicly availableimplementations:

1 Seel’s avd: This implementation is based on the exactarithmetic library from LEDA. Hence, the output of thealgorithm can be verified if the implementation is correct.

2 Sethia’s pvd: It is restricted to clean polygon data that formsthe boundary of a multiple-connected area. pvd cannot dealwith individual line segments.

Nirav Patel Voronoi Diagrams

Page 66: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Comparison Test results

Size avd pvd ours64 28.6000 0.0920 0.0590

128 46.2200 0.0910 0.0609256 69.8600 0.0970 0.0625512 127.0303 0.0979 0.0640

1024 242.0900 0.0982 0.06582048 461.3000 0.0997 0.06804096 n/a 0.1020 0.07108192 n/a 0.1090 0.0760

16384 n/a 0.1260 0.083032768 n/a 0.1330 0.0910

CPU Time (per segment) for different Voronoi codes

Clean polygon generator comparision test

CPU time comparision

0.00000.02000.04000.06000.08000.10000.12000.1400

64 128

256

512

1024

2048

4096

8192

1638

4

3276

8

No. of line segments

CP

U ti

me

(per

seg

men

t) in

m

illis

econ

ds

pvdours

Nirav Patel Voronoi Diagrams

Page 67: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Nirav Patel Voronoi Diagrams

Page 68: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Contributions of the thesis

• Implemented existing algorithms and techniques for Voronoidiagrams of point, segment and polygon generators by fillingout missing details in the description of algorithms

• Extended the techniques to enhance efficiency of execution

• Ensuring robustness of the algorithm in presence of numericalinaccuracy resulting from floating point calculations

• Demonstrated the application of Voronoi diagrams

Nirav Patel Voronoi Diagrams

Page 69: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Future work

• Somehow manage to get Held’s code for comparison!

• Extending the work to compute Voronoi diagrams for• Curves• Points, segments and polygons in 3-dimensional space

• Testing using different types of structures as input data likespikes, circles, eclipse.

Nirav Patel Voronoi Diagrams

Page 70: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Questions

Nirav Patel Voronoi Diagrams

Page 71: Voronoi Diagrams Robust and Efficient implementationreckert/Voronoi-presentation.pdf · 2006-01-16 · Properties of Voronoi diagram 1 A Voronoi edge between two Voronoi regions R(p

Thank You

Nirav Patel Voronoi Diagrams