550 likes | 784 Views
Trajectory Segmentation. Marc van Kreveld. Segmentation. Cutting a trajectory in pieces that are “similar” within the piece Similar in: heading, speed, curvature, sinuosity, …. Why segmentation?.
E N D
Trajectory Segmentation Marc van Kreveld
Segmentation • Cutting a trajectory in pieces that are “similar” within the piece • Similar in: heading, speed, curvature, sinuosity, …
Why segmentation? • Explaining behavior of a moving entity: one type of behavior may be characterized by similarity of movement • Detecting outliers: short segments in a segmentation may be caused by outlying observations
Segmentation in other areas • Image segmentation: partition a digital image in parts with similar characteristics (hopefully meaningful pieces)
Segmentation in other areas • Time series segmentation: partition time series data into pieces with similar characteristics
Segmentation in other areas • Time series segmentation: partition time series data into pieces with similar characteristics • Assume a series of n data points is given and k segments are desired n = 20 k = 4 Minimize sum-of-distances or sum-of-squared distances for piecewise-constant or piecewise-linear approximations O(n2k) Richard Bellman: On the approximation of curves by line segments using dynamic programming. Communications of the ACM (1961)
Segmentation in other areas • Time series segmentation: partition time series data into pieces with similar characteristics • Assume a series of n data points is given and k segments are desired n = 20 k = 4 Minimize sum-of-distances or sum-of-squared distances for piecewise-constant or piecewise-linear approximations O(n2k) Richard Bellman: On the approximation of curves by line segments using dynamic programming. Communications of the ACM (1961)
Segmentation of trajectories • Can be treated as trajectory simplification: reduce (minimize) the number of vertices that represents a trajectory Gill Barequet, Danny Chen, OvidiuDaescu, Michael Goodrich, Jack Snoeyink: Efficiently approximating polygonal paths in three and higher dimensions. Algorithmica (2002) Hu Cao, OuriWolfson, GoceTrajcevski: Spatio-temporal data reduction with deterministic error bounds. VLDB Journal (2006) Joachim Gudmundsson, JyrkiKatajainen, Damian Merrick, CahyaOng, Thomas Wolle: Compressing spatio-temporal trajectories. ISAAC (2007) FalkoSchmid, Kai-Florian Richter, Patrick Laube: Semantic trajectory compression. SSTD (2009)
Segmentation of trajectories • Can be treated as trajectory simplification: reduce (minimize) the number of vertices that represents a trajectory The segments are the subtrajectories that would be replaced by a single edge in the simplification
Segmentation: two steps back • Cutting a trajectory in pieces that are “similar” within the piece (similar in: heading, speed, curvature, sinuosity, … ) • We want few pieces • How do we define “similar”? Next part based on: MaikeBuchin, Anne Driemel, Marc van Kreveld, Vera Sacristan: An algorithmic framework for segmenting trajectories based on spatio-temporal criteria. SIGSPATIAL (2010)
Segmentation: heading • On every edge of the trajectory, heading is well-defined • Similarity can mean: in the same cardinal direction Northbound West East South
Segmentation: heading • On every edge of the trajectory, heading is well-defined • Similarity can mean: in the same cardinal direction Northbound West East South
Segmentation: heading • On every edge of the trajectory, heading is well-defined • Similarity can mean: in the same cardinal direction Northbound West East South
Segmentation: heading • On every edge of the trajectory, heading is well-defined • Similarity can mean: in the same cardinal direction Northbound bad idea West East We would segment at every vertex, while we want one single segment South over-segmentation
Segmentation: heading • Use relative directions: We require that within any single segment the headings are within an angle /2 everywhere
Segmentation: heading • Use relative directions: We require that within any single segment the headings are within an angle /2 everywhere
Segmentation: heading • Use relative directions: We require that within any single segment the headings are within an angle /2 everywhere
Segmentation: heading • Use relative directions: We require that within any single segment the headings are within an angle /2 everywhere
Segmentation: heading • Use relative directions: We require that within any single segment the headings are within an angle /2 everywhere
Segmentation: speed • Linear interpolation of position between the vertices makes speed piecewise constant (constant on every edge) • Segmentation can be based on absolute intervals like[0-2], [2-5], [5-10], [10-15], [15-20], [20-30], [30-..] km/h 31 29 31 29 31 29 31 29 over-segmentation
Segmentation: speed • Linear interpolation of position between the vertices makes speed piecewise constant (constant on every edge) • Segmentation can be based on absolute intervals like[0-2], [2-5], [5-10], [10-15], [15-20], [20-30], [30-..] km/h • Segmentation can also be based on relative speeds: within any single segment the speed ratio is at most, say, 1.5(alternatively: the speed difference is at most 10 km/h)
Segmentation: heading and speed • Suppose require that within any single segment: • the headings are within an angle /2 everywhere, and • the speed ratio is at most 2 speed speed speed heading
Segmentation • In all three cases (heading, speed, heading&speed), a greedy approach works: make each next segment as long as possible • Easy from the algorithms perspective: O(n) time for a trajectory with n vertices Why does the greedy approach work?Because any sub-segment of a valid segment is also a valid segment. Therefore, it can never hurt to let a segment extend as far as it can if the goal is a minimum number of segments.
Segmentation: attributes • Heading and speed are examples of attributes that are defined at (almost) every point on the trajectory • Location , curvature, sinuosity, and curviness are also attributes need a framework to handle different attributes and ways of combining them
Segmentation: framework • Attribute: some value defined at every point on the trajectory • Criterion: restriction on allowed values of an attribute within the same segment • Segmentation on any combination (conjunction or disjunction) of criteria • Optimal (minimum number of segments) • Guaranteed properties within each segment
Segmentation: location • The attribute “location” is defined by a pair of values (x,y)(for trajectories in 2D) • Possible criteria: • Any two points within one segment are no more than 5 km apart (diameter criterion) • For any segment, there is a point in the plane that is within3 km of every point in the segment (enclosing disk criterion)
Segmentation: location • The attribute “location” is defined by a pair of values (x,y)(for trajectories in 2D) • Possible criteria: • Any two points within one segment are no more than 5 km apart (diameter criterion) • For any segment, there is a point in the plane that is within3 km of every point in the segment (enclosing disk criterion)
Segmentation: location • An optimal segmentation on the diameter or disk criterion for location requires segmentation potentially anywhere on edges • We can segment optimally on these criteria in O(n log n) time • Also in combination with heading and speed criteria
Segmentation: algorithm • Greedy algorithm for optimal segmentation start
Segmentation: algorithm • Greedy algorithm for optimal segmentation start
Segmentation: algorithm • Greedy algorithm for optimal segmentation good start
Segmentation: algorithm • Greedy algorithm for optimal segmentation start
Segmentation: algorithm • Greedy algorithm for optimal segmentation good start
Segmentation: algorithm • Greedy algorithm for optimal segmentation start
Segmentation: algorithm • Greedy algorithm for optimal segmentation start good
Segmentation: algorithm • Greedy algorithm for optimal segmentation start
Segmentation: algorithm • Greedy algorithm for optimal segmentation start not good
Segmentation: algorithm • Greedy algorithm for optimal segmentation start not good good
Segmentation: algorithm • Greedy algorithm for optimal segmentation start not good good Binary search here for the last good vertex
Segmentation: algorithm • Greedy algorithm for optimal segmentation start not good good Binary search here for the last good vertex
Segmentation: algorithm • Greedy algorithm for optimal segmentation start not good good Decide precisely where on the edge the end is
Segmentation: algorithm • Greedy algorithm for optimal segmentation We have found a maximal segment
Segmentation: algorithm • Greedy algorithm for optimal segmentation start We have found a maximal segment; iterate
Segmentation: algorithm • Suppose we have an algorithm for Test(s,vi), which tests whether the subtrajectory from s to vi is good or not • Suppose we have an algorithm for Furthest(s,vj), which returns the furthest point on the edge vj-1vj
Segmentation: algorithm 1. while s ≠ vn 2. { 3. a = 1; 4. while ( i+a ≤ n && Test(s,vi+a) ) 5. { a = 2a; } 6. j = binary search in [ i+a/2, min(i+a,n) ] such that Test(s,vj-1) = true && Test(s,vj) = false 7. q = Furthest(s,vj) 8. Accept the subtrajectory from s to q as the next segment 9. s = q; i = j – 1 10. }
Segmentation: algorithm • Assume that Test runs in T(m) time and Furthest in F(m) time on a subtrajectory with m vertices • Then optimal segmentation takes O( T(n) log n + F(n) ) time • For almost all criteria we have, T(n) = F(n) = O(n) optimal segmentation takes O( n log n ) time
Segmentation: more attributes • Curvature3-point estimators • Sinuosity • Detour • Winding • Curviness
Segmentation: more attributes • Curvature3-point estimators • Sinuosity • Detour • Winding • Curviness
Segmentation: more attributes • Curvature3-point estimators • Sinuosity • Detour: arc-length divided by distance • Winding: angular range of heading • Curviness: total angular change in some neighborhood Absolute or relative criteria specify bounds on the attribute values
Segmentation • For any logical combination (conjunction, disjunction) for all criteria given, we can compute an optimal segmentation in O(n log n) time, for a trajectory with n vertices we just combine the outcome of the different Test and Furthest functions of each criterion