A laser radar point cloud compression method

By defining volumes and subvolumes in 3D map data and generating reduced point cloud data sets, the bandwidth and storage efficiency problems when transmitting and storing 3D map data are solved, and the data volume and information loss are reduced are reduced.

CN110047112BActive Publication Date: 2025-03-11FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201811505333.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-12-11
Filing Date
2018-12-10
Publication Date
2025-03-11
Estimated Expiration
2038-12-10

AI Technical Summary

Technical Problem

The prior art has bandwidth and storage efficiency problems when transmitting and storing 3D map data, and it is difficult to effectively store and transmit a large amount of 3D map data without exceeding the current technology bandwidth and storage constraints.

Method used

By defining multiple volumes represented in the original point cloud dataset and setting a corresponding set of subvolumes in each volume, a reduced point cloud dataset including the number of points counted in the selected subvolume is generated, thereby reducing the amount of data.

Benefits of technology

Effectively reduces the required bandwidth and storage space, while reducing information loss due to compression, and improving the efficiency of data transmission and storage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110047112B_ABST
    Figure CN110047112B_ABST
Patent Text Reader

Abstract

The present disclosure provides "Lidar point cloud compression". A system includes a processor and a memory. The memory stores instructions executable by the processor to define a plurality of volumes represented in an original point cloud dataset. The memory stores instructions executable by the processor to define a corresponding set of sub-volumes in each of the volumes and generate a reduced point cloud dataset including the number of points counted in the selected sub-volume.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to one or more computers in an autonomous vehicle (or self-driving car) that are programmed to navigate the vehicle to a destination based on vehicle sensor data and map data (e.g., "point cloud" data generated by lidar sensor data). Background Art

[0002] One or more computers in an autonomous vehicle (or self-driving car) can be programmed to navigate the vehicle based on vehicle sensor data and map data. The vehicle computer can rely on three-dimensional (3D) map data, including, for example, "point cloud" data generated from radar laser sensor data, to navigate the vehicle to a destination. 3D map data typically includes a large amount of data. These large amounts of sensor data need to be stored, processed and / or transmitted via a communication network. Current systems and methods for addressing memory storage that affects data transmission bandwidth lack efficiency and effectiveness. Therefore, it is a problem to be able to store and transmit 3D map data without exceeding the current technology bandwidth and / or the storage and processing constraints of the prior art. Summary of the invention

[0003] A system is disclosed herein, the system comprising a processor and a memory. The memory stores instructions executable by the processor to define a plurality of volumes represented in an original point cloud dataset, define a corresponding set of sub-volumes in each of the volumes, and generate a reduced point cloud dataset including points counted in a selected sub-volume.

[0004] Subvolumes can be set to have the same size.

[0005] The system may also include a second processor and a second memory. The second memory may store instructions executable by the second processor to identify an object represented in the reduced point cloud dataset.

[0006] The second memory may also include instructions to identify the object based at least in part on the number of points counted in each of the sub-volumes.

[0007] Each volume in the raw point cloud dataset may include at least one point in lidar reflectivity data.

[0008] Each of the rolls may have a rectangular shape.

[0009] Each volume may include a vertical stack of some or all of the sub-volumes.

[0010] The instructions may also include instructions to select a sub-volume only if the sub-volume includes one or more points.

[0011] Each of the plurality of rolls may have a bottom portion placed on the ground and a top portion spaced upward from the ground.

[0012] The instructions may also include defining a height of each of the plurality of volumes based on a location of a highest point of the point cloud above a bottom portion of the volume.

[0013] The raw point cloud data set may include the three-dimensional position coordinates of a plurality of points on a surface within a physical area covered by the collective point cloud data.

[0014] The position coordinates of each point in the original point cloud set may include a height from the ground and a global positioning system coordinate including a lateral coordinate and a longitudinal coordinate.

[0015] Further disclosed herein is a method comprising defining a plurality of volumes represented in an original point cloud dataset, defining a respective set of sub-volumes in each of the volumes, and generating a reduced point cloud dataset comprising a number of points counted in a selected sub-volume.

[0016] Subvolumes can be set to have the same size.

