Method and device for storing high-precision maps
By storing road models and object features in a map description file, and using octree and bounding box technology, the problems of low storage efficiency and slow positioning speed in the existing technology are solved, and compact storage and fast retrieval are achieved. effect.
Patent Information
- Application Number
- CN201811206957.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2018-10-17
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2038-10-17
AI Technical Summary
The existing high-precision map storage method stores road models and feature maps separately, resulting in the index table occupying a large amount of storage space and making it difficult to efficiently obtain point clouds for specific objects.
Store road models and object features (such as point clouds) in a map description file, compress the point cloud using octree, and improve positioning speed through the bounding box.
It realizes compact storage of high-precision maps, facilitates retrieval of point clouds for specific objects, reduces storage space usage, and improves positioning speed.
Smart Images

Figure CN111061820B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to high-precision maps, and more specifically, to a method and device for storing high-precision maps. Background Art
[0002] High Definition Map refers to a map with high precision and detailed definition. Its accuracy needs to reach the decimeter level to distinguish each lane. Nowadays, with the development of positioning technology, high-precision positioning has become possible. Unlike traditional electronic maps, the main service objects of high-precision maps are driverless cars, or machine drivers. Unlike human drivers, machine drivers lack innate visual recognition and logical analysis capabilities. For example, people can easily and accurately use images and GPS to locate themselves and identify obstacles, people, traffic lights, etc., but this is a very difficult task for current robots. Therefore, high-precision maps are an indispensable part of current driverless car technology. High-precision maps contain a large amount of driving assistance information, among which the most important is the accurate three-dimensional representation of the road network (centimeter-level accuracy). For example, the geometric structure of the road surface, the location of road markings, and the point cloud model of the surrounding road environment. With these high-precision three-dimensional representations, the on-board robot can accurately confirm its current position by comparing the on-board GPS, LiDAR or camera data.
[0003] Generally speaking, high-precision maps are divided into two layers: road model and feature map. Figure 1 FIG. 1 shows a hierarchical structure 100 of a high-precision map in the prior art. Figure 1 As explained in FIG. 1 , the first layer 110 is a road model, which includes lane information (such as the location, type, width, etc. of lane lines). The second layer 120 is a feature map, which includes point cloud information of each object in the lane and its surrounding environment, which can be used to compare with the real-time measurement data of the unmanned vehicle to accurately determine the current position of the unmanned vehicle.
[0004] Currently, the road model and the feature map are stored separately in two map description files. In order to associate an object in a road model in one map description file with the feature (e.g., point cloud) of the object in another map description file, an index table needs to be additionally established to establish the correspondence between the two. Such index tables usually take up a large storage space. In addition, the feature map contains the point clouds of all objects in the map. Therefore, when a user only wants the point cloud of a specific object, the user has to first load the entire map description file containing the feature map, and then extract the point cloud of the specific object from it. This approach will take up more resources and is also inconvenient.
[0005] Therefore, it is hoped to provide a new method for storing high-precision maps in order to overcome the above-mentioned shortcomings. Summary of the invention
[0006] This Summary is provided to introduce some concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
[0007] According to one embodiment of the present invention, a method for storing a high-precision map is provided, which may include: obtaining a road model of the high-precision map; for each road segment in the road model, determining object features of each object in the road segment, the object features including a point cloud of the object; and storing the road model and the object features in a map description file.
[0008] According to one embodiment of the present invention, there is provided an apparatus for storing a high-precision map, comprising: an acquisition unit configured to obtain a road model of the high-precision map; a determination unit configured to determine, for each road segment in the road model, object features of each object in the road segment, the object features comprising a point cloud of the object; and a storage unit configured to store the road model and the object features in a map description file.
[0009] According to one embodiment of the present invention, there is provided a device for storing a high-precision map, comprising: a memory storing computer-executable instructions; and a processor coupled to the memory and configured to: obtain a road model of the high-precision map; for each road segment in the road model, determine object features of each object in the road segment, the object features including a point cloud of the object; and store the road model and the object features in a map description file.
[0010] According to one embodiment of the present invention, there is provided a non-transitory computer readable medium storing a computer program, which, when executed by a processor, performs the method of the present invention.
[0011] By adopting the method and device disclosed in the present invention, the obtained high-precision map has a relatively small size and can be easily and quickly downloaded. In addition, the point cloud of each object in the high-precision map can be selectively used as needed.
[0012] These and other features and advantages will become apparent by reading the following detailed description and by reference to the associated drawings.It is to be understood that the foregoing general description and the following detailed description are illustrative only and are not restrictive of the aspects of what is claimed. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] In order to understand the manner in which the above features of the present invention are used in detail, the above briefly summarized contents can be described in more detail with reference to various embodiments, some of which are shown in the accompanying drawings. However, it should be noted that the accompanying drawings only show some typical aspects of the present invention and should not be considered to limit its scope, because the description may allow for other equally effective aspects.
[0014] Figure 1 The hierarchical structure of a high-precision map in the prior art is shown.
[0015] Figure 2 The structure of a map description file according to an embodiment of the present invention is shown.
[0016] Figure 3 A schematic diagram of compressing a point cloud using an octree according to an embodiment of the present invention is shown.
[0017] Figure 4 A bounding box according to one embodiment of the present invention is shown.
[0018] Figure 5 A flowchart of a method for storing a high-precision map according to an embodiment of the present invention is shown.
[0019] Figure 6 A block diagram of a device for storing high-precision maps according to an embodiment of the present invention is shown.
[0020] Figure 7 A block diagram of an exemplary computing device according to one embodiment of the present invention is shown. DETAILED DESCRIPTION
[0021] The present invention will be described in detail below in conjunction with the accompanying drawings, and the features of the present invention will be further revealed in the following specific description.
[0022] High-precision maps for unmanned driving include accurate three-dimensional representations of road networks (centimeter-level accuracy). For example, the geometry of the road surface, the location of road markings, point cloud models of the surrounding road environment, etc. With these high-precision three-dimensional representations, the current position of the vehicle can be accurately determined by comparing the real-time data of the vehicle-mounted GPS, LiDAR (laser radar) or camera with the feature map in the high-precision map. However, the road model and feature map in the current high-precision map are stored in two different map description files. An index table needs to be created between the two map description files to establish an association between the object in the road model and the point cloud of the object in the feature map. In addition, the point cloud of a specific object cannot be efficiently obtained. In order to overcome these defects, the present invention is committed to providing a novel method for storing high-precision maps. In one embodiment of the present invention, by storing the road model and object features (e.g., point cloud) in a map description file, the need for an index table is eliminated and the point cloud of a specific object can be easily retrieved. In another embodiment of the present invention, an octree can also be used to compress the point cloud of each object, thereby further saving the storage space of the high-precision map. In yet another embodiment of the present invention, the bounding box of the point cloud containing each object may also be stored in a high-precision map to improve the positioning speed.
[0023] Figure 2 FIG. 2 shows the structure of a map description file 200 according to an embodiment of the present invention. Figure 2 As shown, the map description file 200 includes a header and a road model 210, and the road model 210 includes a plurality of road segments 220 and the joints between the road segments. For each road segment 220, various objects 230 along the road segment are defined in the map description file 200, and these objects may include, for example, road signs, lane lines, obstacles, bridges, utility poles, overhead structures, or traffic signs. For each of these objects, the object features of the object may be stored in the map description file 200. Table 1 below shows an example of object features that may be stored in a map description file.
[0024]
[0025] Table 1
[0026] As shown in Table 1, the object features of each object may include a name, an identifier, a type, a subtype, a feature value, and / or a point cloud, wherein the subtype and the feature value are applicable only to certain types of objects. For example, when the type of the object is a traffic sign, the subtype may indicate whether the traffic sign is a circular sign or a rectangular sign, and the feature value may indicate the diameter of the circular sign or the length and width of the rectangular sign.
[0027] According to one embodiment of the present invention, the point cloud of each object can be surrounded by a bounding box containing the point cloud. As known to those skilled in the art, a bounding box is an algorithm for solving the optimal bounding space of a discrete point set, and its basic idea is to approximately replace complex geometric objects with a geometric body (called a bounding box) that is slightly larger in volume and simple in characteristics. Commonly used algorithms for forming bounding boxes may include an axis-aligned bounding box (AABB) algorithm, a bounding sphere algorithm, an oriented bounding box (OBB) algorithm, or a fixed oriented convex hull (FDH) algorithm. In one embodiment of the present invention, a bounding box defines a minimum cuboid that completely contains a point cloud of an object. In the field of unmanned driving, point clouds are mainly used for self-positioning of vehicles and often have complex contours. By using a minimum cuboid to represent point clouds, the positioning process can be significantly simplified and the positioning speed can be improved. In one embodiment of the present invention, a three-dimensional rectangular coordinate system can be established around the center point of the bounding box, and the coordinates of the center point are stored in a map description file 200, and the coordinates of each point of the point cloud contained in the bounding box can be stored relative to the coordinates of the center point.
[0028] Those skilled in the art will understand that Figure 2 The map description file 200 shown in FIG. 2 also includes other information, such as lane models, road properties, etc. These information are already included in the map description file in the prior art, so they are not described in detail here.
[0029] In another embodiment of the present invention, an octree can be used to compress the point cloud of each object. An octree is a tree-like data structure used to describe a three-dimensional space. Each node of the octree represents a volume element of a cuboid, and each node has eight child nodes. The volume elements represented by the eight child nodes are added together to equal the volume of the parent node.
[0030] Figure 3 FIG. 3 is a schematic diagram 300 showing a method of compressing a point cloud using an octree according to an embodiment of the present invention. Figure 3As shown, it is assumed that a cuboid 301 (e.g., a bounding box) contains all the point clouds of an object. Here, the cuboid 301 is represented as a node 310. The cuboid 301 can be divided into 8 cuboids 302 of equal size. Each cuboid 302 can be represented as a first-level child node 320. If a cuboid 302 contains part of the point cloud of the object, a flag (e.g., binary '1') can be used to mark the cuboid and its corresponding child nodes. If a cuboid 302 does not contain any point cloud of the object, another flag (e.g., binary '0') can be used to mark the cuboid and its corresponding child nodes. Next, each cuboid 302 can be further divided into 8 cuboids 303 of equal size. The cuboid 303 can be represented as a second-level child node 330. If a cuboid 303 contains part of the point cloud of the object, a flag (e.g., binary '1') can be used to mark the cuboid and its corresponding child nodes. If a cuboid 303 does not contain any point cloud of the object, another flag (e.g., binary '0') may be used to mark the cuboid and its corresponding child nodes. The above process may be continued iteratively so that the octree may be divided into multiple levels, and the cuboids in each level may be represented by binary '0' or '1', thereby achieving compression of the point cloud with different precisions. For example, the higher the level, the more times the divisions are performed, the smaller the volume of the cuboids is, and the higher the precision of the point cloud is.
[0031] In operation (e.g., during road testing), users can request point clouds for each object at a specific accuracy. Thus, users can obtain point clouds of a specific accuracy as needed without having to download the entire point cloud, which is bulky.
[0032] Figure 4 FIG. 4 shows a bounding box 400 according to an embodiment of the present invention. Figure 4 As shown, the bounding box 400 can be generated using an axis-aligned bounding box (AABB) algorithm so that the bounding box 400 completely contains a point cloud of an object. In the bounding box 400, an XYZ rectangular coordinate system is established around the center point of the bounding box 400, wherein the coordinates of the points (i.e., laser points) in the point cloud can be stored relative to the coordinates of the center point.
[0033] Figure 5 FIG. 5 is a flowchart of a method 500 for storing a high-precision map according to an embodiment of the present invention. For example, the method 500 may be performed on at least one processor (e.g., Figure 7 The method 500 may be implemented in a processor 704 of the vehicle, which may be located in a vehicle-mounted computer system, a remote server, or a combination thereof. Of course, in various aspects of the present invention, the method 500 may also be implemented by any suitable device capable of performing relevant operations.
[0034] Method 500 begins at step 510. At step 510, method 500 may include obtaining a road model of a high-precision map. The road model may include information about various objects in a lane and its surrounding environment (e.g., road signs, lane lines, obstacles, bridges, utility poles, overhead structures, or traffic signs, etc.). In one embodiment, the road model may be obtained directly from a high-precision map provided by a map provider (e.g., Google, HERE, etc.). In another embodiment, the road model may be established using information collected by a map collection vehicle.
[0035] At step 520, the method 500 may include, for each road segment in the road model, determining object features for each object in the road segment. The object features of each object may include a name, an identifier, a type, a subtype, a feature value, and / or a point cloud, wherein the subtype and feature value are only applicable to certain types of objects. In one embodiment, these object features may be obtained directly from a high-precision map provided by a map vendor. Alternatively, in another embodiment, these object features may be determined by information collected by a map collection vehicle. For example, a LiDAR (laser radar) mounted on a map collection vehicle may obtain a point cloud for each object, and the type, subtype, and / or feature value of the object may be determined by analyzing the point cloud.
[0036] At step 530, the method 500 may include storing the road model and the determined object features in a map description file. Thus, the need for an index table is eliminated and the point cloud of a specific object can be easily retrieved.
[0037] In one embodiment, the method 500 may further optionally include using an octree to compress the point cloud of each object. The octree may be divided into multiple levels, each level representing a different precision of the point cloud information.
[0038] In one embodiment, method 500 may further optionally include enclosing the point cloud of each object with a bounding box. For example, the bounding box may be generated using an axis-aligned bounding box (AABB) algorithm, a bounding sphere algorithm, an oriented bounding box (OBB) algorithm, or a fixed oriented convex hull (FDH) algorithm, and the coordinates of the center point of the bounding box and / or the coordinates of the boundary line of the bounding box may be stored in a map description file.
[0039] Figure 6 FIG. 6 is a block diagram of a device 600 for storing a high-precision map according to an embodiment of the present invention. All functional blocks of the device 600 (including various units in the device 600) can be implemented by hardware, software, or a combination of hardware and software. Those skilled in the art should understand that Figure 6 The functional blocks described in the description may be combined into a single functional block or divided into multiple sub-functional blocks.
[0040] The device 600 may include an acquisition unit 610 configured to obtain a road model of a high-precision map. The device 600 may further include a determination unit 620 configured to determine, for each road segment in the road model, an object feature of each object in the road segment. The device 600 may also include a storage unit 630 configured to store the road model and the determined object features in a map description file.
[0041] Figure 7 A block diagram of an exemplary computing device 700 according to one embodiment of the present invention is shown, which is one example of a hardware device applicable to aspects of the present invention.
[0042] refer to Figure 7 , a computing device 700 will now be described, which is an example of a hardware device applicable to various aspects of the present invention. The computing device 700 can be any machine that can be configured to perform processing and / or computing, and can be but is not limited to a workstation, a server, a desktop computer, a laptop computer, a tablet computer, a personal digital assistant, a smart phone, a vehicle-mounted computer, or any combination thereof. The various methods / apparatus / server / client devices described above can be implemented in whole or in part by the computing device 700 or a similar device or system.
[0043] The computing device 700 may include components that can be connected or communicated via one or more interfaces and a bus 702. For example, the computing device 700 may include a bus 702, one or more processors 704, one or more input devices 706, and one or more output devices 708. The one or more processors 704 may be any type of processor and may include, but are not limited to, one or more general-purpose processors and / or one or more special-purpose processors (e.g., a dedicated processing chip). The input device 706 may be any type of device capable of inputting information to the computing device and may include, but are not limited to, a mouse, a keyboard, a touch screen, a microphone, and / or a remote controller. The output device 708 may be any type of device capable of presenting information and may include, but are not limited to, a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The computing device 700 may also include or be connected to a non-transient storage device 710, which may be any storage device that is non-transient and capable of data storage, and may include, but is not limited to, a disk drive, an optical storage device, a solid-state memory, a floppy disk, a floppy disk, a hard disk, a tape or any other magnetic medium, an optical disk or any other optical medium, a ROM (read-only memory), a RAM (random access memory), a cache memory, and / or any memory chip or cassette, and / or any other medium from which a computer can read data, instructions, and / or code. The non-transient storage device 710 may be detachable from the interface. The non-transient storage device 710 may have data / instructions / code for implementing the above methods and steps. The computing device 700 may also include a communication device 712. The communication device 712 can be any type of device or system that can communicate with internal devices and / or with a network and can include but is not limited to a modem, a network card, an infrared communication device, a wireless communication device and / or a chipset, such as a Bluetooth device, an IEEE 1302.11 device, a WiFi device, a WiMax device, a cellular communication device and / or the like.
[0044] When the computing device 700 is used as an in-vehicle device, it can also be connected to external devices (e.g., a GPS receiver, sensors for sensing different environmental data (such as an accelerometer, a wheel speed sensor, a gyroscope, etc.)). In this way, the computing device 700 can, for example, receive positioning data and sensor data indicating the vehicle's form condition. When the computing device 700 is used as an in-vehicle device, it can also be connected to other devices for controlling the travel and operation of the vehicle (e.g., an engine system, wipers, an anti-lock brake system, etc.).
[0045] In addition, the non-transitory storage device 710 may have map information and software components so that the processor 704 can implement route guidance processing. In addition, the output device 706 may include a display for displaying a map, a positioning mark of the vehicle, and an image indicating the driving status of the vehicle. The output device 706 may also include a speaker or a headphone interface for audio guidance.
[0046] The bus 702 may include, but is not limited to, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus. In particular, for vehicle-mounted devices, the bus 602 may also include a Controller Area Network (CAN) bus or other structures designed for automotive applications.
[0047] The computing device 700 may also include a working memory 714 , which may be any type of working memory capable of storing instructions and / or data that facilitate the operation of the processor 704 and may include, but is not limited to, a random access memory and / or a read-only storage device.
[0048] Software components may be located in the working memory 714, including but not limited to an operating system 716, one or more application programs 718, drivers and / or other data and codes. Instructions for implementing the above methods and steps may be included in the one or more application programs 718, and the modules / units / components of the aforementioned various devices / servers / client devices may be implemented by the processor 704 reading and executing the instructions of the one or more application programs 718.
[0049] It should also be recognized that changes may be made according to specific needs. For example, custom hardware may also be used, and / or specific components may be implemented in hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. In addition, connections to other computing devices, such as network input / output devices, etc. may be employed. For example, programming hardware (e.g., programmable logic circuits including field programmable gate arrays (FPGAs) and / or programmable logic arrays (PLAs)) with assembly language or hardware programming languages (e.g., VERILOG, VHDL, C++) may be used to implement part or all of the disclosed methods and devices using logic and algorithms according to the present invention.
[0050] Although various aspects of the present invention have been described so far with reference to the accompanying drawings, the above-described methods, systems and devices are merely examples, and the scope of the present invention is not limited to these aspects, but is limited only by the appended claims and their equivalents. Various components may be omitted or replaced by equivalent components. In addition, the steps may be implemented in an order different from the order described in the present invention. In addition, various components may be combined in various ways. It is also important that, as technology develops, many of the components described may be replaced by equivalent components that appear later.
Claims
1. A method for storing a high-precision map, comprising: Obtain road models from high-precision maps; For each road segment in the road model, determining an object feature of each object in the road segment, the object feature comprising a point cloud of the object; and The road model and the object features are stored in a map description file.
2. The method according to claim 1, characterized in that The object characteristics also include the name, identifier, type, subtype, and / or characteristic value of the object.
3. The method according to claim 1, characterized in that The point cloud is surrounded by a bounding box that contains the point cloud.
4. The method according to claim 3, characterized in that The bounding box is generated using an axis-aligned bounding box (AABB) algorithm, a bounding sphere algorithm, an oriented bounding box (OBB) algorithm, or a fixed oriented convex hull (FDH) algorithm.
5. The method according to claim 4, characterized in that The coordinates of the center point of the bounding box are stored in the map description file.
6. The method according to claim 1, characterized in that Further including: An octree is used to compress the point cloud.
7. The method according to claim 6, characterized in that The octree is divided into multiple levels, each level representing a different precision of point cloud information.
8. A device for storing a high-precision map, comprising: an acquisition unit configured to acquire a road model of a high-precision map; a determining unit configured to determine, for each road section in the road model, an object feature of each object in the road section, wherein the object feature comprises a point cloud of the object; as well as The storage unit is configured to store the road model and the object features in a map description file.
9. A device for storing a high-precision map, comprising: a memory storing computer executable instructions; as well as a processor coupled to the memory and configured to: Obtain road models from high-precision maps; For each road segment in the road model, determining an object feature of each object in the road segment, the object feature comprising a point cloud of the object; and The road model and the object features are stored in a map description file.
10. A non-transitory computer readable medium storing a computer program which, when executed by a processor, performs the method of any one of claims 1 to 7.
Citation Information
Patent Citations
Method and device for testing accuracy of high precision maps
CN106776996A
Method and device for storing point cloud data
CN106874409A
Octree-based cloud map updating method and device
CN108268516A