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 = 20k = 4
Minimize sum-of-distances or sum-of-squared distances for piecewise-constant or piecewise-linear approximations
Richard Bellman: On the approximation of curves by line segments using dynamic programming. Communications of the ACM (1961)
O(n2 k)
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 = 20k = 4
Minimize sum-of-distances or sum-of-squared distances for piecewise-constant or piecewise-linear approximations
Richard Bellman: On the approximation of curves by line segments using dynamic programming. Communications of the ACM (1961)
O(n2 k)
Segmentation of trajectories• Can be treated as trajectory simplification: reduce (minimize)
the number of vertices that represents a trajectory
Gill Barequet, Danny Chen, Ovidiu Daescu, Michael Goodrich, Jack Snoeyink: Efficiently approximating polygonal paths in three and higher dimensions. Algorithmica (2002)
Hu Cao, Ouri Wolfson, Goce Trajcevski: Spatio-temporal data reduction with deterministic error bounds. VLDB Journal (2006)
Joachim Gudmundsson, Jyrki Katajainen, Damian Merrick, Cahya Ong, Thomas Wolle: Compressing spatio-temporal trajectories. ISAAC (2007)
Falko Schmid, 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:
Maike Buchin, 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
EastWest
South
Segmentation: heading• On every edge of the trajectory, heading is well-defined• Similarity can mean: in the same cardinal direction
Northbound
EastWest
South
Segmentation: heading• On every edge of the trajectory, heading is well-defined• Similarity can mean: in the same cardinal direction
Northbound
EastWest
South
Segmentation: heading• On every edge of the trajectory, heading is well-defined• Similarity can mean: in the same cardinal direction
Northbound
EastWest
South We would segment at every vertex, while we want one single segment
bad idea
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 within
3 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 within
3 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
start
good
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
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
goodnot good
Segmentation: algorithm• Greedy algorithm for optimal segmentation
start
goodnot good
Binary search here for the last good vertex
Segmentation: algorithm• Greedy algorithm for optimal segmentation
start
Binary search here for the last good vertex
good
not good
Segmentation: algorithm• Greedy algorithm for optimal segmentation
start
Decide precisely where on the edge the end is
good
not good
Segmentation: algorithm• Greedy algorithm for optimal segmentation
We have found a maximal segment
Segmentation: algorithm• Greedy algorithm for optimal segmentation
We have found a maximal segment; iterate
start
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: algorithm1. 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 segment9. s = q; i = j – 110. }
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• Curvature
3-point estimators
• Sinuosity– Detour– Winding
• Curviness
Segmentation: more attributes• Curvature
3-point estimators
• Sinuosity– Detour– Winding
• Curviness
Segmentation: more attributes• Curvature
3-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
Segmentation: algorithmic approach• Formalize the problem at hand using well-defined concepts
before thinking about solutions
• Try to ensure that the problem statement is such that the output has guaranteed properties that can be proved– Guarantees in within-segment similarity– Guarantee on number of segments (minimum)
• Search for the most efficient (scalable) algorithm– Proof of running time
Segmentation: what’s next?• Can we make the criteria more robust, to deal with
real-World data?
• Can we extend the approach to include criteria for the environment in the segmentation?
• Can behavioral characteristics indeed be stated as combinations of criteria based on basic attributes?
Possibly, but not easily
Probably
Unknown