Map generation method and device, electronic equipment and storage medium

By dividing and prioritizing vehicle driving data, efficient parallel computing is achieved, the problem of low production efficiency of electronic maps is solved, and the real-time and accuracy of maps are improved.

CN119248897APending Publication Date: 2025-01-03BEIJING BAIDU MAPPING TECHNOLOGY CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411303610.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-18
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

The existing electronic map production technology is inefficient and cannot reflect the real-world road conditions in real time, making it difficult to meet the requirements of high-precision maps for real-time and accuracy.

Method used

By dividing vehicle driving data, fine-grained map production tasks are generated, and parallel calculations are performed based on task priority and concurrency, important tasks are prioritized to improve map production efficiency.

Benefits of technology

Improves the real-time and accuracy of the map, reduces calculation time, and avoids the reduction in productivity caused by directly processing large amounts of data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119248897A_ABST
    Figure CN119248897A_ABST
Patent Text Reader

Abstract

The invention provides a map generation method and device, electronic equipment and a storage medium, and relates to the technical field of electronic maps, automatic driving and the like. The map generation method comprises the following steps: dividing driving data of a vehicle into at least one data group; based on a preset map production process, generating at least one map production task corresponding to the at least one data group; based on the corresponding data set, determining a first priority of the at least one map production task; and on the basis of a preset concurrency degree, executing at least one map production task according to the first priorities from high to low so as to generate a map of the geographic area covered by the driving data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to technical fields such as electronic maps and autonomous driving, and in particular to a map generation method and device, an electronic device, a computer-readable storage medium, and a computer program product. Background Art

[0002] An electronic map, or digital map, is a map that is stored and accessed digitally using computer technology. Various types of map elements are drawn on the electronic map, such as roads, shopping malls, schools, hospitals, landmark buildings, and so on.

[0003] The methods described in this section are not necessarily methods that have been previously conceived or employed. Unless otherwise indicated, it should not be assumed that any method described in this section is considered to be prior art simply because it is included in this section. Similarly, unless otherwise indicated, the issues mentioned in this section should not be considered to have been recognized in any prior art. Summary of the invention

[0004] The present disclosure provides a map generation method and device, an electronic device, a computer-readable storage medium, and a computer program product.

[0005] According to one aspect of the present disclosure, a map generation method is provided, comprising: dividing driving data of a vehicle into at least one data group; based on a preset map production process, generating at least one map production task corresponding to the at least one data group, each of the at least one map production task comprising a plurality of map production subtasks having a dependency relationship, the plurality of map production subtasks being used to process the corresponding data group to generate a map of a geographical area covered by the data group; based on the corresponding data group, determining a first priority of each of the at least one map production tasks; and based on a preset concurrency, executing the at least one map production task in a descending order of the first priority to generate a map of the geographical area covered by the driving data.

[0006] According to one aspect of the present disclosure, a map generating device is provided, comprising: a division module configured to divide driving data of a vehicle into at least one data group; a generation module configured to generate at least one map production task corresponding to the at least one data group based on a preset map production process, each of the at least one map production task comprising a plurality of map production subtasks having a dependency relationship, the plurality of map production subtasks being used to process the corresponding data group to generate a map of the geographical area covered by the data group; a determination module configured to determine a first priority of each of the at least one map production tasks based on the corresponding data group; and an execution module configured to execute the at least one map production task in a descending order of the first priority based on a preset concurrency to generate a map of the geographical area covered by the driving data.

[0007] According to one aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can perform the above method.

[0008] According to one aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to enable the computer to execute the above method.

[0009] According to one aspect of the present disclosure, a computer program product is provided, including a computer program, wherein the computer program can implement the above method when executed by a processor.

[0010] According to one or more embodiments of the present disclosure, the efficiency and accuracy of map production can be improved.

[0011] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The accompanying drawings exemplarily illustrate the embodiments and constitute a part of the specification, and together with the text description of the specification, are used to explain the exemplary implementation of the embodiments. The embodiments shown are for illustrative purposes only and do not limit the scope of the claims. In all drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0013] Figure 1 A schematic diagram showing an exemplary system in which various methods described herein may be implemented according to an embodiment of the present disclosure;

[0014] Figure 2 A flowchart of a map generation method according to an embodiment of the present disclosure is shown;

[0015] Figure 3 A schematic diagram showing a map production process according to an embodiment of the present disclosure;

[0016] Figure 4 A structural block diagram of a map generating device according to an embodiment of the present disclosure is shown; and

[0017] Figure 5 A structural block diagram of an exemplary electronic device that can be used to implement the embodiments of the present disclosure is shown. DETAILED DESCRIPTION

[0018] The following is a description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.

[0019] In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, timing relationship, or importance relationship of these elements, and such terms are only used to distinguish one element from another element. In some examples, the first element and the second element may refer to the same instance of the element, and in some cases, based on the description of the context, they may also refer to different instances.

[0020] The terms used in the description of various examples in this disclosure are only for the purpose of describing specific examples and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element can be one or more. In addition, the term "and / or" used in this disclosure covers any one of the listed items and all possible combinations. "Multiple" refers to two or more.

[0021] In the technical solution disclosed herein, the acquisition, storage and application of user personal information involved are in compliance with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0022] High-precision maps, also known as high-precision maps, are electronic maps used by autonomous vehicles. High-precision maps have accurate vehicle location information and rich road element information (such as lane lines, guardrails, traffic signs, etc.), which can help vehicles predict complex road information such as slope, curvature, heading, etc., so that vehicles can better avoid potential risks.

[0023] In the related technology, professional surveying and mapping equipment is used to collect environmental data and generate electronic maps (hereinafter referred to as "maps") based on the data. The operation of professional surveying and mapping equipment is highly complex, and data collection is time-consuming and inefficient, resulting in low efficiency in map production. The generated maps have a certain lag relative to the real world and cannot accurately reflect the real world. In particular, this map production method is difficult to meet the requirements of high-precision maps for map production efficiency, real-time performance, and accuracy.

[0024] In view of the above problems, the present disclosure provides a map generation method. The method generates a map based on vehicle driving data. Since a large number of vehicles travel at any time and in any place in the real world, a large amount of driving data can be generated, and the driving data can reflect the road conditions in the real world in real time. Generating a map based on vehicle driving data can improve the real-time performance and accuracy of the map.

