computing the shortest path on a polyhedral surface presented by: liu gang 2008.9.25

59
Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Upload: job-roberts

Post on 27-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Computing the shortest path on a polyhedral

surface

Presented by: Liu Gang2008.9.25

Page 2: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 3: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Overview of Presentation

Introduction Related works Dijkstra’s Algorithm Fast Marching Method Results

Page 4: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Introduction

Page 5: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Motivation Computing the shortest path between

two points s and t on a polyhedral surface S is a basic and natural problem

From the viewpoint of application: Robotics, geographic information

systems and navigation Establishing a surface distance metric

Page 6: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Related worksExact globally shortest path algorithms Shair and Schorr (1986) On shortest paths in polyhedral spaces.

O(n3logn) Mount (1984) On finding shortest paths on convex polyhedral. O(n2logn) Mitchell, Mount and Papadimitriou (MMP)(1987) The discrete

geodesic problem. O(n2logn) Chen and Han(1990) shortest paths on a polyhedron. O(n2)

Approximate shortest path algorithms Sethian J.A (1996) A Fast Marching Level Set Method for Monotonically

Advancing Fronts. O(nlogn) Kimmel and Sethian(1998) Computing geodesic paths on manifolds.

O(nlogn) Xin Shi-Qing and Wang Guo-Jin(2007) Efficiently determining a locally

exact shortest path on polyhedral surface. O(nlogn)

Page 7: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Exact globally shortest path algorithms Shair and Schorr (1986) On shortest paths in polyhedral spaces.

O(n3logn) Mount (1984) On finding shortest paths on convex polyhedral. O(n2logn) Mitchell, Mount and Papadimitriou (MMP)(1987) The discrete geodesic

problem. O(n2logn) Chen and Han(1990) shortest paths on a polyhedron. O(n2)

Approximate shortest path algorithms Sethian J.A (1996) A Fast Marching Level Set Method for Monotonically

Advancing Fronts. O(nlogn) Kimmel and Sethian(1998) Computing geodesic paths on manifolds.

O(nlogn) Xin Shi-Qing and Wang Guo-Jin(2007) Efficiently determining a locally

exact shortest path on polyhedral surface. O(nlogn)

Related works

Dijkstra's algorithm

Fast Marching Methods(FMM)

Page 8: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Algorithm

Page 9: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

Find shortest path from s to t.

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

Page 10: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

0

distance label

Page 11: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

0

distance label

delmin

Page 12: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

9

14

0

distance label

decrease key

X

X

X

Page 13: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

(0,9)

14

0

distance label

X

X

X

delmin

Page 14: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

(0,9)

14

0

X

X

X

Page 15: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

(0,9)

14

0

X

X

X

decrease key

X 33

Page 16: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

(0,9)

(0,14

)

0

X

X

X

X 33

delmin

Page 17: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

(0,9)

(0,14

)

0

X

X

X

X 33

44X

X

32

Page 18: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

9

(0,14

)

0

X

X

X

44X

delmin

X 33X

32

Page 19: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14

)

0

X

X

X

44X

35X

59 X

24

X 33X

32

Page 20: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

15

9

14

0

X

X

X

44X

35X

59 X

delmin

X 33X

(6,32)

Page 21: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15

)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

X 33X

(6,32

)

Page 22: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

delmin

X 33X

(6,32)

24

Page 23: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15

)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

24

X 50

X 45

X 33X

(6,32)

Page 24: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15

)

(0,9)

(0,14

)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

24

X 50

X(5, 45)

delmin

X 33X

(6,32)

Page 25: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14

)

0

X

X

X

44X

35X

59 XX 51

X

(6,34)

24

X 50

X (5,45

)

X 33X

(6,32

)

Page 26: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14

)

0

X

X

X

44X

35X

59 XX 51

X (3,34)

X 50

X (5,45)

delmin

X 33X

(6,32)

24

Page 27: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

X

(5,50)

X(5, 45)

X 33X

(6,32

)

Page 28: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

X

(5,50)

X(5, 45)

X 33X

(6,32

)

Page 29: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

X

(5,50)