[0017] The method may further include identifying, in a second processor, an object represented in the reduced point cloud dataset.

[0018] Each of the raw point cloud data sets may include at least one point in lidar reflectivity data.

[0019] The method may further include selecting a sub-volume only if the sub-volume includes one or more points.

[0020] The method may also include defining a height of each of the plurality of volumes based on a location of a highest point of the point cloud above a bottom portion of the volume.

[0021] The raw point cloud data set may include the three-dimensional position coordinates of a plurality of points on a surface within a physical area covered by the collective point cloud data.

[0022] The position coordinates of each point in the original point cloud data set may include a height from the ground and a global positioning system coordinate including a lateral coordinate and a longitudinal coordinate.

[0023] Further disclosed is a computing device programmed to perform any of the above method steps.

[0024] Still further disclosed is a computer program product comprising a computer readable medium storing instructions executable by a computer processor to perform any of the above method steps. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 is a block diagram of an exemplary vehicle and an exemplary point cloud.

[0026] Figure 2 yes Figure 1 Block diagram of a vehicle and an exemplary reduced point cloud dataset.

[0027] Figure 3 is a flow chart of an exemplary process for generating reduced point cloud data.

[0028] Figure 4 is a flow chart of an exemplary process for operating a vehicle. DETAILED DESCRIPTION

[0029] System components

[0030] Figure 1 An exemplary vehicle 100 is shown, including a computer 110, actuators 120, sensors 130, and other components discussed herein below. Vehicle 100 may be powered in a variety of known ways, including, for example, utilizing an electric motor and / or an internal combustion engine.

[0031] The computer 110 includes a processor and a memory such as is known in the art. The memory includes one or more forms of computer-readable media and stores instructions executable by the computer 110 for performing various operations, including those disclosed herein.

[0032] The computer 110 may operate the vehicle 100 in an autonomous or semi-autonomous mode. For the purposes of this disclosure, the autonomous mode is defined as a mode in which the computer 110 controls each of the propulsion, braking, and steering of the vehicle 100; in the semi-autonomous mode, the computer 110 controls one or both of the propulsion, braking, and steering of the vehicle 100; and in the non-autonomous mode, a human operator controls the propulsion, braking, and steering of the vehicle.

[0033] The computer 110 may include programming to operate one or more of the vehicle's braking, propulsion (e.g., controlling acceleration of the vehicle by controlling one or more of an internal combustion engine, an electric motor, a hybrid engine, etc.), steering, climate control, interior and / or exterior lights, etc., as well as determine whether and when the computer 110 (rather than a human operator) controls such operations.

[0034] The computer 110 may include or be communicatively coupled to more than one processor, for example, via a vehicle communication bus as further described below, including, for example, a controller in a vehicle for monitoring and / or controlling various vehicle controllers, such as a powertrain controller, a brake controller, a steering controller, etc. The computing device 110 is typically arranged for communication via a vehicle communication network, such as a bus in the vehicle, such as a controller area network (CAN), etc.

[0035] The computer 110 may transmit messages to and / or receive messages from various devices in the vehicle (e.g., lidar sensor 130, actuators, etc.) via the vehicle network. Alternatively or additionally, where the computer 110 actually includes multiple devices, the vehicle communication network may be used for communication between devices represented as the computer 110 in this disclosure. In addition, as described below, various controllers and / or sensors may provide data to the computer 110 via the vehicle communication network.

[0036] The vehicle 100 actuator 120 may be implemented via a circuit, chip or other electronic component, which may actuate various vehicle subsystems according to known appropriate control signals. The actuator 120 may be used to control braking, acceleration and steering of the first vehicle 100. As an example, the vehicle 100 computer 110 may output control instructions to control the actuator 120.

[0037] The vehicle 100 may include one or more LiDAR (Light Detection and Ranging) sensors 130, providing data including at least some of the exterior of the vehicle 100. The LiDAR sensor 130 may include a computer programmed to transmit LiDAR data. The LiDAR data may be received from the LiDAR sensor 130 by the vehicle 100 computer 110 in a known manner (e.g., via the vehicle 100 network). The LiDAR data may include, for example, coordinates in a 3-dimensional or Cartesian coordinate system. The LiDAR data may also include other data related to other objects, such as the size of the vehicle 100, relative speed, etc.