[0025] The map generation method disclosed in the present invention can generate fine-grained, atomic map production tasks by splitting the vehicle's driving data. By determining the priority (first priority) of each map production task and setting the concurrency of map production, important (i.e., high-priority) map production tasks can be processed in a parallel computing manner, thereby reducing the computing time, ensuring the map production efficiency, and avoiding the adverse impact on the map production efficiency caused by directly processing a large amount of driving data.

[0026] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0027] Figure 1 FIG. 1 is a schematic diagram of an exemplary system 100 in which various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes a motor vehicle 110 , a server 120 , and one or more communication networks 130 coupling the motor vehicle 110 to the server 120 .

[0028] In an embodiment of the present disclosure, the motor vehicle 110 may include an electronic device according to an embodiment of the present disclosure and / or be configured to perform a method according to an embodiment of the present disclosure.

[0029] The server 120 may run one or more services or software applications that enable the execution of the methods of the disclosed embodiments. In some embodiments, the server 120 may also provide other services or software applications, which may include non-virtual environments and virtual environments. Figure 1In the configuration shown, the server 120 may include one or more components that implement the functions performed by the server 120. These components may include software components, hardware components, or a combination thereof that can be executed by one or more processors. A user of the motor vehicle 110 may in turn utilize one or more client applications to interact with the server 120 to utilize the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from the system 100. Therefore, Figure 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.

