1. Introduction
The modeling of road scenes has become an increasingly important topic in academia and industry. While various techniques have been developed to handle different types of issues, it is recognized that efficiency and reliability are both key considerations in the assessment of systems. However, to help with vehicle development and evaluation, a high-accuracy and high-precision three-dimensional model of the road surface is necessary and very valuable. There are multiple methods of building detailed representations for the road model, and they can result in different models based on various purposes. For example, in [
1,
2], the authors presented approaches for grid-based road model estimation for advanced driver assistance systems. Their measurements from sensors are transformed into a grid-based road model and a geometrical description is extracted out of this model by the use of a path-planning based method. In [
3], a modeling of the road with geometric parameter representation was proposed, which contained three parts of road: straight line, circular arc, and clothoid. The relationship between trajectory curvature and velocity was established, and then a simulation was carried out to verify the road model. It proved that the model could be used to control a four-wheeled robot. For other uses, some authors proposed methods using the elevation information to building road models [
4,
5,
6,
7]. It has been proven that the elevation-based methods are suitable for detection techniques.
However, precise 3D road surface measurements and efficient 3D road data representation are two essential requirements for building high-precision 3D road models. To fulfill the requirement of precise road surface measurements, we use a point cloud as input data. Point cloud data is comprised of a set of measured points in three-dimensional space. The point cloud is one of the most widely used data types in three-dimensional image processing. Point clouds are already having a huge impact on different industries, especially on road-related projects (e.g., road surveys, road modeling, and autonomous vehicles). Mobile mapping systems are one of the most widely used surveying devices for capturing large-scale point clouds and digital images. Authors in [
8] provided a recently available review of mobile mapping system (MMS) and surveying technologies. Some of the newly developed and presented systems are described in [
9,
10,
11,
12]. These systems produce large-scale 3D point clouds and very-high-precision geometric measurements. The produced point clouds are used for many road-related research tasks, including missing road point regions detection [
13], road damage information detection [
14,
15], road segmentation and recognition [
16,
17], etc.
Since the geometric relationships between road segments are normally assumed as straight line segments and curved arc segments, there are many different approaches that are available, dealing with various situations. Examples can be found in [
18,
19,
20,
21]. In geometric road design, G2 continuity is demanded, which means that not only the tangent vectors between different road segments are lying along the same direction, but also have the same curvature at the joint point. The commonly used algorithms for straight line and circular arc detection are the random sample consensus (RANSAC) and the Hough transform. A comprehensive overview of recent research in RANSAC-based estimation methods is given in [
22]. Therefore, most strategies focus on the transition curves. In [
23,
24], the authors demonstrate a workflow for representing point cloud data in a curved regular grid model. The input laser-scanned point clouds and geometric description of the road both need strong manual intervention in the preparation phase. The selected pilot road has a near perpendicular segment, and the elevation values are calculated by a fixed-radius nearest-neighbour search algorithm from the input point cloud directly. The mean elevation values of points inside the circle are stored in the curved regular grid (CRG) cells. This also causes the problem that the resolution of the generated CRG model is limited by the density of the input point cloud. However, the performance and accuracy of the two key steps—road segmentation and elevation estimation—can be further enhanced. In our previous work [
25,
26,
27], we presented a workflow which can produce a high-precision three-dimensional point cloud model of a road surface region and trajectory points. In this paper, we extend the method based on our previous results for representing the mobile mapping data in the CRG model efficiently.
In this work, the goal was to build a road model that contains geographic information of the road surface and use elevation information to show the shape of the road surface. We first apply a robust and effective method that can divide the road into three road segment categories: straight line, circular arc, and clothoid curve. For the straight line and circular arc solutions, we utilize the RANSAC algorithm. Then, we adopt a G2 interpolation method [
28] to estimate the transitions between road segments, that is, the clothoid curves. To create a CRG model file, a regular grid which provides elevation values is needed. To effectively and accurately accomplish this, we use a two-step method to generate the regular grid. In the first step, for finding the regular grid, a non-regular grid is initially created from the input point cloud and trajectory points. In the next step, we estimate the regular grid from the non-regular grid by applying a bilinear interpolation method. Finally, the presented process is applied to our real-world point cloud data collected from the Japanese highway network.
In sum, the main contributions of this work are as follows. First, in the data preparation phase, the whole process operates without any human intervention. To enhance the accuracy of elevation estimation, with the two-step method, the bilinear interpolation ensures the elevation values are precisely computed. It can also provide a guarantee of high resolution, where the grid resolution can be selected by the user. Secondly, to improve the time and space efficiency compared with the nearest-neighbour search approach used in [
23], the two-step method can decrease the storage and query execution time. Furthermore, our previous work results provide precise road surface region point cloud and trajectory points. Precision data can be used to create a more accurate elevation regular grid for the purpose of building the CRG model. Finally, with the help of OpenCRG, we can represent three-dimensional (3D) road data in CRG models.
1.1. Overview of OpenCRG
In 2005, a project called OpenDRIVE [
29] was started by a team of driving simulation experts from Daimler AG and VIRES Simulationstechnologie GmbH. This project aimed to standardize road description in order to facilitate the data exchange between various driving simulators. This is the first member of the OpenSolutions family. After the debut of OpenDRIVE in 2006, other big companies joined in (e.g., BMW, Audi AG, Porsche AG, and Volkswagen Group). Thus, OpenDRIVE is now being managed by an international board. OpenDRIVE provides a road evaluation library which can make the data exchange between different servers and applications easier. It is also available for vehicle dynamics, traffic simulation, and sensor simulation via the library.
As a complementary project, the OpenCRG project was established in October 2008 [
30]. CRG stands for curved regular grid. Its objective is to provide open file formats and tools for the representation of high-precision 3D road surfaces. The predecessor of OpenCRG is a format called CRG, which has been used internally for several years by Daimler AG. OpenCRG is designed to represent road surfaces in very high resolution, so that the CRG files can be used for tire, vibration, and driving simulation.
In order to present the road data in a CRG model, the road parameters must be defined (e.g., start position, end position, road width, slope, heading angle, and elevation). Start position and end position are actually the start and end points of a road segment. As shown in
Figure 1, a curved regular grid represents road elevation data close to a road center line. A CRG model consists of two major parts: a reference line and a regular elevation grid. The reference line is defined by a start position, an end position, and consecutive heading angles. The
u-axis lies on the reference line and the
v-axis is orthogonal to the reference line. The regular elevation grid is a special form of regular grid which is locally orthogonal. Columns are longitudinal cuts that are parallel to the reference line, and rows are lateral cuts that are orthogonal to the reference line. The grid nodes contain elevation information of the road surface. A MATLAB and C-API toolbox was developed for the handling, evaluation, and generation of CRG data.
In addition, the OpenSolutions family has expanded with a new member OpenSCENARIO [
31]. It was formally presented in 2016 and is still in the development stage. The purpose of the project is to establish a standard for dynamic content in vehicle simulations, such as traffic models, driver models, infrastructure event models, etc.
1.2. Structure of the Paper
This paper is structured as follows. In
Section 2, we give a brief review of our previous work. The proposed method is then described in detail. Experimental results are illustrated in
Section 3, and
Section 4 concludes this paper.
2. Method
2.1. Input Data Preparation
The point cloud data and images used in our work were captured using a 3D laser line scanner and charge-coupled device (CCD) camera. The benefit of a 3D laser line scanner is that the vehicle position is known and can be used for information on the road’s location and orientation. Each point not only has three-dimensional coordinates, but also laser irradiation angle and GPS time. This information can be used to structurize the points. From this information, we use the laser irradiation angle in order to separate the point cloud into scan lines. Moreover, we order points in a scan line and find neighborhood elements by laser irradiation angle information. The point cloud data and color images used in our research are illustrated in
Figure 2.
However, the interval of measured points along the direction in which the MMS travels depends on the rotation speed of the laserirradiation part and the speed with which the MMS travels. The rotation period of the laser irradiation part is much longer than the laser irradiation period. The measurement interval along the direction of MMS travel is often about a few hundred millimeters. Thus, the density of the point distribution is greatly unbalanced with the direction (
Figure 3).
This situation causes the problem in the method with creating regular grids of elevation values onto raw point cloud data directly. In such a case, a manual process is always involved, and this kind of method is very time-consuming. For example, in [
32], the authors presented an algorithm for local gridding where the elevation values are computed based on local binning geometry. The accuracy and time complexity of this algorithm were not suitable for creating the CRG model.
In [
27], in oeder to find the location of the boundary points precisely, we used a line-based region-growing method to extract the road surface region from the point cloud. Following this method, the input to our algorithm is a set of line segments. We first create line segments from a point sequence using the angle of laser irradiation. We then use the line segments as processing elements for the road surface region extraction. For searching neighborhood line segments, we use the laser irradiation angle associated directly with sampled points. If two points on two consecutive scanning lines have a similar laser irradiation angle, these points are considered to be located near each other. Next, we extract lane marks and their midpoints [
25]. The road surface points are projected onto a color image to find the precise lane mark region. Then, we perform an inverse projection to recover the 3D coordinates of the detected 2D lane mark points. For the missing points between broken white lines, we describe the three-dimensional points in a length-angle space to fill the gap, considering that the road trajectories are sequences consisting of centerline points. Finally, we generate a 3D point sequence to represent the trajectory points [
26], and hence we can use the trajectory of the road as the reference line in road surface modeling.
Figure 4a,b shows examples of the results in our previous work.
Figure 4a is an example of an extracted road surface region by line-based region growing. We painted the road surface points and non-road points in red and black, respectively. We can see that the line-based region growing method precisely extracted the road surface region.
Figure 4b shows an example of 3D road trajectory points, which are colored in red.
2.2. Overview of the Method
In the first step, we divide the input trajectory point into three types: straight line, circular arc, and clothoid. Naturally, the curvature of a straight line is nearly zero, a circular arc has constant curvature, and the curvature of a clothoid varies linearly along the arc. The straight and circular road segments are both extracted by the RANSAC algorithm, which is not only able to give accurate detection result, but also maintain speed and stability. The straight lines are extracted first, then circular road segments are extracted from the rest of the data. Points between straight line and circular segments should be fitted by a clothoid curve.
In the CRG model, the left and right road widths must be fixed. In the real world, there is an emergency lane on the side of the road, which means the width is not ideally equal. In our case, we are analyzing a symmetric road, which means that the width values are the same.
Figure 5 illustrates the definitions of left width, right width, and emergency lane.
Elevation values are indicated by the z-values of each point. The regular grid of elevation is the most important component of the CRG file. Thus, we create a non-regular grid of elevation for each road segment in order to acquire a regular grid of elevation due to varied distance between points and sparse scanlines. A bilinear interpolation method is used here to compute the elevation of the regular grid point from surrounding non-regular grid points. Finally, we make the CRG file according to the format specification of OpenCRG model. The complete workflow used in this paper is illustrated in
Figure 6.
2.3. Road Segmentation Process
To find straight lines and circular arcs, among many mature algorithms, the RANSAC algorithm is widely used because of its reliability and accuracy. Since the trajectory is a point sequence with continuous-curvature profile, we apply a common RANSAC strategy for straight line and circular arc detection. The x and y coordinates of trajectory points are used as input. A minimal subset of the trajectory points is chosen randomly and model parameters are estimated from this subset. The estimated model is then checked by the entire dataset and all data points are classified as inliers or outliers by calculating the residuals to the model. In each iteration, the algorithm performs the same actions until the best model is determined. The straight lines are first estimated and the circular arcs are detected from the remaining data points.
To deal with the transitions between road segments, we use the G2 interpolation method in [
28] to estimate the clothoid curve. Given a start point
and an end point
of a transition clothoid curve, the heading angle and curvature are also calculated. In general, it is not possible to estimate a transition curve with only one clothoid. Considering two clothoid segments that have to join with G2 continuity, an intermediate point
that joins the two arcs with a G2 hypothesis is introduced here. Assume the two segments are starting respectively from the start and the end point, matching at
M. Given two points
and
, two angles
and
, and two curvatures
and
, let
and
be the lengths of the two matching arcs, and the curvature change rates are
and
. We can define two arcs by
where
and
,
L are the solution of the smaller nonlinear system:
where
and
.
Figure 7 shows examples of finding straight lines, circular arcs, and clothoid curves.
Figure 7a is an example of a RANSAC algorithm result. The example of clothoid estimation is shown in
Figure 7b.
2.4. Creating a Non-Regular Grid
After dividing trajectory points into road segments by three categories, to create a non-regular grid for each road segment, we separate the input point cloud into scanlines using laser irradiation angle, and we also find the ordering for the points on each scanline. Then, we assign a corresponding grid point in the non-regular grid for each point in the point cloud by the order of points on each scanline.
Figure 8 shows the idea, where
,
, and
are trajectory points, and horizontal and vertical distance values between measured points are adopted to non-regular grid points. For example, along both length and width axes, the distances between two grid points are calculated by two adjacent trajectory points and two neighbor points lying on the same scanline, respectively. In other words, horizontal distance means the length along the vehicle heading direction, and vertical distance means the width along the scanline. Based on the input road surface point cloud, we extract elevation by the
z-value of each point.
2.5. Creating the Regular Grid
According to the format specification of the OpenCRG model [
33], in order to create an OpenCRG file, a regular grid which contains the elevation values of the points is needed. A bilinear interpolation is applied here to estimate a regular grid from a non-regular grid with a predefined resolution. In
Figure 9 we illustrate the bilinear interpolation process.
For each interpolated point
, we find four surrounding non-regular grid points. The elevation value
h at an interpolated regular grid point is defined as
where
h is the elevation at an interpolated point
, and
, and
are the elevation values at four surrounding points.
2.6. Building CRG Model
Since the regular grid of elevation is created, we follow the specification of OpenCRG to make the file for each road segment. Start position, end position, and consecutive heading angles allow us to build a CRG model for the road data. Increments on reference line and spacing on the left and right of the reference line are both fixed by the user-defined resolution.
4. Conclusions
Self-driving car techniques have advanced very quickly in recent years, and it is foreseeable that autonomous vehicles will become a common feature in the near future. Since autonomous vehicles have high demand on high-precision road models with detailed information about the surrounding environment, we propose an improved approach to create CRG models from mobile mapping data.
Based on our previous work, precise road surface region point cloud and trajectory are used to define the road surface. Therefore we can set accurate reference line parameters in the process of building the CRG model. To represent a hig-accuracy road surface model, a two-step approach was used to create the regular grid of elevation for the CRG model instead of creating a regular grid from the point cloud directly. The elevation values were more accurately estimated by using bilinear interpolation. The experimental results show that the proposed method could create a CRG model of the road in a very high resolution, and the resolution could also be customized. The visualized CRG model contains a microscopic view of the road surface. It could play an important role in the design and development of vehicles. Moreover, the proposed method is able to build road model without any manual intervention throughout the process. As a next step in future development, we may further build the road network database with the support of OpenCRG and OpenDRIVE, and hence we may establish a connection to the vehicle dynamics simulators.