[0038] Typically, lidar sensor 130 may provide data for mapping physical features of sensed object 160 at a very high resolution. A computer (e.g., computer 110, remote computer 185, etc.) may be programmed to generate a three-dimensional (3D) map of area 140. Area 140 may include a portion of the ground (i.e., the surface of the earth), such as a neighborhood, a city, a rural area 140, etc.

[0039] In the context of the present disclosure, a 3D map of an area 140 is a digital map including 3D coordinates of a point 150 on a surface of an object 160 (e.g., a road surface, a traffic sign, a building, vegetation, etc.), for example, within the mapped area 140. The 3D position coordinates may be specified in a 3D Cartesian coordinate system having an origin 165. In one example, the position coordinates of the point 150 may be specified by X, Y, and Z. X and Y may be global positioning system (GPS) coordinates (i.e., lateral and longitudinal coordinates), while Z may specify the height (or altitude) of the point 150 from the ground. The 3D map may be generated based on data received from a laser radar sensor 130, which scans the area 140 with a beam and receives reflections of a broadcast beam from the outer surface of the object 160. Thus, such a 3D map may include the position coordinates of a point 150 on the outer surface of the object 160, which causes reflections of the emitted beam. Typically, such a 3D map is referred to as a "point cloud". Thus, the point cloud data (or point cloud collection) includes 3D position coordinates of points 150 on a surface of an object 160 (such as a road surface and / or an exterior surface of the object 160) within the mapped area 140. In other words, the point cloud data set includes the 3D position coordinates of a plurality of points 150 within the physical area 140 covered by the collection point cloud data.

[0040] The vehicle 100 computer 110 may be programmed to receive the point cloud data and navigate the vehicle 100 based on the position coordinates of the points 150 in the received point cloud. In one example, the vehicle 100 computer 110 may be programmed to identify objects 160 in the area 140 in which the vehicle 100 operates (e.g., moves) based on the received 3D map data of the corresponding area 140. In other words, a 3D map may be generated based on the lidar sensor 130 data received from the mapping vehicle 100 and stored in the remote computer 185. The vehicle 100 may, for example, receive a 3D map of the area 140 from the remote computer 185, and may navigate the second vehicle 100 based at least in part on the received 3D map of the area 140. In one example, the computer 110 is programmed to transmit a request message to the remote computer 185 to specify the area 140, and receive reduced point cloud data covering the specified area 140. The computer 110 may be programmed to specify the area 140 based on the current location of the vehicle 100. For example, the designated area 140 may include a circular area 140 having a predetermined radius (eg, 500 meters) and a center located at the current position of the vehicle 100 .

[0041] Depending on the resolution parameter, the 3D map may include coordinates of various numbers of points 150 on the outer surface of a given object 160. For example, a first exemplary 3D map may include coordinates of 10 points 150 on a 10×10 centimeter (cm) surface of a traffic sign object 160, while a second exemplary 3D map may include coordinates of 100 points 150 on a 10×10 cm outer surface. In the context of the present disclosure, the resolution parameter is the maximum number of point 150 position coordinates in a specified volume (e.g., a 10x10x10 cm cube). The points 150 in the 3D map are outer surface points 150 because laser scanning of an object 160 generally does not determine whether the object is hollow or solid. In other words, the 3D map generally includes position coordinates of outer surface points 150 regardless of whether the interior of the object 160 is hollow or solid.

[0042] Although 3D maps generated based on high-resolution LiDAR sensor 130 data are useful because computer 110 can be programmed to navigate vehicle 100 based at least in part on 3D maps, transmitting such 3D maps, for example via wireless communication network 190, can consume a large amount of bandwidth. "Bandwidth" in this context refers to the amount of information that can be transmitted over a communication medium in a given duration. For example, bandwidth can be measured in bits per second, megabytes per second, etc. In addition, storing 3D maps in vehicle 100 computer 110 memory can consume a large amount of memory.

[0043] Disclosed herein is a solution to the problem of excessive bandwidth and memory consumption for point cloud data, the solution comprising compressing 3D map data (particularly, compressing the raw point cloud received from one or more lidar sensors 130), thereby advantageously reducing the required bandwidth and / or storage space, and simultaneously reducing the lost information due to such compression. For example, the remote computer 185 can be programmed to compress the 3D map data before transmitting the 3D map data to the vehicle 100, thereby advantageously reducing the bandwidth used to transmit the 3D map data. Additionally or alternatively, the vehicle 100 computer 110 can be programmed to compress the received 3D map data before storing the 3D map data in the computer 110 memory, thereby advantageously reducing the amount of memory consumed to transmit the 3D map data.

[0044] To compress the point cloud data, the computer 110 and / or the remote computer 185 may be programmed to define a plurality of volumes 170 represented in an original point cloud dataset (i.e., generated from raw data received from one or more lidar sensors 130) to define a corresponding set of sub-volumes in each of the volumes 170, and to generate a reduced point cloud dataset including the number of points 150 counted in the selected sub-volumes. In the present context, an "original" point cloud set and a "reduced" point cloud dataset refer to point cloud data before and after compression, respectively.

[0045] For example, Figure 1 to Figure 2 As shown in , in order to define a plurality of volumes 170, the 3D space of the coverage area 140 may be divided into a set of vertical volumes 170. In one example, each volume 170 may have a rectangular shape. Each volume 170 may have a height H. For example, the volume 170 may have a height H of 50 meters. In one example, the bottom of the volume 170 (i.e., the bottom plane of the volume 170 located at the ground) may have a square shape of size d (e.g., 10x10cm). In one example, the 3D map may include only the volumes 170 in which there is at least one point 150 in the volume 170; volumes with zero data points are omitted. Each of the plurality of volumes 170 may have a bottom placed on the ground and a top spaced apart from the ground upward.

[0046]

[0047] Table 1

[0048] Each volume 170 may be divided into a plurality of sub-volumes. Figure 1 to Figure 2 As shown, the volume 170 can be divided into seven sub-volumes b1 to b7. Each volume 170 can be identified by the position coordinates of the volume 170 on the ground, the bottom, and its height H. For example, the position coordinates of the volume 170 can be identified by the position coordinates of the bottom center of the volume 170. For example, (X1, Y1), (X2, Y2), ..., (X m , Y m ) specifies Figure 1 shown m The position coordinates of the bottom center of the roll 170. The position coordinates of the roll 170 may be GPS position coordinates. For example, Table 1 shows information associated with the roll 170 located at X1, Y1. The information shown in Table 1 and used below is selected for ease of explanation and may not reflect the actual size of an object (such as a traffic sign object 160).

[0049] Volume 170 may be divided into an equal number of Figure 1 The subvolumes may have seven subvolumes as shown in FIG. 1 , or may alternatively be divided into a different number of subvolumes. Figure 1 , or alternatively have different heights. For example, the height H of each volume 170 may be determined based on the highest point of the point cloud above the bottom of the corresponding volume 170. In other words, the height H of the volume 170 may be determined so that each point 150 of the point cloud above the bottom of the volume 170 is placed inside the volume 170. In one example, the sub-volumes may be set to have the same size.

[0050]

[0051] Table 2

[0052] As discussed above, the computer 110 may be programmed to generate a reduced point cloud data set that includes the number of points 150 counted in the selected subvolume. Figure 2 As discussed, the computer 110 (or a second computer 110 in a second vehicle 100) can be programmed to identify the reconstructed object 200 based on the reduced point cloud data set and navigate the vehicle 100 based at least in part on the reconstructed object 200. The computer 110 can be programmed to generate a histogram for each of the volumes 170 based on the number of points 150 within each sub-volume of the volume 170.

[0053] In the context of the present disclosure and consistent with the plain and ordinary meaning of the term, a histogram is a distribution of numerical data associated with sub-volumes of a volume 170. The histogram may include the number (or count) of points 150 in each of the sub-volumes. As discussed above, the region 140 may be divided into a set of volumes 170. The computer 110 may be programmed to generate a reduced point cloud data set that includes the number of points 150 in each of the sub-volumes and the X, Y coordinates of the corresponding volume 170. For example, an exemplary reduced point cloud set for the region 140 has m volumes 170, and each volume 170 has seven sub-volumes, as shown in Table 2. In one example, the reduced point cloud set may include the position coordinates X, Y of the volume 170, the number of sub-volumes of each volume 170, and a histogram of the volume 170, as shown in Table 2.