[0030] Server 120 may include one or more general purpose computers, dedicated server computers (e.g., PC (personal computer) servers, UNIX servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and / or combination. Server 120 may include one or more virtual machines running virtual operating systems, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that may be virtualized to maintain a server's virtual storage device). In various embodiments, server 120 may run one or more services or software applications that provide the functionality described below.

[0031] The computing units in the server 120 may run one or more operating systems including any of the above operating systems and any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and / or middle-tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, etc.

[0032] In some embodiments, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from motor vehicle 110. Server 120 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of motor vehicle 110.

[0033] The network 130 may be any type of network known to those skilled in the art that may support data communications using any of a variety of available protocols, including, but not limited to, TCP / IP, SNA, IPX, etc. By way of example only, one or more networks 130 may be a satellite communications network, a local area network (LAN), an Ethernet-based network, a token ring, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a blockchain network, a public switched telephone network (PSTN), an infrared network, a wireless network (including, for example, Bluetooth, Wi-Fi), and / or any combination of these and other networks.

[0034] The system 100 may also include one or more databases 150. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 150 may be used to store information such as audio files and video files. The databases 150 may reside in various locations. For example, the data repository used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The databases 150 may be of different types. In some embodiments, the databases 150 may be relational databases. One or more of these databases may store, update, and retrieve data to and from the databases in response to commands.

[0035] In some embodiments, one or more of the databases 150 may also be used by an application to store application data. The databases used by the application may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.

[0036] The motor vehicle 110 may include a sensor 111 for sensing the surrounding environment. The sensor 111 may include one or more of the following sensors: a visual camera, an infrared camera, an ultrasonic sensor, a millimeter wave radar, and a laser radar. Different sensors may provide different detection accuracy and range. The camera may be installed at the front, rear, or other position of the vehicle. The visual camera may capture the situation inside and outside the vehicle in real time and present it to the driver and / or passengers. In addition, by analyzing the images captured by the visual camera, information such as traffic light indications, intersection conditions, and the operating status of other vehicles may be obtained. The infrared camera may capture objects under night vision conditions. Ultrasonic sensors may be installed around the vehicle to measure the distance of objects outside the vehicle from the vehicle using the characteristics of strong ultrasonic directionality. Millimeter wave radars may be installed at the front, rear, or other position of the vehicle to measure the distance of objects outside the vehicle from the vehicle using the characteristics of electromagnetic waves. Laser radars may be installed at the front, rear, or other position of the vehicle to detect object edges and shape information, thereby identifying and tracking objects. Due to the Doppler effect, the radar device may also measure the speed change of the vehicle and the moving object.

[0037] The motor vehicle 110 may also include a communication device 112. The communication device 112 may include a satellite positioning module capable of receiving satellite positioning signals (e.g., Beidou, GPS, GLONASS, and GALILEO) from satellites 141 and generating coordinates based on these signals. The communication device 112 may also include a module for communicating with a mobile communication base station 142, and the mobile communication network may implement any suitable communication technology, such as GSM / GPRS, CDMA, LTE, and other current or evolving wireless communication technologies (e.g., 5G technology). The communication device 112 may also have a vehicle-to-vehicle or vehicle-to-everything (V2X) module, which is configured to implement, for example, vehicle-to-vehicle (V2V) communication with other vehicles 143 and vehicle-to-infrastructure (V2I) communication with infrastructure 144. In addition, the communication device 112 may also have a module configured to communicate with a user terminal 145 (including but not limited to a smartphone, a tablet computer, or a wearable device such as a watch) by, for example, using a wireless LAN or Bluetooth using the IEEE 802.11 standard. Using the communication device 112, the motor vehicle 110 may also access the server 120 via the network 130.

[0038] The motor vehicle 110 may further include an inertial navigation module. The inertial navigation module and the satellite positioning module may be combined into a combined positioning system to achieve initial positioning of the motor vehicle 110.

[0039] The motor vehicle 110 may also include a control device 113. The control device 113 may include a processor that communicates with various types of computer-readable storage devices or media, such as a central processing unit (CPU) or a graphics processing unit (GPU), or other dedicated processors. The control device 113 may include an automatic driving system for automatically controlling various actuators in the vehicle, and accordingly, the motor vehicle 110 is an automatic driving vehicle. The automatic driving system is configured to control the powertrain, steering system, and braking system of the motor vehicle 110 (not shown) via multiple actuators in response to inputs from multiple sensors 111 or other input devices to control acceleration, steering, and braking, respectively, without human intervention or limited human intervention. Some processing functions of the control device 113 can be implemented through cloud computing. For example, some processing can be performed using an on-board processor, while other processing can be performed using computing resources in the cloud. The control device 113 can be configured to perform a method according to the present disclosure. In addition, the control device 113 can be implemented as an example of an electronic device on the motor vehicle side (client) according to the present disclosure.

[0040] Figure 1 The system 100 may be configured and operated in various ways to enable the application of various methods and apparatuses described in the present disclosure.

[0041] According to some embodiments, the motor vehicle 110 may upload the driving data collected by itself to the server 120 during driving. The driving data may include, for example, the trajectory data of the motor vehicle 110 and the environmental data collected by the sensor. The trajectory data may include, for example, the position, direction, speed, etc. of each trajectory point of the motor vehicle 110. The environmental data may include, for example, images, point clouds, altitude, temperature, humidity, etc. The server 120 executes the map generation method of the embodiment of the present disclosure based on the driving data uploaded by the motor vehicle 110 to generate a map of the driving area of ​​the motor vehicle 110 (i.e., the geographical area covered by the driving data).

[0042] According to some embodiments, the motor vehicle 110 can execute the map generation method of the embodiment of the present disclosure based on the driving data collected by itself to generate a map of the driving area. This usually requires the motor vehicle 110 to have a high hardware configuration and computing power. Further, the motor vehicle 110 can upload the locally generated map to the server 120. The server 120 aggregates the maps uploaded by multiple motor vehicles to generate a map with a larger coverage area and more complete.

[0043] Figure 2 FIG. 2 is a flow chart of a map generation method 200 according to an embodiment of the present disclosure. As described above, the execution subject of the method 200 may be a server (eg, Figure 1 ), or a motor vehicle (e.g. Figure 1 110).

[0044] like Figure 2 As shown, method 200 includes steps S210 - S240 .

[0045] In step S210 , the driving data of the vehicle is divided into at least one data group.

[0046] In step S220, based on the preset map production process, at least one map production task corresponding to the at least one data group is generated. Each of the at least one map production task includes a plurality of map production subtasks having a dependency relationship, and the plurality of map production subtasks are used to process the corresponding data group to generate a map of the geographical area covered by the data group.

[0047] In step S230 , a first priority of each of at least one map production task is determined based on the corresponding data group.

[0048] In step S240, based on a preset concurrency, the at least one map production task is executed in a descending order of the first priority to generate a map of the geographic area covered by the driving data.

[0049] According to an embodiment of the present disclosure, a map is generated based on vehicle driving data. Since a large number of vehicles travel at any time and in any place in the real world, a large amount of driving data can be generated, and the driving data can reflect the road conditions in the real world in real time. Generating a map based on vehicle driving data can improve the real-time and accuracy of the map.

[0050] The map generation method disclosed in the present invention can generate fine-grained, atomic map production tasks by splitting the vehicle's driving data. By determining the priority (first priority) of each map production task and setting the concurrency of map production, important (i.e., high-priority) map production tasks can be processed in a parallel computing manner, thereby reducing the computing time, ensuring the map production efficiency, and avoiding the adverse impact on the map production efficiency caused by directly processing a large amount of driving data.

[0051] The following is a detailed description of each step of method 200.

[0052] In step S210 , the driving data of the vehicle is divided into at least one data group.

[0053] It is understood that before executing step S210, it is necessary to obtain the driving data of the vehicle. The vehicle mentioned here can be either a manually driven vehicle or an autonomous driving vehicle; it can be either a collection vehicle specifically used to collect map data or a household vehicle of an ordinary user. The present disclosure does not limit the type of vehicle involved in map production.

[0054] As mentioned above, vehicles are usually equipped with various sensing devices, including satellite positioning modules, inertial navigation modules, visual cameras, laser radars, temperature sensors, pressure altitude sensors, etc. During the driving process of the vehicle, these sensing devices can collect the status data of the vehicle at various time points in real time, such as each track point in the driving trajectory of the vehicle (each track point has attribute information such as position, direction, speed, etc.) and the environmental data at each track point, including the image, point cloud, temperature, altitude, etc. at each track point. The disclosed embodiment records these status data as the driving data of the vehicle.

[0055] It is understood that there may be multiple vehicles involved in map production. For the driving data collected by each vehicle, a map of the driving area of ​​the vehicle (ie, the geographical area covered by the driving data of the vehicle) may be generated by executing the method 200 of the embodiment of the present disclosure.

[0056] According to some embodiments, after obtaining the driving data of the vehicle, a series of preprocessing operations may be performed on the driving data to ensure the quality and integrity of the driving data, thereby ensuring the quality of the generated map. The preprocessing operations of the driving data may include, for example, coordinate conversion, data integrity judgment, isolation belt production, track first point identification, etc.

[0057] Coordinate conversion refers to converting driving data in various coordinate systems into a unified bird's-eye view coordinate system. Different driving data usually use different coordinate systems. For example, the position of the track point uses the world coordinate system, the image uses the visual camera coordinate system, and the point cloud data uses the lidar coordinate system. Electronic maps usually use a bird's-eye view. Therefore, in order to facilitate map production, it is necessary to unify the driving data in various coordinate systems into a bird's-eye view coordinate system through coordinate conversion operations.

[0058] Data integrity judgment refers to judging whether the driving data is complete. According to some embodiments, the driving data may include multiple fields. Accordingly, whether the driving data is complete can be determined by judging whether there are missing fields in the driving data, judging whether the values ​​of each field conform to a preset format, etc. If the driving data is complete, the driving data can be used to generate a map; if the driving data is incomplete, the driving data is discarded, that is, the driving data is not used to generate a map.

[0059] Median strip production refers to identifying the road's median strip (such as trees, railings, etc.), that is, the boundary of the road, from driving data to determine the approximate location of the road.

[0060] Track first point recognition refers to extracting one or more track points that indicate the start of vehicle movement from multiple track points of the vehicle. These track points mark the beginning of the vehicle entering the road, so road information can be extracted based on the driving data after these track points.

[0061] According to some embodiments, the above-mentioned preprocessing operations of coordinate conversion, data integrity judgment, isolation zone production, and trajectory first point identification can be performed in sequence.

[0062] By preprocessing the driving data, preprocessed driving data can be obtained. Accordingly, in step S210, the preprocessed driving data can be split to obtain at least one data group.

[0063] As described above, according to some embodiments, the driving data of a vehicle includes multiple track points of the vehicle and the environmental data corresponding to each of the multiple track points. A track point refers to the geographical location of a vehicle at a certain moment, and accordingly, the environmental data of a track point refers to the environmental data collected by the vehicle at that moment and geographical location. Therefore, it can be understood that both the track point and the environmental data are associated with the geographical location.

[0064] According to some embodiments, the driving data of the vehicle may be split based on the geographic area of ​​the map to be generated. The scope of the geographic area of ​​the map to be generated may be set according to actual map production requirements. For example, the geographic area of ​​the map to be generated may be a national territorial area, a provincial administrative area, a municipal administrative area, etc.

[0065] According to some embodiments, the geographical area for which the map is to be generated may be divided into a plurality of grids, for example, into a plurality of rectangular grids of the same size. Accordingly, in step S210, the driving data may be split based on the distribution of the driving data in each grid. For example, the driving data in each grid may be regarded as a data group. The granularity of the grid (i.e., the area of ​​a single grid) may be set according to actual map production requirements. It is understood that in this embodiment, the larger the granularity of the grid, the larger the amount of data in the data group (driving data included in a single grid), and the greater the computational complexity of the map production task corresponding to the data group.

[0066] For complex road scenes such as viaducts and flyovers, there may be multiple layers of road surfaces at different heights in a single grid. In order to ensure the efficiency and accuracy of map production, it is necessary to process each layer of road surface separately, that is, to extract the road information of each layer of road surface separately. Therefore, according to some embodiments, in step S210, the driving data can be split based on the distribution of driving data in each grid and the road surface layering in each grid. Specifically, step S210 can include steps S211-S213.

[0067] In step S211, at least one target grid where multiple track points are located is determined. Specifically, the grid where the track points exist is determined as the target grid. It can be understood that the number and position of the target grids covered by the track points of the vehicle are usually different depending on the vehicle's driving path. There can be one or more target grids.

[0068] In step S212, for each target grid in at least one target grid, the driving data in the target grid is divided into at least one data set, and each data set in the at least one data set corresponds to a layer of road surface. Specifically, the driving data may include the altitude of each track point. Based on the altitude of each track point, each track point may be clustered, each category corresponds to a layer of road surface, and the track points belonging to the category and their corresponding environmental data constitute the data set of the road surface.

[0069] In step S213, each data set in each target grid is determined as a data group. For example, the driving data of the vehicle includes multiple track points and environmental data at each track point. The multiple track points are located in target grid 1 and target grid 2. Target grid 1 includes a data set S1 (i.e., one layer of road surface), and target grid 2 includes two data sets S2 and S3 (i.e., two layers of road surface). Accordingly, the data sets S1, S2, and S3 can be respectively regarded as a data group, thereby dividing the driving data of the vehicle into three data groups.

[0070] According to the above embodiment, through grid division and road layering, the complex map production task of the whole vehicle can be split into map production tasks for a single-layer road surface in a local area (single grid), thereby ensuring the efficiency and accuracy of map production.

[0071] After the driving data is divided into at least one data group in step S210 , step S220 may be performed.

[0072] In step S220, based on the preset map production process, at least one map production task corresponding to the at least one data group is generated, that is, each data group corresponds to a map production task.

[0073] The preset map production process includes multiple map production steps, such as image conversion (converting color images into black and white images), point cloud denoising (removing noise points in point clouds), point cloud processing (for road scenes such as horizontal roads and inclined roads, using two-dimensional point clouds from a bird's-eye view or three-dimensional point clouds in three-dimensional space), line recognition (identifying lane lines, stop lines, bus lines and other lines in the road), layer generation (generating multiple layers at different zoom levels), quality inspection (pushing each layer to quality inspectors for quality inspection), etc. There are dependencies between the steps in the map production process. For example, the steps listed above can be executed in sequence, that is, the subsequent steps depend on the completion of the previous steps. The steps included in the map production process and the dependencies between the steps (execution order) can be set as needed.

[0074] For each data set, a map production task corresponding to the data set can be generated based on a preset map production process. The map production task includes multiple map production subtasks with dependencies, and each map production subtask corresponds to a map production step in the preset map production process. The multiple map production subtasks are used to process the corresponding data set to generate a map of the geographical area covered by the data set.

[0075] A single map production task can be represented as a directed acyclic graph (DAG), for example. Accordingly, each node in the DAG can represent a map production subtask, and the directed edges between the nodes represent the dependency relationship between the nodes.

[0076] Furthermore, the directed acyclic graphs of at least one map production task can be combined into a larger directed acyclic graph. The combined directed acyclic graph includes a start node and an end node, and the directed acyclic graphs of the respective map production tasks are parallel branches located between the start node and the end node.

[0077] In step S230 , a first priority of each of at least one map production task is determined based on the corresponding data group.

[0078] According to some embodiments, step S230 may include step S231: for each map production task in at least one map production task, determining a first priority of the map production task based on a second priority of a geographic area covered by a data group corresponding to the map production task. The first priority is positively correlated with the second priority, that is, the higher the second priority, the higher the first priority.

[0079] As described above, in some embodiments, the geographic area of ​​the map to be generated can be pre-divided into multiple grids, and accordingly, the geographic area covered by the data group is the grid to which the data group belongs, and the second priority of the geographic area covered by the data group is the second priority of the grid to which the data group belongs. According to some embodiments, the second priority of each grid can be pre-set. The second priority of the grid can be set, for example, with reference to various factors such as the administrative level, population size, and tourism popularity of the city in the grid.

[0080] According to some embodiments, the second priority of the geographical area (grid) covered by the data group corresponding to the map production task may be obtained, and the second priority may be used as the first priority of the map production task.

[0081] According to other embodiments, after obtaining the second priority of the geographic area (grid) covered by the data group corresponding to the map production task, the second priority can be processed in a certain manner, and the processing result can be used as the first priority. The above processing can be to adjust the second priority according to the data volume of the data group. For example, when the data volume is greater than or equal to the data volume threshold, the second priority can be increased and the increased second priority can be used as the first priority; conversely, that is, when the data volume is less than the data volume threshold, the second priority can be reduced and the reduced second priority can be used as the first priority.

[0082] After determining the first priority of each map production task, step S240 can be executed to execute each map production task in descending order of the first priority based on a preset concurrency to generate a map of the geographic area covered by the vehicle's driving data.

[0083] The map production task can be performed by a distributed computing system, for example. The distributed computing system includes multiple computing devices. Generally, the distributed computing system can perform a variety of computing tasks, not limited to map production tasks. For example, in addition to map production tasks, the distributed computing system can also perform a variety of computing tasks such as text classification, image recognition, and speech recognition. In an embodiment of the present disclosure, the concurrency indication is the number of computing devices used to perform the map production task.

[0084] According to some embodiments, step S240 may include step S241: scheduling each map production task in the at least one map production task to an idle computing device for execution in order of the first priority from high to low.

[0085] According to some embodiments, in step S241, each map production task may be inserted into the task queue corresponding to the vehicle in descending order of the first priority, wherein a map production task with a high priority is at the head of the queue and a map production task with a low priority is at the tail of the queue. Each map production task is sequentially taken from the head of the queue and dispatched to an idle computing device for execution.

[0086] According to some embodiments, when the map production task is executed by a distributed computing system, one or more fixed computing devices may be selected from the distributed computing system based on a preset concurrency to specifically execute the map production task.

[0087] For example, there are 10 map production tasks, the preset concurrency is 5, and computing devices 1 to 5 in the distributed computing system are selected to execute map production tasks. At the initial moment, computing devices 1 to 5 are all idle, so the first five map production tasks with the highest first priority are respectively scheduled to computing devices 1 to 5 for execution. Computing device 2 first completes the local map production task and is then idle, so the sixth map production task is scheduled to computing device 2 for execution.

[0088] According to some embodiments, when the map production task is executed by a distributed computing system, for each map production task, based on the busyness of each computing device in the distributed computing system, a computing device may be dynamically selected from the distributed computing system to execute the map production task. The set of computing devices executing the map production task at different times may be different, but the number of computing devices executing the map production task at the same time is not greater than the preset concurrency.

[0089] For example, there are 10 map production tasks, the preset concurrency is 5, and the distributed computing system includes computing devices 1 to 100. At the initial moment, 5 idle computing devices are selected from the distributed computing system, such as computing devices 1 to 3, 6, and 7, and the first five map production tasks with the highest first priority are respectively scheduled to these five computing devices for execution. Computing device 2 completes the local map production task first, but it is also executing other tasks (such as image recognition tasks), so even if the map production task is completed, computing device 2 may still be busy. Therefore, the sixth map production task is not scheduled to computing device 2, but to the currently idle computing device 30 in the distributed system. At this time, there are still five computing devices executing the map production task, namely computing devices 1, 3, 6, 7, and 30, which are not exactly the same as the five computing devices (computing devices 1 to 3, 6, and 7) that execute the map production task at the initial moment.

[0090] According to some embodiments, method 200 further includes steps S250 and S260.

[0091] In step S250, the total execution time of at least one map production task is predicted based on the data volume and concurrency of the data groups processed by each of the at least one map production tasks.

[0092] In step S260, the concurrency is adjusted based on the total execution time.

[0093] According to the above embodiment, the concurrency is dynamically adjusted based on the estimated total execution time, so that a balance between computing resource consumption (computing equipment) and computing efficiency can be achieved.

[0094] According to some embodiments, in step S250, the total execution time T total It can be calculated according to the following formula:

[0095]

[0096] In the above formula, n is the concurrency, is the execution time of the i-th map production task currently being executed, is the weight of the i-th map production task currently being executed, is the number of map production subtasks included in the currently executed i-th map production task, m is the number of data transmission links, is the data transmission time of the jth data transmission link.

[0097] In the above formula, It can be determined based on the data volume P of the data group processed by the i-th map production task and the data processing volume U per unit time of the computing device executing the map production task. The weight of the i-th map production task can be determined according to the first priority of the map production task, and the weight is positively correlated with the first priority, that is, the higher the first priority of the map production task, the greater its weight in estimating the total execution time. The data transmission link, for example, includes the link in which the execution subject of method 200 (such as a server or client device) transmits the data group to be processed to the computing device, and the link in which the computing device returns the generated map data to the execution subject of method 200. The data transmission time of the j-th data transmission link is For example, it can be determined based on the amount of data to be transmitted Q and the data transmission rate S.

[0098] According to some embodiments, step S260 may include steps S261 - S263 .

[0099] In step S291, in response to the total execution time being greater than the time threshold, the concurrency is increased to obtain a temporary concurrency. For example, if the concurrency is 5 and the predicted total execution time is 9 hours, which is greater than the time threshold of 8 hours, the concurrency can be increased to 10. 10 is the temporary concurrency.

[0100] In step S292, the total execution time is updated based on the temporary concurrency. For example, based on the temporary concurrency n', the total execution time is recalculated using the above formula (1) to obtain the updated total execution time T total '.

[0101] In step S293, in response to the updated total execution time being less than or equal to the time threshold, the temporary concurrency is determined as the adjusted concurrency. For example, if the updated total execution time is 7.5 hours, which is less than the time threshold of 8 hours, the temporary concurrency is determined as the adjusted concurrency.

[0102] If the updated total execution time is still greater than the time threshold, steps S261 - S263 are repeated until the updated total execution time is less than or equal to the time threshold.

[0103] According to the above embodiment, when the total execution time does not meet expectations (ie, the time threshold), the concurrency is increased (ie, the number of computing devices executing the map production task is increased) until the total execution time meets expectations.

[0104] The above steps S231 and S241 describe the map generation process for the driving data of a single vehicle. When the driving data of multiple vehicles is obtained, the map of the driving area of ​​each vehicle is generated respectively through steps S231 and S241. That is, each vehicle corresponds to a task queue, and the map generation processes of different vehicles are independent of each other.

[0105] According to some embodiments, when the driving data of multiple vehicles are obtained, the driving data of the multiple vehicles can also be processed jointly. Multiple vehicles share a task queue, and the map production task of each vehicle is inserted into the same task queue for overall scheduling. It can be understood that when multiple vehicles share a task queue, at least one map production task of a single vehicle is still executed in the order of the first priority from high to low, but during the execution of the at least one map production task, the map production tasks of other vehicles may be interspersed, that is, the execution time of two adjacent map production tasks of a single vehicle may not be adjacent.

[0106] In the case of jointly processing the driving data of multiple vehicles, the map production tasks of the multiple vehicles need to be sorted as a whole, so when determining the first priority of the map production task, the nature of the vehicle itself needs to be considered. According to some embodiments, step S230 may include S232: for each map production task of at least one map production task of a single vehicle, based on the second priority of the geographical area covered by the data group corresponding to the map production task and the data collection accuracy of the vehicle, determine the first priority of the map production task. The first priority is positively correlated with the above-mentioned second priority and data collection accuracy, that is, the higher the second priority, the higher the first priority; the higher the data collection accuracy of the vehicle, the higher the first priority.

[0107] According to the above embodiment, when determining the priority of map production tasks, in addition to considering the geographical area covered by the data group, the properties of the vehicle itself (data collection accuracy) are also considered, thereby achieving mixed sorting of map production tasks for different vehicles.

[0108] The method for determining the second priority level may refer to step S231 and will not be described in detail here.

[0109] According to some embodiments, a correspondence table between vehicle models and data collection accuracy may be preset. Accordingly, the data collection accuracy of the vehicle may be found from the correspondence table based on the vehicle model.

[0110] According to some embodiments, the data collection accuracy of the vehicle may be used as an adjustment coefficient for the second priority of the geographical area covered by the data group corresponding to the map production task, and the product of the second priority and the adjustment coefficient may be used as the first priority of the map production task.

[0111] According to some embodiments, corresponding to step S230 including step S232 , step S240 may include steps S242 and S243 .

[0112] In step S242, for at least one map production task of each vehicle, based on the respective first priorities of the at least one map production task, the at least one map production task is respectively inserted into a preset task queue, and the map production tasks in the task queue are arranged in descending order according to the first priority.

[0113] In step S243, the map production tasks in the task queue are sequentially dispatched to idle computing devices for execution. The concurrency indicates the number of computing devices used to execute the map production tasks.

[0114] According to the above embodiment, the map production tasks of each vehicle can be aggregated into a unified task queue, and the task queue is consumed by the computing device, thereby realizing the coordinated scheduling of map production tasks of different vehicles, and further improving the pertinence and efficiency of map production.

[0115] The task scheduling process in step S243 may refer to step S242 and will not be described in detail here.

[0116] According to some embodiments, method 200 further includes steps S270 and S280.

[0117] In this step S270, the total execution time of the task queue is predicted based on the data volume and concurrency of the data group processed by each map production task in the task queue.

[0118] In step S280, the concurrency is adjusted based on the total execution time.

[0119] According to the above embodiment, the concurrency is dynamically adjusted based on the estimated total execution time, so that a balance between computing resource consumption (computing equipment) and computing efficiency can be achieved.

[0120] According to some embodiments, in step S270, the total execution time T total It can be calculated according to the following formula:

[0121]

[0122] In the above formula, n is the concurrency, is the execution time of the i-th map production task currently being executed, is the weight of the i-th map production task currently being executed, is the number of map production subtasks included in the currently executed i-th map production task, m is the number of data transmission links, is the data transmission time of the jth data transmission link.

[0123] In the above formula, It can be determined based on the data volume P of the data group processed by the i-th map production task and the data processing volume U per unit time of the computing device executing the map production task. The weight of the i-th map production task can be determined according to the first priority of the map production task, and the weight is positively correlated with the first priority, that is, the higher the first priority of the map production task, the greater its weight in estimating the total execution time. The data transmission link, for example, includes the link in which the execution subject of method 200 (such as a server or client device) transmits the data group to be processed to the computing device, and the link in which the computing device returns the generated map data to the execution subject of method 200. The data transmission time of the j-th data transmission link is For example, it can be determined based on the amount of data to be transmitted Q and the data transmission rate S.

[0124] According to some embodiments, step S280 may also include the above steps S261-S263. The specific implementation of steps S261-S263 can be found above and will not be described in detail here.

[0125] Figure 3 FIG. 3 is a schematic diagram showing a map production process 300 according to an embodiment of the present disclosure. Figure 3 As shown, process 300 includes steps S310 - S330 .

[0126] In step S310, the driving data of the vehicle is divided into multiple data groups, each data group generates a map production task, and thus multiple map production tasks are generated.

[0127] Figure 3 The right side shows a schematic diagram of multiple map production tasks generated. Figure 3 As shown in FIG. 3 , a total of three map production tasks are generated, and each map production task is represented as a chain-like directed acyclic graph 341. The nodes in the directed acyclic graph 341 represent map production subtasks, and the edges represent the dependencies (execution order) between the map production subtasks. The three directed acyclic graphs 341 can be combined to generate a larger directed acyclic graph 340. Figure 3As shown, the directed acyclic graph 340 further includes a start node 342 and an end node 343. The three directed acyclic graphs 341 are parallel branches located between the start node 342 and the end node 343, and the three can be executed in parallel.

[0128] In step S320 , based on a preset concurrency, the map production tasks are executed in parallel to generate map data.

[0129] In step S330, the generated map data is provided to downstream services. Downstream services are services that need to use map data, such as navigation route planning, point of interest query, etc.

[0130] According to an embodiment of the present disclosure, a map generating device is also provided. Figure 4 FIG. 4 shows a structural block diagram of a map generating device 400 according to an embodiment of the present disclosure. Figure 4 As shown, the apparatus 400 includes a dividing module 410 , a generating module 420 , a determining module 430 and an executing module 440 .

[0131] The division module 410 is configured to divide the driving data of the vehicle into at least one data group.

[0132] The generation module 420 is configured to generate at least one map production task corresponding to the at least one data group based on a preset map production process, each of the at least one map production task includes a plurality of map production subtasks with a dependency relationship, and the plurality of map production subtasks are used to process the corresponding data group to generate a map of the geographical area covered by the data group.

[0133] The determination module 430 is configured to determine a first priority of each of the at least one map production tasks based on the corresponding data group.

[0134] The execution module 440 is configured to execute the at least one map production task in a descending order of the first priority based on a preset concurrency, so as to generate a map of the geographical area covered by the driving data.

[0135] According to an embodiment of the present disclosure, a map is generated based on vehicle driving data. Since a large number of vehicles travel at any time and in any place in the real world, a large amount of driving data can be generated, and the driving data can reflect the road conditions in the real world in real time. Generating a map based on vehicle driving data can improve the real-time and accuracy of the map.

[0136] The map generation method disclosed in the present invention can generate fine-grained, atomic map production tasks by splitting the vehicle's driving data. By determining the priority (first priority) of each map production task and setting the concurrency of map production, important (i.e., high-priority) map production tasks can be processed in a parallel computing manner, thereby reducing the computing time, ensuring the map production efficiency, and avoiding the adverse impact on the map production efficiency caused by directly processing a large amount of driving data.

[0137] According to some embodiments, the driving data includes multiple trajectory points of the vehicle and environmental data corresponding to each of the multiple trajectory points, the geographical area of ​​the map to be generated is divided into multiple grids, and the division module includes: a first determination unit, configured to determine at least one target grid where the multiple trajectory points are located; a division unit, configured to divide the driving data located in the target grid into at least one data set for each target grid in the at least one target grid, each data set in the at least one data set corresponding to a layer of road surface; and a second determination unit, configured to determine each data set in each target grid as a data group.

[0138] According to some embodiments, the determination module is further configured to: for each map production task of the at least one map production task, determine a first priority of the map production task based on a second priority of the geographical area covered by the data group corresponding to the map production task, wherein the first priority is positively correlated with the second priority.

[0139] According to some embodiments, the execution module is further configured to: schedule each map production task of the at least one map production task to an idle computing device for execution in order of the first priority from high to low, wherein the concurrency indicates the number of computing devices used to execute the map production tasks.

[0140] According to some embodiments, the device 400 also includes: a first prediction module, configured to predict the total execution time of the at least one map production task based on the data volume of the data group processed by each of the at least one map production tasks and the concurrency; and an adjustment module, configured to adjust the concurrency based on the total execution time.

[0141] According to some embodiments, the determination module is further configured to: for each map production task of the at least one map production task, determine the first priority of the map production task based on the second priority of the geographical area covered by the data group corresponding to the map production task and the data collection accuracy of the vehicle, wherein the first priority is positively correlated with the second priority and the data collection accuracy, respectively.

[0142] According to some embodiments, the execution module includes: an insertion unit configured to insert the at least one map production task into a preset task queue based on the respective first priority of the at least one map production task, wherein the map production tasks in the task queue are arranged in descending order according to the first priority; and a scheduling unit configured to schedule the map production tasks in the task queue to idle computing devices for execution in sequence, wherein the concurrency indicates the number of computing devices used to execute the map production tasks.

[0143] According to some embodiments, the device 400 also includes: a second prediction module, configured to predict the total execution time of the task queue based on the data volume of the data group processed by each map production task in the task queue and the concurrency; and an adjustment module, configured to adjust the concurrency based on the total execution time.

[0144] According to some embodiments, the adjustment module includes: an increase unit, configured to increase the concurrency in response to the total execution time being greater than a time threshold to obtain a temporary concurrency; an update unit, configured to update the total execution time based on the temporary concurrency; and a third determination unit, configured to determine the temporary concurrency as the adjusted concurrency in response to the updated total execution time being less than or equal to the time threshold.

[0145] It should be understood that Figure 4 The various modules and units of the apparatus 400 shown in FIG. 4 can be compared with those of the reference Figure 2 The steps in the method 200 described above correspond to each other. Therefore, the operations, features and advantages described above for the method 200 are also applicable to the device 400 and the modules and units included therein. For the sake of brevity, some operations, features and advantages are not repeated here.

[0146] Although specific functionality is discussed above with reference to specific modules, it should be noted that the functionality of the various modules discussed herein may be separated into multiple modules, and / or at least some functionality of multiple modules may be combined into a single module.

[0147] It should also be understood that various techniques may be described herein in the general context of software hardware elements or program modules. Figure 4The various units described can be implemented in hardware or in hardware in combination with software and / or firmware. For example, these units can be implemented as computer program codes / instructions, which are configured to be executed in one or more processors and stored in a computer-readable storage medium. Alternatively, these units can be implemented as hardware logic / circuits. For example, in some embodiments, one or more of modules 410-440 can be implemented together in a system on chip (System on Chip, SoC). SoC can include an integrated circuit chip (which includes a processor (e.g., a central processing unit (CPU), a microcontroller, a microprocessor, a digital signal processor (DSP), etc.), a memory, one or more communication interfaces, and / or one or more components in other circuits), and can optionally execute the received program code and / or include embedded firmware to perform functions.

[0148] According to one aspect of the present disclosure, an electronic device is also provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the above-mentioned map generation method 200.

[0149] According to one aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is also provided, wherein the computer instructions are used to enable the computer to execute the above-mentioned map generating method 200.

[0150] According to one aspect of the present disclosure, a computer program product is also provided, including a computer program, which implements the above-mentioned map generating method 200 when executed by a processor.

[0151] refer to Figure 5 , a block diagram of an electronic device 500 that can be used as a server or client of the present disclosure will now be described, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workbenches, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or required herein.

[0152] like Figure 5 As shown, the device 500 includes a computing unit 501, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 502 or a computer program loaded from a storage unit 508 into a random access memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the device 500 can also be stored. The computing unit 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0153] Multiple components in the device 500 are connected to the I / O interface 505, including: an input unit 506, an output unit 507, a storage unit 508, and a communication unit 509. The input unit 506 can be any type of device that can input information to the device 500. The input unit 506 can receive input digital or character information and generate key signal input related to user settings and / or function control of the electronic device, and can include but is not limited to a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and / or a remote controller. The output unit 507 can be any type of device that can present information, and can include but is not limited to a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 508 can include but is not limited to a disk, an optical disk. The communication unit 509 allows the device 500 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and can include but is not limited to a modem, a network card, an infrared communication device, a wireless communication transceiver, and / or a chipset, such as a Bluetooth device, an 802.11 device, a Wi-Fi device, a WiMAX device, a cellular communication device, and / or the like.

[0154] The computing unit 501 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 501 performs the various methods and processes described above, such as the map generation method 200. For example, in some embodiments, the method 200 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as a storage unit 508. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 500 via the ROM 502 and / or the communication unit 509. When the computer program is loaded into the RAM 503 and executed by the computing unit 501, one or more steps of the method 200 described above may be performed. Alternatively, in other embodiments, the computing unit 501 may be configured to perform the method 200 in any other appropriate manner (e.g., by means of firmware).

[0155] Various implementations of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0156] The program code for implementing the method of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code may be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0157] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0158] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0159] The systems and techniques described herein can be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), the Internet, and a blockchain network.

