Method and apparatus for compressing and decompressing 3D maps
By compressing 3D maps through binarization and quantization with threshold vectors, the method addresses the high data volume issue, improving storage efficiency and transmission speed, thus enhancing user experience in AR, VR, and autonomous systems.
Patent Information
- Application Number
- JP2023574564
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-04
- Filing Date
- 2021-07-09
- Publication Date
- 2025-08-20
- Estimated Expiration
- 2041-07-09
AI Technical Summary
Existing 3D maps have large data volumes, leading to high bandwidth and time consumption during transmission, which limits application performance and user experience in virtual reality and autonomous systems.
A method for compressing 3D maps by performing binarization and quantization on 3D map descriptors using preset threshold vectors, reducing data volume to gigabytes from terabytes, and encapsulating the data for efficient storage and transmission.
The method significantly reduces storage space and transmission resources, enabling faster and more efficient use of 3D maps in applications like AR, VR, and autonomous systems, enhancing user experience and performance.
Smart Images

Figure 0007725794000002 
Figure 0007725794000003 
Figure 0007725794000004
Abstract
Description
[Technical Field]
[0001] This application relates to 3D map technology, and in particular to methods and apparatus for compressing and decompressing 3D maps. [Background technology]
[0002] Virtual reality (VR), augmented reality (AR), and mixed reality (MR) technologies are emerging multimedia virtual scenario technologies in recent years. These technologies can be used to generate virtual reality and overlay it on the real world to create new visual environments and interactive experiences. In such applications, electronic devices need to determine pose information of the electronic device in the current environment to accurately implement the blending between virtual objects and real scenes.
[0003] Furthermore, in applications such as autonomous driving, autonomous navigation, unmanned aerial vehicle automatic inspection, and industrial robotics, in order to perform accurate route planning, navigation, detection, and control, a transport device such as a vehicle, unmanned aerial vehicle, or robot needs to determine the pose of an electronic device being transported by the transport device, thereby determining the pose of the transport device in the current environment.
[0004] In the aforementioned applications, with regard to the problem of needing to determine the pose of the electronic device in the current environment, a typical solution is as follows: the electronic device receives a three-dimensional (3D) map of the environment in which the electronic device is located from a server or another device, collects visual information in the environment by using local sensors, and determines the current pose of the electronic device based on the collected visual information and the downloaded 3D map.
[0005] However, the original 3D map usually contains a large data volume, and map transmission requires a large amount of bandwidth and time consumption, which severely limits application performance and affects user experience. Summary of the Invention
[0006] The present application provides methods and apparatus for compressing and decompressing 3D maps that reduce the data volume of the 3D maps, thereby reducing the storage space required to store the 3D maps or reducing the transmission resources required to transmit the 3D maps.
[0007] According to a first aspect, an embodiment of the present application provides a method for compressing a 3D map, which may include: obtaining a 3D map descriptor, wherein the 3D map descriptor corresponds to at least one 3D map point of a 3D map; performing binarization on a relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data; and performing quantization on a difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data.
[0008] In this implementation, binarization is performed on the relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data, and quantization is performed on the difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data, where the number of bits in the binary data and the quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead.
[0009] According to the above method for compressing a 3D map, the data volume of the 3D map can be reduced, for example, the data volume of the 3D map can be reduced from the terabyte (TB) level to the gigabyte (GB) level.
[0010] The relationship between the 3D map descriptor and the at least one preset threshold vector may include, but is not limited to, a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector. The magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector may be binarized to obtain binary data, whereby the decompressor end obtains a portion of the information of the 3D map descriptor based on the binary data and the at least one preset threshold vector. The partial information may be a magnitude relationship between each component and a corresponding component of the at least one preset threshold vector, whereby a reconstructed 3D map descriptor is obtained by referring to the quantized data.
[0011] The difference between the 3D map descriptor and the at least one preset threshold vector may include, but is not limited to, a difference value between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value therebetween. Quantization may be performed on the difference value between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector or the absolute value of the difference value therebetween to obtain quantized data, whereby the decompressor end obtains another part of the information of the 3D map descriptor based on the quantized data and the at least one preset threshold vector. The another part of the information may be a difference value between each component and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value therebetween, whereby the reconstructed 3D map descriptor is obtained by referring to the binary data.
[0012] In a possible design, the binary data and quantized data may be stored in the storage module as compressed data of the 3D map, or other compression such as prediction may be performed on the binary data and quantized data to obtain compressed data of the 3D map, and the compressed data of the 3D map may be stored in the storage module to save storage space.
[0013] In a possible design, the method may further include encapsulating the binary data and the quantized data to obtain a bitstream of the 3D map. The binary data and the quantized data may be encapsulated in the bitstream to facilitate transmission and save transmission resources.
[0014] In a possible design, the method may further include receiving 3D map request information sent by the electronic device, and sending a bitstream of a 3D map corresponding to the 3D map request information to the electronic device in response to the 3D map request information. For example, in an application scenario, the compression method in this embodiment of the present application is performed by a server, and the server compresses the 3D map descriptor by using the method for compressing a 3D map in this embodiment of the present application to obtain a bitstream of the 3D map. The server may receive the 3D map request information sent by the electronic device, and in response to the 3D map request information, the server sends a bitstream of a 3D map corresponding to the 3D map request information to the electronic device. In another application scenario, the compression method in this embodiment of the present application is performed by a first electronic device, and the server compresses the 3D map descriptor by using the method for compressing a 3D map in this embodiment of the present application to obtain a bitstream of the 3D map. The first electronic device may receive 3D map request information transmitted by the second electronic device, and in response to the 3D map request information, the first electronic device transmits a bitstream of a 3D map corresponding to the 3D map request information to the second electronic device.
[0015] In a possible design, the method may further include transmitting a bitstream of the 3D map to a server. For example, in an application scenario, the compression method in this embodiment of the present application is executed by a first electronic device, and the first electronic device compresses the 3D map descriptor by using the method for compressing a 3D map in this embodiment of the present application to obtain a bitstream of the 3D map. The first electronic device transmits the bitstream of the 3D map to the server. In another application scenario, the first electronic device compresses the 3D map descriptor by using the method for compressing a 3D map in this embodiment of the present application to obtain a bitstream of the 3D map. The first electronic device transmits the bitstream of the 3D map to the server. The server may receive 3D map request information transmitted by a second electronic device, and in response to the 3D map request information, the server transmits a bitstream of the 3D map corresponding to the 3D map request information to the second electronic device.
[0016] The method for compressing a 3D map in this embodiment of the present application can be applied to any one of the application scenarios described above. In different application scenarios, the use performance of the corresponding device can be improved, thereby improving the user experience. For example, a server can quickly send a bitstream of a 3D map to an electronic device, and the electronic device can use the 3D map to provide a user with an application function related to the 3D map, such as an AR application.
[0017] In a possible design, the method may further comprise the steps of: subtracting a corresponding component of at least one preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and determining a magnitude relationship based on the difference value for each component.
[0018] In a possible design, one preset threshold vector is used for binarization and the same preset threshold vector is used for quantization.
[0019] In a possible design, multiple preset threshold vectors are used for binarization, and at least one component of at least one preset threshold vector used for quantization is any one of the corresponding components of the multiple preset threshold vectors used for binarization. For example, three preset threshold vectors are used for binarization. One component of the 3D map descriptor is used as an example. One of three difference values or absolute values of the three difference values may be selected for quantization. The three difference values or absolute values of the three difference values are the difference values between one component of the 3D map descriptor and corresponding components of the three preset threshold vectors or the absolute values of the difference values between them.
[0020] In a possible design, one preset threshold vector in the at least one preset threshold vector used for binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor.
[0021] In this implementation, the minimum or maximum threshold vector may ensure that at least one of the difference values between the components of the 3D map descriptor and the corresponding components of the at least one preset threshold vector is greater than or equal to 0. The difference values between the components of the 3D map descriptor and the corresponding components of the at least one preset threshold vector, rather than their absolute values, may be used during subsequent quantization, thereby reducing computational complexity.
[0022] In a possible design, when the at least one preset threshold vector used for binarization includes N preset threshold vectors, components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1. A sequential increase indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N.
[0023] In this implementation, since components at the same position of the N preset threshold vectors are sequentially increased or decreased, the value of each component may be divided into N+1 or N intervals by using the N preset threshold vectors, so that different intervals to which the components of the 3D map descriptor belong are indicated by different binary data. Thus, the binary data carries part of the information of the 3D map descriptor, so that the decompressor end obtains the reconstructed 3D map descriptor.
[0024] For example, the binary data may include multi-bit binary data corresponding to each component of the 3D map descriptor, and the multi-bit binary data corresponding to any one of the components indicates an interval to which the corresponding component belongs and further indicates a component of a preset threshold vector corresponding to the component in quantization. For example, if the multi-bit binary data corresponding to any one of the components is 1100, the preset threshold vector corresponding to the component in quantization is F2, i.e., the component is the component in F2 at the same position as the component. The correspondence between 1100 and F2 may be preset.
[0025] In a possible design, the binary data includes multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component.
[0026] In this implementation, the number of values 1 or 0 in the multi-bit binary data corresponding to any of the above components indicates the component of the preset threshold vector corresponding to the component, so that the decompressor end obtains the reconstructed 3D map descriptor.
[0027] For example, the 3D map descriptor D is (0.35, 0.45). The four preset threshold vectors are F1: (0.2, 0.3), F2: (0.3, 0.35), F3: (0.4, 0.45), and F4: (0.5, 0.5), respectively. Components at the same position in the four preset threshold vectors increase sequentially. By performing binarization on the relationship between the 3D map descriptor and the four preset threshold vectors, we obtain H1: (1, 1), H2: (1, 1), H3: (0, 1), and H4: (0, 0), and the binary data is 11001110. The vector used to quantize D is (0.3, 0.45), i.e., the component (0.3) in F2 and the component (0.45) in F3.
[0028] In a possible design, the at least one preset threshold vector used for quantization is the same as the at least one preset threshold vector indicated by the binary data for quantization.
[0029] In a possible design, at least one component of the at least one preset threshold vector used for quantization is obtained based on binary data, for example, binarization may be performed on the 3D map descriptor first, and then quantization is performed based on the binary data.
[0030] In a possible design, at least one bit in the binary data further indicates the number of bits in the quantized data.
[0031] The different binary data may indicate different intervals to which the components of the 3D map descriptor belong, and the lengths of the different intervals may be different, and the lengths of the different intervals may correspond to different numbers of bits in the quantized data, and the different numbers of bits in the quantized data correspond to different quantization precisions. The number of bits in the quantized data is dynamically indicated by the binary data, so that the decompressor end accurately decompresses the quantized data.
[0032] According to a second aspect, an embodiment of the present application provides a method for decompressing a 3D map, the method may include obtaining compressed data of the 3D map, where the compressed data includes binary data and quantized data; and obtaining a reconstructed 3D map descriptor based on the binary data and the quantized data.
[0033] In a possible design, obtaining compressed data of the 3D map may include obtaining a bitstream of the 3D map; and decapsulating the bitstream of the 3D map to obtain the compressed data of the 3D map.
[0034] In a possible design, the method may further comprise the steps of: transmitting 3D map request information; and receiving the bitstream of the 3D map corresponding to the 3D map request information; or receiving the bitstream of the 3D map.
[0035] In a possible design, the step of obtaining a reconstructed 3D map descriptor based on the binary data and the quantized data may include: performing dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector; and obtaining the reconstructed 3D map descriptor based on the difference, the binary data, and the at least one preset threshold vector, wherein the binary data indicates a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector.
[0036] In a possible design, the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector may include a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector.
[0037] In a possible design, the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them.
[0038] In a possible design, the binary data further indicates at least one preset threshold vector, and the method may further comprise determining the at least one preset threshold vector based on the binary data and the N preset threshold vectors. Components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1. A sequential increase indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N.
[0039] In a possible design, the binary data includes multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the preset threshold vector corresponding to that component.
[0040] In a possible design, at least one bit in the binary data further indicates the number of bits in the quantized data.
[0041] According to a third aspect, an embodiment of the present application provides an apparatus for compressing a 3D map. The apparatus may be a chip or system-on-chip in an electronic device or a server, or may be a functional module in an electronic device or a server configured to implement a method according to the first aspect or any possible implementation thereof. For example, the apparatus for compressing a 3D map may include: a binarization module configured to obtain a 3D map descriptor, where the 3D map descriptor corresponds to at least one 3D map point of a 3D map, and the binarization module is further configured to perform binarization on a relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data; and a quantization module configured to perform quantization on a difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data.
[0042] In a possible design, the apparatus may further comprise an encapsulation module configured to encapsulate the binary data and the quantized data to obtain a bitstream of the 3D map.
[0043] In a possible design, the apparatus may further include a transmission module configured to receive 3D map request information sent by an electronic device and, in response to the 3D map request information, transmit the bitstream of the 3D map corresponding to the 3D map request information to the electronic device; or a transmission module configured to transmit the bitstream of the 3D map to a server.
[0044] In a possible design, the relationship between the 3D map descriptor and the at least one preset threshold vector comprises a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector.
[0045] In a possible design, the difference between the 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them.
[0046] In a possible design, the binarization module is further configured to subtract a corresponding component of the at least one preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and determine the magnitude relationship based on the difference value for each component.
[0047] In a possible design, at least one component of the at least one preset threshold vector used for the quantization is any one of the corresponding components of the at least one preset threshold vector used for the binarization.
[0048] In a possible design, one preset threshold vector in the at least one preset threshold vector used for binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor.
[0049] In a possible design, when the at least one preset threshold vector used for the binarization includes N preset threshold vectors, components at the same position of the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; sequentially increasing indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position of the (i-1)-th preset threshold vector, and sequentially decreasing indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position of the (i-1)-th preset threshold vector, where 2≦i≦N.
[0050] In a possible design, the binary data includes multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component.
[0051] In a possible design, the at least one preset threshold vector used for quantization is the same as the at least one preset threshold vector indicated by the binary data for quantization.
[0052] In a possible design, at least one component of the at least one preset threshold vector used for quantization is obtained based on binary data.
[0053] In a possible design, at least one bit in the binary data further indicates the number of bits in the quantized data.
[0054] According to a fourth aspect, an embodiment of the present application provides an apparatus for decompressing a 3D map. The apparatus may be a chip or system-on-chip in an electronic device or a server, or may be a functional module in the electronic device or the server configured to implement a method according to the second aspect or any possible implementation of the second aspect. For example, the apparatus for decompressing a 3D map comprises a reconstruction module configured to obtain compressed data of the 3D map by using a storage module or a transmission module, where the compressed data includes binary data and quantized data. The reconstruction module is further configured to obtain a reconstructed 3D map descriptor based on the binary data and the quantized data.
[0055] In a possible design, the reconstruction module is configured to obtain a bitstream of the 3D map by using the transmission module, and to decapsulate the bitstream of the 3D map to obtain the compressed data of the 3D map.
[0056] In a possible design, the transmission module is configured to send 3D map request information and receive the bitstream of the 3D map corresponding to the 3D map request information; or the transmission module is configured to receive the bitstream of the 3D map.
[0057] In a possible design, the reconstruction module performs dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector; and obtains the reconstructed 3D map descriptor based on the difference, the binary data, and the at least one preset threshold vector, wherein the binary data is configured to indicate a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector.
[0058] In a possible design, the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector.
[0059] In a possible design, the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them.
[0060] In a possible design, the binary data further indicates at least one preset threshold vector, and the reconstruction module is further configured to determine the at least one preset threshold vector based on the binary data and the N preset threshold vectors, wherein components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; a sequential increase indicates that any component of an i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N.
[0061] In a possible design, the binary data includes multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component.
[0062] In a possible design, at least one bit in the binary data further indicates the number of bits in the quantized data.
[0063] According to a fifth aspect, an embodiment of the present application provides an apparatus for compressing a 3D map, comprising: one or more processors; and a memory configured to store one or more programs, wherein the one or more programs, when executed by the one or more processors, enable the one or more processors to perform a method according to the first aspect or any one of the possible designs of the first aspect.
[0064] According to a sixth aspect, an embodiment of the present application provides an apparatus for decompressing a 3D map, comprising: one or more processors; and a memory configured to store one or more programs, wherein the one or more programs, when executed by the one or more processors, enable the one or more processors to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0065] According to a seventh aspect, an embodiment of the present application provides a computer-readable storage medium comprising a computer program, which when executed on a computer enables the computer to perform a method according to the first aspect or any one of the possible designs of the first aspect, or to perform a method according to the second aspect or any one of the possible designs of the second aspect.
[0066] According to an eighth aspect, the present application provides a computer program or computer program product which, when run on a computer, enables the computer to perform a method according to the first aspect or the second aspect or any one of the possible implementations of the first and second aspects.
[0067] It should be understood that the technical solutions in the third to seventh aspects of the present application are consistent with those in the first and second aspects of the present application. The beneficial effects achieved in the above aspects and corresponding feasible implementations are similar, and the details will not be described again. [Brief explanation of the drawings]
[0068] [Figure 1] 1 is a schematic diagram of an application architecture according to an embodiment of the present application;
[0069] [Figure 2] 1 is a schematic diagram of the structure of an electronic device 20 according to an embodiment of the present application;
[0070] [Figure 3] 1 is a schematic diagram of the structure of a server 30 according to an embodiment of the present application;
[0071] [Figure 4a] 1 is a schematic diagram of an application scenario according to an embodiment of the present application; [Figure 4b] 1 is a schematic diagram of an application scenario according to an embodiment of the present application; [Figure 4c] 1 is a schematic diagram of an application scenario according to an embodiment of the present application; [Figure 4d] 1 is a schematic diagram of an application scenario according to an embodiment of the present application; [Figure 4e] 1 is a schematic diagram of an application scenario according to an embodiment of the present application; [Figure 4f] 1 is a schematic diagram of an application scenario according to an embodiment of the present application;
[0072] [Figure 4g] 1 is a schematic diagram of a user interface displayed by an electronic device according to an embodiment of the present application;
[0073] [Figure 5] 1 is a schematic flowchart of a method for compressing a 3D map according to an embodiment of the present application;
[0074] [Figure 6] 1 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application;
[0075] [Figure 7] 1 is a schematic flowchart of a method for compressing a 3D map according to an embodiment of the present application;
[0076] [Figure 8] 1 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application;
[0077] [Figure 9] 1 is a schematic flowchart of a method for compressing a 3D map according to an embodiment of the present application;
[0078] [Figure 10] 1 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application;
[0079] [Figure 11A] 1 is a schematic diagram of a method for encoding and decoding a 3D map according to an embodiment of the present application; [Figure 11B] 1 is a schematic diagram of a method for encoding and decoding a 3D map according to an embodiment of the present application;
[0080] [Figure 12]1 is a schematic diagram of the structure of an apparatus for compressing 3D maps according to an embodiment of the present application;
[0081] [Figure 13] 1 is a schematic diagram of the structure of an apparatus for decompressing 3D maps according to an embodiment of the present application;
[0082] [Figure 14] 14 is a schematic block diagram of a decoding device 1400 according to an embodiment of the present application. DETAILED DESCRIPTION OF THE INVENTION
[0083] Hereinafter, the embodiments of the present application will be described with reference to the accompanying drawings in the embodiments of the present application. The terms used in the embodiments of the present application are only used to describe specific embodiments of the present application and are not intended to limit the present application.
[0084] In the embodiments, claims, and accompanying drawings of this specification, terms such as "first," "second," etc. are intended to distinguish and describe only and are not to be understood as indicating or suggesting relative importance or sequence. Furthermore, the terms "comprise," "have," and any variations thereof are intended to cover non-exclusive inclusions, e.g., the inclusion of a series of steps or units. A method, system, product, or device is not necessarily limited to explicitly recited steps or units, but may include other steps or units that are not explicitly recited and are inherent to the process, method, product, or device.
[0085] In this application, "at least one (item)" should be understood to mean one or more, and "multiple" should be understood to mean two or more. The term "and / or" describes an association relationship between associated objects and indicates that three relationships may exist. For example, "A and / or B" may indicate three cases: only A is present, only B is present, and both A and B are present. A and B may be singular or plural. The symbol " / " typically indicates an "or" relationship between associated objects. "At least one of the following items" or similar expressions indicates any combination of the items, including any combination of one of the items or more than one of the items. For example, "at least one of a, b, or c" may refer to a, b, c, a and B, a and c, b and c, or a, b, and c, where a, b, and c may be singular or plural.
[0086] In the embodiments of the present application, terms such as "example" or "for example" are used to mean serving as an example, illustration, or explanation. Any embodiment or design described in the embodiments of the present application by an "example" or "for example" is not to be construed as preferred or advantageous over other embodiments or designs. Rather, terms such as "example" or "for example" are intended to present a relative perspective in a particular manner.
[0087] As used in the embodiments of the present application and in the appended claims, the singular forms "a," "said," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. It should be further understood that the term "and / or," as used herein, denotes and includes any or all possible combinations of one or more of the associated listed items. As used herein, the meaning of the singular forms "a," "some," and "the" also includes the plural forms, unless the context clearly dictates otherwise. It should be further understood that the terms "comprise," "have," "comprise," and / or "include" are used herein to specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0088] It should be noted that the terminology used in the embodiments of the present application is for the purpose of illustrating particular embodiments only and is not intended to be limiting of the present application.
[0089] FIG. 1 is a schematic diagram of an application architecture according to an embodiment of the present application. As shown in FIG. 1, the application architecture includes a plurality of electronic devices and a server. The plurality of electronic devices may include a first electronic device and one or more second electronic devices (two second electronic devices are used as an example in FIG. 1). The one or more second electronic devices are multiple electronic devices other than the first electronic device. Communication may be performed between the multiple electronic devices and the server, and between the multiple electronic devices. For example, any device in the application architecture may communicate with another device via wireless fidelity (Wi-Fi®) communication, Bluetooth® communication, or cellular second / third / fourth / fifth generation (2G / 3G / 4G / 5G) communication, etc. It should be understood that other communication methods, including future communication methods, may also be used between the server and the electronic devices. This is not particularly limited herein. It should be noted that the term "one or more second electronic devices" in this embodiment of the present application is merely used to refer to electronic devices other than the first electronic device, and is not limited to whether the multiple electronic devices are of the same type.
[0090] The electronic device may be various types of devices provided with a camera and a display component. For example, the electronic device may be a terminal device such as a mobile phone, a tablet computer, a notebook computer, or a video recorder (in FIG. 1 , a mobile phone is used as an example of an electronic device). Alternatively, the electronic device may be a device used for interaction in a virtual scenario, including VR glasses, an AR device, an MR interaction device, etc. Alternatively, the electronic device may be a wearable electronic device such as a smart watch or a smart band. Alternatively, the electronic device may be a device carried in a carrying device such as a vehicle, an unmanned vehicle, an unmanned aerial vehicle, or an industrial robot. The specific form of the electronic device is not particularly limited in the embodiments of the present application.
[0091] Additionally, an electronic device may also be referred to as user equipment (UE), a subscriber station, mobile unit, subscriber unit, radio unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile subscriber station, terminal device, access terminal, mobile terminal, wireless terminal, smart terminal, remote terminal, handheld terminal, user agent, mobile client, client, or another suitable terminology.
[0092] The server may be one or more physical servers (in FIG. 1, one physical server is used as an example), or may be a computer cluster, or may be a virtual machine or cloud server in a cloud computing scenario, etc.
[0093] In this embodiment of the present application, a virtual scenario application (APP), such as a VR application, an AR application, or an MR application, may be installed on an electronic device, and the VR application, the AR application, or the MR application may be activated based on a user operation (e.g., tap, touch, slide, shake, or voice control). The electronic device may collect visual information of any object in the environment by using a sensor, and then display a virtual object on a display component based on the collected visual information. The virtual object may be a virtual object (i.e., an object in a virtual environment) in a VR scenario, an AR scenario, or an MR scenario.
[0094] In this embodiment of the present application, a navigation, detection, or control application may be installed on the electronic device, and the corresponding application is activated based on the operation and control of the user or a pre-set program. The electronic device may activate applications such as route planning, object detection, and transport device operation and control based on the pose and other status information of the electronic device in the current environment.
[0095] Pose is the position and orientation information of an electronic device, and may be an absolute pose in the world coordinate system or a relative pose to a point in the environment.
[0096] Visual information in embodiments of the present application includes, but is not limited to, image video collected by a camera (without depth information), image video collected by a depth sensor (with depth information), data collected by a LiDAR, and data collected by a millimeter wave radar (RaDAR).
[0097] It should be noted that in this embodiment of the present application, the virtual scenario application in the electronic device may be an application built into the electronic device, or may be an application provided by a third-party service provider and installed by the user, although this is not particularly limited herein.
[0098] In this embodiment of the present application, a simultaneous localization and mapping (SLAM) system may be further configured for the electronic device. The SLAM system generates a map of a completely unknown environment and can use this map to perform positioning, pose (position and posture) determination, navigation, etc. In this embodiment of the present application, the map generated by the SLAM system is referred to as a SLAM map. The SLAM map may be understood as a map drawn by the SLAM system based on environmental information collected by a collection device. The collection device may include a visual information collection device and an inertial measurement unit (IMU) in the electronic device. The visual information collection device may include, for example, a camera, a depth camera, a lidar, and a millimeter-wave radar. The IMU may include, for example, sensors such as a gyroscope and an accelerometer.
[0099] In the embodiment of the present application, the SLAM map is also referred to as a 3D map. Note that the 3D map includes, but is not limited to, the SLAM map, and may further include a three-dimensional map generated by using another technique. This is not particularly limited in the embodiment of the present application.
[0100] In a possible implementation, the 3D map may include a plurality of 3D map points, and accordingly, the data of the 3D map may include data of a plurality of 3D map points, which may be points of interest or points having significant features in the environment.
[0101] Possible methods for acquiring 3D map points include using multiple devices, such as lidar, aerial photography from the field of view of an unmanned aerial vehicle (tilt photography), high-definition panoramic cameras, and high-definition industrial cameras, to perform photography. From the data acquired through photography by the above-mentioned devices, 3D map points are extracted using methods such as ORB, scale-invariant feature transform (SIFT), speeded up robust features (SURF), binary robust independent elementary features (BRIEF), binary robust invariant scalable keypoints (BRISK), fast retina keypoint (FREAK), D2Net, or self-supervised training feature point detection and descriptor extraction method (SuperPoint).
[0102] The data for a 3D map point may include:
[0103] (1) 3D map point descriptor
[0104] A 3D map point descriptor is a vector used to represent the local features of corresponding 3D map points. In visual positioning algorithms, 3D map point descriptors are used for matching between 3D map points. One possible method is to calculate the distance (which may be Euclidean distance, dot product distance, Hamming distance, etc.) between two 3D map point descriptors; and if the distance is smaller than a threshold, the two 3D map points are considered to match.
[0105] (2) 3D map point space position
[0106] The 3D map point spatial position may be represented by using X, Y, and Z on three-dimensional spatial axes, or by using longitude, latitude, and altitude, or by using polar coordinates, etc. The method for representing the 3D map point spatial position is not particularly limited in the embodiments of the present application. The 3D map point spatial position may be the absolute position of the 3D map point, or the relative position of the 3D map point. For example, the center position of the entire area is used as the origin, and all 3D map point spatial positions are positions shifted with respect to the spatial position of the origin.
[0107] In an embodiment of the present application, a number may be assigned to each 3D map point and written into the 3D map data, or the storage order of multiple 3D map points in memory may be used to implicitly indicate the number of the 3D map point. Note that the order of multiple 3D map points included in a 3D map is meaningless. Therefore, the numbers may be considered as identifiers used to identify the 3D map points to distinguish them. However, the numbers are not intended to limit the order of the multiple 3D map points. For example, if a 3D map includes three 3D map points numbered 1, 2, and 3, respectively, the three 3D map points may be processed in the order 1, 2, and 3, or 3, 2, and 1, or 2, 1, and 3, etc.
[0108] In a possible implementation, the 3D map data further includes a plurality of area descriptors, any one of which describes characteristics of some or all of the plurality of 3D map points. Specifically, for any one of the plurality of area descriptors, the area descriptor may describe characteristics of some or all of the plurality of 3D map points. In this case, the area descriptor and the 3D map point have a one-to-many relationship. Characteristics of each 3D map point of the plurality of 3D map points may be described by some or all of the area descriptors of the plurality of area descriptors. In this case, the 3D map point and the area descriptor have a one-to-many relationship. It can be seen that the plurality of area descriptors and the plurality of 3D map points have a many-to-many relationship. Methods for generating the area descriptor include, but are not limited to, conventional methods such as BOW and vector of locally aggregated descriptors (VLAD), and novel methods based on NetVLAD or artificial intelligence (AI). Similarly, multiple area descriptors may be identified by numbers to distinguish between the multiple area descriptors, but similarly, the numbers are not intended to limit the order of the multiple area descriptors.
[0109] In a possible implementation, the 3D map data further comprises correspondences between 3D map points and descriptors, which clearly describe which 3D map point any descriptor corresponds to, and which 3D map point any descriptor corresponds to.
[0110] Optionally, the aforementioned correspondence may be explicitly described by using a correspondence table between area descriptor numbers and 3D map point numbers. For example, a 3D map includes three area descriptors whose numbers are T1 to T3 and five 3D map points. The numbers of the six 3D map point spatial locations are P1 to P6, and the numbers of the six 3D map point descriptors are F1 to F6. The correspondence table is shown in Table 1. Table 1 [Table 1]
[0111] It should be noted that Table 1 is an example of a correspondence table between area descriptor numbers and 3D map point numbers. The correspondence table may alternatively be presented in another format or manner, which is not particularly limited in this application.
[0112] Optionally, the aforementioned correspondences may alternatively be implicitly described by using the storage locations of the area descriptors and 3D map points. For example, T1 is stored in memory first, then the data of P1, P2, and P3 are stored; then T2 is stored, then the data of P2 and P3 are stored; finally, T3 is stored, then the data of P3, P4, P5, and P6 are stored.
[0113] FIG. 2 is a schematic diagram of the structure of an electronic device 20 according to one embodiment of the present application. As shown in FIG. 2, the electronic device 20 may be at least one of the first electronic device and one or more second electronic devices in the embodiment shown in FIG. 1. It should be understood that the structure shown in FIG. 2 does not constitute a specific limitation on the electronic device 20. In some other embodiments of the present application, the electronic device 20 may include more or fewer components than those shown in FIG. 2, combine some components, separate some components, or have a different component configuration. The components shown in FIG. 2 may be implemented in hardware, software, or a combination of hardware and software, including one or more signal processing and / or application-specific integrated circuits.
[0114] The electronic device 20 may include a chip 21, a memory 22 (one or more computer-readable storage media), a user interface 23, a display component 24, a camera 25, sensors 26, a positioning module 27 configured to perform device positioning, and a transceiver 28 configured to perform communications. These components may communicate with each other over one or more buses 29.
[0115] One or more processors 211, a clock module 212, and a power management module 213 may be integrated into the chip 21. The clock module 212 integrated into the chip 21 is mainly configured to provide timers required for data transmission and timing control of the processor 211. The timers may implement clock functions for data transmission and timing control. The processor 211 may perform operations based on instruction operation codes and timing signals and generate operation control signals to complete control of instruction fetching and instruction execution. The power management module 213 integrated into the chip 21 is mainly configured to provide stable and highly accurate voltages for the chip 21 and other components of the electronic device 20.
[0116] The processor 211 may also be referred to as a central processing unit (CPU). Specifically, the processor 211 may include one or more processing units. For example, the processor 211 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, a neural-network processing unit (NPU), etc. The different processing units may be independent components or may be integrated into one or more processors.
[0117] In possible implementations, the processor 211 may include one or more interfaces, which may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, a universal serial bus (USB) port, etc.
[0118] The memory 22 may be connected to the processor 211 via a bus 29 or may be coupled to the processor 311 and configured to store various software programs and / or groups of instructions. The memory 22 may include a high-speed random access memory (e.g., a cache) or may include non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. The memory 22 may store an operating system, such as an embedded operating system, such as Android® (Android), Apple® (iOS®), Microsoft® (Windows®), or Linux®. The memory 22 may further store data, such as image data, point cloud data, 3D map data, pose data, coordinate system transformation information, and map update information. The memory 22 may further store computer-executable program code. The computer-executable program code includes instructions, such as SLAM system communication program instructions and related program instructions. The memory 22 may further store one or more applications, such as a virtual scenario application (e.g., AR / VR / MR), a map application, an image management application, and a navigation and control application. The memory 22 may further store a user interface program. The user interface program may vividly display the content of the application (e.g., virtual objects in a virtual scenario (e.g., AR / VR / MR)) using a graphical operation interface, present the content using the display component 24, and receive control operations performed by a user on the application using input controls such as menus, dialog boxes, or buttons.
[0119] The user interface 23 may be, for example, a touch panel, which may detect an operation command performed by a user on the touch panel, or may be, for example, a keypad, physical buttons, or a mouse.
[0120] The electronic device 20 may include one or more display components 24. The electronic device 20 may implement display functions by using the display component 24, a graphics processing unit (GPU), an application processor (AP), and the like within the chip 21 in cooperation with each other. The GPU is a microprocessor for implementing image processing and is connected to the display component 24 and the application processor. The GPU performs mathematical and geometric calculations for graphics rendering. The display component 24 may display interface content output by the electronic device 20, such as images, videos, and the like in virtual scenarios such as AR / VR / MR. The interface content may include interfaces such as running applications and system-level menus, and specifically may include the following interface elements: input interface elements such as buttons, text entry boxes, scrollbars, and menus; and output interface elements such as windows, labels, images, videos, and animations.
[0121] The display component 24 may be a display panel, a lens (e.g., VR glasses), a projection screen, etc. The display panel may also be referred to as a display screen, and may be, for example, a touch screen, a flexible screen, a curved screen, etc., or may be another optical component. It should be understood that the display screen of the electronic device in the embodiments of the present application may be a touch screen, a flexible screen, a curved screen, or a screen of another form. In other words, the display screen of the electronic device has the function of displaying images, and the specific material and shape of the display screen are not particularly limited.
[0122] For example, if display component 24 includes a display panel, the display panel may use a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a MiniLed, a MicroLed, a Micro-oLed, a quantum dot light-emitting diode (QLED), etc. Furthermore, in a possible implementation, a touch panel in user interface 23 may be coupled to the display panel in display component 24. For example, the touch panel may be disposed below the display panel, and the touch panel may be configured to detect tactile pressure acting on the display panel when a user inputs a touch operation (e.g., a tap, a slide, or a touch) using the display panel, and the display panel is configured to display content.
[0123] The camera 25 may be a monocular camera, a binocular camera, or a depth camera and is configured to photograph / record the environment and obtain images / video images. The images / video images collected by the camera 25 may be used as input data for a SLAM system, for example, or the images / video may be displayed using the display component 24.
[0124] In a possible implementation, the camera 25 may be considered as a sensor. The images collected by the camera 25 may be in IMG format or another format type, which is not particularly limited in the embodiment of the present application.
[0125] The sensor 26 may be configured to collect data related to status changes (e.g., rotation, shaking, movement, or vibration) of the electronic device 20. The data collected by the sensor 26 may be used as input data for the SLAM system. The sensor 26 may include one or more sensors, such as an inertial measurement unit (IMU) and a time-of-flight (TOF) sensor. The IMU may include sensors such as a gyroscope and an accelerometer. The gyroscope is configured to measure the angular velocity of the electronic device when the electronic device moves, and the accelerometer is configured to measure the acceleration of the electronic device when the electronic device moves. The TOF sensor may include a light emitter and a light receiver. The light emitter is configured to emit light, such as laser light, infrared light, or radar waves, outward. The light receiver is configured to detect reflected light, such as reflected laser light, infrared light, or radar waves.
[0126] It should be noted that the sensor 26 may further include many other sensors, such as an inertial sensor, a barometer, a magnetometer, and a wheel speedometer, etc. This is not particularly limited in the embodiment of the present application.
[0127] The positioning module 27 is configured to implement physical positioning of the electronic device 20, for example, to obtain an initial position of the electronic device 20. The positioning module 27 may include one or more of a Wi-Fi positioning module, a Bluetooth positioning module, a base station positioning module, and a satellite positioning module. To assist in the positioning, a global navigation satellite system (GNSS) may be disposed in the satellite positioning module. The GNSS includes, but is not limited to, the BeiDou system, the global positioning system (GPS) system, the global navigation satellite system (GLONASS) system, and the Galileo navigation satellite system (Galileo) system.
[0128] The transceiver 28 is configured to facilitate communication between the electronic device 20 and another device (e.g., a server or another electronic device). The transceiver 28 integrates a transmitter and a receiver configured to transmit and receive radio frequency signals, respectively. In a specific implementation, the transceiver 28 includes, but is not limited to, an antenna system, a radio frequency (RF) transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a codec (CODEC) chip, a subscriber identity module (SIM) card, a storage medium, etc. In a possible implementation, the transceiver 28 may alternatively be implemented on a separate chip. The transceiver 28 supports at least one data network communication in at least one data network such as 2G / 3G / 4G / 5G, and / or supports at least one of the following short-range wireless communication methods: Bluetooth (BT) communication, wireless fidelity (Wi-Fi) communication, near field communication (NFC), infrared (IR) wireless communication, ultra wideband (UWB) communication, and ZigBee (registered trademark) (ZigBee) protocol communication.
[0129] In this embodiment of the present application, the processor 211 operates program code stored in the memory 22 to perform various functional applications and data processing of the electronic device 20 .
[0130] Figure 3 is a schematic diagram of the structure of a server 30 according to one embodiment of the present application. As shown in Figure 3, the server 30 may be the server in the embodiment shown in Figure 1. The server 30 includes a processor 301, a memory 302 (one or more computer-readable storage media), and a transceiver 303. These components may communicate with each other via one or more buses 304.
[0131] The processor 301 may be one or more CPUs. When the processor 301 is a CPU, the CPU may be a single-core CPU or a multi-core CPU.
[0132] The memory 302 may be connected to or coupled to the processor 301 via a bus 304 and configured to store various groups of program codes and / or instructions and data (e.g., map data and pose data). In a specific implementation, the memory 302 includes, but is not limited to, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a compact disc read-only memory (CD-ROM), etc.
[0133] The transceiver 303 is mainly an integration of a receiver and a transmitter, where the receiver is configured to receive data (e.g., requests or images) sent by the electronic device, and the transmitter is configured to send data (e.g., map data or pose data) to the electronic device.
[0134] 3 is only an example provided in this embodiment of the present application, and it should be understood that the server 30 may further include more components than those shown in the figure, which is not particularly limited in this embodiment of the present application.
[0135] In this embodiment of the present application, the processor 301 runs program code stored in the memory 302 to perform various functional applications and data processing of the server 30 .
[0136] The term "coupled" as used in the present application means a direct connection or a connection through one or more intermediate components or circuits.
[0137] 4a is a schematic diagram of an application scenario according to one embodiment of the present application. As shown in FIG. 4a, in this application scenario, an electronic device collects visual information by using a sensor, and determines the current pose of the electronic device by referring to the visual information and a 3D map from a server.
[0138] The 3D map is provided by a server. Specifically, the server generates a 3D map, then compresses the 3D map, and sends the compressed 3D map data to the electronic device. After receiving the compressed 3D map data, the electronic device performs decompression to obtain reconstructed data of the 3D map, and determines the current pose of the electronic device by referring to the collected visual information and the reconstructed 3D map data. The pose is position information of the electronic device, and may be an absolute pose in a world coordinate system or a pose relative to a point in the environment.
[0139] In this embodiment of the present application, the server may generate a 3D map in advance, compress the 3D map, and then store the compressed data of the 3D map locally, thereby saving storage space. Furthermore, the server may send the compressed data of the 3D map to another device, such as cloud storage.
[0140] 1. The server generates a 3D map, compresses the 3D map to obtain compressed data of the 3D map, and stores the compressed data locally.
[0141] The server compresses the 3D map to save local storage space.
[0142] 2. The electronic device sends a map download request to the server. The map download request can be triggered in two ways.
[0143] (1) A user starts a map application installed on an electronic device, and the application uploads location information obtained based on GPS positioning or Wi-Fi positioning to a server corresponding to the application. The upload operation may trigger a map download request. Since the uploaded content includes location information, the server may perform a preliminary estimation based on the location information and send compressed data of a 3D map of the area to which the positioning point indicated by the location information belongs to the electronic device. The extent of the area to which the positioning point indicated by the location information belongs may be preset. For example, the area to which the positioning point belongs may be an administrative region of any level (including a county, city, country, or administrative region) in which the positioning point is located, or may be a circular area centered on the positioning point and using a specified distance as a radius.
[0144] (2) A user starts a map application installed on an electronic device and actively enters or selects an area on the application. For example, the user actively enters "xx business center" or selects "Street A" from a list of "Street A, Street B, and Street C." The user's aforementioned operation may trigger a map download request. Whether the user enters or selects a geographic location, the server accordingly transmits compressed data of a 3D map of the geographic location to the electronic device.
[0145] It should be understood that in this embodiment of the present application, in addition to the two methods described above, other methods may be used to trigger a map download request. For example, the electronic device automatically detects whether a condition for downloading a 3D map or starting a 3D map download is met, or the electronic device starts the 3D map download and requests the server to download a 3D map of an area range when it detects a change in ambient light or an environment change. The size of the area range is not particularly limited.
[0146] 3. The server sends the compressed data of the 3D map to the electronic device.
[0147] 4. Electronic devices collect visual information by using sensors.
[0148] It should be noted that steps 3 and 4 are independent of each other and the order in which they are performed is not limited.
[0149] 5. The electronic device decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0150] 6. The electronic device performs positioning in a 3D map based on the visual information to obtain a pose corresponding to the visual information.
[0151] After receiving the compressed data of the 3D map, the electronic device does not need to immediately decompress the compressed data, but only needs to decompress the compressed data to obtain reconstructed data of the 3D map before performing positioning based on visual information. For example, a user may pre-download compressed data of the 3D map of an area range by downloading an "offline map," and decompress the compressed data of the 3D map only when positioning is required.
[0152] 4b is a schematic diagram of an application scenario according to an embodiment of the present application. As shown in FIG. 4b, in this application scenario, an electronic device collects visual information by using a sensor, and a server determines the current pose of the electronic device by referring to the visual information from the electronic device and a 3D map.
[0153] The 3D map is provided by a server. Specifically, the server generates the 3D map, then compresses the 3D map, and locally stores the compressed data of the 3D map. When receiving visual information from the electronic device, the server performs decompression to obtain reconstructed data of the 3D map, and references the visual information and the reconstructed data of the 3D map to determine the current pose of the electronic device.
[0154] 1. The server generates a 3D map, compresses the 3D map to obtain compressed data of the 3D map, and stores the compressed data locally.
[0155] 2. Electronic devices collect visual information by using sensors.
[0156] 3. The electronic device transmits the visual information to the server.
[0157] 4. The server decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0158] It should be understood that the server compresses the 3D map to save storage space.
[0159] 5. The server performs positioning in the 3D map based on the visual information to obtain a pose corresponding to the visual information.
[0160] 6. The server sends the pause to the electronic device.
[0161] 4c is a schematic diagram of an application scenario according to an embodiment of the present application. As shown in FIG. 4c, in this application scenario, an electronic device collects visual information by using a sensor, and determines a current pose of the electronic device by referring to the collected visual information and a 3D map.
[0162] The 3D map is provided by the electronic device. Specifically, the electronic device generates the 3D map, then compresses the 3D map, and locally stores the compressed data of the 3D map. When visual information is collected, the electronic device performs decompression to obtain reconstructed data of the 3D map, and determines the current pose of the electronic device by referring to the collected visual information and the reconstructed data of the 3D map.
[0163] 1. The electronic device generates a 3D map, compresses the 3D map to obtain compressed data of the 3D map, and locally stores the compressed data.
[0164] It should be understood that the electronic device may compress the 3D map to save storage space.
[0165] 2. Electronic devices collect visual information by using sensors.
[0166] 3. The electronic device decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0167] 4. The electronic device performs positioning in a 3D map based on the visual information to obtain a pose corresponding to the visual information.
[0168] 4d is a schematic diagram of an application scenario according to an embodiment of the present application. As shown in FIG. 4d, in this application scenario, the second electronic device collects visual information by using a sensor, and determines the current pose of the second electronic device by referring to the visual information and a 3D map from a server.
[0169] The 3D map is generated by a first electronic device. Specifically, the first electronic device generates the 3D map, compresses the 3D map, and then transmits the compressed 3D map data to a server. The server then transmits the compressed 3D map data to a second electronic device. The second electronic device performs decompression to obtain reconstructed data of the 3D map and determines a current pose of the second electronic device by referring to the collected visual information and the reconstructed data of the 3D map.
[0170] In this embodiment of the present application, the first electronic device may generate a 3D map in advance, compress the 3D map, and then transmit the compressed data of the 3D map to the server, thereby reducing the transmission bandwidth.
[0171] 1. A first electronic device generates a 3D map and compresses the 3D map to obtain compressed data of the 3D map.
[0172] 2. The first electronic device sends compressed data of the 3D map to the server.
[0173] The first electronic device compresses the 3D map and then transmits the compressed data of the 3D map, thereby reducing transmission bandwidth and improving transmission efficiency.
[0174] 3. The second electronic device sends a map download request to the server.
[0175] The second electronic device may send a map download request based on the trigger scheme shown in FIG. 4a.
[0176] 4. The server sends the compressed data of the 3D map to the second electronic device.
[0177] 5. The second electronic device decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0178] 6. The second electronic device collects visual information by using a sensor.
[0179] 7. The second electronic device performs positioning in the 3D map based on the visual information and obtains a pose corresponding to the visual information.
[0180] 4e is a schematic diagram of an application scenario according to an embodiment of the present application. As shown in FIG. 4e, in this application scenario, the second electronic device collects visual information by using a sensor, and the server determines the current pose of the second electronic device by referring to the visual information from the second electronic device and the 3D map from the first electronic device.
[0181] The 3D map is generated by a first electronic device. Specifically, the first electronic device generates the 3D map, compresses the 3D map, and then transmits the compressed 3D map data to a server. The server performs decompression to obtain reconstructed data of the 3D map, and determines a current pose of the second electronic device by referring to the visual information from the second electronic device and the reconstructed data of the 3D map.
[0182] 1. A first electronic device generates a 3D map and compresses the 3D map to obtain compressed data of the 3D map.
[0183] 2. The first electronic device sends compressed data of the 3D map to the server.
[0184] 3. The second electronic device collects visual information by using a sensor.
[0185] 4. The second electronic device sends a positioning request to the server, where the positioning request carries the visual information.
[0186] 5. The server decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0187] 6. The server performs positioning in the 3D map based on the visual information to obtain a pose corresponding to the visual information.
[0188] 7. The server transmits the pose obtained through positioning to the second electronic device.
[0189] 4f is a schematic diagram of an application scenario according to an embodiment of the present application. As shown in FIG. 4f, in this application scenario, the second electronic device collects visual information by using a sensor, and determines the current pose of the second electronic device by referring to the visual information and the 3D map from the first electronic device.
[0190] The 3D map is generated by a first electronic device. Specifically, the first electronic device generates the 3D map, compresses the 3D map, and then transmits the compressed data of the 3D map to a second electronic device. The second electronic device performs decompression to obtain reconstructed data of the 3D map and determines a current pose of the second electronic device by referring to the collected visual information and the 3D map from the first electronic device.
[0191] 1. A first electronic device generates a 3D map, compresses the 3D map to obtain compressed data of the 3D map, and locally stores the compressed data.
[0192] 2. The second electronic device sends a map download request to the first electronic device.
[0193] 3. The first electronic device transmits the compressed data of the 3D map to the second electronic device.
[0194] 4. The second electronic device decompresses the compressed data of the 3D map to obtain reconstructed data of the 3D map.
[0195] 5. The second electronic device collects visual information by using a sensor.
[0196] 6. The second electronic device performs positioning in a 3D map based on the visual information to obtain a pose corresponding to the visual information.
[0197] The positioning algorithm used in the embodiment shown in Figures 4a-4f may include:
[0198] (1) Area descriptors to be retrieved are extracted from the visual information, where the algorithm used to extract the area descriptors to be retrieved is consistent with the algorithm for extracting area descriptors from 3D maps.
[0199] (2) From the visual information, the 3D map points to be extracted are extracted, and the 3D map point spatial positions to be extracted and the 3D map point descriptors to be extracted are obtained, where the algorithm for extracting the 3D map point descriptors to be extracted is consistent with the algorithm for extracting the 3D map point descriptors from the 3D map.
[0200] (3) Based on the area descriptor to be extracted, extraction is performed on a plurality of area descriptors contained in the data of the 3D map to obtain a plurality of candidate area descriptors.
[0201] In an embodiment of the present application, the distance between the area descriptor to be retrieved and each area descriptor in the plurality of area descriptors may be calculated. The distance may include Hamming distance, Manhattan distance, Euclidean distance, etc. Then, at least one area descriptor that satisfies a condition (e.g., the distance is smaller than a threshold) is selected as a candidate area descriptor.
[0202] (4) Matching between the 3D map point descriptor to be retrieved and the 3D map point descriptors corresponding to the multiple candidate area descriptors is performed separately, which means calculating the similarity between the 3D map point descriptor to be retrieved and the 3D map point descriptors corresponding to the multiple candidate area descriptors separately to find the most similar 3D map point.
[0203] (5) The pose of the electronic device is calculated based on the discovered 3D map points by using a pose solving algorithm such as PnP or EPnP in ORB-SLAM2.
[0204] In any one of the application scenarios in FIGS. 4a to 4f, positioning is performed based on the 3D map in an embodiment of the present application to obtain the current pose of the electronic device. The pose may be applied to fields such as AR navigation, AR human-computer interaction, driving assistance, and autonomous driving. For example, pose-based AR navigation is used as an example. FIG. 4g is a schematic diagram of a user interface displayed by an electronic device according to an embodiment of the present application. The electronic device may display the user interface shown in FIG. 4g based on the pose. The user interface may include a navigation arrow indication pointing toward the conference room 2, which may be a virtual object obtained from a server based on the pose or obtained locally based on the pose. The user interface may further include visual information collected by a sensor, such as the building shown in FIG. 4g. The user goes to the conference room 2 by referring to the user interface of the electronic device shown in FIG. 4g.
[0205] It should be noted that the reconstructed data of the 3D map in the embodiment of the present application obtained through decompression may also be referred to as reconstructed data of the 3D map.
[0206] The embodiments shown in Figures 4a-4f all relate to the compression and decompression of 3D maps. The embodiments of the present application provide several methods for performing the aforementioned compression and decompression. The compression and decompression methods are described below.
[0207] Based on the above description, the following provides several methods for compressing 3D maps according to embodiments of the present application. For convenience, the method embodiments described below are expressed as a combination of a series of action steps. However, those skilled in the art should understand that the specific implementation of the technical solutions of the present application is not limited to the order of the series of action steps described.
[0208] Please refer to Figure 5. Figure 5 is a schematic flowchart of a method for compressing a 3D map according to an embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. An entity for performing the method for compressing a 3D map in an embodiment of the present application may also be referred to as a compressor end or an encoder end. The method includes, but is not limited to, the following steps:
[0209] S101: Obtain a 3D map descriptor.
[0210] The 3D map descriptor corresponds to at least one 3D map point of the 3D map. The 3D map descriptor may be a vector, for example, a 128-dimensional vector or a 512-dimensional vector. The number of dimensions of the 3D map descriptor is not limited to the above example and may be other values. Examples will not be described one by one in this embodiment of the present application. Specifically, the 3D map descriptor may be an area descriptor or a 3D map point descriptor. One area descriptor may correspond to multiple 3D map points. For specific explanations and descriptions, please refer to the explanations and descriptions in the above embodiments. Details will not be described again here. Here, the 3D map descriptor is a 3D map descriptor that needs to be compressed by using a subsequent step. The data volume of the 3D map descriptor is reduced by compressing the 3D map descriptor.
[0211] S102: Perform binarization on the relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data.
[0212] Each component included in any of the at least one preset threshold vectors may have an arbitrary value. The number of components included in any of the preset threshold vectors (i.e., the number of vector dimensions) may be the same as or different from the number of components included in the 3D map descriptors, and may be set appropriately as needed. The values of the components included in any of the preset threshold vectors may also be set appropriately as needed. For example, the values of the components included in the at least one preset threshold vector may be set based on the value ranges of several 3D map descriptors that need to be compressed.
[0213] Binarization means processing the relationship between the 3D map descriptor and at least one preset threshold vector into a binary string represented by a binary symbol, i.e., binary data. The number of bits in the binary data is usually significantly smaller than the number of bits in the original data (e.g., the original 3D map descriptor), saving storage area and / or transmission resource overhead. Furthermore, the amount of calculation of the Hamming distance between binary data is usually smaller than that of distances such as the Euclidean distance or dot product distance between the original data, thereby reducing the computational complexity.
[0214] The binarization may be, for example, a hashing process. The principle of hashing is to map the relationship between the 3D map descriptor and at least one preset threshold vector into a Hamming space (binary space) to generate a binary hash code. The number of bits in the hash code is usually significantly smaller than the number of bits in the original data, saving storage and transmission bandwidth. Furthermore, the calculation amount of the Hamming distance between hash codes is usually smaller than that of the Euclidean distance of the original data, thereby reducing computational complexity. The binarization includes, but is not limited to, iterative quantization (ITQ) hashing, locality-sensitive hashing (LSH), spectral hashing, etc. In some embodiments, the aforementioned binarization may be at least one stage of the binarization. Two-stage binarization is used as an example, and different or the same binarization method may be used for the two-stage binarization. The lengths of the binary data obtained through the two stages of binarization may be the same or different. For example, for a component of the 3D map descriptor, the length of binary data obtained through one stage of binarization in the two-stage binarization may be 1, and the length of binary data obtained through the other stage of binarization may be 2. The two-stage binarization may be further associated with quantization in a subsequent step. For example, the subsequent quantization may be two-stage quantization. The accuracy of one stage of quantization may be higher than the accuracy of the other stage of quantization.
[0215] The length of the binary data in the embodiment of the present application may be the number of bits of the binary data (also referred to as the number of bits). For example, if the binary data is 110, the number of bits in the binary data is 3.
[0216] The relationship between the 3D map descriptor and the at least one preset threshold vector in this embodiment of the present application includes, but is not limited to, an orthogonal relationship between the 3D map descriptor and the at least one preset threshold vector, a magnitude relationship between the 3D map descriptor and the at least one preset threshold vector, etc. The magnitude relationship between the 3D map descriptor and the at least one preset threshold vector may include, but is not limited to, a magnitude relationship between each component of the 3D map descriptor and the corresponding component of the at least one preset threshold vector. For example, the 3D map descriptor may be (a1, a2, ..., a M ), where M represents the number of vector dimensions, and a i represents the i-th component of the 3D map descriptor, and the preset threshold vector is (q1,q2,...,q M ) and q i represents the i-th component of the preset threshold vector, where i∈[1,M]. The magnitude relationship between each component of the 3D map descriptor and the corresponding component of at least one preset threshold vector is the magnitude relationship between components a1 and q1, the magnitude relationship between components a2 and q2, ..., and the magnitude relationship between components a M and q M The magnitude relationship may include a magnitude relationship between the preset threshold vector and the 3D map descriptor. In the above example, the number of vector dimensions is the same between the preset threshold vector and the 3D map descriptor, and the magnitude relationship is a magnitude relationship between components at the same position, which is used as an example for explanation, but it can certainly be understood that there may be other possible modes. For example, the number of vector dimensions of the preset threshold vector is greater than the number of dimensions of the 3D map descriptor, and the magnitude relationship is a magnitude relationship between components at different positions, such as components a1 and q2. Examples will not be described one by one in this embodiment of the present application.
[0217] S103: Perform quantization on the difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data.
[0218] Quantization includes, but is not limited to, scalar quantization, vector quantization, product quantization, etc. For example, a difference between the 3D map descriptor and at least one preset threshold vector may be compressed into one or more quantization indexes through quantization, where the one or more quantization indexes are quantized data of the difference. Each quantization index in the one or more quantization indexes corresponds to one quantization center. The number of bits in the quantization indexes is usually significantly smaller than the number of bits in the original data (e.g., the original 3D map descriptor), saving storage area and / or transmission resource overhead.
[0219] The difference between the 3D map descriptor and the at least one preset threshold vector in this embodiment of the present application includes, but is not limited to, a difference value between the 3D map descriptor and the at least one preset threshold vector, an absolute value of the difference value between the 3D map descriptor and the at least one preset threshold vector, etc. The difference value between the 3D map descriptor and the at least one preset threshold vector may include a difference value between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector. When the 3D map descriptor is (a1, a2, ..., a M ), and the preset threshold vector is (q1,q2,...,q M ) will be used for further explanation. The difference values between the components of the 3D map descriptor and the corresponding components of the at least one preset threshold vector are the difference value between components a1 and q1, the difference value between components a2 and q2, ..., and the difference value between components a M and q M It may include a difference value between
[0220] For the description and explanation of the at least one preset threshold vector in this step, please refer to the description and explanation of the at least one preset threshold vector in S102. The details will not be described again here. Note that in some embodiments, the at least one preset threshold vector in S103 may be a portion of the at least one preset threshold vector in S102. In some embodiments, the at least one preset threshold vector in S103 may be the entire at least one preset threshold vector in S102.
[0221] The original 3D map descriptor may be compressed into binary data and quantized data by using the steps described above. Optionally, in this embodiment of the present application, the binary data and the quantized data may be stored or transmitted separately, or the binary data and the quantized data may be simply spliced together for storage or transmission. Optionally, for transmitting the binary data and the quantized data, in this embodiment of the present application, the binary data and the quantized data may be further encapsulated to obtain a bitstream of the 3D map, and the bitstream of the 3D map is transmitted. The data volume may be further reduced through encapsulation, thereby reducing the resource overhead required to transmit the 3D map descriptor. The encapsulation may use any encoding algorithm, for example, entropy encoding. Entropy encoding is a lossless data compression method. Entropy encoding algorithms include, but are not limited to, Huffman encoding, arithmetic encoding, LZ77 compression algorithm (Lempel-Ziv-Markov chain-algorithm, LZMA), improved compression / decompression algorithms based on the Function Library algorithm for data compression (zlib), etc.
[0222] Optionally, before encapsulation, another compression method such as prediction may be further performed. Examples will not be described one by one in this embodiment of the present application.
[0223] To transmit the 3D map bitstream, in a possible manner, the executing entity of this embodiment of the present application may receive 3D map request information transmitted by the electronic device. For example, the 3D map request information may be the map download request in FIG. 4a. In response to the 3D map request information, the executing entity of this embodiment of the present application may transmit the 3D map bitstream corresponding to the 3D map request information to the electronic device. In a possible manner, the executing entity of this embodiment of the present application may transmit the 3D map bitstream to a server.
[0224] In this embodiment, binarization is performed on the relationship between the 3D map descriptor and the at least one preset threshold vector to obtain binary data, and quantization is performed on the difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data, where the number of bits in the binary data and the quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead.
[0225] The compression method in this embodiment of the present application may further provide a basis for a method for retrieving a 3D map, so as to optimize the efficiency of retrieval of the 3D map. For example, compressed data of a 3D map is obtained based on the method for compressing a 3D map in this embodiment of the present application, and the compressed data of the 3D map includes binary data and quantized data of a 3D map descriptor. When the compressed data of the 3D map is used for retrieval, in order to improve the retrieval speed, retrieval may first be performed on the compressed data of the 3D map based on the Hamming distance by using the binary data of the retrieval 3D map descriptor to obtain a candidate 3D map descriptor. Then, the candidate 3D map descriptor is decompressed to obtain reconstructed data of the candidate 3D map descriptor. By using the retrieval 3D map descriptor, refined retrieval is performed on the reconstructed data of the candidate 3D map descriptor, thereby improving the retrieval accuracy. The method for retrieving a 3D map based on the compression method in this embodiment of the present application can achieve comprehensive optimization of the retrieval speed and retrieval accuracy.
[0226] Please refer to Figure 6. Figure 6 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. An entity for performing the method for decompressing a 3D map in an embodiment of the present application may also be referred to as a decompressor end or a decoder end. The method includes, but is not limited to, the following steps:
[0227] S201: Obtain compressed data of a 3D map, where the compressed data includes binary data and quantized data.
[0228] The binary data and quantized data may be the binary data and quantized data of the 3D map descriptor. For the description and explanation of the 3D map descriptor, please refer to the description and explanation of S101. The details will not be described again here.
[0229] In one possible implementation, the entity performing this embodiment of the present application may obtain the binary data and quantized data of the 3D map descriptor from memory and use the following step S202 to obtain the reconstructed 3D map descriptor. In another possible implementation, the entity performing this embodiment of the present application may obtain compressed data of the 3D map from memory, decompress the compressed data of the 3D map to obtain the binary data and quantized data of the 3D map descriptor, and use the following step S202 to obtain the reconstructed 3D map descriptor. The decompression may include decompression methods such as, but not limited to, prediction. In another possible implementation, the entity performing this embodiment of the present application may receive a bitstream of the 3D map, decompress the bitstream of the 3D map to obtain the binary data and quantized data of the 3D map descriptor, and use the following step S202 to obtain the reconstructed 3D map descriptor. The decompression may include decapsulation, or decapsulation and prediction. The decapsulation includes, but is not limited to, entropy decoding. Such decompression may also be referred to as decoding.
[0230] To transmit the 3D map bitstream, in one possible implementation, the executing entity of this embodiment of the present application may transmit 3D map request information. For example, the 3D map request information may be the map download request in FIG. 4a. The executing entity of this embodiment of the present application may receive the 3D map bitstream corresponding to the 3D map request information. In another possible implementation, the executing entity of this embodiment of the present application may receive the 3D map bitstream transmitted by another device.
[0231] S202: Obtain a reconstructed 3D map descriptor based on the binary data and the quantized data.
[0232] The reconstructed 3D map descriptor, for example, the reconstructed area descriptor or the reconstructed 3D map point descriptor, may be obtained based on the binary data and the quantized data. For example, to save storage space and / or transmission resource overhead, the compression method in the embodiment shown in FIG. 5 is used to compress the 3D map descriptor to obtain compressed data of the 3D map. When the 3D map descriptor needs to be used, the decompression method in this embodiment may be used to decompress the compressed data of the 3D map to obtain the reconstructed 3D map descriptor. The reconstructed 3D map descriptor may be approximately or completely the same as the 3D map descriptor.
[0233] In a possible manner, dequantization may be performed on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector. A reconstructed 3D map descriptor is obtained based on the difference, the binary data, and the at least one preset threshold vector, where the binary data indicates a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector. Each component included in any preset threshold vector in the at least one preset threshold vector is an arbitrary value. The difference between the reconstructed 3D map descriptor and the at least one preset threshold vector may be restored from the quantized data through dequantization. For example, the dequantization process may be the reverse process of S103 in the embodiment shown in FIG. 5. For a detailed explanation and description of the difference, please refer to the detailed explanation and description of S103. Details will not be described again here. The binary data indicates a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector. For a detailed explanation and description of the relationship, please refer to the detailed explanation and description of S102. Details will not be described again here. In this embodiment, the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector may be obtained through dequantization, the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector may be obtained based on binary data, and then the reconstructed 3D map descriptor may be obtained by referring to the at least one preset threshold vector.
[0234] In this embodiment, binary data and quantized data of the 3D map descriptor are obtained, and a reconstructed 3D map descriptor is obtained based on the binary data and quantized data. The number of bits in the binary data and quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead. To perform subsequent processing, such as positioning, by using the reconstructed 3D map descriptor, the compressed data of the 3D map is decompressed to obtain the reconstructed 3D map descriptor.
[0235] In possible mode 1, one preset threshold vector is used for binarization. The binarization is performed on the relationship between the 3D map descriptor and one preset threshold vector to obtain binary data. The preset threshold vector used for quantization is the same as the preset threshold vector used for binarization. For specific implementation, please refer to the description and explanation of the embodiment shown in Figure 7.
[0236] Please refer to Figure 7. Figure 7 is a schematic flowchart of a method for compressing a 3D map according to one embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. This embodiment is based on the concept that one preset threshold vector Q is used for binarization, where Q = (q1, q2, ..., q M ) The method includes, but is not limited to, the following steps:
[0237] S301: Obtain a 3D map descriptor.
[0238] For a specific explanation and description of the 3D map descriptor, please refer to S101 in the embodiment shown in FIG. 5. The details will not be described again here. This embodiment assumes that the 3D map descriptor is D, where D=(a1, a2,..., a M ) is used as an example.
[0239] S302: Subtract the corresponding component of the preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component.
[0240] D' is the difference value between the 3D map descriptor and the preset threshold vector, where D'=DQ.
[0241] The corresponding components of the preset threshold vector may be components in the preset threshold vector at the same positions as the components of the 3D map descriptor. For example, the difference values of each component are a1 minus q1, a2 minus q2, ..., a M Minus q M It may be understood that, optionally, the corresponding component of the preset threshold vector may be a component at a different position in the preset threshold vector from the component of the 3D map descriptor, and this embodiment of the present application is not limited thereto.
[0242] S303: The difference value of each component is binarized to obtain binary data.
[0243] The magnitude relationship between each component of the 3D map descriptor and the corresponding component of the preset threshold vector may be determined by using the difference value of each component. For example, if a1 minus q1 is less than 0, a1 is less than q1; if a1 minus q1 is greater than 0, a1 is greater than q1; if a1 minus q1 is equal to 0, a1 is equal to q1. In this embodiment, binarization may be performed on the magnitude relationship to obtain binary data. For example, H is binary data, and H contains M bits of information, and H=(h1, h2, ..., h M ) In a practicable manner, a i Minus q i If is greater than or equal to 0, then h i is 1; or, a i Minus q i If is less than 0, h i is 0. In another possible embodiment, a i Minus q i If is greater than or equal to 0, then h i is 0; or, a i Minus q i If is less than 0, h i is 1. Alternatively, it can certainly be understood that it may be set as follows: i Minus q iIf is greater than 0, h i is 1, or a i Minus q i If is less than or equal to 0, then h i is 0; or, a i Minus q i If is greater than 0, h i is 0, or a i Minus q i If is less than or equal to 0, then h i is 1. This may be set appropriately as needed.
[0244] q1, q2,..., and q M If are all zeros, then binarization can be understood to mean performing binarization on the symbols of each component of the 3D map descriptor.
[0245] S304: Based on the difference value of each component, determine the absolute value of the difference value between each component of the 3D map descriptor and the corresponding component of the preset threshold vector.
[0246] D'' is the absolute value of the difference between the 3D map descriptor and the preset threshold vector, and D'' = |D'|. The absolute value of the difference of the components is the absolute value of the difference between a1 and q1, the absolute value of the difference between a2 and q2, ..., a M and q M Contains the absolute value of the difference between
[0247] S305: Quantization is performed on the absolute value of the difference value between each component of the 3D map descriptor and the corresponding component of the preset threshold vector to obtain quantized data.
[0248] Quantization, such as the aforementioned scalar quantization, vector quantization, product quantization, or another quantization method, is performed on D'' to obtain quantized data.
[0249] The compressed data of the 3D map descriptor may be obtained by using the steps described above, and the compressed data of the 3D map descriptor may include binary data and quantized data. The compressed data of the 3D map descriptor may be stored to save storage space. Alternatively, the compressed data of the 3D map descriptor may be encapsulated and transmitted, thereby reducing the resource overhead required to transmit the 3D map.
[0250] In this embodiment, binarization is performed on the magnitude relationship between the 3D map descriptor and the preset threshold vector to obtain binary data, and quantization is performed on the absolute value of the difference value between the 3D map descriptor and the preset threshold vector to obtain quantized data, where the number of bits in the binary data and the quantized data is smaller than the number of bits in the original 3D map descriptor, thereby saving storage area and / or transmission resource overhead.
[0251] Please refer to Figure 8. Figure 8 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. An entity for performing the method for decompressing a 3D map in an embodiment of the present application may also be referred to as a decompressor end or a decoder end. The method includes, but is not limited to, the following steps:
[0252] S401: Obtain compressed data of a 3D map, where the compressed data includes binary data and quantized data.
[0253] The binary data and quantized data may be obtained by using the embodiment shown in FIG.
[0254] S402: Perform dequantization on the quantized data to obtain dequantized data.
[0255] DQ is dequantized data, and the dequantized data may be the absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector. The preset threshold vector may be the preset threshold vector Q used in the embodiment shown in FIG. 7. The absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector may be restored from the quantized data through dequantization. For example, the dequantization process may be the reverse process of quantization in the embodiment shown in FIG. 7.
[0256] S403: Obtain a difference value for each component based on the binary data and the dequantized data.
[0257] DQ' is the difference value between the reconstructed 3D map descriptor and the preset threshold vector. DQ' includes the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector, i.e., the difference value of each component.
[0258] Based on the binary data, a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the preset threshold vector may be determined, and then, by referring to the absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector, a difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector may be obtained. For example, based on the magnitude relationship between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector, a positive or negative sign may be added to the absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the preset threshold vector to obtain the difference value of each component.
[0259] S404: Obtain a reconstructed 3D map descriptor based on the difference value of each component and the preset threshold vector.
[0260] During compression, the difference value of each component of the 3D map descriptor is subtracted from the corresponding component of the preset threshold vector to obtain the difference value of each component. Therefore, during decompression, the difference value of each component is added to the corresponding component of the preset threshold vector to obtain the component of the reconstructed 3D map descriptor. D_recover is the reconstructed 3D map descriptor. D_recover=DQ'+Q.
[0261] It should be noted that this embodiment is described using an example in which, during compression, a corresponding component of the preset threshold vector is subtracted from each component of the 3D map descriptor, and during decompression, the difference value of each component is added to the corresponding component of the preset threshold vector. Alternatively, another scheme may be used. For example, during compression, each component of the 3D map descriptor is added to the corresponding component of the preset threshold vector, and during decompression, the difference value of each component is subtracted from the corresponding component of the preset threshold vector. This embodiment of the present application is not limited thereto.
[0262] In this embodiment, binary data and quantized data of the 3D map descriptor are obtained, and a reconstructed 3D map descriptor is obtained based on the binary data and quantized data. The number of bits in the binary data and quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead. To perform subsequent processing, such as positioning, by using the reconstructed 3D map descriptor, the compressed data of the 3D map is decompressed to obtain the reconstructed 3D map descriptor.
[0263] It should be noted that the decompression method in this embodiment of the present application can be flexibly used with reference to the requirements of application scenarios with different usage requirements. For example, when compressed data of a 3D map is used for retrieval, to improve the retrieval speed, retrieval may first be performed on the compressed data of the 3D map based on the Hamming distance by using the binary data of the retrieved 3D map descriptor to obtain a candidate 3D map descriptor. Then, when there is a relatively high retrieval accuracy requirement, the candidate 3D map descriptor may be decompressed by using the above-mentioned decompression method to obtain reconstructed data of the candidate 3D map descriptor. By using the retrieved 3D map descriptor, refined retrieval is performed on the reconstructed data of the candidate 3D map descriptor to improve the retrieval accuracy.
[0264] In a second possible implementation, multiple preset threshold vectors are used for binarization. The binarization is performed on the relationship between the 3D map descriptor and the multiple preset threshold vectors to obtain binary data. At least one preset threshold vector used for quantization is the same as the multiple preset threshold vectors used for binarization.
[0265] For specific implementation, please refer to the description and explanation of the embodiment shown in FIG.
[0266] Please refer to Figure 9. Figure 9 is a schematic flowchart of a method for compressing a 3D map according to one embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. This embodiment is implemented by using Q1, Q2, ..., Q N The aforementioned binarization is performed by using N preset threshold vectors, where Q1=(q 11 ,q 12 ,...,q 1M ), and Q2=(q21 ,q 22 ,...,q 2M ),...,Q N =(q N1 ,q N2 ,...,q NM ), where N is a positive integer greater than 1. The method includes, but is not limited to, the following steps:
[0267] S501: Obtain a 3D map descriptor.
[0268] For a specific explanation and description of the 3D map descriptor, please refer to S101 in the embodiment shown in FIG. 5. The details will not be described again here. This embodiment assumes that the 3D map descriptor is D, where D=(a1, a2,..., a M ) is used as an example.
[0269] S502: Subtract corresponding components of the N preset threshold vectors from each component of the 3D map descriptor to obtain N difference value vectors, where each difference value vector includes the difference value of each component.
[0270] D j D′ is the difference value between the j-th preset threshold vector in the 3D map descriptor and the N preset threshold vectors, i.e., the j-th difference value vector, where j∈[1,N]. j '=DQ j D j Each component of ' is the difference value between each component of the 3D map descriptor and each component of the j-th preset threshold vector. j '=(d j1 ,d j2 ,...,d jM ) and d ji =a i -q ji where i∈[1,M].
[0271] The corresponding component of the j-th preset threshold vector may be the component in the j-th preset threshold vector that is at the same position as the component of the 3D map descriptor. For example, the difference value between each component of the 3D map descriptor and the corresponding component of the j-th preset threshold vector is a minus q j1 ,a2 minus q j2 ,...,a M Minus q jM It may be understood that, optionally, the corresponding component of the j-th preset threshold vector may be a component at a different position in the j-th preset threshold vector from the component of the 3D map descriptor, and this embodiment of the present application is not limited thereto.
[0272] S503: The difference value of each component is binarized to obtain binary data.
[0273] D j The binarization performed on ' is used as an example. D j ' and perform binarization on D j Binary data H corresponding to ' j Get H j contains M bits of information, and H j =(h j1 ,h j2 ,...,h jM ) In a practicable manner, a i Minus q ji If is greater than or equal to 0, then h ji is 1; or, a i Minus q ji If is less than 0, h ji is 0. In another possible embodiment, a i Minus q ji If is greater than or equal to 0, then h ji is 0; or, a i Minus q ji If is less than 0, h ji is 1.
[0274] The binary data is obtained by using S502 and S503, and the binary data is H1, H2, ..., H N may include:
[0275] In some embodiments, one preset threshold vector among the N preset threshold vectors used for binarization is a minimum threshold vector or a maximum threshold vector. Each component of the minimum threshold vector is less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor. Each component of the maximum threshold vector is greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor. That is, the N preset threshold vectors include a minimum threshold vector or a maximum threshold vector. The minimum threshold vector or the maximum threshold vector may ensure that at least one difference value in each dimension of the N difference value vectors is greater than or equal to 0. Specifically, d 11 ,d 12 ,..., and d 1N At least one difference value in is greater than or equal to 0, and d 21 ,d 22 ,..., and d 2N At least one difference value in is greater than or equal to 0, ..., d 1M ,d 2M ,..., and d NM is greater than or equal to 0. In this way, the difference values between the components of the 3D map descriptor and the corresponding components of the preset threshold vector, rather than their absolute values, can be used in the subsequent quantization, reducing computational complexity.
[0276] In some embodiments, components at the same position in the N preset threshold vectors are sequentially increased or decreased. A sequential increase indicates that any component of the jth preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (j-1)th preset threshold vector. A sequential decrease indicates that any component of the jth preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (j-1)th preset threshold vector, where 2≦j≦N. Specifically, q 11 ,q 21 ,...,q N1 q increases or decreases sequentially 12 ,q 22 ,...,q N2 is increasing or decreasing sequentially...;q 1M ,q 2M ,...,q NM increases or decreases sequentially.
[0277] The following three preset threshold vectors are used as an example: Q1 = (q 11 ,q 12 ,...,q 1M ), Q2=(q 21 ,q 22 ,...,q 2M ), and Q3=(q 31 ,q 32 ,...,q 3M ). where q 11 , q 21 , and q 31 increases sequentially. The value of a1 is q 11 , q 21 , and q 31 may be divided into four intervals: interval 1, interval 2, interval 3, and interval 4 by q 11 is a numerical interval smaller than q 11 greater than or equal to and q 21 is a numerical interval smaller than q 21 greater than or equal to and q 31 is a numerical interval smaller than q21 , the binary data obtained by performing binarization on a1 corresponds to one of interval 1, interval 2, interval 3, and interval 4. For example, if a1 is q 11 If a1 is smaller than q, the binary data obtained by performing binarization on a1 is 000; 11 greater than or equal to and q 21 If a1 is smaller than q, the binary data obtained by performing binarization on a1 is 100; 21 greater than or equal to and q 31 If a1 is smaller than q, the binary data obtained by performing binarization on a1 is 110; 31 , the binary data obtained by performing binarization on a1 is 111. 11 may be the minimum value in the value range of a1. Accordingly, the value of a1 is 11 , q 21 , and q 31 may be divided into three intervals: interval 2, interval 3, and interval 4 by q 31 may be the maximum value in the value range of a1. 11 , q 21 , and q 31 may be divided into three intervals: interval 1, interval 2, and interval 3 by
[0278] In some embodiments, the binary data may include multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the preset threshold vector corresponding to that component in the quantization. For example, i The multi-bit binary data corresponding to h 1i ,h 2i ,...,h NiThat is, N bits of information. The number of values 1 or 0 in the N bits of information is a i For example, if the number of values 1 or 0 in the N-bit information is 2, then the number of q in Q2 is 2i is a in quantization i is subtracted from
[0279] Optionally, the elements at the same position in the N preset threshold vectors may not increase or decrease sequentially, but may be set appropriately as needed.
[0280] In some embodiments, the at least one bit in the binary data further indicates the number of bits in quantized data obtained through subsequent quantization. The at least one bit may reuse the binary data obtained through binarization, or may not reuse the binary data obtained through binarization. For example, another bit indicates the number of bits in the quantized data obtained through subsequent quantization. Optionally, the at least one bit may be determined based on the binary data obtained through binarization. Different binary data obtained through binarization correspond to different threshold ranges (e.g., the numerical intervals described above), and the different threshold ranges may be different threshold ranges obtained through division by the components at the same position of the N preset threshold vectors.
[0281] S504: Based on the difference value of each component, determine the absolute value of the difference value between each component of the 3D map descriptor and the corresponding component of the target preset threshold vector.
[0282] By using S502, N difference value vectors are obtained, and each difference value vector includes component difference values, i.e., N×M difference values. In other words, each component in the M components of the 3D map descriptor corresponds to N difference values. In this embodiment, a relatively small difference value may be selected as the difference value of the component of the 3D map descriptor from the N difference values corresponding to each component, and the absolute value of the component difference value may be obtained. The preset threshold vectors corresponding to the components in the M components may be the same or different. For example, a1 is the difference value of q in Q1. 11 a2 corresponds to q in Q1 12 Corresponding to,...,a M Q N q in NM The target pre-threshold vector corresponds to (q 11 ,q 12 ,...,q NM ) where D'' is the absolute value of the difference between each component of the 3D map descriptor and the corresponding component of the target preset threshold vector. The absolute value of the difference between each component of the 3D map descriptor and the corresponding component of the target preset threshold vector is a1 minus q 11 Absolute value of a2 minus q 12 Absolute value of,...,a M Minus q NM is the absolute value of
[0283] S505: Quantization is performed on the absolute value of the difference value between each component of the 3D map descriptor and the corresponding component of the target preset threshold vector to obtain quantized data.
[0284] The quantization may be scalar quantization, vector quantization, product quantization, as previously described, or another quantization scheme.
[0285] The compressed data of the 3D map descriptor may be obtained by using the steps described above, and the compressed data of the 3D map descriptor may include binary data and quantized data. The compressed data of the 3D map descriptor may be stored to save storage space. Alternatively, the compressed data of the 3D map descriptor may be encapsulated and transmitted, thereby reducing the resource overhead required to transmit the 3D map.
[0286] In this embodiment, binarization is performed on the magnitude relationship between the 3D map descriptor and the preset threshold vector to obtain binary data, and quantization is performed on the absolute value of the difference value between the 3D map descriptor and the preset threshold vector to obtain quantized data. The number of bits in the binary data and the quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead. Multiple preset threshold vectors are used for binarization, which allows for flexible selection of thresholds for quantization and reduces the data volume of the quantized data.
[0287] In the above-described embodiment, one-stage binarization and one-stage quantization are used as an example for explanation. In the embodiment of the present application, compression may be performed by using multi-stage binarization and multi-stage quantization. Any stage of binarization in multi-stage binarization may use the above-described binarization scheme, and any stage of quantization in multi-stage quantization may use the above-described quantization scheme. In an example for explanation, for one component a1 of the 3D map descriptor, three preset threshold vectors: Q1=(q 11 ,q 12 ,...,q 1M ), Q2=(q 21 ,q 22 ,...,q 2M ), and Q3=(q 31 ,q 32 ,...,q 3M ) is used as an example. For example, q 11 , q 21 , and q 31In the two-stage binarization, one stage of binarization is q 21 may be used to obtain binary data that may be of length 1, and one stage of quantization in the subsequent two-stage quantization may be used to obtain binary data that may be of length 1, and one stage of quantization may be used to obtain binary data that may be of length 1, and the subsequent two-stage quantization may be used to obtain binary data that may be of length 1, and the 21 The other stage of binarization in the two-stage binarization may be q 11 , q 21 , and q 31 may be used to obtain binary data whose length may be 3, and the other stage of quantization in the subsequent two-stage quantization may be used to obtain binary data whose length may be 3, and the other stage of ... 11 , a1-q 21 , and a1-q 31 For example, q 11 , q 21 , and q 31 If the binary data obtained by using a1-q is 111, 31 Quantization may be performed by using q 11 , q 21 , and q 31 If the binary data obtained by using a1-q is 110, 21 Quantization may be performed by using: In such a compression scheme, decompression can be performed according to accuracy requirements by using a corresponding decompression stage.
[0288] Please refer to Figure 10. Figure 10 is a schematic flowchart of a method for decompressing a 3D map according to an embodiment of the present application. In some implementations, the method may be applied to an electronic device (e.g., a first electronic device or a second electronic device) in any one of the examples of Figures 1 to 4f, or may be applied to a server in any one of the examples of Figures 1 to 4f. An entity for performing the method for decompressing a 3D map in an embodiment of the present application may also be referred to as a decompressor end or a decoder end. The method includes, but is not limited to, the following steps:
[0289] S601: Obtain compressed data of a 3D map, where the compressed data includes binary data and quantized data.
[0290] The binary data and quantized data may be obtained by using the embodiment shown in FIG.
[0291] S602: Perform dequantization on the quantized data to obtain dequantized data.
[0292] DQ''' is dequantized data, and the dequantized data may be the absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the target preset threshold vector. The target preset threshold vector may be the target preset threshold vector in S504 in the embodiment shown in FIG. 9. The absolute value of the difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the target preset threshold vector may be restored from the quantized data through dequantization. For example, the dequantization process may be the reverse process of quantization in the embodiment shown in FIG. 9.
[0293] S603: Determine a target preset threshold vector from the N preset threshold vectors based on the binary data.
[0294] The binary data may include multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any of the components indicates the preset threshold vector corresponding to the component in the quantization. For example, i The multi-bit binary data corresponding to h 1i ,h 2i ,...,h Ni , i.e., N-bit information. The number of values 1 or 0 in the N-bit information is a iFor example, if the number of values 1 or 0 in the N-bit information is 2, then a i The preset threshold vector corresponding to is Q2, that is, q in Q2 2i is subsequently used to recover the i-th component of the reconstructed 3D map descriptor.
[0295] For example, based on binary data, a1 is the q in Q1 11 a2 corresponds to q in Q1 12 Corresponding to,...,a M Q N q in NM The target preset threshold vector may be determined to correspond to (q 11 ,q 12 ,...,q NM )
[0296] S604: Obtain a reconstructed 3D map descriptor based on the dequantized data and the target preset threshold vector.
[0297] During compression, the difference value of each component of the 3D map descriptor is subtracted from the corresponding component of the target preset threshold vector to obtain the difference value of each component. Therefore, during decompression, the difference value of each component is added to the corresponding component of the target preset threshold vector to obtain the component of the reconstructed 3D map descriptor. D_recover is the reconstructed 3D map descriptor. D_recover=DQ'+Q. Q is the target preset threshold vector.
[0298] It should be noted that this embodiment is described using an example in which, during compression, each component of the 3D map descriptor is subtracted from the corresponding component of the target preset threshold vector, and during decompression, the difference value of each component is added to the corresponding component of the target preset threshold vector. Alternatively, another scheme may be used. For example, during compression, each component of the 3D map descriptor is added to the corresponding component of the target preset threshold vector, and during decompression, the difference value of each component is subtracted from the corresponding component of the target preset threshold vector. This embodiment of the present application is not limited thereto.
[0299] If the target preset threshold is (q 11 ,q 12 ,...,q NM Further explanation is given by using an example where DQ''=(dq1'',dq2'',...,dq M The reconstruction 3D map descriptor is dq1 plus q 11 ,dq2''plusq 12 ,...,dq M '''Plus q NM is.
[0300] In this embodiment, binary data and quantized data of the 3D map descriptor are obtained, and a reconstructed 3D map descriptor is obtained based on the binary data and quantized data. The number of bits in the binary data and quantized data is smaller than the number of bits in the original 3D map descriptor, saving storage area and / or transmission resource overhead. To perform subsequent processing, such as positioning, by using the reconstructed 3D map descriptor, the compressed data of the 3D map is decompressed to obtain the reconstructed 3D map descriptor.
[0301] 11A and 11B are schematic diagrams of a process for encoding and decoding a 3D map according to one embodiment of the present application. As shown in FIG. 11A, the encoder compresses a 3D map descriptor D, where D=(a1, a2). The encoder subtracts five preset threshold vectors (Q1, Q2, Q3, Q4, Q5) from D to obtain five difference value vectors (D1', D2', D3', D4', D5'). Q1=(q 11 ,q 12 ), and Q2=(q 21 ,q 22 ), and Q3=(q 31 ,q 32 ), and Q4=(q 41 ,q 42 ), and Q5=(q 51 ,q 52 ) As shown in FIG. 11A, D1'=(a1-q 11 ,a2-q 12 ) and D2'=(a1-q 21 ,a2-q 22 ) and D3'=(a1-q 31 ,a2-q 32 ) and D4'=(a1-q 41 ,a2-q 42 ) and D5'=(a1-q 51 ,a2-q 52 ) are obtained. The five difference value vectors (D1', D2', D3', D4', D5') are binarized to obtain corresponding binary data (H1, H2, H3, H4, H5). Based on the binary data (H1, H2, H3, H4, H5), multi-bit binary data corresponding to a1 and multi-bit binary data corresponding to a2 may be obtained. For example, the multi-bit binary data corresponding to a1 is shown in the dotted-line box in FIG. 11A. 11 , h 21 , h 31 , h 41 , and h 51 The multi-bit binary data corresponding to a2 may be h 12 , h 22 , h32 , h 42 , and h 52 Quantization is performed on the five difference value vectors (D1', D2', D3', D4', D5') to obtain corresponding quantized data. In a possible implementation, a1-q 11 , a1-q 21 , a1-q 31 , a1-q 41 , and a1-q 51 The one with the smallest absolute value is selected for quantization. For example, a1-q in the dotted circle shown in FIG. 11A 11 is selected, and a1-q 11 The absolute value of a2-q is taken for quantization. 12 , a2-q 22 , a2-q 32 , a2-q 42 , and a2-q 52 The one with the smallest absolute value is selected for quantization. For example, a2-q in the dotted circle shown in FIG. 32 is selected, and a2-q 32 The absolute value of is obtained for quantization, thereby obtaining the quantized data. The decoder performs dequantization on the quantized data to obtain DQ''. In the five preset threshold vectors, the binary data (h 11 ,h 21 ,h 31 ,h 41 ,h 51 ) based on the q in the dotted circle shown in FIG. 11B 11 is found. In five preset threshold vectors, the binary data (h 12 ,h 22 ,h 32 ,h 42 ,h 52 ) based on the q in the dotted circle shown in FIG. 11B 32 is discovered. 11 and q 32is the target preset vector mentioned above, and accordingly add DQ'' to the target preset threshold vector to obtain the reconstructed 3D map descriptor. D_recover is the reconstructed 3D map descriptor. D_recover=DQ'+Q. Q is the target preset threshold vector. As shown in Figure 11B, D_recover=(q 11 +dq1'',q 32 +dq2'').
[0302] The method for compressing and decompressing a 3D map according to an embodiment of the present application has been described in detail above with reference to the accompanying drawings. Hereinafter, an apparatus for compressing and decompressing a 3D map according to an embodiment of the present application will be described with reference to Figures 12 and 13. It should be understood that the apparatus for compressing a 3D map can execute the method for compressing a 3D map according to an embodiment of the present application, and the apparatus for decompressing a 3D map can execute the method for decompressing a 3D map according to an embodiment of the present application. In order to avoid unnecessary repetition, the following description of the apparatus for compressing and decompressing a 3D map according to an embodiment of the present application will be omitted as appropriate.
[0303] Please refer to Fig. 12. Fig. 12 is a schematic diagram of the structure of an apparatus for compressing a 3D map according to an embodiment of the present application. As shown in Fig. 12, the apparatus 1200 for compressing a 3D map may include a binarization module 1201 and a quantization module 1202.
[0304] The binarization module 1201 is configured to obtain a 3D map descriptor, the 3D map descriptor corresponding to at least one 3D map point of the 3D map. The binarization module 1201 is further configured to perform binarization on a relationship between the 3D map descriptor and the at least one preset threshold vector to obtain binary data. The quantization module 1202 is configured to perform quantization on a difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data.
[0305] In some embodiments, the apparatus may further comprise an encapsulation module 1203 configured to encapsulate the binary data and the quantized data to obtain a bitstream of the 3D map.
[0306] In some embodiments, the apparatus may further include a transmission module 1204 configured to receive 3D map request information sent by the electronic device and, in response to the 3D map request information, send a bitstream of a 3D map corresponding to the 3D map request information to the electronic device; or a transmission module 1204 configured to send the bitstream of the 3D map to a server.
[0307] In some embodiments, the relationship between the 3D map descriptor and the at least one preset threshold vector comprises a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector.
[0308] In some embodiments, the difference between the 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them.
[0309] In some embodiments, the binarization module 1201 is further configured to subtract a corresponding component of at least one preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and determine a magnitude relationship based on the difference value for each component.
[0310] In some embodiments, at least one component of the at least one preset threshold vector used for quantization is any one of the corresponding components of the at least one preset threshold vector used for binarization.
[0311] In some embodiments, one preset threshold vector in the at least one preset threshold vector used for binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor.
[0312] In some embodiments, when the at least one preset threshold vector used for binarization includes N preset threshold vectors, components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; sequentially increasing indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and sequentially decreasing indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N.
[0313] In some embodiments, the binary data comprises multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component.
[0314] In some embodiments, the at least one preset threshold vector used for quantization is the same as the at least one preset threshold vector indicated by the binary data for quantization.
[0315] In some embodiments, at least one component of at least one preset threshold vector used for quantization is obtained based on binary data.
[0316] In some embodiments, the at least one bit in the binary data further indicates the number of bits in the quantized data.
[0317] It should be noted that the apparatus 1200 for compressing a 3D map may implement the method for compressing a 3D map in the embodiments shown in Fig. 5, Fig. 7, or Fig. 9. For specific implementation principles and technical effects, please refer to the specific explanations and descriptions of the aforementioned method embodiments. The details will not be described again here.
[0318] Please refer to Fig. 13. Fig. 13 is a schematic diagram of the structure of an apparatus for decompressing 3D maps according to an embodiment of the present application. As shown in Fig. 13, the apparatus 1300 for decompressing 3D maps may include a storage module 1301 or a transmission module 1302, and a reconstruction module 1303.
[0319] The reconstruction module 1303 is configured to obtain compressed data of the 3D map by using the storage module 1301 or the transmission module 1302, where the compressed data includes binary data and quantized data. The reconstruction module 1303 is configured to obtain a reconstructed 3D map descriptor based on the binary data and the quantized data.
[0320] In a possible design, the reconstruction module 1303 is configured to obtain a bitstream of the 3D map by using the transmission module 1302, and decapsulate the bitstream of the 3D map to obtain compressed data of the 3D map.
[0321] In a possible design, the transmission module 1302 is configured to send 3D map request information and receive a bitstream of a 3D map corresponding to the 3D map request information; or the transmission module 1302 is configured to receive a bitstream of a 3D map.
[0322] In a possible design, the reconstruction module 1303 performs dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector; and obtains a reconstructed 3D map descriptor based on the difference, the binary data, and the at least one preset threshold vector, where the binary data is configured to indicate a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector.
[0323] In a possible design, the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector.
[0324] In a possible design, the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector includes a difference value between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them.
[0325] In a possible design, the binary data further indicates at least one preset threshold vector, and the reconstruction module is further configured to determine the at least one preset threshold vector based on the binary data and the N preset threshold vectors. Components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; a sequential increase indicates that any component of an i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of an i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N.
[0326] In a possible design, the binary data includes multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any of the components indicates the component of the preset threshold vector corresponding to the component.
[0327] In a possible design, at least one bit in the binary data further indicates the number of bits in the quantized data.
[0328] It should be noted that the apparatus 1300 for decompressing 3D maps may implement the apparatus method for decompressing 3D maps in the embodiments shown in Fig. 6, Fig. 8, or Fig. 10. For specific implementation principles and technical effects, please refer to the specific explanations and descriptions of the aforementioned method embodiments. The details will not be described again here.
[0329] 14 is a schematic block diagram of an implementation of a decoding device 1400 according to an embodiment of the present application. The decoding device 1400 may include a processor 1401, a memory 1402, and a bus system 1403. The processor 1401 and the memory 1402 are connected through the bus system 1403. The memory 1402 is configured to store instructions. The processor 1401 is configured to execute the instructions stored in the memory 1402 to perform various methods for compressing or decompressing 3D maps described in the present application. To avoid repetition, details will not be described again here.
[0330] In this embodiment of the present application, the processor 1401 may be a central processing unit (CPU), or the processor 1401 may be another general-purpose processor, a DSP, an ASIC, an FPGA, or another programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor, etc.
[0331] The memory 1402 may include a ROM device or a RAM device. Any other suitable type of storage device may be used as the memory 1402. The memory 1402 may include code and data 14021 accessed by the processor 1401 via the bus 1403. The memory 1402 may further include an operating system 14023 and applications 14022. The applications 14022 include at least one program that enables the processor 1401 to perform the methods for compressing or decompressing 3D maps described herein. For example, the applications 14022 may include applications 1-N, and further include a 3D map compression or decompression application (simply referred to as a 3D map decoding application) that performs the methods for compressing or decompressing 3D maps described herein.
[0332] The bus system 1403 may further include a data bus, a power bus, a control bus, a status signal bus, etc. However, for clarity of explanation, various types of buses are illustrated in the figures as the bus system 1403.
[0333] Optionally, the decoding apparatus 1400 may further include one or more output devices, such as a display 1404. In one example, the display 1404 may be a touch display that combines a display and a touch unit that operatively senses touch input. The display 1404 may be connected to the processor 1401 via a bus 1403.
[0334] It should be noted that the decoding device 1400 may perform the method for compressing the 3D map in the present application, or may perform the method for decompressing the 3D map in the present application.
[0335] Those skilled in the art will appreciate that the functions described with reference to the various illustrative logical blocks, modules, and algorithm steps disclosed and described herein can be implemented by hardware, software, firmware, or any combination thereof. If these functions are implemented in software, the functions described with reference to the illustrative logical blocks, modules, and steps may be stored on or transmitted via a computer-readable medium as one or more instructions or code and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium corresponding to a tangible medium, such as a data storage medium, or any communication medium that facilitates the transmission of a computer program from one place to another (e.g., according to a communication protocol). In this manner, a computer-readable medium may generally correspond to (1) a non-transitory tangible computer-readable storage medium or (2) a communication medium, such as a signal or carrier wave. A data storage medium may be any available medium accessible by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described herein. A computer program product may include a computer-readable medium.
[0336] In one example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other compact disk storage, magnetic disk storage, flash memory, or any other medium accessible by a computer that can be used to store desired program code in the form of instructions or data structures. Additionally, any connection is appropriately referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or another remote source over coaxial cable, fiber optic, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio waves, or microwave, the coaxial cable, fiber optic, twisted pair, DSL, or wireless technologies such as infrared, radio waves, or microwave are included within the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, and in fact refer to non-transitory, tangible storage media. As used herein, disk and disc include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), and Blu-ray discs. Disks typically reproduce data magnetically, while discs reproduce data optically by using lasers. Combinations of the foregoing items should also be included within the scope of computer-readable media.
[0337] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to the aforementioned structure or any other structure that may be adapted to implement the techniques described herein. Furthermore, in some aspects, the functions described with reference to the exemplary logic blocks, modules, and steps described herein may be provided in dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combinatorial codec. Furthermore, these techniques may be implemented entirely in one or more circuits or logic elements.
[0338] The techniques of the present application may be implemented in a variety of apparatuses or devices, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described herein to highlight functional aspects of apparatus configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. In practice, as noted above, the various units may be combined into a codec hardware unit in combination with appropriate software and / or firmware, or may be provided by interoperable hardware units (including one or more processors as described above).
[0339] The above description is merely a specific implementation of the present application, and the scope of protection of the present application is not limited thereto. Any modifications or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present application shall be included in the scope of protection of the present application. Therefore, the scope of protection of the present application shall be subject to the scope of protection of the claims. 。 [Other possible items] [Item 1] 1. A method for compressing a 3D map, the method comprising: obtaining a 3D map descriptor, wherein said 3D map descriptor corresponds to at least one 3D map point of the 3D map; performing binarization on the relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data; and performing quantization on the difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data; A method comprising: [Item 2] The method comprises: encapsulating the binary data and the quantized data to obtain a bitstream of the 3D map. The method of claim 1, further comprising: [Item 3] The method comprises: receiving 3D map request information transmitted by an electronic device, and in response to the 3D map request information, transmitting the bitstream of the 3D map corresponding to the 3D map request information to the electronic device; or transmitting the bitstream of the 3D map to a server. The method of item 2 further comprises: [Item 4] 4. The method according to any one of items 1 to 3, wherein the relationship between the 3D map descriptor and the at least one preset threshold vector comprises a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector. [Item 5] 5. The method according to any one of items 1 to 4, wherein the difference between the 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the 3D map descriptor and the corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them. [Item 6] The method comprises: subtracting the corresponding component of the at least one preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and determining the magnitude relationship based on the difference values of the components Item 6. The method according to item 4 or 5, further comprising: [Item 7] 7. The method according to any one of items 1 to 6, wherein at least one component of the at least one preset threshold vector used for the quantization is any one of corresponding components of the at least one preset threshold vector used for the binarization. [Item 8] 8. The method according to any one of items 4 to 7, wherein one of the at least one preset threshold vectors used for the binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being smaller than or equal to a minimum value of a value range of a corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being larger than or equal to a maximum value of a value range of a corresponding component of the 3D map descriptor. [Item 9] 9. The method according to any one of items 4 to 8, wherein when the at least one preset threshold vector used for the binarization includes N preset threshold vectors, components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; a sequential increase indicates that any component of an i-th preset threshold vector in the N preset threshold vectors is greater than or equal to a component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to a component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N. [Item 10] 10. The method of claim 9, wherein the binary data includes multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component. [Item 11] 11. The method according to any one of items 1 to 10, wherein the at least one preset threshold vector used for the quantization is the same as the at least one preset threshold vector indicated by the binary data for quantization. [Item 12] Item 12. The method of item 11, wherein the at least one component of the at least one preset threshold vector used for the quantization is obtained based on the binary data. [Item 13] 13. The method according to any one of items 1 to 12, wherein at least one bit in the binary data further indicates the number of bits in the quantized data. [Item 14] 1. A method for decompressing a 3D map, the method comprising: obtaining compressed data of the 3D map, wherein the compressed data includes binary data and quantized data; and obtaining a reconstructed 3D map descriptor based on the binary data and the quantized data; A method comprising: [Item 15] The step of obtaining compressed data of the 3D map includes: obtaining a bitstream of the 3D map; and decapsulating the bitstream of the 3D map to obtain the compressed data of the 3D map; Item 15. The method according to item 14, comprising: [Item 16] The method comprises: transmitting 3D map request information and receiving the bitstream of the 3D map corresponding to the 3D map request information; or receiving the bitstream of the 3D map Item 16. The method of item 15, further comprising: [Item 17] obtaining a reconstructed 3D map descriptor based on the binary data and the quantized data, performing dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector; and obtaining the reconstructed 3D map descriptor based on the difference, the binary data, and the at least one preset threshold vector, wherein the binary data indicates a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector. 17. The method according to any one of Items 14 to 16, comprising: [Item 18] Item 18. The method of item 17, wherein the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector includes a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector. [Item 19] 19. The method of claim 17 or 18, wherein the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them. [Item 20] The binary data further indicates the at least one preset threshold vector, and the method further comprises: determining the at least one preset threshold vector based on the binary data and N preset threshold vectors, wherein: Components at the same position in the N preset threshold vectors are sequentially increased or decreased, where N is an integer greater than 1; a sequential increase indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N. 20. The method according to any one of items 17 to 19, further comprising: [Item 21] 21. The method of claim 20, wherein the binary data includes multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates a preset threshold vector corresponding to that component. [Item 22] 22. The method according to any one of items 14 to 21, wherein at least one bit in the binary data further indicates the number of bits in the quantized data. [Item 23] 1. An apparatus for compressing a 3D map, the apparatus comprising: a binarization module configured to obtain a 3D map descriptor, wherein the 3D map descriptor corresponds to at least one 3D map point of the 3D map, wherein: the binarization module is further configured to perform binarization on a relationship between the 3D map descriptor and at least one preset threshold vector to obtain binary data; and a quantization module configured to perform quantization on a difference between the 3D map descriptor and the at least one preset threshold vector to obtain quantized data. An apparatus comprising: [Item 24] The device comprises: an encapsulation module configured to encapsulate the binary data and the quantized data to obtain a bitstream of the 3D map. Item 24. The device of item 23, further comprising: [Item 25] The device comprises: a transmitting module configured to receive 3D map request information transmitted by an electronic device and, in response to the 3D map request information, transmit to the electronic device the bitstream of the 3D map corresponding to the 3D map request information; or a transmission module configured to transmit the bitstream of the 3D map to a server. Item 25. The device of item 24, further comprising: [Item 26] 26. The device of any one of items 23 to 25, wherein the relationship between the 3D map descriptor and the at least one preset threshold vector includes a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the at least one preset threshold vector. [Item 27] 27. The method according to any one of items 23 to 26, wherein the difference between the 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the 3D map descriptor and the corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them. [Item 28] The binarization module includes: subtracting the corresponding component of the at least one preset threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and The magnitude relationship is determined based on the difference values of the components. 28. The device according to item 26 or 27, further configured as follows: [Item 29] 29. The apparatus according to any one of items 23 to 28, wherein at least one component of the at least one preset threshold vector used for the quantization is any one of the corresponding components of the at least one preset threshold vector used for the binarization. [Item 30] 30. The apparatus of any one of items 26 to 29, wherein one of the at least one preset threshold vectors used for the binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor. [Item 31] 31. The apparatus of claim 26, wherein when the at least one preset threshold vector used for the binarization includes N preset threshold vectors, components at the same position in the N preset threshold vectors sequentially increase or decrease, where N is an integer greater than 1; a sequential increase indicates that any component of an i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N. [Item 32] Item 32. The apparatus of item 31, wherein the binary data includes multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component. [Item 33] 33. The apparatus of any one of items 23 to 32, wherein the at least one preset threshold vector used for the quantization is the same as the at least one preset threshold vector indicated by the binary data for quantization. [Item 34] Item 34. The apparatus of item 33, wherein the at least one component of the at least one preset threshold vector used for the quantization is obtained based on the binary data. [Item 35] Item 35. The device according to any one of items 23 to 34, wherein at least one bit in the binary data further indicates the number of bits in the quantized data. [Item 36] 1. An apparatus for decompressing a 3D map, the apparatus comprising: a reconstruction module configured to obtain compressed data of the 3D map by using a storage module or a transmission module, where the compressed data includes binary data and quantized data, wherein: The reconstruction module is further configured to obtain a reconstructed 3D map descriptor based on the binary data and the quantized data. An apparatus comprising: [Item 37] Item 37. The apparatus of item 36, wherein the reconstruction module is configured to obtain a bitstream of the 3D map by using the transmission module, and to decapsulate the bitstream of the 3D map to obtain the compressed data of the 3D map. [Item 38] Item 38. The device of item 37, wherein the transmission module is configured to transmit 3D map request information and receive the bitstream of the 3D map corresponding to the 3D map request information; or to receive the bitstream of the 3D map. [Item 39] The reconstruction module performing dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and at least one preset threshold vector; and obtaining the reconstructed 3D map descriptor based on the difference, the binary data, and the at least one preset threshold vector, wherein the binary data indicates a relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector. The device according to any one of items 36 to 38, configured as follows: [Item 40] 40. The apparatus of claim 39, wherein the relationship between the reconstructed 3D map descriptor and the at least one preset threshold vector includes a magnitude relationship between each component of the reconstructed 3D map descriptor and a corresponding component of the at least one preset threshold vector. [Item 41] 41. The apparatus of claim 39 or 40, wherein the difference between the reconstructed 3D map descriptor and the at least one preset threshold vector comprises a difference value between each component of the reconstructed 3D map descriptor and the corresponding component of the at least one preset threshold vector or an absolute value of the difference value between them. [Item 42] The binary data further indicates the at least one preset threshold vector, and the reconstruction module: further configured to determine the at least one preset threshold vector based on the binary data and N preset threshold vectors, wherein: Components at the same position in the N preset threshold vectors are sequentially increased or decreased, where N is an integer greater than 1; a sequential increase indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is greater than or equal to the component at the same position in the (i-1)-th preset threshold vector, and a sequential decrease indicates that any component of the i-th preset threshold vector in the N preset threshold vectors is less than or equal to the component at the same position in the (i-1)-th preset threshold vector, where 2≦i≦N. 42. The device according to any one of items 39 to 41. [Item 43] Item 43. The apparatus of item 42, wherein the binary data includes multi-bit binary data corresponding to each of the components of the reconstructed 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the component of the preset threshold vector corresponding to that component. [Item 44] 44. The device according to any one of items 36 to 43, wherein at least one bit in the binary data further indicates the number of bits in the quantized data.
Claims
1. 1. A method for compressing a 3D map, the method comprising: obtaining a 3D map descriptor, wherein said 3D map descriptor corresponds to at least one 3D map point of the 3D map, said 3D map descriptor being a vector; performing binarization on the relationship between the 3D map descriptor and a predetermined arbitrary threshold vector to obtain binary data; and performing quantization on the difference between the 3D map descriptor and the threshold vector to obtain quantized data; A method comprising:
2. The method comprises: encapsulating the binary data and the quantized data to obtain a bitstream of the 3D map. The method of claim 1 further comprising:
3. The method comprises: receiving 3D map request information transmitted by an electronic device, and in response to the 3D map request information, transmitting the bitstream of the 3D map corresponding to the 3D map request information to the electronic device; or transmitting the bitstream of the 3D map to a server. The method of claim 2 further comprising:
4. The method according to any one of claims 1 to 3, wherein the relationship between the 3D map descriptor and the threshold vector comprises a magnitude relationship between each component of the 3D map descriptor and a corresponding component of the threshold vector.
5. 5. The method of claim 1, wherein the differences between the 3D map descriptor and the threshold vector comprise difference values between each component of the 3D map descriptor and the corresponding component of the threshold vector or absolute values of the difference values between them.
6. The method comprises: subtracting the corresponding component of the threshold vector from each component of the 3D map descriptor to obtain a difference value for each component; and determining the magnitude relationship based on the difference values of the components The method of claim 4 further comprising:
7. 7. The method according to claim 1, wherein at least one component of the threshold vector used for the quantization is any one of the corresponding components of the threshold vector used for the binarization.
8. 8. The method of claim 4, wherein one of the threshold vectors used for the binarization is a minimum threshold vector or a maximum threshold vector, each component of the minimum threshold vector being less than or equal to the minimum value of the value range of the corresponding component of the 3D map descriptor, and each component of the maximum threshold vector being greater than or equal to the maximum value of the value range of the corresponding component of the 3D map descriptor.
9. 9. The method of claim 4, wherein when the threshold vectors used for the binarization include N threshold vectors, components at the same position in the N threshold vectors sequentially increase or decrease, where N is an integer greater than 1; a sequential increase indicates that any component of an i-th threshold vector in the N threshold vectors is greater than or equal to the component at the same position in the (i-1)-th threshold vector, and a sequential decrease indicates that any component of the i-th threshold vector in the N threshold vectors is less than or equal to the component at the same position in the (i-1)-th threshold vector, where 2≦i≦N.
10. 10. The method of claim 9, wherein the binary data includes multi-bit binary data corresponding to each of the components of the 3D map descriptor, and the number of values 1 or 0 in the multi-bit binary data corresponding to any one of the components indicates the element of the threshold vector corresponding to that component.
11. 1. A method for decompressing a 3D map, the method comprising: obtaining compressed data of the 3D map, wherein the compressed data includes binary data obtained by performing binarization on a relationship between a 3D map descriptor and a predetermined arbitrary threshold vector, and quantized data obtained by performing quantization on a difference between the 3D map descriptor and the threshold vector, wherein the 3D map descriptor corresponds to at least one 3D map point of the 3D map, and the 3D map descriptor is a vector; and obtaining a reconstructed 3D map descriptor based on the binary data, the quantized data and the threshold vector; A method comprising:
12. obtaining a reconstructed 3D map descriptor based on the binary data, the quantized data, and the threshold vector, performing dequantization on the quantized data to obtain a difference between the reconstructed 3D map descriptor and the threshold vector; and obtaining the reconstructed 3D map descriptor based on the difference, the binary data, and the threshold vector, wherein the binary data indicates a relationship between the reconstructed 3D map descriptor and the threshold vector.
12. The method of claim 11, comprising:
13. 1. An apparatus for compressing a 3D map, the apparatus comprising: one or more processors; and A memory configured to store one or more programs that, when executed by said one or more processors, enable said one or more processors to perform the method of any one of claims 1 to 10. An apparatus comprising:
14. 1. An apparatus for decompressing a 3D map, the apparatus comprising: one or more processors; and A memory configured to store one or more programs that, when executed by the one or more processors, enable the one or more processors to perform the method according to claim 11 or 12. An apparatus comprising:
15. A computer program for causing a computer to carry out the method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Method and apparatus for transmitting and receiving map data
CN102168983A
Binarization processing method and system of three-dimensional image
CN107590814A
SLAM-based visual perception mapping algorithm and mobile robot
CN110706248A
Method and device for encoding or decoding three-dimensional data point set
CN111247798A
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112334949A