[0054]

[0055] Table 3

[0056] Referring to Table 3, various examples for further compressing and reducing the point cloud set are shown. In one example, each volume 170 in the original point cloud data set may include at least one point 150 of lidar reflectivity data, i.e., a point 150 on the surface of the object 160 that reflects the laser beam transmitted by the lidar sensor 130. In other words, the computer 110 may be programmed to omit volumes 170 having zero points 150 (i.e., lacking any points 150) in the corresponding volume 170. For example, Figure 1As shown in Table 3, there is no point 150 in volume 170 at position coordinates X1, Y1. Therefore, as shown in Table 3, computer 110 can be programmed to omit data associated with volume 170 at position coordinates X1, Y1. Information marked with a dash in Table 3 represents information included in the reduced point cloud set of Table 2 that can be omitted to further compress the reduced point cloud set. Additionally or alternatively, computer 110 can be programmed to select a subvolume only when the subvolume includes one or more points 150. For example, computer 110 can be programmed to select subvolumes b5, b6 of volume 170 at position coordinates X4, Y4 because there are no points 150 in other subvolumes of the corresponding volume 170. Therefore, each volume 170 may include a vertical stack of some or all of the subvolumes, for example, volume 170 at position coordinates X5, Y5 may include subvolumes b5, b6.

[0057] Additionally or alternatively, computer 110 may be programmed to define a height H of each of plurality of volumes 170 based on the location of highest point 150 of the point cloud above the bottom of volume 170. For example, m , Y m Compared to the volume at , the computer 110 may define a lower height H of the volume 170 at the position coordinates X2, Y2 due to the point 150 of the traffic sign object 160 in the sub-volume b7.

[0058] Figure 2 An object 200 is shown, which is reconstructed based on the reduced point cloud set as discussed with reference to Tables 2 to 3. Figure 1 The vehicle 100 computer 110 may be programmed to identify the object 200 represented in the reduced point cloud data set. For example, the computer 110 receives the reduced point cloud set from the remote computer 185. In one example, the remote computer 185 may be programmed to generate a point cloud based on the lidar sensor 130 data received from the mapping vehicle 100 to compress the point cloud data and store the reduced point cloud in the remote computer 185 memory. The computer 110 may be programmed to receive the reduced point cloud set from the remote computer 185 via the wireless communication network 190. Additionally or alternatively, the computer 110 may be programmed to receive the point cloud from the remote computer 185 to compress the point cloud and store the reduced point cloud set in the computer 110 memory.

[0059] The computer 110 may be programmed to identify objects (such as traffic signs, guardrails, buildings, traffic cones, traffic lights, bridges, etc.) based at least in part on the reduced point cloud dataset. The computer 110 may be programmed to identify the object 200 based on the position coordinates of the volume 170 and the histogram included in the reduced point cloud dataset. For example, the computer 110 may be programmed to define a point or circle 210 based on the received histogram and position coordinates of the sub-volume, and identify the object 200 based on the defined point 210, for example using image processing techniques. The computer 110 may be programmed to define the point 210 at the center of the sub-volume where the count is greater than 0 (zero). The center of the sub-volume is the geometric center, such as the geometric center of a rectangular-shaped sub-volume.

[0060] Additionally or alternatively, computer 110 may be programmed to further define circles 210 based on the counts included in the histogram, for example, defining circles having diameters proportional to the counts associated with the subvolumes in the histogram. Figure 2 As shown in , the diameter of the circle 210 is proportional to the counts shown in Tables 2 to 3. The computer 110 can be programmed to identify the reconstructed object 200 based on a combination of the position coordinates and the diameter of the circle 210. In one example, the computer 110 can be programmed to identify the density, size, type, etc. of the reconstructed object 200 based on the size (diameter) of the circle 210. For example, the computer 110 can be programmed to identify the density, size, type, etc. of the reconstructed object 200 based on the size (diameter) of the circle 210. Figure 2 ) to identify substantially planar surfaces.

[0061] In one example, the computer 110 may be programmed to determine that a continuous surface exists between the centers of two adjacent sub-volumes when the counts of the adjacent sub-volumes each exceed a count threshold (e.g., 70). Adjacent sub-volumes in this context are sub-volumes of the same volume 170 that are located on top of each other and have a shared side (e.g., at position coordinates X m , Y m 170) or two adjacent sub-volumes of the volume 170 having a shared side (eg, at position coordinates X m-1 , Y m-1 The subvolume b5 of volume 170 at position coordinate x m , Y m Subvolume b5 of volume 170 at location).

[0062] Because the circle 210 is defined at the center of the sub-volume, the shape of the reconstructed object 200 may be different from the shape of the object 160 based on the original point cloud (e.g., the reconstructed object 200 is compared to the original object 160). In other words, information about the location of each of the points 150 inside the sub-volume is only represented as a count of the points 150 at the center of the sub-volume. Therefore, the disclosed compression technique may be referred to as lossy compression, i.e., some information may be lost by compressing the original point cloud to generate a reduced point cloud set. The amount of information lost may depend substantially on the size of the sub-volume. For example, as the size of the sub-volume increases, compression may result in more information loss.

[0063] process

[0064] Figure 3 300 is a flow chart of an exemplary process 300 for compressing and transmitting data. For example, remote computer 185 may be programmed to perform the blocks of process 300.

[0065] Process 300 begins in block 310, where remote computer 185 receives raw point cloud data. In one example, remote computer 185 may be programmed to receive raw point cloud data from computer 185 memory.

[0066] Next, in block 320, the remote computer 185 defines the volume 170. The remote computer 185 may be programmed to define the volume 170 based on the position coordinates of the points 150 included in the raw point cloud data. In one example, the remote computer 185 may be programmed to define the position coordinates and the height H of the volume based on the 3D position coordinates of the points 150 included in the raw point cloud data. In one example, the remote computer 185 may be programmed to define the volume 170 including at least one point 150.

[0067] Next, in block 330, the remote computer 185 defines subvolumes of the defined volume 170, i.e., as described above with respect to block 320. The remote computer 185 may be programmed to divide the volume 170 into the same number of subvolumes, or alternatively into a different number of subvolumes. The subvolumes may have the same height, or alternatively have different heights.

[0068] Next, in block 340, the remote computer 185 generates reduced point cloud data. For example, as described above, the remote computer 185 may be programmed to generate reduced point cloud data including the position coordinates X, Y of the defined volumes 170, the number of defined sub-volumes of each volume 170, and a histogram of the volumes 170. Additionally, the remote computer 185 may be programmed to store the reduced point cloud data in the computer 185 memory.

[0069] Next, in box 350, the remote computer 185 transmits the reduced point cloud data to, for example, the vehicle 100 computer 110. The remote computer 185 may be programmed to transmit the reduced point cloud data via the wireless communication network 190. Additionally or alternatively, the remote computer 185 may be programmed to transmit the reduced point cloud data based on a request message received from the vehicle 100 computer 110. For example, the received request may specify an area 140, for example, based on the current location of the vehicle 100. Thus, the remote computer 185 may be programmed to transmit a reduced point cloud covering the requested area 140. After box 350, the process 300 ends, or alternatively returns to box 310, although Figure 3 Not shown in FIG.

[0070] Figure 4 4 is a flow chart of an exemplary process 400 for receiving reduced point cloud data and operating a vehicle. For example, the vehicle 100 computer 110 may be programmed to execute the blocks of the process 400.

[0071] Process 400 begins in decision block 410, where computer 110 determines whether a reduced point cloud is received from remote computer 185. Remote computer 110 may be programmed to receive the reduced point cloud via wireless communication network 190. In one example, computer 110 may be programmed to transmit a request message specifying area 140, and receive reduced point cloud data covering specified area 140 from computer 185 in response to the request message. If computer 110 determines that reduced point cloud data is received, process 400 proceeds to block 420; otherwise, process 400 returns to decision block 410.