[0160] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship with each other. The server may be a cloud server, a server of a distributed system, or a server combined with a blockchain.

[0161] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially or in different orders, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this document does not limit this.

[0162] Although the embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it should be understood that the above-mentioned methods, systems and devices are merely exemplary embodiments or examples, and the scope of the present disclosure is not limited by these embodiments or examples. Various elements in the embodiments or examples may be omitted or may be replaced by their equivalent elements. In addition, each step may be performed in an order different from that described in the present disclosure. Further, the various elements in the embodiments or examples may be combined in various ways. It is important that with the evolution of technology, many elements described herein may be replaced by equivalent elements that appear after the present disclosure.

Claims

1. A map generation method, comprising: dividing the driving data of the vehicle into at least one data group; Based on a preset map production process, generating at least one map production task corresponding to the at least one data group, each of the at least one map production task includes a plurality of map production subtasks having a dependency relationship, and the plurality of map production subtasks are used to process the corresponding data group to generate a map of the geographical area covered by the data group; determining a first priority of each of the at least one map production tasks based on the corresponding data set; as well as Based on a preset concurrency, the at least one map production task is executed in a descending order of the first priority to generate a map of the geographical area covered by the driving data.

2. The method according to claim 1, wherein: The driving data includes a plurality of track points of the vehicle and environmental data corresponding to each of the plurality of track points. The geographical area of ​​the map to be generated is divided into a plurality of grids. The dividing the driving data of the vehicle into at least one data group includes: Determine at least one target grid where the plurality of trajectory points are located; For each target grid of the at least one target grid, dividing the driving data located in the target grid into at least one data set, each data set of the at least one data set corresponding to a layer of road surface; and Each data set in each target grid is identified as a data group.

