CN112689997B - 点云的排序方法和装置 - Google Patents

点云的排序方法和装置 Download PDF

Info

Publication number
CN112689997B
CN112689997B CN202080005034.3A CN202080005034A CN112689997B CN 112689997 B CN112689997 B CN 112689997B CN 202080005034 A CN202080005034 A CN 202080005034A CN 112689997 B CN112689997 B CN 112689997B
Authority
CN
China
Prior art keywords
point cloud
point
data packet
cloud data
azimuth angle
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202080005034.3A
Other languages
English (en)
Other versions
CN112689997A (zh
Inventor
李璞
郑萧桢
夏清
潘志琛
许友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
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 SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Publication of CN112689997A publication Critical patent/CN112689997A/zh
Application granted granted Critical
Publication of CN112689997B publication Critical patent/CN112689997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

提供了一种点云的排序方法及装置,能够使得排序之后的点云点的扫描顺序更接近于编码前的扫描顺序,有利于提高SLAM算法对点云数据的使用。该点云的排序方法包括:接收针对点云数据包的第一码流;对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。

Description

点云的排序方法和装置
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及编解码领域,并且更为具体地,涉及一种点云的排序方法和装置。
背景技术
点云(或称三维点云)是三维物体或场景的一种表现形式,是由空间中一组无规则分布的、表达三维物体或三维场景的空间结构和表面属性的离散点所构成。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩。点云的编码过程包括点云中点云点的位置坐标的编码。
目前的编码方式在有效编码点云数据位置坐标数据的同时无法保留原始点云数据的采集顺序,这样就无法保证点云数据在编码前与解码重建出来的点云数据的采集顺序是相同的,这对部分即时定位与地图构建(simultaneouslocalization andmapping,SLAM)算法产生了影响。
发明内容
本申请提供一种点云的排序方法与装置,有利于提高SLAM算法对点云数据的使用。
第一方面,提供一种点云的排序方法,包括:接收针对点云数据包的第一码流;对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
第二方面,提供一种点云的排序方法,包括:在点云数据包中添加第一信息,所述第一信息用于指示所述点云数据包中的起始点云点;对添加所述第一信息后的所述点云数据包进行编码形成第一码流;发送第一码流。
第三方面,提供一种点云的解码装置,包括:处理器,用于执行以下操作:接收针对点云数据包的第一码流;对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
第四方面,提供一种点云的编码装置,包括:处理器,用于执行以下操作:在点云数据包中添加第一信息,所述第一信息用于指示所述点云数据包中的起始点云点;对添加所述第一信息后的所述点云数据包进行编码形成第一码流;发送所述第一码流。
第五方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得,所述计算机执行第一方面或者第二方面提供的方法。
第六方面,提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得计算机执行第一方面或者第二方面提供的方法。
基于本申请提供的技术方案,在解码得到点云点的坐标信息之后,可以基于该坐标信息确定点云点之间的距离。如果点云数据包中的两个点云点之间的扫描顺序越接近,则这两个点云点之间的距离就越小,基于该特性,本申请可以根据点云点之间的距离,对点云点进行排序,使得排序之后的点云点的顺序更接近于编码前的点云点的顺序,这样有利于提高SLAM算法对点云数据的使用。
附图说明
图1示出了本申请实施例提供的一种点云数据编码流程的示意图。
图2是一种点云编码的初始化空间的示意图。
图3是本申请实施例提供的一种点云数据解码流程的示意图。
图4是本申请实施例提供的一种点云的排序方法的示意性流程图。
图5-图7是本申请实施例提供的在不同时间内的扫描点的分布示意图。
图8是本申请实施例提供的一种坐标转换的示意图。
图9是本申请实施例提供的另一种点云的排序方法的示意性流程图。
图10是本申请实施例提供的测距装置的结构示意图。
图11是本申请实施例提供的测距装置采用同轴光路的一种实施例的示意图。
图12是根据本申请实施例的点云的编码装置的示意性框图。
图13是根据本申请实施例的点云的解码装置的示意性框图。
具体实施方式
为了便于理解本申请实施例提供的技术方案,下文首先描述一些本申请实施例涉及的概念。
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例可适用于标准或非标准的点云编解码器。例如,数字音视频编解码技术标准(audio video coding standard,AVS)标准的编码器。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。本申请所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。
为了便于理解本发明实施例提供的技术方案,下文首先描述一些本发明实施例涉及的概念。
点云是在同一空间参考坐标系下表达目标空间分布和目标表面特性的离散点集合,也即,在获取物体表面每个采样点的空间坐标后,得到的采样点的集合,称之为点云(Point Cloud)。为了准确反映三维空间中的信息,通常需要海量的离散点对三维空间中的物体进行表征。下文将点云中的离散点称为点云点。
图1示出了本申请提供的一种点云数据编码流程的示意图。
点云数据通常包括点云中多个点云点的位置信息以及属性信息。点云点的位置坐标可用于描述点云点在三维空间中的位置,点云点的属性信息例如可以包括点云点的颜色信息,还可以包括点云点的反射率等其他信息。为了减少点云在存储和传输时所占用的带宽,可以对点云数据进行编码,以压缩点云的数据量。在点云数据的编码过程中,点云点的位置信息编码与属性信息编码通常是分开进行的。
如图1所示,在点云数据的编码方法中,点云点的位置信息编码方法包括:
坐标平移、量化:对点云中多个点云点的位置坐标进行平移和量化。一个示例中,采用几何量化方法对点云点的位置坐标进行处理。几何量化的过程可以将多个点云点的位置坐标转换为大于或等于零的整数坐标。在位置坐标平移量化之后可以去除重复坐标。也可以不去重,直接对量化后的点云点位置坐标进行八叉树编码。
在确定初始化空间之后,接着对该初始化空间进行多层的八叉树划分。每层八叉树划分均可利用当前块的中心点的位置坐标进行空间划分,通过中心点将当前块划分为八个体积相等的子块。图2示出了初始化空间进行首次划分后得到的划分结果,从图2可以看出,初始化空间被均匀划分成8个体积相等的子块。在八叉树中,初始化空间为根节点块,这些子块为该根节点的子节点块,称为第一层子节点块。
在得到第一层子节点块之后,可以判断第一层的每个子节点块内是否存在点云点,对存在点云点的子节点块再进一步划分,直至该子节点块的边长小于阈值时停止八叉树划分,此时的子节点块称为当前八叉树的叶子节点块。该阈值例如可以是1。
在对点云中多个点云点的位置坐标进行八叉树编码时,可以按照八叉树的广度优先遍历顺序(breadth first search,BFS),逐层进行编码。在逐层编码时,可以逐层逐个编码每个八叉树的划分结果,即判断当前子块进行八叉树划分后得到的八个子块是否含有点云点。如果该块的某个子块含有点云点,则对该子块进行进一步划分,否则停止划分。当划分到最后八叉树的一层(最后一层可以是子块边长为1的层)时,达到了八叉树的底层,即达到了八叉树的叶子节点块,不需要再进一步划分。
在另一些实施方式中,还可以采用四叉树划分方式、二叉树划分方式、或者几种划分方式混合的多叉树划分方式对点云点的位置信息进行编码。
例如,与上文中八叉树编码过程类似,可以按照广度优先编码顺序,对多叉树划分后的多个子块逐层进行编码。其中,若子块采用四叉树划分方式,则对其编码只需要编码4个比特(bit),比八叉树划分节省4个比特;若采用二叉树划分方式进行编码,则只需要编码2个比特,比八叉树划分节省6个比特。跳过的比特可以在解码端推测出为0。
熵编码:对八叉树编码后的码流进行熵编码得到点云的几何码流,即点云中多个点云点位置信息的码流。
在对位置坐标进行多叉树编码后,同步会按照多叉树重建后的位置坐标顺序对对应的属性值进行压缩编码。
继续参见图1,在点云数据的编码方法中,点云点的属性信息编码方法包括:空间变换、属性插值、属性预测、残差量化以及熵编码等过程。
点云数据的解码流程与编码流程的逆过程大致相同。图3示出了本申请提供的一种解码流程的示意图。
熵解码:解码端对获取输入的几何码流和属性码流后,采用与编码端的熵编码方法对应的熵解码方法对码流逐比特进行解码。
多叉树重建:具体地,对于几何码流,通过熵解码后的信息可以先确定点云的初始化空间(初始化空间的尺寸可以由编码端写入码流,解码端从码流中获取即可),然后对初始化空间进行多叉树划分。解码端采用与编码端一致的空间划分方式对初始化空间进行划分。通过划分的多叉树中多个子节点块及其对应的二进制比特流得到点云点待逆量化的位置坐标数据。
逆量化:逆量化为编码端量化的逆过程,多叉树重建后的待逆量化的位置坐标数据经过逆量化后得到编码端中量化后的坐标。属性码流经过熵解码和逆量化后得到属性预测残差值。
属性重建:具体地,若逆量化后得到属性预测残差为
Figure SMS_1
当前点属性重建值为/>
Figure SMS_2
前一点的属性重建值为/>
Figure SMS_3
则当前点的属性重建值/>
Figure SMS_4
遍历完点云中的所有点云点,得到编码端输出的重构点云。
逆空间变换:对应于编码端的空间变换,该步骤也为可选步骤,若属性重建后的属性值为YUV空间的属性值,则对其进行逆空间变换得到RGB空间的属性值。
最后,将上述解码得到的位置信息及其对应的属性信息合并后即可得到点云数据。
上文结合图1至图3,对相关技术的编码过程进行了介绍。但是目前采用的多叉树划分方式无法保证点云数据在编码前与解码重建出来的点云顺序是相同的,这对部分SLAM算法产生了影响。
基于上述问题,本申请提出一种点云的排序方法,能够一定程度上保证编码前的点云顺序与解码出来的点云顺序的一致性。本申请实施例中的点云的排序方法可以是由编码装置执行的,也可以是由解码装置执行的,或者是由编码装置和解码装置共同执行的。
下面结合图4至图11,对本申请实施例提供的点云的排序方法进行描述。
图4是本申请实施例提供的一种点云的排序方法的示意性流程图。图4所示的方法包括步骤S110~S130。
S110、发送针对点云数据包的第一码流。对于编码端,S110可以为编码装置发送针对点云数据包的第一码流;对于解码端,S110可以为解码装置接收针对点云数据包的第一码流。
编码装置可以对点云数据包进行编码,形成第一码流。编码装置对点云数据包进行编码时,可以对点云数据包中点云点的位置坐标进行编码。本申请实施例对编码装置的编码方式不做具体限定。例如,编码装置可以采用多叉树划分的方式对位置坐标进行编码,该多叉树划分方式可以为上文描述的八叉树划分方式、四叉树划分方式或二叉树划分方式等,具体的编码过程可以参见上文的描述。
此外,编码装置还可以对点云点的属性信息进行编码,对属性信息的编码可以参见上文的描述。
S120、对第一码流进行解码,得到点云数据包中的点云点的位置坐标。
解码装置可以对第一码流进行解码,具体的解码方式与编码装置的编码方式相同。例如,解码装置可以采用多叉树划分的方式进行解码,该多叉树划分方式可以为上文描述的八叉树划分方式、四叉树划分方式或二叉树划分方式等,具体的解码过程可以参见上文的描述。
S130、根据点云数据包中点云点之间的距离,确定点云数据包中点云点的扫描顺序。S130的步骤可以是由解码装置执行的。
在解码得到点云点的位置坐标之后,解码设备可以根据点云点的位置坐标,计算点云点之间的距离。
在点云数据的扫描过程中,受扫描方式的影响,在比较短的时间内,点云点之间的距离与扫描顺序相关,两个点云点之间的距离越近,表示这两个点云点的扫描顺序越相邻。
假设一个点云数据包中包括多个点云点,以该多个点云点中的一个点云点a为参考,其他点云点与该点云点a之间的距离越近,表示与点云点a越相邻。如果其他点云点中的点云点b与点云点a之间的距离最小,则可以认为点云点b和点云点a是扫描顺序相邻的两个点云点。
因此,点云点之间的距离能够一定程度上反映点云点的扫描顺序,解码设备可以计算点云点之间的距离,按照连续性对点云点进行重新排序,相比于没有排序的方案,重新排序后的点云点更接近于数据采集过程中点云点的扫描顺序,这种顺序有利于SLAM算法对点云数据的使用,例如,点云点的扫描顺序有利于后续对点云点进行畸变校正。
本申请实施例对点云数据包的大小不做具体限定,只要该数据包内的点云点的位置具有一定的单调性即可。例如,该点云数据包可以是包含预设个数的点云点的数据包,或者该点云数据包可以是在预设时间内扫描采集到的点云点组成的点云数据包,或者该点云数据包是根据雷达的扫描轨迹确定出来的点云数据包。
参见图5-图7,图5-图7示出的是雷达在不同时间内的扫描点的情况。图5-图7示出的是一种非重复扫描的方案,但这并不对本申请造成限定,本申请实施例还可以采用其他的扫描方式,如直线扫描的方式。
图5示出的是雷达在0.2s内的扫描点的情况,图6示出的是雷达在0.4s内的扫描点的情况,图7示出的是雷达在0.6s内的扫描点的情况。扫描时间越长,雷达的覆盖面越广,扫描的点云点也越多。
扫描时间越短,点云点的单调性会越明显,例如,在0.001s的扫描时间内,扫描到的点云点具有一定的单调性。
为了简化雷达的扫描过程,本申请实施例可以通过点云点的个数来确定扫描数据包。
点云数据包中的点云点的预设个数可以小于或等于300个。作为一种可能的实现方式,一个点云数据包中的点云点的个数为100,当然也可以为其他数值,如120或150等。以100为例,在扫描过程中,雷达可以每扫描100个点云点,就返回一个数据包,编码装置可以对雷达返回的每个点云数据包单独进行压缩。通过点云点的个数划分点云数据包的方式比较简单,易于实现,并且在该预设个数内的点云点具有一定的单调性,使得解码装置重新排序之后的点云点更接近于数据采集过程中点云点的扫描顺序。
根据点云数据包中点云点之间的距离,确定点云数据包中点云点的扫描顺序的方式有多种,本申请实施例对此不做具体限定。
作为一个示例,可以选择点云数据包中的一个点云点作为参考点云点,计算其他点云点与该参考点云点之间的距离,然后根据计算的距离确定扫描顺序。
本申请实施例对参考点云点的选取不做具体限定,该参考点云点可以为点云数据包中的任意一个点云点。例如,该参考点云点可以为起始点云点,也可以为结尾点云点,其中,起始点云点表示点云数据包中的第一个被扫描的点云点,结尾点云点表示点云数据包中最后一个被扫描的点云点。
点云点与参考点云点的距离越小,表示该点云点与参考点云点的排序越接近;如果点云点与参考点云点的距离越大,表示该点云点与参考点云点的排序越远。
作为一种实现方式,本申请实施例可以根据点云数据包中的所有点云点与起始点云点之间的距离确定扫描顺序。
例如,可以将点云数据包中与起始点云点之间的距离最近的点云点确定为第二个点云点,将点云数据包中与起始点云点之间的距离第二近的点云点确定为第三个点云点,以此类推,确定出点云数据包中的所有点云点的扫描顺序。
作为又一示例,可以计算未排序的点云点与前一个点云点之间的距离,来确定下一个点云点。例如,可以计算未排序的点云点与第一个点云点之间的距离,选择距离最近的点云点作为第二个点云点,然后计算剩余的未排序的点云点与第二个点云点之间的距离,确定第三个点云点,以此类推,从而确定点云数据包中的所有点云点的扫描顺序。
作为一种实现方式,本申请实施例可以根据点云数据包中未排序的点云点与第i个点云点之间的距离,确定第(i+1)个点云点,以得到点云数据包中点云点的扫描顺序,其中,i为大于或等于1的正整数,第1个点云点为起始点云点。
可以将未排序的点云点与第i个点云点之间的距离最近的点云点确定为第(i+1)个点云点。具体地,在第1个点云点已知的情况下,可以分别计算其他点云点与第1个点云点之间的距离,将与第1个点云点之间的距离最近的点云点确定为第2个点云点,接着,计算未排序的点云点与第2个点云点之间的距离,将与第2个点云点之间的距离最近的点云点确定为第3个点云点,以此类推,确定出点云数据包中的所有点云点的扫描顺序。
这种通过与前一个点云点之间的距离确定扫描顺序的方式更加准确,使得解码装置确定出的扫描顺序与编码前的扫描顺序更接近。
本申请实施例对起始点云点的确定方式不做具体限定。
作为一个示例,编码装置可以直接将起始点云点的坐标信息添加在点云数据包中,这样,解码装置在解码出点云数据包后,可以根据点云数据包中的起始点云点的坐标信息确定出起始点云点。这种方式简单直接,能够简化解码装置的处理过程。
起始点云点的坐标信息可以添加在点云数据包的头信息中,也就是说,解码装置可以根据点云数据包的头信息中承载的起始点云点的坐标信息来确定起始点云点。
起始点云点的坐标信息可以是起始点云点在笛卡尔坐标系中的坐标信息,也可以是在球坐标系或柱坐标系中的坐标信息。
起始点云点的坐标信息在头信息中的位宽是由位置坐标的位宽决定的。
这种方式仅需要在头信息中添加起始点云点的坐标信息,即可使得解码装置能够确定出点云点的扫描顺序。该方式有利于节省比特开销,能够提高编码方案的压缩率,并且编解码端的改动较小,对于编码端,只需要在头信息中增加起始点云点的坐标信息,对于解码端,只需要在解码出点云数据包之后,增加一些后处理步骤来确定扫描顺序。
作为另一个示例,解码装置可以根据点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定起始点云点。
为方便描述,下文将天顶角方向的变化值累加结果简称为天顶角累加结果,将方位角方向的变化值累加结果简称为方位角累加结果。
天顶角累加结果和方位角累加结果可以由编码装置添加在点云数据包中,解码装置解码出点云数据包之后,可以根据天顶角累加结果和方位角累加结果确定出起始点云点。
由于在较短的时间内,雷达扫描采集到的点云点在角度方向上具有单调性,本申请可以利用点云点在天顶角方向和方位角方向上的单调性,使得解码装置能够根据点云点的连续性确定出起始点云点。
在接收到雷达返回的点云数据包之后,编码装置可以将点云点的位置坐标从笛卡尔坐标系转换为球坐标系,球坐标系的示意图如图8所示。
在图8所示的球坐标系中,利用径向距离、天顶角以及方位角,具体为
Figure SMS_5
来描述点云点的位置坐标。设点P在三维空间内的球坐标系中的位置坐标为/>
Figure SMS_6
那么径向距离r表示从原点到点P的直线距离,其中,r≥0;天顶角θ表示从原点到点P的连线与z轴正半轴的夹角值,其中,0≤θ≤π;方位角/>
Figure SMS_7
表示从原点到点P的连线在xoy平面的投影线与x轴正半轴的夹角值,其中,/>
Figure SMS_8
设原始的点云点在笛卡尔坐标系中的位置坐标为(x,y,z),则转换公式如下:
Figure SMS_9
Figure SMS_10
Figure SMS_11
对待编码的点云点,按照原始扫描顺序依次计算后一个点云点相较前一个点云点的变化值。假设原始点云数据包中第m个点云点对应的笛卡尔坐标系下的坐标为(xm,ym,zm),对应的球坐标系下的坐标为
Figure SMS_12
原始点云数据包中的第m+1个点云点对应的笛卡尔坐标系下的坐标为(xm+1,ym+1,zm+1),对应的球坐标系下的坐标为/>
Figure SMS_13
天顶角方向的变化值累加结果可以是根据点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的;方位角方向的变化值累加结果可以是根据点云数据包中的第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
设第m+1个点云点相较前一个点云点在天顶角方向的变化值为Δθm+1、在方位角方向的变化值为
Figure SMS_14
具体的计算方法可以如下:
Δθm+1=θm+1m
Figure SMS_15
依次计算每个点云点相较前一个点云点的变化值,并进行累加求和。设天顶角的变化值累加结果为SumΔθ,设方位角的变化值累加结果为
Figure SMS_16
具体计算公式如下所示:
Figure SMS_17
Figure SMS_18
若天顶角的变化值累加结果SumΔθ大于等于0,则表示天顶角方向累计为增加的;若天顶角的变化值累加结果SumΔθ小于0,则表示天顶角方向累计为减少的。若方位角的变化值累加结果
Figure SMS_19
大于等于0,则表示方位角方向累计为增加的,若方位角的变化值累加结果/>
Figure SMS_20
小于0,则表示方位角方向累计为减少的。
编码装置通过上述方式计算出两个方向上的变化值累加结果后,可以将该累加结果通过累加结果标识符添加在点云数据包中,例如可以将累加结果标识符添加在点云数据包的头信息中。
天顶角的累加结果可以通过1比特的天顶角累加结果标识符来指示,方位角的累加结果可以通过1比特的方位角累加结果标识符来指示。
这种方式仅需要在头信息中增加2bit的固定开销,即可使得解码装置能够确定出点云点的扫描顺序。该方式有利于节省比特开销,能够提高编码方案的压缩率,并且编解码端的改动较小,对于编码端,只需要在头信息中增加2bit的比特信息,对于解码端,只需要在解码出点云数据包之后,增加一些后处理步骤来确定扫描顺序。
编码装置可以在头信息中编码上述变化值累加结果,即编码装置可以通过头信息中的2个比特来指示该累加结果。例如,如果天顶角的变化值累加结果大于等于0,则可以将天顶角累加结果标识符编码为0,如果天顶角的变化值累加结果小于0,则可以将天顶角累加结果标识符编码为1;如果方位角的变化值累加结果大于等于0,则可以将方位角累加结果标识符编码为0,如果方位角的变化值累加结果小于0,则可以将方位角累加结果标识符编码为1。
编码装置在头信息中编码上述累加结果信息之后,可以按照传统的方式对点云数据包中的点云点进行量化,编码位置坐标以及编码对应的属性信息。
编码装置编码完成之后,形成第一码流,并将该第一码流发送给解码装置。
对应解码端,解码装置可以按照传统的方式对第一码流进行解码,以得到点云点的坐标信息和属性信息。解码装置在解码头信息时,可以根据天顶角方向累加结果标识符确定点云点在天顶角方向的变化情况。如果天顶角方向累加结果标识符为0,则可以表示天顶角累计为增加的;如果天顶角方向累加结果标识符为1,则可以表示天顶角累计为减少的。解码装置还可以根据方位角累加结果标识符确定点云点在方位角方向的变化情况。如果方位角方向累加结果标识符为0,则可以表示方位角累计为增加的;如果方位角方向累加结果标识符为1,则可以表示方位角累计为减少的。
解码装置在接收到第一码流后,可以按照传统方案对第一码流进行解码,得到点云点的坐标信息以及属性信息。解码装置解码之后得到的点云点的坐标信息为点云点在笛卡尔坐标系下的坐标信息。
解码之后,解码装置可以进行后处理操作以对点云点进行重排序。首先,解码装置可以将点云点在笛卡尔坐标系下的坐标信息转换为球坐标系下的坐标信息,得到坐标
Figure SMS_21
若天顶角的累加结果为增大,且方位角的累加结果也为增大,则表示在后的点云点的天顶角大于在前的点云点,在后的点云点的方位角大于在前的点云点,因此,编码装置可以根据点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定起始点云点。
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则编码装置可以将该同一个点云点确定为起始点云点。
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则编码装置可以随机选择其中一个点云点作为起始点云点,或者编码装置可以将点云数据包中的点云点的天顶角和方位角按照第一权重比例进行加权,并将加权之后的具有最小值的点云点确定为起始点云点。
由于天顶角的取值范围为0~π,方位角的取值范围为0~2π,因此,本申请实施例可以将第一权重比例取值为2:1,当然也可以选择其他权重比例,本申请对此不做具体限定。
举例说明,假设在天顶角方向上具有最小值的点云点为点云点e,在方位角方向上具有最小值的点云点为点云点f,编码装置可以对点云点e的天顶角、点云点f的方位角按照2:1的权重进行加权,如果加权之后的天顶角的值小于加权之后的方位角的取值,则确定起始点云点为点云点e,如果加权之后的方位角的值小于加权之后的天顶角的取值,则确定起始点云点为点云点f。
若天顶角的累加结果为增大,且方位角的累加结果为减小,则表示在后的点云点的天顶角大于在前的点云点,在后的点云点的方位角小于在前的点云点,因此,编码装置可以根据点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定起始点云点。
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则编码装置可以将该同一个点云点确定为起始点云点。
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则编码装置可以随机选择其中一个点云点作为起始点云点,或者编码装置可以将点云数据包中的点云点的天顶角和方位角按照第二权重比例进行加权,并将加权之后的具有最小值的点云点确定为起始点云点。
由于天顶角的取值范围为0~π,方位角的取值范围为0~2π,因此,本申请实施例可以将第一权重比例取值为2:-1,当然也可以选择其他权重比例,本申请对此不做具体限定。
由于点云点的方位角是累计减小的,即扫描顺序越靠前的点云点,其方位角的值越大,将方位角的权重取值为负值,可以直接将加权之后的最小值,确定为起始点云点,这种加权方式能够简化确定起始点云点的处理过程。
或者,由于天顶角和方位角的取值均为正,则可以根据需要,将某个方向的权重取值为负。例如,如果希望以方位角最小的点云点作为起始点云点,则可以将方位角方向的权重取值为负。
当然,第二权重比例也可以为-2:1,这样可以将加权之后的具有最大值的点云点确定为起始点云点。或者,第二权重比例也可以为2:1,这样再根据加权之后的数值的大小,确定起始点云点。
按照第二权重比例确定起始点云点的具体过程可以参考上文关于第一权重比例的描述,此处不再重复。
另外,下文中的第三权重比例、第四权重比例的取值与第二权重比例也比较类似,为避免累赘,类似的内容不再重复描述。
若天顶角的累加结果为减小,且方位角的累加结果为增大,则表示在后的点云点的天顶角小于在前的点云点,在后的点云点的方位角大于在前的点云点,因此,编码装置可以根据点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定起始点云点。
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则编码装置可以将该同一个点云点确定为起始点云点。
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则编码装置可以随机选择其中一个点云点作为起始点云点,或者编码装置可以将点云数据包中的点云点的天顶角和方位角按照第三权重比例进行加权,并将加权之后的具有最小值的点云点确定为起始点云点。
该第三权重比例例如可以为-2:1,当然,与第二权重比例类似,第三权重比例也可以为其他比例值。
若天顶角的累加结果为减小,且方位角的累加结果也为减小,则表示在后的点云点的天顶角小于在前的点云点,在后的点云点的方位角小于在前的点云点,因此,编码装置可以根据点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定起始点云点。
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则编码装置可以将该同一个点云点确定为起始点云点。
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则编码装置可以随机选择一个点云点作为起始点云点,或者编码装置可以将点云数据包中的点云点的天顶角和方位角按照第四权重比例进行加权,并将加权之后的具有最小值的点云点确定为起始点云点。
该第四权重比例例如可以为-2:-1,当然,与第二权重比例类似,第四权重比例也可以为其他比例值。
本申请实施例对点云数据包中的两个点云点之间的距离的计算方式不做具体限定。
例如,可以直接根据点云点在笛卡尔坐标系下的坐标信息,按照距离计算公式,计算点云点之间的距离。
但是,上述计算过程相对复杂,如果点云数据包中的所有点云点都按照上述方式计算距离的话,计算复杂度会比较大。为了减少计算复杂度,本申请实施例可以对距离计算公式进行简化。
由于雷达在采集过程中,相邻时间的采样间隔是非常小的,因此,点云数据包中的两个点云点之间的距离可以根据该两个点云点的天顶角之间的差值的绝对值、以及该两个点云点的方位角之间的差值的绝对值之和来确定。
举例说明,设点云点m的坐标为
Figure SMS_22
点云点n的坐标为/>
Figure SMS_23
则点云点m与点云点n之间的距离dmn可以采用下面的公式进行计算:
Figure SMS_24
其中,abs表示取绝对值。
这里的点云点m和点云点n为点云数据包中的任意两个点云点,m和n并不表示扫描顺序。
解码装置在确定点云点的扫描顺序时,可以按照上述公式确定点云点之间的距离,进而确定点云点的扫描顺序。
上文描述的方式是将天顶角和方位角同时作为参考,来确定起始点云点和计算点云点之间的距离,按照这种方式确定的扫描顺序准确度更高。
除了球坐标系之外,本申请实施例还可以通过柱坐标系来确定点云点的扫描顺序。
在某些情况下,雷达可以通过多线扫描的方式来实现不同高度的数据采集,对于同一高度,点云点的Z轴坐标是相同的。也就是说,在比较短的时间内,雷达扫描的点云点的Z轴坐标是相同的,本申请实施例可以假设一个点云数据包中的点云点的Z轴坐标是相同的。
在Z轴坐标相同的情况下,解码装置可以在柱坐标系下的方位角的变化方向上,根据点云数据包中的点云点之间的距离,确定点云点的扫描顺序。
编码装置可以将起始点云点的坐标信息、以及方位角方向的变化值累加结果添加在点云数据包中,以便于解码装置在对第一码流解码后,能够获得起始点云点以及方位角的累加结果信息。起始点云点的坐标信息有利于解码装置获得起始的扫描方位角,在起始点云点已知的情况下,解码装置可以根据方位角的变化方向以及点云点之间的距离,确定点云点的扫描顺序。
解码装置可以根据方位角的变化方向确定第二个点云点位于起始点云点的哪个方向上,也就是说,解码装置可以沿着方位角的变化方向确定第二个点云点。
举例说明,假设起始点云点为点云点h,点云点g位于点云点h的方位角的递增方向上,且点云点g为在方位角递增方向上与点云点h距离最近的点云点;点云点j位于点云点h的方位角的递减方向上,且点云点j为在方位角递减方向上与点云点h距离最近的点云点。解码装置在确定第二个点云点时,可以根据方位角的变化方向,确定第二个点云点。如果方位角是累计增加的,则确定点云点g为第二个点云点,如果方位角是累计减小的,则确定点云点j为第二个点云点。
方位角的变化方向可以是根据方位角方向的变化值累加结果确定的,若方位角方向的变化值累加结果为增加,则表示方位角的变化方向为顺时针方向,若方位角方向的变化值累加结果为增加,则表示方位角的变化方向为逆时针方向。
方位角方向的变化值累加结果可以是根据点云数据包中的第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
设第m+1个点云点相较前一个点云点在方位角方向的变化值为
Figure SMS_25
具体的计算方法可以如下:
Figure SMS_26
依次计算每个点云点相较前一个点云点的变化值,并进行累加求和。设方位角的变化值累加结果为
Figure SMS_27
具体计算公式如下所示:
Figure SMS_28
若方位角的变化值累加结果
Figure SMS_29
大于等于0,则表示方位角方向累计为增加的,若方位角的变化值累加结果/>
Figure SMS_30
小于0,则表示方位角方向累计为减少的。
编码装置通过上述方式计算出方位角方向上的变化值累加结果后,可以将该累加结果通过累加结果标识符添加在点云数据包中,例如可以将累加结果标识符添加在点云数据包的头信息中。
方位角方向的变化值累加结果可以通过1比特的方位角累加结果标识符来指示。
这种方式仅需要在头信息中增加较少的比特位的固定开销,即可使得解码装置能够确定出点云点的扫描顺序。该方式有利于节省比特开销,能够提高编码方案的压缩率,并且编解码端的改动较小,对于编码端,只需要在头信息中增加较少的比特信息,对于解码端,只需要在解码出点云数据包之后,增加一些后处理步骤来确定扫描顺序。
编码装置可以在头信息中编码方位角的变化值累加结果,即编码装置可以通过头信息中的1个比特来指示该累加结果。例如,如果方位角的变化值累加结果大于等于0,则可以将方位角累加结果标识符编码为0,如果方位角的变化值累加结果小于0,则可以将方位角累加结果标识符编码为1。
编码装置在头信息中编码上述累加结果信息之后,可以按照传统的方式对点云数据包中的点云点进行量化,编码位置坐标以及编码对应的属性信息。
编码装置编码完成之后,形成第一码流,并将该第一码流发送给解码装置。
对应解码端,解码装置可以按照传统的方式对第一码流进行解码,以得到点云点的坐标信息和属性信息。此外,解码装置还可以将点云点的坐标信息转换为柱坐标系下的坐标信息。解码装置在解码头信息时,可以根据方位角累加结果标识符确定点云点在方位角方向的变化情况。如果方位角方向累加结果标识符为0,则可以表示方位角累计为增加的;如果方位角方向累加结果标识符为1,则可以表示方位角累计为减少的。
在解码得到点云点的坐标信息后,解码装置可以将点云点的坐标信息进行坐标转换,例如将笛卡尔坐标系下的坐标(x,y,z)转换为柱坐标系下的坐标
Figure SMS_31
具体的转换公式如下:
Figure SMS_32
/>
Figure SMS_33
z=z
其中,
Figure SMS_34
r≥0;z≥0。
解码装置可以根据方位角方向的变化值累加结果、以及点云点之间的距离,确定点云点的扫描顺序。
为了减少计算复杂度,本申请实施例中的两个点云点之间的距离可以是根据两个点云点的方位角之间的差值的绝对值来确定的。
举例说明,设点云点m的坐标为
Figure SMS_35
点云点n的坐标为/>
Figure SMS_36
则点云点m与点云点n之间的距离dmn可以采用下面的公式进行计算:
Figure SMS_37
其中,abs表示取绝对值。
由于方位角在到达0或2π时,方位角的大小会突变,基于此,本申请实施例对点云点的方位角进行了一些特殊处理,如下。
例如,若所述方位角方向的变化值累加结果为增大,可以将点云数据包中小于起始点云点方位角的方位角增加2π的大小;若所述方位角方向的变化值累加结果为减小,可以将点云数据包中大于起始点云点方位角的方位角减小2π的大小。
举例说明,假设起始点云点的方位角为3/4π,点云数据包中的多个点云点的方位角有大于3/4π的,也有小于3/4π的,若方位角累计为增加的,本申请实施例可以将小于3/4π的方位角增加2π的大小,若方位角累计为减小的,本申请实施例可以将大于3/4π的方位角减小2π的大小。
在确定点云点的扫描顺序的过程中,可以将处理之后的点云点的方位角代入上述简化后的距离计算公式,计算点云点之间的距离,进而确定点云点的扫描顺序。
本申请实施例可以计算点云数据包中的所有的点云点的方位角与起始点云点的方位角之间的差值,确定点云点的扫描顺序,或者也可以计算点云数据包中的未排序的点云点的方位角与上一个确定出来的点云点的方位角之间的差值,确定下一个点云点。
又例如,如果方位角是累计增加的,可以根据起始点云点,沿着递增方向依次确定下一个点云点,当确定的点云点的方位角达到最大值,即确定的点云点的方位角为所述点云数据包中的最大方位角,或者确定的点云点的方位角为2π或接近2π,则可以将该点云点的方位角置为0,然后可以根据点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。也就是说,可以以该确定的点云点为参考,确定在方位角递增方向上与该点云点距离最近的点云点,以此类推,直到确定出所有点云点的扫描顺序。如果方位角是累计减小的,可以根据起始点云点,沿着递减方向依次确定下一个点云点,当确定的点云点的方位角达到最小值,即确定的点云点的方位角为所述点云数据包中的最小方位角,或者确定的点云点的方位角为0或接近0,则可以将该点云点的方位角置为2π,然后可以根据点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。也就是说,可以接着以该点云点为参考,确定在递减方向上与该点云点距离最近的点云点,以此类推,直到确定出所有点云点的扫描顺序。
此外,本申请实施例还提供一种点云的排序方法,如图9所示,该方法200包括步骤S210~S230。该方法200与方法100类似,方法200中为描述的内容可以参见方法100的描述。
S210、在点云数据包中添加第一信息,该第一信息用于指示该点云数据包中的起始点云点。
该第一信息可以承载在点云数据包的头信息中。
本申请实施例对第一信息的内容不做具体限定。
例如,该第一信息可以包括起始点云点的坐标信息,解码装置在接收到第一码流后,可以直接根据起始点云点的坐标信息确定起始点云点。
又例如,该第一信息可以包括点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果。
编码装置可以根据上文描述的方法确定两个方向的变化值累加结果,如天顶角方向的变化值累加结果是根据点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,方位角方向的变化值累加结果是根据点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示点云数据包中的点云点的个数。解码装置在接收到第一码流后,可以根据两个方向的累加结果确定起始点云点,具体的确定方式可以参见上文的描述。
在该情况下,天顶角方向的变化值累加结果可以是通过1比特的天顶角累加结果标识符指示的;方位角方向的变化值累加结果可以是通过1比特的方位角累加结果标识符指示的。也就是说,第一信息包括2比特的信息,其中一个比特的值用于指示天顶角方向的变化值累加结果,另一个比特的值用于指示方位角方向的变化值累加结果。
再例如,该第一信息可以包括点云数据包中每个点云点与前一个点云点在柱坐标系中方位角方向的变化值累加结果、以及起始点云点的坐标信息。解码装置接收到第一码流后,可以从起始点云点开始,在方位角的变化方向上,根据点云点之间的距离,确定点云点的扫描顺序。
S220、对添加第一信息后的点云数据包进行编码形成第一码流。
编码装置可以采用任意一种编码方式对点云数据包进行编码,如多叉树编码方式等,该多叉树划分方式可以包括八叉树划分方式、四叉树划分方式、二叉树划分方式等。
S230、发送第一码流。发送第一码流可以表示编码装置向解码装置发送第一码流。
一些示例中,上文中的点云点可以是测距装置所获取到的点云数据中的任意一个点云点。其中,该测距装置可以是激光雷达、激光测距设备等电子设备。在一种实施方式中,测距装置用于感测外部环境信息,例如,环境目标的距离信息、方位信息、反射强度信息、速度信息等。一个点云点可以包括测距装置所测到的外部环境信息中的至少一种。
一种实现方式中,测距装置可以通过测量测距装置和探测物之间光传播的时间,即光飞行时间(Time-of-Flight,TOF),来探测探测物到测距装置的距离。或者,测距装置也可以通过其他技术来探测探测物到测距装置的距离,例如基于相位移动(phase shift)测量的测距方法,或者基于频率移动(frequency shift)测量的测距方法,在此不做限制。
为了便于理解,以下将结合图10所示的测距装置1000对产生本文中提到的三维数据点的测距装置举例描述。
如图10所示,测距装置1000可以包括发射电路1100、接收电路1200、采样电路1300和运算电路1400。
发射电路1100可以发射光脉冲序列(例如激光脉冲序列)。接收电路1200可以接收经过被探测物反射的光脉冲序列,并对该光脉冲序列进行光电转换,以得到电信号,再对电信号进行处理之后可以输出给采样电路1300。采样电路1300可以对电信号进行采样,以获取采样结果。运算电路1400可以基于采样电路1300的采样结果,以确定测距装置1000与被探测物之间的距离。
可选地,该测距装置1000还可以包括控制电路1500,该控制电路1500可以实现对其他电路的控制,例如,可以控制各个电路的工作时间和/或对各个电路进行参数设置等。
一些实现方式中,除了图10所示的电路,测距装置1000还可以包括扫描模块1600,用于将发射电路出射的至少一路激光脉冲序列改变传播方向出射。
其中,可以将包括发射电路1100、接收电路1200、采样电路1300和运算电路1400的模块,或者,包括发射电路1100、接收电路1200、采样电路1300、运算电路1400和控制电路1500的模块称为测距模块,该测距模块可以独立于其他模块,例如,扫描模块1600。
图11示出了本发明的测距装置采用同轴光路的一种实施例的示意图。
在一个实施例中,图11所示的扫描模块202可以包括至少一个光学元件,用于改变光束的传播路径,其中,该光学元件可以通过对光束进行反射、折射、衍射等等方式来改变光束传播路径。例如,扫描模块202包括透镜、反射镜、棱镜、振镜、光栅、液晶、光学相控阵(Optical Phased Array)或上述光学元件的任意组合。一个示例中,至少部分光学元件是运动的,例如通过驱动模块来驱动该至少部分光学元件进行运动,该运动的光学元件可以在不同时刻将光束反射、折射或衍射至不同的方向。在一些实施例中,扫描模块202的多个光学元件可以绕共同的轴209旋转或振动,每个旋转或振动的光学元件用于不断改变入射光束的传播方向。在一个实施例中,扫描模块202的多个光学元件可以以不同的转速旋转,或以不同的速度振动。在另一个实施例中,扫描模块202的至少部分光学元件可以以基本相同的转速旋转。在一些实施例中,扫描模块的多个光学元件也可以是绕不同的轴旋转。在一些实施例中,扫描模块的多个光学元件也可以是以相同的方向旋转,或以不同的方向旋转;或者沿相同的方向振动,或者沿不同的方向振动,在此不作限制。
在一个实施例中,扫描模块202包括第一光学元件214和与第一光学元件214连接的驱动器216,驱动器216用于驱动第一光学元件214绕转动轴209转动,使第一光学元件214改变准直光束219的方向。第一光学元件214将准直光束219投射至不同的方向。在一个实施例中,准直光束219经第一光学元件改变后的方向与转动轴209的夹角随着第一光学元件214的转动而变化。在一个实施例中,第一光学元件214包括相对的非平行的一对表面,准直光束219穿过该对表面。在一个实施例中,第一光学元件214包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第一光学元件214包括楔角棱镜,对准直光束219进行折射。
在一个实施例中,扫描模块202还包括第二光学元件215,第二光学元件215绕转动轴209转动,第二光学元件215的转动速度与第一光学元件214的转动速度不同。第二光学元件215用于改变第一光学元件214投射的光束的方向。在一个实施例中,第二光学元件215与另一驱动器217连接,驱动器217驱动第二光学元件215转动。第一光学元件214和第二光学元件215可以由相同或不同的驱动器驱动,使第一光学元件214和第二光学元件215的转速和/或转向不同,从而将准直光束219投射至外界空间不同的方向,可以扫描较大的空间范围。在一个实施例中,控制器218控制驱动器216和217,分别驱动第一光学元件214和第二光学元件215。第一光学元件214和第二光学元件215的转速可以根据实际应用中预期扫描的区域和样式确定。驱动器216和217可以包括电机或其他驱动器。
在一个实施例中,第二光学元件215包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第二光学元件215包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第二光学元件215包括楔角棱镜。
一个实施例中,扫描模块202还包括第三光学元件(图未示)和用于驱动第三光学元件运动的驱动器。可选地,该第三光学元件包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第三光学元件包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第三光学元件包括楔角棱镜。第一、第二和第三光学元件中的至少两个光学元件以不同的转速和/或转向转动。
扫描模块202中的各光学元件旋转可以将光投射至不同的方向,例如方向211和213,如此对测距装置200周围的空间进行扫描。如图5-图7所示,图5-图7为测距装置200的一种扫描图案的示意图。可以理解的是,扫描模块内的光学元件的速度变化时,扫描图案也会随之变化。
测距装置200探测到的距离和方位可以用于遥感、避障、测绘、建模、导航等。在一种实施方式中,本发明实施方式的测距装置可应用于移动平台,测距装置可安装在移动平台的平台本体。具有测距装置的移动平台可对外部环境进行测量,例如,测量移动平台与障碍物的距离用于避障等用途,和对外部环境进行二维或三维的测绘。在某些实施方式中,移动平台包括无人飞行器、汽车、遥控车、机器人、相机中的至少一种。当测距装置应用于无人飞行器时,平台本体为无人飞行器的机身。当测距装置应用于汽车时,平台本体为汽车的车身。该汽车可以是自动驾驶汽车或者半自动驾驶汽车,在此不做限制。当测距装置应用于遥控车时,平台本体为遥控车的车身。当测距装置应用于机器人时,平台本体为机器人。当测距装置应用于相机时,平台本体为相机本身。
上文结合图4至图11,详细描述了本申请的点云的排序方法实施例,下文结合图12和图13,详细描述本申请的装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图12是根据本申请实施例的点云的解码装置40的示意性框图,该点云的解码装置40可用于执行上文描述的由解码装置执行的方法。
如图12所示,该解码装置40可包括:处理器41和存储器42。
存储器42可用于存储程序,处理器41可用于执行存储器42中存储的程序。
处理器41可用于执行以下操作:接收针对点云数据包的第一码流;对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;以及用于根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
在一种可能的实施方式中,所述处理器41用于:根据所述点云数据包中的所有点云点与起始点云点之间的距离,确定点云数据包中点云点的扫描顺序。
在一种可能的实施方式中,所述处理器41用于:根据所述点云数据包中未排序的点云点与第i个点云点之间的距离,确定第(i+1)个点云点,以得到所述点云数据包中点云点的扫描顺序,其中,i为大于等于1的正整数,第1个点云点为起始点云点。
在一种可能的实施方式中,所述处理器41还用于:根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点。
在一种可能的实施方式中,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
在一种可能的实施方式中,所述处理器41用于:若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第一权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第二权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第三权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第四权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
在一种可能的实施方式中,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
在一种可能的实施方式中,所述天顶角累加结果标识符、所述方位角累加结果标识符承载在所述点云数据包的头信息中。
在一种可能的实施方式中,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的天顶角之间的差值的绝对值、以及所述两个点云点的方位角之间的差值的绝对值之和确定的。
在一种可能的实施方式中,所述处理器41还用于:根据所述点云数据包的头信息中承载的起始点云点的坐标信息,确定所述起始点云点。
在一种可能的实施方式中,所述处理器41用于:在柱坐标系下的方位角的变化方向上,根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
在一种可能的实施方式中,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的方位角之间的差值的绝对值确定的。
在一种可能的实施方式中,所述方位角的变化方向是根据所述方位角方向的变化值累加结果确定的,所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
在一种可能的实施方式中,所述处理器41还用于:若所述方位角方向的变化值累加结果为增大,将所述点云数据包中小于起始点云点方位角的方位角增加2π的大小。
在一种可能的实施方式中,所述处理器41还用于:若所述方位角方向的变化值累加结果为减小,将所述点云数据包中大于起始点云点方位角的方位角减小2π的大小。
在一种可能的实施方式中,所述处理器41用于:若所述方位角方向的变化值累加结果为增大,当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
在一种可能的实施方式中,所述处理器41用于:若所述方位角方向的变化值累加结果为增大,且当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
在一种可能的实施方式中,所述处理器41用于:若所述方位角方向的变化值累加结果为减小,且当确定的点云点的方位角为所述点云数据包中的最小方位角时,将所述确定的点云点的方位角置为2π;根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
在一种可能的实施方式中,所述点云数据包中的点云点的个数小于或等于300。
在一种可能的实施方式中,所述点云数据包中的点云点的个数为100。
在一种可能的实施方式中,所述处理器41用于:按照多叉树划分方式,对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标。
图13是根据本申请实施例的点云的编码装置50的示意性框图,该点云的编码装置50可用于执行上文描述的由编码装置执行的方法。
如图13所示,该编码装置50可包括:处理器51和存储器52。
存储器52可用于存储程序,处理器51可用于执行存储器中存储的程序。
处理器51用于执行以下操作:在点云数据包中添加第一信息,所述第一信息用于指示所述点云数据包中的起始点云点;对添加所述第一信息后的所述点云数据包进行编码形成第一码流;发送第一码流。
在一种可能的实施方式中,所述第一信息承载在所述点云数据包的头信息中。
在一种可能的实施方式中,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果。
在一种可能的实施方式中,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
在一种可能的实施方式中,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
在一种可能的实施方式中,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在柱坐标系中方位角方向的变化值累加结果、以及起始点云点的坐标信息。
在一种可能的实施方式中,所述第一信息包括所述点云数据包中的起始点云点的坐标信息。
在一种可能的实施方式中,所述点云数据包中的点云点的个数小于或等于300。
在一种可能的实施方式中,所述点云数据包中的点云点的个数为100。
在一种可能的实施方式中,所述处理器51用于:按照多叉树划分方式,对所述添加所述第一信息后的所述点云数据包进行编码,以形成第一码流。
本申请还提供了一种电子设备或者***,该电子设备或者***可以包括上述本申请各种实施例的点云的编码装置和/或解码装置。
本申请还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述方法实施例的方法。
本申请还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (86)

1.一种点云的排序方法,其特征在于,包括:
接收针对点云数据包的第一码流;
对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;
根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序;
其中,所述第一码流中包括第一信息,所述第一信息用于指示所述点云数据包中的起始点云点,所述起始点云点表示点云数据包中的第一个被扫描的点云点。
2.根据权利要求1所述的排序方法,其特征在于,所述根据点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
根据所述点云数据包中的所有点云点与起始点云点之间的距离,确定点云数据包中点云点的扫描顺序。
3.根据权利要求1所述的排序方法,其特征在于,所述根据点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
根据所述点云数据包中未排序的点云点与第i个点云点之间的距离,确定第(i+1)个点云点,以得到所述点云数据包中点云点的扫描顺序,其中,i为大于等于1的正整数,第1个点云点为起始点云点。
4.根据权利要求2或3所述的排序方法,其特征在于,所述排序方法还包括:
根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点。
5.根据权利要求4所述的排序方法,其特征在于,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,
所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
6.根据权利要求4所述的排序方法,其特征在于,所述根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点,包括:
若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定所述起始点云点。
7.根据权利要求6所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定所述起始点云点,包括:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
8.根据权利要求6所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定所述起始点云点,包括:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第一权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
9.根据权利要求4所述的排序方法,其特征在于,所述根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点,包括:
若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定所述起始点云点。
10.根据权利要求9所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定所述起始点云点,包括:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
11.根据权利要求9所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定所述起始点云点,包括:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第二权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
12.根据权利要求4所述的排序方法,其特征在于,所述根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点,包括:
若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定所述起始点云点。
13.根据权利要求12所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定所述起始点云点,包括:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
14.根据权利要求12所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定所述起始点云点,包括:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第三权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
15.根据权利要求4所述的排序方法,其特征在于,所述根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点,包括:
若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定所述起始点云点。
16.根据权利要求15所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定所述起始点云点,包括:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
17.根据权利要求15所述的排序方法,其特征在于,所述根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定所述起始点云点,包括:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第四权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
18.根据权利要求4所述的排序方法,其特征在于,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;
所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
19.根据权利要求18所述的排序方法,其特征在于,所述天顶角累加结果标识符、所述方位角累加结果标识符承载在所述点云数据包的头信息中。
20.根据权利要求1-3中任一项所述的排序方法,其特征在于,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的天顶角之间的差值的绝对值、以及所述两个点云点的方位角之间的差值的绝对值之和确定的。
21.根据权利要求2或3所述的排序方法,其特征在于,所述排序方法还包括:
根据所述点云数据包的头信息中承载的起始点云点的坐标信息,确定所述起始点云点。
22.根据权利要求1-3中任一项所述的排序方法,其特征在于,所述根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
在柱坐标系下的方位角的变化方向上,根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
23.根据权利要求22所述的排序方法,其特征在于,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的方位角之间的差值的绝对值确定的。
24.根据权利要求22所述的排序方法,其特征在于,所述方位角的变化方向是根据所述方位角方向的变化值累加结果确定的,所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
25.根据权利要求24所述的排序方法,其特征在于,所述排序方法还包括:
若所述方位角方向的变化值累加结果为增大,将所述点云数据包中小于起始点云点方位角的方位角增加2π的大小。
26.根据权利要求24所述的排序方法,其特征在于,所述排序方法还包括:
若所述方位角方向的变化值累加结果为减小,将所述点云数据包中大于起始点云点方位角的方位角减小2π的大小。
27.根据权利要求24所述的排序方法,其特征在于,所述排序方法还包括:
若所述方位角方向的变化值累加结果为增大,当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;
所述根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
28.根据权利要求24所述的排序方法,其特征在于,所述排序方法还包括:
若所述方位角方向的变化值累加结果为增大,且当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;
所述根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
29.根据权利要求24所述的排序方法,其特征在于,所述排序方法还包括:
若所述方位角方向的变化值累加结果为减小,且当确定的点云点的方位角为所述点云数据包中的最小方位角时,将所述确定的点云点的方位角置为2π;
所述根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序,包括:
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
30.根据权利要求1-3中任一项所述的排序方法,其特征在于,所述点云数据包中的点云点的个数小于或等于300。
31.根据权利要求1-3中任一项所述的排序方法,其特征在于,所述点云数据包中的点云点的个数为100。
32.根据权利要求1-3中任一项所述的排序方法,其特征在于,所述对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标,包括:
按照多叉树划分方式,对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标。
33.一种点云的排序方法,其特征在于,包括:
在点云数据包中添加第一信息,所述第一信息用于指示所述点云数据包中的起始点云点,所述起始点云点表示点云数据包中的第一个被扫描的点云点;
对添加所述第一信息后的所述点云数据包进行编码形成第一码流;
发送所述第一码流,在对所述第一码流进行解码时,根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
34.根据权利要求33所述的排序方法,其特征在于,所述第一信息承载在所述点云数据包的头信息中。
35.根据权利要求33或34所述的排序方法,其特征在于,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果。
36.根据权利要求35所述的排序方法,其特征在于,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,
所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
37.根据权利要求35所述的排序方法,其特征在于,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;
所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
38.根据权利要求33或34所述的排序方法,其特征在于,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在柱坐标系中方位角方向的变化值累加结果、以及起始点云点的坐标信息。
39.根据权利要求33或34所述的排序方法,其特征在于,所述第一信息包括所述点云数据包中的起始点云点的坐标信息。
40.根据权利要求33或34所述的排序方法,其特征在于,所述点云数据包中的点云点的个数小于或等于300。
41.根据权利要求33或34所述的排序方法,其特征在于,所述点云数据包中的点云点的个数为100。
42.根据权利要求33或34所述的排序方法,其特征在于,所述对添加所述第一信息后的所述点云数据包进行编码形成第一码流,包括:
按照多叉树划分方式,对所述添加所述第一信息后的所述点云数据包进行编码,以形成第一码流。
43.一种点云的解码装置,其特征在于,包括处理器,用于执行以下操作:
接收针对点云数据包的第一码流;
对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标;
根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序;
其中,所述第一码流中包括第一信息,所述第一信息用于指示所述点云数据包中的起始点云点,所述起始点云点表示点云数据包中的第一个被扫描的点云点。
44.根据权利要求43所述的解码装置,其特征在于,所述处理器用于:
根据所述点云数据包中的所有点云点与起始点云点之间的距离,确定点云数据包中点云点的扫描顺序。
45.根据权利要求43所述的解码装置,其特征在于,所述处理器用于:
根据所述点云数据包中未排序的点云点与第i个点云点之间的距离,确定第(i+1)个点云点,以得到所述点云数据包中点云点的扫描顺序,其中,i为大于等于1的正整数,第1个点云点为起始点云点。
46.根据权利要求44或45所述的解码装置,其特征在于,所述处理器还用于:
根据所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果,确定所述起始点云点。
47.根据权利要求46所述的解码装置,其特征在于,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,
所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
48.根据权利要求46所述的解码装置,其特征在于,所述处理器用于:
若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最小值,确定所述起始点云点。
49.根据权利要求48所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
50.根据权利要求48所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第一权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
51.根据权利要求46所述的解码装置,其特征在于,所述处理器用于:
若所述天顶角方向的变化值累加结果为增大,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最小值、以及在方位角方向上的最大值,确定所述起始点云点。
52.根据权利要求51所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
53.根据权利要求51所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最小值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第二权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
54.根据权利要求46所述的解码装置,其特征在于,所述处理器用于:
若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为增大,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最小值,确定所述起始点云点。
55.根据权利要求54所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
56.根据权利要求54所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最小值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第三权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
57.根据权利要求46所述的解码装置,其特征在于,所述处理器用于:
若所述天顶角方向的变化值累加结果为减小,所述方位角方向的变化值累加结果为减小,根据所述点云数据包中的点云点在天顶角方向上的最大值、以及在方位角方向上的最大值,确定所述起始点云点。
58.根据权利要求57所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点为同一个点云点,则确定所述同一个点云点为所述起始点云点。
59.根据权利要求57所述的解码装置,其特征在于,所述处理器用于:
若在天顶角方向上具有最大值的点云点、与在方位角方向上具有最大值的点云点不是同一个点云点,则将所述点云数据包中的点云点的天顶角和方位角按照第四权重比例进行加权,将加权之后的具有最小加权值的点云点确定为所述起始点云点。
60.根据权利要求46所述的解码装置,其特征在于,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;
所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
61.根据权利要求60所述的解码装置,其特征在于,所述天顶角累加结果标识符、所述方位角累加结果标识符承载在所述点云数据包的头信息中。
62.根据权利要求43-45中任一项所述的解码装置,其特征在于,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的天顶角之间的差值的绝对值、以及所述两个点云点的方位角之间的差值的绝对值之和确定的。
63.根据权利要求44或45所述的解码装置,其特征在于,所述处理器还用于:
根据所述点云数据包的头信息中承载的起始点云点的坐标信息,确定所述起始点云点。
64.根据权利要求43-45中任一项所述的解码装置,其特征在于,所述处理器用于:
在柱坐标系下的方位角的变化方向上,根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
65.根据权利要求64所述的解码装置,其特征在于,所述点云数据包中的两个点云点之间的距离是根据所述两个点云点的方位角之间的差值的绝对值确定的。
66.根据权利要求64所述的解码装置,其特征在于,所述方位角的变化方向是根据所述方位角方向的变化值累加结果确定的,所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
67.根据权利要求66所述的解码装置,其特征在于,所述处理器还用于:
若所述方位角方向的变化值累加结果为增大,将所述点云数据包中小于起始点云点方位角的方位角增加2π的大小。
68.根据权利要求66所述的解码装置,其特征在于,所述处理器还用于:
若所述方位角方向的变化值累加结果为减小,将所述点云数据包中大于起始点云点方位角的方位角减小2π的大小。
69.根据权利要求66所述的解码装置,其特征在于,所述处理器用于:
若所述方位角方向的变化值累加结果为增大,当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
70.根据权利要求66所述的解码装置,其特征在于,所述处理器用于:
若所述方位角方向的变化值累加结果为增大,且当确定的点云点的方位角为所述点云数据包中的最大方位角时,将所述确定的点云点的方位角置为0;
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
71.根据权利要求66所述的解码装置,其特征在于,所述处理器用于:
若所述方位角方向的变化值累加结果为减小,且当确定的点云点的方位角为所述点云数据包中的最小方位角时,将所述确定的点云点的方位角置为2π;
根据所述点云数据包中未排序的点云点与所述确定的点云点的方位角之间的差值,确定下一个点云点。
72.根据权利要求43-45中任一项所述的解码装置,其特征在于,所述点云数据包中的点云点的个数小于或等于300。
73.根据权利要求43-45中任一项所述的解码装置,其特征在于,所述点云数据包中的点云点的个数为100。
74.根据权利要求43-45中任一项所述的解码装置,其特征在于,所述处理器用于:
按照多叉树划分方式,对所述第一码流进行解码,得到所述点云数据包中的点云点的位置坐标。
75.一种点云的编码装置,其特征在于,包括处理器,用于执行以下操作:
在点云数据包中添加第一信息,所述第一信息用于指示所述点云数据包中的起始点云点,所述起始点云点表示点云数据包中的第一个被扫描的点云点;
对添加所述第一信息后的所述点云数据包进行编码形成第一码流;
发送所述第一码流,在对所述第一码流进行解码时,根据所述点云数据包中点云点之间的距离,确定所述点云数据包中点云点的扫描顺序。
76.根据权利要求75所述的编码装置,其特征在于,所述第一信息承载在所述点云数据包的头信息中。
77.根据权利要求75或76所述的编码装置,其特征在于,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在球坐标系中天顶角方向的变化值累加结果、以及方位角方向的变化值累加结果。
78.根据权利要求77所述的编码装置,其特征在于,所述天顶角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的天顶角的差值的累加和来确定的,
所述方位角方向的变化值累加结果是根据所述点云数据包中第(m+1)个点云点与第m个点云点的方位角的差值的累加和来确定的,
其中,m为大于等于1且小于等于Q的整数,Q表示所述点云数据包中的点云点的个数。
79.根据权利要求77所述的编码装置,其特征在于,所述天顶角方向的变化值累加结果是通过1比特的天顶角累加结果标识符指示的;
所述方位角方向的变化值累加结果是通过1比特的方位角累加结果标识符指示的。
80.根据权利要求75或76所述的编码装置,其特征在于,所述第一信息包括所述点云数据包中每个点云点与前一个点云点在柱坐标系中方位角方向的变化值累加结果、以及起始点云点的坐标信息。
81.根据权利要求75或76所述的编码装置,其特征在于,所述第一信息包括所述点云数据包中的起始点云点的坐标信息。
82.根据权利要求75或76所述的编码装置,其特征在于,所述点云数据包中的点云点的个数小于或等于300。
83.根据权利要求75或76所述的编码装置,其特征在于,所述点云数据包中的点云点的个数为100。
84.根据权利要求75或76所述的编码装置,其特征在于,所述处理器用于:
按照多叉树划分方式,对所述添加所述第一信息后的所述点云数据包进行编码,以形成第一码流。
85.一种计算机可读存储介质,其特征在于,用于存储程序指令,所述程序指令被计算机运行时,所述计算机执行如权利要求1至32中任一项所述的排序方法。
86.一种计算机可读存储介质,其特征在于,用于存储程序指令,所述程序指令被计算机运行时,所述计算机执行如权利要求33至42中任一项所述的排序方法。
CN202080005034.3A 2020-06-10 2020-06-10 点云的排序方法和装置 Active CN112689997B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/095473 WO2021248390A1 (zh) 2020-06-10 2020-06-10 点云的排序方法和装置

Publications (2)

Publication Number Publication Date
CN112689997A CN112689997A (zh) 2021-04-20
CN112689997B true CN112689997B (zh) 2023-06-20

Family

ID=75457708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080005034.3A Active CN112689997B (zh) 2020-06-10 2020-06-10 点云的排序方法和装置

Country Status (2)

Country Link
CN (1) CN112689997B (zh)
WO (1) WO2021248390A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022252236A1 (zh) * 2021-06-04 2022-12-08 华为技术有限公司 3d地图的编解码方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065662A1 (en) * 2001-05-31 2008-03-13 Alien Technology Corp. System and method for compressed tag codes and code mapping
US10763890B2 (en) * 2017-11-10 2020-09-01 Regents Of University Of Minnesota Computational devices using thermometer coding and scaling networks on unary encoded data
CN108833927B (zh) * 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
CN109063753B (zh) * 2018-07-18 2021-09-14 北方民族大学 一种基于卷积神经网络的三维点云模型分类方法
CN111247802B (zh) * 2019-01-10 2023-07-07 深圳市大疆创新科技有限公司 用于三维数据点集处理的方法和设备
CN109889840B (zh) * 2019-03-20 2022-11-22 北京大学深圳研究生院 点云编码和解码的方法、编码设备和解码设备
CN111009005A (zh) * 2019-11-27 2020-04-14 天津大学 几何信息与光度信息相结合的场景分类点云粗配准方法
CN111145090B (zh) * 2019-11-29 2023-04-25 鹏城实验室 一种点云属性编码方法、解码方法、编码设备及解码设备

Also Published As

Publication number Publication date
CN112689997A (zh) 2021-04-20
WO2021248390A1 (zh) 2021-12-16

Similar Documents

Publication Publication Date Title
WO2020243874A1 (zh) 点云数据的位置坐标的编解码方法、***和存储介质
CN111247802B (zh) 用于三维数据点集处理的方法和设备
CN111247798B (zh) 对三维数据点集进行编码或解码的方法和设备
US20220207780A1 (en) Inter prediction coding for geometry point cloud compression
Tu et al. Continuous point cloud data compression using SLAM based prediction
US20210343047A1 (en) Three-dimensional data point encoding and decoding method and device
CN114503440A (zh) 基于树的点云编解码的角度模式
US11580672B2 (en) Angular mode simplification for geometry-based point cloud compression
KR20220166790A (ko) 지오메트리 기반 포인트 클라우드 압축에서의 각도 및 방위각 모드들에 대한 레이저 각도들의 코딩
WO2021248339A1 (zh) 点云的编解码方法和装置
US11842520B2 (en) Angular mode simplification for geometry-based point cloud compression
KR20220164702A (ko) 지오메트리 기반 포인트 클라우드 압축에서의 각도 및 방위각 모드들에 대한 레이저 각도들의 코딩
EP4272166A1 (en) Hybrid-tree coding for inter and intra prediction for geometry coding
CN112689997B (zh) 点云的排序方法和装置
JP2023544569A (ja) Gpcc平面モードおよびバッファの簡略化
US20210335015A1 (en) Three-dimensional data point encoding and decoding method and device
CN111699684B (zh) 三维数据点的编解码方法和装置
US20230342984A1 (en) Inter prediction in point cloud compression
US20220215596A1 (en) Model-based prediction for geometry point cloud compression
US11871037B2 (en) Sorted laser angles for geometry-based point cloud compression (G-PCC)
TW202232953A (zh) 用於幾何點雲壓縮的基於模型的預測
US20240144543A1 (en) Predictive geometry coding of point cloud
US20240233199A1 (en) Inter prediction for predictive geometry coding
US20230177739A1 (en) Local adaptive inter prediction for g-pcc
US20230345045A1 (en) Inter prediction coding for geometry point cloud compression

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant