A Map Generation Algorithm using Low Frequency Vehicle Position Data Albert Steiner, IDP, Zurich University of Applied Sciences Axel Leonhardt, Technische Universität München (now with PTV AG)
[email protected] |
[email protected]
TRB 90th Annual Meeting, Washington, D.C., USA Session 725 – Innovations in Map Matching and Routing, January 26, 2011
Contents • Motivation and Goals • Available data • The overall process: From raw FCD to an estimate of the road network • A closer look on some important steps • Results • Summary and outlook 2
Motivation and Goals • Automated generation of road maps • Make use of already available vehicle position data – large data set – low frequency only approx. 1 position per 30 seconds
• Approach specifically designed for low frequency data • „Free“ map for further research and applications
3
The Overall Process
4
The Overall Process
5
Data available (without any processing) Single data point: 𝜑𝑗 , 𝜆𝑗 , ∆𝑡𝑗
𝑖
Latitude [°]
probable true path (inferred manually) P2: 02:11:21
P3: 02:11.57 naive linear Connection P1: 02:10.47
de[°] [°] Longitute 6
The Overall Process
7
Variables computed from raw data Consider a 3-tuple of points 𝑗 − 1 to 𝑗 + 1 Headings and distances
Input data
𝛼𝑗−1,𝑗 𝛼𝑗,𝑗+1
𝜑𝑗−1 , 𝜑𝑗 , 𝜑𝑗+1 𝜆𝑗−1 , 𝜆𝑗 , 𝜆𝑗+1 Spherical geometry
Parameters
∆𝛼𝑗−1,𝑗+1 = 𝛼𝑗,𝑗+1 − 𝛼𝑗−1,𝑗
𝑑𝑗−1,𝑗 𝑑𝑗,𝑗+1
Average velocities
𝑣𝑗−1,𝑗
Time differences
∆𝑡𝑗−1 , ∆𝑡𝑗 , ∆𝑡𝑗+1
𝜃
Change of heading
∆𝑡𝑗−1,𝑗 = ∆𝑡𝑗 − ∆𝑡𝑗−1
𝑑𝑗−1,𝑗 = ∆𝑡𝑗−1,𝑗
𝑣𝑗,𝑗+1 =
𝑑𝑗,𝑗+1 ∆𝑡𝑗,𝑗+1
∆𝑡𝑗,𝑗+1 = ∆𝑡𝑗+1 − ∆𝑡𝑗
Contribution of point j to every possible heading 𝛼0
𝑤𝑗−1,𝑗 𝑤𝑗,𝑗+1 𝑤 = 𝑤 𝑗 𝑗−1,𝑗 +𝑤𝑗,𝑗+1 Possible heading
𝛼0 ∈ 0°, 1°, … , 359°
𝒘𝒋−𝟏,𝒋 = exp −𝜃𝛼 ∙ 𝛼𝑗−1,𝑗 − 𝛼0
⋅ exp −𝜃𝑡 ∙ Δ𝑡𝑗−1,𝑗 ⋅ 𝟙𝑣,Δ𝛼
𝒘𝒋,𝒋+𝟏 = exp −𝜃𝛼 ∙ 𝛼𝑗,𝑗+1 − 𝛼0
⋅ exp −𝜃𝑡 ∙ Δ𝑡𝑗,𝑗+1 ⋅ 𝟙𝑣,Δ𝛼
8
The Overall Process
9
Capturing detailed heading information → array W 𝐼 𝐽𝑖 −1
𝑊 𝑥𝑟 , 𝑦𝑠 , 𝛼0 =
𝑤𝑗 𝛼𝑗−1,𝑗 , 𝛼𝑗,𝑗+1 , Δ𝑡𝑗−1,𝑗 , Δ𝑡𝑗,𝑗+1 𝛼0 , 𝜃, 𝑥𝑗 ∈ 𝑥𝑟 , 𝑥𝑟+1 , 𝑦𝑗 ∈ 𝑦𝑠 , 𝑦𝑠+1 𝑖=1 𝑗=2
Area under investigation 𝑥min ≤ 𝑥𝑟 < 𝑥𝑟+1 < 𝑥max 𝑥min = −2050 m 𝑥max = −950 m 𝑦min ≤ 𝑦𝑠 < 𝑦𝑠+1 < 𝑦max 𝑦min = −850 m 𝑦max = +50 m in relation to 𝑥0 = 0 m, 𝑦0 = 0 m at 𝜆0 = 11.58°E, 𝜑0 = 48.14°N
359°
𝑦 𝑦max
𝛼0 0° 𝑦min 𝑥min
𝑥𝑟 , 𝑥𝑟+1
𝑥max
𝑥
Possible heading 𝛼0 ∈ 0°, 1°, … , 359°
10
Examples of slides of W for different 𝜶𝟎
𝜶𝟎
𝑦 𝛼0 = 1°
𝛼0 = 7°
𝛼0 = 40°
𝛼0 = 58°
𝛼0 = 93°
𝛼0 = 155°
𝛼0 = 178°
𝛼0 = 189°
𝛼0 = 220°
𝛼0 = 268°
𝛼0 = 273°
𝛼0 = 335°
𝑥
11
The Overall Process
12
Grayscale image Raw image: 𝐹 𝑥, 𝑦 = max 𝑥′ ,𝑦′
𝛼0
𝑊 𝑥,𝑦,𝛼0 ,
𝛼0
𝑊 𝑥 ′ ,𝑦 ′ ,𝛼0
, ∀ 𝑥min ≤ 𝑥 < 𝑥max , 𝑦min ≤ 𝑦 < 𝑦max
Filtered image: 𝐹 , with 𝐹 = 𝛤 𝐹 , where 𝛤 𝐹 denotes the filtering of image 𝐹 with a rotationally symmetric Gaussian lowpass filter 𝛤 (𝜎𝑥 = 𝜎𝑦 = 5 meters)
𝑦
Raw: 𝐹 𝑥, 𝑦 , 0 ≤ 𝐹 𝑥, 𝑦 ≤ 1
𝑥
Filtered: 𝐹 𝑥, 𝑦 , 0 ≤ 𝐹 𝑥, 𝑦 ≤ 1
𝑥
13
The Overall Process
14
Finding ridges → Applying Watershed Transform Potential oversegmentation
Goal: Finding ridges within image 𝐹 . Assumption: ridges = roads We apply the WT with a 4-connected neighborhood search around 𝑥, 𝑦 , i.e. 𝑥 ± 1, 𝑦 or 𝑥, 𝑦 ± 1
𝑦
Black lines = Estimated ridges from WT
𝑥
Problems: i. Oversegmentation ii. Intersections not always optimally captured 15
The Overall Process
16
Make use of heading information • Addressing problems with – oversegmentation and loops – representation of intersections
• Determining driving direction(s) on edges → We use the information on potential driving directions 𝛼0
determined for each position 𝑥′, 𝑦′ , i.e. search for dominant heading(s) within an area determined by 𝑥′ ∈ 𝑥 − , 𝑥 + and 𝑦′ ∈ 𝑦 − , 𝑦 + . The accumulated weight for each angle 𝛼0 is:
ℎ 𝛼0 =
𝑥′
𝑦′ 𝑊
𝑥′, 𝑦′, 𝛼0 → find 𝑛 peaks 1 ≤ 𝑛 ≤ 4 . 17
Network after removing incorrect edges Correctly identifyed edges (blue)
Edges incorrectly detected due to • oversegmentation (red) • loops (black) • not enough data relative to the other links (yellow)
𝑦
→ All red, yellow and black edges were automatically removed by the algorithm 𝑥
18
Network with adjustment of intersections Node #1
𝑦 2
Node #2
𝑥
19
The Overall Process
20
Results Estimated network in graphical representation
Tabular representation: nodes and edges Edge# Nodein Nodeout … 691 692 693 694 695 696 697 …
Node# lon [°] … 115 116 117 118 119 120 121 122 …
𝑘
… 11.5649417 11.5649552 11.5649686 11.5649956 11.5650359 11.5650628 11.5650897 11.5651301 …
𝜆𝑘
… 493 493 494 494 495 495 496 …
lat [°] … 48.1358078 48.1357628 48.1357178 48.1356728 48.1356278 48.1355827 48.1355377 48.1354927 …
𝜑𝑘
… 492 494 493 495 494 496 495 …
x [m] … -1119.5 -1118.5 -1117.5 -1115.5 -1112.5 -1110.5 -1108.5 -1105.5 …
𝑥𝑘
Comprises information on directions
y [m] … -465.5 -470.5 -475.5 -480.5 -485.5 -490.5 -495.5 -500.5 …
𝑦𝑘
21
A
Results (cont.) Estimated network vs. Google Earth and OpenStreetMap A
B
B
C
C
22
Summary • New approach for map generation from low frequency FCD • Combines methods from different fields • Applied using taxi position data collected within the City of Munich • Promising results, majority of the road network with driving directions could be estimated correctly
23
Outlook • Possible improvements of the method – – – –
Investigation of smaller sample sizes and accuracy limits Rarely used roads (i.e. uneven trip distribution) Driving directions (directed links) and separate lanes Improved shape estimation using design standards
• Integration of additional data sources – Complementary fleets (e.g. ADAC, delivery fleets) – Other sources (e.g. cell phone positions from triangulation or signals from wireless internet access points (WLAN)) 24
Outlook (cont.) • Potential applications – Make further use of position data, e.g. • Associating links with speed profiles • Intersections: turning restrictions and turning delays • Routes: OD information or turning fractions (representativeness!)
– Contributing to OpenStreetMap (plausibility checks) – Especially beneficial in rapidly developing countries (large taxis fleets; fast growing/changing networks)
25
Thank you for your kind attention! Questions?
26
Appendix – Additional slides • Previous work • Details on how to compute weight 𝑤𝑗
• Some notes on the final network
27
Previous Work • Generally focused on „high frequency“ data approx. 1 position per seconds
• Methods or combinations of methods – Smoothing (finding a road based on a set of trajectories) – Clustering of line objects – Image Processing (edge detection)
• Open Street Map (OSM) Project – Manual road network generation based on user collected GPS tracks 28
Computation of weight 𝒘𝒋 For 𝑗 − 1 → 𝑗; 2 ≤ 𝑗 ≤ 𝐽𝑖 − 1: 𝑤𝑗−1,𝑗 𝛼𝑗−1,𝑗 , Δ𝑡𝑗−1,𝑗 𝛼0 , 𝜃 = exp −𝜃𝛼 ∙ 𝛼𝑗−1,𝑗 − 𝛼0 Contribution of angle
⋅ exp −𝜃𝑡 ∙ Δ𝑡𝑗−1,𝑗 ⋅ 𝟙𝑣,Δ𝛼 Time interval discount
For 𝑗 → 𝑗 + 1; 2 ≤ 𝑗 ≤ 𝐽𝑖 − 1: 𝑤𝑗,𝑗+1 𝛼𝑗,𝑗+1 , Δ𝑡𝑗,𝑗+1 𝛼0 , 𝜃 = exp −𝜃𝛼 ∙ 𝛼𝑗,𝑗+1 − 𝛼0 Contribution of angle
⋅ exp −𝜃𝑡 ∙ Δ𝑡𝑗,𝑗+1 ⋅ 𝟙𝑣,Δ𝛼 Time interval discount
with 𝟙𝑣,Δ𝛼 =
1 if 𝑣𝑗−1,𝑗 ≤ 𝑣max ∧ 𝑣𝑗,𝑗+1 ≤ 𝑣max ∧ Δ𝛼𝑗−1,𝑗+1 < 90 deg 0 otherwise
and 𝜃 = 𝜃𝛼 , 𝜃𝑡 , where 𝜃𝛼 = 3 ∙ deg−1 , 𝜃𝑡 = 0.05 ∙ 𝑠 −1 , and 𝑣max = 60 km/h.
29
Computation of weight 𝒘𝒋 (cont.) We next sum up the two terms to finally get 𝑤𝑗 𝑤𝑗 = 𝑤𝑗 𝛼𝑗−1,𝑗 , 𝛼𝑗,𝑗+1 , Δ𝑡𝑗−1,𝑗 , Δ𝑡𝑗,𝑗+1 𝛼0 , 𝜃 = 𝑤𝑗−1,𝑗 𝛼𝑗−1,𝑗 , Δ𝑡𝑗−1,𝑗 𝛼0 , 𝜃 + 𝑤𝑗,𝑗+1 𝛼𝑗,𝑗+1 , Δ𝑡𝑗,𝑗+1 𝛼0 , 𝜃 . NOTE: Subsequent steps require positions in meters relative to a reference point → Perform TME (Transverse Mercator on the Ellipsoid) projection 𝑇: 𝜆𝑗 , 𝜑𝑗
𝑇
𝜆0 ,𝜑0
→ 𝑥𝑗 , 𝑦𝑗
𝑥0 ,𝑦0
,
where 𝜆0 , 𝜑0 defines the reference coordinates of the area investigated, with 𝜆0 = 11.58°E and 𝜑0 = 48.14°N. The corresponding reference point in the 𝑥, 𝑦 domain is defined by 𝑥0 = 0 m and 𝑦0 = 0 m and is located exactly at 𝜆0 , 𝜑0 .
30
Some notes on the final network The final network consists of • nodes • edges (connecting 2 nodes) • so-called sub-nodes (additional points within edges to capture their curvature) → 𝑥𝑘 , 𝑦𝑘
𝑥0 ,𝑦0
, ∀𝑘
The final step comprises also the transformation of the nodes back to the 𝜆, 𝜑 -domain by the inverse TME projection 𝑇 −1 : 𝑥𝑘 , 𝑦𝑘
𝑇 −1 𝑥0 ,𝑦0
𝜆𝑘 , 𝜑𝑘
𝜆0 ,𝜑0
. 31