3. The method according to claim 1 or 2, wherein: The determining, based on the corresponding data group, the first priority of each of the at least one map production tasks comprises: For each of the at least one map production task, a first priority of the map production task is determined based on a second priority of a geographical area covered by a data group corresponding to the map production task, wherein the first priority is positively correlated with the second priority.

4. The method according to any one of claims 1 to 3, wherein: The executing the at least one map production task based on the preset concurrency and in descending order of the first priority level includes: Each of the at least one map production task is scheduled to be executed on an idle computing device in a descending order of the first priority, wherein the concurrency indicates the number of computing devices used to execute the map production task.

5. The method according to claim 4, further comprising: Predicting a total execution time of the at least one map production task based on the data volume of the data group processed by each of the at least one map production tasks and the concurrency; as well as Based on the total execution time, the concurrency is adjusted.

6. The method according to claim 1 or 2, wherein: The determining, based on the corresponding data group, the first priority of each of the at least one map production tasks comprises: For each of the at least one map production task, a first priority of the map production task is determined based on the second priority of the geographical area covered by the data group corresponding to the map production task and the data collection accuracy of the vehicle, wherein the first priority is positively correlated with the second priority and the data collection accuracy, respectively.

7. The method according to claim 6, wherein: The executing the at least one map production task based on the preset concurrency and in descending order of the first priority level includes: Based on the first priority of each of the at least one map production tasks, inserting the at least one map production task into a preset task queue, respectively, and arranging the map production tasks in the task queue in descending order of the first priority; and The map production tasks in the task queue are sequentially dispatched to idle computing devices for execution, wherein the concurrency indicates the number of computing devices used to execute the map production tasks.