[0072] In block 420, computer 110 identifies reconstructed object 200 based on the reduced point cloud data. Computer 110 may be programmed to reconstruct object 160 (including traffic signs, traffic lights, buildings, road surfaces, road guardrails, vegetation, etc.) based on the received reduced point cloud data.

[0073] Next, in block 430, the computer 110 operates the vehicle 100 based at least in part on the reconstructed object 200. For example, the computer 110 may be programmed to operate the vehicle 100 by actuating propulsion, steering, and / or braking of the vehicle 100 based at least in part on the reconstructed object 200. The computer 110 may be programmed to navigate the vehicle 100 while preventing collisions with the reconstructed object 200. Additionally or alternatively, the computer 110 may be programmed to detect the object 160 based on a combination of the reconstructed object 200 and data received from the vehicle 100 sensor 130, such as a camera sensor 130. After block 430, the process 400 ends, or alternatively returns to decision block 410.

[0074] The computing devices discussed herein typically each include instructions that can be executed by one or more computing devices such as those identified above, and are used to perform the boxes or steps of the above-mentioned processes. Computer executable instructions can be compiled or interpreted from a computer program created using various programming languages ​​and / or techniques, which include, but are not limited to, Java™, C, C++, Visual Basic, JavaScript, Perl, HTML, etc., individually or in combination. In general, a processor (e.g., a microprocessor) receives instructions, for example, from a memory, a computer readable medium, etc., and executes these instructions, thereby executing one or more processes including one or more of the processes described herein. A variety of computer readable media can be used to store and transmit such instructions and other data. A file in a computing device is typically a collection of data stored on a computer readable medium (such as a storage medium, a random access memory, etc.).

[0075] Computer readable media include any medium that participates in providing data (e.g., instructions) that can be read by a computer. Such media can take many forms, including but not limited to non-volatile media, volatile media, etc. Non-volatile media include, for example, optical disks or disks and other persistent memories. Volatile media include dynamic random access memory (DRAM) that usually constitutes main memory. Common forms of computer readable media include, for example, floppy disks, floppy disks, hard disks, tapes, any other magnetic media, CD-ROMs, DVDs, any other optical media, punch cards, paper tapes, any other physical media with hole patterns, RAMs, PROMs, EPROMs, FLASH-EEPROMs, any other memory chips or cassettes, or any other media from which a computer can read.

[0076] With respect to the media, processes, systems, methods, etc. described herein, it should be understood that although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes may be implemented by performing the described steps in an order different from that described herein. It should also be understood that certain steps may be performed simultaneously, other steps may be added, or certain steps described herein may be omitted. In other words, the descriptions of systems and / or processes herein are provided for the purpose of illustrating certain embodiments and should in no way be construed as limiting the disclosed subject matter.

[0077] Therefore, it should be understood that the present disclosure including the above description and the accompanying drawings and the following claims is intended to be illustrative and not restrictive. Upon reading the above description, many embodiments and applications other than the provided examples will be apparent to those skilled in the art. The scope of the present invention should not be determined with reference to the above description, but rather should be determined and / or included in a non-provisional patent application based on the present invention with reference to the claims appended hereto together with the full scope of equivalents enjoyed by such claims. It is expected and intended that the technology discussed herein will develop in the future, and the disclosed systems and methods will be incorporated into such future embodiments. In short, it should be understood that the disclosed subject matter is capable of modification and variation.

[0078] According to the present invention, a system is provided, the system having a processor and a memory, the memory storing instructions executable by the processor to: define a plurality of volumes represented in an original point cloud dataset; define a corresponding set of sub-volumes in each of the volumes; and generate a reduced point cloud dataset including a number of points counted in a selected sub-volume.

[0079] According to one embodiment, the sub-volumes are set to have the same size.

[0080] According to one embodiment, the above invention is further characterized by a second processor and a second memory, the second memory storing instructions executable by the second processor to identify objects represented in the reduced point cloud dataset.

[0081] According to one embodiment, the second memory further includes instructions to identify the object based at least in part on the number of points counted in each of the sub-volumes.

[0082] According to one embodiment, each volume in the raw point cloud dataset includes at least one point in lidar reflectivity data.

[0083] According to one embodiment, each of the rolls has a rectangular shape.

