Method and device for producing high-precision maps
By using a parallel production method to receive and process data sets from multiple areas in parallel to generate high-precision maps, the problems of long production cycles and processing system bottlenecks in existing technologies are solved, and efficient and high-quality high-precision map generation is achieved.
Patent Information
- Application Number
- CN202111332090.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-11
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2041-11-11
AI Technical Summary
Existing technologies use a serial approach when producing high-precision maps, resulting in long production cycles and large amounts of data leading to performance bottlenecks in the processing system, making it difficult to efficiently generate high-quality high-precision maps.
A parallel production method is adopted to receive and process data sets of multiple regions in parallel. Through data splicing and grid division, the parallel generation of maps of each region is achieved, and the target map is finally synthesized to ensure the global consistency of the spliced data and the map quality.
It shortens the map production cycle, avoids processing system performance bottlenecks, improves map generation efficiency and accuracy, and ensures map quality consistency.
Smart Images

Figure CN114037778B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, in particular high-precision maps and autonomous driving technology, and specifically to a method, device, electronic device, computer-readable storage medium, and computer program product for producing maps. Background Art
[0002] High-precision maps, also known as high-accuracy maps, are crucial for autonomous driving. They provide precise vehicle location information and rich road element data, helping vehicles anticipate complex road conditions such as slope, curvature, and heading, helping them better mitigate potential risks. Combined with the real-time positioning technology of autonomous vehicles, high-precision maps provide the foundational technical support for scene perception and decision-making.
[0003] The approaches described in this section are not necessarily approaches that have been previously conceived or employed. Unless otherwise indicated, it should not be assumed that any approach described in this section is prior art simply by virtue of its inclusion in this section. Similarly, unless otherwise indicated, the issues raised in this section should not be considered as having been recognized in any prior art. Summary of the Invention
[0004] The present disclosure provides a method, apparatus, electronic device, computer-readable storage medium, and computer program product for generating a map.
[0005] According to one aspect of the present disclosure, a method for producing a map is provided, comprising: receiving data sets corresponding to respective areas of a plurality of areas in parallel; in response to receiving at least one data set corresponding to at least one area of the plurality of areas, generating at least one area map corresponding to the at least one area based on the at least one data set; and in response to determining that area maps corresponding to respective areas of the plurality of areas have been generated, obtaining a target map based on the plurality of area maps corresponding to the plurality of areas, wherein the target map corresponds to the plurality of areas.
[0006] According to another aspect of the present disclosure, there is provided an apparatus for producing a map, comprising: a receiving unit configured to receive data sets corresponding to respective areas of a plurality of areas in parallel; an area map generating unit configured to generate, in response to receiving at least one data set corresponding to at least one area of the plurality of areas, at least one area map corresponding to the at least one area of the plurality of areas based on the at least one data set; and a target map generating unit configured to obtain, in response to determining that area maps corresponding to respective areas of the plurality of areas have been generated, a target map based on a plurality of area maps corresponding to the plurality of areas, wherein the target map corresponds to the plurality of areas.
[0007] According to another 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 implements the above-mentioned method.
[0008] According to another 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 implement the above method.
[0009] According to another aspect of the present disclosure, a computer program product is provided, comprising a computer program, wherein the computer program implements the above method when executed by a processor.
[0010] According to one or more embodiments of the present disclosure, maps are produced using a parallel production method. Data sets from multiple regions corresponding to the target map to be produced are received in parallel. When data for a region is received, processing begins to generate a regional map corresponding to that region. This allows the production process for each region, from data collection to map generation, to proceed in parallel, thereby improving production efficiency.
[0011] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings illustrate exemplary embodiments and constitute a part of the specification. Together with the description of the specification, they serve to explain exemplary implementation of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals designate similar, but not necessarily identical, elements.
[0013] Figure 1 A schematic diagram illustrating an exemplary system in which the various methods described herein may be implemented according to an embodiment of the present disclosure;
[0014] Figure 2 A flowchart of a method for producing a map according to an embodiment of the present disclosure is shown;
[0015] Figure 3 A schematic diagram showing multiple areas in a method for generating a map according to an embodiment of the present disclosure;
[0016] Figure 4A flowchart illustrating a process of generating at least one regional map corresponding to at least one region based on at least one data set in a method for producing a map according to an embodiment of the present disclosure is shown;
[0017] Figure 5 A flowchart showing a process of performing stitching processing on at least one data set to obtain a first stitched data set in a method for producing a map according to an embodiment of the present disclosure is shown;
[0018] Figure 6 A flowchart showing a process of processing each of a plurality of stitched data subsets in parallel in a method for producing a map according to an embodiment of the present disclosure is shown;
[0019] Figure 7 shows a structural block diagram of a map production device according to an embodiment of the present disclosure; and
[0020] Figure 8 A structural block diagram of an apparatus for training a map production model according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0021] The following description of exemplary embodiments of the present disclosure is made 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 appreciated by those skilled 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, descriptions of well-known functions and structures are omitted in the following description.
[0022] In this disclosure, unless otherwise specified, the use of terms such as "first" and "second" to describe various elements is not intended to limit the positional relationship, temporal relationship, or importance relationship of these elements. Such terms are only used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of the element, while in some cases, based on the context of the description, they may also refer to different instances.
[0023] The terms used in the descriptions of the various examples described in this disclosure are for the purpose of describing specific examples only and are not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the element may be one or more. In addition, the term "and / or" used in this disclosure encompasses any one and all possible combinations of the listed items.
[0024] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.
[0025] Figure 1FIG2 is a schematic diagram of an exemplary system 100 in which the various methods and apparatuses described herein may be implemented according to an embodiment of the present disclosure. Figure 1 , the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105, and 106 can be configured to execute one or more applications.
[0026] In an embodiment of the present disclosure, the server 120 may run one or more services or software applications that enable execution of the method for producing a map.
[0027] In some embodiments, server 120 may also provide other services or software applications that may include non-virtualized environments and virtualized environments. In some embodiments, these services may be provided as web-based services or cloud services, such as provided to users of client devices 101, 102, 103, 104, 105, and / or 106 under a software as a service (SaaS) model.
[0028] exist Figure 1 In 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. Users operating client devices 101, 102, 103, 104, 105, and / or 106 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.
[0029] The user can use the client device 101, 102, 103, 104, 105 and / or 106 to use the generated map. The client device can provide an interface that enables the user of the client device to interact with the client device. The client device can also output information to the user via the interface. Although Figure 1 Only six client devices are depicted, but one skilled in the art will appreciate that the present disclosure can support any number of client devices.
[0030] Client devices 101, 102, 103, 104, 105, and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptops), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, gaming systems, thin clients, various messaging devices, sensors or other sensing devices, etc. These computer devices may run various types and versions of software applications and operating systems, such as Microsoft Windows, Apple iOS, UNIX-like operating systems, Linux, or Linux-like operating systems (such as Google Chrome OS); or include various mobile operating systems, such as Microsoft Windows Mobile OS, iOS, Windows Phone, and Android. Portable handheld devices may include cellular phones, smartphones, tablet computers, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Gaming systems may include various handheld gaming devices, internet-enabled gaming devices, etc. Client devices are capable of executing a variety of different applications, such as various internet-related applications, communication applications (such as email applications), and short message service (SMS) applications, and may use various communication protocols.
[0031] The network 110 may be any type of network known to those skilled in the art that can 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, the one or more networks 110 may be 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 public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.
[0032] Server 120 may include one or more general-purpose computers, specialized 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.
[0033] The computing units in the server 120 may run one or more operating systems including any of the operating systems described above as well as 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, and the like.
[0034] In some implementations, server 120 may include one or more applications to analyze and consolidate data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105, and 106. Server 120 may also include one or more applications to display the data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and 106.
[0035] In some embodiments, server 120 may be a distributed system server or a server integrated with blockchain. Server 120 may also be a cloud server, or an intelligent cloud computing server or intelligent cloud host equipped with artificial intelligence technology. A cloud server is a host product within the cloud computing service system that addresses the management difficulties and poor scalability of traditional physical hosts and virtual private servers (VPS) services.
[0036] The system 100 may also include one or more databases 130. In some embodiments, these databases can be used to store data and other information. For example, one or more of the databases 130 can be used to store information such as audio files and object files. The data repository 130 can reside in a variety of locations. For example, the data repository used by the server 120 can be local to the server 120, or can be remote from the server 120 and can communicate with the server 120 via a network-based or dedicated connection. The data repository 130 can be of different types. In some embodiments, the data repository used by the server 120 can be a database, such as a relational database. One or more of these databases can store, update, and retrieve data to and from the database in response to commands.
[0037] In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the applications may be different types of databases, such as a key-value store, an object store, or a conventional store backed by a file system.
[0038] Figure 1The system 100 may be configured and operated in various ways to enable application of the various methods and apparatuses described in accordance with the present disclosure.
[0039] See Figure 2 According to some embodiments of the present disclosure, a method 200 for producing a map includes:
[0040] Step S210: receiving data sets corresponding to respective areas of the plurality of areas in parallel;
[0041] Step S220: in response to receiving at least one data set corresponding to at least one area among the plurality of areas, generating at least one area map corresponding to the at least one area based on the at least one data set; and
[0042] Step S230: In response to determining that the area maps corresponding to the respective areas of the plurality of areas have been generated, obtaining a target map based on the plurality of area maps corresponding to the plurality of areas, wherein the target map corresponds to the plurality of areas.
[0043] According to one or more embodiments of the present disclosure, maps are produced using a parallel production method. Data sets from multiple regions corresponding to the target map to be produced are received in parallel. When data for a region is received, processing begins to generate a regional map corresponding to that region. This allows the production process for each region, from data collection to map generation, to proceed in parallel, thereby improving production efficiency.
[0044] In related technologies, maps are produced in a serial manner, wherein each step in the map production process is followed by the next step after completion. For example, data is collected for each area corresponding to the target map to be produced. After the data for each area is collected, point cloud stitching is performed, and subsequent steps such as data generation, verification, compilation, and release are performed based on the stitched point cloud data. Since the target map often involves a large number of areas and the amount of data in each area is very large, each step takes a very long time, making the map production cycle very long. At the same time, since the amount of data in each area is very large and the amount of data processed in each step is very large, the processing system in each step often encounters performance bottlenecks and cannot interrupt the operation.
[0045] In the solution disclosed herein, a map is produced in a parallel manner. Data is collected for multiple areas corresponding to the target map to be produced, and the data sets of each area are received in parallel. After the data set of the first area is received, the production of the regional map corresponding to the first area is immediately started. During the production of the map of the first area, the data sets of other areas among the multiple areas are continuously received, and after the data set of the second area is received, the production of the regional map corresponding to the second area is immediately started, and so on, to realize the production process of the target map. Since the data set reception of each area and the production process of the regional map are carried out in parallel and independently, it is not necessary to wait until the data of all areas are collected before starting production, shortening the production cycle. Moreover, the data processing amount of each step in the process of producing the regional map of each area separately is significantly reduced compared to the data processing amount of each step in the process of processing the data of all areas at the same time to produce the target map, and there will be no performance bottleneck problem of the processing system.
[0046] In some embodiments, data of each of the multiple areas corresponding to the target map to be produced, such as image data, point cloud data, etc., is collected by sensing devices on multiple collection vehicles.
[0047] In some embodiments, in step S210, a receiving device is used to receive data sets of various areas collected by multiple collection vehicles in parallel through a network.
[0048] See Figure 3 , which shows a schematic diagram of multiple areas corresponding to a target map according to some embodiments, wherein the multiple areas include area 301, area 302, and area 303.
[0049] In some embodiments, in step S220, in response to receiving at least one data set corresponding to at least one area among the multiple areas, the data processing device processes the at least one data set, and at the same time, the receiving device receives data sets corresponding to other areas among the multiple areas. Figure 3 As shown, in response to receiving the data set corresponding to area 301 , the data processing device processes the data set corresponding to area 301 , and at the same time, the receiving device receives the data sets corresponding to areas 302 and 303 .
[0050] In some embodiments, the data collected by the sensor device on the collection vehicle is transmitted to the receiving device at a fixed frequency, so that after the receiving device receives the data, it is provided to the data processing device for processing, and the collection vehicle continues to collect data in other areas.
[0051] In some embodiments, as Figure 4 As shown, generating at least one regional map corresponding to the at least one region based on at least one data set includes:
[0052] Step S410: performing splicing processing on the at least one data set to obtain a first spliced data set;
[0053] Step S420: performing grid division processing on the first stitched data set to obtain a plurality of stitched data subsets corresponding to a plurality of first grid areas in the at least one area; and
[0054] Step S430: Processing each of the plurality of stitched data subsets in parallel to obtain the at least one regional map.
[0055] By performing grid division processing on the first spliced data set obtained after the data set splicing processing, multiple spliced data subsets corresponding to the multiple first grid areas are subsequently processed in parallel according to the divided multiple first grid areas, and the processing task granularity of the spliced data set after the splicing processing is refined, thereby further improving the efficiency of processing the spliced data set.
[0056] In some embodiments, in step S410, point cloud data is stitched to obtain stitched data, and during the stitching process, the data corresponding to the same object (e.g., a building, a street) in the data set is calibrated so that the data in the obtained stitched data set indicates the accurate spatial position of the corresponding object, such as position coordinates.
[0057] In some embodiments, at least one data set corresponding to at least one received region is divided according to the processing capability of a data processing device, so as to perform batch processing on the at least one data set, for example, performing splicing processing on the at least one data set in batches.
[0058] In some embodiments, as Figure 5 As shown, performing splicing processing on the at least one data set to obtain a first spliced data set includes:
[0059] Step S510: in response to determining that one or more data sets corresponding to one or more areas among the multiple areas that partially overlap with the at least one area are received before the at least one data set, acquiring a second stitched data set, wherein the second stitched data set is formed by stitching the one or more data sets; and
[0060] Step S520: performing splicing processing on the at least one data set based on the second spliced data set.
[0061] Before stitching at least one dataset, when it is determined that at least one area corresponding to the at least one dataset to be stitched overlaps with other areas, a stitched dataset of the other areas overlapping with the at least one area is obtained, and stitching processing is performed on the at least one dataset based on a second stitched dataset stitched with the other areas, so that data of objects corresponding to the overlapping area in the at least one dataset are stitched based on data of objects corresponding to the overlapping area in the second stitched dataset, thereby making the data of objects corresponding to the overlapping area in the obtained first stitched dataset and the second stitched dataset consistent, achieving global consistency of the stitching process and ensuring the quality of the map.
[0062] In related technologies, after obtaining data for each of the multiple regions corresponding to the target map, all of the data is first divided into grids to obtain multiple datasets corresponding to the grid regions. These datasets are then stitched together. Because the datasets for each grid region are stitched together independently, the resulting stitched data can deviate between the edges of the grid regions and the areas between them, affecting map quality.
[0063] According to the embodiments of the present disclosure, by performing stitching based on the stitched datasets of overlapping areas during the stitching process, the global consistency of the stitched data is ensured and the accuracy of the map is improved.
[0064] In some embodiments, stitching processing of at least one dataset based on the second stitched dataset includes calibrating at least one dataset based on stitching data of an overlapping area between at least one area of English reading in the second stitched dataset and one or more overlapping areas so that the stitching data corresponding to the overlapping area in the first stitched dataset is consistent with the stitching data corresponding to the overlapping area in the second stitched dataset.
[0065] like Figure 3 As shown, in the process of stitching the data set corresponding to area 301, in response to determining that area 302 partially overlaps with area 301, as shown in the figure, the overlapping area of area 302 and area 301 is the area covered by the line segment pointed to by arrow A, based on the stitching data corresponding to the overlapping area in the second stitched data set obtained by stitching corresponding to area 302, the data set corresponding to area 301 is stitched.
[0066] In some embodiments, in step S420, by dividing at least one area into multiple first grid areas of uniform size, the first stitched data set includes a stitched data subset corresponding to each grid area in the multiple first grid areas and stores the stitched data subset corresponding to the corresponding first grid area.
[0067] For example, multiple first grid areas are encoded, the first spliced data set is divided into the multiple first grid areas, and the spliced data subsets obtained by the division are stored accordingly based on the codes obtained by the encoding.
[0068] Continue to read Figure 3 , dividing the area 301 into a plurality of first grid areas, such as the first grid area 3011, wherein the plurality of first grid areas have the same size. In some embodiments, the first grid area is an area of 10 km x 10 km.
[0069] In some embodiments, parallel processing of each of the multiple stitched data subsets includes: based on each grid area in the multiple first grid areas, flowing each of the multiple stitched data subsets into subsequent production steps in parallel to achieve parallel production at the first grid area granularity.
[0070] In some embodiments, as Figure 6 As shown, the parallel processing of each of the plurality of spliced data subsets includes, for each of the plurality of spliced data subsets, executing:
[0071] Step S610: Divide the spliced data subset into a plurality of subsets corresponding to a plurality of second grid areas, wherein the plurality of second grid areas are located in a first grid area corresponding to the spliced data subset among the plurality of second grid areas, and
[0072] Step S620: Divide the plurality of subsets into a plurality of subset groups, and process each of the plurality of subset groups in parallel.
[0073] By further dividing the stitched data subset of the first grid area into multiple subsets and further refining the granularity of data processing based on the multiple subsets, the processing process of the stitched data subset of the first grid area is refined into multiple tasks corresponding to multiple second grid areas with smaller sizes than the first grid area and corresponding to subset groups with smaller data volumes than the stitched data subset of the first grid area, which are processed in parallel, further improving the efficiency of processing the stitched data set.
[0074] In some embodiments, in step S610, for each first grid area among multiple first grid areas, the first grid area is divided into multiple second grid areas, so that the spliced data subset corresponding to the first grid area is divided into multiple subsets corresponding to the multiple second grid areas for corresponding storage.
[0075] In some embodiments, in step S610, each of the plurality of first grid areas is divided into a plurality of second grid areas of different sizes based on the data volume of the corresponding spliced data subset in each of the plurality of first grid areas. For example, a first grid area with a large data volume is divided into a large number of second grid areas, each of which is smaller in size; a first grid area with a small data volume is divided into a small number of second grid areas, each of which is larger in size. This ensures that the task volume corresponding to the plurality of subset groups after subsequent division based on the plurality of subsets is more balanced, thereby avoiding the formation of a long tail in the production process.
[0076] In some embodiments, in step S610, at least one area is divided into multiple second grid areas, so that multiple stitched data subsets corresponding to multiple first grid areas in at least one area are divided into multiple subsets corresponding to multiple second grid areas, thereby achieving the division of the stitched data subset corresponding to each first grid area into multiple subsets corresponding to multiple second grid areas, wherein the size of the second grid area is smaller than the size of the first grid area.
[0077] Continue to read Figure 3 , the first grid area 3011 in the area 301 is grid-divided to form a plurality of second grid areas, such as the second grid area 30111 , wherein the size of the second grid area 30111 is much smaller than the size of the first grid area 3011 .
[0078] In some embodiments, when gridding each of the plurality of first grid areas to form a plurality of second grid areas, the longitudinal (extension direction) cutting of the same street is avoided to avoid separating data in two directions of the same street.
[0079] In some embodiments, for each of the multiple spliced data subsets, the difference in data volume between any two of the multiple subsets is within a preset range, and wherein each of the multiple subset groups includes a preset number of subsets of the multiple subsets.
[0080] By evenly dividing the spliced data subsets, the difference in data volume between any two subsets obtained in the multiple subsets does not exceed a preset value, so that each subset group in the multiple subset groups obtained by subsequent division of the multiple subsets can have the same data volume. In subsequent processing, the task volume corresponding to each subset group is balanced, avoiding the formation of a long tail in the production process while further improving map production efficiency.
[0081] In some embodiments, processing the subset group includes steps such as quality inspection and storage.
[0082] In some embodiments, after the subset groups are processed, production processes such as edge joining and merging are further performed based on the processed subset groups to generate a region map.
[0083] In some embodiments, when a map has a local usage requirement, the generated regional area will also be published independently.
[0084] In some embodiments, in step S210, based on the generated regional maps corresponding to each of the multiple regions, a target map is obtained, where the target map corresponds to the multiple regions. For example, the target map is generated by performing edge joining or merging based on the regional maps corresponding to the respective regions.
[0085] According to another aspect of the present disclosure, there is also provided an apparatus for producing a map, such as Figure 7 As shown, the device 700 includes: a receiving unit 710, configured to receive data sets corresponding to respective areas of a plurality of areas in parallel; a region map generating unit 720, configured to generate, in response to receiving at least one data set corresponding to at least one area of the plurality of areas, at least one region map corresponding to the at least one area based on the at least one data set; and a target map generating unit 730, configured to obtain a target map based on a plurality of region maps corresponding to the plurality of areas in response to determining that region maps corresponding to respective areas of the plurality of areas have been generated, wherein the target map corresponds to the plurality of areas.
[0086] In some embodiments, the area map generation unit 720 includes: a stitching processing unit, configured to stitch the at least one data set to obtain a first stitched data set; a first grid division unit, configured to stitch the first stitched data set to obtain a plurality of stitched data subsets corresponding to a plurality of first grid areas in the at least one area; and a stitching data processing unit, configured to process each of the plurality of stitched data subsets in parallel to obtain the at least one area map.
[0087] In some embodiments, the stitching processing unit includes: a stitching data acquisition unit, configured to acquire a second stitched data set in response to determining that one or more data sets corresponding to one or more areas among the multiple areas that partially overlap with the at least one area are received before the at least one data set, wherein the second stitched data set is formed by stitching processing based on the one or more data sets; and a stitching sub-unit, configured to stitch the at least one data set based on the second stitched data set.
[0088] In some embodiments, the stitching data processing unit includes: a second grid division unit, configured to divide each stitching data subset in the multiple stitching data subsets into multiple subsets corresponding to multiple second grid areas, wherein the multiple second grid areas are located in a first grid area corresponding to the stitching data subset in the multiple second grid areas; and a processing subunit, configured to divide each stitching data subset in the multiple stitching data subsets into multiple subset groups, and process each subset group in the multiple subset groups in parallel.
[0089] In some embodiments, for each of the multiple spliced data subsets, the difference in data volume between any two of the multiple subsets is within a preset range, and wherein each of the multiple subset groups includes a preset number of subsets of the multiple subsets.
[0090] According to another 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 a computer program, and the computer program implements the above method when executed by the at least one processor.
[0091] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing a computer program is further provided, wherein the computer program implements the above method when executed by a processor.
[0092] According to another aspect of the present disclosure, a computer program product is provided, comprising a computer program, wherein the computer program implements the above method when executed by a processor.
[0093] refer to Figure 8 , a block diagram of an electronic device 800 that can serve 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, workstations, 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 processing, 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.
[0094] like Figure 8As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 802 or a computer program loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the electronic device 800 can also be stored. The computing unit 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.
[0095] Multiple components within electronic device 800 are connected to I / O interface 805, including an input unit 806, an output unit 807, a storage unit 808, and a communication unit 809. Input unit 806 can be any type of device capable of inputting information into electronic device 800. Input unit 806 can receive input numeric or character information and generate key signal input related to user settings and / or function control of the electronic device. It may include, but is not limited to, a mouse, keyboard, touch screen, trackpad, trackball, joystick, microphone, and / or remote control. Output unit 807 can be any type of device capable of presenting information, and may include, but is not limited to, a display, a speaker, an audio / visual output terminal, a vibrator, and / or a printer. Storage unit 808 may include, but is not limited to, a magnetic disk or an optical disk. Communication unit 809 allows electronic device 800 to exchange information / data with other devices via computer networks such as the Internet and / or various telecommunication networks. It may include, but is not limited to, a modem, a network card, an infrared communication device, a wireless communication transceiver and / or chipset, such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication device, and / or the like.
[0096] The computing unit 801 can be a variety of general-purpose and / or specialized processing components with processing and computing capabilities. Some examples of the computing unit 801 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 that run machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as method 200. For example, in some embodiments, method 200 can be implemented as a computer software program that is tangibly contained in a machine-readable medium, such as a storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the method 200 described above can be performed. Alternatively, in other embodiments, the computing unit 801 can be configured to perform method 200 in any other appropriate manner (e.g., by means of firmware).
[0097] Various embodiments of the systems and techniques described 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), system-on-chip systems (SOCs), programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes 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.
[0098] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.
[0099] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can 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 can 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.
[0100] 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).
[0101] The systems and techniques described herein can be implemented in a computing system that includes back-end 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 front-end components (e.g., a user computer having 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 back-end components, middleware components, or front-end 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), and the Internet.
[0102] A computer system may include a client and a server. The client and server are generally remote from each other and typically interact through a communication network. The client-server relationship arises through computer programs running on the respective computers and having a client-server relationship with each other. The server may be a cloud server, a server in a distributed system, or a server integrated with a blockchain.
[0103] It should be understood that the various forms of the 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 a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved. This is not limited herein.
[0104] 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 invention is not limited by these embodiments or examples, but is only limited by the claims after authorization and their equivalents. Various elements in the embodiments or examples may be omitted or replaced by their equivalents. In addition, the steps may be performed in an order different from that described in this disclosure. Further, the various elements in the embodiments or examples may be combined in various ways. It is important that as technology evolves, many of the elements described herein may be replaced by equivalent elements that appear after this disclosure.
Claims
1. A method for producing a map, comprising: receiving, in parallel, data sets corresponding to respective regions of the plurality of regions; In response to receiving at least one data set corresponding to at least one area of the plurality of areas, generating at least one area map corresponding to the at least one area based on the at least one data set; as well as In response to determining that a region map corresponding to each of the plurality of regions has been generated, obtaining a target map based on a plurality of region maps corresponding to the plurality of regions, wherein the target map corresponds to the plurality of regions; The step of generating at least one regional map corresponding to the at least one region based on the at least one data set includes: Performing splicing processing on the at least one data set to obtain a first spliced data set; Performing a gridding process on the first stitched data set to obtain a plurality of stitched data subsets corresponding to a plurality of first grid areas in the at least one area; and processing each of the plurality of stitched data subsets in parallel to obtain the at least one regional map; The parallel processing of each of the plurality of spliced data subsets comprises: For each of the plurality of stitched data subsets, Dividing the stitched data subset into a plurality of subsets corresponding to a plurality of second grid areas, wherein the plurality of second grid areas are located in the first grid area corresponding to the stitched data subset, and the number of the plurality of second grid areas is associated with the data volume of the corresponding stitched data subset in the corresponding first grid area; and Dividing the plurality of subsets into a plurality of subset groups, and processing each of the plurality of subset groups in parallel; and For each of the multiple spliced data subsets, a difference in data volume between any two of the multiple subsets is within a preset range, and each of the multiple subset groups includes a preset number of subsets of the multiple subsets.
2. The method according to claim 1, wherein The performing splicing processing on the at least one data set to obtain a first spliced data set includes: In response to determining that one or more data sets corresponding to one or more areas of the plurality of areas that partially overlap with the at least one area are received before the at least one data set, acquiring a second stitched data set, wherein the second stitched data set is formed by stitching the one or more data sets; and Based on the second spliced data set, the at least one data set is spliced.
3. An apparatus for producing a map, comprising: a receiving unit configured to receive data sets corresponding to respective areas of the plurality of areas in parallel; a region map generating unit configured to, in response to receiving at least one data set corresponding to at least one region among the plurality of regions, generate at least one region map corresponding to the at least one region based on the at least one data set; as well as a target map generating unit configured to, in response to determining that an area map corresponding to each of the plurality of areas has been generated, obtain a target map based on a plurality of area maps corresponding to the plurality of areas, wherein the target map corresponds to the plurality of areas; Wherein, the area map generating unit includes: a splicing processing unit, configured to perform splicing processing on the at least one data set to obtain a first spliced data set; a first grid division unit configured to perform grid division processing on the first stitched data set to obtain a plurality of stitched data subsets corresponding to a plurality of first grid areas in the at least one area; and a stitched data processing unit configured to process each of the plurality of stitched data subsets in parallel to obtain the at least one regional map; Wherein, the splicing data processing unit includes: a second grid division unit configured to divide each of the plurality of spliced data subsets into a plurality of subsets corresponding to a plurality of second grid areas, wherein the plurality of second grid areas are located in a first grid area corresponding to the spliced data subset, and the number of the plurality of second grid areas is associated with the amount of data of the corresponding spliced data subset in the corresponding first grid area; and a processing subunit configured to, for each of the plurality of stitched data subsets, divide the plurality of subsets into a plurality of subset groups, and process each of the plurality of subset groups in parallel; and For each of the multiple spliced data subsets, a difference in data volume between any two of the multiple subsets is within a preset range, and each of the multiple subset groups includes a preset number of subsets of the multiple subsets.
4. The device according to claim 3, wherein The splicing processing unit includes: a stitched data acquiring unit configured to acquire a second stitched data set in response to determining that one or more data sets corresponding to one or more areas among the plurality of areas that partially overlap with the at least one area are received before the at least one data set, wherein the second stitched data set is formed by stitching the one or more data sets; and The stitching subunit is configured to perform stitching processing on the at least one data set based on the second stitched data set.
5. 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 of claim 1 or 2.
6. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to claim 1 or 2.
7. A computer program product comprising a computer program, wherein The computer program implements the method according to claim 1 or 2 when executed by a processor.
Citation Information
Patent Citations
Map generation method and device, and equipment
CN111597287A