8. The method according to claim 7, further comprising: Predicting the total execution time of the task queue based on the data volume of the data group processed by each map production task in the task queue and the concurrency; as well as Based on the total execution time, the concurrency is adjusted.

9. The method according to claim 5 or 8, wherein: The adjusting the concurrency based on the total execution time includes: In response to the total execution time being greater than a time threshold, increasing the concurrency to obtain a temporary concurrency; Based on the temporary concurrency, updating the total execution time; and In response to the updated total execution time being less than or equal to the time threshold, the temporary concurrency is determined as the adjusted concurrency.

10. A map generating device, comprising: A division module, configured to divide the driving data of the vehicle into at least one data group; a generation module, configured to generate at least one map production task corresponding to the at least one data group based on a preset map production process, each of the at least one map production task comprising a plurality of map production subtasks having a dependency relationship, the plurality of map production subtasks being used to process the corresponding data group to generate a map of the geographical area covered by the data group; a determination module configured to determine a first priority of each of the at least one map production tasks based on the corresponding data group; as well as The execution module is configured to execute the at least one map production task in a descending order of the first priority based on a preset concurrency to generate a map of the geographical area covered by the driving data.

11. The device according to claim 10, wherein: The driving data includes multiple track points of the vehicle and environmental data corresponding to each of the multiple track points. The geographical area of ​​the map to be generated is divided into multiple grids. The division module includes: A first determining unit is configured to determine at least one target grid where the plurality of trajectory points are located; a dividing unit configured to divide the driving data located in each target grid in the at least one target grid into at least one data set, each data set in the at least one data set corresponding to a layer of road surface; and The second determining unit is configured to determine each data set in each target grid as a data group.

