WO2023231541A1 - 基于八叉树的体素地图生成方法、装置、存储介质及设备 - Google Patents

基于八叉树的体素地图生成方法、装置、存储介质及设备 Download PDF

Info

Publication number
WO2023231541A1
WO2023231541A1 PCT/CN2023/084682 CN2023084682W WO2023231541A1 WO 2023231541 A1 WO2023231541 A1 WO 2023231541A1 CN 2023084682 W CN2023084682 W CN 2023084682W WO 2023231541 A1 WO2023231541 A1 WO 2023231541A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
voxel
encoding
information
processing cycle
Prior art date
Application number
PCT/CN2023/084682
Other languages
English (en)
French (fr)
Inventor
许舒恒
Original Assignee
九识(苏州)智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 九识(苏州)智能科技有限公司 filed Critical 九识(苏州)智能科技有限公司
Publication of WO2023231541A1 publication Critical patent/WO2023231541A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation

Definitions

  • the present application relates to the field of unmanned driving technology, and in particular to an octree-based voxel map generation method, device, storage medium and equipment.
  • the vehicle needs to have prior knowledge of the existing environmental state and make reasonable predictions about the existing environmental state based on the prior knowledge.
  • the prior knowledge can be divided into two parts.
  • One part is the offline point cloud map, usually provided by high-precision maps; the other part is the online point cloud, usually obtained in real time by the vehicle's sensor. get. Since the real-time performance of offline point cloud maps is low, it is usually necessary to perform octree encoding on the online point cloud, and use the voxel map obtained after encoding to calibrate the offline point cloud map, thereby improving the accuracy of the point cloud map. real-time.
  • the octree is a tree-like data structure used to describe three-dimensional space.
  • Each node of the octree represents a cube voxel.
  • Each node has eight child nodes.
  • the voxels represented by the eight child nodes are added to Together they are equal to the voxels of the parent node.
  • Point cloud data can be projected into each voxel using the octree encoding method.
  • the parameters of the voxel include granularity information, coordinate information and attribute information.
  • the granularity information represents the side length of the voxel, and the coordinate information represents the center of the voxel.
  • Point, attribute information indicates whether point cloud data is projected in the voxel. For example, when the attribute information is 0, it means that there is no projected point cloud data in the voxel, and when the attribute information is 1, it means that there is projected point cloud data in the voxel.
  • a voxel map is generated by a CPU (Central Processing Unit). Specifically, after receiving the point cloud data sent by the sensor, the CPU uses the octree encoding method to serially encode the received point cloud data to obtain the voxel map. Due to the limited performance of the CPU, encoding a large amount of point cloud data takes a long time, resulting in low encoding efficiency.
  • CPU Central Processing Unit
  • This application provides an octree-based voxel map generation method, device, storage medium and equipment to solve the problem of long time consumption and low coding efficiency when using CPU to encode point cloud data with octree. low question.
  • the technical solutions are as follows:
  • an octree-based voxel map generation method for use in a graphics processor GPU in an unmanned vehicle.
  • the method includes:
  • the i-th point cloud segment sent by the central processing unit CPU in the unmanned vehicle is received.
  • the i-th point cloud segment is the CPU's response to the unmanned vehicle.
  • the point cloud data sent by each sensor is obtained after the i-th division.
  • the i-th processing cycle obtain the i-2th coding information obtained after coding the i-2th point cloud segment in the i-1th processing cycle, and convert the i-2th
  • the encoding information is sent to the CPU as the voxel map of the i-th processing cycle.
  • the octree coding method is used to encode the i-1th point cloud segment received in the i-1th processing cycle to obtain the i-1th coded information, include:
  • the voxel to be encoded is encoded to obtain the i-1th encoding information.
  • determining the voxel to be encoded among the plurality of voxels projected by the i-1th point cloud segment based on the n pieces of historical encoding information includes:
  • voxel For each voxel projected by the i-1th point cloud segment, if it is determined based on the attribute information in the n historical encoding information that the voxel does not have projected point cloud data at the historical moment, or if According to the n pieces of historical coding information, it is determined that the granularity of the voxel at the current moment has changed relative to the granularity at the previous moment, and then the voxel is determined to be a voxel to be encoded.
  • the method further includes:
  • the value of the attribute information is the first value, it is determined that there is no projected point cloud data for the voxel at the historical moment;
  • the value of the attribute information is the second value, it is determined that the voxel has projected point cloud data at the historical moment.
  • the method further includes:
  • each granularity corresponds to a distance range.
  • an octree-based voxel map generation device for use in a graphics processor GPU in an unmanned vehicle, and the device includes:
  • a receiving module configured to receive the i-th point cloud segment sent by the central processing unit CPU in the unmanned vehicle in the i-th processing cycle, where the i-th point cloud segment is the CPU's response to the
  • the point cloud data sent by each sensor in the unmanned vehicle is obtained after the i-th division.
  • the point cloud data is obtained by sampling the surrounding environment state by the sensor. i is a positive integer greater than or equal to 3. ;
  • An encoding module configured to use octree coding to encode the i-1th point cloud segment received in the i-1th processing cycle during the i-th processing cycle to obtain the i-1th coded information
  • a sending module configured to obtain, in the i-th processing cycle, the i-2th coding information obtained by coding the i-2th point cloud segment in the i-1th processing cycle, and send the i-2th coding information to The i-2th encoding information is sent to the CPU as the voxel map of the i-th processing cycle.
  • the encoding module is also used to:
  • the n historical encoding information is used to determine the The voxel to be encoded among the multiple voxels projected by the i-1th point cloud segment;
  • the voxel to be encoded is encoded to obtain the i-1th encoding information.
  • the encoding module is also used to:
  • voxel For each voxel projected by the i-1th point cloud segment, if it is determined based on the attribute information in the n historical encoding information that the voxel does not have projected point cloud data at the historical moment, or if According to the n pieces of historical coding information, it is determined that the granularity of the voxel at the current moment has changed relative to the granularity at the previous moment, and then the voxel is determined to be a voxel to be encoded.
  • a computer-readable storage medium in which at least one instruction is stored, and the at least one instruction is loaded and executed by a processor to implement the octree-based voxel map generation as described above. method.
  • a computer device in one aspect, includes a central processing unit (CPU), a graphics processor (GPU), and a memory. At least one instruction is stored in the memory. The instruction is loaded and executed by the processor to implement Octree-based voxel map generation method as described above.
  • CPU central processing unit
  • GPU graphics processor
  • memory At least one instruction is stored in the memory. The instruction is loaded and executed by the processor to implement Octree-based voxel map generation method as described above.
  • i-th processing cycle you can either receive the i-th point cloud segment sent by the CPU in the unmanned vehicle, or you can use octree coding to encode the i-th point cloud segment received in the i-1th processing cycle.
  • -1 point cloud segment is encoded to obtain the i-1th encoding information; the i-2th encoding information obtained after encoding the i-2 point cloud segment is also obtained, and the i-2th encoding information is obtained.
  • the information is sent to the CPU as a voxel map of the i-th processing cycle.
  • the GPU can use a pipeline method to encode all observed point cloud data in parallel. Compared with the CPU using a serial method to encode point cloud data. It is said that it can reduce the time spent in coding and greatly improve the coding efficiency.
  • the voxels to be encoded among the multiple voxels projected by the i-1th point cloud segment are first determined based on n historical encoding information; then the voxels to be encoded are encoded to obtain the voxels to be encoded.
  • i-1 encoding information so that the GPU can only encode unencoded voxels or voxels with changes in granularity, avoiding encoding encoded voxels, thereby taking advantage of the sparse characteristics of point cloud data and using eight Cross-tree coding removes duplicate and similar point cloud data and controls the amount of data to the acceptable computing power of the GPU.
  • high real-time point cloud maps can be established online for use by driverless vehicles with lower computing power and time-consuming costs.
  • Figure 1 is a method flow chart of an octree-based voxel map generation method provided by an embodiment of the present application
  • Figure 2 is a method flow chart of an octree-based voxel map generation method provided by another embodiment of the present application;
  • Figure 3 is a structural block diagram of an octree-based voxel map generation device provided by yet another embodiment of the present application.
  • FIG. 1 shows a method flow chart of an octree-based voxel map generation method provided by an embodiment of the present application.
  • the octree-based voxel map generation method can be applied to GPUs in computer equipment. (Graphics Processing Unit, graphics processor).
  • the octree-based voxel map generation method may include:
  • Step 101 In the i-th processing cycle, receive the i-th point cloud segment sent by the CPU in the unmanned vehicle.
  • the i-th point cloud segment is the point cloud data sent by the CPU to each sensor in the unmanned vehicle. Obtained after the i-th division, the point cloud data is obtained by sampling the surrounding environment state by the sensor, and i is a positive integer greater than or equal to 3.
  • An unmanned vehicle is equipped with a CPU, a GPU and multiple sensors. These sensors are responsible for sampling the environmental conditions around the vehicle to obtain point cloud data and sending the point cloud data to the CPU.
  • the CPU sends the point cloud data to the GPU.
  • the GPU Encode point cloud data and use the resulting encoded information as voxels
  • the map is sent to the CPU, and the CPU can directly use the voxel map to plan the driving path of the driverless vehicle, or the CPU can fuse the voxel map with the offline point cloud map, and plan the path of the driverless vehicle based on the resulting fused map.
  • the driving path the use of the voxel map is not limited in this embodiment.
  • the GPU can split the point cloud data processing process into three operations: reception, encoding, and feedback, and execute these three operations in parallel in a pipeline manner. Simply put, if divided by processing cycles, in the i-th processing cycle, the GPU needs to execute steps 101-103 at the same time.
  • the CPU can first divide the point cloud data into point cloud segments, and then send the point cloud segments to the GPU.
  • the point cloud data will be transmitted in the i-th processing cycle.
  • the point cloud segment is called the i-th point cloud segment.
  • Step 102 In the i-th processing cycle, use octree coding to encode the i-1th point cloud segment received in the i-1th processing cycle to obtain the i-1th coded information.
  • the GPU While receiving the i-th point cloud segment, the GPU also needs to encode the i-1th point cloud segment, which is the point cloud segment received in the i-1th processing cycle. .
  • Step 103 In the i-th processing cycle, obtain the i-2th coding information obtained after coding the i-2th point cloud segment in the i-1th processing cycle, and convert the i-2th coding information into The voxel map is sent to the CPU as the i-th processing cycle.
  • the GPU While receiving the i-th point cloud segment and encoding the i-1th point cloud segment, the GPU also needs to send the i-2th encoding information to the CPU as the current voxel map.
  • the i-2th encoding information is Obtained by encoding the i-2th point cloud segment, which is the point cloud segment received in the i-2th processing cycle.
  • the GPU also needs to store the i-2th coding information so that in subsequent processing cycles, the i-2th coding information can be used as historical coding information.
  • the octree-based voxel map generation method can not only receive the i-th point cloud segment sent by the CPU in the unmanned vehicle during the i-th processing cycle, but also
  • the octree coding method can be used to encode the i-1th point cloud segment received in the i-1th processing cycle to obtain the i-1th coding information; the i-2th point can also be obtained
  • the i-2th coding information obtained after encoding the cloud fragment is sent as the voxel map of the i-th processing cycle. Send it to the CPU.
  • the GPU can use a pipeline method to encode all observed point cloud data in parallel. Compared with the CPU using a serial method to encode point cloud data, it can reduce the time spent in encoding and significantly reduce the time required for encoding. Improve coding efficiency.
  • FIG. 2 shows a method flow chart of an octree-based voxel map generation method provided by an embodiment of the present application.
  • the octree-based voxel map generation method can be applied to GPUs in computer equipment. middle.
  • the octree-based voxel map generation method may include:
  • Step 201 In the i-th processing cycle, receive the i-th point cloud segment sent by the CPU in the unmanned vehicle.
  • the i-th point cloud segment is the point cloud data sent by the CPU to each sensor in the unmanned vehicle. Obtained after the i-th division, the point cloud data is obtained by sampling the surrounding environment state by the sensor, and i is a positive integer greater than or equal to 3.
  • An unmanned vehicle is equipped with a CPU, a GPU and multiple sensors. These sensors are responsible for sampling the environmental conditions around the vehicle to obtain point cloud data and sending the point cloud data to the CPU.
  • the CPU sends the point cloud data to the GPU.
  • the GPU Encode the point cloud data and send the encoded information to the CPU as a voxel map.
  • the CPU can directly use the voxel map to plan the driving path of the unmanned vehicle, or the CPU can combine the voxel map with the offline point cloud.
  • the maps are fused, and the driving path of the unmanned vehicle is planned based on the obtained fused map. In this embodiment, the use of the voxel map is not limited.
  • the GPU can split the point cloud data processing process into three operations: reception, encoding, and feedback, and execute these three operations in parallel in a pipeline manner. Simply put, if divided by processing cycles, in the i-th processing cycle, the GPU needs to execute step 201, steps 202-204, and step 205 at the same time.
  • the CPU can first divide the point cloud data into point cloud segments, and then send the point cloud segments to the GPU.
  • the point cloud data will be transmitted in the i-th processing cycle.
  • the point cloud segment is called the i-th point cloud segment.
  • Step 202 In the i-th processing cycle, from the historical coding information generated before the i-th processing cycle, filter out the last n pieces of historical coding information arranged in chronological order, where n is a positive integer.
  • the GPU While receiving the i-th point cloud segment, the GPU also needs to encode the i-1th point cloud segment, that is, perform steps 202-204.
  • the i-1th point cloud segment is processed in the i-1th processing cycle. Point cloud fragments received within.
  • the GPU can encode all point cloud data. However, some point cloud data have been processed previously. Therefore, based on the sparse characteristics of point cloud data, the GPU can only encode unencoded voxels or voxels with changes in granularity, avoiding encoding encoded voxels, thereby utilizing point cloud Due to the sparse nature of the data, octree coding is used to remove duplicate and similar point cloud data, and the amount of data is controlled within the acceptable computing power range of the GPU, thereby establishing high real-time online with lower computing power and time-consuming costs. Point cloud maps are used by autonomous vehicles.
  • the GPU can filter out the historical encoding information associated with the i-th point cloud segment and filter the voxels to be encoded based on the historical encoding information.
  • the historical encoding information is the encoding information generated before the i-th processing cycle, and the historical encoding Information can be sorted in the order in which it was generated.
  • the GPU can filter out the last n pieces of historical coding information arranged in chronological order from the historical coding information based on the preset experience value n.
  • Step 203 When encoding using the octree encoding method, determine the voxels to be encoded among the multiple voxels projected by the i-1th point cloud segment based on n pieces of historical encoding information.
  • the GPU can first map the point cloud data in the i-th point cloud fragment to the corresponding voxel, and then determine whether the voxel is a voxel to be encoded.
  • the GPU can obtain the voxel The value of the attribute information in n pieces of historical coding information; if the value of the attribute information is the first value, it is determined that there is no projected point cloud data for the voxel at the historical moment; if the value of the attribute information is the second value, then Determine that the voxel has projected point cloud data at a historical moment.
  • the voxel will be Determine the voxel to be encoded.
  • each particle size corresponds to a distance range.
  • the smaller the distance range that is, the closer the point cloud data is to the unmanned vehicle, the smaller the granularity of the voxels it projects, so as to better describe the details of the obstacle; the larger the distance range, that is, The farther away the point cloud data is from the unmanned vehicle, the greater the granularity of the voxels it projects. Therefore, when the granularity of the voxels projected by the point cloud data changes, recoding is required.
  • the distance range is 50 meters, and the granularity within 50 meters is 0.5 meters, and the granularity outside 50 meters is 1 meter. If the distance between the point cloud data and the unmanned vehicle in the i-1th processing cycle The distance is 100 meters, then the granularity of the voxels it projects is 1 meter; if the distance between the point cloud data and the unmanned vehicle is 40 meters in the i-th processing cycle, then the granularity of the voxels it projects The degree is 0.5 meters. At this time, the voxels projected by the point cloud data need to be encoded.
  • the GPU can obtain the first distance between the voxel and the driverless vehicle at the current moment, and the second distance between the voxel and the driverless vehicle at the previous moment; if If the granularities corresponding to the first distance and the second distance are different, it is determined that the granularity of the voxel at the current moment has changed relative to the granularity at the previous moment; if the granularities corresponding to the first distance and the second distance are the same, Then it is determined that the granularity of the voxel at the current moment has not changed relative to the granularity at the previous moment.
  • the voxel is determined as the voxel to be encoded.
  • Step 204 Encode the voxel to be encoded to obtain the i-1th encoding information.
  • the GPU can determine its corresponding granularity information based on the distance between the projected point cloud data and the unmanned vehicle, generate the coordinate information of the voxel, and generate an attribute whose content is the second value. information, you can get the i-1th coded information.
  • Step 205 In the i-th processing cycle, obtain the i-2th coding information obtained after coding the i-2th point cloud segment in the i-1th processing cycle, and convert the i-2th coding information into The voxel map is sent to the CPU as the i-th processing cycle.
  • the GPU While receiving the i-th point cloud segment and encoding the i-1th point cloud segment, the GPU also needs to send the i-2th encoding information to the CPU as the current voxel map.
  • the i-2th encoding information is Obtained by encoding the i-2th point cloud segment, which is the point cloud segment received in the i-2th processing cycle.
  • the GPU also needs to store the i-2th coding information so that in subsequent processing cycles, the i-2th coding information can be used as historical coding information.
  • the octree-based voxel map generation method can not only receive the i-th point cloud segment sent by the CPU in the unmanned vehicle during the i-th processing cycle, but also Octree encoding can be used to encode the i-1 point cloud segment received in the i-1 processing cycle.
  • Line coding obtain the i-1th coding information; you can also obtain the i-2th coding information obtained after coding the i-2th point cloud segment, and process the i-2th coding information as the i-th
  • the periodic voxel map is sent to the CPU.
  • the GPU can use a pipeline method to encode all observed point cloud data in parallel. Compared with the CPU using a serial method to encode point cloud data, the encoding time can be reduced. time-consuming, greatly improving coding efficiency.
  • the voxels to be encoded among the multiple voxels projected by the i-1th point cloud segment are first determined based on n historical encoding information; then the voxels to be encoded are encoded to obtain the voxels to be encoded.
  • the GPU can only encode unencoded voxels or voxels with changes in granularity, avoiding encoding encoded voxels, thereby taking advantage of the sparse characteristics of point cloud data and using eight Cross-tree coding removes duplicate and similar point cloud data and controls the amount of data within the range of acceptable computing power of the GPU, thereby establishing a high-real-time point cloud map online for driverless driving with lower computing power and time-consuming costs. vehicle use.
  • FIG. 3 shows a structural block diagram of an octree-based voxel map generation device provided by an embodiment of the present application.
  • the octree-based voxel map generation device can be applied to GPUs in computer equipment.
  • the octree-based voxel map generation device may include:
  • the receiving module 310 is configured to receive the i-th point cloud segment sent by the central processing unit CPU in the unmanned vehicle in the i-th processing cycle.
  • the i-th point cloud segment is the CPU's analysis of each point cloud segment in the unmanned vehicle.
  • the point cloud data sent by the sensor is obtained after the i-th division.
  • the point cloud data is obtained by sampling the surrounding environment state of the sensor. i is a positive integer greater than or equal to 3;
  • the encoding module 320 is configured to use the octree coding method to encode the i-1th point cloud segment received in the i-1th processing cycle in the i-th processing cycle to obtain the i-1th point cloud segment. encoded information;
  • the sending module 330 is configured to obtain, in the i-th processing cycle, the i-2th coding information obtained by coding the i-2th point cloud segment in the i-1th processing cycle, and convert the i-2th The encoded information is sent to the CPU as the voxel map of the i-th processing cycle.
  • the encoding module 320 is also used to:
  • the voxels to be encoded among the multiple voxels projected by the i-1th point cloud segment are determined based on n pieces of historical encoding information
  • the encoding module 320 is also used to:
  • the voxel For each voxel projected by the i-1th point cloud segment, if it is determined based on the attribute information in n pieces of historical coding information that the voxel does not have projected point cloud data at the historical moment, or if based on n pieces of historical coding information If it is determined that the granularity of the voxel at the current moment has changed relative to the granularity at the previous moment, the voxel is determined to be a voxel to be encoded.
  • the device further includes:
  • the first acquisition module is used to obtain the value of the attribute information of the voxel in n pieces of historical coding information
  • the first determination module is used to determine that the voxel does not have projected point cloud data at the historical moment if the value of the attribute information is the first value; and determine that the voxel exists at the historical moment if the value of the attribute information is the second value. Projected point cloud data.
  • the device further includes:
  • the second acquisition module is used to obtain the first distance between the voxel and the unmanned vehicle at the current moment, and the second distance between the voxel and the unmanned vehicle at the previous moment;
  • the second determination module is used to determine whether the granularity of the voxel at the current moment has changed relative to the granularity of the previous moment if the granularity corresponding to the first distance and the second distance is different; if the granularity of the first distance and the second distance is different, If the granularities corresponding to the two distances are the same, it is determined that the granularity of the voxel at the current moment has not changed relative to the granularity at the previous moment; where each granularity corresponds to a distance range.
  • the octree-based voxel map generation device can not only receive the i-th point cloud segment sent by the CPU in the unmanned vehicle during the i-th processing cycle, but also
  • the octree coding method can be used to encode the i-1th point cloud segment received in the i-1th processing cycle to obtain the i-1th coding information; the i-2th point can also be obtained
  • the i-2th coding information obtained after encoding the cloud fragment is sent to the CPU as the voxel map of the i-th processing cycle.
  • the GPU can use a pipeline to process all observed Parallel encoding of point cloud data can reduce encoding time and greatly improve encoding efficiency compared to CPU encoding point cloud data in a serial manner.
  • the voxels to be encoded among the multiple voxels projected by the i-1th point cloud segment are first determined based on n historical encoding information; then the voxels to be encoded are encoded to obtain the voxels to be encoded.
  • the GPU can only encode unencoded voxels or voxels with changes in granularity, avoiding encoding encoded voxels, thereby taking advantage of the sparse characteristics of point cloud data, so that Use octree coding to remove duplicate and similar point cloud data, and control the amount of data within the acceptable computing power range of the GPU, thereby establishing high real-time point cloud maps online for wireless use with lower computing power and time-consuming costs. Used by people driving vehicles.
  • One embodiment of the present application provides a computer-readable storage medium in which at least one instruction is stored, and the at least one instruction is loaded and executed by a processor to implement the octree-based voxel as described above. Map generation method.
  • the computer device includes a CPU, a GPU and a memory. At least one instruction is stored in the memory, and the instruction is loaded and executed by the processor to implement the above. Octree-based voxel map generation method.
  • the octree-based voxel map generation device performs octree-based voxel map generation, only the division of the above functional modules is used as an example. In practical applications, it can The above function allocation is completed by different functional modules as needed, that is, the internal structure of the octree-based voxel map generation device is divided into different functional modules to complete all or part of the functions described above.
  • the octree-based voxel map generation device provided in the above embodiments and the octree-based voxel map generation method embodiments belong to the same concept. The specific implementation process can be found in the method embodiments and will not be described again here.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Navigation (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本申请公开了一种基于八叉树的体素地图生成方法、装置、存储介质及设备,属于无人驾驶技术领域。所述方法用于无人驾驶车辆中的GPU中,包括:在第i个处理周期内,接收CPU发送的第i个点云片段,第i个点云片段是CPU对传感器发送的点云数据进行第i次划分后得到的;在第i个处理周期内,利用八叉树编码方式对第i-1个点云片段进行编码,得到第i-1个编码信息;在第i个处理周期内,获取在第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU。本申请中,GPU采用流水线方式对所有点云数据进行并行编码,减少了耗时,提升了编码效率。

Description

基于八叉树的体素地图生成方法、装置、存储介质及设备 技术领域
本申请涉及无人驾驶技术领域,特别涉及一种基于八叉树的体素地图生成方法、装置、存储介质及设备。
背景技术
在无人驾驶的场景中,车辆需要具备对现有的环境状态的先验知识,并基于先验知识对现有的环境状态做出合理预测。以先验知识为点云地图为例,先验知识可以分为两部分,一部分为离线的点云地图,通常由高精地图提供;另一部分为在线的点云,通常由车辆的传感器实时获取得到。由于离线的点云地图的实时性较低,所以,通常需要对在线的点云进行八叉树编码,利用编码后得到的体素地图对离线的点云地图进行校准,从而提高点云地图的实时性。
八叉树是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体素,每个节点有八个子节点,将八个子节点所表示的体素加在一起就等于父节点的体素。利用八叉树编码方式可以将点云数据投影到各个体素内,体素的参数包括颗粒度信息、坐标信息和属性信息,颗粒度信息表示体素的边长,坐标信息表示体素的中心点,属性信息表示体素中是否投影有点云数据,比如,属性信息为0时表示体素内不存在投影的点云数据,属性信息为1时表示体素内存在投影的点云数据。
相关技术中由CPU(Central Processing Unit,中央处理器)来生成体素地图。具体的,CPU在接收到传感器发送的点云数据后,利用八叉树编码方式串行对接收到的点云数据进行编码,得到体素地图。由于CPU的性能有限,对大量的点云数据进行编码时的耗时较长,从而导致编码效率较低。
发明内容
本申请提供了一种基于八叉树的体素地图生成方法、装置、存储介质及设备,用于解决利用CPU对点云数据进行八叉树编码时,耗时较长,编码效率较 低的问题。所述技术方案如下:
一方面,提供了一种基于八叉树的体素地图生成方法,用于无人驾驶车辆中的图形处理器GPU中,所述方法包括:
在第i个处理周期内,接收所述无人驾驶车辆中的中央处理器CPU发送的第i个点云片段,所述第i个点云片段是所述CPU对所述无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,所述点云数据是所述传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数;
在所述第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;
在所述第i个处理周期内,获取在所述第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将所述第i-2个编码信息作为所述第i个处理周期的体素地图发送给所述CPU。
在一种可能的实现方式中,所述利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息,包括:
在所述第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排列的最后n个历史编码信息,n为正整数;
在利用八叉树编码方式进行编码时,基于所述n个历史编码信息确定所述第i-1个点云片段所投影的多个体素中的待编码体素;
对所述待编码体素进行编码,得到第i-1个编码信息。
在一种可能的实现方式中,所述基于所述n个历史编码信息确定所述第i-1个点云片段所投影的多个体素中的待编码体素,包括:
对于所述第i-1个点云片段所投影的每个体素,若根据所述n个历史编码信息中的属性信息确定所述体素在历史时刻不存在投影的点云数据,或者,若根据所述n个历史编码信息确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将所述体素确定为待编码体素。
在一种可能的实现方式中,所述方法还包括:
获取所述体素在所述n个历史编码信息中的属性信息的数值;
若所述属性信息的数值为第一数值,则确定所述体素在历史时刻不存在投影的点云数据;
若所述属性信息的数值为第二数值,则确定所述体素在历史时刻存在投影的点云数据。
在一种可能的实现方式中,所述方法还包括:
获取所述体素在当前时刻与所述无人驾驶车辆之间的第一距离,以及在前一时刻与所述无人驾驶车辆之间的第二距离;
若所述第一距离和所述第二距离所对应的颗粒度不同,则确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化;
若所述第一距离和所述第二距离所对应的颗粒度相同,则确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度未发生变化;
其中,每种颗粒度对应于一个距离范围。
一方面,提供了一种基于八叉树的体素地图生成装置,用于无人驾驶车辆中的图形处理器GPU中,所述装置包括:
接收模块,用于在第i个处理周期内,接收所述无人驾驶车辆中的中央处理器CPU发送的第i个点云片段,所述第i个点云片段是所述CPU对所述无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,所述点云数据是所述传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数;
编码模块,用于在所述第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;
发送模块,用于在所述第i个处理周期内,获取在所述第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将所述第i-2个编码信息作为所述第i个处理周期的体素地图发送给所述CPU。
在一种可能的实现方式中,所述编码模块,还用于:
在所述第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排列的最后n个历史编码信息,n为正整数;
在利用八叉树编码方式进行编码时,基于所述n个历史编码信息确定所述 第i-1个点云片段所投影的多个体素中的待编码体素;
对所述待编码体素进行编码,得到第i-1个编码信息。
在一种可能的实现方式中,所述编码模块,还用于:
对于所述第i-1个点云片段所投影的每个体素,若根据所述n个历史编码信息中的属性信息确定所述体素在历史时刻不存在投影的点云数据,或者,若根据所述n个历史编码信息确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将所述体素确定为待编码体素。
一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的基于八叉树的体素地图生成方法。
一方面,提供了一种计算机设备,所述计算机设备包括中央处理器CPU、图形处理器GPU和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的基于八叉树的体素地图生成方法。
本申请提供的技术方案的有益效果至少包括:
在第i个处理周期内,既可以接收无人驾驶车辆中的CPU发送的第i个点云片段,也可以利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;还可以获取对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU,这样,GPU可以采用流水线的方式对观测到的所有点云数据进行并行编码,相比于CPU采用串行方式对点云数据进行编码来说,可以减少编码时的耗时,大幅提升编码效率。
在利用八叉树编码方式进行编码时,先基于n个历史编码信息确定第i-1个点云片段所投影的多个体素中的待编码体素;再对待编码体素进行编码,得到第i-1个编码信息,这样,GPU可以只对未编码的体素或颗粒度发生变化的体素进行编码,避免对已编码的体素进行编码,从而利用点云数据的稀疏特性,使用八叉树编码去除重复和相似的点云数据,将数据量控制在GPU可接受的算力 范围内,从而以较低算力和耗时成本,在线建立高实时性的点云地图供无人驾驶车辆使用。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的基于八叉树的体素地图生成方法的方法流程图;
图2是本申请另一实施例提供的基于八叉树的体素地图生成方法的方法流程图;
图3是本申请再一实施例提供的基于八叉树的体素地图生成装置的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的基于八叉树的体素地图生成方法的方法流程图,该基于八叉树的体素地图生成方法可以应用于计算机设备中的GPU(Graphics Processing Unit,图形处理器)中。该基于八叉树的体素地图生成方法,可以包括:
步骤101,在第i个处理周期内,接收无人驾驶车辆中的CPU发送的第i个点云片段,第i个点云片段是CPU对无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,点云数据是传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数。
无人驾驶车辆中安装有CPU、GPU和多个传感器,这些传感器负责对车辆周围的环境状态进行采样得到点云数据,并将点云数据发送给CPU,CPU将点云数据发送给GPU,GPU对点云数据进行编码,并将得到的编码信息作为体素 地图发送给CPU,CPU可以直接使用体素地图规划无人驾驶车辆的行驶路径,或者,CPU可以将体素地图与离线的点云地图进行融合,并根据得到的融合地图规划无人驾驶车辆的行驶路径,本实施例中不限制体素地图的使用方式。
本实施例中,GPU可以将点云数据的处理流程拆分成接收、编码和反馈这三个操作,并采用流水线的方式并行执行这三个操作。简单来说,若以处理周期来划分,则在第i个处理周期内,GPU需要同时执行步骤101-103。
由于点云数据是实时采样得到的数据流,所以,CPU可以先将点云数据划分成点云片段,再将点云片段发送给GPU,本实施例中将在第i个处理周期内传输的点云片段称为第i个点云片段。
步骤102,在第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息。
在接收第i个点云片段的同时,GPU还需要对第i-1个点云片段进行编码,第i-1个点云片段是在第i-1个处理周期内接收到的点云片段。
步骤103,在第i个处理周期内,获取在第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU。
在接收第i个点云片段,编码第i-1个点云片段的同时,GPU还需要将第i-2个编码信息作为当前的体素地图发送给CPU,第i-2个编码信息是对第i-2个点云片段进行编码得到的,第i-2个点云片段是在第i-2个处理周期内接收到的点云片段。
需要补充说明的是,GPU还需要对第i-2个编码信息进行存储,以便在后续的处理周期中,将第i-2个编码信息作为历史编码信息进行使用。
本实施例中,当i=1时,GPU只接收CPU发送的第1个点云片段;当i=2时,GPU接收CPU发送的第2个点云片段,同时对第1个点云片段进行编码;当i≥3时,GPU执行步骤101-103。
综上所述,本申请实施例提供的基于八叉树的体素地图生成方法,在第i个处理周期内,既可以接收无人驾驶车辆中的CPU发送的第i个点云片段,也可以利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;还可以获取对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发 送给CPU,这样,GPU可以采用流水线的方式对观测到的所有点云数据进行并行编码,相比于CPU采用串行方式对点云数据进行编码来说,可以减少编码时的耗时,大幅提升编码效率。
请参考图2,其示出了本申请一个实施例提供的基于八叉树的体素地图生成方法的方法流程图,该基于八叉树的体素地图生成方法可以应用于计算机设备中的GPU中。该基于八叉树的体素地图生成方法,可以包括:
步骤201,在第i个处理周期内,接收无人驾驶车辆中的CPU发送的第i个点云片段,第i个点云片段是CPU对无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,点云数据是传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数。
无人驾驶车辆中安装有CPU、GPU和多个传感器,这些传感器负责对车辆周围的环境状态进行采样得到点云数据,并将点云数据发送给CPU,CPU将点云数据发送给GPU,GPU对点云数据进行编码,并将得到的编码信息作为体素地图发送给CPU,CPU可以直接使用体素地图规划无人驾驶车辆的行驶路径,或者,CPU可以将体素地图与离线的点云地图进行融合,并根据得到的融合地图规划无人驾驶车辆的行驶路径,本实施例中不限制体素地图的使用方式。
本实施例中,GPU可以将点云数据的处理流程拆分成接收、编码和反馈这三个操作,并采用流水线的方式并行执行这三个操作。简单来说,若以处理周期来划分,则在第i个处理周期内,GPU需要同时执行步骤201、步骤202-204、步骤205。
由于点云数据是实时采样得到的数据流,所以,CPU可以先将点云数据划分成点云片段,再将点云片段发送给GPU,本实施例中将在第i个处理周期内传输的点云片段称为第i个点云片段。
步骤202,在第i个处理周期内,在第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排列的最后n个历史编码信息,n为正整数。
在接收第i个点云片段的同时,GPU还需要对第i-1个点云片段进行编码,即执行步骤202-204,第i-1个点云片段是在第i-1个处理周期内接收到的点云片段。
GPU可以对所有的点云数据进行编码,然而,部分点云数据已在之前的处 理周期中编码过,所以,基于点云数据的稀疏特性,GPU可以只对未编码的体素或颗粒度发生变化的体素进行编码,避免对已编码的体素进行编码,从而利用点云数据的稀疏特性,使用八叉树编码去除重复和相似的点云数据,将数据量控制在GPU可接受的算力范围内,从而以较低算力和耗时成本,在线建立高实时性的点云地图供无人驾驶车辆使用。
GPU可以筛选出与第i个点云片段相关联的历史编码信息,并基于历史编码信息来筛选待编码的体素,历史编码信息是在第i个处理周期之前生成的编码信息,且历史编码信息可以按照生成顺序进行排序。
具体的,GPU可以根据预设的经验值n,从历史编码信息中筛选出按照时间顺序排列的最后n个历史编码信息。
步骤203,在利用八叉树编码方式进行编码时,基于n个历史编码信息确定第i-1个点云片段所投影的多个体素中的待编码体素。
GPU可以先将第i个点云片段中的点云数据映射到对应的体素中,再判断该体素是否是待编码体素。其中,待编码体素包括两种,第一种是在第i个处理周期之前未编码过的体素,第二种是在第i个处理周期时的颗粒度发生变化的体素。
对于第一种体素,由于未编码过的体素中不存在投影的点云数据,且体素中是否存在投影的点云数据可以根据属性信息的数值来判断,所以,GPU可以获取体素在n个历史编码信息中的属性信息的数值;若属性信息的数值为第一数值,则确定该体素在历史时刻不存在投影的点云数据;若属性信息的数值为第二数值,则确定该体素在历史时刻存在投影的点云数据。对应的,对于第i-1个点云片段所投影的每个体素,若根据n个历史编码信息中的属性信息确定该体素在历史时刻不存在投影的点云数据,则将该体素确定为待编码体素。
本实施例中,每种颗粒度对应于一个距离范围。通常来说,距离范围越小,即点云数据距离无人驾驶车辆越近,则其所投影的体素的颗粒度越小,以便更好地描述障碍物的细节;距离范围越大,即点云数据距离无人驾驶车辆越远,则其所投影的体素的颗粒度越大,所以,当点云数据投影的体素的颗粒度发生变化时,需要进行重新编码。
假设距离范围为50米,且在50米内的颗粒度为0.5米,在50米外的颗粒度为1米,若在第i-1个处理周期时点云数据与无人驾驶车辆之间的距离为100 米,则其所投影的体素的颗粒度为1米;若在第i个处理周期时该点云数据与无人驾驶车辆之间的距离为40米,则其所投影的体素的颗粒度为0.5米,此时需要对该点云数据所投影的体素进行编码。
基于上述规则,对于第二种体素,GPU可以获取体素在当前时刻与无人驾驶车辆之间的第一距离,以及在前一时刻与无人驾驶车辆之间的第二距离;若第一距离和第二距离所对应的颗粒度不同,则确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化;若第一距离和第二距离所对应的颗粒度相同,则确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度未发生变化。对应的,对于第i-1个点云片段所投影的每个体素,若根据n个历史编码信息确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将体素确定为待编码体素。
步骤204,对待编码体素进行编码,得到第i-1个编码信息。
对于需要编码的每个体素,GPU可以根据其中投影的点云数据与无人驾驶车辆之间的距离确定其对应的颗粒度信息、生成该体素的坐标信息、生成内容为第二数值的属性信息,即可得到第i-1个编码信息。
步骤205,在第i个处理周期内,获取在第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU。
在接收第i个点云片段,编码第i-1个点云片段的同时,GPU还需要将第i-2个编码信息作为当前的体素地图发送给CPU,第i-2个编码信息是对第i-2个点云片段进行编码得到的,第i-2个点云片段是在第i-2个处理周期内接收到的点云片段。
需要补充说明的是,GPU还需要对第i-2个编码信息进行存储,以便在后续的处理周期中,将第i-2个编码信息作为历史编码信息进行使用。
本实施例中,当i=1时,GPU只接收CPU发送的第1个点云片段;当i=2时,GPU接收CPU发送的第2个点云片段,同时对第1个点云片段进行编码;当i≥3时,GPU执行步骤201-205。
综上所述,本申请实施例提供的基于八叉树的体素地图生成方法,在第i个处理周期内,既可以接收无人驾驶车辆中的CPU发送的第i个点云片段,也可以利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进 行编码,得到第i-1个编码信息;还可以获取对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU,这样,GPU可以采用流水线的方式对观测到的所有点云数据进行并行编码,相比于CPU采用串行方式对点云数据进行编码来说,可以减少编码时的耗时,大幅提升编码效率。
在利用八叉树编码方式进行编码时,先基于n个历史编码信息确定第i-1个点云片段所投影的多个体素中的待编码体素;再对待编码体素进行编码,得到第i-1个编码信息,这样,GPU可以只对未编码的体素或颗粒度发生变化的体素进行编码,避免对已编码的体素进行编码,从而利用点云数据的稀疏特性,使用八叉树编码去除重复和相似的点云数据,将数据量控制在GPU可接受的算力范围内,从而以较低算力和耗时成本,在线建立高实时性的点云地图供无人驾驶车辆使用。
请参考图3,其示出了本申请一个实施例提供的基于八叉树的体素地图生成装置的结构框图,该基于八叉树的体素地图生成装置可以应用于计算机设备中的GPU中。该基于八叉树的体素地图生成装置,可以包括:
接收模块310,用于在第i个处理周期内,接收无人驾驶车辆中的中央处理器CPU发送的第i个点云片段,第i个点云片段是CPU对无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,点云数据是传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数;
编码模块320,用于在第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;
发送模块330,用于在第i个处理周期内,获取在第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU。
在一个可选的实施例中,编码模块320,还用于:
在第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排列的最后n个历史编码信息,n为正整数;
在利用八叉树编码方式进行编码时,基于n个历史编码信息确定第i-1个点云片段所投影的多个体素中的待编码体素;
对待编码体素进行编码,得到第i-1个编码信息。
在一个可选的实施例中,编码模块320,还用于:
对于第i-1个点云片段所投影的每个体素,若根据n个历史编码信息中的属性信息确定体素在历史时刻不存在投影的点云数据,或者,若根据n个历史编码信息确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将体素确定为待编码体素。
在一个可选的实施例中,该装置还包括:
第一获取模块,用于获取体素在n个历史编码信息中的属性信息的数值;
第一确定模块,用于若属性信息的数值为第一数值,则确定体素在历史时刻不存在投影的点云数据;若属性信息的数值为第二数值,则确定体素在历史时刻存在投影的点云数据。
在一个可选的实施例中,该装置还包括:
第二获取模块,用于获取体素在当前时刻与无人驾驶车辆之间的第一距离,以及在前一时刻与无人驾驶车辆之间的第二距离;
第二确定模块,用于若第一距离和第二距离所对应的颗粒度不同,则确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化;若第一距离和第二距离所对应的颗粒度相同,则确定体素在当前时刻的颗粒度相对于前一时刻的颗粒度未发生变化;其中,每种颗粒度对应于一个距离范围。
综上所述,本申请实施例提供的基于八叉树的体素地图生成装置,在第i个处理周期内,既可以接收无人驾驶车辆中的CPU发送的第i个点云片段,也可以利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;还可以获取对第i-2个点云片段进行编码后得到的第i-2个编码信息,将第i-2个编码信息作为第i个处理周期的体素地图发送给CPU,这样,GPU可以采用流水线的方式对观测到的所有点云数据进行并行编码,相比于CPU采用串行方式对点云数据进行编码来说,可以减少编码时的耗时,大幅提升编码效率。
在利用八叉树编码方式进行编码时,先基于n个历史编码信息确定第i-1个点云片段所投影的多个体素中的待编码体素;再对待编码体素进行编码,得到第i-1个编码信息,这样,GPU可以只对未编码的体素或颗粒度发生变化的体素进行编码,避免对已编码的体素进行编码,从而利用点云数据的稀疏特性,使 用八叉树编码去除重复和相似的点云数据,将数据量控制在GPU可接受的算力范围内,从而以较低算力和耗时成本,在线建立高实时性的点云地图供无人驾驶车辆使用。
本申请一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的基于八叉树的体素地图生成方法。
本申请一个实施例提供了一种计算机设备,所述计算机设备包括CPU、GPU和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的基于八叉树的体素地图生成方法。
需要说明的是:上述实施例提供的基于八叉树的体素地图生成装置在进行基于八叉树的体素地图生成时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于八叉树的体素地图生成装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于八叉树的体素地图生成装置与基于八叉树的体素地图生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (10)

  1. 一种基于八叉树的体素地图生成方法,其特征在于,用于无人驾驶车辆中的图形处理器GPU中,所述方法包括:
    在第i个处理周期内,接收所述无人驾驶车辆中的中央处理器CPU发送的第i个点云片段,所述第i个点云片段是所述CPU对所述无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,所述点云数据是所述传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数;
    在所述第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;
    在所述第i个处理周期内,获取在所述第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将所述第i-2个编码信息作为所述第i个处理周期的体素地图发送给所述CPU。
  2. 根据权利要求1所述的方法,其特征在于,所述利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息,包括:
    在所述第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排列的最后n个历史编码信息,n为正整数;
    在利用八叉树编码方式进行编码时,基于所述n个历史编码信息确定所述第i-1个点云片段所投影的多个体素中的待编码体素;
    对所述待编码体素进行编码,得到第i-1个编码信息。
  3. 根据权利要求2所述的方法,其特征在于,所述基于所述n个历史编码信息确定所述第i-1个点云片段所投影的多个体素中的待编码体素,包括:
    对于所述第i-1个点云片段所投影的每个体素,若根据所述n个历史编码信息中的属性信息确定所述体素在历史时刻不存在投影的点云数据,或者,若根据所述n个历史编码信息确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将所述体素确定为待编码体素。
  4. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    获取所述体素在所述n个历史编码信息中的属性信息的数值;
    若所述属性信息的数值为第一数值,则确定所述体素在历史时刻不存在投影的点云数据;
    若所述属性信息的数值为第二数值,则确定所述体素在历史时刻存在投影的点云数据。
  5. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    获取所述体素在当前时刻与所述无人驾驶车辆之间的第一距离,以及在前一时刻与所述无人驾驶车辆之间的第二距离;
    若所述第一距离和所述第二距离所对应的颗粒度不同,则确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化;
    若所述第一距离和所述第二距离所对应的颗粒度相同,则确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度未发生变化;
    其中,每种颗粒度对应于一个距离范围。
  6. 一种基于八叉树的体素地图生成装置,其特征在于,用于无人驾驶车辆中的图形处理器GPU中,所述装置包括:
    接收模块,用于在第i个处理周期内,接收所述无人驾驶车辆中的中央处理器CPU发送的第i个点云片段,所述第i个点云片段是所述CPU对所述无人驾驶车辆中的各个传感器发送的点云数据进行第i次划分后得到的,所述点云数据是所述传感器对周围的环境状态进行采样得到的,i为大于或等于3的正整数;
    编码模块,用于在所述第i个处理周期内,利用八叉树编码方式对在第i-1个处理周期内接收到的第i-1个点云片段进行编码,得到第i-1个编码信息;
    发送模块,用于在所述第i个处理周期内,获取在所述第i-1处理周期内对第i-2个点云片段进行编码后得到的第i-2个编码信息,将所述第i-2个编码信息作为所述第i个处理周期的体素地图发送给所述CPU。
  7. 根据权利要求6所述的装置,其特征在于,所述编码模块,还用于:
    在所述第i个处理周期之前生成的历史编码信息中,筛选出按照时间顺序排 列的最后n个历史编码信息,n为正整数;
    在利用八叉树编码方式进行编码时,基于所述n个历史编码信息确定所述第i-1个点云片段所投影的多个体素中的待编码体素;
    对所述待编码体素进行编码,得到第i-1个编码信息。
  8. 根据权利要求7所述的装置,其特征在于,所述编码模块,还用于:
    对于所述第i-1个点云片段所投影的每个体素,若根据所述n个历史编码信息中的属性信息确定所述体素在历史时刻不存在投影的点云数据,或者,若根据所述n个历史编码信息确定所述体素在当前时刻的颗粒度相对于前一时刻的颗粒度发生了变化,则将所述体素确定为待编码体素。
  9. 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至5任一所述的基于八叉树的体素地图生成方法。
  10. 一种计算机设备,其特征在于,所述计算机设备包括中央处理器CPU、图形处理器GPU和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至5任一所述的基于八叉树的体素地图生成方法。
PCT/CN2023/084682 2022-05-31 2023-03-29 基于八叉树的体素地图生成方法、装置、存储介质及设备 WO2023231541A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210611347.4A CN115049750B (zh) 2022-05-31 2022-05-31 基于八叉树的体素地图生成方法、装置、存储介质及设备
CN202210611347.4 2022-05-31

Publications (1)

Publication Number Publication Date
WO2023231541A1 true WO2023231541A1 (zh) 2023-12-07

Family

ID=83159927

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/084682 WO2023231541A1 (zh) 2022-05-31 2023-03-29 基于八叉树的体素地图生成方法、装置、存储介质及设备

Country Status (2)

Country Link
CN (1) CN115049750B (zh)
WO (1) WO2023231541A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115049750B (zh) * 2022-05-31 2023-06-16 九识智行(北京)科技有限公司 基于八叉树的体素地图生成方法、装置、存储介质及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111338804A (zh) * 2020-05-19 2020-06-26 北京数字绿土科技有限公司 激光雷达点云数据的解算方法、装置及多线程处理系统
US20210248784A1 (en) * 2020-02-10 2021-08-12 Tencent America LLC Node-based geometry and attribute coding for a point cloud
CN113615204A (zh) * 2019-03-20 2021-11-05 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
WO2022063055A1 (zh) * 2020-09-22 2022-03-31 上海交通大学 基于多尺度结构化字典学习的3d点云压缩系统
CN115049750A (zh) * 2022-05-31 2022-09-13 九识智行(北京)科技有限公司 基于八叉树的体素地图生成方法、装置、存储介质及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1345154A1 (en) * 2002-03-11 2003-09-17 Bracco Imaging S.p.A. A method for encoding image pixels and method for processing images aimed at qualitative recognition of the object reproduced by one more image pixels
US9613388B2 (en) * 2014-01-24 2017-04-04 Here Global B.V. Methods, apparatuses and computer program products for three dimensional segmentation and textured modeling of photogrammetry surface meshes
EP3418976A1 (en) * 2017-06-22 2018-12-26 Thomson Licensing Methods and devices for encoding and reconstructing a point cloud
JP7035668B2 (ja) * 2018-03-19 2022-03-15 富士フイルムビジネスイノベーション株式会社 符号化装置、復号装置及びプログラム
CN108645353B (zh) * 2018-05-14 2020-09-01 四川川大智胜软件股份有限公司 基于多帧随机二元编码光场的三维数据采集系统及方法
WO2020012968A1 (ja) * 2018-07-11 2020-01-16 ソニー株式会社 画像処理装置および方法
US11943457B2 (en) * 2019-03-19 2024-03-26 Sony Group Corporation Information processing apparatus and method
CN110443810B (zh) * 2019-07-17 2022-09-16 北京建筑大学 基于快速邻接体素查询的点云平面分割方法
US11417029B2 (en) * 2019-12-02 2022-08-16 Tencent America LLC Method and apparatus for point cloud coding
CN113766228B (zh) * 2020-06-05 2023-01-13 Oppo广东移动通信有限公司 点云压缩方法、编码器、解码器及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113615204A (zh) * 2019-03-20 2021-11-05 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20210248784A1 (en) * 2020-02-10 2021-08-12 Tencent America LLC Node-based geometry and attribute coding for a point cloud
CN111338804A (zh) * 2020-05-19 2020-06-26 北京数字绿土科技有限公司 激光雷达点云数据的解算方法、装置及多线程处理系统
WO2022063055A1 (zh) * 2020-09-22 2022-03-31 上海交通大学 基于多尺度结构化字典学习的3d点云压缩系统
CN115049750A (zh) * 2022-05-31 2022-09-13 九识智行(北京)科技有限公司 基于八叉树的体素地图生成方法、装置、存储介质及设备

Also Published As

Publication number Publication date
CN115049750A (zh) 2022-09-13
CN115049750B (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
US20220148251A1 (en) Path planning using sparse volumetric data
CN107480789B (zh) 一种深度学习模型的高效转换方法及装置
CN111462137B (zh) 一种基于知识蒸馏和语义融合的点云场景分割方法
Liang et al. Applying genetic algorithm and ant colony optimization algorithm into marine investigation path planning model
US11532117B2 (en) Density coordinate hashing for volumetric data
WO2023231541A1 (zh) 基于八叉树的体素地图生成方法、装置、存储介质及设备
CN111192364A (zh) 一种低成本移动多机器人视觉同时定位和地图创建方法
US20210136173A1 (en) Systems and methods for data processing
CN114997337B (zh) 信息融合、数据通信方法、装置及电子设备和存储介质
CN108304926B (zh) 一种适用于神经网络的池化计算装置及方法
CN113052955B (zh) 一种点云补全方法、系统及应用
CN111210016A (zh) 对包含元素级别操作的神经网络进行剪枝
CN109344969B (zh) 神经网络系统及其训练方法以及计算机可读介质
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN107025273A (zh) 一种数据查询的优化方法和装置
CN113777952A (zh) 一种实车与虚拟车交互映射的自动驾驶仿真测试方法
CN112884120A (zh) 图神经网络表示架构
CN111738435A (zh) 一种基于移动设备的在线稀疏训练方法及系统
CN109491956B (zh) 一种异构协同计算系统
CN115185818A (zh) 一种基于二进制集合的程序依赖簇检测方法
CN115112141A (zh) 一种车辆路径规划方法、系统、电子设备及存储介质
CN109189781B (zh) 一种车联网知识库表示方法,装置及系统
CN111796917A (zh) 算子运算调度方法和装置
US20210037108A1 (en) Systems and methods for data storage
CN110765319B (zh) 一种提高Janusgraph路径探索性能的方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23814738

Country of ref document: EP

Kind code of ref document: A1