Three-dimensional data processing method and three-dimensional data processing device
By employing a three-dimensional data processing method that utilizes common encoding/decoding patterns for N-tree and octave-tree structures, the inefficiencies in existing three-dimensional data encoding are addressed, resulting in improved processing efficiency and reduced load.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- PANASONIC INTELLECTUAL PROPERTY CORP OF AMERICA
- Filing Date
- 2026-01-08
- Publication Date
- 2026-04-10
AI Technical Summary
Existing three-dimensional data encoding methods are inefficient, leading to high data volume and processing loads, particularly in the compression and transmission of point clouds.
A three-dimensional data processing method that generates an N-tree structure and encodes/decodes information using common encoding/decoding patterns for N-tree and octave-tree structures, reducing processing load by entropically encoding/decoding first and second information using shared patterns.
This approach enhances processing efficiency by reducing the processing load and improving encoding/decoding speed for three-dimensional data, particularly in point clouds.
Smart Images

Figure 2026062995000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a three-dimensional data processing method and a three-dimensional data processing apparatus.
Background Art
[0002] In the future, the spread of devices or services that utilize three-dimensional data is expected in a wide range of fields such as computer vision, map information, monitoring, infrastructure inspection, or video distribution for autonomous operation of automobiles or robots. Three-dimensional data is acquired by various methods such as a distance sensor such as a range finder, a stereo camera, or a combination of a plurality of monocular cameras.
[0003] As one method of representing three-dimensional data, there is a representation method called point cloud that represents the shape of a three-dimensional structure by a point group in a three-dimensional space. In a point cloud, the position and color of the point group are stored. Although the point cloud is expected to become mainstream as a method of representing three-dimensional data, the point group has a very large data volume. Therefore, in the accumulation or transmission of three-dimensional data, as with two-dimensional moving images (for example, MPEG-4 AVC or HEVC standardized by MPEG), compression of the data volume by encoding is essential.
[0004] Also, regarding the compression of point clouds, it is partially supported by a publicly available library (Point Cloud Library) that performs point cloud-related processing.
[0005] Also, a technique for searching and displaying facilities located around a vehicle using three-dimensional map data is known (see, for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0006]
Patent Document 1
Summary of the Invention
[0007] In the encoding process of three-dimensional data, it is desirable to be able to improve encoding efficiency.
[0008] This disclosure aims to provide a three-dimensional data processing method and a three-dimensional data processing device that can improve processing efficiency. [Means for solving the problem]
[0009] A three-dimensional data processing method according to one aspect of the present disclosure generates an N-tree structure of three-dimensional points where N is an integer of 2 or more, and generates information indicating whether or not the 8 bits corresponding to the nodes included in the N-tree structure include 4 or more bits corresponding to a fixed value.
[0010] A three-dimensional data processing method according to another aspect of the present disclosure obtains an N-tree structure of three-dimensional points where N is an integer of 2 or more, and obtains information indicating whether the 8 bits corresponding to the nodes included in the N-tree structure include 4 or more bits corresponding to fixed values.
[0011] A three-dimensional data encoding method according to one aspect of the present disclosure encodes a parameter, encodes a target node included in an N (where N is an integer of 2 or more) subtree structure of multiple three-dimensional points, and in encoding the target node, if the parameter represents first information, invalid bits are set from the 8 bits corresponding to the target node.
[0012] A three-dimensional data decoding method according to one aspect of this disclosure involves obtaining parameters, decoding target nodes included in an N (where N is an integer of 2 or more) subtree structure of multiple three-dimensional points, and in decoding the target nodes, if the parameters indicate first information, setting invalid bits from the 8 bits corresponding to the target node.
[0013] A three-dimensional data encoding method according to one aspect of the present disclosure encodes first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points in a first three-dimensional point cloud, or second information of a second target node included in an octave subtree structure of a plurality of second three-dimensional points in a second three-dimensional point cloud, wherein the encoding of the first information is performed using a first encoding pattern common to the second encoding pattern used in encoding the second information.
[0014] A three-dimensional data decoding method according to one aspect of the present disclosure decodes first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points in a first three-dimensional point cloud, or second information of a second target node included in an octave subtree structure of a plurality of second three-dimensional points in a second three-dimensional point cloud, wherein the first information is decoded using a first decoding pattern common to the second decoding pattern used for decoding the second information. [Effects of the Invention]
[0015] This disclosure provides a three-dimensional data processing method or a three-dimensional data processing device that can improve processing efficiency. [Brief explanation of the drawing]
[0016] [Figure 1] Figure 1 is a diagram showing the structure of encoded three-dimensional data according to Embodiment 1. [Figure 2] Figure 2 shows an example of a prediction structure between SPCs belonging to the lowest layer of GOS according to Embodiment 1. [Figure 3] Figure 3 shows an example of a prediction structure between layers according to Embodiment 1. [Figure 4] Figure 4 shows an example of the encoding order of GOS according to Embodiment 1. [Figure 5] Figure 5 shows an example of the encoding order of GOS according to Embodiment 1. [Figure 6] Figure 6 is a block diagram of a three-dimensional data encoding device according to Embodiment 1. [Figure 7]FIG. 7 is a flowchart of the encoding process according to Embodiment 1. [Figure 8] FIG. 8 is a block diagram of the three-dimensional data decoding device according to Embodiment 1. [Figure 9] FIG. 9 is a flowchart of the decoding process according to Embodiment 1. [Figure 10] FIG. 10 is a diagram showing an example of meta information according to Embodiment 1. [Figure 11] FIG. 11 is a diagram showing a configuration example of SWLD according to Embodiment 2. [Figure 12] FIG. 12 is a diagram showing an operation example of the server and the client according to Embodiment 2. [Figure 13] FIG. 13 is a diagram showing an operation example of the server and the client according to Embodiment 2. [Figure 14] FIG. 14 is a diagram showing an operation example of the server and the client according to Embodiment 2. [Figure 15] FIG. 15 is a diagram showing an operation example of the server and the client according to Embodiment 2. [Figure 16] FIG. 16 is a block diagram of the three-dimensional data encoding device according to Embodiment 2. [Figure 17] FIG. 17 is a flowchart of the encoding process according to Embodiment 2. [Figure 18] FIG. 18 is a block diagram of the three-dimensional data decoding device according to Embodiment 2. [Figure 19] FIG. 19 is a flowchart of the decoding process according to Embodiment 2. [Figure 20] FIG. 20 is a diagram showing a configuration example of WLD according to Embodiment 2. [Figure 21] FIG. 21 is a diagram showing an example of the octree structure of WLD according to Embodiment 2. [Figure 22] FIG. 22 is a diagram showing a configuration example of SWLD according to Embodiment 2. [Figure 23] FIG. 23 is a diagram showing an example of the octree structure of SWLD according to Embodiment 2. [Figure 24]Figure 24 is a schematic diagram showing the transmission and reception of three-dimensional data between vehicles according to Embodiment 3. [Figure 25] Figure 25 shows an example of three-dimensional data transmitted between vehicles according to Embodiment 3. [Figure 26] Figure 26 is a block diagram of a three-dimensional data creation device according to Embodiment 3. [Figure 27] Figure 27 is a flowchart of the three-dimensional data creation process according to Embodiment 3. [Figure 28] Figure 28 is a block diagram of a three-dimensional data transmission device according to Embodiment 3. [Figure 29] Figure 29 is a flowchart of the three-dimensional data transmission process according to Embodiment 3. [Figure 30] Figure 30 is a block diagram of a three-dimensional data creation device according to Embodiment 3. [Figure 31] Figure 31 is a flowchart of the three-dimensional data creation process according to Embodiment 3. [Figure 32] Figure 32 is a block diagram of a three-dimensional data transmission device according to Embodiment 3. [Figure 33] Figure 33 is a flowchart of the three-dimensional data transmission process according to Embodiment 3. [Figure 34] Figure 34 is a block diagram of a three-dimensional information processing device according to Embodiment 4. [Figure 35] Figure 35 is a flowchart of the three-dimensional information processing method according to Embodiment 4. [Figure 36] Figure 36 is a flowchart of the three-dimensional information processing method according to Embodiment 4. [Figure 37] Figure 37 is a diagram illustrating the transmission process of three-dimensional data according to Embodiment 5. [Figure 38] Figure 38 is a block diagram of a three-dimensional data creation device according to Embodiment 5. [Figure 39] Figure 39 is a flowchart of the three-dimensional data creation method according to Embodiment 5. [Figure 40]Figure 40 is a flowchart of the three-dimensional data creation method according to Embodiment 5. [Figure 41] Figure 41 is a flowchart of the display method according to Embodiment 6. [Figure 42] Figure 42 is a diagram showing an example of the surrounding environment as seen through the windshield according to Embodiment 6. [Figure 43] Figure 43 is a diagram showing an example of the display of the head-up display according to Embodiment 6. [Figure 44] Figure 44 shows an example of the display of the adjusted head-up display according to Embodiment 6. [Figure 45] Figure 45 is a diagram showing the configuration of the system according to Embodiment 7. [Figure 46] Figure 46 is a block diagram of the client device according to Embodiment 7. [Figure 47] Figure 47 is a block diagram of the server according to Embodiment 7. [Figure 48] Figure 48 is a flowchart of the three-dimensional data creation process by the client device according to Embodiment 7. [Figure 49] Figure 49 is a flowchart of the sensor information transmission process by the client device according to Embodiment 7. [Figure 50] Figure 50 is a flowchart of the three-dimensional data creation process performed by the server according to Embodiment 7. [Figure 51] Figure 51 is a flowchart of the three-dimensional map transmission process by the server according to Embodiment 7. [Figure 52] Figure 52 shows a modified configuration of the system according to Embodiment 7. [Figure 53] Figure 53 is a diagram showing the configuration of the server and client device according to Embodiment 7. [Figure 54] Figure 54 is a block diagram of a three-dimensional data encoding device according to Embodiment 8. [Figure 55] Figure 55 shows an example of the predicted residual according to Embodiment 8. [Figure 56]Figure 56 shows an example of a volume according to Embodiment 8. [Figure 57] Figure 57 shows an example of an octree representation of a volume according to Embodiment 8. [Figure 58] Figure 58 shows an example of a volume bit sequence according to Embodiment 8. [Figure 59] Figure 59 shows an example of an octree representation of a volume according to Embodiment 8. [Figure 60] Figure 60 shows an example of a volume according to Embodiment 8. [Figure 61] Figure 61 is a diagram illustrating the intra-prediction process according to Embodiment 8. [Figure 62] Figure 62 is a diagram illustrating the rotation and translation processing according to Embodiment 8. [Figure 63] Figure 63 shows an example of the syntax for the RT application flag and RT information according to Embodiment 8. [Figure 64] Figure 64 is a diagram illustrating the interpretation prediction process according to Embodiment 8. [Figure 65] Figure 65 is a block diagram of a three-dimensional data decoding device according to Embodiment 8. [Figure 66] Figure 66 is a flowchart of the three-dimensional data encoding process performed by the three-dimensional data encoding device according to Embodiment 8. [Figure 67] Figure 67 is a flowchart of the three-dimensional data decoding process by the three-dimensional data decoding device according to Embodiment 8. [Figure 68] Figure 68 shows an example of a wood structure according to Embodiment 9. [Figure 69] Figure 69 shows an example of an occupancy code according to Embodiment 9. [Figure 70] Figure 70 is a schematic diagram showing the operation of the three-dimensional data encoding device according to Embodiment 9. [Figure 71] Figure 71 is a diagram showing an example of geometric information according to Embodiment 9. [Figure 72]Figure 72 shows an example of selecting an encoding table using geometric information according to Embodiment 9. [Figure 73] Figure 73 shows an example of selecting an encoding table using structural information according to Embodiment 9. [Figure 74] Figure 74 shows an example of selecting an encoding table using attribute information according to Embodiment 9. [Figure 75] Figure 75 shows an example of selecting an encoding table using attribute information according to Embodiment 9. [Figure 76] Figure 76 shows an example of the bitstream configuration according to Embodiment 9. [Figure 77] Figure 77 shows an example of an encoding table according to Embodiment 9. [Figure 78] Figure 78 shows an example of an encoding table according to Embodiment 9. [Figure 79] Figure 79 shows an example of the bitstream configuration according to Embodiment 9. [Figure 80] Figure 80 shows an example of an encoding table according to Embodiment 9. [Figure 81] Figure 81 shows an example of an encoding table according to Embodiment 9. [Figure 82] Figure 82 shows an example of the bit number of an occupancy code according to Embodiment 9. [Figure 83] Figure 83 is a flowchart of the encoding process using geometric information according to Embodiment 9. [Figure 84] Figure 84 is a flowchart of the decoding process using geometric information according to Embodiment 9. [Figure 85] Figure 85 is a flowchart of the encoding process using structural information according to Embodiment 9. [Figure 86] Figure 86 is a flowchart of the decoding process using structural information according to Embodiment 9. [Figure 87] Figure 87 is a flowchart of the encoding process using attribute information according to Embodiment 9. [Figure 88] Figure 88 is a flowchart of the decoding process using attribute information according to Embodiment 9. [Figure 89] Figure 89 is a flowchart of the coding table selection process using geometric information according to Embodiment 9. [Figure 90] Figure 90 is a flowchart of the coding table selection process using structural information according to Embodiment 9. [Figure 91] Figure 91 is a flowchart of the coding table selection process using attribute information according to Embodiment 9. [Figure 92] Figure 92 is a block diagram of a three-dimensional data encoding device according to Embodiment 9. [Figure 93] Figure 93 is a block diagram of a three-dimensional data decoding device according to Embodiment 9. [Figure 94] Figure 94 is a diagram showing the reference relationships in an octave tree structure according to Embodiment 10. [Figure 95] Figure 95 is a diagram showing the reference relationship in the spatial domain according to Embodiment 10. [Figure 96] Figure 96 shows an example of an adjacent reference node according to Embodiment 10. [Figure 97] Figure 97 is a diagram showing the relationship between the parent node and the nodes according to Embodiment 10. [Figure 98] Figure 98 shows an example of the occupancy code of a parent node according to Embodiment 10. [Figure 99] Figure 99 is a block diagram of a three-dimensional data encoding device according to Embodiment 10. [Figure 100] Figure 100 is a block diagram of a three-dimensional data decoding device according to Embodiment 10. [Figure 101] Figure 101 is a flowchart of the three-dimensional data encoding process according to Embodiment 10. [Figure 102] Figure 102 is a flowchart of the three-dimensional data decoding process according to Embodiment 10. [Figure 103]Figure 103 shows an example of switching the encoding table according to Embodiment 10. [Figure 104] Figure 104 is a diagram showing the reference relationship in a spatial region according to Modification 1 of Embodiment 10. [Figure 105] Figure 105 shows an example of the syntax of header information according to Modification 1 of Embodiment 10. [Figure 106] Figure 106 shows an example of the syntax of header information according to Modification 1 of Embodiment 10. [Figure 107] Figure 107 shows an example of an adjacent reference node according to a modified example 2 of Embodiment 10. [Figure 108] Figure 108 shows an example of a target node and adjacent nodes according to a modified example 2 of Embodiment 10. [Figure 109] Figure 109 is a diagram showing the reference relationships in an octave tree structure according to a modified example 3 of Embodiment 10. [Figure 110] Figure 110 is a diagram showing the reference relationship in a spatial region according to a modified example 3 of Embodiment 10. [Figure 111] Figure 111 is a diagram illustrating the schematic of the three-dimensional data encoding method according to Embodiment 11. [Figure 112] Figure 112 is a diagram illustrating a conversion method according to Embodiment 11 that converts a tilted plane into an XY plane. [Figure 113] Figure 113 shows the relationship between a plane and the point cloud selected in each method according to Embodiment 11. [Figure 114] Figure 114 shows the frequency distribution of the quantized distance between a plane detected from a three-dimensional point cloud and the point cloud surrounding the plane (candidate plane point cloud) in the first method according to Embodiment 11. [Figure 115] Figure 115 shows the frequency distribution of quantized distances between a plane detected from a three-dimensional point cloud and the point cloud surrounding the plane in the second method according to Embodiment 11. [Figure 116]Figure 116 shows an example of dividing a two-dimensional space into four sub-spaces according to Embodiment 11. [Figure 117] Figure 117 shows an example of applying four subspaces in two-dimensional space to eight subspaces in three-dimensional space, according to Embodiment 11. [Figure 118] Figure 118 is a diagram showing the adjacency relationships of three-dimensional points in a first three-dimensional point cloud arranged on a plane, according to Embodiment 11. [Figure 119] Figure 119 is a diagram showing the adjacency relationships of three-dimensional points in a three-dimensional point cloud arranged in three-dimensional space, according to Embodiment 11. [Figure 120] Figure 120 is a block diagram showing the configuration of a three-dimensional data encoding device according to Embodiment 11. [Figure 121] Figure 121 is a block diagram showing the detailed configuration of the quadtree coding unit using the first method according to Embodiment 11. [Figure 122] Figure 122 is a block diagram showing the detailed configuration of the quadtree coding unit using the second method according to Embodiment 11. [Figure 123] Figure 123 is a block diagram showing the configuration of a three-dimensional data decoding device according to Embodiment 11. [Figure 124] Figure 124 is a block diagram showing the detailed configuration of the quadtree decoding unit using the first method according to Embodiment 11. [Figure 125] Figure 125 is a block diagram showing the detailed configuration of the quadtree decoding unit using the second method according to Embodiment 11. [Figure 126] Figure 126 is a flowchart of the three-dimensional data encoding method according to Embodiment 11. [Figure 127] Figure 127 is a flowchart of the three-dimensional data decoding method according to Embodiment 11. [Figure 128] Figure 128 is a flowchart of the quadtree coding process according to Embodiment 11. [Figure 129] Figure 129 is a flowchart of the octree coding process according to Embodiment 11. [Figure 130] Figure 130 is a flowchart of the quadtree decoding process according to Embodiment 11. [Figure 131] Figure 131 is a flowchart of the octave tree decoding process according to Embodiment 11. [Modes for carrying out the invention]
[0017] A three-dimensional data encoding method according to one aspect of the present disclosure encodes first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points in a first three-dimensional point cloud, or second information of a second target node included in an octave subtree structure of a plurality of second three-dimensional points in a second three-dimensional point cloud, wherein the encoding of the first information is performed using a first encoding pattern common to the second encoding pattern used in encoding the second information.
[0018] According to this, the three-dimensional data encoding method can reduce processing load by encoding information in an N-tree structure using an encoding pattern common to the encoding of information in an octave tree structure.
[0019] For example, the first coding pattern is a coding pattern for selecting a coding table to be used for coding the first information, and the second coding pattern is a coding pattern for selecting a coding table to be used for coding the second information. In the coding, the first coding pattern may be generated from the first adjacency information of a plurality of first adjacency nodes that are spatially adjacent to the first target node in a plurality of directions, and the second coding pattern may be generated from the second adjacency information of a plurality of second adjacency nodes that are spatially adjacent to the second target node in a plurality of directions.
[0020] For example, in generating the first coding pattern, the first coding pattern may be generated which includes a 6-bit third bit pattern comprising a first bit pattern consisting of one or more bits indicating one or more first adjacent nodes that are spatially adjacent to the first target node in a predetermined direction among a plurality of directions, each of which is not occupied by a point cloud, and a second bit pattern consisting of a plurality of bits indicating a plurality of second adjacent nodes that are spatially adjacent to the first target node in directions other than the predetermined direction among the plurality of directions. In generating the second coding pattern, the second coding pattern may be generated which includes a 6-bit fourth bit pattern consisting of a plurality of bits indicating a plurality of third adjacent nodes that are spatially adjacent to the second target node in the plurality of directions.
[0021] For example, in the encoding, a first encoding table may be selected based on the first encoding pattern, the first information may be entropically encoded using the selected first encoding table, a second encoding table may be selected based on the second encoding pattern, and the second information may be entropically encoded using the selected second encoding table.
[0022] For example, in the encoding, the first information indicating whether or not the first three-dimensional point is included in each of the N first subspaces obtained by dividing the first target node into N parts may be encoded to generate a bitstream that includes a third bit sequence consisting of 8 bits, which is composed of a first bit sequence consisting of N bits corresponding to the first information and an invalid second bit sequence consisting of (8-N) bits.
[0023] For example, a bitstream may be generated that includes identification information indicating whether the target of the encoding is the first information or the second information.
[0024] For example, the first three-dimensional point cloud may be a group of points arranged on a plane, and the second three-dimensional point cloud may be a group of points arranged around the plane.
[0025] A three-dimensional data decoding method according to one aspect of this disclosure involves first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points of a first three-dimensional point cloud, or a second three-dimensional data decoding method. The second information of the second target node, which is included in the octave tree structure of multiple second three-dimensional points in the dimensional point cloud, is decoded, and in the decoding, the first information is decoded using a first decoding pattern that is common to the second decoding pattern used for decoding the second information.
[0026] According to this, the three-dimensional data decoding method can reduce processing load by decoding information in an N-tree structure using a decoding pattern common to decoding information in an octave-tree structure.
[0027] For example, the first decoding pattern is a decoding pattern for selecting a decoding table to be used for decoding the first information, and the second decoding pattern is a decoding pattern for selecting a decoding table to be used for decoding the second information. In the decoding, the first decoding pattern may be generated from the first adjacency information of a plurality of first adjacency nodes that are spatially adjacent to the first target node in a plurality of directions, and the second decoding pattern may be generated from the second adjacency information of a plurality of second adjacency nodes that are spatially adjacent to the second target node in a plurality of directions.
[0028] For example, in generating the first decoding pattern, the first decoding pattern may be generated, which includes a 6-bit third bit pattern consisting of a first bit pattern consisting of one or more bits indicating one or more first adjacent nodes that are spatially adjacent to the first target node in a predetermined direction among a plurality of directions, each of which is not occupied by a point cloud, and a second bit pattern consisting of multiple bits indicating multiple second adjacent nodes that are spatially adjacent to the first target node in directions other than the predetermined direction among the plurality of directions. In generating the second decoding pattern, the second decoding pattern may be generated, which includes a 6-bit fourth bit pattern consisting of multiple bits indicating multiple third adjacent nodes that are spatially adjacent to the second target node in the plurality of directions.
[0029] For example, in the decoding process, a first decoding table may be selected based on the first decoding pattern, the first information may be entropically decoded using the selected first decoding table, a second decoding table may be selected based on the second decoding pattern, and the second information may be entropically decoded using the selected second decoding table.
[0030] For example, in the decoding, a bitstream is obtained that includes a third bit string consisting of 8 bits, which is composed of a first bit string consisting of N bits and an invalid second bit string consisting of (8-N) bits. From the first bit string of the bitstream, the first information indicating whether or not the first three-dimensional point is included in each of the N first subspaces obtained by dividing the first target node into N parts is also decoded.
[0031] For example, the bitstream includes identification information indicating whether the target of encoding is the first information or the second information, and in the decoding, if the identification information indicates that the first information, the first bit sequence of the bitstream may be decoded.
[0032] For example, the first three-dimensional point cloud may be a group of points arranged on a plane, and the second three-dimensional point cloud may be a group of points arranged around the plane.
[0033] Furthermore, a three-dimensional data encoding device according to one aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to encode first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points of a first three-dimensional point cloud, or second information of a second target node included in an octave subtree structure of a plurality of second three-dimensional points of a second three-dimensional point cloud, wherein the encoding of the first information is performed using a first encoding pattern common to the second encoding pattern used in encoding the second information.
[0034] According to this, the three-dimensional data encoding method can reduce processing load by encoding information in an N-tree structure using an encoding pattern common to the encoding of information in an octave tree structure.
[0035] A three-dimensional data decoding device according to one aspect of the present disclosure comprises a processor and a memory, wherein the processor uses the memory to decode first information of a first target node included in an N (where N is 2 or 4) subtree structure of a plurality of first three-dimensional points of a first three-dimensional point cloud, or second information of a second target node included in an octave subtree structure of a plurality of second three-dimensional points of a second three-dimensional point cloud, wherein the first information is decoded using a first decoding pattern common to a second decoding pattern used for decoding the second information.
[0036] According to this, the three-dimensional data decoding method can reduce processing load by decoding information in an N-tree structure using a decoding pattern common to decoding information in an octave-tree structure.
[0037] These comprehensive or specific embodiments may be implemented as a system, method, integrated circuit, computer program, or recording medium such as a computer-readable CD-ROM, or as any combination of a system, method, integrated circuit, computer program, and recording medium.
[0038] The embodiments will be described in detail below with reference to the drawings. Note that the embodiments described below are all specific examples of this disclosure. The numerical values, shapes, materials, components, arrangement and connection configurations of components, steps, and the order of steps shown in the following embodiments are examples only and are not intended to limit this disclosure. Furthermore, among the components in the following embodiments, those not described in the independent claim representing the highest-level concept will be described as optional components.
[0039] (Embodiment 1) First, the data structure of the encoded three-dimensional data (hereinafter also referred to as encoded data) according to this embodiment will be described. Figure 1 is a diagram showing the configuration of the encoded three-dimensional data according to this embodiment.
[0040] In this embodiment, the three-dimensional space is divided into spaces (SPCs) corresponding to pictures in video encoding, and three-dimensional data is encoded using these spaces as units. The spaces are further divided into volumes (VLMs) corresponding to macroblocks in video encoding, and prediction and transformation are performed using the VLMs as units. Each volume contains multiple voxels (VXLs), which are the smallest units to which position coordinates are associated. Prediction, similar to prediction performed on two-dimensional images, involves referencing other processing units to generate predicted three-dimensional data similar to the processing unit being processed, and then encoding the difference between this predicted three-dimensional data and the processing unit being processed. Furthermore, this prediction includes not only spatial prediction that references other prediction units at the same time, but also temporal prediction that references prediction units at different times.
[0041] For example, a three-dimensional data encoding device (hereinafter also referred to as the encoding device) encodes a three-dimensional space represented by point cloud data, such as a point cloud, by encoding each point in the point cloud, or multiple points contained within a voxel, depending on the size of the voxel. Subdividing the voxel allows for a highly accurate representation of the three-dimensional shape of the point cloud, while increasing the voxel size allows for a rougher representation of the three-dimensional shape of the point cloud.
[0042] In the following explanation, we will use the example of a point cloud as the 3D data, but the 3D data is not limited to a point cloud; any format of 3D data is acceptable.
[0043] Alternatively, a hierarchical structure of voxels may be used. In this case, for the nth-order hierarchy, it may be indicated sequentially whether or not sample points exist in the (n-1)th-order hierarchy and below (the lower layers of the nth-order hierarchy). For example, when decoding only the nth-order hierarchy, if sample points exist in the (n-1)th-order hierarchy and below, the sample points can be assumed to be at the center of the voxel of the nth-order hierarchy and decoded accordingly.
[0044] Furthermore, the encoding device acquires point cloud data using distance sensors, stereo cameras, monocular cameras, gyroscopes, or inertial sensors.
[0045] Spaces, like video encodings, are classified into at least three predictive structures, including intra-spaces (I-SPCs) that can be decoded independently, predictive spaces (P-SPCs) that allow only unidirectional referencing, and bidirectional spaces (B-SPCs) that allow bidirectional referencing. Furthermore, spaces contain two types of time information: the decoding time and the display time.
[0046] Furthermore, as shown in Figure 1, there is a processing unit called GOS (Group of Space), which is a random access unit, that contains multiple spaces. In addition, there is a processing unit called WLD (World), which contains multiple GOS.
[0047] The spatial area occupied by a world is associated with an absolute position on Earth using GPS or latitude and longitude information. This position information is stored as metadata. This metadata may be included in the encoded data or transmitted separately from the encoded data.
[0048] Furthermore, within a GOS, all SPCs may be adjacent in three dimensions, or there may be SPCs that are not adjacent in three dimensions to other SPCs.
[0049] In the following, the processing of three-dimensional data contained in processing units such as GOS, SPC, or VLM, including encoding, decoding, or referencing, will also be simply referred to as encoding, decoding, or referencing the processing unit. Furthermore, the three-dimensional data contained in the processing unit includes, for example, at least one pair of spatial position such as three-dimensional coordinates and characteristic values such as color information.
[0050] Next, we will explain the prediction structure of SPCs in GOS. Multiple SPCs within the same GOS, or multiple VLMs within the same SPC, occupy different spaces from each other, but they have the same time information (decoded time and display time).
[0051] Furthermore, the SPC that is first in the decryption order within a GOS is the I-SPC. There are also two types of GOSs: closed GOS and open GOS. A closed GOS is one in which all SPCs within the GOS can be decrypted when decryption starts from the first I-SPC. In an open GOS, some SPCs whose displayed time is earlier than the first I-SPC refer to a different GOS, and decryption cannot be performed using only that GOS.
[0052] Furthermore, with encoded data such as map information, the WLD may be decoded in the reverse direction of the encoding order, and if there are dependencies between GOSs, reverse playback becomes difficult. Therefore, in such cases, a closed GOS is generally used.
[0053] Furthermore, GOS has a layered structure in the height direction, and encoding or decoding is performed sequentially from the SPC of the lower layer.
[0054] Figure 2 shows an example of the prediction structure between SPCs belonging to the lowest layer of GOS. Figure 3 shows an example of the prediction structure between layers.
[0055] One or more I-SPCs exist within a GOS. While objects such as people, animals, cars, bicycles, traffic lights, or landmark buildings exist in three-dimensional space, it is particularly effective to encode small objects as I-SPCs. For example, a three-dimensional data decoding device (hereinafter also referred to as the decoding device) decodes only the I-SPCs within the GOS when decoding a GOS with low processing load or at high speed.
[0056] Furthermore, the encoding device may switch the encoding interval or frequency of I-SPCs according to the density of objects in the WLD.
[0057] Furthermore, in the configuration shown in Figure 3, the encoding or decoding device encodes or decodes multiple layers sequentially from the bottom layer (Layer 1). This allows for prioritizing data near the ground, which contains more information, for applications such as autonomous vehicles.
[0058] Furthermore, in the case of encoded data used in drones and the like, encoding or decoding may be done sequentially within the GOS, starting from the SPC layer at the top in the height direction.
[0059] Furthermore, the encoding or decoding device may encode or decode multiple layers so that the decoding device can grasp the GOS roughly and gradually increase the resolution. For example, the encoding or decoding device may encode or decode layers 3, 8, 1, 9, and so on.
[0060] Next, we will explain how to handle static and dynamic objects.
[0061] In three-dimensional space, there are static objects or scenes such as buildings or roads (hereinafter collectively referred to as static objects) and dynamic objects such as cars or people (hereinafter referred to as dynamic objects). Object detection is performed separately, for example, by extracting feature points from point cloud data or camera images such as stereo cameras. Here, we will explain an example of an encoding method for dynamic objects.
[0062] The first method is to encode static and dynamic objects without distinguishing between them. The second method is to distinguish between static and dynamic objects using identification information.
[0063] For example, GOS is used as the identification unit. In this case, GOS containing SPCs that constitute static objects and GOS containing SPCs that constitute dynamic objects are distinguished by identification information stored within the encoded data or separately from the encoded data.
[0064] Alternatively, an SPC may be used as the identification unit. In this case, an SPC containing a VLM that constitutes a static object and an SPC containing a VLM that constitutes a dynamic object are distinguished by the above identification information.
[0065] Alternatively, VLM or VXL may be used as the identification unit. In this case, VLM or VXL containing static objects and VLM or VXL containing dynamic objects are distinguished by the above identification information.
[0066] Furthermore, the encoding device may encode dynamic objects as one or more VLMs or SPCs, and encode the VLM or SPC containing static objects and the SPC containing dynamic objects as different GOSs. Also, if the size of the GOS is variable depending on the size of the dynamic objects, the encoding device stores the size of the GOS separately as metadata.
[0067] Furthermore, the encoding device may encode static objects and dynamic objects independently of each other and superimpose dynamic objects onto a world composed of static objects. In this case, a dynamic object is composed of one or more SPCs, and each SPC is associated with one or more SPCs that constitute the static object on which it is superimposed. Note that dynamic objects may be represented by one or more VLMs or VXLs instead of SPCs.
[0068] Furthermore, the encoding device may encode static objects and dynamic objects as separate streams.
[0069] Furthermore, the encoding device may generate a GOS containing one or more SPCs that constitute a dynamic object. In addition, the encoding device may set the GOS containing the dynamic object (GOS_M) and the GOS of the static object corresponding to the spatial region of GOS_M to be the same size (occupy the same spatial region). This allows superposition processing to be performed on a GOS-by-GOS basis.
[0070] The P-SPC or B-SPC that constitute a dynamic object may reference SPCs contained in different encoded GOS. In cases where the position of a dynamic object changes over time and the same dynamic object is encoded as a GOS at different times, cross-GOS references are effective from a compression standpoint.
[0071] Furthermore, the first and second methods described above may be switched depending on the intended use of the encoded data. For example, when using encoded three-dimensional data as a map, it is desirable to be able to separate dynamic objects, so the encoding device uses the second method. On the other hand, when encoding three-dimensional data of an event such as a concert or sporting event, if there is no need to separate dynamic objects, the encoding device uses the first method.
[0072] Furthermore, the decoding time and display time of GOS or SPC can be stored within the encoded data or as metadata. The time information for static objects may also be identical. In this case, the actual decoding time and display time may be determined by the decoding device. Alternatively, different values may be assigned to each GOS or SPC as the decoding time, while the same value may be assigned to all as the display time. Furthermore, a decoder model may be introduced, such as the HEVC HRD (Hypothetical Reference Decoder) in video encoding, which guarantees that decoding can be performed without failure if the decoder has a buffer of a predetermined size and reads the bitstream at a predetermined bitrate according to the decoding time.
[0073] Next, we will explain the arrangement of GOS within the world. The coordinates of the three-dimensional space in the world are represented by three mutually orthogonal coordinate axes (x-axis, y-axis, and z-axis). By establishing a predetermined rule for the coding order of GOS, coding can be performed so that spatially adjacent GOS are continuous within the coded data. For example, in the example shown in Figure 4, GOS in the xz plane are coded continuously. The value of the y-axis is updated after coding all GOS in a given xz plane is completed. That is, as coding progresses, the world expands in the y-axis direction. Also, the index numbers of the GOS are set in the coding order.
[0074] Here, the world's three-dimensional space is mapped one-to-one with geographical absolute coordinates such as GPS, latitude, and longitude. Alternatively, the three-dimensional space may be represented by relative positions from a pre-defined reference position. The directions of the x, y, and z axes of the three-dimensional space are represented as direction vectors determined based on latitude and longitude, and these direction vectors are stored as metadata along with encoded data.
[0075] Furthermore, the size of the GOS is fixed, and the encoding device stores this size as metadata. Alternatively, the size of the GOS may be switched depending on, for example, whether it is an urban area or not, or whether it is indoors or outdoors. In other words, the size of the GOS may be switched depending on the quantity or nature of objects that have informational value. Or, the encoding device may adaptively switch the size of the GOS or the spacing of I-SPCs within the GOS depending on the density of objects within the same world. For example, the encoding device may reduce the size of the GOS and shorten the spacing of I-SPCs within the GOS as the density of objects increases.
[0076] In the example in Figure 5, the GOS regions from the 3rd to the 10th are subdivided to enable fine-grained random access due to the high object density. Note that GOS regions 7 through 10 are located behind GOS regions 3 through 6, respectively.
[0077] Next, the configuration and operation flow of the three-dimensional data encoding device according to this embodiment will be described. Figure 6 is a block diagram of the three-dimensional data encoding device 100 according to this embodiment. Figure 7 is a flowchart showing an example of the operation of the three-dimensional data encoding device 100.
[0078] The three-dimensional data encoding device 100 shown in Figure 6 generates encoded three-dimensional data 112 by encoding three-dimensional data 111. This three-dimensional data encoding device 100 comprises an acquisition unit 101, an encoding region determination unit 102, a division unit 103, and an encoding unit 104.
[0079] As shown in Figure 7, first, the acquisition unit 101 acquires three-dimensional data 111, which is point cloud data (S101).
[0080] Next, the encoding region determination unit 102 determines the region to be encoded from among the spatial regions corresponding to the acquired point cloud data (S102). For example, the encoding region determination unit 102 determines the spatial region around the location of the user or vehicle as the region to be encoded.
[0081] Next, the division unit 103 divides the point cloud data included in the region to be encoded into processing units. Here, the processing units are the GOS and SPC mentioned above. The region to be encoded corresponds to, for example, the world mentioned above. Specifically, the division unit 103 divides the point cloud data into processing units based on a pre-set GOS size, or the presence or size of dynamic objects (S103). The division unit 103 also determines the starting position of the SPC that will be the first in the encoding order for each GOS.
[0082] Next, the encoding unit 104 generates encoded three-dimensional data 112 by sequentially encoding multiple SPCs within each GOS (S104).
[0083] Note that while this example shows the region to be encoded being divided into GOS and SPC before encoding each GOS, the processing procedure is not limited to the above. For example, one could determine the structure of one GOS, encode that GOS, and then determine the structure of the next GOS.
[0084] In this way, the three-dimensional data encoding device 100 generates encoded three-dimensional data 112 by encoding the three-dimensional data 111. Specifically, the three-dimensional data encoding device 100 divides the three-dimensional data into first processing units (GOS), which are random access units, each of which is associated with a three-dimensional coordinate. The first processing units (GOS) are then divided into a plurality of second processing units (SPCs), and the second processing units (SPCs) are then divided into a plurality of third processing units (VLMs). The third processing unit (VLM) also contains one or more voxels (VXLs), which are the smallest units to which positional information is associated.
[0085] Next, the three-dimensional data encoding device 100 generates encoded three-dimensional data 112 by encoding each of the multiple first processing units (GOS). Specifically, the three-dimensional data encoding device 100 encodes each of the multiple second processing units (SPC) in each first processing unit (GOS). Furthermore, the three-dimensional data encoding device 100 encodes each of the multiple third processing units (VLM) in each second processing unit (SPC).
[0086] For example, if the first processing unit (GOS) to be processed is a closed GOS, the three-dimensional data encoding device 100 encodes the second processing unit (SPC) included in the first processing unit (GOS) by referring to other second processing units (SPC) included in the first processing unit (GOS). In other words, the three-dimensional data encoding device 100 does not refer to second processing units (SPC) included in a first processing unit (GOS) different from the first processing unit (GOS) to be processed.
[0087] On the other hand, if the first processing unit (GOS) to be processed is an open GOS, the second processing unit (SPC) included in the first processing unit (GOS) to be processed is encoded by referring to another second processing unit (SPC) included in the first processing unit (GOS) to be processed, or to a second processing unit (SPC) included in a first processing unit (GOS) different from the first processing unit (GOS) to be processed.
[0088] Furthermore, the three-dimensional data encoding device 100 selects one of the following types of second processing units (SPCs) to be processed: a first type (I-SPC) that does not refer to any other second processing units (SPCs), a second type (P-SPC) that refers to one other second processing unit (SPC), and a third type that refers to two other second processing units (SPCs). The device then encodes the second processing unit (SPC) to be processed according to the selected type.
[0089] Next, the configuration and operation flow of the three-dimensional data decoding device according to this embodiment will be described. Figure 8 is a block diagram of the three-dimensional data decoding device 200 according to this embodiment. Figure 9 is a flowchart showing an example of the operation of the three-dimensional data decoding device 200.
[0090] The three-dimensional data decoding device 200 shown in Figure 8 generates decoded three-dimensional data 212 by decoding encoded three-dimensional data 211. Here, encoded three-dimensional data 211 is, for example, encoded three-dimensional data 112 generated by the three-dimensional data encoding device 100. This three-dimensional data decoding device 200 includes an acquisition unit 201, a decoding start GOS determination unit 202, a decoding SPC determination unit 203, and a decoding unit 204.
[0091] First, the acquisition unit 201 acquires encoded three-dimensional data 211 (S201). Next, the decoding start GOS determination unit 202 determines the GOS to be decoded (S202). Specifically, the decoding start GOS determination unit 202 refers to metadata stored in or separately from the encoded three-dimensional data 211 to determine the GOS to be decoded, which includes an SPC corresponding to the spatial position, object, or time to start decoding.
[0092] Next, the decryption SPC determination unit 203 determines the type of SPC (I, P, B) to be decrypted within the GOS (S203). For example, the decryption SPC determination unit 203 determines whether to (1) decrypt only I-SPCs, (2) decrypt I-SPCs and P-SPCs, or (3) decrypt all types. Note that if the type of SPC to be decrypted has been determined in advance, such as decrypting all SPCs, this step may not be performed.
[0093] Next, the decoding unit 204 obtains the address position where the SPC that is the first in the decoding order (same as the encoding order) within the GOS starts in the encoded three-dimensional data 211, and from that address position... The encoded data of the SPC is obtained, and each SPC is decoded sequentially starting from the first SPC (S204). The above address location is stored in metadata, etc.
[0094] In this way, the three-dimensional data decoding device 200 decodes the decoded three-dimensional data 212. Specifically, the three-dimensional data decoding device 200 generates decoded three-dimensional data 212 of the first processing unit (GOS) by decoding each of the encoded three-dimensional data 211 of the first processing unit (GOS), which is a random access unit, and each of which is associated with three-dimensional coordinates. More specifically, the three-dimensional data decoding device 200 decodes each of the multiple second processing units (SPC) in each first processing unit (GOS). Furthermore, the three-dimensional data decoding device 200 decodes each of the multiple third processing units (VLM) in each second processing unit (SPC).
[0095] The metadata for random access is described below. This metadata is generated by the three-dimensional data encoding device 100 and is included in the encoded three-dimensional data 112(211).
[0096] In conventional random access to two-dimensional moving images, decoding began from the first frame of a random access unit that was near the specified time. In contrast, in the world, random access is expected not only to time but also to space (coordinates or objects, etc.).
[0097] Therefore, in order to achieve random access to at least three elements—coordinates, objects, and time—a table is prepared that associates each element with the GOS index number. Furthermore, the GOS index number is associated with the address of the I-SPC that is the starting point of the GOS. Figure 10 shows an example of a table included in the metadata. Note that it is not necessary to use all the tables shown in Figure 10; it is sufficient to use at least one table.
[0098] The following describes random access starting from coordinates as an example. When accessing coordinates (x2, y2, z2), first, the coordinate-GOS table is consulted to find that the location with coordinates (x2, y2, z2) is included in the second GOS. Next, the GOS address table is consulted to find that the address of the first I-SPC in the second GOS is addr(2). Therefore, the decoding unit 204 retrieves data from this address and begins decoding.
[0099] The address may be a logical format address or a physical address of the HDD or memory. Alternatively, information identifying a file segment may be used instead of an address. For example, a file segment is a unit formed by segmenting one or more GOSs (Global Operating Systems).
[0100] Furthermore, if an object spans multiple GOSs, the object-GOS table may indicate multiple GOSs to which the object belongs. If these multiple GOSs are closed GOSs, the encoding and decoding devices can perform encoding or decoding in parallel. On the other hand, if these multiple GOSs are open GOSs, the compression efficiency can be further improved by allowing the multiple GOSs to reference each other.
[0101] Examples of objects include people, animals, cars, bicycles, traffic lights, or landmark buildings. For example, the three-dimensional data encoding device 100 can extract feature points specific to objects from a three-dimensional point cloud or the like when encoding a world, detect objects based on these feature points, and set the detected objects as random access points.
[0102] Thus, the three-dimensional data encoding device 100 generates first information indicating a plurality of first processing units (GOS) and the three-dimensional coordinates associated with each of the plurality of first processing units (GOS). The encoded three-dimensional data 112(211) also includes this first information. Furthermore, the first information indicates at least one of the following: an object, a time, and a data storage location, associated with each of the plurality of first processing units (GOS).
[0103] The three-dimensional data decoding device 200 acquires first information from the encoded three-dimensional data 211, uses the first information to identify the encoded three-dimensional data 211 of the first processing unit corresponding to the specified three-dimensional coordinates, object, or time, and decodes the encoded three-dimensional data 211.
[0104] The following describes examples of other metadata. In addition to metadata for random access, the three-dimensional data encoding device 100 may generate and store the following metadata. The three-dimensional data decoding device 200 may also use this metadata during decoding.
[0105] When using three-dimensional data as map information, profiles may be defined according to the intended use, and information indicating the profile may be included in the metadata. For example, profiles may be defined for urban areas, suburbs, or for flying objects, and the maximum or minimum size of the world, SPC, or VLM may be defined for each. For example, for urban areas, more detailed information is required than for suburbs, so the minimum size of the VLM is set to be smaller.
[0106] Metadata may include tag values indicating the object type. These tag values are associated with the VLM, SPC, or GOS that constitute the object. For example, tag value "0" may indicate "person," tag value "1" may indicate "car," tag value "2" may indicate "traffic light," and so on, with different tag values assigned to each object type. Alternatively, if it is difficult or unnecessary to determine the object type, tag values indicating properties such as size or whether it is a dynamic or static object may be used.
[0107] Furthermore, the metadata may include information indicating the extent of the spatial region occupied by the world.
[0108] Furthermore, the metadata may include the size of the SPC or VXL as header information common to multiple SPCs, such as the entire stream of encoded data or an SPC within a GOS.
[0109] Furthermore, the metadata may include identification information for distance sensors or cameras used to generate the point cloud, or information indicating the positional accuracy of the point cloud within the point cloud.
[0110] Furthermore, the metadata may include information indicating whether the world consists solely of static objects or includes dynamic objects.
[0111] Modifications of this embodiment will be described below.
[0112] The encoding or decoding device may encode or decode two or more different SPCs or GOSs in parallel. The GOSs to be encoded or decoded in parallel can be determined based on metadata indicating the spatial location of the GOS.
[0113] In cases where three-dimensional data is used as a spatial map when a vehicle or flying object moves, or when such a spatial map is generated, the encoding or decoding device may encode or decode the GOS or SPC contained in the space identified based on GPS, route information, or zoom magnification.
[0114] Furthermore, the decoding device may perform decoding starting from the space closest to its own position or travel path. The encoding or decoding device may encode or decode spaces farther from its own position or travel path with lower priority compared to spaces closer to it. Here, lowering priority means lowering the processing order, lowering the resolution (downsampling), or lowering the image quality (increasing encoding efficiency, for example, by increasing the quantization step).
[0115] Furthermore, when a decoding device decodes encoded data that is hierarchically encoded in space, it may decode only the lower layers.
[0116] Furthermore, the decoding device may prioritize decoding from lower layers depending on the map's zoom level or intended use.
[0117] Furthermore, for applications such as self-localization or object recognition during autonomous driving of vehicles or robots, the encoding or decoding device may reduce the resolution of the area outside of the area to be recognized (the area within a specific height from the road surface) when encoding or decoding.
[0118] Furthermore, the encoding device may encode the point clouds representing the spatial shapes of the indoor and outdoor areas separately. For example, by separating the GOS representing the indoor area (indoor GOS) and the GOS representing the outdoor area (outdoor GOS), the decoding device can select the GOS to decode according to the viewpoint position when using the encoded data.
[0119] Furthermore, the encoding device may encode indoor and outdoor GOS locations with similar coordinates so that they are adjacent within the encoding stream. For example, the encoding device associates the identifiers of both locations and stores information indicating the associated identifiers within the encoding stream or in separately stored metadata. This allows the decoding device to identify indoor and outdoor GOS locations with similar coordinates by referring to the information in the metadata.
[0120] Furthermore, the encoding device may switch the size of the GOS or SPC between indoor and outdoor GOS. For example, the encoding device may set the GOS size smaller indoors than outdoors. The encoding device may also change the accuracy of extracting feature points from the point cloud or the accuracy of object detection between indoor and outdoor GOS.
[0121] Furthermore, the encoding device may add information to the encoded data that allows the decoding device to distinguish and display dynamic objects from static objects. This allows the decoding device to display dynamic objects together with a red frame or explanatory text. Alternatively, the decoding device may display only the red frame or explanatory text instead of the dynamic object. The decoding device may also display more detailed object types. For example, a red frame may be used for cars and a yellow frame for people.
[0122] Furthermore, the encoding or decoding device may decide whether to encode or decode dynamic objects and static objects as different SPCs or GOSs depending on the frequency of occurrence of dynamic objects or the ratio of static objects to dynamic objects. For example, if the frequency or ratio of occurrence of dynamic objects exceeds a threshold, an SPC or GOS containing a mixture of dynamic and static objects is permitted, while if the frequency or ratio of occurrence of dynamic objects does not exceed a threshold, an SPC or GOS containing a mixture of dynamic and static objects is not permitted.
[0123] When detecting dynamic objects from two-dimensional image information of a camera rather than a point cloud, the encoding device may separately acquire information to identify the detection result (such as a frame or text) and the object position, and encode this information as part of the three-dimensional encoded data. In this case, the decoding device may encode the dynamic object into the decoding result of the static object. Auxiliary information (frame or text) indicating this is displayed overlaid.
[0124] Furthermore, the encoding device may change the density of VXL or VLM in the SPC depending on the complexity of the shape of the static object. For example, the encoding device may set the VXL or VLM density to be denser as the shape of the static object becomes more complex. In addition, the encoding device may determine the quantization step when quantizing spatial position or color information according to the density of VXL or VLM. For example, the encoding device may set the quantization step to be smaller as the VXL or VLM density increases.
[0125] As described above, the encoding or decoding device according to this embodiment performs spatial encoding or decoding on a spatial basis that has coordinate information.
[0126] Furthermore, the encoding and decoding devices perform encoding or decoding in volume units within the space. A volume includes a voxel, which is the smallest unit to which location information is associated.
[0127] Furthermore, the encoding and decoding devices encode or decode arbitrary elements by associating each element of spatial information, including coordinates, objects, and time, with the GOP, or by associating each element with another element using a table. The decoding device determines the coordinates using the values of the selected elements, identifies a volume, voxel, or space from the coordinates, and decodes the space containing the volume or voxel, or the identified space.
[0128] Furthermore, the encoding device determines selectable volumes, voxels, or spaces based on the elements through feature point extraction or object recognition, and encodes them as randomly accessible volumes, voxels, or spaces.
[0129] Spaces are classified into three types: I-SPCs, which can be encoded or decoded on their own; P-SPCs, which are encoded or decoded by referencing any one processed space; and B-SPCs, which are encoded or decoded by referencing any two processed spaces.
[0130] One or more volumes correspond to static or dynamic objects. Spaces containing static objects and spaces containing dynamic objects are encoded or decoded as different GOSs. In other words, SPCs containing static objects and SPCs containing dynamic objects are assigned to different GOSs.
[0131] Dynamic objects are encoded or decoded individually and mapped to one or more spaces containing static objects. In other words, multiple dynamic objects are encoded individually, and the resulting encoded data of multiple dynamic objects is mapped to an SPC containing static objects.
[0132] The encoding and decoding devices prioritize the I-SPCs within the GOS when encoding or decoding. For example, the encoding device encodes in a way that minimizes I-SPC degradation (so that the original 3D data is reproduced more faithfully after decoding). The decoding device, on the other hand, decodes only the I-SPCs.
[0133] The encoding device may perform encoding by changing the frequency of using I-SPC depending on the density or number (quantity) of objects in the world. In other words, the encoding device changes the frequency of selecting I-SPC depending on the number or density of objects included in the three-dimensional data. For example, the encoding device will increase the frequency of using I-space as the density of objects in the world increases.
[0134] Furthermore, the encoding device sets random access points in GOS units and stores information indicating the spatial region corresponding to each GOS in the header information.
[0135] The encoding device uses a default value as the spatial size of the GOS. However, the encoding device may change the size of the GOS depending on the number (quantity) or density of objects or dynamic objects. For example, the encoding device will reduce the spatial size of the GOS as the density or number of objects or dynamic objects increases.
[0136] Furthermore, the space or volume includes a set of feature points derived using information obtained from sensors such as depth sensors, gyroscopes, or cameras. The coordinates of the feature points are set to the center position of the voxel. In addition, the accuracy of the positional information can be improved by subdividing the voxels.
[0137] The feature point cloud is derived using multiple pictures. Each of the multiple pictures has at least two types of time information: actual time information and the same time information across multiple pictures mapped to space (for example, the encoded time used for rate control, etc.).
[0138] Furthermore, encoding or decoding is performed in GOS units that contain one or more spaces.
[0139] The encoding and decoding devices refer to the spaces within the processed GOS to predict the P-space or B-space within the GOS to be processed.
[0140] Alternatively, the encoding and decoding devices do not refer to different GOSs, but instead use the processed space within the GOS to be processed to predict the P-space or B-space within the GOS to be processed.
[0141] Furthermore, the encoding and decoding devices transmit or receive encoded streams in world units containing one or more GOSs.
[0142] Furthermore, the GOS has a layered structure in at least one direction within the world, and the encoding and decoding devices encode or decode from the lower layers. For example, a randomly accessible GOS belongs to the lowest layer. A GOS belonging to a higher layer refers to a GOS belonging to the same layer or lower. In other words, the GOS is spatially divided in a predetermined direction, and each contains multiple layers, each containing one or more SPCs. The encoding and decoding devices encode or decode each SPC by referring to an SPC included in the same layer as that SPC or in a lower layer than that SPC.
[0143] Furthermore, the encoding and decoding devices sequentially encode or decode GOS within a world unit containing multiple GOS. The encoding and decoding devices write or read information indicating the encoding or decoding order (direction) as metadata. In other words, the encoded data includes information indicating the encoding order of multiple GOS.
[0144] Furthermore, the encoding device and the decoding device encode or decode two or more different spaces or GOS in parallel.
[0145] Furthermore, the encoding and decoding devices encode or decode spatial information (coordinates, size, etc.) of space or GOS.
[0146] Furthermore, the encoding and decoding devices encode or decode spaces or GOS contained within a specific space identified based on external information relating to their own position and / or area size, such as GPS, route information, or magnification.
[0147] The encoding or decoding device encodes or decodes spaces farther away from its own position with lower priority compared to spaces closer to it.
[0148] The encoding device sets one direction in the world according to the magnification or application, and encodes a GOS with a layered structure in that direction. The decoding device then decodes the GOS with a layered structure in the one direction in the world set according to the magnification or application, prioritizing from the lower layers.
[0149] The encoding device changes the accuracy of feature point extraction, object recognition, or spatial domain size between indoor and outdoor spaces. However, the encoding and decoding devices encode or decode indoor and outdoor GOS (Geoscopy) points that are close in coordinates adjacent to each other within the world, and encode or decode their identifiers in association with each other.
[0150] (Embodiment 2) When using encoded point cloud data in actual devices or services, it is desirable to send and receive necessary information depending on the application in order to reduce network bandwidth. However, until now, such functionality has not existed in the encoded structure of three-dimensional data, nor has there been an encoding method for that purpose.
[0151] This embodiment describes a three-dimensional data encoding method and a three-dimensional data encoding device for providing a function to transmit and receive only the necessary information according to the application in encoded data of a three-dimensional point cloud, as well as a three-dimensional decoding method and a three-dimensional data device for decoding said encoded data.
[0152] A voxel (VXL) with a certain number of features is defined as a feature voxel (FVXL), and a world (WLD) composed of FVXLs is defined as a sparse world (SWLD). Figure 11 shows examples of the configuration of sparse worlds and worlds. SWLDs include FGOS, which is a GOS composed of FVXLs; FSPC, which is a SPC composed of FVXLs; and FVLM, which is a VLM composed of FVXLs. The data structure and prediction structure of FGOS, FSPC, and FVLM may be the same as those of GOS, SPS, and VLM.
[0153] A feature is a feature that represents the three-dimensional position information of a VXL, or the visible light information of the VXL's position, and is particularly frequently detected at corners and edges of three-dimensional objects. Specifically, this feature is a three-dimensional feature or a visible light feature as shown below, but any other feature that represents the position, brightness, or color information of the VXL is acceptable.
[0154] Three-dimensional features include SHOT features (Signature of Histograms of OrienTations) and PFH features (Point Features). Histograms or PPF features (Point Pair Features) are used.
[0155] SHOT features are obtained by dividing the area around VXL, calculating the dot product of the reference point and the normal vector of the divided region, and then generating a histogram. These SHOT features have the characteristics of high dimensionality and high feature representation power.
[0156] PFH features are obtained by selecting a large number of pairs of points in the vicinity of the VXL, calculating normal vectors and other parameters from these two points, and then creating a histogram. Because these PFH features are histogram features, they are robust to some disturbances and have high feature representation power.
[0157] PPF features are features calculated using normal vectors and other methods for every two VXLs. Because all VXLs are used in these PPF features, they are robust to occlusion.
[0158] Furthermore, as visible light features, SIFT (Scale-Invariant Feature Transform), SURF (Speeded Up Robust Features), or HOG (Histogram) are used, utilizing information such as the brightness gradient of the image. (of Oriented Gradients), etc., can be used.
[0159] SWLD is generated by calculating the above features from each VXL of WLD and extracting FVXL. Here, SWLD can be updated every time WLD is updated, or it can be updated periodically after a certain period of time regardless of when WLD is updated.
[0160] SWLDs can be generated for each feature. For example, separate SWLDs can be generated for each feature, such as SWLD1 based on SHOT features and SWLD2 based on SIFT features, and the appropriate SWLD can be used depending on the application. Alternatively, the features of each calculated FVXL can be stored as feature information within each FVXL.
[0161] Next, we will explain how to use sparse worlds (SWLDs). Because SWLDs contain only feature voxels (FVXLs), they generally have a smaller data size compared to WLDs, which contain all VXLs.
[0162] In applications that utilize features to achieve a specific objective, using SWLD information instead of WLD information can reduce read time from the hard disk, as well as bandwidth and transfer time during network transmission. For example, by storing both WLD and SWLD as map information on a server and switching the map information transmitted to WLD or SWLD according to client requests, network bandwidth and transfer time can be reduced. A specific example is shown below.
[0163] Figures 12 and 13 illustrate examples of SWLD and WLD usage. As shown in Figure 12, when client 1, an in-vehicle device, requires map information for self-position determination, client 1 sends a request to the server to acquire map data for self-position estimation (S301). The server sends an SWLD to client 1 in response to the acquisition request (S302). Client 1 uses the received SWLD to determine its own position (S303). At this time, client 1 acquires VXL information around client 1 using various methods such as distance sensors like rangefinders, stereo cameras, or combinations of multiple monocular cameras, and estimates its own position information from the obtained VXL information and the SWLD. Here, the self-position information includes the three-dimensional position information and orientation of client 1.
[0164] As shown in Figure 13, when client 2, an in-vehicle device, needs map information for purposes such as drawing three-dimensional maps, client 2 sends a request to the server to acquire map data for map drawing (S311). The server sends a WLD to client 2 in response to the acquisition request (S312). Client 2 uses the received WLD to perform map drawing (S313). In this case, client 2 creates a rendered image using, for example, an image taken by itself with a visible light camera and the WLD acquired from the server, and then draws the created image on the screen of a car navigation system or the like.
[0165] As described above, the server sends SWLDs to the client when primarily needing individual VXL features, such as for self-localization, and sends WLDs to the client when detailed VXL information is required, such as for map plotting. This enables efficient transmission and reception of map data.
[0166] Furthermore, the client may decide for itself whether it needs an SWLD or a WLD and request the server to send either one. The server may also decide whether to send an SWLD or a WLD based on the client or network conditions.
[0167] Next, we will explain how to switch between sending and receiving data in Sparse World (SWLD) and World (WLD) modes.
[0168] The system may switch between receiving WLD or SWLD depending on the network bandwidth. Figure 14 shows an example of this operation. For example, LTE (Long Term In environments such as Evolution, where the available network bandwidth is limited, if a low-speed network is used, the client accesses the server via the low-speed network (S321) and obtains the SWLD as map information from the server (S322). On the other hand, if a high-speed network with ample network bandwidth is used, such as in a Wi-Fi (registered trademark) environment, the client accesses the server via the high-speed network (S323) and obtains the WLD from the server (S324). This allows the client to obtain appropriate map information according to the client's network bandwidth.
[0169] Specifically, the client receives the SWLD via LTE outdoors and acquires the WLD via Wi-Fi (registered trademark) when it enters an indoor facility. This allows the client to obtain more detailed indoor map information.
[0170] Thus, a client may request a WLD or SWLD from the server depending on the bandwidth of the network it is using. Alternatively, the client may send information indicating the bandwidth of the network it is using to the server, and the server may send data (WLD or SWLD) appropriate for that client based on that information. Alternatively, the server may determine the client's network bandwidth and send data (WLD or SWLD) appropriate for that client.
[0171] Furthermore, the system may switch between receiving a WLD or SWLD depending on the travel speed. Figure 15 shows an example of this operation. For example, when the client is traveling at high speed (S331), the client receives an SWLD from the server (S332). On the other hand, when the client is traveling at low speed (S333), the client receives a WLD from the server (S334). This allows the client to acquire map information appropriate to its speed while suppressing network bandwidth. Specifically, when the client is traveling on a highway, it can receive a SWLD with a small amount of data, allowing it to update rough map information at an appropriate speed. On the other hand, when the client is traveling on a general road, it can receive a WLD, allowing it to acquire more detailed map information.
[0172] Thus, the client may request a WLD or SWLD from the server according to its own movement speed. Alternatively, the client may send information indicating its movement speed to the server, and the server may send data (WLD or SWLD) appropriate to the client according to that information. Alternatively, the server may determine the client's movement speed and send data (WLD or SWLD) appropriate to the client.
[0173] Furthermore, the client may first obtain the SWLD from the server and then obtain the WLD for important areas within it. For example, when acquiring map data, the client may first obtain rough map information using the SWLD, and then extract many features such as buildings, signs, or people from there. The system narrows down the areas where data may appear and then retrieves the World Data List (WLD) for those areas later. This allows the client to obtain detailed information about the necessary areas while suppressing the amount of data received from the server.
[0174] Alternatively, the server may create separate SWLDs for each object from the WLD, and the client may receive them according to its purpose. This can reduce network bandwidth usage. For example, the server may recognize people or cars in advance from the WLD and create SWLDs for people and cars. The client receives the SWLD for people if it wants to obtain information about people in the vicinity, or the SWLD for cars if it wants to obtain information about cars. Furthermore, the types of SWLDs may be distinguished by information (flags or types, etc.) added to the header.
[0175] Next, the configuration and operation flow of the three-dimensional data encoding device (e.g., a server) according to this embodiment will be described. Figure 16 is a block diagram of the three-dimensional data encoding device 400 according to this embodiment. Figure 17 is a flowchart of the three-dimensional data encoding process by the three-dimensional data encoding device 400.
[0176] The three-dimensional data encoding device 400 shown in Figure 16 generates encoded streams, encoded three-dimensional data 413 and 414, by encoding the input three-dimensional data 411. Here, encoded three-dimensional data 413 is encoded three-dimensional data corresponding to WLD, and encoded three-dimensional data 414 is encoded three-dimensional data corresponding to SWLD. This three-dimensional data encoding device 400 comprises an acquisition unit 401, an encoding region determination unit 402, an SWLD extraction unit 403, a WLD encoding unit 404, and an SWLD encoding unit 405.
[0177] As shown in Figure 17, first, the acquisition unit 401 acquires input three-dimensional data 411, which is point cloud data in three-dimensional space (S401).
[0178] Next, the encoding region determination unit 402 determines the spatial region to be encoded based on the spatial region where the point cloud data exists (S402).
[0179] Next, the SWLD extraction unit 403 defines the spatial region to be encoded as a WLD and calculates features from each VXL contained in the WLD. Then, the SWLD extraction unit 403 extracts VXLs whose features are equal to or greater than a predetermined threshold, defines the extracted VXLs as FVXLs, and adds these FVXLs to the SWLD to generate extracted three-dimensional data 412 (S403). In other words, extracted three-dimensional data 412 with features equal to or greater than the threshold is extracted from the input three-dimensional data 411.
[0180] Next, the WLD encoding unit 404 generates encoded three-dimensional data 413 corresponding to the WLD by encoding the input three-dimensional data 411 corresponding to the WLD (S404). At this time, the WLD encoding unit 404 adds information to the header of the encoded three-dimensional data 413 to distinguish that the encoded three-dimensional data 413 is a stream containing a WLD.
[0181] Furthermore, the SWLD encoding unit 405 generates encoded three-dimensional data 414 corresponding to the SWLD by encoding the extracted three-dimensional data 412 corresponding to the SWLD (S405). At this time, the SWLD encoding unit 405 adds information to the header of the encoded three-dimensional data 414 to distinguish that the encoded three-dimensional data 414 is a stream containing an SWLD.
[0182] Note that the processing order of generating encoded 3D data 413 and the processing order of generating encoded 3D data 414 may be reversed from the above. Also, some or all of these processes may be performed in parallel. It's okay if it breaks.
[0183] A parameter called "world_type" is defined as information to be added to the headers of the encoded three-dimensional data 413 and 414. If world_type=0, it indicates that the stream contains a WLD, and if world_type=1, it indicates that the stream contains an SWLD. If many other types are to be defined, the assigned number can be increased, such as world_type=2. In addition, one of the encoded three-dimensional data 413 or 414 may contain a specific flag. For example, the encoded three-dimensional data 414 may have a flag indicating that the stream contains an SWLD. In this case, the decoder can determine whether the stream contains a WLD or an SWLD based on the presence or absence of the flag.
[0184] Furthermore, the encoding method used by the WLD encoding unit 404 when encoding the WLD and the encoding method used by the SWLD encoding unit 405 when encoding the SWLD may be different.
[0185] For example, because SWLD thins out the data, it may have lower correlation with surrounding data compared to WLD. Therefore, in the encoding method used for SWLD, interpretation may be preferred over intraprediction over interprediction.
[0186] Furthermore, the encoding method used for SWLD and the encoding method used for WLD may differ in their representation of three-dimensional positions. For example, SWLD may represent the three-dimensional position of SVXL using three-dimensional coordinates, while WLD may represent the three-dimensional position using an octree, as described later, or vice versa.
[0187] Furthermore, the SWLD encoding unit 405 encodes the data such that the data size of the SWLD encoded three-dimensional data 414 is smaller than the data size of the WLD encoded three-dimensional data 413. For example, as mentioned above, SWLD may have lower correlation between data compared to WLD. This can reduce encoding efficiency, potentially causing the data size of the encoded three-dimensional data 414 to be larger than the data size of the WLD encoded three-dimensional data 413. Therefore, if the obtained encoded three-dimensional data 414 is larger than the data size of the WLD encoded three-dimensional data 413, the SWLD encoding unit 405 regenerates the encoded three-dimensional data 414 with a reduced data size by re-encoding.
[0188] For example, the SWLD extraction unit 403 regenerates the extracted three-dimensional data 412 with a reduced number of feature points, and the SWLD encoding unit 405 encodes the extracted three-dimensional data 412. Alternatively, the degree of quantization in the SWLD encoding unit 405 may be made coarser. For example, in the octree structure described later, the degree of quantization can be made coarser by rounding the data at the lowest layer.
[0189] Furthermore, if the SWLD encoding unit 405 cannot make the data size of the SWLD encoded three-dimensional data 414 smaller than the data size of the WLD encoded three-dimensional data 413, it does not need to generate the SWLD encoded three-dimensional data 414. Alternatively, the WLD encoded three-dimensional data 413 may be copied to the SWLD encoded three-dimensional data 414. In other words, the WLD encoded three-dimensional data 413 may be used as the SWLD encoded three-dimensional data 414.
[0190] Next, the configuration and operation flow of the three-dimensional data decoding device (e.g., client) according to this embodiment will be described. Figure 18 is a block diagram of the three-dimensional data decoding device 500 according to this embodiment. Figure 19 shows the flow of the three-dimensional data decoding process by the three-dimensional data decoding device 500. This is a low-level chart.
[0191] The three-dimensional data decoding device 500 shown in Figure 18 generates decoded three-dimensional data 512 or 513 by decoding encoded three-dimensional data 511. Here, encoded three-dimensional data 511 is, for example, encoded three-dimensional data 413 or 414 generated by the three-dimensional data encoding device 400.
[0192] This three-dimensional data decoding device 500 comprises an acquisition unit 501, a header analysis unit 502, a WLD decoding unit 503, and a SWLD decoding unit 504.
[0193] As shown in Figure 19, first, the acquisition unit 501 acquires the encoded three-dimensional data 511 (S501). Next, the header analysis unit 502 analyzes the header of the encoded three-dimensional data 511 and determines whether the encoded three-dimensional data 511 is a stream containing a WLD or a stream containing an SWLD (S502). For example, the world_type parameter mentioned above is referenced to make this determination.
[0194] If the encoded three-dimensional data 511 is a stream containing a WLD (Yes in S503), the WLD decoding unit 503 generates decoded three-dimensional data 512 of the WLD by decoding the encoded three-dimensional data 511 (S504). On the other hand, if the encoded three-dimensional data 511 is a stream containing a SWLD (No in S503), the SWLD decoding unit 504 generates decoded three-dimensional data 513 of the SWLD by decoding the encoded three-dimensional data 511 (S505).
[0195] Furthermore, similar to the encoding device, the decoding method used by the WLD decoding unit 503 when decoding a WLD may be different from the decoding method used by the SWLD decoding unit 504 when decoding an SWLD. For example, in the decoding method used for an SWLD, the inter-prediction method may be given priority over the intra-prediction method used for an inter-prediction method.
[0196] Furthermore, the decoding method used in SWLD and the decoding method used in WLD may differ in their representation of the three-dimensional position. For example, in SWLD, the three-dimensional position of SVXL may be represented by three-dimensional coordinates, while in WLD, the three-dimensional position may be represented by an octree, as described later, or vice versa.
[0197] Next, we will explain the octree representation, a method for representing three-dimensional positions. The VXL data contained in the three-dimensional data is converted into an octree structure and then encoded. Figure 20 shows an example of a VXL in a WLD. Figure 21 shows the octree structure of the WLD shown in Figure 20. In the example shown in Figure 20, there are three VXLs (hereinafter referred to as valid VXLs) VXL1 to VXL3 that contain point clouds. As shown in Figure 21, the octree structure consists of nodes and leaves. Each node has a maximum of eight nodes or leaves. Each leaf has VXL information. Here, among the leaves shown in Figure 21, leaves 1, 2, and 3 represent VXL1, VXL2, and VXL3 shown in Figure 20, respectively.
[0198] Specifically, each node and leaf corresponds to a three-dimensional position. Node 1 corresponds to the entire block shown in Figure 20. The block corresponding to Node 1 is divided into eight blocks, and of these eight blocks, the block containing the valid VXL is set as a node, while the other blocks are set as leaves. The block corresponding to a node is further divided into eight nodes or leaves, and this process is repeated for each level of the tree structure. In addition, all blocks at the lowest level are set as leaves.
[0199] Further, FIG. 22 is a diagram showing an example of the SWLD generated from the WLD shown in FIG. 20. VXL1 and VXL2 shown in FIG. 20 are determined to be FVXL1 and FVXL2 as a result of feature extraction and are added to the SWLD. On the other hand, VXL3 is not determined to be FVXL and is not included in the SWLD. FIG. 23 is a diagram showing the octree structure of the SWLD shown in FIG. 22. In the octree structure shown in FIG. 23, leaf 3 corresponding to VXL3 shown in FIG. 21 is deleted. As a result, node 3 shown in FIG. 21 no longer has valid VXLs and is changed to a leaf. In general, the number of leaves of the SWLD becomes smaller than the number of leaves of the WLD, and the encoded three-dimensional data of the SWLD also becomes smaller than the encoded three-dimensional data of the WLD.
[0200] Hereinafter, a modification example of the present embodiment will be described.
[0201] For example, when a client such as an in-vehicle device performs self-position estimation, it receives the SWLD from the server and performs self-position estimation using the SWLD. When performing obstacle detection, it may perform obstacle detection based on the three-dimensional information of the surroundings obtained by itself using various methods such as a distance sensor such as a range finder, a stereo camera, or a combination of a plurality of monocular cameras.
[0202] In general, VXL data in a flat area is unlikely to be included in the SWLD. Therefore, the server may hold a sub-sampled world (subWLD) obtained by sub-sampling the WLD for detecting static obstacles and transmit the SWLD and the subWLD to the client. Thereby, while suppressing the network bandwidth, self-position estimation and obstacle detection can be performed on the client side.
[0203] Also, when the client renders three-dimensional map data at high speed, it may be more convenient for the map information to be in a mesh structure. Therefore, the server may generate a mesh from the WLD and retain it in advance as a Mesh World Map (MWLD). For example, when the client requires a rough three-dimensional rendering, it receives the MWLD, and when it requires a detailed three-dimensional rendering, it receives the WLD. This can suppress the network bandwidth.
[0204] Also, among each VXL, the server set the VXL whose feature amount is above the threshold as FVXL, but the FVXL may be calculated by different methods. For example, the server may determine that the VXL, VLM, SPS, or GOS that make up a signal or an intersection is necessary for self-position estimation, driving assistance, or autonomous driving, etc., and include them in the SWLD as FVXL, FVLM, FSPS, FGOS. Also, the above determination may be made manually. In addition, the FVXL, etc. obtained by the above method may be added to the FVXL, etc. set based on the feature amount. That is, the SWLD extraction unit 403 may further extract, as the extracted three-dimensional data 412, data corresponding to an object having a predetermined attribute from the input three-dimensional data 411.
[0205] Also, it may be labeled separately from the feature amount to indicate the necessity for those uses. Also, the server may separately retain the FVXL necessary for self-position estimation, driving assistance, or autonomous driving, etc., such as a signal or an intersection, as the upper layer (for example, lane world map) of the SWLD.
[0206] Also, the server may add an attribute to the VXL in the WLD for each random access unit or a predetermined unit. The attribute includes, for example, information indicating whether it is necessary or unnecessary for self-position estimation, or information indicating whether it is important as traffic information such as a signal or an intersection. Also, the attribute may include the correspondence relationship with a Feature (such as an intersection or a road) in lane information (such as GDF: Geographic Data Files).
[0207] Additionally, the following methods may be used to update the WLD or SWLD.
[0208] Update information indicating changes such as people, construction work, or tree-lined streets (for trucks) is uploaded to the server as point cloud or metadata. Based on this upload, the server updates the WLD, and then updates the SWLD using the updated WLD.
[0209] Furthermore, if the client detects an inconsistency between the 3D information it generates during self-localization and the 3D information it receives from the server, it may send the 3D information it generates to the server along with an update notification. In this case, the server updates the SWLD using the WLD. If the SWLD is not updated, the server determines that the WLD itself is outdated.
[0210] Furthermore, while it was stated that information distinguishing between WLD and SWLD is added to the header information of the encoded stream, if there are multiple types of worlds, such as mesh worlds or lane worlds, information distinguishing between them may also be added to the header information. Also, if there are many SWLDs with different feature quantities, information distinguishing between each of them may also be added to the header information.
[0211] Furthermore, although SWLD is said to consist of FVXLs, it may also include VXLs that were not determined to be FVXLs. For example, SWLD may include adjacent VXLs used when calculating the features of FVXLs. This allows the client to calculate the features of FVXLs when it receives SWLD, even if feature information is not attached to each FVXL in SWLD. In this case, SWLD may also include information to distinguish whether each VXL is an FVXL or a VXL.
[0212] As described above, the three-dimensional data encoding device 400 extracts extracted three-dimensional data 412 (second three-dimensional data) from the input three-dimensional data 411 (first three-dimensional data) in which the feature quantity is equal to or greater than a threshold, and generates encoded three-dimensional data 414 (first encoded three-dimensional data) by encoding the extracted three-dimensional data 412.
[0213] According to this, the three-dimensional data encoding device 400 generates encoded three-dimensional data 414 by encoding data whose feature quantity is greater than or equal to a threshold. This reduces the amount of data compared to encoding the input three-dimensional data 411 as is. Therefore, the three-dimensional data encoding device 400 can reduce the amount of data transmitted.
[0214] Furthermore, the three-dimensional data encoding device 400 generates encoded three-dimensional data 413 (second encoded three-dimensional data) by encoding the input three-dimensional data 411.
[0215] According to this, the three-dimensional data encoding device 400 can selectively transmit encoded three-dimensional data 413 and encoded three-dimensional data 414, for example, depending on the intended use.
[0216] Furthermore, the extracted three-dimensional data 412 is encoded using a first encoding method, and the input three-dimensional data 411 is encoded using a second encoding method different from the first encoding method.
[0217] According to this, the three-dimensional data encoding device 400 can use encoding methods suitable for the input three-dimensional data 411 and the extracted three-dimensional data 412, respectively.
[0218] Furthermore, in the first coding method, interpretation takes precedence over intraprediction over interprediction in the second coding method.
[0219] According to this, the three-dimensional data encoding device 400 can prioritize interpretation for extracted three-dimensional data 412, where the correlation between adjacent data tends to be low.
[0220] In addition, the first encoding method and the second encoding method differ in the method of expressing the three-dimensional position. For example, in the second encoding method, the three-dimensional position is expressed by an octree, and in the first encoding method, the three-dimensional position is expressed by three-dimensional coordinates.
[0221] According to this, the three-dimensional data encoding device 400 can use a more suitable method of expressing the three-dimensional position for three-dimensional data with different numbers of data (the number of VXLs or SVXLs).
[0222] In addition, at least one of the encoded three-dimensional data 413 and 414 includes an identifier indicating whether the encoded three-dimensional data is the encoded three-dimensional data obtained by encoding the input three-dimensional data 411 or the encoded three-dimensional data obtained by encoding a part of the input three-dimensional data 411. That is, the identifier indicates whether the encoded three-dimensional data is the encoded three-dimensional data 413 of the WLD or the encoded three-dimensional data 414 of the SWLD.
[0223] According to this, the decoding device can easily determine whether the acquired encoded three-dimensional data is the encoded three-dimensional data 413 or the encoded three-dimensional data 414.
[0224] In addition, the three-dimensional data encoding device 400 encodes the extracted three-dimensional data 412 so that the data amount of the encoded three-dimensional data 414 is smaller than the data amount of the encoded three-dimensional data 413.
[0225] According to this, the three-dimensional data encoding device 400 can make the data amount of the encoded three-dimensional data 414 smaller than the data amount of the encoded three-dimensional data 413.
[0226] In addition, the three-dimensional data encoding device 400 further extracts, as the extracted three-dimensional data 412, data corresponding to an object having a predetermined attribute from the input three-dimensional data 411. For example, an object having a predetermined attribute is an object necessary for self-position estimation, driving assistance, or autonomous driving, such as a signal or an intersection.
[0227] According to this, the three-dimensional data encoding device 400 can generate encoded three-dimensional data 414 that includes the data required by the decoding device.
[0228] Furthermore, the three-dimensional data encoding device 400 (server) transmits one of the encoded three-dimensional data 413 and 414 to the client, depending on the client's status.
[0229] According to this, the three-dimensional data encoding device 400 can transmit appropriate data according to the client's status.
[0230] Furthermore, the client's status includes the client's communication status (e.g., network bandwidth) or the client's speed of movement.
[0231] Furthermore, the three-dimensional data encoding device 400 transmits one of the encoded three-dimensional data 413 and 414 to the client upon the client's request.
[0232] According to this, the three-dimensional data encoding device 400 can transmit appropriate data in response to the client's request.
[0233] Furthermore, the three-dimensional data decoding device 500 according to this embodiment decodes the encoded three-dimensional data 413 or 414 generated by the three-dimensional data encoding device 400.
[0234] In other words, the three-dimensional data decoding device 500 decodes the encoded three-dimensional data 414 obtained by encoding the extracted three-dimensional data 412, in which the feature quantities extracted from the input three-dimensional data 411 are equal to or greater than a threshold, using the first decoding method. Furthermore, the three-dimensional data decoding device 500 decodes the encoded three-dimensional data 413 obtained by encoding the input three-dimensional data 411 using a second decoding method different from the first decoding method.
[0235] According to this, the three-dimensional data decoding device 500 can selectively receive encoded three-dimensional data 414, which encodes data with feature quantities above a threshold, and encoded three-dimensional data 413, for example, depending on the intended use. This allows the three-dimensional data decoding device 500 to reduce the amount of data transmitted. Furthermore, the three-dimensional data decoding device 500 can use a decoding method suitable for the input three-dimensional data 411 and the extracted three-dimensional data 412, respectively.
[0236] Furthermore, in the first decoding method, interpretation is given priority over intraprediction in the second decoding method.
[0237] According to this, the three-dimensional data decoding device 500 can prioritize interpretation for extracted three-dimensional data where the correlation between adjacent data tends to be low.
[0238] Furthermore, the first decoding method and the second decoding method differ in their methods for representing three-dimensional positions. For example, in the second decoding method, the three-dimensional position is represented by an octree, while in the first decoding method, the three-dimensional position is represented by three-dimensional coordinates.
[0239] According to this, the three-dimensional data decoding device 500 can use a more suitable three-dimensional position representation method for three-dimensional data with different numbers of data (number of VXLs or SVXLs).
[0240] Furthermore, at least one of the encoded three-dimensional data 413 and 414 includes an identifier indicating whether the encoded three-dimensional data is obtained by encoding the input three-dimensional data 411 or by encoding a portion of the input three-dimensional data 411. The three-dimensional data decoding device 500 identifies the encoded three-dimensional data 413 and 414 by referring to this identifier.
[0241] According to this, the three-dimensional data decoding device 500 can easily determine whether the acquired encoded three-dimensional data is encoded three-dimensional data 413 or encoded three-dimensional data 414.
[0242] Furthermore, the three-dimensional data decoding device 500 also notifies the server of the status of the client (three-dimensional data decoding device 500). Depending on the status of the client, the three-dimensional data decoding device 500 receives one of the encoded three-dimensional data 413 and 414 transmitted from the server.
[0243] According to this, the three-dimensional data decoding device 500 can receive appropriate data according to the client's status.
[0244] Furthermore, the client's status includes the client's communication status (e.g., network bandwidth) or the client's speed of movement.
[0245] Furthermore, the three-dimensional data decoding device 500 requests one of the encoded three-dimensional data 413 and 414 from the server, and in response to the request, receives one of the encoded three-dimensional data 413 and 414 transmitted from the server.
[0246] According to this, the three-dimensional data decoding device 500 can receive appropriate data according to its intended use.
[0247] (Embodiment 3) This embodiment describes a method for transmitting and receiving three-dimensional data between vehicles.
[0248] Figure 24 is a schematic diagram showing the transmission and reception of three-dimensional data 607 between the vehicle 600 and the surrounding vehicle 601.
[0249] When acquiring three-dimensional data using sensors mounted on the vehicle 600 (such as distance sensors like rangefinders, stereo cameras, or combinations of multiple monocular cameras), an occlusion region (hereinafter referred to as the occlusion region 604) occurs where three-dimensional data cannot be created, even though it is within the sensor detection range 602 of the vehicle 600, due to obstacles such as surrounding vehicles 601. Furthermore, while increasing the space in which three-dimensional data can be acquired improves the accuracy of autonomous operation, the sensor detection range of the vehicle 600 alone is finite.
[0250] The sensor detection range 602 of the vehicle 600 includes the area 603 where three-dimensional data can be acquired and the occlusion area 604. The area in which the vehicle 600 wants to acquire three-dimensional data includes the sensor detection range 602 of the vehicle 600 and the other areas. In addition, the sensor detection range 605 of the surrounding vehicle 601 includes the occlusion area 604 and the area 606 that is not included in the sensor detection range 602 of the vehicle 600.
[0251] The surrounding vehicle 601 transmits the information it detects to its own vehicle 600. By acquiring the information detected by the surrounding vehicle 601, such as the vehicle in front, the own vehicle 600 can acquire three-dimensional data 607 of the occlusion region 604 and the region 606 outside the sensor detection range 602 of the own vehicle 600. The own vehicle 600 uses the information acquired by the surrounding vehicle 601 to supplement the three-dimensional data of the occlusion region 604 and the region 606 outside the sensor detection range.
[0252] The uses of three-dimensional data in the autonomous operation of vehicles or robots include self-localization, detection of surrounding conditions, or both. For example, for self-localization, three-dimensional data generated by the vehicle 600 based on sensor information from the vehicle 600 is used. For detection of surrounding conditions, in addition to the three-dimensional data generated by the vehicle 600, three-dimensional data acquired from surrounding vehicles 601 is also used.
[0253] The surrounding vehicle 601 that transmits the three-dimensional data 607 to the vehicle 600 may be determined according to the state of the vehicle 600. For example, this surrounding vehicle 601 is the vehicle in front when the vehicle 600 is moving straight, the vehicle coming from behind when the vehicle 600 is turning right, and the vehicle behind when the vehicle 600 is reversing. Alternatively, the driver of the vehicle 600 may directly specify the surrounding vehicle 601 that transmits the three-dimensional data 607 to the vehicle 600.
[0254] Furthermore, the vehicle 600 may search for surrounding vehicles 601 that possess three-dimensional data for areas within the space where it wants to acquire three-dimensional data 607, but which it cannot acquire itself. Areas that cannot be acquired by the vehicle 600 include occlusion areas 604 or areas 606 outside the sensor detection range 602.
[0255] Furthermore, the vehicle 600 may identify the occlusion region 604 based on the sensor information of the vehicle 600. For example, the vehicle 600 may identify the occlusion region 604 as an area within the sensor detection range 602 of the vehicle 600 where three-dimensional data cannot be created.
[0256] The following describes an example of operation when the vehicle transmitting the three-dimensional data 607 is the vehicle in front. Figure 25 shows an example of the three-dimensional data transmitted in this case.
[0257] As shown in Figure 25, the three-dimensional data 607 transmitted from the preceding vehicle is, for example, a sparse world (SWLD) of a point cloud. In other words, the preceding vehicle creates three-dimensional data of a WLD (point cloud) from information detected by its own sensors, and then creates three-dimensional data of an SWLD (point cloud) by extracting data from the WLD that have a feature value above a threshold. The preceding vehicle then transmits the created SWLD three-dimensional data to its own vehicle 600.
[0258] Vehicle 600 receives the SWLD and merges it into the point cloud created by vehicle 600.
[0259] The transmitted SWLD contains information about its absolute coordinates (the SWLD's position in the coordinate system of the three-dimensional map). Vehicle 600 can perform the merge process by overwriting the point cloud it generates based on these absolute coordinates.
[0260] The SWLD transmitted from the surrounding vehicle 601 may be the SWLD of area 606 outside the sensor detection range 602 of the vehicle 600 and within the sensor detection range 605 of the surrounding vehicle 601, or the SWLD of the occlusion area 604 for the vehicle 600, or both. Alternatively, the transmitted SWLD may be the SWLD of the area used by the surrounding vehicle 601 for detecting the surrounding conditions.
[0261] Furthermore, surrounding vehicles 601 may change the density of the transmitted point cloud according to the communication time based on the speed difference between their own vehicle 600 and surrounding vehicles 601. For example, if the speed difference is large and the communication time is short, surrounding vehicles 601 may reduce the density (amount of data) of the point cloud by extracting three-dimensional points with large feature quantities from the SWLD.
[0262] Furthermore, detecting the surrounding environment involves determining the presence or absence of people, vehicles, and road construction equipment, identifying their type, and detecting their position, direction of movement, and speed of movement.
[0263] Furthermore, the vehicle 600 may acquire braking information of the surrounding vehicle 601 in addition to, or instead of, the three-dimensional data 607 generated by the surrounding vehicle 601. Here, braking information of the surrounding vehicle 601 refers to information indicating, for example, whether the accelerator or brake of the surrounding vehicle 601 was pressed, or to what extent.
[0264] Furthermore, in the point cloud generated by each vehicle, the three-dimensional space is subdivided into random access units to accommodate low-latency communication between vehicles. On the other hand, in the case of three-dimensional maps and other map data downloaded from a server, the three-dimensional space is divided into larger random access units compared to the case of vehicle-to-vehicle communication.
[0265] Data from areas prone to occlusion, such as the area in front of the preceding vehicle or the area behind the following vehicle, is divided into small random access units for low-latency data.
[0266] At high speeds, the importance of the front view increases, so each vehicle creates SWLDs in a narrowed field of view range using fine random access units.
[0267] If the SWLD created by the preceding vehicle for transmission includes an area where the vehicle 600 can acquire a point cloud, the preceding vehicle will remove the point cloud in that area to transmit the data. The transmission volume may be reduced.
[0268] Next, the configuration and operation of the three-dimensional data creation device 620, which is a three-dimensional data receiving device according to this embodiment, will be described.
[0269] Figure 26 is a block diagram of the three-dimensional data creation device 620 according to this embodiment. This three-dimensional data creation device 620 is, for example, included in the aforementioned vehicle 600, and creates a denser third three-dimensional data 636 by combining the received second three-dimensional data 635 with the first three-dimensional data 632 created by the three-dimensional data creation device 620.
[0270] The three-dimensional data creation device 620 comprises a three-dimensional data creation unit 621, a request range determination unit 622, a search unit 623, a receiving unit 624, a decoding unit 625, and a synthesis unit 626. Figure 27 is a flowchart showing the operation of the three-dimensional data creation device 620.
[0271] First, the three-dimensional data creation unit 621 creates first three-dimensional data 632 using sensor information 631 detected by sensors on the vehicle 600 (S621). Next, the request range determination unit 622 determines the request range, which is the three-dimensional spatial range in which data is missing from the created first three-dimensional data 632 (S622).
[0272] Next, the search unit 623 searches for surrounding vehicles 601 that possess three-dimensional data for the requested range, and transmits requested range information 633 indicating the requested range to the surrounding vehicles 601 identified through the search (S623). Next, the receiving unit 624 receives encoded three-dimensional data 634, which is an encoded stream of the requested range, from the surrounding vehicles 601 (S624). The search unit 623 may also indiscriminately send requests to all vehicles in a specific range and receive encoded three-dimensional data 634 from those that respond. Furthermore, the search unit 623 may send requests not only to vehicles but also to objects such as traffic lights or signs and receive encoded three-dimensional data 634 from those objects.
[0273] Next, the decoding unit 625 decodes the received encoded three-dimensional data 634 to obtain the second three-dimensional data 635 (S625). Then, the combining unit 626 combines the first three-dimensional data 632 and the second three-dimensional data 635 to create a denser third three-dimensional data 636 (S626).
[0274] Next, the configuration and operation of the three-dimensional data transmission device 640 according to this embodiment will be described. Figure 28 is a block diagram of the three-dimensional data transmission device 640.
[0275] The three-dimensional data transmission device 640 is, for example, included in the surrounding vehicle 601 described above, processes the fifth three-dimensional data 652 created by the surrounding vehicle 601 into the sixth three-dimensional data 654 requested by the vehicle 600, generates encoded three-dimensional data 634 by encoding the sixth three-dimensional data 654, and transmits the encoded three-dimensional data 634 to the vehicle 600.
[0276] The three-dimensional data transmission device 640 comprises a three-dimensional data creation unit 641, a receiving unit 642, an extraction unit 643, an encoding unit 644, and a transmission unit 645. Figure 29 is a flowchart showing the operation of the three-dimensional data transmission device 640.
[0277] First, the three-dimensional data creation unit 641 creates fifth three-dimensional data 652 using sensor information 651 detected by sensors on the surrounding vehicle 601 (S641). Next, the receiving unit 642 receives the requested range information 633 transmitted from its own vehicle 600 (S642).
[0278] Next, the extraction unit 643 processes the fifth three-dimensional data 652 into the sixth three-dimensional data 654 by extracting the three-dimensional data within the requested range indicated by the requested range information 633 from the fifth three-dimensional data 652 (S643). Next, the encoding unit 644 generates encoded three-dimensional data 634, which is an encoded stream, by encoding the sixth three-dimensional data 654 (S644). Then, the transmission unit 645 transmits the encoded three-dimensional data 634 to the vehicle 600 (S645).
[0279] In this example, vehicle 600 is equipped with a three-dimensional data creation device 620 and the surrounding vehicle 601 is equipped with a three-dimensional data transmission device 640. However, each vehicle may also have the functions of both the three-dimensional data creation device 620 and the three-dimensional data transmission device 640.
[0280] The configuration and operation of the three-dimensional data creation device 620 when it is a surrounding situation detection device that performs detection processing of the surrounding conditions of the vehicle 600 will be described below. Figure 30 is a block diagram showing the configuration of the three-dimensional data creation device 620A in this case. The three-dimensional data creation device 620A shown in Figure 30 includes, in addition to the configuration of the three-dimensional data creation device 620 shown in Figure 26, a detection area determination unit 627, a surrounding situation detection unit 628, and an autonomous operation control unit 629. Furthermore, the three-dimensional data creation device 620A is included in the vehicle 600.
[0281] Figure 31 is a flowchart of the process for detecting the surrounding conditions of the vehicle 600 by the three-dimensional data creation device 620A.
[0282] First, the three-dimensional data creation unit 621 creates a first three-dimensional data 632, which is a point cloud, using sensor information 631 of the detection range of the vehicle 600, which is detected by the sensors installed on the vehicle 600 (S661). The three-dimensional data creation device 620A may further perform self-position estimation using the sensor information 631.
[0283] Next, the detection area determination unit 627 determines the detection target range, which is the spatial area in which the surrounding conditions are to be detected (S662). For example, the detection area determination unit 627 calculates the area necessary for detecting the surrounding conditions in order to safely perform autonomous operation, according to the autonomous operation (autonomous driving) conditions such as the direction and speed of the vehicle 600, and determines that area as the detection target range.
[0284] Next, the requested range determination unit 622 determines the requested range to include the occlusion region 604 and the spatial region that is outside the detection range of the vehicle's sensors but is necessary for detecting the surrounding conditions (S663).
[0285] If a requested range exists as determined in step S663 (Yes in S664), the search unit 623 searches for a nearby vehicle that possesses information about the requested range. For example, the search unit 623 may inquire with a nearby vehicle whether it possesses information about the requested range, or it may determine whether a nearby vehicle possesses information about the requested range based on the position of the requested range and the nearby vehicle. Next, the search unit 623 sends a request signal 637 to the nearby vehicle 601 identified by the search, requesting the transmission of three-dimensional data. Then, after receiving an authorization signal from the nearby vehicle 601 indicating that it accepts the request for the request signal 637, the search unit 623 sends requested range information 633 indicating the requested range to the nearby vehicle 601 (S665).
[0286] Next, the receiving unit 624 detects the transmission notification of transmission data 638, which is information regarding the requested range, and receives the transmission data 638 (S666).
[0287] Furthermore, the three-dimensional data creation device 620A may, without searching for a recipient of the request, indiscriminately send requests to all vehicles within a specific range and receive transmission data 638 from recipients who respond that they have information regarding the requested range. Unit 623 may send a request to an object other than a vehicle, such as a traffic light or sign, and receive transmission data 638 from said object.
[0288] Furthermore, the transmitted data 638 includes at least one of encoded three-dimensional data 634, which is encoded from three-dimensional data of the requested range generated by the surrounding vehicle 601, and the surrounding situation detection result 639 of the requested range. The surrounding situation detection result 639 indicates the position, direction of movement, and speed of movement of people and vehicles detected by the surrounding vehicle 601. The transmitted data 638 may also include information indicating the position and movement of the surrounding vehicle 601. For example, the transmitted data 638 may include braking information of the surrounding vehicle 601.
[0289] If the received transmission data 638 contains encoded three-dimensional data 634 (Yes in S667), the decoding unit 625 decodes the encoded three-dimensional data 634 to obtain the second three-dimensional data 635 of the SWLD (S668). In other words, the second three-dimensional data 635 is three-dimensional data (SWLD) generated by extracting data with features exceeding a threshold from the fourth three-dimensional data (WLD).
[0290] Next, the synthesis unit 626 generates the third three-dimensional data 636 by combining the first three-dimensional data 632 and the second three-dimensional data 635 (S669).
[0291] Next, the surrounding situation detection unit 628 uses the third three-dimensional data 636, which is a point cloud of the spatial area necessary for detecting the surrounding situation, to detect the surrounding situation of the vehicle 600 (S670). If the received transmission data 638 includes the surrounding situation detection result 639, the surrounding situation detection unit 628 uses the surrounding situation detection result 639 in addition to the third three-dimensional data 636 to detect the surrounding situation of the vehicle 600. Furthermore, if the received transmission data 638 includes braking information of a surrounding vehicle 601, the surrounding situation detection unit 628 uses the braking information in addition to the third three-dimensional data 636 to detect the surrounding situation of the vehicle 600.
[0292] Next, the autonomous operation control unit 629 controls the autonomous operation (autonomous driving) of the vehicle 600 based on the surrounding situation detection results from the surrounding situation detection unit 628 (S671). The surrounding situation detection results may also be presented to the driver through a UI (user interface) or the like.
[0293] On the other hand, if no requested range exists in step S663 (No in S664), that is, if information for all spatial areas necessary for detecting the surrounding conditions has been created based on the sensor information 631, the surrounding conditions detection unit 628 uses the first three-dimensional data 632, which is a point cloud of the spatial areas necessary for detecting the surrounding conditions, to detect the surrounding conditions of the vehicle 600 (S672). Then, the autonomous operation control unit 629 controls the autonomous operation (autonomous driving) of the vehicle 600 based on the surrounding conditions detection result by the surrounding conditions detection unit 628 (S671).
[0294] Furthermore, if the received transmission data 638 does not contain encoded three-dimensional data 634 (No in S667), that is, if the transmission data 638 contains only the surrounding situation detection result 639 or braking information of the surrounding vehicle 601, the surrounding situation detection unit 628 uses the first three-dimensional data 632 and the surrounding situation detection result 639 or braking information to detect the surrounding situation of the vehicle 600 (S673). Then, the autonomous operation control unit 629 controls the autonomous operation (automatic driving) of the vehicle 600 based on the surrounding situation detection result by the surrounding situation detection unit 628 (S671).
[0295] Next, we will describe the three-dimensional data transmission device 640A, which transmits the transmission data 638 to the three-dimensional data creation device 620A. Figure 32 is a block diagram of this three-dimensional data transmission device 640A.
[0296] The three-dimensional data transmission device 640A shown in Figure 32 includes a transmission feasibility determination unit 646 in addition to the configuration of the three-dimensional data transmission device 640 shown in Figure 28. Furthermore, the three-dimensional data transmission device 640A is included in the surrounding vehicle 601.
[0297] Figure 33 is a flowchart showing an example of the operation of the three-dimensional data transmission device 640A. First, the three-dimensional data creation unit 641 creates the fifth three-dimensional data 652 using sensor information 651 detected by sensors on the surrounding vehicle 601 (S681).
[0298] Next, the receiving unit 642 receives a request signal 637 from its own vehicle 600 requesting the transmission of three-dimensional data (S682). Next, the transmission feasibility determination unit 646 decides whether to respond to the request indicated by the request signal 637 (S683). For example, the transmission feasibility determination unit 646 decides whether to respond to the request based on the content set in advance by the user. Alternatively, the receiving unit 642 may first receive the other party's request, such as the requested range, and the transmission feasibility determination unit 646 may decide whether to respond to the request based on its content. For example, the transmission feasibility determination unit 646 may decide to respond to the request if it possesses three-dimensional data for the requested range, and decide not to respond to the request if it does not possess three-dimensional data for the requested range.
[0299] If the request is granted (Yes in S683), the three-dimensional data transmission device 640A transmits a permission signal to the vehicle 600, and the receiving unit 642 receives request range information 633 indicating the requested range (S684). Next, the extraction unit 643 extracts the point cloud of the requested range from the fifth three-dimensional data 652, which is a point cloud, and creates transmission data 638 including the sixth three-dimensional data 654, which is the SWLD of the extracted point cloud (S685).
[0300] In other words, the three-dimensional data transmission device 640A creates seventh three-dimensional data (WLD) from sensor information 651, and creates fifth three-dimensional data 652 (SWLD) by extracting data from the seventh three-dimensional data (WLD) whose feature quantities are above a threshold. Alternatively, the three-dimensional data creation unit 641 may have already created the three-dimensional data of the SWLD, and the extraction unit 643 may have extracted the SWLD three-dimensional data within the requested range from the SWLD three-dimensional data, or the extraction unit 643 may have generated the SWLD three-dimensional data within the requested range from the WLD three-dimensional data within the requested range.
[0301] Furthermore, the transmitted data 638 may include the surrounding situation detection result 639 of the requested range by the surrounding vehicle 601, and braking information of the surrounding vehicle 601. Alternatively, the transmitted data 638 may not include the sixth three-dimensional data 654, and may include at least one of the surrounding situation detection result 639 of the requested range by the surrounding vehicle 601, and braking information of the surrounding vehicle 601.
[0302] If the transmitted data 638 includes the sixth three-dimensional data 654 (Yes in S686), the encoding unit 644 generates encoded three-dimensional data 634 by encoding the sixth three-dimensional data 654 (S687).
[0303] Then, the transmitting unit 645 transmits the transmission data 638, which includes the encoded three-dimensional data 634, to the vehicle 600 (S688).
[0304] On the other hand, if the transmission data 638 does not include the sixth three-dimensional data 654 (No in S686), the transmission unit 645 transmits the transmission data 638 to its own vehicle 600, which includes at least one of the surrounding situation detection result 639 of the requested range by the surrounding vehicle 601 and the braking information of the surrounding vehicle 601 (S688).
[0305] Modifications of this embodiment will be described below.
[0306] For example, the information transmitted from the surrounding vehicle 601 does not have to be three-dimensional data or surrounding situation detection results created by the surrounding vehicle; it may be accurate feature point information of the surrounding vehicle 601 itself. The vehicle 600 uses this feature point information of the surrounding vehicle 601 to correct the feature point information of the preceding vehicle in the point cloud acquired by the vehicle 600. This allows the vehicle 600 to improve the matching accuracy when estimating its own position.
[0307] Furthermore, the characteristic point information of the preceding vehicle is, for example, three-dimensional point information consisting of color information and coordinate information. This allows the characteristic point information of the preceding vehicle to be used regardless of whether the vehicle 600's sensors are laser sensors or stereo cameras.
[0308] Furthermore, the vehicle 600 may use the SWLD point cloud not only during transmission but also when calculating the accuracy of self-position estimation. For example, if the sensor of the vehicle 600 is an imaging device such as a stereo camera, the vehicle 600 detects two-dimensional points on the image captured by the camera and estimates its own position using these two-dimensional points. The vehicle 600 also creates a point cloud of surrounding objects at the same time as its own position. The vehicle 600 reprojects the three-dimensional points of the SWLD within this point cloud onto the two-dimensional image and evaluates the accuracy of self-position estimation based on the error between the detected points on the two-dimensional image and the reprojected points.
[0309] Furthermore, if the vehicle 600's sensors are laser sensors such as LIDAR, the vehicle 600 evaluates the accuracy of its self-position estimation based on the error calculated by Iterative Closest Point using the SWLD of the created point cloud and the SWLD of the three-dimensional map.
[0310] Furthermore, if the communication status via base stations or servers, such as 5G, is poor, the vehicle 600 may acquire a three-dimensional map from surrounding vehicles 601.
[0311] Furthermore, information from distant locations that cannot be obtained from surrounding vehicles may be acquired through vehicle-to-vehicle communication. For example, vehicle 600 may acquire information about traffic accidents that have just occurred, several hundred meters or several kilometers away, through passing communication from oncoming vehicles or through a relay system that sequentially transmits the information to surrounding vehicles. In this case, the data format of the transmitted data is transmitted as metadata for the upper layer of the dynamic three-dimensional map.
[0312] Furthermore, the detection results of the surrounding conditions and the information detected by the vehicle 600 may be presented to the user through a user interface. For example, this information can be presented on the car navigation screen or superimposed on the front windshield.
[0313] Furthermore, vehicles that do not support autonomous driving but have cruise control may detect surrounding vehicles that are driving in autonomous driving mode and follow those surrounding vehicles.
[0314] Furthermore, if the vehicle 600 is unable to acquire a three-dimensional map or is unable to estimate its own position due to excessive occlusion, it may switch its operating mode from automatic driving mode to tracking surrounding vehicles mode.
[0315] Furthermore, the vehicle being followed may be equipped with a user interface that warns the user that it is being followed and allows the user to specify whether or not to allow the follow. In this case, a mechanism may be put in place to display advertisements on the following vehicle and pay an incentive to the vehicle being followed.
[0316] Furthermore, the transmitted information is based on SWLD, which is three-dimensional data, but may also be information corresponding to the request settings set on the vehicle 600 or the disclosure settings of the preceding vehicle. For example, the transmitted information may be WLD, which is a dense point cloud, or surrounding information from the preceding vehicle. The detection results of the situation, or the braking information of the vehicle in front, would also be acceptable.
[0317] Furthermore, the vehicle 600 may receive the WLD, visualize the three-dimensional data of the WLD, and present the visualized three-dimensional data to the driver using a GUI. In this case, the vehicle 600 may present the information with color coding or other means so that the user can distinguish between the point cloud created by the vehicle 600 and the point cloud received.
[0318] Furthermore, when the vehicle 600 presents the information it has detected and the detection results of the surrounding vehicles 601 to the driver via a GUI, the information may be presented with color coding or other methods so that the user can distinguish between the information detected by the vehicle 600 and the received detection results.
[0319] As described above, in the three-dimensional data creation device 620 according to this embodiment, the three-dimensional data creation unit 621 creates first three-dimensional data 632 from sensor information 631 detected by the sensor. The receiving unit 624 receives encoded three-dimensional data 634, which contains the second three-dimensional data 635. The decoding unit 625 obtains the second three-dimensional data 635 by decoding the received encoded three-dimensional data 634. The combining unit 626 creates third three-dimensional data 636 by combining the first three-dimensional data 632 and the second three-dimensional data 635.
[0320] According to this, the three-dimensional data creation device 620 can create detailed third three-dimensional data 636 using the created first three-dimensional data 632 and the received second three-dimensional data 635.
[0321] Furthermore, the synthesis unit 626 synthesizes the first three-dimensional data 632 and the second three-dimensional data 635 to create a third three-dimensional data 636 that has a higher density than the first three-dimensional data 632 and the second three-dimensional data 635.
[0322] Furthermore, the second three-dimensional data 635 (e.g., SWLD) is three-dimensional data generated by extracting data from the fourth three-dimensional data (e.g., WLD) whose feature values are above a threshold.
[0323] According to this, the three-dimensional data creation device 620 can reduce the amount of data transmitted in the three-dimensional data.
[0324] Furthermore, the three-dimensional data creation device 620 includes a search unit 623 that searches for a transmitting device that is the source of the encoded three-dimensional data 634. The receiving unit 624 receives the encoded three-dimensional data 634 from the searched transmitting device.
[0325] According to this, the three-dimensional data creation device 620 can, for example, identify a transmitting device that possesses the necessary three-dimensional data by searching for it.
[0326] Furthermore, the three-dimensional data creation device includes a request range determination unit 622 that determines the request range, which is the range of the three-dimensional space for which three-dimensional data is requested. The search unit 623 transmits request range information 633 indicating the request range to the transmission device. The second three-dimensional data 635 includes the three-dimensional data of the request range.
[0327] According to this, the three-dimensional data creation device 620 can receive the necessary three-dimensional data and reduce the amount of data transmitted.
[0328] Furthermore, the requested range determination unit 622 determines the requested range to be a spatial range that includes the occlusion region 604 that cannot be detected by the sensor.
[0329] Furthermore, in the three-dimensional data transmission device 640 according to this embodiment, the three-dimensional data creation unit 641 creates fifth three-dimensional data 652 from sensor information 651 detected by the sensor. The extraction unit 643 creates sixth three-dimensional data 654 by extracting a part of the fifth three-dimensional data 652. The encoding unit 644 generates encoded three-dimensional data 634 by encoding the sixth three-dimensional data 654. The transmission unit 645 transmits the encoded three-dimensional data 634.
[0330] According to this, the three-dimensional data transmission device 640 can transmit the three-dimensional data it has created to other devices, and can also reduce the amount of data transmitted.
[0331] Furthermore, the three-dimensional data creation unit 641 creates seventh three-dimensional data (e.g., WLD) from sensor information 651 detected by the sensor, and creates fifth three-dimensional data 652 (e.g., SWLD) by extracting data from the seventh three-dimensional data whose feature quantities are above a threshold.
[0332] According to this, the three-dimensional data transmission device 640 can reduce the amount of data transmitted in the three-dimensional data.
[0333] Furthermore, the three-dimensional data transmission device 640 includes a receiving unit 642 that receives request range information 633 from the receiving device, which indicates the range of the three-dimensional space in which the three-dimensional data is requested. The extraction unit 643 creates the sixth three-dimensional data 654 by extracting the three-dimensional data of the request range from the fifth three-dimensional data 652. The transmission unit 645 transmits the encoded three-dimensional data 634 to the receiving device.
[0334] According to this, the three-dimensional data transmission device 640 can reduce the amount of data transmitted in the three-dimensional data.
[0335] (Embodiment 4) This embodiment describes the behavior of anomalies in self-localization based on a three-dimensional map.
[0336] Applications such as autonomous driving of cars, or autonomous movement of mobile objects like robots or drones, are expected to expand in the future. One example of a means to achieve such autonomous movement is for a mobile object to estimate its own position within a three-dimensional map (self-localization) and then travel according to the map.
[0337] Self-localization can be achieved by matching a three-dimensional map with three-dimensional information about the vehicle's surroundings (hereinafter referred to as "self-detection three-dimensional data") acquired by sensors such as a rangefinder (LiDAR, etc.) or stereo camera mounted on the vehicle, and estimating the vehicle's position within the three-dimensional map.
[0338] Three-dimensional maps, such as the HD maps proposed by HERE, may include not only three-dimensional point clouds but also two-dimensional map data such as road and intersection shape information, or real-time changing information such as traffic congestion and accidents. A three-dimensional map is composed of multiple layers, including three-dimensional data, two-dimensional data, and real-time changing metadata, and the device can acquire or reference only the necessary data.
[0339] The point cloud data may be SWLD as described above, or it may include point cloud data that does not contain feature points. Furthermore, the transmission and reception of point cloud data is based on one or more random access units.
[0340] The following methods can be used to match a three-dimensional map with three-dimensional vehicle detection data. For example, the device compares the shape of the point clouds in each other's point clouds and determines that areas with high similarity between feature points are in the same location. Also, if the three-dimensional map is composed of SWLDs, the device performs matching by comparing the feature points that make up the SWLD with the three-dimensional feature points extracted from the three-dimensional vehicle detection data.
[0341] Here, in order to perform self-localization with high accuracy, (A) a three-dimensional map and three-dimensional self-detection data must be acquired, and (B) the accuracy of these must meet predetermined standards. However, in the following abnormal cases, (A) or (B) cannot be met.
[0342] (1) The 3D map cannot be obtained via communication.
[0343] (2) The 3D map does not exist, or the 3D map was obtained but is corrupted.
[0344] (3) The vehicle's sensors are malfunctioning, or the accuracy of the generated 3D data for vehicle detection is insufficient due to bad weather.
[0345] The following describes the actions needed to address these abnormal cases. While a car will be used as an example, the following methods can be applied to any autonomously moving animal, such as robots or drones.
[0346] The configuration and operation of the three-dimensional information processing device according to this embodiment, for handling abnormal cases in three-dimensional maps or three-dimensional data of self-detection, will be described below. Figure 34 is a block diagram showing an example configuration of the three-dimensional information processing device 700 according to this embodiment. Figure 35 is a flowchart of the three-dimensional information processing method by the three-dimensional information processing device 700.
[0347] The three-dimensional information processing device 700 is mounted on an animal body, such as an automobile. As shown in Figure 34, the three-dimensional information processing device 700 includes a three-dimensional map acquisition unit 701, a vehicle detection data acquisition unit 702, an abnormal case determination unit 703, a response action determination unit 704, and an action control unit 705.
[0348] The three-dimensional information processing device 700 may also include two-dimensional or one-dimensional sensors (not shown) for detecting structures or animals around the vehicle, such as a camera for acquiring two-dimensional images, or a sensor for acquiring one-dimensional data using ultrasound or a laser. Furthermore, the three-dimensional information processing device 700 may also include a communication unit (not shown) for acquiring a three-dimensional map via a mobile communication network such as 4G or 5G, or via vehicle-to-vehicle communication or vehicle-to-infrastructure communication.
[0349] As shown in Figure 35, the three-dimensional map acquisition unit 701 acquires a three-dimensional map 711 of the vicinity of the travel route (S701). For example, the three-dimensional map acquisition unit 701 acquires the three-dimensional map 711 via a mobile communication network, vehicle-to-vehicle communication, or vehicle-to-infrastructure communication.
[0350] Next, the vehicle detection data acquisition unit 702 acquires vehicle detection three-dimensional data 712 based on the sensor information (S702). For example, the vehicle detection data acquisition unit 702 generates vehicle detection three-dimensional data 712 based on the sensor information acquired by the sensors installed in the vehicle.
[0351] Next, the abnormal case determination unit 703 detects an abnormal case by performing a predetermined check on at least one of the acquired three-dimensional map 711 and the vehicle detection three-dimensional data 712 (S703). In other words, the abnormal case determination unit 703 determines whether at least one of the acquired three-dimensional map 711 and the vehicle detection three-dimensional data 712 is abnormal.
[0352] In step S703, if an abnormal case is detected (Yes in S704), the action determination unit 704 determines the corrective action for the abnormal case (S705). Next, the operation control unit 705 controls the operation of each processing unit necessary for carrying out the corrective action, such as the three-dimensional map acquisition unit 701 (S706).
[0353] On the other hand, if no abnormal case is detected in step S703 (No in S704), the three-dimensional information processing device 700 terminates processing.
[0354] Furthermore, the three-dimensional information processing device 700 uses the three-dimensional map 711 and the vehicle detection three-dimensional data 712 to estimate the self-position of the vehicle equipped with the three-dimensional information processing device 700. Next, the three-dimensional information processing device 700 uses the results of the self-position estimation to automatically drive the vehicle.
[0355] In this way, the three-dimensional information processing device 700 acquires map data (three-dimensional map 711) containing the first three-dimensional location information via a communication channel. For example, the first three-dimensional location information is encoded using subspaces having three-dimensional coordinate information as units, each being a collection of one or more subspaces, and containing multiple random access units, each of which can be decoded independently. For example, the first three-dimensional location information is data (SWLD) in which feature points whose three-dimensional feature quantities are above a predetermined threshold are encoded.
[0356] Furthermore, the three-dimensional information processing device 700 generates second three-dimensional position information (self-detection three-dimensional data 712) from the information detected by the sensor. Next, the three-dimensional information processing device 700 determines whether the first three-dimensional position information or the second three-dimensional position information is abnormal by performing an abnormality determination process on the first three-dimensional position information or the second three-dimensional position information.
[0357] If the three-dimensional information processing device 700 determines that the first three-dimensional position information or the second three-dimensional position information is abnormal, it determines a corrective action for the abnormality. Next, the three-dimensional information processing device 700 performs the necessary controls to carry out the corrective action.
[0358] As a result, the three-dimensional information processing device 700 can detect an anomaly in the first three-dimensional position information or the second three-dimensional position information and take corrective action.
[0359] The following describes the corrective actions to take in case of abnormality 1, when the 3D map 711 cannot be obtained via communication.
[0360] Self-localization requires a three-dimensional map 711, but if the vehicle has not previously acquired a three-dimensional map 711 corresponding to the route to its destination, it needs to acquire the three-dimensional map 711 via communication. However, due to congestion in the communication channel or deterioration of radio wave reception conditions, the vehicle may be unable to acquire a three-dimensional map 711 on the road it is traveling on.
[0361] The abnormal case determination unit 703 checks whether the three-dimensional map 711 has been acquired for all sections of the route to the destination, or for sections within a predetermined range from the current location. If it has not been acquired, it determines that it is abnormal case 1. In other words, the abnormal case determination unit 703 determines whether the three-dimensional map 711 (first three-dimensional location information) can be acquired via the communication channel, and if the three-dimensional map 711 cannot be acquired via the communication channel, it determines that the three-dimensional map 711 is abnormal.
[0362] If an abnormal case 1 is determined, the action determination unit 704 selects one of two types of action: (1) continue self-position estimation, or (2) stop self-position estimation.
[0363] First, (1) I will explain a specific example of the actions taken when self-localization is to be continued. When self-localization is to be continued, a three-dimensional map 711 of the route to the destination is required.
[0364] For example, the vehicle determines a location where a communication path is available within the range where the three-dimensional map 711 has already been acquired, moves to that location, and acquires the three-dimensional map 711. At this time, the vehicle may acquire all three-dimensional maps 711 up to the destination, or it may acquire the three-dimensional maps 711 for each random access unit within the upper limit size that can be stored in the vehicle's memory or a recording unit such as an HDD.
[0365] Furthermore, the vehicle may separately acquire the communication status along the route, and if it is predicted that the communication status along the route will be poor, it may operate in such a way that it acquires a three-dimensional map 711 of the section where the communication status is poor in advance, or acquires a three-dimensional map 711 of the maximum range that can be acquired. In other words, the three-dimensional information processing device 700 predicts whether the vehicle will enter an area with poor communication status. If the three-dimensional information processing device 700 predicts that the vehicle will enter an area with poor communication status, it acquires a three-dimensional map 711 before the vehicle enters that area.
[0366] Furthermore, the vehicle may identify random access units that constitute the minimum three-dimensional map 711 necessary for self-position estimation along the route, which is a narrower range than usual, and receive the identified random access units. In other words, if the three-dimensional information processing device 700 cannot obtain the three-dimensional map 711 (first three-dimensional position information) via the communication channel, it may obtain third three-dimensional position information, which is a narrower range than the first three-dimensional position information, via the communication channel.
[0367] Furthermore, if the vehicle is unable to access the distribution server for the three-dimensional map 711, it may obtain the three-dimensional map 711 from another vehicle traveling in its vicinity, or from a mobile entity that has already obtained the three-dimensional map 711 along the route to the destination and is able to communicate with the vehicle.
[0368] Next, we will explain a specific example of the countermeasures to take when (2) self-localization is stopped. In this case, the three-dimensional map 711 along the route to the destination is not necessary.
[0369] For example, the vehicle notifies the driver that functions such as autonomous driving based on self-position estimation cannot be continued, and switches the operating mode to manual mode, where the driver takes control.
[0370] Normally, when self-localization is performed, autonomous driving is carried out, although the level of human intervention varies. On the other hand, the results of self-localization can also be used for navigation when a human is driving. Therefore, the results of self-localization do not necessarily have to be used for autonomous driving.
[0371] Furthermore, if the vehicle cannot use its normally used communication channels, such as 4G or 5G mobile communication networks, it may check whether it can acquire the 3D map 711 via another communication channel, such as vehicle-to-infrastructure Wi-Fi® or millimeter-wave communication, or vehicle-to-vehicle communication, and switch the communication channel to one that can acquire the 3D map 711.
[0372] Furthermore, if the vehicle is unable to acquire the three-dimensional map 711, it may acquire a two-dimensional map and continue autonomous driving using the two-dimensional map and the three-dimensional self-detection data 712. In other words, if the three-dimensional information processing device 700 is unable to acquire the three-dimensional map 711 via the communication channel, it may acquire map data (two-dimensional map) containing two-dimensional position information via the communication channel and perform self-position estimation of the vehicle using the two-dimensional position information and the three-dimensional self-detection data 712.
[0373] Specifically, the vehicle uses a two-dimensional map and three-dimensional self-detection data 712 for self-localization, and the same three-dimensional self-detection data 712 for detecting surrounding vehicles, pedestrians, and obstacles.
[0374] Here, map data such as HD maps can include a three-dimensional map 711 composed of a three-dimensional point cloud, two-dimensional map data (two-dimensional map), a simplified version of map data extracted from the two-dimensional map data to include characteristic information such as road shapes or intersections, and metadata representing real-time information such as traffic congestion, accidents, or construction. For example, the map data has a layer structure in which three-dimensional data (three-dimensional map 711), two-dimensional data (two-dimensional map), and metadata are arranged in order from the bottom layer.
[0375] Here, two-dimensional data has a smaller data size than three-dimensional data. Therefore, even if the communication conditions are poor, the vehicle may be able to acquire a two-dimensional map. Alternatively, the vehicle can acquire a wide-area two-dimensional map in sections where the communication conditions are good. Therefore, if the communication path conditions are poor and it is difficult to acquire the three-dimensional map 711, the vehicle may receive a layer containing the two-dimensional map instead of receiving the three-dimensional map 711. Note that because metadata has a small data size, for example, the vehicle will always receive metadata regardless of the communication conditions.
[0376] There are two methods for estimating the self-position using a two-dimensional map and three-dimensional self-detection data 712, for example:
[0377] The first method involves matching two-dimensional features. Specifically, the vehicle extracts two-dimensional features from the 3D self-detection data 712 and matches the extracted two-dimensional features with a two-dimensional map.
[0378] For example, the vehicle projects the three-dimensional self-detection data 712 onto the same plane as the two-dimensional map, and matches the resulting two-dimensional data with the two-dimensional map. The matching is performed using two-dimensional image features extracted from both.
[0379] If the three-dimensional map 711 includes SWLD, the three-dimensional map 711 may store two-dimensional features coplanar with the two-dimensional map, along with three-dimensional features at feature points in three-dimensional space. For example, identification information may be attached to the two-dimensional features. Alternatively, the two-dimensional features may be stored in a separate layer from the three-dimensional data and the two-dimensional map, and the vehicle may acquire the two-dimensional feature data along with the two-dimensional map.
[0380] If the two-dimensional map displays information about locations at different heights from the ground (not on the same plane), such as white lines on the road, guardrails, and buildings, the vehicle extracts features from multiple height data in the three-dimensional self-detection data 712.
[0381] Furthermore, information indicating the correspondence between feature points in the two-dimensional map and feature points in the three-dimensional map 711 may be stored as metadata for the map data.
[0382] The second method involves matching three-dimensional features. Specifically, the vehicle acquires three-dimensional features corresponding to feature points in a two-dimensional map, and matches these acquired three-dimensional features with the three-dimensional features of the vehicle detection three-dimensional data 712.
[0383] Specifically, three-dimensional features corresponding to feature points in the two-dimensional map are stored in the map data. When the vehicle acquires the two-dimensional map, it also acquires these three-dimensional features. Furthermore, if the three-dimensional map 711 includes SWLD, information is added to identify the feature points in the SWLD that correspond to the feature points in the two-dimensional map, allowing the vehicle to use the identification information. Based on this, we can determine the three-dimensional features to be acquired in conjunction with the two-dimensional map. Furthermore, in this case, since it is sufficient to represent the two-dimensional position, the amount of data can be reduced compared to representing the three-dimensional position.
[0384] Furthermore, when estimating the vehicle's own position using a two-dimensional map, the accuracy of the self-position estimation is lower than when using a three-dimensional map 711. Therefore, the vehicle may determine whether it can continue autonomous driving even with reduced estimation accuracy, and may continue autonomous driving only if it determines that it can.
[0385] Whether autonomous driving can be sustained depends on the driving environment, including whether the road the vehicle is traveling on is an urban area or a highway with little other traffic or pedestrians, as well as road width and road congestion (density of vehicles or pedestrians). Furthermore, it is possible to place markers for recognition using sensors such as cameras within business premises, streets, or buildings. In these specific areas, markers can be recognized with high accuracy by two-dimensional sensors, so for example, by including the marker location information in a two-dimensional map, self-localization can be performed with high accuracy.
[0386] Furthermore, by including identification information within the map indicating whether each area is a specific area, the vehicle can determine whether it is located within a specific area. If the vehicle is located within a specific area, it will decide to continue autonomous driving. In this way, the vehicle may also decide whether to continue autonomous driving based on the accuracy of its self-position estimation when using a two-dimensional map, or on the vehicle's driving environment.
[0387] In this way, the three-dimensional information processing device 700 determines whether or not to perform autonomous driving of the vehicle based on the vehicle's driving environment (the environment in which the moving object is moving) and the results of self-position estimation of the vehicle using a two-dimensional map and self-detection three-dimensional data 712.
[0388] Furthermore, the vehicle may switch the level (mode) of autonomous driving not based on whether autonomous driving can be continued, but depending on the accuracy of self-position estimation or the vehicle's driving environment. Switching the level (mode) of autonomous driving here means, for example, limiting the speed, increasing the amount of driver input (reducing the level of autonomous driving), switching to a mode that obtains driving information from the vehicle ahead and uses it as a reference, or switching to a mode that obtains driving information from vehicles set to the same destination and uses it for autonomous driving.
[0389] Furthermore, the map may include information indicating the recommended level of autonomous driving when self-localization is performed using a two-dimensional map associated with location information. The recommended level may be metadata that changes dynamically depending on traffic volume, etc. This allows the vehicle to determine the level simply by acquiring information from the map, without having to sequentially determine the level based on the surrounding environment, etc. Also, by having multiple vehicles refer to the same map, the level of autonomous driving for each vehicle can be kept constant. Note that the recommended level may be a level that is mandatory to comply with, rather than just a recommendation.
[0390] Furthermore, the vehicle may switch levels of autonomous driving depending on whether there is a driver (whether it is present or unmanned). For example, the vehicle may reduce the level of autonomous driving if there is a driver, and stop if it is unmanned. The vehicle determines a safe stopping position by recognizing surrounding pedestrians, vehicles, and traffic signs. Alternatively, the map may include location information indicating a safe stopping position for the vehicle, and the vehicle may refer to this location information to determine a safe stopping position.
[0391] Next, we will explain the corrective actions for abnormal case 2, where the 3D map 711 does not exist, or where the 3D map 711 has been acquired but is corrupted.
[0392] The abnormal case determination unit 703 checks whether either of the following applies: (1) the three-dimensional map 711 for some or all sections of the route to the destination does not exist on the distribution server or the access destination and cannot be obtained, or (2) some or all of the obtained three-dimensional map 711 is corrupted. If either of these applies, it determines it to be abnormal case 2. In other words, the abnormal case determination unit 703 determines whether the data of the three-dimensional map 711 is complete, and if the data of the three-dimensional map 711 is incomplete, it determines that the three-dimensional map 711 is abnormal.
[0393] If an abnormal case 2 is detected, the following corrective actions will be taken. First, we will explain an example of the corrective action taken when (1) the 3D map 711 cannot be obtained.
[0394] For example, the vehicle will set a route that does not pass through sections where the 3D map 711 does not exist.
[0395] Furthermore, if an alternative route cannot be set for reasons such as the absence of an alternative route or the significant increase in distance, the vehicle will set a route that includes sections where the 3D map 711 does not exist. In addition, the vehicle will notify the driver that the driving mode will be switched in that section and switch the driving mode to manual mode.
[0396] (2) If some or all of the acquired 3D map 711 is corrupted, the following corrective actions will be taken.
[0397] The vehicle identifies the damaged area in the three-dimensional map 711, requests data for the damaged area via communication, obtains the data for the damaged area, and updates the three-dimensional map 711 using the obtained data. At this time, the vehicle may specify the damaged area using positional information such as absolute or relative coordinates in the three-dimensional map 711, or it may specify it using the index number of the random access unit that constitutes the damaged area. In this case, the vehicle replaces the random access unit containing the damaged area with the obtained random access unit.
[0398] Next, we will explain the corrective actions for abnormal case 3, where the vehicle's sensors malfunction or the vehicle's three-dimensional detection data 712 cannot be generated due to bad weather.
[0399] The abnormal case determination unit 703 checks whether the generation error of the self-detection three-dimensional data 712 is within an acceptable range, and if it is not within an acceptable range, it determines it to be abnormal case 3. In other words, the abnormal case determination unit 703 determines whether the data generation accuracy of the self-detection three-dimensional data 712 is above a standard value, and if the data generation accuracy of the self-detection three-dimensional data 712 is not above a standard value, it determines that the self-detection three-dimensional data 712 is abnormal.
[0400] The following method can be used to check whether the generation error of the vehicle detection 3D data 712 is within an acceptable range.
[0401] The spatial resolution of the vehicle-detected three-dimensional data 712 during normal operation is predetermined based on the resolution in the depth direction and scanning direction of the vehicle's three-dimensional sensor, such as a rangefinder or stereo camera, or the density of the point cloud that can be generated. The vehicle also obtains the spatial resolution of the three-dimensional map 711 from metadata contained in the three-dimensional map 711.
[0402] The vehicle uses the spatial resolution of both to estimate a baseline value for the matching error when matching the vehicle-detected 3D data 712 and the 3D map 711 based on 3D features. The matching error can be a statistical quantity such as the error in the 3D features for each feature point, the average value of the errors in the 3D features between multiple feature points, or the error in the spatial distance between multiple feature points. It can be used. The acceptable range for deviation from the reference value is predetermined.
[0403] If the matching error between the vehicle's self-detection 3D data 712 generated before or during driving and the 3D map 711 is not within an acceptable range, the vehicle will be determined to be in abnormal case 3.
[0404] Alternatively, the vehicle may use a test pattern with a known three-dimensional shape for accuracy checks to acquire three-dimensional data 712 of its own vehicle detection relative to the test pattern before starting to drive, and determine whether it is abnormal case 3 based on whether the shape error is within an acceptable range.
[0405] For example, the vehicle performs the above determination each time before starting to drive. Alternatively, the vehicle obtains the time-series change in the matching error by performing the above determination at regular time intervals while driving. If the matching error is increasing, the vehicle may determine it as abnormal case 3 even if the error is within the acceptable range. Furthermore, if the vehicle can predict that an abnormality will occur based on the time-series change, it may notify the user that an abnormality is predicted, such as by displaying a message prompting inspection or repair. In addition, the vehicle may distinguish between abnormalities due to transient factors such as bad weather and abnormalities due to sensor failure based on the time-series change, and notify the user only of abnormalities due to sensor failure.
[0406] Furthermore, if the vehicle is determined to be in abnormal case 3, it will perform one or a selection of three types of corrective actions: (1) activate emergency backup sensors (rescue mode), (2) switch the driving mode, or (3) correct the operation of the three-dimensional sensors.
[0407] First, let's explain (1) the case where an emergency alternative sensor is activated. The vehicle activates an emergency alternative sensor that is different from the three-dimensional sensor used during normal operation. In other words, if the data generation accuracy of the self-detection three-dimensional data 712 is not above a standard value, the three-dimensional information processing device 700 generates self-detection three-dimensional data 712 (fourth three-dimensional position information) from information detected by the alternative sensor, which is different from the normal sensor.
[0408] Specifically, when a vehicle acquires three-dimensional self-detection data 712 using multiple cameras or LiDAR, the vehicle identifies a malfunctioning sensor based on factors such as the direction in which the matching error of the three-dimensional self-detection data 712 exceeds an acceptable range. The vehicle then activates a replacement sensor corresponding to the malfunctioning sensor.
[0409] The alternative sensor may be a three-dimensional sensor, a camera capable of acquiring two-dimensional images, or a one-dimensional sensor such as an ultrasonic sensor. If the alternative sensor is anything other than a three-dimensional sensor, the accuracy of self-position estimation may decrease, or self-position estimation may not be possible at all. Therefore, the vehicle may switch its autonomous driving mode depending on the type of alternative sensor.
[0410] For example, if the replacement sensor is a three-dimensional sensor, the vehicle will continue in automatic driving mode. If the replacement sensor is a two-dimensional sensor, the vehicle will change the driving mode from fully automatic driving to a semi-automatic driving mode that requires human operation. If the replacement sensor is a one-dimensional sensor, the vehicle will switch the driving mode to manual mode, which does not perform automatic braking control.
[0411] Furthermore, the vehicle may switch autonomous driving modes based on the driving environment. For example, if the alternative sensor is a two-dimensional sensor, the vehicle may continue in fully autonomous driving mode when driving on a highway and switch to semi-autonomous driving mode when driving in an urban area.
[0412] Furthermore, even if no alternative sensors are available, the vehicle may continue self-localization if a sufficient number of feature points can be acquired using only the sensors that are functioning correctly. However, since detection in a specific direction becomes impossible, the vehicle will switch the driving mode to semi-autonomous driving or manual mode.
[0413] Next, (2) the countermeasure operation for switching the driving mode will be explained. The vehicle switches the driving mode from automatic driving mode to manual mode. Alternatively, the vehicle may continue automatic driving until it reaches a safe place to stop, such as the shoulder of the road, and then stop. The vehicle may also switch the driving mode back to manual mode after stopping. In this way, the three-dimensional information processing device 700 switches the automatic driving mode if the generation accuracy of the self-detection three-dimensional data 712 is not equal to or greater than a standard value.
[0414] Next, we will explain (3) the corrective actions for correcting the operation of the three-dimensional sensor. The vehicle identifies the malfunctioning three-dimensional sensor based on the direction in which the matching error occurs, and then calibrates the identified sensor. Specifically, when multiple LiDARs or cameras are used as sensors, a portion of the three-dimensional space reconstructed by each sensor overlaps. That is, data for the overlapping portion is acquired by multiple sensors. The three-dimensional point cloud data acquired for the overlapping portion will differ between a normal sensor and a malfunctioning sensor. Therefore, the vehicle corrects the origin of the LiDAR, or adjusts the operation of predetermined parts such as the exposure or focus of the camera, so that the malfunctioning sensor can acquire three-dimensional point cloud data equivalent to that of a normal sensor.
[0415] If the matching error falls within the acceptable range after adjustment, the vehicle will continue in the previous driving mode. On the other hand, if the matching accuracy does not fall within the acceptable range after adjustment, the vehicle will perform either (1) the emergency alternative sensor activation action or (2) the driving mode switching action described above.
[0416] Thus, the three-dimensional information processing device 700 corrects the operation of the sensor if the data generation accuracy of the self-detection three-dimensional data 712 is not equal to or greater than a standard value.
[0417] The following describes how to select a corrective action. The corrective action may be selected by the driver or other user, or it may be selected automatically by the vehicle without user intervention.
[0418] Furthermore, the vehicle may switch its control depending on whether a driver is on board or not. For example, if a driver is on board, the vehicle prioritizes switching to manual mode. On the other hand, if there is no driver on board, the vehicle prioritizes moving to a safe location and stopping.
[0419] Information indicating the stopping location may be included as metadata in the three-dimensional map 711. Alternatively, the vehicle may issue a request for a response regarding the stopping location to a service that manages the autonomous driver's operation information and obtain information indicating the stopping location.
[0420] Furthermore, when a vehicle is operating on a predetermined route, the vehicle's driving mode may be switched to a mode in which an operator manages the vehicle's operation via a communication channel. In particular, an anomaly in the self-position estimation function of a vehicle operating in fully autonomous driving mode poses a high risk. Therefore, when an anomaly is detected, or when the detected anomaly cannot be corrected, the vehicle will notify the service that manages operational information of the occurrence of the anomaly via a communication channel. This service may then notify other vehicles traveling in the vicinity of the vehicle experiencing the anomaly, or instruct them to clear nearby stopping areas.
[0421] Furthermore, when an abnormal case is detected, the vehicle may reduce its driving speed compared to normal.
[0422] If the vehicle is an autonomous vehicle used for ride-hailing services such as taxis, and a malfunction occurs in the vehicle, it will contact the operations management center and stop in a safe location. The ride-hailing service will also dispatch a replacement vehicle. Alternatively, the user of the ride-hailing service may drive the vehicle. In these cases, discounts on fares or the awarding of reward points may also be used.
[0423] Furthermore, while the method for handling abnormal case 1 was described as performing self-localization based on a two-dimensional map, self-localization may also be performed using a two-dimensional map under normal circumstances. Figure 36 is a flowchart of the self-localization process in this case.
[0424] First, the vehicle acquires a three-dimensional map 711 of the area near its travel path (S711). Next, the vehicle acquires three-dimensional self-detection data 712 based on the sensor information (S712).
[0425] Next, the vehicle determines whether a three-dimensional map 711 is necessary for self-localization (S713). Specifically, the vehicle determines the necessity of the three-dimensional map 711 based on the accuracy of self-localization when using a two-dimensional map and the driving environment. For example, the same method as the one used to handle abnormal case 1 described above is used.
[0426] If it is determined that the three-dimensional map 711 is not necessary (No in S714), the vehicle acquires a two-dimensional map (S715). At this time, the vehicle may also acquire additional information as described in the method for handling abnormal case 1. Alternatively, the vehicle may generate a two-dimensional map from the three-dimensional map 711. For example, the vehicle may generate a two-dimensional map by cutting out an arbitrary plane from the three-dimensional map 711.
[0427] Next, the vehicle performs self-position estimation using the three-dimensional self-detection data 712 and the two-dimensional map (S716). The method for self-position estimation using the two-dimensional map is the same as the method described above for handling abnormal case 1.
[0428] On the other hand, if it is determined that a three-dimensional map 711 is necessary (Yes in S714), the vehicle acquires the three-dimensional map 711 (S717). Next, the vehicle performs self-position estimation using the self-detection three-dimensional data 712 and the three-dimensional map 711 (S718).
[0429] The vehicle may switch between using the two-dimensional map as the primary method and the three-dimensional map 711 as the primary method, depending on the speed supported by the vehicle's communication equipment or the conditions of the communication path. For example, if the communication speed required when driving while receiving the three-dimensional map 711 is pre-set, the vehicle may use the two-dimensional map as the primary method when the communication speed during driving is less than or equal to the set value, and use the three-dimensional map 711 as the primary method when the communication speed during driving is greater than the set value. The vehicle may also use the two-dimensional map as the primary method without making a decision on whether to adopt the two-dimensional map or the three-dimensional map.
[0430] (Embodiment 5) This embodiment describes a method for transmitting three-dimensional data to a following vehicle. Figure 37 shows an example of the target space of the three-dimensional data to be transmitted to a following vehicle.
[0431] Vehicle 801 transmits three-dimensional data, such as point clouds, contained in a rectangular space 802 with width W, height H, and depth D located at a distance L from the vehicle 801 in front of it, to a traffic monitoring cloud that monitors road conditions or to a following vehicle at time intervals of Δt.
[0432] If a vehicle or person enters space 802 from the outside, causing a change in the three-dimensional data contained in space 802 that has been previously transmitted, vehicle 801 will also transmit the three-dimensional data of the space that has been changed.
[0433] Note that while Figure 37 shows an example where the shape of space 802 is a rectangular prism, space 802 does not necessarily have to be a rectangular prism; it only needs to include the space on the road ahead that is a blind spot for following vehicles.
[0434] It is desirable that the distance L be set to a distance at which a following vehicle can safely stop after receiving the three-dimensional data. For example, the distance L is set to the sum of the distance the following vehicle travels while it is receiving the three-dimensional data, the distance the following vehicle travels before it begins to decelerate in response to the received data, and the distance required for the following vehicle to safely stop after it begins to decelerate. Since these distances change with speed, the distance L may also change according to the vehicle's speed V, such that L = a × V + b (where a and b are constants).
[0435] The width W is set to a value greater than at least the width of the lane in which the vehicle 801 is traveling. More preferably, the width W is set to a size that includes adjacent spaces such as the left and right lanes or shoulders.
[0436] The depth D can be a fixed value, but it can also change according to the vehicle's speed V, as in D = c × V + d (where c and d are constants). Furthermore, by setting D such that D > V × Δt, the transmitted space can overlap with previously transmitted space. This allows vehicle 801 to more reliably transmit the space on the track without any omissions to following vehicles, etc.
[0437] In this way, by limiting the three-dimensional data transmitted by vehicle 801 to a space useful to following vehicles, the capacity of the transmitted three-dimensional data can be effectively reduced, thereby achieving lower communication latency and lower costs.
[0438] Next, the configuration of the three-dimensional data creation device 810 according to this embodiment will be described. Figure 38 is a block diagram showing an example of the configuration of the three-dimensional data creation device 810 according to this embodiment. This three-dimensional data creation device 810 is mounted, for example, on a vehicle 801. The three-dimensional data creation device 810 transmits and receives three-dimensional data with an external traffic monitoring cloud, a preceding vehicle, or a following vehicle, and also creates and stores three-dimensional data.
[0439] The three-dimensional data creation device 810 includes a data receiving unit 811, a communication unit 812, a reception control unit 813, a format conversion unit 814, a plurality of sensors 815, a three-dimensional data creation unit 816, a three-dimensional data synthesis unit 817, a three-dimensional data storage unit 818, a communication unit 819, a transmission control unit 820, a format conversion unit 821, and a data transmission unit 822.
[0440] The data receiving unit 811 receives three-dimensional data 831 from a traffic monitoring cloud or a preceding vehicle. The three-dimensional data 831 includes information such as a point cloud, visible light images, depth information, sensor position information, or speed information, including areas that cannot be detected by the vehicle's sensors 815.
[0441] The communication unit 812 communicates with the traffic monitoring cloud or the preceding vehicle and sends data transmission requests and other messages to the traffic monitoring cloud or the preceding vehicle.
[0442] The receiving control unit 813 exchanges information such as the supported format with the communication destination via the communication unit 812 and establishes communication with the communication destination.
[0443] The format conversion unit 814 generates three-dimensional data 832 by performing format conversion on the three-dimensional data 831 received by the data reception unit 811. Furthermore, if the three-dimensional data 831 is compressed or encoded, the format conversion unit 814 performs decompression or decoding.
[0444] Multiple sensors 815 are a group of sensors that acquire information from outside the vehicle 801, such as a LiDAR, a visible light camera, or an infrared camera, and generate sensor information 833. For example, if sensor 815 is a laser sensor such as a LiDAR, the sensor information 833 is three-dimensional data such as a point cloud. Note that there are not necessarily multiple sensors 815.
[0445] The three-dimensional data creation unit 816 generates three-dimensional data 834 from the sensor information 833. The three-dimensional data 834 includes information such as a point cloud, visible light image, depth information, sensor position information, or velocity information.
[0446] The three-dimensional data synthesis unit 817 synthesizes three-dimensional data 835, which includes the space in front of the preceding vehicle that cannot be detected by the vehicle's sensors 815, by combining three-dimensional data 834 created based on the vehicle's sensor information 833 with three-dimensional data 832 created by the traffic monitoring cloud or the preceding vehicle.
[0447] The three-dimensional data storage unit 818 stores the generated three-dimensional data 835, etc.
[0448] The communication unit 819 communicates with the traffic monitoring cloud or following vehicles and sends data transmission requests, etc., to the traffic monitoring cloud or following vehicles.
[0449] The transmission control unit 820 exchanges information such as the supported format with the communication destination via the communication unit 819 and establishes communication with the communication destination. The transmission control unit 820 also determines the transmission area, which is the space of the three-dimensional data to be transmitted, based on the three-dimensional data construction information of the three-dimensional data 832 generated by the three-dimensional data synthesis unit 817 and the data transmission request from the communication destination.
[0450] Specifically, the transmission control unit 820 determines a transmission area that includes the space in front of its own vehicle that cannot be detected by the sensors of the following vehicle, in response to a data transmission request from the traffic monitoring cloud or a following vehicle. The transmission control unit 820 also determines the transmission area by determining whether the transmissionable space or the transmitted space has been updated based on the three-dimensional data construction information. For example, the transmission control unit 820 determines the transmission area to be the area specified in the data transmission request and in which the corresponding three-dimensional data 835 exists. The transmission control unit 820 then notifies the format conversion unit 821 of the format supported by the communication destination and the transmission area.
[0451] The format conversion unit 821 generates three-dimensional data 837 by converting the three-dimensional data 836 in the transmission area from the three-dimensional data 835 stored in the three-dimensional data storage unit 818 to a format supported by the receiving side. The format conversion unit 821 may also reduce the amount of data by compressing or encoding the three-dimensional data 837.
[0452] The data transmission unit 822 transmits three-dimensional data 837 to a traffic monitoring cloud or following vehicles. This three-dimensional data 837 includes, for example, information such as a point cloud in front of the vehicle, including areas that are blind spots for following vehicles, visible light images, depth information, or sensor position information.
[0453] Although this example describes a case where format conversion is performed by the format conversion units 814 and 821, format conversion is not required.
[0454] With this configuration, the three-dimensional data creation device 810 acquires three-dimensional data 831 from an external source for areas that cannot be detected by the vehicle's sensors 815, and generates three-dimensional data 835 by combining the three-dimensional data 831 with three-dimensional data 834 based on sensor information 833 detected by the vehicle's sensors 815. In this way, the three-dimensional data creation device 810 can generate three-dimensional data for areas that cannot be detected by the vehicle's sensors 815.
[0455] Furthermore, the three-dimensional data creation device 810 can transmit three-dimensional data, including the space in front of its own vehicle that cannot be detected by the sensors of the following vehicle, to the traffic monitoring cloud or following vehicle in response to a data transmission request from the traffic monitoring cloud or following vehicle.
[0456] Next, the procedure for transmitting three-dimensional data to a following vehicle using the three-dimensional data creation device 810 will be described. Figure 39 is a flowchart showing an example of the procedure for transmitting three-dimensional data to a traffic monitoring cloud or a following vehicle using the three-dimensional data creation device 810.
[0457] First, the three-dimensional data creation device 810 generates and updates three-dimensional data 835 of the space including the space 802 on the road in front of the vehicle 801 (S801). Specifically, the three-dimensional data creation device 810 constructs three-dimensional data 835 that includes the space in front of the vehicle in front of which cannot be detected by the vehicle's sensors 815, by combining three-dimensional data 834 created based on the sensor information 833 of the vehicle 801 with three-dimensional data 831 created by the traffic monitoring cloud or the vehicle in front of it.
[0458] Next, the three-dimensional data creation device 810 determines whether the three-dimensional data 835 contained in the transmitted space has changed (S802).
[0459] If a vehicle or person enters the transmitted space from the outside, causing a change in the three-dimensional data 835 contained in that space (Yes in S802), the three-dimensional data creation device 810 transmits the three-dimensional data, including the three-dimensional data 835 of the space that has been changed, to the traffic monitoring cloud or the following vehicle (S803).
[0460] The 3D data creation device 810 may transmit the 3D data of the space where the change has occurred in accordance with the transmission timing of the 3D data transmitted at predetermined intervals, or it may transmit it immediately after detecting the change. In other words, the 3D data creation device 810 may transmit the 3D data of the space where the change has occurred with priority over the 3D data transmitted at predetermined intervals.
[0461] Furthermore, the three-dimensional data creation device 810 may transmit all of the three-dimensional data of the space in which the change occurred, or it may transmit only the difference in the three-dimensional data (for example, information on three-dimensional points that have appeared or disappeared, or displacement information of three-dimensional points).
[0462] Furthermore, the three-dimensional data creation device 810 may transmit metadata related to its own vehicle's hazard avoidance actions, such as sudden braking warnings, to following vehicles prior to the three-dimensional data of the space where the change has occurred. This allows following vehicles to recognize sudden braking by the preceding vehicle earlier and initiate hazard avoidance actions such as deceleration earlier.
[0463] If no change has occurred in the three-dimensional data 835 contained in the transmitted space (No in S802), or after step S803, the three-dimensional data creation device 810 transmits the three-dimensional data contained in a space of a predetermined shape located at a distance L in front of its own vehicle 801 to the traffic monitoring cloud or a following vehicle (S804).
[0464] Furthermore, for example, the processes in steps S801 to S804 are repeated at predetermined time intervals.
[0465] Furthermore, if there is no difference between the three-dimensional data 835 of the currently transmitted space 802 and the three-dimensional map, the three-dimensional data creation device 810 does not need to transmit the three-dimensional data 837 of space 802.
[0466] Figure 40 is a flowchart showing the operation of the three-dimensional data creation device 810 in this case.
[0467] First, the three-dimensional data creation device 810 generates and updates three-dimensional data 835 of the space including the space 802 on the road in front of the vehicle 801 (S811).
[0468] Next, the three-dimensional data creation device 810 determines whether there are any updates from the three-dimensional map to the three-dimensional data 835 of the generated space 802 (S812). In other words, the three-dimensional data creation device 810 determines whether there is a difference between the three-dimensional data 835 of the generated space 802 and the three-dimensional map. Here, the three-dimensional map is three-dimensional map information managed by infrastructure-side devices such as a traffic monitoring cloud. For example, this three-dimensional map is acquired as three-dimensional data 831.
[0469] If there is an update (Yes in S812), the three-dimensional data creation device 810 transmits the three-dimensional data contained in space 802 to the traffic monitoring cloud or the following vehicle, in the same manner as described above (S813).
[0470] On the other hand, if there is no update (No in S812), the 3D data creation device 810 does not transmit the 3D data contained in space 802 to the traffic monitoring cloud and following vehicles (S814). The 3D data creation device 810 may also control the transmission of the 3D data of space 802 by setting the volume of space 802 to zero. The 3D data creation device 810 may also transmit information indicating that there is no update in space 802 to the traffic monitoring cloud or following vehicles.
[0471] Therefore, for example, if there are no obstacles on the road, there will be no difference between the generated 3D data 835 and the 3D map on the infrastructure side, and no data will be transmitted. In this way, the transmission of unnecessary data can be suppressed.
[0472] In the above description, an example was given in which the three-dimensional data creation device 810 is mounted on a vehicle, but the three-dimensional data creation device 810 is not limited to a vehicle and may be mounted on any moving object.
[0473] As described above, the three-dimensional data creation device 810 according to this embodiment is mounted on a mobile body that includes a sensor 815 and a communication unit (data receiving unit 811 or data transmitting unit 822, etc.) for sending and receiving three-dimensional data to and from the outside. The three-dimensional data creation device 810 creates three-dimensional data 835 (second three-dimensional data) based on sensor information 833 detected by the sensor 815 and three-dimensional data 831 (first three-dimensional data) received by the data receiving unit 811. The three-dimensional data creation device 810 transmits three-dimensional data 837, which is a part of the three-dimensional data 835, to the outside.
[0474] As a result, the 3D data creation device 810 can generate 3D data in areas that cannot be detected by its own vehicle. Furthermore, the 3D data creation device 810 can transmit 3D data in areas that cannot be detected by other vehicles to those other vehicles.
[0475] Furthermore, the three-dimensional data creation device 810 repeatedly creates three-dimensional data 835 and transmits three-dimensional data 837 at predetermined intervals. Three-dimensional data 837 is three-dimensional data of a small space 802 of a predetermined size located at a predetermined distance L in the direction of movement of the vehicle 801 from the current position of the vehicle 801.
[0476] This limits the range of the transmitted three-dimensional data 837, thereby reducing the amount of data transmitted.
[0477] Furthermore, the predetermined distance L changes according to the vehicle 801's speed V. For example, the greater the speed V, the longer the predetermined distance L becomes. This allows the vehicle 801 to set an appropriate small space 802 according to its speed V and transmit three-dimensional data 837 of the small space 802 to a following vehicle or the like.
[0478] Furthermore, the predetermined size changes according to the vehicle 801's movement speed V. For example, the larger the movement speed V, the larger the predetermined size. For example, the larger the movement speed V, the larger the depth D, which is the length of the small space 802 in the direction of vehicle movement. As a result, the vehicle 801 can set an appropriate small space 802 according to the vehicle 801's movement speed V and transmit the three-dimensional data 837 of the small space 802 to a following vehicle or the like.
[0479] Furthermore, the three-dimensional data creation device 810 determines whether there has been a change in the three-dimensional data 835 of the small space 802 corresponding to the transmitted three-dimensional data 837. If the three-dimensional data creation device 810 determines that there has been a change, it transmits the three-dimensional data 837 (fourth three-dimensional data), which is at least a part of the three-dimensional data 835 that has been changed, to an external following vehicle or the like.
[0480] This allows vehicle 801 to transmit three-dimensional data 837 of the space where the change occurred to following vehicles, etc.
[0481] Furthermore, the 3D data creation device 810 prioritizes the transmission of the changed 3D data 837 (fourth 3D data) over the regular 3D data 837 (third 3D data) that is transmitted periodically. Specifically, the 3D data creation device 810 transmits the changed 3D data 837 (fourth 3D data) before the transmission of the regular 3D data 837 (third 3D data) that is transmitted periodically. In other words, the 3D data creation device 810 transmits the changed 3D data 837 (fourth 3D data) irregularly, without waiting for the transmission of the regular 3D data 837 that is transmitted periodically.
[0482] As a result, vehicle 801 can preferentially transmit the three-dimensional data 837 of the space where the change occurred to following vehicles, allowing them to quickly make decisions based on the three-dimensional data.
[0483] Furthermore, the modified three-dimensional data 837 (fourth three-dimensional data) shows the difference between the three-dimensional data 835 of the small space 802 corresponding to the transmitted three-dimensional data 837 and the modified three-dimensional data 835. This reduces the amount of data transmitted for the three-dimensional data 837.
[0484] Furthermore, if there is no difference between the three-dimensional data 837 of small space 802 and the three-dimensional data 831 of small space 802, the three-dimensional data creation device 810 will not transmit the three-dimensional data 837 of small space 802. In addition, the three-dimensional data creation device 810 may transmit information to the outside indicating that there is no difference between the three-dimensional data 837 of small space 802 and the three-dimensional data 831 of small space 802.
[0485] This suppresses the transmission of unnecessary three-dimensional data 837, thereby reducing the amount of three-dimensional data 837 transmitted.
[0486] (Embodiment 6) This embodiment describes a display device and display method for displaying information obtained from a three-dimensional map, as well as a storage device and storage method for the three-dimensional map.
[0487] Mobile devices such as cars or robots utilize three-dimensional maps obtained through communication with servers or other vehicles, as well as two-dimensional images or three-dimensional self-detection data obtained from sensors mounted on the vehicle, for autonomous driving of cars or autonomous movement of robots. The data that users may want to view or save will vary depending on the situation. The following describes a display device that switches the display according to the situation.
[0488] Figure 41 is a flowchart illustrating the overview of the display method using a display device. The display device is mounted on a mobile body such as a car or robot. In the following explanation, we will describe an example where the mobile body is a vehicle (automobile).
[0489] First, the display device decides whether to display two-dimensional or three-dimensional peripheral information depending on the vehicle's driving status (S901). The two-dimensional peripheral information corresponds to the first peripheral information, and the three-dimensional peripheral information corresponds to the second peripheral information. Here, peripheral information refers to information indicating the surroundings of a moving object, such as a video image taken from the vehicle in a predetermined direction, or a map of the area around the vehicle.
[0490] Two-dimensional peripheral information refers to information generated using two-dimensional data. Here, two-dimensional data refers to two-dimensional map information or video. For example, two-dimensional peripheral information could be a map of the area around a vehicle obtained from a two-dimensional map, or video footage obtained from a camera mounted on the vehicle. Furthermore, two-dimensional peripheral information does not include, for example, three-dimensional information. In other words, if the two-dimensional peripheral information is a map of the area around a vehicle, the map does not include height information. Similarly, if the two-dimensional peripheral information is video footage obtained from a camera, the video does not include depth information.
[0491] Furthermore, three-dimensional surrounding information refers to information generated using three-dimensional data. Here, three-dimensional data refers to, for example, a three-dimensional map. Note that three-dimensional data may also be information indicating the three-dimensional position or shape of objects around the vehicle, obtained from other vehicles or servers, or detected by the vehicle itself. For example, three-dimensional surrounding information is a two-dimensional or three-dimensional image or map of the area around the vehicle, generated using a three-dimensional map. Furthermore, three-dimensional surrounding information may include, for example, three-dimensional information. For example, if the three-dimensional surrounding information is an image of the area in front of the vehicle, the image may include information indicating the distance to objects within the image. Alternatively, the image may display, for example, a pedestrian located behind the vehicle in front. Furthermore, three-dimensional surrounding information may be an image obtained from sensors mounted on the vehicle with this distance or pedestrian information superimposed. Furthermore, three-dimensional surrounding information may be a two-dimensional map with height information superimposed.
[0492] Furthermore, three-dimensional data may be displayed in three dimensions, or two-dimensional images or maps obtained from three-dimensional data may be displayed on a two-dimensional display or the like.
[0493] If it is decided in step S901 to display three-dimensional peripheral information (Yes in S902), the display device displays the three-dimensional peripheral information (S903). On the other hand, if it is decided in step S901 to display two-dimensional peripheral information (No in S902), the display device displays the two-dimensional peripheral information (S904). In this way, the display device displays either the three-dimensional or two-dimensional peripheral information that was decided to be displayed in step S901.
[0494] The following are specific examples. In the first example, the display device switches the surrounding information it shows depending on whether the vehicle is in autonomous or manual driving mode. Specifically, when the vehicle is in autonomous driving mode, the driver does not need to know detailed surrounding road information, so the display device shows two-dimensional surrounding information (e.g., a two-dimensional map). On the other hand, when the vehicle is in manual driving mode, it displays three-dimensional surrounding information (e.g., a three-dimensional map) so that the driver can see detailed surrounding road information for safe driving.
[0495] Furthermore, during autonomous driving, the display device may show the user what information the vehicle is using to drive, including information that influenced the driving operation (for example, SWLD used for self-position estimation, lane markings, road signs, and surrounding environment detection results). For example, the display device may display this information in addition to a two-dimensional map.
[0496] The surrounding information displayed during autonomous and manual driving is merely an example, and the display device may display three-dimensional surrounding information during autonomous driving and two-dimensional surrounding information during manual driving. Furthermore, the display device may, in addition to two-dimensional or three-dimensional maps or images, display metadata or surrounding situation detection results during at least one of autonomous or manual driving, or it may display metadata or surrounding situation detection results instead of two-dimensional or three-dimensional maps or images. Here, metadata refers to information indicating the three-dimensional position or three-dimensional shape of an object obtained from a server or another vehicle. Surrounding situation detection results refer to information indicating the three-dimensional position or three-dimensional shape of an object detected by the vehicle itself.
[0497] In the second example, the display device switches the displayed surrounding information according to the driving environment. For example, the display device switches the displayed surrounding information according to the brightness of the outside world. Specifically, when it is bright around the vehicle, the display device displays a two-dimensional image obtained from a camera mounted on the vehicle, or three-dimensional surrounding information created using that two-dimensional image. On the other hand, when it is dark around the vehicle, the display device displays three-dimensional surrounding information created using LiDAR or millimeter-wave radar, because the two-dimensional image obtained from the camera mounted on the vehicle is too dark to view.
[0498] Furthermore, the display device may switch the surrounding information it displays depending on the driving area, which is the region in which the vehicle is currently located. For example, in tourist areas, urban areas, or near a destination, the display device may display three-dimensional surrounding information to provide the user with information about surrounding buildings, etc. On the other hand, in mountainous areas or suburbs, where detailed surrounding information is often not necessary, the display device may display two-dimensional surrounding information.
[0499] Furthermore, the display device may switch the displayed surrounding information based on weather conditions. For example, in clear weather, the display device displays three-dimensional surrounding information created using a camera or lidar. On the other hand, in rainy or foggy conditions, the display device displays three-dimensional surrounding information created using millimeter-wave radar, as three-dimensional surrounding information from a camera or lidar is prone to noise.
[0500] Furthermore, these displays may be switched automatically by the system or manually by the user.
[0501] Furthermore, three-dimensional surrounding information is generated from two-dimensional map data including dense point cloud data generated based on WLD, mesh data generated based on MWLD, sparse data generated based on SWLD, lane data generated based on lane world, and three-dimensional shape information of roads and intersections, as well as metadata or vehicle detection results that include three-dimensional position or shape information that changes in real time.
[0502] As mentioned above, WLD is three-dimensional point cloud data, SWLD is data obtained by extracting point clouds from WLD where the feature value is above a threshold, and MWLD is data with a mesh structure generated from WLD. Lane world is data obtained by extracting point clouds from WLD where the feature value is above a threshold and is necessary for self-localization, driving assistance, or autonomous driving.
[0503] Here, MWLD and SWLD use less data than WLD. Therefore, by using WLD when more detailed data is needed, and MWLD or SWLD when necessary, the amount of communication data and processing load can be appropriately reduced. Furthermore, lane world uses less data than SWLD. Therefore, by using lane world, the amount of communication data and processing load can be further reduced.
[0504] Furthermore, although the above describes an example of switching between two-dimensional and three-dimensional peripheral information, the display device may also switch the type of data (WLD, SWLD, etc.) used to generate the three-dimensional peripheral information based on the above conditions. In other words, in the above description, when the display device displays three-dimensional peripheral information, it may display three-dimensional peripheral information generated from a first data set with a larger data volume (e.g., WLD or SWLD), and when the display device displays two-dimensional peripheral information, it may display three-dimensional peripheral information generated from a second data set with a smaller data volume than the first data set (e.g., SWLD or lane world) instead of two-dimensional peripheral information.
[0505] Furthermore, the display device may display two-dimensional or three-dimensional peripheral information on, for example, a two-dimensional display, head-up display, or head-mounted display mounted on the vehicle. Alternatively, the display device may transmit and display two-dimensional or three-dimensional peripheral information to a mobile terminal such as a smartphone via wireless communication. In other words, the display device is not limited to those mounted on a moving vehicle, but can be anything that works in conjunction with a moving vehicle. For example, when a user possessing a display device such as a smartphone boards or drives a moving vehicle, information about the vehicle, such as the vehicle's position based on the vehicle's self-position estimation, is displayed on the display device, or this information is displayed on the display device together with the peripheral information.
[0506] Furthermore, when displaying a three-dimensional map, the display device may either render the three-dimensional map and display it as two-dimensional data, or it may display it as three-dimensional data using a three-dimensional display or a three-dimensional hologram.
[0507] Next, we will explain how to save the 3D map. Mobile objects such as cars or robots utilize 3D maps obtained through communication with a server or other vehicles, as well as 2D images obtained from sensors mounted on the vehicle, or 3D data detected by the vehicle itself, for autonomous driving of cars or autonomous movement of robots. Of this data, the data that users may want to view or save will vary depending on the situation. The following describes how to save data according to the situation.
[0508] The storage device is mounted on a mobile body such as a car or robot. In the following example, the mobile body is described as a vehicle (automobile). Furthermore, the storage device may be included in the display device described above.
[0509] In the first example, the storage device decides whether or not to save the 3D map based on the region. By saving the 3D map to the vehicle's storage medium, autonomous driving becomes possible within the saved space without communication with a server. However, due to limitations in storage capacity, only a limited amount of data can be stored. Therefore, the storage device limits the region to which data is saved, as shown below.
[0510] For example, the storage device prioritizes saving 3D maps of frequently used areas, such as commute routes or the area around one's home. This eliminates the need to retrieve data for frequently used areas each time. This eliminates the need for data transfer, effectively reducing the amount of data transmitted. Prioritizing data storage means saving data with higher priority within a predetermined storage capacity. For example, if new data cannot be saved within the storage capacity, data with a lower priority than the new data will be deleted.
[0511] Alternatively, the storage device can prioritize saving 3D maps of areas with poor communication environments. This eliminates the need to acquire data via communication in areas with poor communication environments, thus reducing the occurrence of cases where 3D maps cannot be acquired due to poor communication.
[0512] Alternatively, the storage device prioritizes saving 3D maps of areas with high traffic volume. This allows for the priority saving of 3D maps of areas with a high accident rate. Therefore, it is possible to suppress the reduction in the accuracy of autonomous driving or driver assistance that occurs in such areas due to communication failures preventing the acquisition of 3D maps.
[0513] Alternatively, the storage device prioritizes saving 3D maps of areas with low traffic volume. In areas with low traffic volume, the automatic driving mode that automatically follows the vehicle in front is less likely to be available. This may necessitate more detailed surrounding information. Therefore, prioritizing the saving of 3D maps of areas with low traffic volume can improve the accuracy of automatic driving or driver assistance in such areas.
[0514] Furthermore, the above saving methods may be combined. The regions where these 3D maps are preferentially saved may be automatically determined by the system or specified by the user.
[0515] Furthermore, the storage device may delete 3D maps that have been stored for a predetermined period of time or update them with the latest data. This prevents the use of outdated map data. Additionally, when updating map data, the storage device may compare the old map with the new map to detect the difference region, which is the spatial area where there are differences, and update only the data for the areas that have changed by adding the data of the difference region from the new map to the old map, or by removing the data of the difference region from the old map.
[0516] In this example, the saved 3D map is used for autonomous driving. Therefore, by using SWLD as this 3D map, the amount of communication data can be reduced. Note that the 3D map is not limited to SWLD; other types of data such as WLD may also be used.
[0517] In the second example, the storage device saves a three-dimensional map based on events.
[0518] For example, the storage device saves special events encountered during driving as a three-dimensional map. This allows the user to later view details of the events. An example of events saved as a three-dimensional map is shown below. The storage device may also save three-dimensional surrounding information generated from the three-dimensional map.
[0519] For example, the storage device saves a three-dimensional map before and after a collision, or when a hazard is detected.
[0520] Alternatively, the storage device can save three-dimensional maps of distinctive scenes, such as beautiful scenery, crowded places, or tourist attractions.
[0521] These events to be saved may be determined automatically by the system or specified in advance by the user. For example, machine learning may be used as a method to determine these events. It's okay.
[0522] In this example, the saved 3D map is used for viewing. Therefore, by using WLD as this 3D map, high-quality video can be provided. Note that the 3D map is not limited to WLD; other types of data such as SWLD may also be used.
[0523] The following describes how the display device controls the display according to the user. When the display device overlays the surrounding situation detection results obtained from vehicle-to-vehicle communication onto a map, it may represent surrounding vehicles as wireframes or add transparency to surrounding vehicles to make detected objects behind surrounding vehicles visible. Alternatively, the display device may display an aerial view to provide an overview of the vehicle itself, surrounding vehicles, and surrounding situation detection results.
[0524] When superimposing surrounding environment detection results or point cloud data using a head-up display onto the surrounding environment visible through the windshield, as shown in Figure 42, the position where the information is superimposed may shift due to differences in the user's posture, body shape, or eye position. Figure 43 shows an example of the head-up display when the position is shifted.
[0525] To correct such discrepancies, the display device uses information from an in-car camera or sensors mounted on the seat to detect the user's posture, body shape, or eye position. The display device adjusts the position where the information is superimposed according to the detected user's posture, body shape, or eye position. Figure 44 shows an example of the head-up display after adjustment.
[0526] Alternatively, the user may manually adjust the superimposed position using a control device installed in the vehicle.
[0527] Furthermore, the display device may show safe locations on a map during a disaster and present them to the user. Alternatively, the vehicle may inform the user of the nature of the disaster and that it is heading to a safe location, and then automatically drive to that location.
[0528] For example, a vehicle might be set to target areas with high elevation to avoid being caught in a tsunami during an earthquake. In this case, the vehicle may also obtain information about roads that have become impassable due to the earthquake through communication with a server and take appropriate actions depending on the nature of the disaster, such as taking a route that avoids those roads.
[0529] Furthermore, autonomous driving may include multiple modes, such as a travel mode and a drive mode.
[0530] In travel mode, the vehicle determines a route to its destination, taking into account factors such as speed of arrival, cost, distance, and energy consumption, and then drives autonomously according to the determined route.
[0531] In Drive Mode, the vehicle automatically determines a route to arrive at the destination at the time specified by the user. For example, if the user sets a destination and arrival time, the vehicle will determine a route that takes them around nearby tourist attractions and arrives at the destination at the set time, and then automatically drives according to the determined route.
[0532] (Embodiment 7) Embodiment 5 describes an example in which a client device, such as a vehicle, transmits three-dimensional data to another vehicle or a server, such as a traffic monitoring cloud. In this embodiment, the client device transmits sensor information obtained from the sensor to the server or another client device.
[0533] First, the system configuration according to this embodiment will be described. Figure 45 is a diagram showing the configuration of the three-dimensional map and sensor information transmission and reception system according to this embodiment. This system includes a server 901 and client devices 902A and 902B. When client devices 902A and 902B are not specifically distinguished, they will also be referred to as client device 902.
[0534] The client device 902 is, for example, an in-vehicle device mounted on a moving object such as a vehicle. The server 901 is, for example, a traffic monitoring cloud and is capable of communicating with multiple client devices 902.
[0535] Server 901 transmits a three-dimensional map composed of point clouds to client device 902. Note that the composition of the three-dimensional map is not limited to point clouds; it may represent other three-dimensional data, such as a mesh structure.
[0536] The client device 902 transmits sensor information acquired by the client device 902 to the server 901. The sensor information includes, for example, at least one of the following: LIDAR acquisition information, visible light image, infrared image, depth image, sensor position information, and velocity information.
[0537] The data transmitted and received between the server 901 and the client device 902 may be compressed to reduce data size, or it may be left uncompressed to maintain data accuracy. When data is compressed, a three-dimensional compression method based on an octave structure, for example, can be used for point clouds. In addition, a two-dimensional image compression method can be used for visible light images, infrared images, and depth images. A two-dimensional image compression method is, for example, MPEG-4 AVC or HEVC, which are standardized by MPEG.
[0538] Furthermore, in response to a request from the client device 902 to send a 3D map, the server 901 sends a 3D map managed by the server 901 to the client device 902. The server 901 may also send a 3D map without waiting for a request from the client device 902. For example, the server 901 may broadcast a 3D map to one or more client devices 902 located in a predetermined space. Alternatively, the server 901 may send a 3D map appropriate to the location of the client device 902 at regular intervals after receiving a transmission request from the client device 902. The server 901 may also send a 3D map to the client device 902 whenever the 3D map managed by the server 901 is updated.
[0539] The client device 902 sends a request to the server 901 to send a three-dimensional map. For example, if the client device 902 wants to perform self-position estimation while driving, the client device 902 sends a request to the server 901 to send a three-dimensional map.
[0540] Furthermore, the client device 902 may request the server 901 to send a 3D map in the following cases: If the 3D map held by the client device 902 is outdated, the client device 902 may request the server 901 to send a 3D map. For example, if a certain period of time has elapsed since the client device 902 acquired the 3D map, the client device 902 may request the server 901 to send a 3D map.
[0541] Client device 902 may request server 901 to send the 3D map to a server 901 a certain time before client device 902 leaves the space represented by the 3D map held by client device 902. For example, client device 902 may request server 901 to send the 3D map to a server 901 if it is within a predetermined distance from the boundary of the space represented by the 3D map held by client device 902. Also, if the movement path and speed of client device 902 are known, Based on these factors, the time at which the client device 902 leaves the space represented by the three-dimensional map held by the client device 902 may be predicted.
[0542] If the error in the alignment between the three-dimensional data created by the client device 902 from sensor information and the three-dimensional map exceeds a certain level, the client device 902 may request the server 901 to send the three-dimensional map.
[0543] The client device 902 transmits sensor information to the server 901 in response to a request for transmission of sensor information sent from the server 901. The client device 902 may also send sensor information to the server 901 without waiting for a request for transmission of sensor information from the server 901. For example, once the client device 902 receives a request for transmission of sensor information from the server 901, it may periodically transmit sensor information to the server 901 for a certain period. Furthermore, if the error in the alignment between the three-dimensional data created by the client device 902 based on the sensor information and the three-dimensional map obtained from the server 901 exceeds a certain level, the client device 902 may determine that a change has occurred in the three-dimensional map around the client device 902 and transmit this information, along with the sensor information, to the server 901.
[0544] Server 901 requests client device 902 to transmit sensor information. For example, Server 901 receives location information of client device 902, such as GPS, from client device 902. Based on the location information of client device 902, if Server 901 determines that client device 902 is approaching an area with little information on the three-dimensional map managed by Server 901, it requests client device 902 to transmit sensor information in order to generate a new three-dimensional map. Server 901 may also request sensor information transmission if it wants to update the three-dimensional map, check road conditions during snowfall or disasters, check traffic congestion, or check incidents and accidents.
[0545] Furthermore, the client device 902 may set the amount of sensor information data to send to the server 901 depending on the communication status or bandwidth at the time of receiving the sensor information transmission request from the server 901. Setting the amount of sensor information data to send to the server 901 means, for example, increasing or decreasing the data itself, or selecting an appropriate compression method.
[0546] Figure 46 is a block diagram showing an example configuration of the client device 902. The client device 902 receives a three-dimensional map composed of a point cloud, etc., from the server 901 and estimates its own position from the three-dimensional data created based on the sensor information of the client device 902. The client device 902 also transmits the acquired sensor information to the server 901.
[0547] The client device 902 includes a data receiving unit 1011, a communication unit 1012, a reception control unit 1013, a format conversion unit 1014, a plurality of sensors 1015, a three-dimensional data creation unit 1016, a three-dimensional image processing unit 1017, a three-dimensional data storage unit 1018, a format conversion unit 1019, a communication unit 1020, a transmission control unit 1021, and a data transmission unit 1022.
[0548] The data receiving unit 1011 receives the three-dimensional map 1031 from the server 901. The three-dimensional map 1031 is data that includes point clouds such as WLD or SWLD. The three-dimensional map 1031 may contain either compressed or uncompressed data.
[0549] The communication unit 1012 communicates with the server 901 and sends data transmission requests (for example, a request to transmit a 3D map) to the server 901.
[0550] The receiving control unit 1013 exchanges information such as the supported format with the communication destination via the communication unit 1012 and establishes communication with the communication destination.
[0551] The format conversion unit 1014 generates a three-dimensional map 1032 by performing format conversion on the three-dimensional map 1031 received by the data reception unit 1011. Furthermore, if the three-dimensional map 1031 is compressed or encoded, the format conversion unit 1014 performs decompression or decoding. However, if the three-dimensional map 1031 is uncompressed data, the format conversion unit 1014 does not perform decompression or decoding.
[0552] Multiple sensors 1015 are a group of sensors that acquire external information from the vehicle on which the client device 902 is installed, such as a LiDAR, visible light camera, infrared camera, or depth sensor, and generate sensor information 1033. For example, if sensor 1015 is a laser sensor such as LiDAR, the sensor information 1033 is three-dimensional data such as a point cloud (point cloud data). Note that there are not necessarily multiple sensors 1015.
[0553] The three-dimensional data creation unit 1016 creates three-dimensional data 1034 of the vehicle's surroundings based on the sensor information 1033. For example, the three-dimensional data creation unit 1016 uses information acquired by LIDAR and visible light images obtained by a visible light camera to create point cloud data with color information of the vehicle's surroundings.
[0554] The three-dimensional image processing unit 1017 uses the received three-dimensional map 1032, such as a point cloud, and the three-dimensional data 1034 of the vehicle's surroundings generated from sensor information 1033 to perform self-position estimation processing for the vehicle. Alternatively, the three-dimensional image processing unit 1017 may create three-dimensional data 1035 of the vehicle's surroundings by combining the three-dimensional map 1032 and the three-dimensional data 1034, and then perform self-position estimation processing using the created three-dimensional data 1035.
[0555] The three-dimensional data storage unit 1018 stores the three-dimensional map 1032, three-dimensional data 1034, and three-dimensional data 1035, etc.
[0556] The format conversion unit 1019 generates sensor information 1037 by converting the sensor information 1033 to a format supported by the receiving side. The format conversion unit 1019 may also reduce the amount of data by compressing or encoding the sensor information 1037. Furthermore, the format conversion unit 1019 may omit processing if format conversion is not necessary. The format conversion unit 1019 may also control the amount of data transmitted according to the specified transmission range.
[0557] The communication unit 1020 communicates with the server 901 and receives data transmission requests (sensor information transmission requests), etc., from the server 901.
[0558] The transmission control unit 1021 exchanges information such as the supported format with the communication destination via the communication unit 1020 and establishes communication.
[0559] The data transmission unit 1022 transmits sensor information 1037 to the server 901. The sensor information 1037 includes information acquired by multiple sensors 1015, such as information acquired by a LiDAR, a brightness image acquired by a visible light camera, an infrared image acquired by an infrared camera, a depth image acquired by a depth sensor, sensor position information, and velocity information.
[0560] Next, the configuration of server 901 will be described. Figure 47 is a block diagram showing an example configuration of server 901. Server 901 receives sensor information transmitted from client device 902. Based on the received sensor information, three-dimensional data is created. Server 901 uses the created three-dimensional data to update the three-dimensional map it manages. In addition, in response to a request from client device 902 to send the three-dimensional map, server 901 sends the updated three-dimensional map to client device 902.
[0561] Server 901 comprises a data receiving unit 1111, a communication unit 1112, a reception control unit 1113, a format conversion unit 1114, a three-dimensional data creation unit 1116, a three-dimensional data synthesis unit 1117, a three-dimensional data storage unit 1118, a format conversion unit 1119, a communication unit 1120, a transmission control unit 1121, and a data transmission unit 1122.
[0562] The data receiving unit 1111 receives sensor information 1037 from the client device 902. The sensor information 1037 includes, for example, information acquired by LIDAR, brightness images acquired by a visible light camera, infrared images acquired by an infrared camera, depth images acquired by a depth sensor, sensor position information, and velocity information.
[0563] The communication unit 1112 communicates with the client device 902 and sends data transmission requests (for example, requests to transmit sensor information) to the client device 902.
[0564] The receiving control unit 1113 exchanges information such as the supported format with the communication destination via the communication unit 1112 and establishes communication.
[0565] The format conversion unit 1114 generates sensor information 1132 by decompressing or decoding the received sensor information 1037 if it is compressed or encoded. However, the format conversion unit 1114 does not perform decompression or decoding if the sensor information 1037 is uncompressed data.
[0566] The three-dimensional data creation unit 1116 creates three-dimensional data 1134 of the area around the client device 902 based on the sensor information 1132. For example, the three-dimensional data creation unit 1116 uses information acquired by LIDAR and visible light images obtained by a visible light camera to create point cloud data with color information of the area around the client device 902.
[0567] The three-dimensional data synthesis unit 1117 updates the three-dimensional map 1135 managed by the server 901 by synthesizing the three-dimensional data 1134, which was created based on the sensor information 1132, with the three-dimensional map 1135.
[0568] The three-dimensional data storage unit 1118 stores three-dimensional maps 1135, etc.
[0569] The format conversion unit 1119 generates a three-dimensional map 1031 by converting the three-dimensional map 1135 to a format supported by the receiving side. The format conversion unit 1119 may also reduce the amount of data by compressing or encoding the three-dimensional map 1135. Furthermore, the format conversion unit 1119 may omit processing if format conversion is not necessary. The format conversion unit 1119 may also control the amount of data transmitted according to the specified transmission range.
[0570] The communication unit 1120 communicates with the client device 902 and receives data transmission requests (such as requests to transmit a three-dimensional map) from the client device 902.
[0571] The transmission control unit 1121 exchanges information such as the supported format with the communication destination via the communication unit 1120 and establishes communication.
[0572] The data transmission unit 1122 transmits the three-dimensional map 1031 to the client device 902. The three-dimensional map 1031 is data that includes point clouds such as WLD or SWLD. The three-dimensional map 1031 may contain either compressed or uncompressed data.
[0573] Next, we will describe the operation flow of the client device 902. Figure 48 is a flowchart showing the operation of the client device 902 when acquiring a three-dimensional map.
[0574] First, the client device 902 requests the server 901 to transmit a three-dimensional map (such as a point cloud) (S1001). At this time, the client device 902 may also transmit its own location information obtained by GPS or the like, and request the server 901 to transmit a three-dimensional map related to that location information.
[0575] Next, the client device 902 receives a three-dimensional map from the server 901 (S1002). If the received three-dimensional map is compressed data, the client device 902 decodes the received three-dimensional map to generate an uncompressed three-dimensional map (S1003).
[0576] Next, the client device 902 creates three-dimensional data 1034 of the area around the client device 902 from sensor information 1033 obtained from multiple sensors 1015 (S1004). Then, the client device 902 estimates its own position using the three-dimensional map 1032 received from the server 901 and the three-dimensional data 1034 created from the sensor information 1033 (S1005).
[0577] Figure 49 is a flowchart showing the operation of the client device 902 when transmitting sensor information. First, the client device 902 receives a request to transmit sensor information from the server 901 (S1011). Upon receiving the transmission request, the client device 902 transmits the sensor information 1037 to the server 901 (S1012). If the sensor information 1033 includes multiple pieces of information obtained from multiple sensors 1015, the client device 902 may generate the sensor information 1037 by compressing each piece of information using a compression method suitable for each piece of information.
[0578] Next, the operation flow of server 901 will be described. Figure 50 is a flowchart showing the operation of server 901 when acquiring sensor information. First, server 901 requests client device 902 to send sensor information (S1021). Next, server 901 receives sensor information 1037 sent from client device 902 in response to the request (S1022). Next, server 901 creates three-dimensional data 1134 using the received sensor information 1037 (S1023). Next, server 901 reflects the created three-dimensional data 1134 in the three-dimensional map 1135 (S1024).
[0579] Figure 51 is a flowchart illustrating the operation of server 901 when transmitting a three-dimensional map. First, server 901 receives a request to transmit a three-dimensional map from client device 902 (S1031). Upon receiving the request to transmit a three-dimensional map, server 901 transmits the three-dimensional map 1031 to client device 902 (S1032). At this time, server 901 may extract a three-dimensional map of the vicinity of client device 902 according to its location information and transmit the extracted three-dimensional map. Alternatively, server 901 may compress the three-dimensional map composed of a point cloud using, for example, an octave tree compression method, and transmit the compressed three-dimensional map.
[0580] Modifications of this embodiment will be described below.
[0581] Server 901 uses sensor information 1037 received from client device 902 to create three-dimensional data 1134 of the area around client device 902. Next, server 901 calculates the difference between the created three-dimensional data 1134 and the three-dimensional map 1135 of the same area managed by server 901 by matching them. If the difference is greater than or equal to a predetermined threshold, server 901 determines that some kind of abnormality has occurred around client device 902. For example, when ground subsidence occurs due to a natural disaster such as an earthquake, a large difference may occur between the three-dimensional map 1135 managed by server 901 and the three-dimensional data 1134 created based on sensor information 1037.
[0582] The sensor information 1037 may include information indicating at least one of the following: the type of sensor, the performance of the sensor, and the model number of the sensor. Furthermore, a class ID corresponding to the sensor's performance may be added to the sensor information 1037. For example, if the sensor information 1037 is information acquired by a LIDAR, it is conceivable to assign identifiers to the sensor's performance, such as class 1 for sensors that can acquire information with accuracy in the millimeter range, class 2 for sensors that can acquire information with accuracy in the centimeter range, and class 3 for sensors that can acquire information with accuracy in the meter range. The server 901 may also estimate the sensor's performance information from the model number of the client device 902. For example, if the client device 902 is mounted in a vehicle, the server 901 may determine the sensor's specifications from the vehicle's make and model. In this case, the server 901 may have previously acquired information about the vehicle's make and model, or this information may be included in the sensor information. The server 901 may also use the acquired sensor information 1037 to switch the degree of correction applied to the three-dimensional data 1134 created using the sensor information 1037. For example, if the sensor performance is high precision (Class 1), the server 901 does not perform any correction on the three-dimensional data 1134. If the sensor performance is low precision (Class 3), the server 901 applies a correction to the three-dimensional data 1134 according to the accuracy of the sensor. For example, the lower the accuracy of the sensor, the stronger the degree (intensity) of the correction applied by the server 901.
[0583] Server 901 may simultaneously send requests for the transmission of sensor information to multiple client devices 902 located in a given space. When Server 901 receives multiple sensor information from multiple client devices 902, it is not necessary to use all of the sensor information to create the three-dimensional data 1134. For example, it may select which sensor information to use depending on the performance of the sensors. For example, when updating the three-dimensional map 1135, Server 901 may select high-precision sensor information (Class 1) from the multiple sensor information received and use the selected sensor information to create the three-dimensional data 1134.
[0584] Server 901 is not limited to servers such as traffic monitoring clouds, but may also be other client devices (in-vehicle). Figure 52 shows the system configuration in this case.
[0585] For example, client device 902C requests sensor information from a nearby client device 902A and obtains the sensor information from client device 902A. Then, client device 902C uses the obtained sensor information from client device 902A to create three-dimensional data and updates the three-dimensional map of client device 902C. In this way, client device 902C can generate a three-dimensional map of the space obtainable from client device 902A, taking advantage of the performance of client device 902C. For example, this case is likely to occur when client device 902C has high performance.
[0586] In this case, client device 902A, which provided the sensor information, is granted the right to acquire the high-precision three-dimensional map generated by client device 902C. Client device 902A receives the high-precision three-dimensional map from client device 902C in accordance with that right.
[0587] Furthermore, client device 902C may send requests for the transmission of sensor information to multiple nearby client devices 902 (client devices 902A and 902B). If the sensor of client device 902A or client device 902B is high-performance, client device 902C can create three-dimensional data using the sensor information obtained from this high-performance sensor.
[0588] Figure 53 is a block diagram showing the functional configuration of the server 901 and the client device 902. The server 901 includes, for example, a three-dimensional map compression / decoding processing unit 1201 that compresses and decodes three-dimensional maps, and a sensor information compression / decoding processing unit 1202 that compresses and decodes sensor information.
[0589] The client device 902 comprises a three-dimensional map decoding processing unit 1211 and a sensor information compression processing unit 1212. The three-dimensional map decoding processing unit 1211 receives encoded data of the compressed three-dimensional map, decodes the encoded data, and obtains the three-dimensional map. The sensor information compression processing unit 1212 compresses the sensor information itself instead of the three-dimensional data created from the acquired sensor information, and sends the encoded data of the compressed sensor information to the server 901. With this configuration, the client device 902 only needs to internally store a processing unit (device or LSI) that performs the processing of decoding the three-dimensional map (point cloud, etc.), and does not need to internally store a processing unit that performs the processing of compressing the three-dimensional data of the three-dimensional map (point cloud, etc.). This reduces the cost and power consumption of the client device 902.
[0590] As described above, the client device 902 according to this embodiment is mounted on a mobile body and creates three-dimensional data 1034 of the surrounding area of the mobile body from sensor information 1033 indicating the surrounding conditions of the mobile body obtained by a sensor 1015 mounted on the mobile body. The client device 902 estimates the self-position of the mobile body using the created three-dimensional data 1034. The client device 902 transmits the acquired sensor information 1033 to the server 901 or another mobile body 902.
[0591] According to this, the client device 902 transmits sensor information 1033 to the server 901, etc. This may reduce the amount of data transmitted compared to transmitting three-dimensional data. In addition, since the client device 902 does not need to perform processing such as compression or encoding of three-dimensional data, the processing load on the client device 902 can be reduced. Therefore, the client device 902 can achieve a reduction in the amount of data transmitted or a simplification of the device configuration.
[0592] Furthermore, the client device 902 sends a request to the server 901 to send a three-dimensional map, and receives the three-dimensional map 1031 from the server 901. In estimating its own position, the client device 902 uses the three-dimensional data 1034 and the three-dimensional map 1032 to estimate its own position.
[0593] Furthermore, the sensor information 1033 includes at least one of the following: information obtained from the laser sensor, brightness image, infrared image, depth image, sensor position information, and sensor velocity information.
[0594] Furthermore, sensor information 1033 includes information indicating the performance of the sensor.
[0595] Furthermore, the client device 902 encodes or compresses the sensor information 1033, and when transmitting the sensor information, it transmits the encoded or compressed sensor information 1037 to the server 901 or another mobile device 902. This allows the client device 902 to reduce the amount of data transmitted.
[0596] For example, the client device 902 includes a processor and memory, and the processor uses the memory to perform the above processing.
[0597] Furthermore, the server 901 according to this embodiment is capable of communicating with a client device 902 mounted on the mobile body, and receives sensor information 1037 from the client device 902 that indicates the surrounding conditions of the mobile body, obtained by a sensor 1015 mounted on the mobile body. The server 901 creates three-dimensional data 1134 of the surroundings of the mobile body from the received sensor information 1037.
[0598] According to this, the server 901 creates three-dimensional data 1134 using sensor information 1037 transmitted from the client device 902. This may reduce the amount of data transmitted compared to when the client device 902 transmits the three-dimensional data. In addition, since the client device 902 does not need to perform processing such as compression or encoding of the three-dimensional data, the processing load on the client device 902 can be reduced. Therefore, the server 901 can reduce the amount of data transmitted or simplify the configuration of the device.
[0599] Furthermore, the server 901 also sends a request to the client device 902 to transmit sensor information.
[0600] Furthermore, the server 901 updates the three-dimensional map 1135 using the created three-dimensional data 1134 and sends the three-dimensional map 1135 to the client device 902 in response to a request from the client device 902 to send the three-dimensional map 1135.
[0601] Furthermore, the sensor information 1037 includes at least one of the following: information obtained from the laser sensor, brightness image, infrared image, depth image, sensor position information, and sensor velocity information.
[0602] Furthermore, sensor information 1037 includes information indicating the performance of the sensor.
[0603] Furthermore, the server 901 corrects the three-dimensional data according to the performance of the sensor. This allows the three-dimensional data creation method to improve the quality of the three-dimensional data.
[0604] Furthermore, when receiving sensor information, the server 901 receives multiple pieces of sensor information 1037 from multiple client devices 902, and selects the sensor information 1037 to be used to create the three-dimensional data 1134 based on the multiple pieces of information indicating the performance of the sensors contained in the multiple pieces of sensor information 1037. In this way, the server 901 can improve the quality of the three-dimensional data 1134.
[0605] Furthermore, the server 901 decodes or decodes the received sensor information 1037 and creates three-dimensional data 1134 from the decoded or decoded sensor information 1132. This allows the server 901 to reduce the amount of data transmitted.
[0606] For example, server 901 is equipped with a processor and memory, and the processor uses the memory to perform the above processing.
[0607] (Embodiment 8) This embodiment describes a method for encoding and decoding three-dimensional data using interpretation processing.
[0608] Figure 54 is a block diagram of the three-dimensional data encoding device 1300 according to this embodiment. This three-dimensional data encoding device 1300 generates an encoded bitstream (hereinafter also simply referred to as a bitstream), which is an encoded signal, by encoding three-dimensional data. Figure 54 As shown, the three-dimensional data coding device 1300 comprises a division unit 1301, a subtraction unit 1302, a transformation unit 1303, a quantization unit 1304, an inverse quantization unit 1305, an inverse transformation unit 1306, an addition unit 1307, a reference volume memory 1308, an intra prediction unit 1309, a reference space memory 1310, an inter prediction unit 1311, a prediction control unit 1312, and an entropy coding unit 1313.
[0609] The splitting unit 1301 divides each space (SPC) contained in the three-dimensional data into multiple volumes (VLMs), which are encoding units. The splitting unit 1301 also converts the voxels within each volume into an octree representation. The splitting unit 1301 may also make the spaces and volumes the same size and convert the spaces into an octree representation. Furthermore, the splitting unit 1301 may add information necessary for octree conversion (such as depth information) to the bitstream header, etc.
[0610] The subtraction unit 1302 calculates the difference between the volume output from the division unit 1301 (the volume to be encoded) and the predicted volume generated by the intra-prediction or inter-prediction described later, and outputs the calculated difference as the predicted residual to the conversion unit 1303. Figure 55 shows an example of the calculation of the predicted residual. The bit sequences of the volume to be encoded and the predicted volume shown here are, for example, position information indicating the positions of three-dimensional points (e.g., point clouds) included in the volume.
[0611] The following describes the octree representation and the voxel scan order. A volume is converted into an octree structure (octreeization) and then encoded. An octree structure consists of nodes and leaves. Each node has eight nodes or leaves, and each leaf has voxel (VXL) information. Figure 56 shows an example of the structure of a volume containing multiple voxels. Figure 57 shows an example of the volume shown in Figure 56 converted into an octree structure. Here, among the leaves shown in Figure 57, leaves 1, 2, and 3 represent the voxels VXL1, VXL2, and VXL3 shown in Figure 56, respectively, and represent a VXL containing a point cloud (hereinafter referred to as effective VXL).
[0612] An octree is represented, for example, by a binary sequence of 0s and 1s. For example, if nodes or valid VXLs are assigned the value 1 and all others the value 0, then each node and leaf is assigned the binary sequence shown in Figure 57. This binary sequence is then scanned according to the breadth-first or depth-first scan order. For example, if scanned in breadth-first order, the binary sequence shown in Figure 58A is obtained. If scanned in depth-first order, the binary sequence shown in Figure 58B is obtained. The binary sequence obtained by this scan is then encoded by entropy coding to reduce its information content.
[0613] Next, we will explain the depth information in octree representations. In octree representations, the depth is used to control the level of granularity to which the point cloud information contained within a volume is retained. Setting a high depth allows for the reproduction of point cloud information at a finer level, but increases the amount of data required to represent nodes and leaves. Conversely, setting a low depth reduces the amount of data, but multiple point clouds with different locations and colors are treated as being at the same location and with the same color, resulting in the loss of information that the original point cloud information contained in the data.
[0614] For example, Figure 59 shows an example where the octree with depth=2 shown in Figure 57 is represented by an octree with depth=1. The octree shown in Figure 59 has less data than the octree shown in Figure 57. In other words, the octree shown in Figure 59 has fewer bits after binary conversion than the octree shown in Figure 59. Here, leaf 1 and leaf 2 shown in Figure 57 are represented by leaf 1 shown in Figure 58. In other words, the information that leaf 1 and leaf 2 shown in Figure 57 were in different positions is lost.
[0615] Figure 60 shows a volume corresponding to the octree shown in Figure 59. VXL1 and VXL2 shown in Figure 56 correspond to VXL12 shown in Figure 60. In this case, the three-dimensional data encoding device 1300 generates the color information of VXL12 shown in Figure 60 from the color information of VXL1 and VXL2 shown in Figure 56. For example, the three-dimensional data encoding device 1300 calculates the average value, median value, or weighted average value of the color information of VXL1 and VXL2 as the color information of VXL12. In this way, the three-dimensional data encoding device 1300 may control the reduction of data volume by changing the depth of the octree.
[0616] The three-dimensional data encoding device 1300 may set the depth information of the octree in units of worlds, spaces, or volumes. In this case, the three-dimensional data encoding device 1300 may add the depth information to the header information of the world, the header information of the space, or the header information of the volume. Alternatively, the same value may be used for the depth information for all worlds, spaces, and volumes of different time periods. In this case, the three-dimensional data encoding device 1300 may add the depth information to the header information that manages the world for all time periods.
[0617] If the voxels contain color information, the conversion unit 1303 applies a frequency transformation, such as an orthogonal transformation, to the predicted residuals of the color information of the voxels in the volume. For example, the conversion unit 1303 creates a one-dimensional array by scanning the predicted residuals in a certain scan order. Then, the conversion unit 1303 converts the created one-dimensional array into the frequency domain by applying a one-dimensional orthogonal transformation to it. As a result, when the predicted residual values in the volume are close, the values of the low-frequency components become larger and the values of the high-frequency components become smaller. Therefore, the quantization unit 1304 can reduce the code amount more efficiently.
[0618] Furthermore, the transformation unit 1303 may use orthogonal transformations of two or more dimensions, rather than just one dimension. For example, the transformation unit 1303 maps the predicted residuals in a certain scan order to a two-dimensional array and applies a two-dimensional orthogonal transformation to the resulting two-dimensional array. Alternatively, the transformation unit 1303 may select an orthogonal transformation method from among multiple orthogonal transformation methods. In this case, the three-dimensional data encoding device 1300 adds information to the bitstream indicating which orthogonal transformation method was used. Alternatively, the transformation unit 1303 may select an orthogonal transformation method from among multiple orthogonal transformation methods of different dimensions. In this case, the three-dimensional data encoding device 1300 adds information to the bitstream indicating which dimension's orthogonal transformation method was used.
[0619] For example, the conversion unit 1303 matches the scan order of the predicted residuals to the scan order in the octree within the volume (such as breadth-first or depth-first). This eliminates the need to add information indicating the scan order of the predicted residuals to the bitstream, thus reducing overhead. Alternatively, the conversion unit 1303 may apply a scan order different from the octree scan order. In this case, the three-dimensional data encoding device 1300 adds information indicating the scan order of the predicted residuals to the bitstream. This allows the three-dimensional data encoding device 1300 to efficiently encode the predicted residuals. Furthermore, the three-dimensional data encoding device 1300 may add information (such as a flag) to the bitstream indicating whether or not to apply the octree scan order, and if the octree scan order is not applied, it may add information indicating the scan order of the predicted residuals to the bitstream.
[0620] The conversion unit 1303 may convert not only the predicted residual of color information but also other attribute information possessed by the voxels. For example, the conversion unit 1303 may convert and encode information such as reflectance obtained when a point cloud is acquired by LiDAR or the like.
[0621] The conversion unit 1303 may skip processing if the space does not contain attribute information such as color information. The three-dimensional data encoding device 1300 may also skip processing by the conversion unit 1303. Information (flags) indicating whether or not to perform the operation may be added to the bitstream.
[0622] The quantization unit 1304 generates quantization coefficients by quantizing the frequency components of the predicted residual generated by the conversion unit 1303 using quantization control parameters. This reduces the amount of information. The generated quantization coefficients are output to the entropy coding unit 1313. The quantization unit 1304 may control the quantization control parameters in world units, space units, or volume units. In this case, the three-dimensional data coding device 1300 adds the quantization control parameters to the respective header information. The quantization unit 1304 may also perform quantization control by changing the weight for each frequency component of the predicted residual. For example, the quantization unit 1304 may finely quantize low-frequency components and coarsely quantize high-frequency components. In this case, the three-dimensional data coding device 1300 may add parameters representing the weight of each frequency component to the header.
[0623] The quantization unit 1304 may skip processing if the space does not contain attribute information such as color information. The three-dimensional data encoding device 1300 may also add information (flags) to the bitstream indicating whether or not to skip processing by the quantization unit 1304.
[0624] The inverse quantization unit 1305 generates inverse quantization coefficients of the prediction residual by performing inverse quantization on the quantization coefficients generated by the quantization unit 1304 using quantization control parameters, and outputs the generated inverse quantization coefficients to the inverse transform unit 1306.
[0625] The inverse transform unit 1306 generates the predicted residual after the inverse transform by applying the inverse transform to the inverse quantization coefficients generated by the inverse quantization unit 1305. Since this predicted residual after the inverse transform is the predicted residual generated after quantization, it does not need to perfectly match the predicted residual output by the transform unit 1303.
[0626] The summing unit 1307 adds the predicted residual after applying the inverse transform, generated by the inverse transform unit 1306, to the predicted volume generated by the intra-prediction or inter-prediction described later, which was used to generate the predicted residual before quantization, to generate a reconstructed volume. This reconstructed volume is stored in the reference volume memory 1308 or the reference space memory 1310.
[0627] The intra prediction unit 1309 generates a predicted volume for the volume to be encoded using attribute information of adjacent volumes stored in the reference volume memory 1308. Attribute information includes voxel color information or reflectance. The intra prediction unit 1309 generates predicted values for the color information or reflectance of the volume to be encoded.
[0628] Figure 61 is a diagram illustrating the operation of the intra prediction unit 1309. For example, the intra prediction unit 1309 generates a predicted volume for the volume to be encoded (volume idx=3), as shown in Figure 61, from the adjacent volume (volume idx=0). Here, volume idx is identifier information attached to volumes within the space, and a different value is assigned to each volume. The order in which volume idx is assigned may be the same as the encoding order, or it may be a different order. For example, the intra prediction unit 1309 uses the average value of the color information of the voxels contained in the adjacent volume, volume idx=0, as the predicted value of the color information of the volume to be encoded, as shown in Figure 61. In this case, a prediction residual is generated by subtracting the predicted value of the color information from the color information of each voxel contained in the volume to be encoded. Processing from the conversion unit 1303 onwards is performed on this prediction residual. In this case, the three-dimensional data encoding device 1300 adds the adjacent volume information and the prediction mode information to the bitstream. Here, adjacent volume information refers to information indicating the adjacent volumes used in the prediction, for example, the volume IDX of the adjacent volumes used in the prediction. Also, prediction mode information refers to the information used in generating the prediction volume. This indicates the mode. A mode is, for example, an average mode that generates predicted values from the average values of voxels in adjacent volumes, or an intermediate mode that generates predicted values from the median values of voxels in adjacent volumes.
[0629] The intra-prediction unit 1309 may generate a predicted volume from multiple adjacent volumes. For example, in the configuration shown in Figure 61, the intra-prediction unit 1309 generates predicted volume 0 from the volume with volume idx=0 and predicted volume 1 from the volume with volume idx=1. The intra-prediction unit 1309 then generates the average of predicted volume 0 and predicted volume 1 as the final predicted volume. In this case, the three-dimensional data encoding device 1300 may add multiple volume idx values from the multiple volumes used to generate the predicted volume to the bitstream.
[0630] Figure 62 schematically shows the interpretation process according to this embodiment. The interpretation unit 1311 encodes (interprets) a space (SPC) at a certain time T_Cur using an encoded space at a different time T_LX. In this case, the interpretation unit 1311 performs the encoding process by applying rotation and translation processing to the encoded space at the different time T_LX.
[0631] Furthermore, the three-dimensional data encoding device 1300 adds RT information related to rotation and translation processing applied to a space at a different time T_LX to the bitstream. A different time T_LX is, for example, a time T_L0 prior to a certain time T_Cur. In this case, the three-dimensional data encoding device 1300 may also add RT information RT_L0 related to rotation and translation processing applied to the space at time T_L0 to the bitstream.
[0632] Alternatively, a different time T_LX is, for example, a time T_L1 that is later than a certain time T_Cur. In this case, the three-dimensional data encoding device 1300 may add RT information RT_L1 related to rotation and translation processing applied to the space at time T_L1 to the bitstream.
[0633] Alternatively, the interpretation unit 1311 performs encoding (dual prediction) by referring to both spaces at different times T_L0 and T_L1. In this case, the three-dimensional data encoding device 1300 may add both RT information RT_L0 and RT_L1, which relate to rotation and translation applied to each space, to the bitstream.
[0634] In the above, T_L0 is defined as a time before T_Cur and T_L1 as a time after T_Cur, but this is not necessarily the only way. For example, both T_L0 and T_L1 may be times before T_Cur. Alternatively, both T_L0 and T_L1 may be times after T_Cur.
[0635] Furthermore, when the three-dimensional data encoding device 1300 performs encoding by referencing multiple spaces at different times, it may add rotation and translation-related RT information applied to each space to the bitstream. For example, the three-dimensional data encoding device 1300 manages the multiple encoded spaces to be referenced using two reference lists (L0 list and L1 list). If the first reference space in the L0 list is L0R0, the second reference space in the L0 list is L0R1, the first reference space in the L1 list is L1R0, and the second reference space in the L1 list is L1R1, then the three-dimensional data encoding device 1300 adds the RT information RT_L0R0 for L0R0, RT information RT_L0R1 for L0R1, RT information RT_L1R0 for L1R0, and RT information RT_L1R1 for L1R1 to the bitstream. For example, the three-dimensional data encoding device 1300 adds this RT information to the bitstream header, etc.
[0636] Furthermore, when the three-dimensional data encoding device 1300 performs encoding by referencing multiple reference spaces at different times, it determines whether or not to apply rotation and translation for each reference space. In this case, the three-dimensional data encoding device 1300 may add information (such as an RT application flag) indicating whether or not rotation and translation have been applied for each reference space to the bitstream header information, etc. For example, the three-dimensional data encoding device 1300 calculates RT information and an ICP error value for each reference space referenced from the space to be encoded using the ICP (Interactive Closest Point) algorithm. If the ICP error value is less than or equal to a predetermined value, the three-dimensional data encoding device 1300 determines that rotation and translation are not necessary and sets the RT application flag to off. On the other hand, if the ICP error value is greater than the above-mentioned predetermined value, the three-dimensional data encoding device 1300 sets the RT application flag to on and adds the RT information to the bitstream.
[0637] Figure 63 shows an example of syntax for adding RT information and RT application flags to the header. The number of bits allocated to each syntax may be determined within the range of possible values for that syntax. For example, if the reference list L0 contains 8 reference spaces, 3 bits may be allocated to MaxRefSpc_l0. The number of bits allocated may be variable depending on the possible values for each syntax, or it may be fixed regardless of the possible values. If the number of bits allocated is fixed, the three-dimensional data encoding device 1300 may add that fixed number of bits to separate header information.
[0638] Here, as shown in Figure 63, MaxRefSpc_l0 indicates the number of reference spaces included in reference list L0. RT_flag_l0[i] is the RT application flag for reference space i in reference list L0. If RT_flag_l0[i] is 1, rotation and translation are applied to reference space i. If RT_flag_l0[i] is 0, rotation and translation are not applied to reference space i.
[0639] R_l0[i] and T_l0[i] are the RT information for reference space i in reference list L0. R_l0[i] is the rotation information for reference space i in reference list L0. The rotation information indicates the content of the applied rotation operation, such as a rotation matrix or quaternion. T_l0[i] is the translation information for reference space i in reference list L0. The translation information indicates the content of the applied translation operation, such as a translation vector.
[0640] MaxRefSpc_l1 indicates the number of reference spaces included in reference list L1. RT_flag_l1[i] is the RT application flag for reference space i in reference list L1. If RT_flag_l1[i] is 1, rotation and translation are applied to reference space i. If RT_flag_l1[i] is 0, rotation and translation are not applied to reference space i.
[0641] R_l1[i] and T_l1[i] are the RT information for reference space i in reference list L1. R_l1[i] is the rotation information for reference space i in reference list L1. The rotation information indicates the content of the applied rotation operation, such as a rotation matrix or quaternion. T_l1[i] is the translation information for reference space i in reference list L1. The translation information indicates the content of the applied translation operation, such as a translation vector.
[0642] The interpretation unit 1311 generates a predicted volume of the volume to be encoded using the encoded reference space information stored in the reference space memory 1310. As described above, before generating the predicted volume of the volume to be encoded, the interpretation unit 1311 brings the overall positional relationship between the space to be encoded and the reference space closer together by performing an ICP (Interactive Closest Point) operation between the space to be encoded and the reference space. The RT information is obtained using the int algorithm. Then, the interpretation unit 1311 obtains reference space B by applying rotation and translation processing to the reference space using the obtained RT information. Subsequently, the interpretation unit 1311 generates a predicted volume of the target volume to be encoded in the target space using the information in reference space B. Here, the three-dimensional data encoding device 1300 adds the RT information used to obtain reference space B to the header information of the target space, etc.
[0643] Thus, the interpretation unit 1311 can improve the accuracy of the predicted volume by applying rotation and translation processing to the reference space to bring the overall positional relationship between the space to be encoded and the reference space closer together, and then generating a predicted volume using the information from the reference space. Furthermore, since the prediction residual can be suppressed, the amount of coding can be reduced. Note that here, an example of performing ICP using the space to be encoded and the reference space has been shown, but this is not necessarily the only example. For example, in order to reduce the amount of processing, the interpretation unit 1311 may obtain RT information by performing ICP using at least one of the space to be encoded with a reduced number of voxels or point clouds, and the reference space with a reduced number of voxels or point clouds.
[0644] Furthermore, the interpretation unit 1311 may determine that rotation and translation processing is unnecessary if the ICP error value obtained as a result of ICP is smaller than a predetermined first threshold, that is, if the positional relationship between the space to be encoded and the reference space is close, and may not perform rotation and translation. In this case, the three-dimensional data encoding device 1300 may suppress overhead by not adding RT information to the bitstream.
[0645] Furthermore, if the interpretation unit 1311 determines that the shape change between spaces is large when the ICP error value is greater than a predetermined second threshold, it may apply intraprediction to all volumes of the space to be encoded. Hereinafter, the space to which intraprediction is applied will be referred to as the intraspace. The second threshold is a value greater than the first threshold mentioned above. In addition, any method that can obtain RT information from two voxel sets or two point cloud sets may be applied, not limited to ICP.
[0646] Furthermore, if the three-dimensional data includes attribute information such as shape or color, the interpretation unit 1311 searches for a volume in the reference space that has the closest attribute information (shape or color, etc.) to the volume to be encoded within the encoding target space, for example. This reference space is, for example, the reference space after the rotation and translation processing described above has been performed. The interpretation unit 1311 generates a predicted volume from the volume (reference volume) obtained through the search. Figure 64 is a diagram illustrating the operation of generating a predicted volume. When the interpretation unit 1311 encodes the volume to be encoded (volume idx=0) shown in Figure 64 using interpretation, it scans the reference volumes in the reference space sequentially and searches for the volume with the smallest predicted residual, which is the difference between the volume to be encoded and the reference volume. The interpretation unit 1311 selects the volume with the smallest predicted residual as the predicted volume. The predicted residual between the volume to be encoded and the predicted volume is encoded by the processing from the conversion unit 1303 onward. Here, the predicted residual is the difference between the attribute information of the volume to be encoded and the attribute information of the predicted volume. Furthermore, the three-dimensional data encoding device 1300 adds the volume idx of the reference volume in the reference space referenced as the predicted volume to the bitstream header, etc.
[0647] In the example shown in Figure 64, the reference volume with volume idx=4 in reference space L0R0 is selected as the predicted volume for the volume to be encoded. Then, the predicted residual between the volume to be encoded and the reference volume idx=4 is encoded into a bit. It is added to the stream.
[0648] While this example demonstrates the generation of predicted volume for attribute information, similar processing may be applied to the predicted volume for location information.
[0649] The prediction control unit 1312 controls whether to encode the volume to be encoded using intra-prediction or inter-prediction. Here, the mode that includes intra-prediction and inter-prediction is called the prediction mode. For example, the prediction control unit 1312 calculates the prediction residual when the volume to be encoded is predicted using intra-prediction and the prediction residual when it is predicted using inter-prediction as evaluation values, and selects the prediction mode with the smaller evaluation value. Alternatively, the prediction control unit 1312 may calculate the actual code amount by applying orthogonal transformation, quantization, and entropy coding to the prediction residuals of intra-prediction and inter-prediction, respectively, and select the prediction mode using the calculated code amount as the evaluation value. In addition, overhead information other than the prediction residual (such as reference volume idx information) may be added to the evaluation value. Furthermore, if it is predetermined that the space to be encoded will be encoded in intra-space, the prediction control unit 1312 may always select intra-prediction.
[0650] The entropy coding unit 1313 generates an encoded signal (encoded bitstream) by variable-length encoding the quantization coefficients, which are input from the quantization unit 1304. Specifically, the entropy coding unit 1313, for example, binarizes the quantization coefficients and arithmetically encodes the resulting binary signal.
[0651] Next, a three-dimensional data decoding device that decodes the encoded signal generated by the three-dimensional data encoding device 1300 will be described. Figure 65 is a block diagram of the three-dimensional data decoding device 1400 according to this embodiment. This three-dimensional data decoding device 1400 comprises an entropy decoding unit 1401, an inverse quantization unit 1402, an inverse transform unit 1403, an adder 1404, a reference volume memory 1405, an intra prediction unit 1406, a reference space memory 1407, an inter prediction unit 1408, and a prediction control unit 1409.
[0652] The entropy decoding unit 1401 decodes the encoded signal (encoded bitstream) to a variable length. For example, the entropy decoding unit 1401 arithmetically decodes the encoded signal to generate a binary signal, and then generates quantization coefficients from the generated binary signal.
[0653] The inverse quantization unit 1402 generates inverse quantization coefficients by inverse quantizing the quantization coefficients input from the entropy decoding unit 1401 using quantization parameters added to the bitstream or the like.
[0654] The inverse transform unit 1403 generates the predicted residual by inversely transforming the inverse quantization coefficients input from the inverse quantization unit 1402. For example, the inverse transform unit 1403 generates the predicted residual by inversely transforming the inverse quantization coefficients based on the information added to the bitstream.
[0655] The summing unit 1404 adds the predicted residual generated by the inverse transform unit 1403 and the predicted volume generated by intra-prediction or inter-prediction to generate a reconstructed volume. This reconstructed volume is output as decoded three-dimensional data and stored in the reference volume memory 1405 or the reference space memory 1407.
[0656] The intra prediction unit 1406 generates a predicted volume by intra prediction using the reference volume in the reference volume memory 1405 and the information attached to the bitstream. Specifically, the intra prediction unit 1406 acquires adjacent volume information (e.g., volume idx) and prediction mode information attached to the bitstream, and the adjacent volume information Using the adjacent volumes indicated by [the symbol], a prediction volume is generated according to the mode indicated by the prediction mode information. The details of these processes are the same as those of the intra-prediction unit 1309 described above, except that the information attached to the bitstream is used.
[0657] The interpretation unit 1408 generates a predicted volume by interpretation using the reference space in the reference space memory 1407 and the information attached to the bitstream. Specifically, the interpretation unit 1408 applies rotation and translation processing to the reference space using the RT information for each reference space attached to the bitstream, and generates a predicted volume using the reference space after processing. If an RT application flag for each reference space exists in the bitstream, the interpretation unit 1408 applies rotation and translation processing to the reference space according to the RT application flag. The details of these processes are the same as those of the interpretation unit 1311 described above, except that the information attached to the bitstream is used.
[0658] The prediction control unit 1409 controls whether to decode the volume to be decoded using intra-prediction or inter-prediction. For example, the prediction control unit 1409 selects intra-prediction or inter-prediction according to information attached to the bitstream indicating the prediction mode to be used. The prediction control unit 1409 may always select intra-prediction if it has been predetermined that the space to be decoded will be decoded in intra-space.
[0659] The following describes modifications of this embodiment. In this embodiment, an example of applying rotation and translation on a space-by-space basis has been described, but rotation and translation may be applied on a finer scale. For example, the three-dimensional data encoding device 1300 may divide the space into subspaces and apply rotation and translation on a subspace-by-subspace basis. In this case, the three-dimensional data encoding device 1300 generates RT information for each subspace and adds the generated RT information to the bitstream header, etc. Alternatively, the three-dimensional data encoding device 1300 may apply rotation and translation on a volume-by-volume basis, which is the encoding unit. In this case, the three-dimensional data encoding device 1300 generates RT information on an encoding volume-by-volume basis and adds the generated RT information to the bitstream header, etc. Furthermore, the above may be combined. That is, the three-dimensional data encoding device 1300 may apply rotation and translation on a larger scale and then apply rotation and translation on a finer scale. For example, the three-dimensional data encoding device 1300 may apply rotation and translation on a space-by-space basis and then apply different rotations and translations to each of the multiple volumes contained in the resulting space.
[0660] Furthermore, although this embodiment describes an example in which rotation and translation are applied to the reference space, it is not necessarily limited to this. For example, the three-dimensional data encoding device 1300 may change the size of the three-dimensional data by applying scaling processing, for example. Also, the three-dimensional data encoding device 1300 may apply one or two of rotation, translation, and scaling. In addition, when processing is applied in multiple stages to different units as described above, the type of processing applied to each unit may differ. For example, rotation and translation may be applied to the space unit, and translation may be applied to the volume unit.
[0661] These modifications can also be applied to the three-dimensional data decoding device 1400.
[0662] As described above, the three-dimensional data encoding device 1300 according to this embodiment performs the following processing. Figure 65 is a flowchart of the interpretation processing performed by the three-dimensional data encoding device 1300.
[0663] First, the three-dimensional data encoding device 1300 generates predicted position information (e.g., predicted volume) using the position information of three-dimensional points contained in reference three-dimensional data (e.g., reference space) at a different time from the target three-dimensional data (e.g., the space to be encoded) (S1301). Specifically, the three-dimensional data encoding device 1300 generates predicted position information by applying rotation and translation processing to the position information of three-dimensional points contained in the reference three-dimensional data.
[0664] The three-dimensional data encoding device 1300 may perform rotation and translation processing in a first unit (e.g., space) and generate predicted position information in a second unit (e.g., volume) that is finer than the first unit. For example, the three-dimensional data encoding device 1300 searches for a volume among several volumes included in the reference space after rotation and translation processing that has the smallest difference in position information between it and the volume to be encoded included in the space to be encoded, and uses the obtained volume as the predicted volume. The three-dimensional data encoding device 1300 may perform rotation and translation processing and the generation of predicted position information in the same unit.
[0665] Furthermore, the three-dimensional data encoding device 1300 may generate predicted position information by applying a first rotation and translation process in a first unit (e.g., space) to the position information of three-dimensional points included in the reference three-dimensional data, and then applying a second rotation and translation process in a second unit (e.g., volume) that is finer than the first unit to the position information of three-dimensional points obtained by the first rotation and translation process.
[0666] Here, the position information and predicted position information of a three-dimensional point are represented in an octree structure, for example, as shown in Figure 58. For example, the position information and predicted position information of a three-dimensional point are represented in a scan order that prioritizes width over depth in the octree structure. Alternatively, the position information and predicted position information of a three-dimensional point are represented in a scan order that prioritizes depth over width in the octree structure.
[0667] Furthermore, as shown in Figure 63, the three-dimensional data encoding device 1300 encodes an RT application flag indicating whether or not to apply rotation and translation processing to the position information of three-dimensional points included in the reference three-dimensional data. In other words, the three-dimensional data encoding device 1300 generates an encoded signal (encoded bitstream) that includes the RT application flag. The three-dimensional data encoding device 1300 also encodes RT information indicating the content of the rotation and translation processing. In other words, the three-dimensional data encoding device 1300 generates an encoded signal (encoded bitstream) that includes RT information. Note that the three-dimensional data encoding device 1300 encodes RT information when the RT application flag indicates that rotation and translation processing should be applied, and does not encode RT information when the RT application flag indicates that rotation and translation processing should not be applied.
[0668] Furthermore, the three-dimensional data includes, for example, positional information of three-dimensional points and attribute information (color information, etc.) of each three-dimensional point. The three-dimensional data encoding device 1300 generates predicted attribute information using the attribute information of three-dimensional points included in the reference three-dimensional data (S1302).
[0669] Next, the three-dimensional data encoding device 1300 encodes the position information of the three-dimensional points included in the target three-dimensional data using the predicted position information. For example, as shown in Figure 55, the three-dimensional data encoding device 1300 calculates differential position information, which is the difference between the position information of the three-dimensional points included in the target three-dimensional data and the predicted position information (S1303).
[0670] Furthermore, the three-dimensional data encoding device 1300 encodes the attribute information of three-dimensional points included in the target three-dimensional data using predicted attribute information. For example, the three-dimensional data encoding device 1300 calculates differential attribute information, which is the difference between the attribute information of three-dimensional points included in the target three-dimensional data and the predicted attribute information (S1304). Next, the three-dimensional data encoding device 1300 performs conversion and quantization of the calculated differential attribute information (S1305).
[0671] Finally, the three-dimensional data encoding device 1300 encodes (for example, entropy encoding) the differential position information and the quantized differential attribute information (S1306). In other words, the three-dimensional data encoding device 1300 generates an encoded signal (encoded bitstream) that includes the differential position information and the differential attribute information.
[0672] Furthermore, if the three-dimensional data does not contain attribute information, the three-dimensional data encoding device 1300 does not need to perform steps S1302, S1304, and S1305. Also, the three-dimensional data encoding device 1300 may perform only one of the following: encoding the position information of the three-dimensional points or encoding the attribute information of the three-dimensional points.
[0673] Furthermore, the processing order shown in Figure 66 is just one example and is not limited thereto. For example, the processing of location information (S1301, S1303) and the processing of attribute information (S1302, S1304, S1305) are independent of each other and may be performed in any order, or some may be processed in parallel.
[0674] As described above, in this embodiment, the three-dimensional data encoding device 1300 generates predicted position information using the position information of three-dimensional points contained in reference three-dimensional data at a different time from the target three-dimensional data, and encodes the difference in position information, which is the difference between the position information of three-dimensional points contained in the target three-dimensional data and the predicted position information. This reduces the amount of data in the encoded signal, thereby improving encoding efficiency.
[0675] Furthermore, in this embodiment, the three-dimensional data encoding device 1300 generates predicted attribute information using the attribute information of three-dimensional points included in the reference three-dimensional data, and encodes differential attribute information, which is the difference between the attribute information of three-dimensional points included in the target three-dimensional data and the predicted attribute information. This reduces the amount of data in the encoded signal, thereby improving encoding efficiency.
[0676] For example, the three-dimensional data encoding device 1300 includes a processor and memory, and the processor uses the memory to perform the above processing.
[0677] Figure 65 is a flowchart of the interpretation process performed by the three-dimensional data decoding device 1400.
[0678] First, the three-dimensional data decoding device 1400 decodes (for example, entropy decoding) the differential position information and differential attribute information from the encoded signal (encoded bitstream) (S1401).
[0679] Furthermore, the three-dimensional data decoding device 1400 decodes an RT application flag from the encoded signal, which indicates whether or not rotation and translation processing should be applied to the position information of the three-dimensional points included in the reference three-dimensional data. The three-dimensional data decoding device 1400 also decodes RT information indicating the content of the rotation and translation processing. Note that the three-dimensional data decoding device 1400 decodes the RT information when the RT application flag indicates that rotation and translation processing should be applied, and does not need to decode the RT information when the RT application flag indicates that rotation and translation processing should not be applied.
[0680] Next, the three-dimensional data decoding device 1400 performs inverse quantization and inverse transformation on the decoded difference attribute information (S1402).
[0681] Next, the three-dimensional data decoding device 1400 generates predicted position information (e.g., predicted volume) using the position information of three-dimensional points contained in reference three-dimensional data (e.g., reference space) at a different time from the target three-dimensional data (e.g., the space to be decoded) (S1403). Specifically, the three-dimensional data decoding device 1400 uses the position information of three-dimensional points contained in the reference three-dimensional data Predicted position information is generated by applying rotation and translation processing.
[0682] More specifically, the three-dimensional data decoding device 1400 applies rotation and translation processing to the position information of three-dimensional points included in the reference three-dimensional data indicated by the RT information when the RT application flag indicates that rotation and translation processing should be applied. On the other hand, when the RT application flag indicates that rotation and translation processing should not be applied, the three-dimensional data decoding device 1400 does not apply rotation and translation processing to the position information of three-dimensional points included in the reference three-dimensional data.
[0683] The three-dimensional data decoding device 1400 may perform rotation and translation processing in a first unit (e.g., space) and generate predicted position information in a second unit (e.g., volume) that is finer than the first unit. Alternatively, the three-dimensional data decoding device 1400 may perform rotation and translation processing and generate predicted position information in the same unit.
[0684] Furthermore, the three-dimensional data decoding device 1400 may generate predicted position information by applying a first rotation and translation process in a first unit (e.g., space) to the position information of three-dimensional points included in the reference three-dimensional data, and then applying a second rotation and translation process in a second unit (e.g., volume) that is finer than the first unit to the position information of three-dimensional points obtained by the first rotation and translation process.
[0685] Here, the position information and predicted position information of a three-dimensional point are represented in an octree structure, for example, as shown in Figure 58. For example, the position information and predicted position information of a three-dimensional point are represented in a scan order that prioritizes width over depth in the octree structure. Alternatively, the position information and predicted position information of a three-dimensional point are represented in a scan order that prioritizes depth over width in the octree structure.
[0686] The three-dimensional data decoding device 1400 generates predicted attribute information using the attribute information of three-dimensional points contained in the reference three-dimensional data (S1404).
[0687] Next, the three-dimensional data decoding device 1400 decodes the encoded position information contained in the encoded signal using the predicted position information to reconstruct the position information of the three-dimensional points contained in the target three-dimensional data. Here, the encoded position information is, for example, the difference position information, and the three-dimensional data decoding device 1400 reconstructs the position information of the three-dimensional points contained in the target three-dimensional data by adding the difference position information and the predicted position information (S1405).
[0688] Furthermore, the three-dimensional data decoding device 1400 reconstructs the attribute information of three-dimensional points contained in the target three-dimensional data by decoding the encoded attribute information contained in the encoded signal using the predicted attribute information. Here, the encoded attribute information is, for example, the difference attribute information, and the three-dimensional data decod...
Claims
1. Generate an N-tree structure for three-dimensional points where N is an integer greater than or equal to 2. This generates information indicating whether or not the 8 bits corresponding to a node in the aforementioned N-tree structure include 4 or more bits corresponding to a fixed value. Three-dimensional data processing methods.
2. When N is 4, the number of bits greater than or equal to 4 is 4. The three-dimensional data processing method according to claim 1.
3. The number of four or more bits is (8-N). The three-dimensional data processing method according to claim 1.
4. The aforementioned fixed value is 0. The three-dimensional data processing method according to claim 1.
5. The aforementioned fixed value is set as an invalid bit. The three-dimensional data processing method according to claim 1.
6. moreover, Generate parameters, When the parameter indicates first information, the information indicates that the 8 bits corresponding to the node included in the N-tree structure include 4 or more bits corresponding to the fixed value. The three-dimensional data processing method according to claim 1.
7. When the parameter indicates the first information, N is 4. The three-dimensional data processing method according to claim 6.
8. When the aforementioned parameter indicates the second piece of information, N is 8. The three-dimensional data processing method according to claim 6.
9. When the parameter indicates the second information, the information indicates that the 8 bits corresponding to the node included in the N-tree structure do not include the bit corresponding to the fixed value. The three-dimensional data processing method according to claim 8.
10. moreover, Using the aforementioned parameters, information about the target node included in the N-tree structure of the three-dimensional point is encoded. The three-dimensional data processing method according to claim 6.
11. moreover, Using the aforementioned information, the information of the target node included in the N-tree structure of the three-dimensional point is encoded. The three-dimensional data processing method according to claim 1.
12. Obtain an N-tree structure of three-dimensional points where N is an integer greater than or equal to 2. Information is obtained indicating whether the 8 bits corresponding to a node in the aforementioned N-tree structure include 4 or more bits corresponding to a fixed value. Three-dimensional data processing methods.
13. When N is 4, the number of bits greater than or equal to 4 is 4. The three-dimensional data processing method according to claim 12.
14. The number of four or more bits is (8-N). The three-dimensional data processing method according to claim 12.
15. The aforementioned fixed value is 0. The three-dimensional data processing method according to claim 12.
16. The aforementioned fixed value is set as an invalid bit. The three-dimensional data processing method according to claim 12.
17. moreover, Get the parameters, When the parameter indicates first information, the information indicates that the 8 bits corresponding to the node included in the N-tree structure include 4 or more bits corresponding to the fixed value. The three-dimensional data processing method according to claim 12.
18. When the parameter indicates the first information, N is 4. The three-dimensional data processing method according to claim 17.
19. When the aforementioned parameter indicates the second piece of information, N is 8. The three-dimensional data processing method according to claim 17.
20. When the parameter indicates the second information, the information indicates that the 8 bits corresponding to the node included in the N-tree structure do not include the bit corresponding to the fixed value. The three-dimensional data processing method according to claim 19.
21. moreover, Using the aforementioned parameters, the information of the target node included in the N-tree structure of the three-dimensional point is decoded. The three-dimensional data processing method according to claim 17.
22. moreover, Using the aforementioned information, the information of the target node included in the N-tree structure of the three-dimensional point is decoded. The three-dimensional data processing method according to claim 12.
23. Processor and Equipped with memory, The processor uses the memory to: Generate an N-tree structure for three-dimensional points where N is an integer greater than or equal to 2. This generates information indicating whether or not the 8 bits corresponding to a node in the aforementioned N-tree structure include 4 or more bits corresponding to a fixed value. Three-dimensional data processing device.
24. Processor and Equipped with memory, The processor uses the memory to: Obtain an N-tree structure of three-dimensional points where N is an integer greater than or equal to 2. Information is obtained indicating whether the 8 bits corresponding to a node in the aforementioned N-tree structure include 4 or more bits corresponding to a fixed value. Three-dimensional data processing device.
Citation Information
Patent Citations
Map display device
WO2014020663A1