EP4735831A1 - Systems and methods for updating road geometry graphs - Google Patents
Systems and methods for updating road geometry graphsInfo
- Publication number
- EP4735831A1 EP4735831A1 EP24729980.3A EP24729980A EP4735831A1 EP 4735831 A1 EP4735831 A1 EP 4735831A1 EP 24729980 A EP24729980 A EP 24729980A EP 4735831 A1 EP4735831 A1 EP 4735831A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- road geometry
- image
- road
- geometry
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/13—Satellite images
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/182—Network patterns, e.g. roads or rivers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Astronomy & Astrophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Automation & Control Theory (AREA)
- Traffic Control Systems (AREA)
Abstract
There is provided systems (400) and methods (490) for updating road geometry graphs. In particular, there is provided a method of of updating an initial road geometry graph (280) for a geographical area (100), the method comprising: obtaining an image (301) of new road geometry of the geographical area (100); converting the image (301) of new road geometry of the geographical area (100) to an updated road geometry graph (290) of the geographical area (100), wherein said converting comprises: applying a first trained machine learning model (321) to the image (301) of new road geometry to obtain a set of nodes (325) of the updated road geometry graph (290), and applying a second trained machine learning model (331) to the image (301) of new road geometry and the obtained set of nodes (325) to obtain a set of edges (335) of the updated road geometry graph (290); merging the updated road geometry graph (290) with the initial stored geometry graph (280).
Description
SYSTEMS AND METHODS FOR UPDATING ROAD GEOMETRY GRAPHS
Field of the invention
The present invention relates to systems and methods for correcting map data, in particular for updating stored road geometries to correct identified discrepancies.
Background of the invention
The adoption of electronic navigational aids has seen a large increase in recent years. Many road vehicles now integrate navigation and location services from the factory. Such services can offer accurate turn-by-turn navigation assistance, and increasingly specific guidance regarding lane changes and specific road layouts. The use of such navigational guidance systems has expanded beyond personal motor vehicles and such systems are now routinely used by users of many other modes of transport including commercial vehicles (such as large goods vehicles, commercial passenger transport vehicles). With the advances being made in the field of self-driving vehicles such navigation systems are a key technology in enabling autonomous point to point driving.
Additionally, with the large number of personal smart devices integrating navigational systems and location technology, users are increasingly reliant on such services for navigation when using other forms of personal transport, such as pedal cycles and even pedestrian travel.
In all of these cases accurate, detailed, digital mapping information is essential, in particular as the level of guidance offered by these systems becomes more granular. The availability of accurate road geometries and road layouts over large geographical areas is therefore desired. The consequences of an incorrect road geometry can lead to significant issues. For example, missing roads lead to individual journeys being sub- optimal and the most efficient route may not be used. On an aggregate level, as the incorrect road geometry will affect a large number of people in the same geographical area, this can lead to more widespread issues, such as unnecessary traffic or bottle necks. Similarly, incorrect road layouts can lead to confusion for vehicle users as they attempt to follow navigational guidance.
As roadways and roads are often changed and revised even initially accurate mapping data may become inaccurate in short periods of time. Even, once discrepancies in existing mapping data have been identified applying corrections can be a timeconsuming process. Often significant manual processing is required in order to maintain the extensive metadata (such as road attributes) in the mapping data itself when road layouts are updated.
Summary of the invention
It is an object of the invention to provide systems and methods for updating electronic maps based on corrections to road geometries. In particular, it has been noticed, as discussed in more detail below, that improved methods are required for the conversion of raster type road geometry corrections to map updates suitable for applying directly to vector based maps, which typical store the road geometries (or layouts) in the form of connected graphs. To that end systems and methods are provided for updating an initial road geometry graph for a geographical area, by applying trained node identification and edge identification models to raster road correction data, to thereby update said graph.
According to a first aspect of the invention, there is provided a method of updating an initial (or stored or otherwise existing) road geometry graph for a geographical area, the method comprising: obtaining (or receiving or otherwise accessing) an image of new (or predicted or otherwise updated) road geometry of the geographical area; converting the image of new road geometry of the geographical area to an updated road geometry graph of the geographical area; and merging the updated road geometry graph with the initial stored geometry graph, such as to create a further road geometry graph. Said converting comprises: applying a first trained machine learning model to the image of new road geometry to obtain a set of nodes of the updated road geometry graph, and applying a second trained machine learning model to the image of new road geometry and the obtained set of nodes to obtain a set of edges (or road segments) of the updated road geometry graph.
Typically, the first machine learning model and the second machine learning model form a convolutional encoder-decoder neural network. Alternatively, the first and/or the second machine learning network may be a transformer type network.
The image of new road geometry of the geographical area may be obtained based on the initial stored road geometry graph for the geographical area and one or more satellite images of an actual road geometry for the geographic area (such as by the method provided in the third aspect described shortly below).
Applying the second trained machine learning model to the image of new road geometry and the obtained set of nodes may be iterative. In particular said applying may comprise iteratively applying the second trained machine learning model to each node in the set of nodes to obtain a respective sub-set of nodes which are directly connected to said node.
In some embodiments the step of merging comprises applying a third machine learning algorithm to identify correspondences between one or more roads in the updated road geometry graph and one or more respective roads in the initial stored geometry graph. The step of merging may further comprise updating the attributes of one or more roads in the updated road geometry based on the attributes of the one or more identified corresponding roads in the initial stored geometry. As such the resulting updated road geometry may form the further road geometry graph.
One or more nodes of the set of nodes for the updated road geometry graph may correspond to an intersection between a new road in the image and an existing road in the initial stored road geometry graph and/or to an intersection between at least two roads in the image.
In some embodiments the step of obtaining comprises: applying an image of road geometry corrections to an image of the initial stored road geometry generated from the initial road geometry graph, wherein the image of road geometry corrections identifies one or more differences between the actual road geometry of the geographical area and the initial stored road geometry. Such road geometry corrections may be those generated by a method of the third aspect described shortly below.
Said applying may comprise deleting one or more roads from the initial stored road geometry based on an overlap with one or more road deletions in the image of road geometry corrections.
According to a second aspect of the invention there is provided a method of training a first and second machine learning model for converting an image of predicted road geometry to a road geometry graph, wherein the method comprises: obtaining a set of existing road geometry graphs, wherein each road geometry graph comprises a set of
initial nodes and a set of edges; for each existing road geometry graph in the set of existing road geometry graphs: generate an image of the existing road geometry from the existing road geometry graph; determine, based on the initial set of nodes, a respective set of training nodes, training a first machine learning model according to a first training set comprising the set of images of existing road geometry graphs labelled with the respective sets of training nodes such that the first machine learning model is arranged to take as input an image of predicted road geometry and generate as output a corresponding set of nodes; training a second machine learning model according to a second training set comprising a set of query nodes and corresponding images of existing road geometry graphs from the set of road geometry graphs, wherein each query node is labelled with the road geometry graph edges connected to the query node such that the second machine learning model is arranged to take as input a composite image comprising an image of predicted road geometry, a corresponding set of nodes and a query node, and generate as output an indication of the edges connected to the query node according to the predicted road geometry. The resulting trained first and second machine learning models may be used as the trained first and second machine learning models in the method of the first aspect (or its embodiments) described above.
The respective set of training nodes may be an enlarged set of nodes for the existing road geometry graph generated by interpolating additional nodes on edges in the set of edges of the existing road geometry graph. As such, the method may further comprise the step of generating the additional nodes.
Typically, the first machine learning model and the second machine learning model form a convolutional encoder-decoder neural network. Alternatively, the first and/or the second machine learning network may be a transformer type network.
The set of nodes may comprise road intersections and road shape points. In particular, the additional nodes may be additional road shape points.
The first machine learning model and/or the second machine learning model may comprise any of: a Linet segmentation model; a UnetPlusPlus segmentation model, a DeepLab model, a Segformer model, a SwinTransformer model. Additionally, or alternatively the first machine learning model and/or the second machine learning model may comprise any of: a VGG19 encoder; a Resnet50 encoder; an Efficient B1-B5 encoder, a DenseNet encoder.
According to a third aspect of the invention, there is provided a method identifying changes in road geometry, wherein the method comprises: obtaining an image (or pixel map, or bitmap or other raster image) of an initial (or estimated or stored) road geometry for a geographical area; obtaining an image (or pixel map, or bitmap or other raster image) of movement data for the geographical area, or obtaining a satellite image of the geographical area; forming a composite image (or pixel map, or bitmap or other raster image) from at least the image of initial road geometry and either the image of movement data or the satellite image; generating an image (or pixel map, or bitmap or other raster image) of road geometry corrections by applying a trained road geometry correction model to the composite image, wherein the image of road geometry corrections identifies one or more differences between the actual road geometry of the geographical area and the initial road geometry. The movement data may be thought of as vehicle movement data for the geographical area. The trained road geometry correction model typically is or comprises convolutional encoder-decoder neural network. The image of the initial road geometry may be an image mask in some embodiments.
It will be understood that the one or more differences may be or comprise any of: a road segment present in the actual road geometry and not present in the initial road geometry; a road segment present in the initial road geometry and not present in the actual road geometry; a road segment displaced in the actual road geometry relative to the initial road geometry.
In some embodiments the composite image comprises at least one channel corresponding to the initial road geometry and at least one other channel corresponding to either the movement data or the satellite image.
According to a fourth aspect of the invention there is provided a method of training a neural network for identifying road geometry corrections, for example such as a neural network embodying the road geometry correction model of the third aspect above. The method comprises: obtaining a set of known road geometries for a plurality of geographical areas; obtaining a set of images (or pixel maps, or bitmaps or other raster images) of movement data for the plurality of geographical areas or obtaining a set of satellite images for the plurality of geographical areas; modifying the known road geometries to form a set of modified road geometries, forming a plurality of composite images (or pixel maps, or bitmaps or other raster images) from at least the set of modified road geometries and the set of images of movement data, each composite
image formed from an image of a respective modified road geometry of a respective geographical area and either the image of movement data for the respective geographical area or the satellite image of the respective geographical area; labelling each composite image based on the difference between the modified road geometry of the composite image and the corresponding known road geometry to form a set of labelled composite images; training a road geometry correction model according to the set of labelled composite images such that the trained road geometry correction model is configured to generate as output an image of road geometry corrections from an input composite image of an initial road geometry and either movement data or a satellite image.
According to a fifth aspect of the invention, there is provided a system adapted to carry out above-mentioned first aspect or any embodiment thereof.
To that end there is provided a system for updating an initial road geometry graph for a geographical area, the system comprising a memory and one or more processors configured to carry out the steps of: obtaining (or receiving or otherwise accessing) an image of new (or predicted or otherwise updated) road geometry of the geographical area; converting the image of new road geometry of the geographical area to an updated road geometry graph of the geographical area; and merging the updated road geometry graph with the initial stored geometry graph, such as to create a further road geometry graph. Said converting comprises: applying a first trained machine learning model to the image of new road geometry to obtain a set of nodes of the updated road geometry graph, and applying a second trained machine learning model to the image of new road geometry and the obtained set of nodes to obtain a set of edges (or road segments) of the updated road geometry graph.
According to a sixth aspect of the invention, there is provided a system adapted to carry out above-mentioned second aspect or any embodiment thereof.
To that end there is provided a system for training a first and second machine learning model for converting an image of predicted road geometry to a road geometry graph, the system comprising a memory and one or more processors configured to carry out the steps of: obtaining a set of existing road geometry graphs, wherein each road geometry graph comprises a set of initial nodes and a set of edges; for each existing road geometry graph in the set of existing road geometry graphs: generate an image of the existing road geometry from the existing road geometry graph; determine, based on
the initial set of nodes, a respective set of training nodes, training a first machine learning model according to a first training set comprising the set of images of existing road geometry graphs labelled with the respective sets of training nodes such that the first machine learning model is arranged to take as input an image of predicted road geometry and generate as output a corresponding set of nodes; training a second machine learning model according to a second training set comprising a set of query nodes and corresponding images of existing road geometry graphs from the set of road geometry graphs, wherein each query node is labelled with the road geometry graph edges connected to the query node such that the second machine learning model is arranged to take as input a composite image comprising an image of predicted road geometry, a corresponding set of nodes and a query node, and generate as output an indication of the edges connected to the query node according to the predicted road geometry.
According to a seventh and eighth aspect of the invention, there is provided systems adapted to carry out above-mentioned third and fourth aspects respectively or any embodiment thereof.
According to a sixth aspect of the invention, there is provided a computer program which, when executed by one or more processors, causes the one or more processors to carry out the above-mentioned first, second, third or fourth aspect or any embodiment thereof. The computer program may be stored on a computer readable medium.
Brief description of the drawings
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
Figure 1a illustrates a geographical area or region;
Figure 1b schematically illustrates vehicle and associated navigational client; Figure 1c shows a stored road geometry for a geographical area;
Figure 2 schematically illustrates a road geometry graph generation system for converting an image of road geometry for a geographical area to a road geometry graph for the geographical area;
Figure 3 schematically illustrates a system for updating an initial road geometry graph for a geographical area;
Figure 4 is a flowchart illustrating a method that may be performed by the system of figure 3;
Figure 5a schematically illustrates a training system for training road geometry graph generation system, such as the road geometry graph generation system described in relation to figure 2;
Figure 5b shows two examples of node interpolation as described above in reference to figure 5a;
Figure 6 schematically illustrates a system for identifying changes or updates to a road geometry;
Figure 7 schematically illustrates a training system for training a road geometry correction model, such as the road geometry correction model described in relation to figure 6;
Figure 8 schematically illustrates an example of a computer system;
Figures 9a-9d Wasserstein Distance Histogram Plots.
Detailed description of embodiments of the invention
In the description that follows and in the figures, certain embodiments of the invention are described. However, it will be appreciated that the invention is not limited to the embodiments that are described and that some embodiments may not include all of the features that are described below. It will be evident, however, that various modifications and changes may be made herein without departing from the broader spirit and scope of the invention as set forth in the appended claims.
Figure 1a illustrates a geographical area (or region) 100. The geographical area 100 may be any size and may comprise (or represent) a part or all of: one or more continents and/or one or more countries and/or one or more states and/or one or more counties and/or one or more municipalities, etc. As shown in figure 1a, the geographical region 100 comprises a network (or a part thereof) 105 of navigable elements - the navigable elements are illustrated in figure 1a as respective solid lines connecting respective locations, illustrated as nodes/circles. As discussed above, a navigable element may be viewed as a part of a transport network 105 along which travel may be conducted by a mobile unit (where the mobile unit could be, for example, a vehicle, a person, etc.) - thus, for example, the navigable elements that form the network 105 may comprise: one or more roads, or parts thereof; and/or one or more routes, or parts
SUBSTITUTE SHEET (RULE 26)
thereof, taken by ferries or trains; and/or one or more paths, or parts thereof, for pedestrians; and/or one or more cycle paths, or parts thereof; etc.
For ease of discussion in the following description the navigable elements will be assumed to be road segments, along which road vehicles may travel. Here the network 105 will be a (or a portion of a) road network. However, it will be understood that the systems and methods described herein are not limited to road networks and may be applied to cycle path networks, footpath networks, shipping lanes, flight lanes and so on, or any combination thereof.
Figure 1a also illustrates an example mobile unit 110 - in this example a road vehicle. It will be understood that the vehicle 110 may be navigating (or travelling over) the road network 105 using a suitable navigational system. The navigational system may provide real-time (or turn-by-turn) navigational guidance to allow the vehicle 110 to follow a pre-defined route. Additionally, or alternatively the pre-defined route may have been generated using a route generation tool (such as may be present in the navigational system). In some cases the navigational system may display a visual representation of the road network 105 along with an indication of the vehicle’s 110 location (or position) on the road network 105.
Figure 1b schematically illustrates the vehicle 110 and associated navigational client (or system) 215. The navigational client 215 is connected to a navigation data processing system 240 via a network 210. As illustrated there may be multiple vehicles 110 each with their own navigational client 215. Whilst figure 1b illustrates three such navigational clients 215, it will be appreciated that this is merely an example number of navigational clients 215 - the number, identity and location of the navigational clients 215 may change over time.
It will be appreciated that in order to enable the various functionality of a navigational system 215, map data 241 is stored, typically in one or more map databases 244. Additionally, or alternatively the map data may be stored locally on the navigational client 215. The navigational client 215 may access, or acquire, the map data from the one or more map databases 244. The map data 241 may be in one or more forms or formats, may be of one or more corresponding types, and may be suitable for one or more corresponding purposes. Map data 241 typically provides a model or representation of geospatial reality for the geographical area 100 (or a portion thereof) including the road network 105. In particular, the map data 241 incudes (or represents or
encodes) a road geometry for the geographical area 100. The road geometry will be understood as the physical (or geographical) layout of the road segments of the road network 105 in the area 100. In this way the road geometry in the map data 241 specifies (or represents or otherwise indicates) the shape and location of each road segment. Typically, road geometry is stored (or represented) as a plurality of centre lines of the road segments. A centre line may be (or comprise or be represented as) a sequence of geospatial coordinates (or points) along the length of the corresponding road segment. Such road geometry may be visualized as a plan (or overhead) view of the roads, as shown in figure 1b discussed shortly below.
The navigational system of the vehicle 110 typically generates probe (or location) data. The probe data 243 generated by navigational system generally contains location information indicating a geographic location of the vehicle 110 (e.g. GNSS information comprising a latitude, a longitude and an altitude) and a time associated with that geographic location. The probe data 243 may contain additional information such as one or more of: an identifier of the navigational system; a speed of travel of the vehicle 115; an indication of a vehicle type; etc.
The nature of navigational clients and the probe data that they generate and provide is well-known and shall not, therefore, be described in more detail herein.
The navigational system may be arranged to determine which road segment along which the vehicle 110 is currently located/travelling, e.g. in order to display a location of the vehicle 110 along the road segment to a user. It will be understood that this may be done by comparing the location information in the probe data 243 with the known road geometry in the map data 241 for the relevant geographical area 100. For example, a navigational system may place (or identify or display) the vehicle 115 on the nearest point on the centreline of the nearest road segment. This may be done so as to enable the navigational system to provide appropriate turn-by-turn navigational guidance.
Navigational clients 215 are typically arranged to transmit, or provide, the probe data 243 to a navigation data processing system 240. The navigation data processing system 240 is responsible for obtaining, or acquiring, probe data 243 that has been generated, and provided, by the navigational clients 215. The navigation data processing system 240 may store the probe data 243 in the probe data database 242. Such stored probe data provides indications where a vehicle has been present at particular locations
in the geographical area 100. As such, such stored probe data 243 may be thought of as an example of movement data for the geographical area 100.
Map data 241 may also comprise one or more logical (or schematic) representations of the road network 105, such as in the form of one or more graphs. An example of map data is “SD” map data or “Standard Definition” map data. This map data represents stationary features (such as road infrastructure features for the road network 105) that are relevant for vehicle navigation systems. The SD map data may include a schematic representation of the road network 105 in the form of a graph representation, with the graph comprising arcs and nodes. The graph may be directed or undirected. The arcs are connected by nodes. The arcs and nodes of an SD map are associated with, or correspond to, road segments and connections of road segments, respectively. For the nodes, the SD map data comprises data for an associated point geometry, e.g. coordinates corresponding to the location of the node, or the connection, in the geographical region. Arcs have an associated road trajectory line, often referred to as a road centreline, representing the geometry of the road segment. In this way the SD map data stores the road geometry discussed above in the form of said road trajectory line which may be considered equivalent to the centre line of a road segment as discussed above. As such, the SD map data comprises data for the geometry of the arcs. The SD map data may store other data relating to node and/or arcs (e.g. speed limits applicable to road segments).
Other examples of map data would be known to the skilled person including:
• “ADAS” map data or “Advanced Driver Assistance System” map data. The ADAS map data may be viewed as a particular type of SD map data. The ADAS map data represents stationary features (such as road infrastructure features for the road network 105, for example road curvature and road gradient) that are relevant for ADAS functions (such as predictive cruise control).
• “HD” map data or “High Definition” map data. The HD map data may include a graph representation of the road network, with the graph comprising arcs and nodes. The graph may be directed or undirected. The arcs are connected by nodes. The arcs and nodes of the HD map are associated with, or correspond to, road areas and connections of road areas, respectively. For some arcs, referred to as road arcs, the associated road area is one or more lanes of a road segment. For some arcs, referred to as junction arcs, the associated area is a
road junction. For the nodes, the HD map data comprises data for an associated point geometry, e.g. coordinates corresponding to the location of the node, or the connection, in the geographical region. Road arcs have an associated road trajectory line (or road centreline) representing the geometry of the road segment and may have one or more lane trajectory lines (or lane centrelines) representing the geometry of a respective lane of the road segment. The geometry of a junction area may be specified by one or more junction arcs. A junction area may also have one or more junction arcs corresponding to the geometry of a respective permitted manoeuvre at that junction - for example, for each entry lane into that junction, there may be a junction arc corresponding to a manoeuvre to each exit lane from that junction accessible from that entry lane. The HD map data comprises data for the geometry of the arcs. In this way it will be understood that the HD map data stored the road geometry discussed above in the form of these arc centrelines.
As such, it will be appreciated that road geometries stored (or represented or otherwise provided) as graphs (such as in the formats described above) typically comprise a set of nodes, and a set of edges. The set of edges connect various pairs of nodes in the set of nodes. Typically, each node corresponds to a particular point in (or coordinate) in the geographical area. The set of nodes and the set of edges are arranged to provide a representation of the road geometry in the geographical area, with the edges indicating the path of the corresponding road segment.
In this way it will be understood that some nodes may represent (or correspond to) junctions (or intersections) between roads (or road segments). Such nodes have three or more edges connected to them. It will also be understood that conversely some nodes may be (or represent) shape nodes (or shape points). Shape points typically connect (or have connected to them) two edges. Shape points are placed to enable the edges connecting them to approximate (or represent) a curved road segment (such as a bend or corner).
Figure 1c shows a stored road geometry 280 for a geographical area. The stored road geometry 280 comprises a plurality of road segments 282. The stored road geometry 280 is shown as a top down (or plan) view with solid lines indicating the centre line of the road segments. In particular, the stored road geometry 280 is shown in the
form of a stored road geometry graph. The road segments are represented as a set of edges of the graph connecting a set of nodes of the graph. The edges are shown as straight lines and the nodes as black circles and white circles.
In line with the discussion above it will be appreciated that the nodes indicated by black circles represent (or correspond to) junctions (or intersections) between roads (or road segments). Similarly, the nodes indicated by white circles are (or represent) shape nodes (or shape points). As can be seen from figure 1c the shape nodes (or points) allow the bends (or curves) in the road segments to be approximated in the road geometry graph using sequences of edges. It will be understood that the stored road geometry 280 may have been generated automatically (or semi-automatically) based on various data (or information) gathered regarding the road network in the geographical area. Such data may include aerial images, satellite images, images generated from mapping vehicles that traverse the road network, existing road maps (such as from geographic surveys and highways authorities) etc. The stored road geometry 280 may have been generated and/or refined by cartographers based on said data.
Also illustrated in figure 1c is the current (or actual) road geometry 290 for the geographical area 100. The current road geometry 290 comprises a plurality of road segments 292. The current road geometry 290 is shown as a top down (or plan) view with solid lines indicating the centre line of the road segments 292. In particular, the current road geometry 290 is shown in the form of a current road geometry graph. The road segments are represented as a set of edges of the graph connecting a set of nodes of the graph. The edges are shown as straight lines and the nodes as black circles and white circles, in the same manner as the stored road geometry graph.
As can be seen in figure 1c there are a number of discrepancies between the stored road geometry 280 and the actual road geometry 290. In the examples shown in figure 1c a road segment 291 present in the actual road geometry 290 is missing in the stored road geometry 280. Also, a number of road segments 282 in the stored road geometry 280 are shown as forming a four-way junction 285, whereas in the actual road geometry 290 these road segments form a staggered junction 295. Finally, a road segment 281 (indicating a side road) is present in the stored road geometry 280 but it is not part of the actual road geometry 290. This may be because the road segment 281 never existed and was including in the stored road geometry in error. Alternatively, this
could be because the road has been removed (or closed or built over) since the generation of the stored road geometry 280.
It will be appreciated that discrepancies (or differences) between a stored (or initial) road geometry and an actual road geometry may include any of:
• a road segment present in the actual road geometry and not present in the stored road geometry;
• a road segment present in the stored road geometry and not present in the actual road geometry;
• a road segment displaced in the actual road geometry relative to the stored road geometry; and so on.
Such discrepancies may be due to an error in generating the stored road geometry. For example, the layout of a junction may be misidentified by the cartographer. Equally, such discrepancies may be due to a change in the actual road geometry subsequent to the stored geometry being generated. For example, a four-way crossing may be changed to a staggered junction for safety or traffic flow concerns. A new road (such as a bypass) may be laid, and/or existing road segments may be diverted.
It is desirable to be able to update (or correct) stored road geometry graphs such as road geometry graph 280 shown in figure 1c to bring them into line with the actual road geometry. In other words, it is desirable to be able to update the stored road geometry graph 280 to so as to obtain a road geometry graph of the actual road geometry 290. However, as described shortly below, often updates to road geometries are not provided, at least initially, as graphs. Rather, updated road geometries (or updates to stored road geometries) may in some instances provided in the form of raster images.
Methods are known which enable the identification of changes (or updates) to a stored road geometry. This includes automated methods, such as those described in copending Indian patent application number 202311068807 (and the corresponding European patent application number 23212446.1) which describes methods and systems for identifying changes to a road geometry and is incorporated herein by reference in its entirety. Other methods include manual comparison of the stored road geometry with external data, such as satellite images or arial photography of the
geographical area of the actual road geometry. Yet further methods include acquiring images of the actual road geometry, such as from images of updated maps.
However, many of these approaches provide the updates (or changes) in the form of one or more raster images (or bitmaps) of some or all of the actual road geometry.
Figure 2 schematically illustrates a road geometry graph generation system (or module) 300 for converting an image 301 of road geometry for a geographical area 100 to a road geometry graph 290 for the geographical area 100.
As discussed above the road geometry may be thought of as a representation of geospatial reality of the road network in the geographical area 100. In particular, the road geometry represents the physical layout of the road segments in the geographical area 100.
In the context of the disclosure, the image 301 of the new road geometry 290 is generally provided in the form of a pixel map (or bitmap). In other words, the image 301 of the new road geometry 290 is typically a raster image. The image of the new road geometry 290 corresponds to the geographical area 100 such that positions in the geographical area correspond to (or map to) positions in the image 301. The image 301 here generally corresponds to a top-down (or plan) representation of the road network and hence the geographical area 100. It will be understood that the image 301 need not be a photo realistic image of the geographical area, nor does the image need to be displayed, or displayable. The image 301 will generally represent the road segments as lines. Each line typically follows the path of the road segment. For example, the line may follow the centre line of the road segment. In way it will be understood that the image 301 may comprise solely of lines representing road segments.
As such, the image may be a single channel image. In other words, the image may comprise single values for each pixel. In some cases, the image may be a binary image - i.e. where each pixel is represented (or stored) as a single bit. The image may comprise (or be in the form of) an array of values, each value indicating whether a road segment is present at a corresponding position in the geographical area.
Whilst the image 301 may comprise (or represent) represent the entire road network in the geographical area 100, this is not required. In some cases the image 301 will comprise (or represent) only some of (or a portion of) the road network in a geographical area 100.
The system 300 comprises a node identification module 320 and an edge identification module 330.
The node identification module 320 is arranged to identify (or generate) a set of nodes 325 from the image 301 of the road geometry. In particular, the node identification module 320 is arranged to apply a trained node identification model 321 to the image 301 of the road geometry. The trained node identification model 321 is arranged to receive as input the image 301 of the road geometry and produce (or generate) as output a set of nodes 325 for the road geometry. As set out above the set of nodes 325 may typically comprise one or more nodes corresponding to respective intersections between pairs of roads in the road geometry. Similarly, the set of nodes 325 may typically comprise one or more other nodes corresponding to road shape points for the road geometry.
The output of trained node identification model 321 usually takes the form of an image of the set of nodes. As with the image 301 the image of the set of nodes typically corresponds to the geographical area 100 such that positions in the geographical area correspond to (or map to) positions in the image of the set of nodes. The image of the set of nodes 325 here generally corresponds to a top-down (or plan) representation of the road network and hence the geographical area 100. In this way it will be understood that the nodes in the image of the set of nodes 325 are represented (or indicated) by points (such as pixels or groups of pixels) in the location corresponding to the location of the node in the road geometry. In some cases a dilation kernel (such as 3x3, 5x5, 9x9 or other suitable kernel size) is used to generate the group of pixels. As such, the trained node identification model 321 may be thought of as performing an image segmentation function (or analysis). In this way it will be appreciated that the output image may take the form of a raster image or mask.
The trained node identification model 321 may be or comprise a convolutional encoder-decoder neural network. As described shortly below numerous convolutional encoder-decoder neural network based image segmentation architectures may be used for trained node identification model 321. As such, trained node identification model 321 may be or comprise any of: a Linet network; a Segformer 80 network; a Unet++ network; and so on. Similarly, a Transformer based segmentation architecture such as Segformer can also be used. As such the trained node identification model 321 may be or comprise a Transformer based segmentation model. It will be appreciated that numerous semantic
segmentation deep neural network architectures would be known to the skilled person and may be employed here.
The edge identification module 330 is arranged to identify (or generate) a set of edges 335 from the image 301 of the road geometry and the set of nodes 325. In particular, the edge identification module 330 is arranged to apply a trained edge identification model 331 to the image 301 of the road geometry and the set of nodes 325. In this way the edge identification module 330 is able to generate (or identify) the set of edges 325 that connect the pairs of nodes in the set of nodes that are connected in the underlying road geometry. As such, the set of nodes 325 and the set of edges 335 form road geometry graph 290 for the road geometry depicted (or represented) in the image 301.
The edge identification module is usually arranged to iteratively identify (or generate) the edges for the set of edged 335 on a node-by-node basis.
For example, the edge identification model 331 is usually arranged to receive as inputs the image 301 of the road geometry, the set of nodes 325, and a given node 329 (or query node) of the set of nodes 325. The trained edge identification model 331 is then arranged to and produce (or generate) as output the one or more nodes of the set of nodes 325 that are directly connected to the query node 329. By directly connected it will be understood as the nodes connected to the query node 329 by a single edge. In this way the pairs of nodes formed by the query node and each other node identified by the trained edge detection model 331 form (or specify or otherwise identify) the edges for the given query node 329 in the road geometry.
The edge identification module 330, may therefore iterate through the set of nodes 325 applying the edge identification model 331 to each node in turn as the respective query node 329.
In some examples the image 301 of the road geometry, the set of nodes 325, and optionally also the given node 329 (or query node) of the set of nodes 325 may be provided to the edge identification model 331 as a composite image. As described above the set of nodes 325, and by extension the given node 329 (or query node) of the set of nodes 325 may each be provided or generated as a respective image. These images along with the image 301 of the road geometry have a common mapping (or correspondence) to the positions of the geographical area. In such cases the image 301 of the road geometry, the image of the set of nodes 325, and the image of the given
node 329 (or query node) of the set of nodes 325 be composited directly to from the composite image that is input into the edge identification model 331. The composite image may therefore comprise the channel (or channels) of the image 301 of the road geometry, the channel (or channels) of the image of the set of nodes 325, and the channel of the image of the given node (or query node) of the set of nodes 325. In other words, each pixel of the composite image comprises the channels of the same pixel of the image 301 of the road geometry and the channels of the same pixel of the image of the set of nodes 325 and the channels of the same pixel of the image given node (or query node) of the set of nodes 325. For example, when the images are all single channel images the resulting composite image is a three channel image.
Alternatively, images may be overlaid over each other image using standard image processing techniques, to form the composite image. Examples of suitable image processing techniques include any of: alpha blending, multiply blending, screen blending, overlay blending, and so on.
As with the trained node identification module 321 the output of the trained edge identification module 331 may take the form of an image of one or more nodes that are directly connected to the query node. As with the image 301 the image of the set of nodes typically corresponds to the geographical area 100 such that positions in the geographical area correspond to (or map to) positions in the image. The image generally corresponds to a top-down (or plan) representation of the road network and hence the geographical area 100. In this way it will be understood that the nodes in the image are represented (or indicated) by points (such as pixels or groups of pixels) in the location corresponding to the location of the node in the road geometry. As such, the trained edge identification model 331 may be thought of as performing an image segmentation function (or analysis). In this way it will be appreciated that the output image may take the form of a raster image or mask.
The trained edge identification model 331 may be or comprise a convolutional encoder-decoder neural network. As described shortly below numerous convolutional encoder-decoder neural network based image segmentation architectures may be used for trained edge identification model 331. As such, trained edge identification model 331 may be or comprise any of: a Linet network; a Segformer 80 network; a Unet++ network; and so on. Similarly, a Transformer based segmentation architecture such as Segformer can also be used. As such the trained edge identification model 331 may be or comprise
a Transformer based segmentation model. It will be appreciated that numerous semantic segmentation deep neural network architectures would be known to the skilled person and may be employed here.
The system 300 may, in effect, be thought of as being arranged to vectorize raster images of road geometries to generate vector (or graph) representations of said road geometries. As set out shortly below, the system 300 may therefore be used as part of a workflow to enable the efficient updating of existing road geometries stored in the form of graphs of road geometries, when errors or discrepancies in those stored road geometries have been identified.
Figure 3 schematically illustrates a system 400 for updating an initial (or stored) road geometry graph 280 for a geographical area, outputting a further road geometry graph 480. The system 400 comprises a road geometry image module 410, a road geometry graph generation module 300 as described above; and a graph merge module 440.
The road geometry image module 410 is arranged to obtain an image 301 (such as a raster image) of the updated (or new) road geometry for a geographical area 100. As discussed above the updated (or new) road geometry may be thought of as a representation of geospatial reality of the road network in the geographical area 100. In particular, the road geometry represents the physical layout of the road segments in the geographical area 100. In the context of the disclosure, the image 301 of the new road geometry 290 is generally provided in the form of a pixel map (or bitmap) as described previously.
The road geometry image module 410 may be arranged to receive the image 301 of the new road geometry from an external source. For example, the image 301 may be a drawing made by a cartographer, or be generated automatically (or semi-automatically) based on one or more external sources of information. In such scenarios the image 301 is provided to the road geometry image module 410 as a specification of how the road geometry should look.
Alternatively, the road geometry image module 410 may be arranged to generate the image of 301 of the updated road geometry based on road geometry corrections 412. Road geometry corrections 412 may be thought of as specifying differences between the road geometry of the stored road geometry graph and the actual road geometry of the geographical area 100. The road geometry image module 410 is typically arranged to
receive the road geometry corrections 412 as an image of road geometry corrections. The value at each pixel of the image of road geometry corrections 412 indicates whether the presence of a road in the initial geometry at the position corresponding to the pixel is correct. In this way it will be appreciated that the image of road geometry corrections 412 may take the form of a labelled image or mask.
Typically, the image of road geometry corrections 412 comprises one or more labelled road segments. The road segments may be labelled according to the values of the pixels that make up the road segments. As such, the image of road geometry corrections 412 may comprise one or more colour-coded road segments. The labels of the road segments may indicate any of: a road segment present in the actual road geometry and not present in the initial road geometry (a road to be added); a road segment present in the initial road geometry and not present in the actual road geometry (a road to be deleted); a road segment present in the actual road geometry and present in the initial road geometry; and so on.
It will be appreciated that the image of road geometry corrections 412 represents (or encodes or otherwise comprises) corrections to the initial road geometry. The automatic generation of such road geometry corrections 412 in the form of labelled (or colour coded) images is described in co-pending Indian patent application, number 202311068807 (and the corresponding European patent application, number EP23212446.1) which describes methods and systems for identifying changes to a road geometry and is incorporated herein by reference in its entirety.
Where the image of road geometry corrections 412 comprises (or includes or specifies) roads to be deleted (or road deletions) the road geometry image module 410 may be arranged to delete the corresponding roads from the stored road geometry graph 280. In particular, the road geometry image module 410 may be arranged to identify a road segment in the stored road geometry graph corresponds to road segment to be deleted in the road geometry corrections 412 based on an overlap between the two road segments. For example, the road geometry image module 410 may, for each road segment (or edge) in the stored road geometry graph, convert the respective road segment into a raster bitmap T. The road geometry image module 410 may then calculate the pixel overlap of T on a raster bitmap P formed of the channel of the road geometry corrections 412 corresponding to road deletions. Where the overlap s above a pre-defined threshold (such as 0.9 or 90%) the road geometry image module 410 may
then deleted the respective edge from the stored road geometry graph. An example of calculating such an overlap O is:
where T is a sequence of N pixel binary values [To,
TN and P is a sequence of N pixel binary values {Po, Pp - , PN and len(T) is the number of non-zero elements of T.
Where the image of road geometry corrections 412 comprises (or includes or specifies) road segments present in the actual road geometry and not present in the initial road geometry (roads to be added) and road segments present in the actual road geometry and present in the initial road geometry (roads already present) the image 301 of the new road geometry for the geographical area 100 may be generated directly from the image of road geometry corrections 412. For example, the road geometry image module 410 may be arranged to form the image 301 of the new road geometry by merging (or otherwise combining) the channels of the image of road geometry corrections 412 corresponding to the road segments present in the actual road geometry and not present in the initial road geometry and road segments present in the actual road geometry and present in the initial road geometry.
Alternatively, where some or all of the road segments present in the actual road geometry and present in the initial road geometry are omitted from the image of road geometry corrections 412 the road geometry image module 410 may generate the image 301 of the new road geometry by combining a raster image of the of the initial road geometry graph with the channels (or channels) of the image of road geometry corrections 412 corresponding to the roads to be added. As set out above, to ensure that roads to be deleted are not present in the image 301 such roads may be deleted from the initial road geometry graph prior to the raster image of the of the initial road geometry graph being generated. Alternatively, the channel (or channels) the image of road geometry corrections 412 corresponding to roads to be deleted may be subtracted from the image 301. Generating a raster image from a vector (or graph) representation is a well-known image processing technique and not described further herein.
The road geometry graph generation module 300 is arranged to receive image 301 of the new road geometry from the road geometry image module 410. As discussed above in relation to figure 2 the road geometry graph generation module 300 is arranged
to convert the image 301 of road geometry for a geographical area 100 to a road geometry graph 290 for the geographical area 100. This road geometry graph 290 may be thought of as an updated road geometry graph 290. Where the image 301 of the new road geometry includes (or comprises) the road geometry for the whole geographical area 100 this updated road geometry graph 290 similarly comprises a graph of the updated road geometry of the whole geographical area. However, it will be appreciated that the image 301 of road geometry for the geographical area may not comprise (represent) the entire (or whole) road geometry for the geographical area 100. For example, the road geometry corrections 412 may in some cases only cover (or relate to) a portion of the geographical area. As such, in some cases the updated road geometry graph 290 may only comprise (or relate to) a portion of the road geometry of the geographical area 100.
In either case the updated road geometry graph 290 at this stage will not ordinarily comprise the various metadata (or attributes) regarding the road segments that is stored in the initial road geometry graph. Typically, each road segment comprises (or is associated with) one or more attributes. An attribute may be thought of as describing (or encoding or otherwise indicating) a real-world feature of the road segment. Examples of attributes include any of: a measure of congestion for the road segment; a vehicle restriction for the road segment; a speed limit for the road segment; a functional road class of the road segment; a width of the road segment; a slope (such as a maximum slope) of a road segment; a turn radius (such as a maximum or minimum turn radius) of a road segment; and so on. Examples of functional road classes include: arterial, collector, and local. Such attributes may also comprise unique identifiers for road segments, which may be referenced in user’s stored routes etc. As such, it is desirable that the attributes are preserved in the updated road geometry graph 290 for road segments that have not changed between the initial road geometry graph 280 and the updated road geometry graph 290.
To that end the graph merge module 440 is arranged to merge the updated road geometry graph with the initial stored geometry graph. In particular, the graph merge module 440 may be arranged to update the attributes of one or more roads in the updated road geometry with the attributes of the one or more identified corresponding roads in the initial stored geometry. Typically, the attributes of the one or more identified corresponding roads in the initial stored geometry are assigned to the corresponding one
or more roads in the updated road geometry. It will be appreciated that correspondences between pairs of road segments in the updated road geometry graph the initial stored geometry graph may be identified based on the road segments have the same coordinates in both graphs.
Where the updated road geometry graph 290 only comprises a portion of the road geometry for the geographical area 100 the graph merge module 440 may be arranged to form the union of the initial road geometry graph 280 and the updated road geometry graph 290. It being appreciated that such a union is formed after the road deletions have been applied to the initial road geometry graph 280.
In either case, however, it will be appreciated that it is also desirable to maintain road attributes from the initial road geometry graph for road segments that have in effect been moved or altered between the initial road geometry graph 280 and the updated road geometry graph 290. For example, a deletion and addition pair in the road geometry corrections 412 may in effect be correcting an inaccuracy in the positioning or path of a road segment. As such the “new” road segment may correspond directly to the “deleted” road segment, albeit with a modification in the road segments path.
As such, in a variant of the system 400 the graph merge module 440 is arranged apply a trained correspondence (or matching) model 441 to identify correspondences (or mappings) between one or more roads in the updated road geometry graph and one or more respective roads in the initial stored geometry graph. The graph merge module 440 may then update the attributes of one or more roads in the updated road geometry with the attributes of the one or more identified corresponding roads in the initial stored geometry. By using a trained correspondence model correspondences between road segments that no longer share the same coordinates may be identified.
In this variant the graph merge module 440 is usually arranged to iteratively identify pairs of corresponding edges (or road segments) in the two graphs an edge-by- edge basis.
For example, the trained correspondence model 441 is usually arranged to receive as inputs the initial road geometry graph 280, the updated road geometry graph, and a given edge (or query edge) of the set of edges in the updated road geometry graph 290. The trained correspondence model 441 is then arranged to and produce (or generate) as output the edge in the initial road geometry graph 280 that matches (or corresponds to) the query edge. Corresponding here will be understood as the edge that
represents the same road as the query edge despite a difference in graph co-ordinates. In effect identifying an edge in the initial road geometry that has been moved to form the query edge in the updated road geometry.
The graph merge module 440, may therefore iterate through the set of edges 335 in the updated road geometry 290 applying the trained correspondence model 441 to each edge in turn as the respective query edge.
In some examples the initial road geometry graph 280, the updated road geometry graph 290, and a given edge (or query edge) of the set of edges in the updated road geometry graph 290 may be provided to trained correspondence model 441 as a composite image. The initial road geometry graph 280, the updated road geometry graph 290, and a given edge (or query edge) of the set of edges in the updated road geometry graph 290 may each be provided or generated as a respective image. These images have a common mapping (or correspondence) to the positions of the geographical area. In such cases the image 401 of the initial road geometry graph 280, the image 402 of the updated road geometry graph 290, and the image 409 of the given edge (or query edge) of the set of edges in the updated road geometry graph 290 be composited directly to from the composite image that is input into trained correspondence model 441. The composite image may therefore comprise the channel (or channels) of the image of the initial road geometry graph 280, the image of the updated road geometry graph 290, and the image of the given edge (or query edge) of the set of edges in the updated road geometry graph 290. In other words, each pixel of the composite image comprises the channels of the same pixel of the image of the initial road geometry graph 280, the image of the updated road geometry graph 290, and the image of the given edge (or query edge) of the set of edges in the updated road geometry graph 290. For example, when the images are all single channel images the resulting composite image is a three-channel image.
Alternatively, images may be overlaid over each other image using standard image processing techniques, to form the composite image. Examples of suitable image processing techniques include any of: alpha blending, multiply blending, screen blending, overlay blending, and so on.
The output of trained correspondence model 441 may take the form of an image 445 of the edge in the initial road geometry graph 280 that corresponds to the query edge. As such, the trained correspondence model 441 may be thought of as performing
an image segmentation function (or analysis). In this way it will be appreciated that the output image may take the form of a raster image or mask.
The trained correspondence model 441 may be or comprise a convolutional encoder-decoder neural network. As described shortly below numerous convolutional encoder-decoder neural network based image segmentation architectures may be used for the trained correspondence model 441. As such, the trained correspondence model 441 may be or comprise any of: a Linet network; a Segformer 80 network; a Unet++ network; and so on. It will be appreciated that numerous semantic segmentation deep neural network architectures would be known to the skilled person and may be employed here.
In any case the merged road geometry graphs form the further road geometry graph 480 output by the system 400 as the output to updating the initial road geometry graph.
Figure 4 is a flowchart illustrating a method 490 that may be performed by the system 400 of figure 3. The method 490 is a method of updating an initial road geometry graph 280 for a geographical area 100, comprising the following steps.
At a step 491 an image 301 of new (or predicted) road geometry for the geographical area 100 is obtained such as by the geometry image module 410. As discussed above the image 301 may be received from an external source or generated by the geometry image module 410. In particular, the geometry image module 410 may apply an image of road geometry corrections to an image of the initial stored road geometry generated from the initial road geometry graph to generate the image 301.
At a step 492 the image 301 of new road geometry is converted to an updated (or new) road geometry graph 290 of the geographical area 100, such as by the road geometry graph generation module 300. The step 492 may comprise the sub-step 493 and the sub-step 494.
The sub-step 493 comprises applying a first trained machine learning model (such as the trained node identification model 321) to the image 301 of road geometry to obtain a set of nodes 325 of the updated road geometry graph 290.
The sub-step 494 comprises applying a second trained machine learning model (such as the trained edge identification model 331) to the image 301 of road geometry and the obtained set of nodes 325 to obtain a set of edges 335 of the updated road geometry graph 290. As described previously the sub-step 494 may comprise iteratively
applying the second trained machine learning model to each node in the set of nodes to obtain a respective sub-set of nodes which are directly connected to said node.
The set of nodes and the set of edges forming a graph of the new road geometry 290 as the updated geometry graph.
At a step 495 the updated road geometry graph 290 is merged with the initial stored geometry graph 280, such as by the graph merge module 440. The step 495 may comprise updating the attributes of one or more roads (or edges) in the updated road geometry with the attributes of the one or more identified corresponding roads (or edges) in the initial stored geometry. To that end the step 495 may comprise comprises applying a third machine learning model (such as the trained correspondence model 341) to identify correspondences between one or more roads in the updated road geometry graph and one or more respective roads in the initial stored geometry graph. As described previously the step 495 may comprise iteratively applying the third trained machine learning model to each edge in the set of edges 335 to identify respective corresponding edges in the initial road geometry graph 290.
It will be appreciated that the step 492 may be carried out in isolation from the other method steps and itself forms a complete method for vectorizing (or forming a graph of) a raster image of road geometry.
Figure 5a schematically illustrates a training system 500 for training road geometry graph generation system, such as the road geometry graph generation system 300 described in relation to figure 2. The system 500 comprises a training data module 510, and a training module 520.
The training module 520 is arranged to train a first machine learning model (such as the node identification model 321) according to a first training data set 415. Training of the node identification model 321 is such that the trained node identification model 321 is configured to take as input an image 301 of road geometry and generate as output a corresponding set of nodes 325, as described above in relation to figure 2. As will be understood the node identification model 321 comprises a plurality of trainable (or adjustable) parameters which during training are optimized. The specific training process is dependent on the architecture of the node identification model 321, but as set out above architectures such as Linet; Segformer B0; Unet++; and so on may be used. Suitable encoders include the Resnet50 encoder, the VGG19 encoder, ResNet18, ResNet34, ResNet101, ResNet150, EfficientNetB1-B5, and so on. Suitable loss
functions include the Jaccard loss function, the DiceLoss function, CrossEntropy loss function, or combination thereof. Typically, for such architectures an adaptive optimizer, such as Adam, AdamW, Adagrad, and so on may be used. However, non-adaptive methods such as Gradient descent, Stochastic gradient descent and so on may be used. Such training processes are well-known to the skilled person and not described further herein.
The first training data set 415 comprises a set of existing road geometry graphs 515, which have been converted to raster images as described above. The training data set 415 further comprises, for each image of an existing road geometry graph, a respective label. The label indicates a respective set of training nodes for the image of the road geometry graph. In particular, the label takes the form of the required output of the trained node identification model 321. As such, the label usually takes the form of an output image of a set of nodes, as described above in relation to figure 2. In some cases, the respective set of training nodes is simply the set of nodes of the existing road geometry graph. In other cases, as discussed shortly below, alternative set of training nodes are generated for the image of each road geometry graph.
The training module 520 is also arranged to train a second machine learning model (such as the edge identification model 331) according to a second training set. Training of the edge identification model 331 is such that the trained edge identification model 331 is configured to take as input a composite image comprising an image 301 of road geometry, a corresponding set of nodes 325 and a query node, and generate as output an indication of the edges connected to the query node according to the road geometry, as described above in relation to figure 2. As will be understood the edge identification model 331 comprises a plurality of trainable (or adjustable) parameters which during training are optimized. The specific training process is dependent on the architecture of the edge identification model 321, but as set out above architectures such as Linet; Segformer 80; Unet++; and so on may be used. Suitable encoders include the Resnet50 encoder ResNet18, ResNet34, ResNet101, ResNet150, EfficientNetB1-B5, and so on. Suitable loss functions include the Jaccard loss function he DiceLoss function, CrossEntropy loss function, or combination thereof. Typically, for such architectures an adaptive optimizer, such as Adam, AdamW, Adagrad, and so on may be used. However, non-adaptive methods such as Gradient descent, Stochastic gradient
descent and so on may be used. Such training processes are well-known to the skilled person and not described further herein.
The second training data set 416 comprises a set of query nodes and corresponding images of existing road geometry graphs from the set of road geometry graphs. The set of query nodes comprise some or all of the nodes from the existing road geometry graphs. Each query node is labelled with the road geometry graph edges connected to the query node. In particular, the label takes the form of the required output of the trained node identification model 321. As such, the label usually takes the form of an output image of a sub-set of nodes, as described above in relation to figure 2.
The training data module 510 is arranged to generate (or compile) the training data set 415. The training data module 510 may be arranged to receive (or obtain) a set of existing road geometry graphs. Each road geometry graph comprises a set of initial nodes and a set of edges. It will be appreciated that the accuracy (or otherwise) of the existing road geometries is advantageously not important for the training process here and as such the road geometries graphs are therefore readily obtained from existing map databases. The training data module 510 is arranged to, for each existing road geometry graph, generate a raster image of said existing road geometry from said existing road geometry graph. Any suitable known rasterization technique may be used.
The training data module 510 is arranged to generate (or identify) a respective set of training nodes for the image of each road geometry graph. In some cases, the set of training nodes is simply the nodes of the corresponding road geometry graph. Alternatively, the training data module is arranged to generate respective set of training nodes for the image of each road geometry graph, as enlarged sets of nodes. In particular, the training data module 510 is arranged to, for a given set of nodes of a road geometry graph, generate a corresponding enlarged set of nodes by interpolating additional nodes along the edges of the road geometry graph. Typically, these additional nodes are additional shape points. Any suitable interpolation technique may be used including but no limited to any of: linear interpolation, cubic spline interpolation. Particularly advantageous results have been identified with an interpolation distance of around 10 meters and a kernel size of 9x9, as will be described shortly.
In this way it will be understood that the training data module 510 is arranged to generate training data sets 415; 416 that do not require manual labelling but instead can be generated automatically from existing road geometry graphs regardless of their
accuracy. Also, it has been inventively realized that by adopting a two-stage vectorization process using two trained machine learning models the graphs generated form the raster images of road geometries are improved with respect to existing general image vectorization techniques. Further improvement is found by training those machine learning models on road geometries. In particular, existing general image vectorization techniques tend to generate excessive numbers of shape points and edges attempting to track complex road curves. This is disadvantageous for road geometry graphs as such fidelity of shape points is not practically useful and moreover inclusion of excessive shape points and edges significantly degrades the performance of many process that use the road geometry graphs as inputs, such as routing algorithms and so on. Use of an enlarged or dense set of shape points when training the node identification model further improves the accuracy of the generated road geometry graphs as demonstrated below in appendix A.
It will be appreciated that the trained correspondence model 341 may similarly be trained using a suitable set of labelled training images. In particular, previous manual updates to road geometry graphs where roads were moved or altered provides suitably labelled training data. In particular, such updates will comprise in that the individual transactions will typically comprise the initial road geometry (which may be converted into an image) and the updated road geometry (which similarly may be converted to an image). Roads that have been modified by hand will have typically had their attributes updated so the road ID is maintained. As such roads (or edges) that have been moved or modified as part of the update may be easily identified, and the data set labeled accordingly.
In an example implementation it was found that using as few as 400 training images of this kind a correspondence model using the Unet segmentation architecture with a Resnet50 encoder and a Jaccard loss function could be suitably trained, achieving a 95% precision score and a 98% recall score. Such a correspondence model was arranged to receive a composite image input as described above in relation to figure 4.
Figure 5b shows two examples of node interpolation as described above in reference to figure 5a. In particular figure 5b shows two original road geometry graphs 580 with their original nodes. The results of node interpolation by linear interpolation with an interpolation distance of 10 meters and a dilation kernel of 9x9 are shown as the road geometry graphs 590.
As described previously methods are known which enable the identification of changes (or updates) to a stored road geometry. This includes automated methods, such as those described in co-pending Indian patent application number 202311068807 (and the corresponding European patent application number 23212446.1) which describes methods and systems for identifying changes to a road geometry and is incorporated herein by reference in its entirety. However, for completeness figure 6 schematically illustrates a system 3000 for identifying changes (or updates) to a road geometry. The system 3000 comprises a road geometry module 3100, a movement data module 3200, a compositing module 3300, and a road geometry analysis module 3400.
The road geometry module 3100 is arranged to obtain an image 3120 (such as a raster image) of an initial road geometry 280 for a geographical area 100. As discussed above the initial road geometry may be thought of as a representation of geospatial reality of the road network in the geographical area 100. In particular, the road geometry represents the physical layout of the road segments in the geographical area 100. However, as discussed above the initial road geometry may comprise one or more discrepancies compared to (or with respect to) the actual road geometry of the geographical area 100.
In the context of the disclosure, the image 3120 of the initial road geometry 280 is generally provided to the road geometry module in the form of a pixel map (or bitmap). In other words, the image 3120 of the initial road geometry 280 is typically a raster image. The image of the initial road geometry 280 corresponds to the geographical area 100 such that positions in the geographical area correspond to (or map to) positions in the image 3120. the image 3120 here generally corresponds to a top-down (or plan) representation of the road network and hence the geographical area 100. It will be understood that the image 3120 need not be a photo realistic image of the geographical area, nor does the image need to be displayed, or displayable. The image 3120 will generally represent the road segments as lines (such as shown in figure 1c discussed previously). Each line typically follows the path of the road segment. For example, the line may follow the centre line of the road segment. In way it will be understood that the image 3120 may comprise solely of lines representing road segments.
As such, the image may be a single channel image. In other words, the image may comprise single values for each pixel. In some cases, the image may be a binary image - i.e. where each pixel is represented (or stored) as a single bit. The image may
comprise (or be in the form of) an array of values, each value indicating whether a road segment is present at a corresponding position in the geographical area.
The road geometry module 3100 may be arranged to obtain the image 3120 of the initial road geometry from a data store (such as one or more map databases 244). Alternatively, the road geometry module may be arranged to generate the image 3120 of the initial road geometry from map data, such as any of the map data described above. The road geometry module 3100 may be arranged to obtain such map data from a data store (such as one or more map databases 244). Generation of images of road geometries from map data is a process that would be well known to the skilled person and hence will not be discussed further herein.
The movement data module 3200 is arranged to obtain an image 3220 (such as a raster image) of movement data for the geographical area. The movement data may comprise a plurality of historical journeys in the geographical area. The movement data may, additionally, or alternatively, comprise probe data as described above. As such, the movement data may be thought of as providing indications of geographical positions, during their respective journeys in the geographical area, of vehicles that have previously travelled in the geographical area. The movement data may be aggregate data. In particular, the movement data may indicate the number (or relative number) of vehicles that have traversed a particular geographical position.
The image 3220 of the movement data in typically in the form of a pixel map (or bitmap). In other words, the image 3220 of the movement data is typically a raster image. The image 3220 of the movement data corresponds to the geographical area 100 such that positions in the geographical area correspond to (or map to) positions in the image 3220 of the movement data. In order to aid the compositing operation described shortly below, the correspondence (or mapping) between the positions in the geographical area and the positions in the image 3220 of the movement data is usually the same as the correspondence (or mapping) between the positions in the geographical area and the positions in the image 312 of the road geometry. In other words, a given pixel position in the image 3120 of the road geometry and the image 3220 of the movement data corresponds to the same position in the geographical area 100.
Therefore, the image 3220 of the movement data is usually a top-down (or plan) representation of the geographical area 100. It will be understood that the image 3220 of the movement data need not be a photo realistic image of the geographical area, nor
does the image need to be displayed, or displayable. The image 3220 of the movement data indicates vehicles movement over the geographical area. In particular the image 3220 of the movement data indicates a historical amount (or flux or number or presence) of vehicles traversing particular positions of the geographical area. Typically, each element (or pixel) of the image 3220 of the movement data indicates an amount of historical journeys (or vehicles) that traversed the respective portion of the geographical area corresponding to said element. Here the value of each pixel indicates the amount of vehicles. For example, for a single channel image the single value of each pixel may provide a vehicle density (or amount). An example of such an image would be a greyscale image. Equally it will be appreciated that the image 3220 of the movement data may comprise a number of channels. For example, the image 3220 of the movement data may be a three-channel image (such as an RGB image). As such, the image 3220 of the movement data may be in the form of a heatmap with the colour spectrum representing the range of vehicle amounts. In a specific example the image 3220 of the movement data may be a three-channel image with each channel being a single value. In some cases the value for each channel may be encoded as a single bit. Here, the value of 1 in the first channel may indicate a “high” relative amount of vehicles traversing that position. A value of 1 in the second channel may indicate a “medium” relative amount of vehicles traversing that position. A value of 1 in the third channel may indicate a “low” relative amount of vehicles traversing that position. A zero value pixel (where all channels are 0 or alternatively where all channels are 1) may indicate no vehicles (or below a threshold number of vehicles) have traversed that position.
Of course, it will be appreciated that more than a single bit may be used for each channel. Typically, in an RGB image each channel is represented as an 8 bit value (ranging between 0 and 255). In such an example, higher values indicate high intensity and lower values indicates low intensity for each corresponding RGB channel. A path through the available colour spectrum for such an image may be mapped to vehicle intensity. Construction of such heatmaps is well-known and will not be described further herein.
It will therefore be understood that the image may comprise single values for each pixel (such as in the greyscale image or single channel image referred to above). The image may therefore comprise (or be in the form of) an array of values. Alternatively, the image may comprise multiple values (or channels) for each pixel. The image may
therefore comprise (or be in the form of) an array of vectors. The components of each vector being the channels of the image.
The movement data module 3200 may be arranged to obtain the image 3220 of the movement data from a data store (such as the probe data database 242). Alternatively, the movement data module 3200 may be arranged to generate the image 322 of the movement data from movement data. The road geometry module 3100 may be arranged to obtain such movement data from a data store (such as the probe data database 242). Generation of heatmaps of movement data and the like from journey and/or probe data is a process that would be well known to the skilled person and hence will not be discussed further herein, see for example European Patent 2679956 - Method and Apparatus for Detecting Deviations from Map Data)
The compositing module 3300 is arranged to form a composite image 3320 from the image 3120 of the initial road geometry and the image 3220 of the movement data. As described above typically, the image 3120 of the initial road geometry and the image 3220 of the movement data have a common mapping (or correspondence) to the positions of the geographical area. In such cases the from the image 3120 of the initial road geometry and the image 3220 of the movement data may be composited directly to from the composite image. The composite image may therefore comprise the channel (or channels) of the image 3120 of the initial road geometry and the chancel (or channels) of the image 3220 of the movement data. In other words, each pixel of the composite image comprises the channels of the same pixel of the image 3120 of the initial road geometry and the channels of the same pixel of the image 3220 of the movement data. For example, when the image 3120 of the initial road geometry is a single channel image and the image 3220 of the movement data is a three channel image the resulting composite image is a four channel image.
Alternatively, one of the image 3120 of the initial road geometry and the image 3220 of the movement data may be overlaid over the other image using standard image processing techniques, to form the composite image. Examples of suitable image processing techniques include any of: alpha blending, multiply blending, screen blending, overlay blending, and so on.
Where the image 3120 of the initial road geometry and the image 3220 of the movement data do not have a common mapping (or correspondence) to the positions of
the geographical area 100, the compositing module 3300 is arranged to transform one or both of the images, such that the resulting images have a common mapping (or correspondence) to the positions of the geographical area 100. This allows the compositing module 3300 to form the composite image using the resulting images, in the manner described above.
As such it will be understood that each element (or pixel) of the composite image is based on the corresponding pixels of the image 3120 of the initial road geometry and the image 3220 of the movement data. Also, each element (or pixel) of the composite image 3320 corresponds (or maps) to a respective position in the geographical area 100. As described above in relation to the image 3220 of the movement data, the composite image 3320 may comprise (or be in the form of) an array of vectors. The components of each vector being the channels of the composite image, these channels comprising the channels of the image 3120 of the initial road geometry and the image 3220 of the movement data.
The road geometry analysis module 3400 is arranged to generate road geometry corrections (or potential, or candidate road geometry corrections) by applying a trained road geometry correction model 3450 to the composite image 3320. The trained road geometry correction model 3450 is arranged to receive as input the composite image 3320 and produce (or generate) as output indications of errors in the initial road geometry. For instance, the output 3420 of the trained road geometry correction model 3450 may indicate, for each element (or pixel) of the composite image whether the presence of a road in the initial geometry at the position corresponding to said element is correct.
The output of the trained road geometry correction model 3450 usually takes the form of an output image 3420 corresponding to the composite image 3320. The value at each pixel of the output image indicates whether the presence of a road in the initial geometry at the position corresponding to the pixel is correct. As such, the trained road geometry correction model 3450 may be thought of as performing an image segmentation function (or analysis). In this way it will be appreciated that the output image may take the form of a labelled image or mask.
The trained road geometry correction model 3450 may be or comprise a convolutional encoder-decoder neural network. As described shortly below numerous convolutional encoder-decoder neural network based image segmentation architectures
may be used for the trained road geometry correction model 3450. As such, the trained road geometry correction model 345 may be or comprise any of: a Linet network; a Segformer BO network (or any of the variants B1 to B5); a Unet++ network; and so on. It will be appreciated that numerous semantic segmentation deep neural network architectures would be known to the skilled person and may be employed here.
The trained geometry correction model 3450 may, in effect, be thought of as identifying discrepancies (or errors) in the initial road geometry, based on the information available in the movement data. For example, where movement data shows a high volume of vehicles moving alongside a road indicated in the initial road geometry it may be deduced that the position of the road is erroneous in the initial road geometry and should be shifted so that it is coincident with the volume of traffic. Similarly, where there is a large volume of traffic in an area where no road is indicated in the initial road geometry it may be deduced that a road is missing from the initial road geometry. As part of the training process (described shortly below) relevant patterns in composite images, indicating such scenarios are effectively identified and encoded as part of the trained network such that the trained network may identify misaligned or missing roads or other errors when presented with new (or unseen) composite images.
Typically, the output image 3420 comprises one or more labelled road segments. The road segments may be labelled according to the values of the pixels that make up the road segments. As such, the output image may comprise one or more colour-coded road segments. The labels of the road segments may indicate any of: a road segment present in the actual road geometry and not present in the initial road geometry; a road segment present in the initial road geometry and not present in the actual road geometry; a road segment displaced in the actual road geometry relative to the initial road geometry; a road segment present in the actual road geometry and present in the initial road geometry; and so on.
It will be appreciated that the output image 3420 represents (or encodes or otherwise comprises) corrections to the initial road geometry. The output image 3420 may therefore be used by subsequent systems (or modules) to correct (or update) the initial road geometry. Indeed the output image 3420 may be used as the image of road geometry corrections in the systems and methods described herein above.
Figure 7 schematically illustrates a training system 4000 for training a road geometry correction model, such as the road geometry correction model described in
relation to figure 6. The system 4000 comprises a training data module 4100, and a training module 4200.
The training module 4200 is arranged to train a road geometry correction model 4450 according to a training data set. Training of the road geometry correction model 4450 is such that the trained road geometry correction model 3450 is configured to generate as output road geometry corrections from an input composite image 3320 of an initial road geometry and movement data, as described above in relation to figure 6. As will be understood the road geometry correction model comprises a plurality of trainable (or adjustable) parameters which during training are optimized. The specific training process is dependent on the architecture of the road geometry correction model 445, but as set out above architectures such as Linet; Segformer B0; Unet++; and so on may be used. Typically, for such architectures an adaptive optimizer, such as Adam, AdamW, Adagrad, and so on may be used. However, non-adaptive methods such as Gradient descent, Stochastic gradient descent and so on may be used. Such training processes are well-known to the skilled person and not described further herein.
The training data set 4150 comprises a plurality of composite images 3320 as described above. The training data set 4150 further comprises, for each composite image 3320, a respective label. The label indicates the errors (or discrepancies) in the road geometry of the corresponding composite image 3320. In particular, the label takes the form of the required output of the trained road geometry correction model 3450. As such, the label usually takes the form of an output image, as described above in relation to figure 6.
The training data module 4100 is arranged to generate (or compile) the training data set 4150. The training data module 4100 may be arranged to receive (or obtain) a set of initial road geometries 4110 for a plurality of geographical areas 100 and corresponding labels for each of the initial road geometries. Such initial road geometries 4110 being road geometries that have previously had to be corrected. In this case the labels indicate the known corrections that were made to the road geometries. It will be appreciated that the initial road geometries 4110 and their labels may therefore by human generated, based on previous human generated corrections. Such data, the initial road geometries 4110 and their labels, may be termed “real” or “real-world” training data.
Additionally, or alternatively the training data module 4100 may be arranged to receive (or obtain) a plurality of known road geometries 4140 for a plurality of geographical areas 100. As shown in figure 7 the training data module 4100 comprises the optional geometry modification module 4120. The geometry modification module 4120 is arranged to modify a known road geometry 4140 to form a modified road geometry 4180. The geometry modification model 4120 may be arranged to modify a known road geometry 4140 by any of: adding a road segment to the known road geometry; deleting a road segment from the known road geometry; translating a road segment of the known road geometry. Usually, the geometry modification model 4120 is arranged to apply the modification (or modifications) to a graph representation of the road geometry. This allows the geometry modification module 4120 to modify the road geometry by adding, or deleting, or translation (or shifting) one or more edges of the graph. As discussed above the road geometry may already be in the form of a graph. Alternatively, the geometry modification module 4120 may be arranged to convert an image of the road geometry 4140 into a graph representation of the road geometry prior to modification. The geometry modification module 4120 may be arranged to convert the graph representation of the modified road geometry 4180 into an image.
The geometry modification module 4120 may be arranged to generate a corresponding label for the modified road geometry 4180, indicating the discrepancy (or error) introduced in the modified road geometry compared to the known road geometry, it will be understood that such a label may be generated based on the modification. Equally such a label may be generated based on a comparison of the modified road geometry and the known road geometry.
As such, the geometry modification module 4120 may be arranged to generate a set of modified road geometries 4180 from the plurality of known road geometries 4140. It will be appreciated that a single known road geometry 4140 may give rise to multiple different modified road geometries 4180 in the set of modified geometries 4180. The set of modified road geometries 4180 may also be a labelled set of modified road geometries. Such data, the modified road geometries and their labels, may be termed “synthetic” training data.
For ease of discussion in the description below the term “set of road geometries” will be used to encompass both modified road geometries 4180 (i.e. synthetic data) and initial road geometries 4110 (i.e. real-world data) it will be appreciated that the “set of
road geometries” may include exclusively real-world data, or exclusively synthetic data, or a mixture of the two.
The training data module 4100 comprises a movement data module 3200. The discussion above of the movement data module 3200 shown in figure 6 applies equally to the movement data module 3200 shown in figure 7. In particular, the movement data module 3200 is arranged to obtain a respective image of movement data 3220 for each of the geographical areas represented in the set of road geometries. These images of movement data may be referred to as a set of images of movement data 3220. The discussion of the image 3220 of the movement data set out in relation to figure 6 above applies equally to the images of movement data in the set of images of movement data here.
The training data module 4100 comprises a compositing module 3300. The discussion above of the compositing module 3300 shown in figure 6 applies equally to the compositing module 3300 shown in figure 7. In particular, the compositing module 3300 is arranged to form a plurality of composite images 3320 from at least the set of road geometries and the set of images of movement data 3220. As such, each composite image 3320 is formed by the compositing module 3300 from an image of a modified road geometry of a given geographical area and the image of movement data for the given geographical area. The discussion of the composite image 3320 set out in relation to figure 6 above applies equally to the composite images here.
The training data module 4100 is arranged to label the plurality of composite images 3320. In particular, the training data module 4100 is arranged to apply (or associate or otherwise link) each composite image 3320 with the label of the respective road geometry. In other words the label of the road geometry that formed the composite image 3320 is associated with the composite image. Each label is typically in the form of an output image as described above in relation to figure 6. It will be understood that the training data module 4100 may be arranged to generate the label and carry out the association in a single step (or action). The plurality of labelled composite images forms the training data set 4150 (or at least part thereof).
In this way it will be understood that the training data module 4100 is arranged to generate a training data set 4150 that comprises a plurality of composite images 3320 of erroneous road geometries and movement data, along with associated labels typically in the form of images indicating errors (or discrepancies) in the road geometries depicted in
the composite image. In other words, the training data set 4150 comprises expected inputs to the trained road geometry correction model 3450 (e.g. the composite images) and the expected (or desired) outputs (e.g. the output images described in relation to figure 6). Thus, the training module 4200 may be arranged to use standard supervised learning techniques to train the road geometry correction model 4450 using the training data set generated by the training data module 4100.
In the above discussions of figures 6 and 7 movement data has been used to provide the corrections to the existing map data. However, it has also been inventively realized that the above-described systems will operate using a satellite image of the geographical area 100 in place of an image of movement data of the geographical area. Typically, such satellite images are three channel (RGB) images and thus can be substituted for the three channel movement data images in the above discussions without further modification. It will be appreciated that, in order to work with satellite images, the trained road geometry correction model 3450 must be trained with satellite images, such as vis the system described in figure 7 above, with the images of movement data substituted for satellite images. In particular, in such a variant the composite image 3320 is a composite image of the image 3120 of the initial road geometry of a given geographical and the satellite image of the same geographical area. As will be understood the image 3120 of the initial road geometry of a given geographical and the satellite image of the same geographical area have a common mapping (or correspondence) to the positions of the geographical area. In such cases the image 3120 of the initial road geometry and the satellite image may be composited directly to from the composite image. The composite image may therefore comprise the channel (or channels) of the image 3120 of the initial road geometry and the of the satellite image. In other words, each pixel of the composite image comprises the channels of the same pixel of the image 3120 of the initial road geometry and the channels of the same pixel of the satellite image. For example, when the image 3120 of the initial road geometry is a single channel image and the satellite image is a three channel image the resulting composite image is a four channel image.
Alternatively, one of the image 3120 of the initial road geometry and the satellite image may be overlaid over the other image using standard image processing techniques, to form the composite image. Examples of suitable image processing
techniques include any of: alpha blending, multiply blending, screen blending, overlay blending, and so on.
Using such composite images of initial road geometry and satellite imagery has been found to provide more accurate corrections to road geometries than simply performing image segmentation on satellite imagery alone.
In an example implementation of the system of figure 6 the trained road geometry correction model 3450 comprised a UnetPlusPlus architecture with Resnet101 backbone pretrained on imagenet dataset. This was then trained using the system of figure 7, using satellite imagery. The resulting trained road geometry correction model 3450 had he following properties:
Figure 8 schematically illustrates an example of a computer system 1000. The system 1000 comprises a computer 1020. The computer 1020 comprises: a storage medium 1040, a memory 1060, a processor 1080, an interface 1100, a user output interface 1120, a user input interface 1140 and a network interface 1160, which are all linked together over one or more communication buses 1180.
The storage medium 1040 may be any form of non-volatile data storage device such as one or more of a hard disk drive, a magnetic disc, an optical disc, a ROM, etc. The storage medium 1040 may store an operating system for the processor 1080 to execute in order for the computer 1020 to function. The storage medium 1040 may also store one or more computer programs (or software or instructions or code).
The memory 1060 may be any random access memory (storage unit or volatile storage medium) suitable for storing data and/or computer programs (or software or instructions or code).
The processor 1080 may be any data processing unit suitable for executing one or more computer programs (such as those stored on the storage medium 1040 and/or
in the memory 1060), some of which may be computer programs according to embodiments of the invention or computer programs that, when executed by the processor 1080, cause the processor 1080 to carry out a method according to an embodiment of the invention and configure the system 1000 to be a system according to an embodiment of the invention. The processor 1080 may comprise a single data processing unit or multiple data processing units operating in parallel or in cooperation with each other. The processor 1080, in carrying out data processing operations for embodiments of the invention, may store data to and/or read data from the storage medium 1040 and/or the memory 1060.
The interface 1100 may be any unit for providing an interface to a device 1220 external to, or removable from, the computer 1020. The device 1220 may be a data storage device, for example, one or more of an optical disc, a magnetic disc, a solid- state-storage device, etc. The device 1220 may have processing capabilities - for example, the device may be a smart card. The interface 1100 may therefore access data from, or provide data to, or interface with, the device 1220 in accordance with one or more commands that it receives from the processor 1080.
The user input interface 1140 is arranged to receive input from a user, or operator, of the system 1000. The user may provide this input via one or more input devices of the system 1000, such as a mouse (or other pointing device) 1260 and/or a keyboard 1240, that are connected to, or in communication with, the user input interface 1140. However, it will be appreciated that the user may provide input to the computer 102 via one or more additional or alternative input devices (such as a touch screen). The computer 1020 may store the input received from the input devices via the user input interface 1140 in the memory 1060 for the processor 1080 to subsequently access and process, or may pass it straight to the processor 1080, so that the processor 1080 can respond to the user input accordingly.
The user output interface 1120 is arranged to provide a graphical/visual and/or audio output to a user, or operator, of the system 1000. As such, the processor 1080 may be arranged to instruct the user output interface 1120 to form an image/video signal representing a desired graphical output, and to provide this signal to a monitor (or screen or display unit) 1200 of the system 1000 that is connected to the user output interface 1120. Additionally or alternatively, the processor 1080 may be arranged to instruct the user output interface 1120 to form an audio signal representing a desired audio output,
and to provide this signal to one or more speakers 1210 of the system 1000 that is connected to the user output interface 1120.
Finally, the network interface 1160 provides functionality for the computer 1020 to download data from and/or upload data to one or more data communication networks.
It will be appreciated that the architecture of the system 1000 illustrated in figure 10 and described above is merely exemplary and that other computer systems 1000 with different architectures (for example with fewer components than shown in figure 10 or with additional and/or alternative components than shown in figure 10) may be used in embodiments of the invention. As examples, the computer system 1000 could comprise one or more of: a personal computer; a server computer; a mobile telephone; a tablet; a laptop; a television set; a set top box; a games console; other mobile devices or consumer electronics devices; an in-car entertainment system; an in-car navigation system; etc.
The systems described in relation to figures 2, 3, 5a, 6 and 7 may each be implemented as (or executed with) one or more computer systems such as the system 1000 described above. Similarly, the navigation clients referred to above may be implemented as (or executed with) one or more computer systems such as the system 1000.
It will be appreciated that the methods described have been shown as individual steps carried out in a specific order. However, the skilled person will appreciate that these steps may be combined or carried out in a different order whilst still achieving the desired result.
It will be appreciated that embodiments of the invention may be implemented using a variety of different information processing systems. In particular, although the figures and the discussion thereof provide an exemplary computing system and methods, these are presented merely to provide a useful reference in discussing various aspects of the invention. Embodiments of the invention may be carried out on any suitable data processing device, such as a personal computer, laptop, personal digital assistant, mobile telephone, set top box, television, server computer, etc. Of course, the description of the systems and methods has been simplified for purposes of discussion, and they are just one of many different types of system and method that may be used for embodiments of the invention. It will be appreciated that the boundaries between logic blocks are merely illustrative and that alternative embodiments may merge logic blocks
or elements, or may impose an alternate decomposition of functionality upon various logic blocks or elements.
It will be appreciated that the above-mentioned functionality may be implemented as one or more corresponding modules as hardware and/or software. For example, the above-mentioned functionality may be implemented as one or more software components for execution by a processor of the system. Alternatively, the above- mentioned functionality may be implemented as hardware, such as on one or more field- programmable-gate-arrays (FPGAs), and/or one or more application-specific-integrated- circuits (ASICs), and/or one or more digital-signal-processors (DSPs), and/or other hardware arrangements. Method steps implemented in flowcharts contained herein, or as described above, may each be implemented by corresponding respective modules; multiple method steps implemented in flowcharts contained herein, or as described above, may be implemented together by a single module.
It will be appreciated that, insofar as embodiments of the invention are implemented by a computer program, then a storage medium and a transmission medium carrying the computer program form aspects of the invention. The computer program may have one or more program instructions, or program code, which, when executed by a computer carries out an embodiment of the invention. The term “program” as used herein, may be a sequence of instructions designed for execution on a computer system, and may include a subroutine, a function, a procedure, a module, an object method, an object implementation, an executable application, an applet, a servlet, source code, object code, a shared library, a dynamic linked library, and/or other sequences of instructions designed for execution on a computer system. The storage medium may be a magnetic disc (such as a hard drive or a floppy disc), an optical disc (such as a CD-ROM, a DVD- ROM or a BluRay disc), or a memory (such as a ROM, a RAM, EEPROM, EPROM, Flash memory or a portable/removable memory device), etc. The transmission medium may be a communications signal, a data broadcast, a communications link between two or more computers, etc.
APPENDIX A
By way of further verification of the utility of the systems and methods described above we include below a discussion of a set of tests performed using example implementations of these systems and methods.
In particular, a “ground truth” data set was compiled from existing mapping data of a number of different, randomly selected, locations. 262 tiles (each representing a particular geographical area 100, with each area being 100 sq. m) were prepared, and for each tile the corresponding road geometry graph was converted into an image of the road geometry. This was done using standard rasterization techniques, applying a 2- meter buffer to the edges. A number of instances of the system 300 were trained (as discussed shortly below) and used to produce generated road geometry graphs for each tile from the respective image of road geometry.
To compute the similarity between the original “ground truth” road geometry graphs and the generated road geometry graphs, the following protocol was used.
For each tile:
1. Convert both ground truth and generated vector road geometry graphs G1 and G2 respectively into point cloud to create additional points by interpolation distance 1.5 meters for each edge in the graph.
2. Create a distance matrix M1 and M2 to calculate all pair shortest path among all nodes in the generated point cloud graph for both ground truth and generated vector road geometry.
3. Compute probability density function pdf (distance histogram) H1 and H2 for each distance matrix M1 and M2 respectively. Calculate Wasserstein distance W1 between H1 and H2.
4. Compute probability mass function pmf (degree histogram) D1 and D2 for each graph G1 and G2. The degree histogram is used to return a list of the frequency of each degree value in a graph. The degree of a node in a graph is the number of edges connected to that node. Calculate Wasserstein distance W2 between D1 and D2.
5. Final similarity distance value is the sum of W1 and W2 calculated in steps 3 and 4 respectively.
The Wasserstein distance is commonly known as the earth mover’s distance and is suitable for comparing two probability distributions. Intuitively, the Wasserstein distance measures the "minimal cost" of transporting mass in order to transform the distribution u into the distribution v.
The Wasserstein distance of order p between two probability measures p and v can be formally written as:
/ \ i/p
W„(p, v) = | inf | d(x,y)p dy(x,y) j yyer(n,v) JMxM J
With the definitions:
• Wp(|i,v): The Wasserstein distance of order p between the probability measures p and v.
• M: The metric space where the measures are defined.
• d(x, y): The distance between any two points x and y in M
• r(|i,v): The set of all joint distributions y(x,y) on M x M whose marginal distributions on the first and second factors are p and v, respectively.
• The integral J
□: This is an integral over all pairs of points in M x M.
• inf : This denotes the infimum (or greatest lower bound) over all y in r(|i, v). yer(n,v)
The lower the final distance between ground truth and generated vector road geometry, the more similar they are. The node identification models used a Linet segmentation model architecture with a VGG19 encoder and a Jaccard loss function. The edge identification models used a Linet segmentation model architecture with a Resnet50 encoder and a Jaccard loss function.
Multiple benchmarked multiple combinations of Node and Edge detection Model trained with different hyperparameter settings on ground truth road geometry test dataset. Details are listed below table.
SUBSTITUTE SHEET (RULE 26)
Claims
1. A method of updating an initial road geometry graph for a geographical area, the method comprising: obtaining an image of new road geometry of the geographical area; converting the image of new road geometry of the geographical area to an updated road geometry graph of the geographical area, wherein said converting comprises: applying a first trained machine learning model to the image of new road geometry to obtain a set of nodes of the updated road geometry graph, and applying a second trained machine learning model to the image of new road geometry and the obtained set of nodes to obtain a set of edges of the updated road geometry graph; merging the updated road geometry graph with the initial stored geometry graph.
2. The method of claim 1 wherein the image of new road geometry of the geographical area is obtained based on the initial stored road geometry graph for the geographical area and one or more satellite images of an actual road geometry for the geographic area.
3. The method of claim 1 or 2 wherein applying a second trained machine learning model to the image of new road geometry and the obtained set of nodes comprises iteratively applying the second trained machine learning model to each node in the set of nodes to obtain a respective sub-set of nodes which are directly connected to said node.
4. The method of any proceeding wherein said merging comprises applying a third machine learning algorithm to identify correspondences between one or more roads in the updated road geometry graph and one or more respective roads in the initial stored geometry graph.
5. The method of claim 4 wherein said merging comprises updating the attributes of one or more roads in the updated road geometry based on the attributes of the one or more identified corresponding roads in the initial stored geometry.
6. The method of any preceding claim wherein one or more nodes of the set of nodes for the updated road geometry graph correspond to an intersection between a new road in the image and an existing road in the initial stored road geometry graph and/or to an intersection between at least two roads in the image.
7. The method of any preceding claim wherein the step of obtaining comprises: applying an image of road geometry corrections to an image of the initial stored road geometry generated from the initial road geometry graph, wherein the image of road geometry corrections identifies one or more differences between the actual road geometry of the geographical area and the initial stored road geometry.
8. The method of claim 7 wherein applying comprises deleting one or more roads from the initial stored road geometry based on an overlap with one or more road deletions in the image of road geometry corrections.
9. A method of training a first and second machine learning model for converting an image of predicted road geometry to a road geometry graph, the method comprising: obtaining a set of existing road geometry graphs, wherein each road geometry graph comprises a set of initial nodes and a set of edges; for each existing road geometry graph in the set of existing road geometry graphs: generating an image of the existing road geometry from the existing road geometry graph; determining, based on the initial set of nodes, a respective set of training nodes, training a first machine learning model according to a first training set comprising the set of images of existing road geometry graphs labelled with the respective sets of training nodes such that the first machine learning model is arranged to take as input an image of predicted road geometry and generate as output a corresponding set of nodes; training a second machine learning model according to a second training set comprising a set of query nodes and corresponding images of existing road geometry graphs from the set of road geometry graphs, wherein each query node is labelled with
the road geometry graph edges connected to the query node such that the second machine learning model is arranged to take as input a composite image comprising an image of predicted road geometry, a corresponding set of nodes and a query node, and generate as output an indication of the edges connected to the query node according to the predicted road geometry.
10. The method of claim 10 wherein the respective set of training nodes are an enlarged set of nodes for the existing road geometry graph generated by interpolating additional nodes on edges in the set of edges of the existing road geometry graph.
11. The method of claim 9 or 10 wherein the first machine learning model and the second machine learning model form a convolutional encoder-decoder neural network.
12. The method of any of claims 9-11 wherein the set of nodes comprise road intersections and road shape points.
13. The method of claim 12 wherein the additional nodes are additional road shape points.
14. The method of any of claims 9-13 wherein the first machine learning model and/or the second machine learning model comprise any of: a Linet segmentation model; a UnetPlusPlus segmentation model, a DeepLab model, a Segformer model, a SwinTransformer model; and/or any of: a VGG19 encoder; a Resnet50 encoder; an Efficient B1-B5 encoder, a DenseNet encoder.
15. An apparatus arranged to carry out a method according to any one of claims 1 to 14.
16. A computer-readable medium storing a computer program which, when executed by a processor, causes the processor to carry out a method according to any one of claims 1 to 14.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN202311068807 | 2023-10-12 | ||
| IN202411025506 | 2024-03-28 | ||
| PCT/EP2024/064428 WO2025078041A1 (en) | 2023-10-12 | 2024-05-24 | Systems and methods for updating road geometry graphs |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4735831A1 true EP4735831A1 (en) | 2026-05-06 |
Family
ID=91334904
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24729980.3A Pending EP4735831A1 (en) | 2023-10-12 | 2024-05-24 | Systems and methods for updating road geometry graphs |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4735831A1 (en) |
| WO (1) | WO2025078041A1 (en) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB201211636D0 (en) | 2012-06-29 | 2012-08-15 | Tomtom Belgium Nv | Method and apparatus for detecting deviations from map data |
-
2024
- 2024-05-24 WO PCT/EP2024/064428 patent/WO2025078041A1/en active Pending
- 2024-05-24 EP EP24729980.3A patent/EP4735831A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025078041A1 (en) | 2025-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| He et al. | Sat2graph: Road graph extraction through graph-tensor encoding | |
| US10402995B2 (en) | Method, apparatus, and system for real-time object detection using a cursor recurrent neural network | |
| US10373002B2 (en) | Method, apparatus, and system for a parametric representation of lane lines | |
| US11023747B2 (en) | Method, apparatus, and system for detecting degraded ground paint in an image | |
| Massow et al. | Deriving HD maps for highly automated driving from vehicular probe data | |
| US11170485B2 (en) | Method, apparatus, and system for automatic quality assessment of cross view feature correspondences using bundle adjustment techniques | |
| US10984552B2 (en) | Method, apparatus, and system for recommending ground control points for image correction | |
| US8738284B1 (en) | Method, system, and computer program product for dynamically rendering transit maps | |
| US11699234B2 (en) | Semantic segmentation ground truth correction with spatial transformer networks | |
| US12165406B2 (en) | Method, apparatus, and computer program product for identifying and correcting intersection lane geometry in map data | |
| EP4202365A1 (en) | Method, apparatus, and computer program product for identifying and correcting lane geometry in map data | |
| US20200020104A1 (en) | Method, apparatus, and system for constructing a polyline from line segments | |
| US20190051013A1 (en) | Method, apparatus, and system for an asymmetric evaluation of polygon similarity | |
| US20180205471A1 (en) | Evaluating near range communications quality | |
| US12013255B2 (en) | Method, apparatus, and computer program product for correcting lane geometry in map data | |
| Dey et al. | Road width estimator—an automatic tool for calculating road width leveraging geospatial knowledge | |
| Yeh et al. | Hierarchical polygonization for generating and updating lane-based road network information for navigation from road markings | |
| WO2025078041A1 (en) | Systems and methods for updating road geometry graphs | |
| US20210270629A1 (en) | Method and apparatus for selecting a path to a destination | |
| US11592297B2 (en) | Method and apparatus for updating maps using gradient thresholding | |
| US20250123117A1 (en) | Systems and Methods for Correcting Maps | |
| CN114661840A (en) | Attribute generation method, electronic device and computer program product of map element | |
| US20260100036A1 (en) | Method, apparatus, and system of providing lane-level direction-of-travel detection from overhead imagery | |
| Zang et al. | Lane boundary geometry extraction from satellite imagery | |
| Kazemi | Knowledge-based generalisation of road networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |