An aspect of the disclosure relates to a computer implemented method for annotating map data for navigation of vehicles.
There are drawbacks in traditional grid-based task division of geo-annotation. The boundary of a grid may cut a highway halfway where the highway exit is outside of the grid. Firstly, it is challenging to human collectors to find a way back to the grid. Secondly, it leads to duplicate collection since a same road is traversed by collectors of two different grids. Accordingly, there is a need for providing improved geofences and for methods for providing improved geofences.
An aspect of the disclosure relates to a computer implemented method for preparing map data for annotation, in particular for navigation of vehicles, the method including:
In some embodiments, the method is a method of annotating map data, further including annotating each of the plurality of geofences, for example, including determining points of interests (POIs) in the graph.
In some embodiments, the annotated map data may be used in vehicle navigation.
In some embodiments, the annotated map data may be stored in a memory (e.g., a data carrier) including the annotated map data.
According to various embodiments, the pre-processing the graph may include mapping each of the plurality of vertices onto a point with individual coordinate on a 2-D plane, e.g., by a microprocessor.
According to various embodiments, the pre-processing the graph may further include mapping an overpass in the graph to a virtual intersection point on the 2-D plane, e.g., by a microprocessor.
According to various embodiments, the pre-processing the graph may further include mapping each of the plurality of edges without the overpass to an edge on the 2-D plane, e.g., by a microprocessor.
According to various embodiments, the pre-processing the graph may further include mapping each of the plurality of edges with the overpass to multiple edges on the 2-D plane split, the multiple edges being split by the virtual intersection point, e.g., by a microprocessor.
According to various embodiments, the plurality of geofences may be non-overlapping.
According to various embodiments, the grouping the plurality of polygons may include generating a set of closed paths by traversing all edges of the plurality of polygons from both directions, e.g., by a microprocessor.
According to various embodiments, the grouping the plurality of polygons may further include filtering the set of closed paths to obtain simple cycles by discarding all interior vertices and edges interior to the set of closed paths, e.g., by a microprocessor.
According to various embodiments, the grouping the plurality of polygons may further include merging a plurality of selected simple cycles with their neighbor so that the plurality of geofences may be obtained, e.g., by a microprocessor.
According to various embodiments, the generating the set of closed paths may include:
According to various embodiments, the filtering the set of closed paths may include: traversing an edge which may be leftmost in each of the set of closed paths;
According to various embodiments, the merging the plurality of selected simple cycles with their neighbor may include for each of the plurality of selected simple cycles, which has a smaller number of POIs than the plurality of geofences, choosing a neighbor to merge with so that the plurality of geofences may be generated.
According to various embodiments, a greedy search algorithm may be used to choose the neighbor so that the generated plurality of geofences having a road traversal length may be within the pre-determined length range.
According to various embodiments, a cycle with a longest common edge may be chosen as a neighbor.
According to various embodiments, the computer implemented method may further include:
According to various embodiments, the computer implemented method may further include:
An aspect of the disclosure relates to a computer program product including program instructions, which when executed by one or more micoprocessors, cause the one or more microprocessors to perform the method.
The disclosure will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:
The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.
Embodiments described in the context of one of the methods are analogously valid for the other methods.
Features that are described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments. Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments, even if not explicitly described in these other embodiments. Furthermore, additions and/or combinations and/or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.
In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.
As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
As used herein and in accordance to various embodiments, the map data including a graph may mean that the map data includes, but is not limited to, imagery, latitude and longitude coordinates, points of interest and traffic data of a road network which may be represented in the form of a graph including a plurality of vertices and edges. An exemplary data storage format may be (vertex 1, vertex 2, latitude, longitude, traffic direction, {List of POIs in edge}), wherein the edge may be between vertex 1 and vertex 2.
As used herein and in accordance with various embodiments, annotating map data may include annotating each of the plurality of geofences, for example, including determining points of interests (POIs) in the graph.
As used herein and in accordance with various embodiments, navigation of vehicles may, for example, include one or more of: solving a route from a start point to a destination point, e.g., by a server; displaying a route and/or navigation directions on a driver's mobile device; displaying a route and/or navigation directions on a vehicle integrated navigation system.
As used herein and in accordance with various embodiments, receiving the map data may mean receiving by a communication interface of the computer, map data, e.g., from another computer, server, or cloud.
As used herein and in accordance with various embodiments, annotating each of the plurality of geofences, may mean determining points of interests in the graph. Annotating may mean processing the geofence data of the plurality of geofences by the plurality of computing units in parallel (e.g., by searching on other databases and matching location and/or by machine learning) or processing by humans in parallel. As used herein and in accordance with various embodiments, determining points of interests may mean completing POI information in the map data, for example, giving latitude and longitude, includingF label, road name, and house number. For example, to a given POI1=(lat, long) adding McBurger, number 48, Main road, as (lat, long, McBurger, 48, Main road).
As used herein and in accordance with various embodiments, a polygon may mean a closed polygonal chain (or polygonal circuit) formed by connecting a finite number of straight line segments. The segments of a polygonal circuit may be called its edges. The points where two edges meet may be called the polygon's vertices. The polygon may also mean a closed circuit which has a zero area. For example, in
The method of the disclosure includes a two-phase approach to first split the road network to generate a set of closed paths, filter (e.g., trim) a set of closed paths to obtain a set of small simple cycles and then merge some of the simple cycles to achieve higher efficiency.
According to various embodiments, the computer implemented method 100 may include a step 120 of pre-processing the graph to produce a planar graph including a plurality of polygons 31 (see
According to various embodiments, the computer implemented method 100 may include a step 130 of grouping the plurality of polygons 31 to form a plurality of geofences 42, each of the plurality of geofences including a number of POIs which may be within a pre-determined POI range, and each of the plurality of geofences 42 having a road traversal length that may be within a pre-determined length range. For example, a pre-determined POI range may be selected from the range of from 500 to 2000. For example, a pre-determined length range may be selected from the range of from 2 km to 10 km.
In some embodiments, the road traversal length may be a haversine distance between vertices of roads. A bidirectional road may be counted twice.
In some embodiments, the pre-determined length range may be a minimal road traversal length to travel all roads in a tour where all the roads are in the plurality of geofences. Avoiding too small geofences also avoids cutting roads into half thereby improving efficiency of data collection. Avoiding too large geofences may ensure the data collection will be completed within a specified time. Providing equally size the geofences, in other words, geofences with an inter-geofence variation of minimal road traversal length below a pre-determined percentage assist enables an equalized distribution of work load for parallel processing of each geofence.
According to various embodiments, the computer implemented method 100 may include a step 140 of storing geofence data of the plurality of geofences 42 in a memory 21 of a computer 20. Storing may include a microprocessor sending instructions to a memory to save the geofence data into the memory. In examples, in accordance with various embodiments, the memory may be RAM, solid state drive such as NAND or NOR FLASH, magnetic recording media, HDD, optical recording media such as DVD, etc.
According to various embodiments, the computer implemented method 100 may include a step 150 of annotating each of the plurality of geofences 42.
According to various embodiments, as illustrated in
According to various embodiments, the pre-processing 120 the graph may further include mapping an overpass V1′, V2′ in the graph to a virtual intersection points A, B, C, D. E, F) on the 2-D plane.
According to various embodiments, the pre-processing 120 the graph may further include mapping each of the plurality of edges without the overpass V1′, V2′ to an edge on the 2-D plane. To index all the edges in the graph, RTree may be used. All the roads are numbered. The roads are grouped by their number as the RTree leaf. Bounding-box is obtained for each leaf. Edges within a leaf or two intersected leaves may be cross-checked since rectangle bounding boxes of two disjoint leaves are guaranteed not to intersect with each other. In one embodiment, all the vertices may have individual coordinates.
According to various embodiments, the pre-processing 120 the graph may further include mapping each of the plurality of edges with the overpass V1′, V2′ to multiple edges on the 2-D plane split, the multiple edges being split by the virtual intersection points V1, V2. As illustrated in
According to various embodiments, mapping may be performed by a microprocessor, e.g., executing instructions for mapping.
According to various embodiments, the plurality of geofences 42 may be non-overlapping.
According to various embodiments, the grouping 130 the plurality of polygons 31 may include generating a set of closed paths by traversing all edges of the plurality of polygons 31 from both directions.
According to various embodiments, the grouping 130 the plurality of polygons 31 may further include filtering the set of closed paths to obtain simple cycles 41 by discarding all interior vertices and edges interior to the set of closed paths.
According to various embodiments, the grouping 130 the plurality of polygons 31 may further include merging a plurality of selected simple cycles 41 with their neighbor so that the plurality of geofences 42 may be obtained.
According to various embodiments, the generating the set of closed paths may include pre-calculating 510 a leftmost turn of each direction of each of the edges as a next edge. Alternatively, the generating the set of closed paths may include pre-calculating 510 a rightmost turn of each direction of each of the edges as a next edge.
According to various embodiments, the generating the set of closed paths may include starting 520 traversing at each of the edges in each direction.
According to various embodiments, the generating the set of closed paths may include traversing 530 the edge and the next edge until returning 540 to the starting edge in the direction, wherein a u-turn may be made only if there may be no other turns, wherein the traversed edges and vertices thereof form the set of closed paths.
In some embodiments, a closed path ϕ may be denoted by a vertex sequence={p0, p1, p2, p3 . . . . pn} where ∀i ∈ [0, n], (pi, p(i+1)mod n) is an edge in a planar graph. A set of closed paths Φ may be generated by repeating traversing all edges of a plurality of polygons in the planar graph from both directions. The set of closed paths ϕ may cover all the edges with both directions in the planar graph. Since an edge (p0→p1) in the planar graph is undirected, (p0→p1) and (p1→p0) may be used to represent the respective directions, therefore the set of closed paths Φ may be represented as an edge sequence Φ={(p0→p1), (p1→p2) . . . (pn→p0)}. For example, a next edge of each edge (e.g., (p0=p1)) may be pre-calculated by making a leftmost turn at p1. Then the traversal may start at each direction of each edge (p0→p1), and make a leftmost turn at the intersection p1. The traversal continues e.g., for (p1→p2), (p2→p3) . . . until returning to the starting edge (p0→p1).
In some embodiments, two closed paths among the set of closed paths may be adjacent or disjoint, i.e. not intersecting, or containing each other.
In some embodiments, two closed paths among the set of closed paths may be adjacent and share edges in different directions, i.e. have common edges.
In some embodiments, two closed paths among the set of closed paths may be identical.
According to various embodiments, the filtering the set of closed paths may include traversing an edge which may be leftmost in each of the set of closed paths.
According to various embodiments, the filtering the set of closed paths may include continuing traversing the next edge until returning to the starting edge, wherein each duplicated vertex, which leads to more than one edges, may be skipped, wherein the traversed edges and vertices thereof form the simple cycles.
According to various embodiments, the merging the plurality of selected simple cycles with their neighbor may include for each of the plurality of selected simple cycles, which has a smaller number of POIs than the plurality of geofences 42, choosing a neighbor to merge with so that the plurality of geofences 42 may be generated.
In some embodiments, a plurality of selected simple cycles may be defined as Φ={ϕi}, a set of roads belonging to one of the plurality of selected simple cycles may be defined as e (ϕi), the total road distance of e(ϕi) may be defined as s(ϕi) and the road traversal distance to travel all the roads in a tour where the roads are in ϕi may be defined as T(ϕi).
In some embodiments, given a simple cycle ϕi, an efficiency of the simple cycle may be represented as the road traversal length of e(ϕi) divided by the road traversal distance of ϕi:
In some embodiments, the optimized efficiency of the simple cycle may be represented as ArgmaxΦ(Et(Φ)). Since Σ s(ϕi) may equal to the total road distance in the road network, and therefore may be a constant, optimizing the efficiency of the simple cycle may be equivalent to minimizing the road traversal distance:
In some embodiments, given two adjacent simple cycles ϕ1 and ϕ2 with at least one common edge, the geofence ϕ3 is such that
In some embodiments, the simplest case of merging two simple cycles is to remove the common edges. As shown in
However, as shown in
In some exemplary embodiments of merging two simple cycles, a traversal goes along one simple cycle, and always switches to the other simple cycle at intersections. In
In some embodiments, a starting edge e, may be chosen and the traversal starts with the current edge being e0={k0→k1}. If k1 is an intersection vertex, the traversal switches to the other simple cycle until returning to e0. The directed edges traversed form the geofence.
According to various embodiments, a greedy search algorithm may be used to choose the neighbor so that the generated plurality of geofences 42 having a road traversal length may be within the pre-determined length range.
In some embodiments, the shape of the geofence may be considered to minimize its road traversal length, i.e. to minimize the longest Euclidean distance between any two vertices on the boundary of the simple cycle. This may be carried out by merging the given simple cycle with each of its neighbors and then choosing the neighbor resulting in a minimal road traversal length.
According to various embodiments, a cycle with a longest common edge may be chosen as a neighbor.
According to various embodiments, the computer implemented method 100 may further include distributing the plurality of the geofences 42 to a plurality of computing units 22.
According to various embodiments, the computer implemented method 100 may further include annotating 150 by processing the geofence data of the plurality of geofences 42 in parallel, for example, by the plurality of computing units 22.
According to various embodiments, the computer implemented method 100 may further include consolidating results of the processing in computer memory, e.g., in the memory 21 of the computer 20.
According to various embodiments, computer memory may mean a memory which is readable by a computer or its microprocessor, the memory may be integrated in a computer or may be a data carrier.
One aspect of the disclosure relates to a computer memory storing results of the annotation, for further use. The results of annotation may be map of a road network and/or POIs, name of roads, type of roads, number of lanes of roads, direction of each lane, name of POIs, house number of POIs.
According to various embodiments, the computer implemented method 100 may further include calculating a vehicle route between a first POI and a second POI of the POIs.
According to various embodiments, the computer implemented method 100 may further include routing the vehicle along the vehicle route.
According to various embodiments, a computer program product including program instructions, which when executed by one or more microprocessors, cause the one or more microprocessors to perform the method 100.
The pseudo code in Algorithm 1 presents an exemplary algorithm of splitting the road network to generate a set of closed paths. A next edge of every (p0→p1) may be pre-calculated by making a leftmost turn at p1, i.e. Next (p0→p1) (Line˜5). A traversal starts at each direction of each edge (p0→p1) (Line˜7), makes a leftmost turn at the intersection p1 (Line˜11) and stops when returning to the initial edge (Line˜10).
The pseudo code in Algorithm 2 presents an exemplary algorithm of filtering (i.e., trimming) a set of closed paths to obtain a set of small simple cycles. A directed edge starting with vertex v may be denoted by ϕ(v). In the initialization, choose_initial_edge (ϕ1) the starting edge e0, where its starting vertex is left-most in ϕ1, may be carefully selected to ensure that the result forms the boundary. Then the traversal may start with the current edge being e=(k0→k1). If k0 is a duplicated vertex, it may be skipped and the traversal goes to the first edge starting with k0 on the cycle through find_next_edge. Each time in iterating an edge is added into ϕ2 until returning to e0. ϕ2 holds the results.
) the directed edges in circle ϕ1 starting with
.
indicates data missing or illegible when filed
The pseudo code in Algorithm 3 presents an exemplary algorithm of merging two simple cycles. Assuming circle i represents a simple cycle, the directed edge in circle i starting with vertex v may be denoted by ϕ(v,i). In the initialization phase, in choose_initial_edge (ϕ1,ϕ2) the starting edge e0 (Line˜5) may be calculated. The traversal may start with the current edge being e0={k0→k1}. If k1 is an intersection vertex (Line˜10), the traversal switches to the other circle (Line˜12) until returning to e0 (Line˜15). ϕ3 holds the results.
,
) the directed edges in circle
starting with node
.
and ϕ(k1, id(ϕ2)) ≠
then
id(ϕ1)
indicates data missing or illegible when filed
The pseudo code in Algorithm 4 presents an exemplary algorithm of merging phase to merge a set of simple cycles. To optimize the efficiency, for example, the neighbor with the maximal length of the common edges may be chosen.
do
indicates data missing or illegible when filed
Given map data comprising a graph of a road network, the disclosure is targeted to produce a plurality of non-overlapping geofences, each of the plurality of geofences comprising a number of POIs which is within a pre-determined POI range, and each of the plurality of geofences having a road traversal length that is within a pre-determined length range.
The disclosure takes into account the tradeoff between the number of tasks (number of geofences), efficiency of tasks (size of geofences and inter-geofence size variation). In particular, the method is advantageously used to generate relatively enough geofences which reduce the risk of cutting roads into half thereby improving efficiency of tasks, while at the same time to avoiding too large geofences and too much inter-geofence size variation. Therefore, the method optimizes the balance of the number of tasks and the efficiency of tasks thereby improving overall computing system efficiency and usage time.
While the disclosure has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims. The scope of the disclosure is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.
Number | Date | Country | Kind |
---|---|---|---|
202110748355.9 | Jun 2021 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SG2022/050440 | 6/27/2022 | WO |