12. The device according to claim 10 or 11, wherein: The determination module is further configured to: For each of the at least one map production task, a first priority of the map production task is determined based on a second priority of a geographical area covered by a data group corresponding to the map production task, wherein the first priority is positively correlated with the second priority.

13. The device according to any one of claims 10 to 12, wherein: The execution module is further configured to: Each of the at least one map production task is scheduled to be executed on an idle computing device in a descending order of the first priority, wherein the concurrency indicates the number of computing devices used to execute the map production task.

14. The apparatus according to claim 13, further comprising: A first prediction module is configured to predict a total execution time of the at least one map production task based on the data volume of the data group processed by each of the at least one map production tasks and the concurrency; as well as The adjustment module is configured to adjust the concurrency based on the total execution time.

15. The device according to claim 10 or 11, wherein: The determination module is further configured to: For each of the at least one map production task, a first priority of the map production task is determined based on the second priority of the geographical area covered by the data group corresponding to the map production task and the data collection accuracy of the vehicle, wherein the first priority is positively correlated with the second priority and the data collection accuracy, respectively.

16. The device according to claim 15, wherein: The execution module includes: an inserting unit configured to insert the at least one map production task into a preset task queue based on the first priority of each of the at least one map production tasks, wherein the map production tasks in the task queue are arranged in descending order according to the first priority; and The scheduling unit is configured to schedule the map production tasks in the task queue to idle computing devices for execution in sequence, wherein the concurrency indicates the number of computing devices used to execute the map production tasks.

17. The apparatus according to claim 16, further comprising: A second prediction module is configured to predict the total execution time of the task queue based on the data volume of the data group processed by each map production task in the task queue and the concurrency; as well as The adjustment module is configured to adjust the concurrency based on the total execution time.

18. The device according to claim 14 or 17, wherein: The adjustment module comprises: an increasing unit, configured to increase the concurrency in response to the total execution time being greater than a time threshold, so as to obtain a temporary concurrency; an updating unit, configured to update the total execution time based on the temporary concurrency; and The third determining unit is configured to determine the temporary concurrency as the adjusted concurrency in response to the updated total execution time being less than or equal to the time threshold.

19. An electronic device comprising: at least one processor; as well as a memory communicatively coupled to the at least one processor; in The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 9.

20. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to make a computer execute the method according to any one of claims 1-9.

21. A computer program product comprising a computer program, wherein: The computer program implements the method according to any one of claims 1 to 9 when executed by a processor.

Citation Information

Cited By

  • Lane-level map construction method and device, equipment and storage medium

    CN120593723A