[0084] According to one embodiment, each volume includes a vertical stack of some or all of the sub-volumes.

[0085] According to one embodiment, the instructions further include instructions to select the sub-volume only if the sub-volume includes one or more points.

[0086] According to one embodiment, each of the plurality of rolls has a bottom portion placed on the ground and a top portion spaced upward from the ground.

[0087] According to one embodiment, the instructions further include defining a height of each of the plurality of volumes based on a location of a highest point of a point cloud above a bottom of the volume.

[0088] According to one embodiment, the raw point cloud data set includes three-dimensional position coordinates of a plurality of points on a surface within a physical area covered by the collective point cloud data.

[0089] According to one embodiment, the above invention is further characterized in that the position coordinates of each point in the original point cloud set include a height from the ground and a global positioning system coordinate including a lateral coordinate and a longitudinal coordinate.

[0090] According to the present invention, a method is provided having the steps of defining a plurality of volumes represented in an original point cloud dataset, defining a corresponding set of sub-volumes in each of the volumes, and generating a reduced point cloud dataset comprising points counted in selected sub-volumes.

[0091] According to one embodiment, the sub-volumes are set to have the same size.

[0092] According to one embodiment, objects represented in the reduced point cloud dataset are identified in the second processor.

[0093] According to one embodiment, each volume in the raw point cloud dataset includes at least one point in lidar reflectivity data.

[0094] According to one embodiment, the above invention is further characterized in that a sub-volume is selected only if the sub-volume includes one or more points.

[0095] According to one embodiment, the above invention is further characterized by defining the height of each of the plurality of volumes based on the position of the highest point of the point cloud above the bottom of the volume.

[0096] According to one embodiment, the raw point cloud data set includes three-dimensional position coordinates of a plurality of points on a surface within a physical area covered by the collective point cloud data.

[0097] According to one embodiment, the above invention is further characterized in that the position coordinates of each point in the original point cloud data set include a height from the ground and a global positioning system coordinate including a lateral coordinate and a longitudinal coordinate.

Claims

1. A laser radar point cloud compression method, comprising: defining a plurality of volumes represented in the original point cloud dataset; a corresponding set of subvolumes defined in each of said volumes; as well as generating a reduced point cloud dataset, the reduced point cloud dataset comprising a number of points in each of the sub-volumes and coordinates of the corresponding volume and a histogram of the corresponding volume, the histogram comprising counts of points in each of the sub-volumes; A reconstructed object is identified based on the reduced point cloud dataset and a vehicle is navigated based at least in part on the reconstructed object.

2. The method of claim 1, wherein the sub-volumes are set to have the same size.

3. The method of claim 1, wherein each volume in the raw point cloud dataset includes at least one point of lidar reflectivity data.

4. The method of claim 1, further comprising selecting a subvolume only if the subvolume includes one or more points.

5. The method of claim 1, wherein each of the rolls has a rectangular shape.

6. The method of claim 1, wherein each volume comprises a vertical stack of some or all of the sub-volumes.

7. The method of claim 1, wherein each of the plurality of rolls has a bottom portion placed on the ground and a top portion spaced upward from the ground. 8 . The method of claim 1 , further comprising defining a height of each of the plurality of volumes based on a location of a highest point of the point cloud above a bottom of the volume.

9. The method of claim 1, wherein the raw point cloud data set includes three-dimensional position coordinates of a plurality of points on a surface within a physical area covered by the aggregate point cloud data. 10 . The method of claim 1 , wherein the position coordinates of each point in the original point cloud data set include a height from the ground and a global positioning system coordinate including a lateral coordinate and a longitudinal coordinate.

11. The method of claim 1 further comprising identifying, in a second processor, objects represented in the reduced point cloud dataset.

12. The method of claim 11, further comprising identifying, in the second processor, the object based at least in part on a number of points counted in each of the sub-volumes.

13. A computing device programmed to perform the method of any one of claims 1-10.

14. A computer program product comprising a computer readable medium storing instructions executable by a computer processor to perform the method of any one of claims 1-10.

15. A ground vehicle comprising a computing device programmed to perform the method of any one of claims 1-10.