X(5, 45)

X 33X

(6,32

)

Page 30: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Dijkstra's Shortest Path Algorithm

s

3

t

2

6

7

4

5

24

18

2

9

14

15 5

30

20

44

16

11

6

19

6

(0,15)

(0,9)

(0,14)

0

X

X

X

44X

35X

59 XX 51

X

(3,34)

X

(5,50)

X(5, 45)

X 33X

(6,32

)

Page 31: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Summary Dijkstra’s algorithm is to construct a

tree of shortest paths from a start vertex to all the other vertices on the graph.

Characteristics: 1. Monotone property: Every vertex is processed exactly once 2. When reach the destination, trace backward to find the shortest path.

Page 32: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

PreliminariesLet S be a triangulated

polyhedral surface in R3, defined by a set

of faces, edges and vertices.

Assume that the Surface S has n faces

and x0, x are two points on the

surface.

Face sequence: F is defined by a list of adjacent faces f1, f2,…, fm+1 such that fi and fi+1 share a common edge ei . Then we call the list of edges E=(e1,e2,…,em) an edge sequence.

Page 33: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Fast Marching Method(FMM) R. Kimmel

ProfessorDepartment of Computer

ScienceTechnion-Israel Institute of

TechnologyIEEE Transactions on Image Processing

J. A. Sethian

ProfessorDepartment of Mathematics

University of California, Berkeley

Norbert Wiener Prize in Applied Mathematics

Page 34: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Forest fire

Page 35: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Eikonal equation

Let be a minimal geodesic between and .

The derivative

is the fire front propagation direction.

In arclength parametrization .

Fermat’s principle:

Propagation direction = direction of steepest increase of

.

Geodesic is perpendicular to the level sets of on .

Page 36: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Eikonal equation

Eikonal equation (from Greek εικων)

Hyperbolic PDE with boundary

condition

Minimal geodesics are

characteristics.

Describes propagation of waves

in medium.

Page 37: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Fast marching algorithm

Initialize and mark it as black.

Initialize for other vertices and mark them as

green.

Initialize queue of red vertices .

Repeat

Mark green neighbors of black vertices as red (add to

)

For each red vertex

For each triangle sharing the vertex

Update from the triangle.

Mark with minimum value of as black (remove

from )

Until there are no more green vertices.

Return distance map .

Page 38: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Update step difference

Dijkstra’s update

Vertex updated from

adjacent vertex

Distance computed

from

Path restricted to graph

edges

Fast marching update

Vertex updated from

triangle

Distance computed

from and

Path can pass on mesh faces

Page 39: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Fast Marching Method cont.

Page 40: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

propagationUsing the intrinsic variable of the triangulation

Acute triangulation

The update procedure is given as follows

Page 41: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Fast Marching Method cont.

Acute triangulation guarantee that the consistent solution approximating the Viscosity solution of the Eikonal equation has the monotone property

Page 42: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Obtuse triangulation

Inconsistent solution if the mesh contains obtuse

triangles

Remeshing is costly

Page 43: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Obtuse triangulation cont.

Solution: split obtuse triangles by adding virtual connections to non-adjacent vertices

Page 44: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Obtuse triangulation cont.

Done as a pre-processing step in

Page 45: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Results (Good)

Page 46: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Results (Bad)

Page 47: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Why?

Page 48: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

More Flags for Keeping Track of an Advancing Wavefront

From Vertex : the shortest path to the vertex v goes via its adjacent vertex v’.

From Edge: the shortest path to the vertex v goes across the edge v1v2; p is the access point.

Page 49: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

More Flags for Keeping Track of an Advancing Wavefront

(a) From Left Part: edge v1v3 receives wavefront coming from theleft part of edge v1v2.

(b) From Right Part: Edge v3v2

receives wavefront coming fromthe right part of edge v1v2.

Page 50: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 51: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 52: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 53: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 54: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Backtracing Paths

Page 55: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 56: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 57: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25
Page 58: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Result

Page 59: Computing the shortest path on a polyhedral surface Presented by: Liu Gang 2008.9.25

Questions will be welcome !