We introduce a new approach to construct smooth piecewise curves representing realistic road paths. Given a GIS database of road networks in which sampled points are organized in 3D polylines, our method creates horizontal, then vertical curves, and finally combines them to produce 3D road paths. We first estimate the possibility of each point of being a junction between two separate primitive curve segments. Next, we design a tree-traversal
algorithm to expand sequences of local best fit primitives which are then merged together with respect to the G1 continuity constraint and civil engineering rules. We apply the Levenberg-Marquardt method to minimize the error
between the resulting curve and the sampled points while preserving the G1continuity
3. Realistic road path reconstruction from GIS data Seoul 10/10/2014 3 of 18
Outline
Problem statement
Proposed method
Results
Conclusion
4. Realistic road path reconstruction from GIS data Seoul 10/10/2014 4 of 18
Realistic and accurate 3D models of road networks
Transportation simulation
Serious games
Virtual traveling
Realistic: must respect civil engineering rules
Accurate: manage inaccuracy of input data
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
5. Realistic road path reconstruction from GIS data Seoul 10/10/2014 5 of 18
Road sample points
Stored in 3D polylines
Accuracy: 1m 2.5m
Terrain point cloud
5mx5m regular grid
Accuracy: 2.5m
Aerial images
GIS database
How to exploit and combine multimodal data types?
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
6. Realistic road path reconstruction from GIS data Seoul 10/10/2014 6 of 18
By grammar rules or pattern-based method: [PHM01, SYBG02, CEW*08]
fictitious roads
From GIS data [WSL12], do not use clothoid, do not aim at driving
experience
Use procedural methods [BN08, GPMO10, GPMG11], do not take into
account engineering rules lack of realism
3D road reconstruction
REFERENCES
[PHM01] PARISH, H. Y. I., MULLER P.: Procedural modeling of cities. In Proceedings of the 28th annual conference on
Computer graphics and interactive techniques (New York, USA, 2001), SIGGRAPH ’01, pp. 301–308,
[SYBG02] SUN J., YU X., BACIU G., GREEN M.: Templatebased generation of road networks for virtual city modeling.
Proceedings of the ACM symposium on Virtual reality software and technology (2002), 33–40
[CEW∗08] CHEN G., ESCH G., WONKA P., MÜLLER P., ZHANG E.: Interactive procedural street modeling. SIGGRAPH ’08,
[WSL12] WILKIE D., SEWALL J., LIN M. C.: Transforming gis data into functional road models for large-scale traffic simulation.
IEEE Transactions on Visualization and Computer Graphics 18, 6 (2012), 890–901
[BN08] BRUNETON E., NEYRET F.: Real-time rendering and editing of vector-based terrains. In Eurographics (2008)
[GPMG10] GALIN E., PEYTAVIE A., MARÉCHAL N., GUÉRIN E.: Procedural generation of roads. Computer Graphics Forum
(Proc. of Eurographics) 29, 2 (2010), 429–438
[GPGB11] GALIN E., PEYTAVIE A., GUÉRIN E., BENES B.: Authoring hierarchical road networks. Computer Graphics Forum
(Proc. of Pacific Graphics) 30, 7 (2011), 2021–2030
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
7. Realistic road path reconstruction from GIS data Seoul 10/10/2014 7 of 18
Use input points as control points of clothoid splines [WM05]
big deviation
[MS09, BLP10] build clothoid splines from polyline only 2D,
insufficient road path rules
Piecewise curve reconstruction
REFERENCES
[WM05] WALTON D. J., MEEK D. S.: Technical section: A controlled clothoid spline. Comput.
Graph. 29, 3 (June 2005), 353–363.
[MS09] MCCRAE J., SINGH K.: K.: Sketch-based path design. In Proc. Graphics Interface
(2009), pp. 95–02
[BLP10] BARAN I., LEHTINEN J., POPOVIC J.: Sketching clothoid splines using shortest paths.
Computer Graphics Forum, 29 (2010)
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
Need a method to create road path with civil engineering
rules
9. Realistic road path reconstruction from GIS data Seoul 10/10/2014 9 of 18
Piecewise curves
Horizontal curve (projection on a plane) = [straight line | arc | clothoid]
Vertical curve (altitude along horizontal curve) = [straight line | parabola]
Grammar of primitive sequence
G1 continuous
Connected
Tangents at junction are parallel
Restriction of primitive length (min, max)
Guidelines: few primitives, simple primitives in higher priority
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
Highway horizontalNormal horizontal Vertical
Straight
line
Parabola
*
Circle
Arc
Straight
line
Clothoid
0:2
*
Circle
Arc
Straight
line
Clothoid
1:2
10. Realistic road path reconstruction from GIS data Seoul 10/10/2014 10 of 18
z
Input 3D polyline
y
x x
Horizontal polyline
y
z
Vertical polyline
length
x
Horizontal piecewise
curvey
z
Vertical piecewise
curve
length
Road path
z
y
x
Build horizontal
and vertical
curve separately
Lift horizontal
curve to the
altitude given by
vertical curve
Preprocess 3D
polyline to get
2D polylines
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
11. Realistic road path reconstruction from GIS data Seoul 10/10/2014 11 of 18
LSGA (Least-error Sequence Growing Algorithm): given a polyline,
find an appropriate sequence of primitives
Primitive merging: from disconnected primitives, build a G1 curve
with acceptable total square deviations
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
12. Realistic road path reconstruction from GIS data Seoul 10/10/2014 12 of 18
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8Try longer
primitives
Reset with the least
error sequence
Finish:
Reach the last point
Max and Mean deviation ≤ thresholds
Grow the current
sequence by
adding a primitive
Preprocess: estimate testing order
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
LSGA works by trying to grow a primitive
sequence
LSGA
Split at point having the least
testing order,
Try to fit the simple primitive first
1
2
6 3
5
4
P0 P1 P2 P3 P4
P5
P6
P7
P8
Invoke “primitive merging”
to obtain a G1 curve
13. Realistic road path reconstruction from GIS data Seoul 10/10/2014 13 of 18
Based on the Levenberg-Marquardt algorithm
Initial guess:
Keep 1st primitive
Translate and rotate the others to obtain G1 curve
Minimize by optimizing primitives’ parameters
Primitive merging
P5
P 5
+
P5
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
15. Realistic road path reconstruction from GIS data Seoul 10/10/2014 15 of 18
Horizontal curve Vertical curve
Input
Polyline length (m) 962
Number of points 46
Horizontal accuracy (m) 1.5
Vertical accuracy (m) 1
Output
Mean horizontal error (m) 0.45
Max horizontal error (m) 1.19
Mean vertical error (m) 0.32
Max vertical error (m) 0.94
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
16. Realistic road path reconstruction from GIS data Seoul 10/10/2014 16 of 18
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
17. Realistic road path reconstruction from GIS data Seoul 10/10/2014 17 of 18
Construction of complex and realistic road networks
Roundabouts must be added
Forthcoming work:
Road surface construction
Based on civil engineering rules
Mimic operations of civil engineering to modify the terrain
according to the road paths:
Excavation
Embankment
Proposed method
Required rules
Method overview
Algorithms
Results
Conclusion
Problem statement
Motivations
Input data
Related work
19. Realistic road path reconstruction from GIS data Seoul 10/10/2014 19 of 18
Testing order computation
𝑆𝑖 = 𝑆 𝑃 𝑖−1 𝑃 𝑖 𝑃 𝑖+1
𝐽𝑢𝑛𝑐𝑡𝑖𝑜𝑛𝑃𝑟𝑖𝑜𝑟𝑖𝑡𝑦𝑖 =
𝑚𝑖𝑛 𝑆𝑖 − 𝑆𝑖−1 , 𝑆𝑖+1 − 𝑆𝑖
From junction priority, set the
testing order for each point
P0 P1 P2 P3 P4
P5
P6
P7
P8
16 3
5
4
2
S4
P0 P1 P2 P3 P4
P5
P6
P7
P8
P0 P1 P2 P3 P4
P5
P6
P7
P8
0.920.36
0.62
0.43
0.61
0.68
JunctionPriority4 = min(|S4-S3|, |S5-S4|)
20. Realistic road path reconstruction from GIS data Seoul 10/10/2014 20 of 18
Common parameters:
Starting point (x,y)
Tangent at starting point
Specific parameters for each type:
Line: length
Circular arc: tangent at ending, radius
Clothoid: starting curvature, ending curvature, length
Parabola: tangent at ending, co-efficient A (of y = Ax2 + Bx +C)
Primitives’ parameters
21. Realistic road path reconstruction from GIS data Seoul 10/10/2014 21 of 18
Given input accuracy: δ
To ensure quality of fitting, impose the
criteria:
Max error ≤ δ
Mean error ≤ δ/2
Error criteria
22. Realistic road path reconstruction from GIS data Seoul 10/10/2014 22 of 18
Results: mountain road
Horizontal curve Vertical curve
Input
Polyline length (m) 874.8
Number of points 50
Horizontal accuracy (m) 2.5
Vertical accuracy (m) 2.5
Output
Mean horizontal error (m) 1.05
Max horizontal error (m) 2.45
Mean vertical error (m) 0.57
Max vertical error (m) 0.94
23. Realistic road path reconstruction from GIS data Seoul 10/10/2014 23 of 18
Execution time
Function name Times Total duration (s) %
Road ID TRONROUT0000000040764920 (suburban) 272.27 100
Try to add primitive to current sequence 269.13 98.8
Compute the best fit clothoid 4 2.28 0.8
Primitive merging 53 267.15 98.1
Jacobian 636 236.8 86.9
Matrix operations 979 0.03 0
Compute Deviations, D_mean,D_max 243643 4.66 1.7
Others (reset, maintain memory…) 3.27 1.2
Road ID TRONROUT0000000040981188 (mountain) 19692.13 100
Try to add primitive to current sequence 12420 19668.08 99.9
Compute the best fit clothoid 70 18.15 0.1
Primitive merging 12190 15849.87 80.4
Jacobian 62421 12134.77 61.6
Matrix operations 335515 22.53 0.1
Compute Deviations, D_mean,D_max 9423406 887.26 4.5
Others (reset, maintain memory…) 24.05 0.1
Editor's Notes
Our work come from the need of realistic and accurate models of road network. These models may be very helpful for various applications such as…
So what realistic and accurate mean for us.
By realistic, we want to say that our expected roadpath must respect CE.
And accurate mean that we have to manage inaccuracy of input data.
My input data is a GIS database that contains 3 types of data.
…
A difficulty arising here is that how to use and combine these data types with different accuracies.
-----------------------------------------------------------------
Among data sources, GIS databases are the most promising data for road reconstruction because they are easy to exploit, rich of information, and ubiquitous.
In the frame of cooperation with IGN, we are provided with GIS database for France.
There are 3 important kinds of data.
Recall that this work is just the 1st step of our bigger project that aims at 3D road reconstructions.
And, It’s normal that 3D road surface reconstruction should be based on road path curve.
So let’s discuss some important papers on this topic.
In the work of Parish, Sun, Chen and their colleagues, they tried to generate roads network by using grammar or patter-based method. These methods are suitable for the cases of lacking real data but their roads are fictitious.
In contradiction, Wilkie and his colleage construct big 3D road network from real GIS data. However, their objective is just traffic simulation. They don’t focus on how each vehicles move on the roads.
Recently, there is a trend that uses procedural method to build 3D road model. We can mention the work of Bruneton and Galin as the prominent examples. This method show abilities to produce fancy (beautiful) models. However, no ones has taken account account engineering rules. As a result their roads lack realism (are lack of realism).
More closer, this research belongs directly to “curve reconstruction” topic.
Basically, the projection of real roads on the plane must be clothoid splines. To produce clothoid splines, we can refer to the work of Walton and Meek and his colleague. Unfortunately, they treat input points as control points so the output curves are too far from the points.
Among existing methods, the ones of Mc Crae and Baran can produce curves that are the most closed to our requirement. Their output curves are clothoid splines, and the curves are very near sampled points as well. However, their curves are just 2D and they haven’t applied road path rules.
In summary, we still need a method able to create roadpath having civil engineering rules.
-
OK, perhaps you all understand the problem we want to solve.
Now I’d like to go to the main section of my talk to present our proposed method.
We first studied characteristic of real roads in CE materials. Then we restate themm in terms of geometry as follows.
First, the roadpaths must be piecewise curve, i.e. we have to use primitive segments to build curves.
For horizontal, that indicate road goes straight, turn left or right, they use
From here, we illustrate primitive type by colors as you can see here.
2nd, more strictly, the primitive sequence must conform to predefine grammar for each type of curve. E.g: the road designers can not use more than 2 consecutive clothoids connected together for horizontal curve.
3rd rules state that the ouput picewise curves must be G1 continuous. Ie 2 consecutive primitive must be connected and their tangent at junction are parallel.
The next rules, we impose length restriction on primitive type.
Finally, to obtain the fairness of the curve, we apply the guidelnes: we should use as simple as possible, and as long as possible primitive.
…
Our method can be summarized by the follow pipeline.
Our method consists of two main algorithms.
The 1st one is LSGA. It is an algorithm that given …, it will find…
The obtained primitives are disconnected. So we designed the 2nd algorithm named primitive merging to build a G1 continuous curve total square deviations are minized.
OK, I am about to go to details of these algorithms
To explain how LSGA works, I show you the following example.
This is the input polyline.
Because the goal of LSGA is to find an appropriate primitive sequence, it is important to decide which point is junctions between primitives. And because we design LSGA as a heuristic algorithm, we first estimate and assign the testing order value for each point.
In this figure, the testing order are illustrated by purple color. In this case, because the distance P7 to P8 is smaller than any minimum length of primitive, P7 doesn’t have value of testing order.
Starting with the empty sequence, LSGA first selects the point having the smallest testing order. It tries to fit the most simple primitive to Point 0 to P4. This fitting is OK.
In the next step, LSGA will try to grow the current sequence by adding a primitive taking into account grammar. The P6 is tested now because it has minimum JP
Note that every times a primitive is added to current sequence, LSGA calls “primitive merging” as a subprocess. Then we have a G1 curve.
The sequence with P6 is OK, LSGA tries with a longer primitive to obtain the fairness. There is only point P8 that can be selected but this test fails because of a big deviation at P8.
LSGA test with a more complex primitive type, clothoid but it still fail so LSGA accept this configuration
LSGA tried to grow again but it fails.
There is no option to exend so LSGA resets by select the sequence having the least total square deviation.
Again, LSGA tries to grow with untested configuration. It selects P6 as the new junction. All kind of primitives at P6 are not suitable.
LSGA tries with another point, P2 this time. It succeeds with a straight.
After some steps, the current sequence reaches the last point while the error criteria as satisfied. The algorithm terminates here.
The primitive merging are based on LMA.
For the initial guess
Then we….
And I would like to show you some interesting results of this work.
This picture shows that our method works well. The output curve locates at the road center and it is very closed to input points.
The vertical and horizontal curve demonstrate that the the piecewise curves conform to predefined grammar.
And, the statistical tables approve that our output errors are very reasonable compare to input accuracy.
Because we can fix the position and tangent at starting point of any output curve.
We can ensure G1 between two road path at any intersection. That enables us to construct a complete road network.
----------------------------------------------------------------------------------------------------------------------------------------
we are able to build very long G1 smooth curves as shown in this scene.
That brings me to the end of presentation this morning.. (That is the end of my presentation.)`
Thank you for your attention
LSGA is a heuristic algorithm. It will attempt to split polyline at points based on Junction priority computed as follow.
We define the area corresponding to each point to be the area of the triangle of it and the previous and next point.
The junction priority at each point is the minimum of difference of two consecutive areas.
This is a table records runtime time of two complex