点云数据的位置坐标的编解码方法、系统和存储介质

文档序号:1191956 发布日期:2020-08-28 浏览:23次 >En<

阅读说明:本技术 点云数据的位置坐标的编解码方法、系统和存储介质 (Method, system and storage medium for encoding and decoding position coordinates of point cloud data ) 是由 李璞 郑萧桢 张富 于 2019-06-03 设计创作,主要内容包括:本发明提供一种点云数据的位置坐标的编解码方法、系统和存储介质。所述编码方法包括:根据输入的点云数据的位置坐标,确定初始块的初始位置坐标;对初始块进行空间划分编码得到中间编码结果;对中间编码结果进行算术编码得到最终编码结果;其中,在对初始块进行空间划分编码的过程中,基于采集点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。根据本发明实施例的点云数据的位置坐标的编解码方法和系统结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标编解码过程中划分编解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少编解码过程中的时间开销,提高编解码效率。(The invention provides a method, a system and a storage medium for encoding and decoding position coordinates of point cloud data. The encoding method comprises the following steps: determining an initial position coordinate of an initial block according to the position coordinate of the input point cloud data; carrying out space division coding on the initial block to obtain an intermediate coding result; carrying out arithmetic coding on the intermediate coding result to obtain a final coding result; in the process of carrying out space division coding on the initial block, whether the coordinate range of the division block is adjusted or not is determined based on the visual field range of the acquisition equipment for acquiring point cloud data. According to the method and the system for encoding and decoding the position coordinates of the point cloud data, provided by the embodiment of the invention, the value range of the position coordinate encoding and decoding process is limited by combining the value range of the visual field range of the point cloud data acquisition equipment in the acquisition process, and the value range of the encoding and decoding process is divided in the position coordinate encoding and decoding process, so that some areas without point cloud data points can be reduced quickly, the time overhead in the encoding and decoding process is reduced, and the encoding and decoding efficiency is improved.)

点云数据的位置坐标的编解码方法、系统和存储介质

技术领域

本发明总地涉及点云编码技术领域,更具体地涉及一种点云数据的位置坐标的编解码方法、系统和存储介质。

背景技术

点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。

在点云数据编码压缩过程中,包括对位置坐标的编码和对属性的编码。其中,位置坐标通常分布较为离散,并且一个点云数据点会对应三个方向上的位置坐标,这样一组点云数据的数据量通常是很大的,所以需要对点云数据尤其是点云数据中的位置坐标进行有效的编码压缩。

现有的对点云数据的位置坐标的编码压缩通常基于八叉树划分编码,然而,八叉树划分编码每次进行八叉树划分时边长仅减小一半,这种方法可能导致许多次的划分均未得到含有点云数据的子块,从而在一定程度上增加了编码过程中的冗余计算,使得编码效率较低,也在一定程度上限制了压缩的性能。

发明内容

为了解决上述问题而提出了本发明。本发明提供一种点云数据的位置坐标的编解码方案,其结合点云数据的采集设备在采集过程中的视野范围(FOV,field of view)的取值范围来限定对位置坐标编解码过程中划分编解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而提高编解码效率,减少编解码过程中的时间开销。下面简要描述本发明提出的点云数据的位置坐标的编解码方案,更多细节将在后续结合附图在

具体实施方式

中加以描述。

根据本发明一方面,提供了一种点云数据的位置坐标的编码方法,所述编码方法包括:根据输入的点云数据的位置坐标,确定初始块的初始位置坐标;对所述初始块进行空间划分编码得到中间编码结果;以及对所述中间编码结果进行算术编码得到最终编码结果;其中,在对所述初始块进行空间划分编码的过程中,基于采集所述点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。

根据本发明另一方面,提供了一种点云数据的位置坐标的解码方法,所述解码方法包括:对点云数据位置坐标编码结果进行算术解码得到算术解码结果;对所述算术解码结果进行空间划分解码得到中间解码结果;以及对所述中间解码结果进行逆预处理得到所述点云数据的位置坐标;其中,在所述空间划分解码的过程中,基于所述编码结果的头信息确定用于空间划分的初始块的坐标范围,并基于采集所述点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。

根据本发明又一方面,提供了一种点云数据的位置坐标的编码系统,所述编码系统包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行上述任一项所述的点云数据的位置坐标的编码方法。

根据本发明又一方面,提供了一种点云数据的位置坐标的解码系统,所述编码系统包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行上述任一项所述的点云数据的位置坐标的解码方法。

根据本发明再一方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在运行时执行上述任一项所述的点云数据的位置坐标的编码方法。

根据本发明再一方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在运行时执行上述任一项所述的点云数据的位置坐标的解码方法。

根据本发明实施例的点云数据的位置坐标的编解码方法、系统和存储介质结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标编解码过程中划分编解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少编解码过程中的时间开销,提高编解码效率。

附图说明

图1示出根据本发明实施例的点云数据的位置坐标的编码方法的示意性流程图;

图2示出根据本发明一个实施例的点云数据采集示意图;

图3示出根据本发明一个实施例的求解某点所在映射面视点中心位置坐标的示意图;

图4示出根据本发明一个实施例的根据采集设备视野范围限定的点云分布范围示意图;

图5示出根据本发明另一个实施例的点云数据采集示意图;

图6示出根据本发明另一个实施例的根据采集设备视野范围限定的点云分布范围示意图;

图7示出本发明实施例的树划分编码过程示意图;

图8示出根据本发明实施例的点云数据的位置坐标的编码系统的示意性框图;

图9示出根据本发明实施例的点云数据的位置坐标的解码方法的示意性流程图;

图10示出根据本发明实施例的点云数据的位置坐标的解码系统的示意性框图;

图11示出根据本发明一个实施例的能够用于采集点云数据的测距装置示意性框图;

图12示出根据本发明另一实施例的能够用于采集点云数据的测距装置示意性框图;以及

图13示出图12所示的测距装置的一种扫描图案的示意图。

具体实施方式

为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

应当理解的是,本发明能够以不同形式实施,而不应当解释为局限于这里提出的实施例。相反地,提供这些实施例将使公开彻底和完全,并且将本发明的范围完全地传递给本领域技术人员。

在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。

为了彻底理解本发明,将在下列的描述中提出详细的步骤以及详细的结构,以便阐释本发明提出的技术方案。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。

如前所述,目前的点云数据的位置坐标的编码方法在一定程度上增加了编码过程中的冗余计算,使得编码效率较低。基于此,本发明提供一种点云数据的位置坐标的编解码方案,下面结合附图来描述根据本发明实施例的点云数据的位置坐标的编解码方案。

图1示出根据本发明实施例的点云数据的位置坐标的编码方法100的示意性流程图。如图1所示,点云数据的位置坐标的编码方法100可以包括如下步骤:

在步骤S110,根据输入的点云数据的位置坐标,确定初始块的初始位置坐标。

在本发明的实施例中,可以采用激光扫描仪、激光雷达等测距装置来针对某物体或某场景采集点云数据。一般地,经采集的点云数据包括三维方向的位置坐标。例如,每个点云数据的位置坐标可以采用笛卡尔坐标系表示,例如表示为(x,y,z)。在其他示例中,每个点云数据的位置坐标也可以采用其他坐标系来表示,诸如球坐标系、柱坐标系等。为了描述简洁,在本文中,以笛卡尔坐标系为例来描述各种坐标。在一个实施例中,可以先对输入的点云数据的位置坐标进行预处理,预处理可以包括对输入的点云数据的位置坐标进行量化。

示例性地,可以根据输入的点云数据的位置坐标在三个方向(以笛卡尔坐标系为例三个方向是x轴方向、y轴方向和z轴方向)中每个方向上的最大值与最小值之间的差值、以及根据输入的量化精度参数,对输入的每个点云数据的位置坐标进行量化,以简化对点云数据的位置坐标的编码操作。其中,量化精度可以是预设的固定值。此外,对输入的每个点云数据的位置坐标在三维方向的各方向上的量化精度可以保持一致。示例性地,可以通过量化将输入的点云数据的位置坐标转换为大于等于零的整数坐标。

进一步地,在将所有点云数据的位置坐标进行量化后,可能会出现重复的坐标值,可将这些重复的坐标值进行去重处理。应注意,如果此处实施了去重处理,则在对点云数据进行属性编码的时候需要相应地进行属性转换,将重复坐标对应的属性进行合并。不过,在本发明中,主要是针对点云数据的位置坐标的编解码方法的描述,因此对于点云数据的属性编码在本发明中不作详细描述。

在其他实施例中,对输入的点云数据的位置坐标的预处理还可以包括任何其他合适的操作,本发明对此不作限制。

基于经预处理的点云数据的位置坐标,可以确定首次被进行空间划分的块(在本文中可称为初始块)的初始位置坐标。当然,也可以直接将输入的点云数据的位置坐标作为依据来确定用于空间划分编码的初始块的初始位置坐标。示例性地,初始块的初始位置坐标可以基于经预处理的点云数据的位置坐标在三个方向中的最大值中的最大值来确定。在本文的描述中,空间划分可以包括八叉树划分、四叉树划分以及二叉树划分等,具体是何种划分可以取决于划分过程中被划分块的几何形状。例如,当初始块通常是立方体或长方体时,因此可以首先采用八叉树划分,后续在调整划分块坐标范围后可能采用八叉树划分、四叉树划分或二叉树划分等。

下面继续参考图1,描述根据本发明实施例的点云数据的位置坐标的编码方法的后续步骤。

在步骤S120,对所述初始块进行空间划分编码得到中间编码结果,其中,在对所述初始块进行空间划分编码的过程中,基于采集所述点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。

在本发明的实施例中,对于经预处理的点云数据的位置坐标采用基于空间划分编码的编码,其中该空间划分编码可包括八叉树划分编码、四叉树划分编码以及二叉树划分编码中的至少一种,这可以取决于划分过程中被划分块的几何形状,稍后将在下文中描述。

在传统的八叉树划分编码中,首次被进行八叉树划分的块(可称为初始块)的边长(或称为坐标范围)通常是基于经预处理的点云数据的位置坐标来确定,该边长的取值一般是基于经预处理的点云数据的位置坐标在三个方向中的最大值中的最大值;之后被进行八叉树划分的块(可称为划分块)的边长通常是前层块的边长的一半(例如初始块的边长是16,则第一层的划分块的边长为8,第二层的划分块的边长为4等等),如此进行划分,直到得到边长为最小边长(通常为1)的块则划分结束,该过程中边长的此种变化也意味着块的坐标范围的也符合类似的变化规律。

与传统的空间划分编码不同,在本发明的对经预处理的点云数据的位置坐标进行的基于空间划分编码的编码中,用于空间划分的初始块的坐标范围(包括边长)也是基于经预处理的位置坐标来确定,但用于空间划分的每个划分块的坐标范围并非简单地层层减半缩小,而是还基于采集所述点云数据的采集设备的视野范围来确定是否调整(主要指是否减小)每个划分块的坐标范围。

本发明的一些实施例中提出的对点云数据的位置坐标的基于空间划分编码的编码是基于下述构思而想到的:传统用于八叉树划分的块通常都是立方体,但实际中获取点云数据的采集设备(包括激光雷达、激光扫描仪等)基本上都是从中心按照特定规律发射出激光并获取返回值实现点云数据的采集,通常这种采集设备都会有一定的视野范围的限制,在这个限制之下,位置坐标的取值范围并不是按照立方体分布的,因此直接在在立方体内的进行划分编码,在一定程度上增加了编码过程中的冗余计算,并且也在一定程度上限制了压缩的性能。基于此,本发明提出的对点云数据的位置坐标的基于空间划分编码的编码在每次空间划分之前,会基于采集点云数据的采集设备的视野范围确定本次用于进行空间划分的块坐标范围(边长)是否过大,是否该块的一定范围内一定不存在点云数据,如果是则基于采集点云数据的采集设备的视野范围调整该块的坐标范围(边长),从而可以有效减小部分块的边长大小,进而减少划分的总次数,一方面减少了用来描述划分情况的码流比特,另一方面也减少了在编码解码过程中划分的复杂度,从而可以减少编码解码过程中的时间开销。此外,由于初始化的立方体(即初始块)是根据所有点云点的位置坐标分布所确定,其取值一定是落在采集设备的视野范围内所能选择的最小的立方体,所以在第一次划分时不需要利用采集设备的视野范围进行剪枝操作,故仅针对划分块来确定是否需要基于采集设备的视野范围调整其坐标范围。

下面详细本发明提出的上述对经预处理的点云数据的位置坐标进行的基于空间划分编码的编码。

首先,根据经预处理的点云数据的位置坐标(以下简称为位置坐标)在三个方向中每个方向上的最大值,并求出这三个最大值之中的最大值,根据该选定值来确定用于初始化空间划分的初始块的边长。通常,初始块为长方体,或者是立方体,或者是球体的一部分,或者是柱体的一部分。下面以初始块为立方体为例来说明,通常初始块的边长可以为2的整数次幂且为大于等于并最接近该选定值。应理解,可以将该选定值写入到码流文件的头信息中供解码端使用。基于对初始块的边长的确定,可以开始进行八叉树划分编码。

八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分成八个小的子块。设当前立方体块的中心点坐标为(xmid,ymid,zmid),假设当前块的三个方向上的最小值分别为xmin、ymin、zmin,当前块在三个方向上的最大值分别为xmax、ymax、zmax,则八叉树划分过程中八个小的子块的坐标取值范围如下所示:第一个块的坐标取值范围为xmin≤x≤xmid,ymin≤y≤ymid,zmin≤z≤zmid;第二个块的坐标取值范围为xmin≤x≤xmid,ymin≤y≤ymid,zmid≤z≤zmax;第三个块的坐标取值范围为xmin≤x≤xmid,ymid≤y≤ymax,zmin≤z≤zmid;第四个块的坐标取值范围为xmin≤x≤xmid,ymid≤y≤ymax,zmid≤z≤zmax;第五个块的坐标取值范围为xmid≤x≤xmax,ymin≤y≤ymid,zmin≤z≤zmid;第六个块的坐标取值范围为xmid≤x≤xmax,ymin≤y≤ymid,zmid≤z≤zmax;第七个块的坐标取值范围为xmid≤x≤xmax,ymid≤y≤ymax,zmin≤z≤zmid;第八个块的坐标取值范围为xmid≤x≤xmax,ymid≤y≤ymax,zmid≤z≤zmax。在八叉树编码过程中,依次判断当前块内包含的所有点云数据点分别属于八个子块中的哪一个,当该块内包含的所有点云数据点属于哪个子块都判定结束后,接着可以用8比特(bit)来编码当前块对应子块划分的情况。若当前块内含有点云数据点则对应位会被置为1,否则会被置为0。例如当第三个子块内含有点云数据点,第六子块内含有点云数据点,其他子块内均不含有点云数据点时,此时编码出来的8bit二进制码流为0010 0100。接着对含有数据点的块接着进行划分,在本发明的实施例中,在对任一划分块进行划分之前,可以基于采集所述点云数据的采集设备的视野范围来确定是否需要调整该划分块的坐标范围。

具体地,基于采集所述点云数据的采集设备的视野范围确定是否调整划分块的坐标范围,可以包括如下步骤:确定与所述划分块对应的、在所述采集设备的视野范围的限定下存在点云数据的坐标范围(可将该坐标范围称为视野限定坐标范围);对于三维方向中的至少一个方向,将所述视野限定坐标范围在该方向的取值范围与所述划分块的原始坐标范围在该方向的取值范围进行比较;基于所述比较的结果确定是否调整所述划分块的坐标范围。

在本发明的实施例中,每个划分块都可以对应于一个视野限定坐标范围,该视野限定坐标范围的确定可以包括如下步骤:基于所述划分块的每个顶点的位置坐标计算所述每个顶点对应的映射面视点中心的位置坐标;计算所述每个顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离;以及基于所述每个顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离确定与所述划分块对应的、在所述采集设备的视野范围的限定下存在点云数据的坐标范围;其中,任一顶点对应的映射面视点中心是指该顶点到预设矢量上的投影点,所述预设矢量的起点为所述采集设备的位置坐标经所述预处理得到的所述设备位置坐标,所述预设矢量的终点为所述采集设备的视野范围内的预设参考点的位置坐标经所述预处理得到的参考位置坐标。如前所述,预处理可以包括量化操作。基于此,所述采集设备的所述设备位置坐标可以是所述采集设备的实际位置坐标经量化后的坐标,所述参考位置坐标可以是所述采集设备的视野范围内的所述预设参考点的实际位置坐标经量化后的坐标。示例性地,所述采集设备的实际位置坐标的量化方式和所述预设参考点的实际位置坐标的量化方式可以均与所述输入的点云数据的位置坐标的量化方式相同。其中,所述量化方式所采用的量化精度可以是预设的固定值。此外,所述量化方式在三维方向的各方向上的量化精度可以保持一致。

在本发明的实施例中,任一划分块对应的视野限定坐标范围与采集点云数据的采集设备及其视野范围相关。下面结合图2到图6举例说明任一划分块对应的视野限定坐标范围的确定方法。下面以点云数据的采集设备的视野范围为一个锥形体为例进行解释。可以理解的是,点云数据的采集设备的视野范围可以有其他形状,不做限制。

图2示出根据本发明一个实施例的点云数据采集示意图,图3示出根据本发明一个实施例的求解某点所在映射面视点中心位置坐标的示意图。如图2所示,点O为采集设备所在位置,用来采集点云数据的射线均从这里出射,在未经过量化的坐标系下该位置通常为坐标原点,设这个位置在未经量化的坐标系下的坐标为(xo,yo,zo),设某一个反射面的视点中心位置如图2中所示的点A,对应的坐标为(xA,yA,zA)。设点O到反射面的直线距离为dist,则可以根据采集设备在水平和垂直两个方向上的视野范围(FOVH和FOVV)求得反射面的大小(用水平方向上的长度H和垂直方向上的V表示),如式1和式2所示的。

对点O与点A的位置坐标按照与量化位置坐标相同的方法进行量化。具体过程可以如式3、式4、式5所示。

其中,式3、式4、式5中xmin、ymin、zmin分别为所有点云数据点的位置坐标中三个方向上的最小值,scale为量化时的精度,一般情况下三个方向的量化精度可以设定为一致。x、y、z分别为待量化的位置坐标在三个方向上的坐标值,

Figure BDA0002585554380000106

分别为量化后的位置坐标在三个方向上的坐标值。根据点O与点A这两个点就可以确定在量化之后的坐标系中对应的点

Figure BDA0002585554380000107

与点的位置坐标分别为

Figure BDA0002585554380000109

其中,点

Figure BDA00025855543800001011

所在的位置可以称为采集设备的设备位置坐标,其并非采集设备的实际位置坐标,而是该实际位置坐标经过量化后的坐标。

如前所述,基于划分块的每个顶点的位置坐标计算所述每个顶点对应的映射面视点中心的位置坐标,其中任一顶点对应的映射面视点中心是指该顶点到预设矢量上的投影点,所述预设矢量的起点为所述采集设备的位置坐标经所述预处理得到的所述设备位置坐标,所述预设矢量的终点为所述采集设备的视野范围内的预设参考点的位置坐标经所述预处理得到的参考位置坐标。在结合图2所示的示例中,预设参考点即为点A,预设参考点的位置坐标经所述预处理得到的参考位置坐标即为点的位置坐标

Figure BDA0002585554380000112

所述预设矢量的起点为点

Figure BDA0002585554380000113

所述预设矢量的终点为点

Figure BDA0002585554380000114

所述预设矢量即为向量

Figure BDA0002585554380000115

设点为量化后的坐标系内某次空间划分过程中的一个块的顶点,位置坐标为则该顶点对应的映射面视点中心的位置坐标的计算方法可以如图3所示。

图3示出根据本发明实施例的求解某点所在映射面视点中心位置坐标的示意图。如图3所示,点

Figure BDA0002585554380000119

即为点

Figure BDA00025855543800001110

所在映射面的视点中心,设从点

Figure BDA00025855543800001111

指向点的向量为可以求得

Figure BDA00025855543800001114

的值(如式6所示),然后可以求得向量

Figure BDA00025855543800001115

的模值(如式7所示)基于以及向量

Figure BDA00025855543800001117

的模值可以求得向量(如式8所示),然后可以求得点的位置坐标(如式9所示)。

Figure BDA00025855543800001120

基于采集设备点对应的位置坐标和求得的点

Figure BDA00025855543800001125

所在映射面视点中心的位置坐标,即可以求得

Figure BDA00025855543800001127

Figure BDA00025855543800001128

这两点之间的直线距离(如式10所示)。

基于前述的结合图2和图3描述的方法即可得到任一划分块的任一顶点的位置坐标对应的映射面视点中心的位置坐标,以及该顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离。基于划分块的每个顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离,即可确定与所述划分块对应的、在所述采集设备的视野范围(FOVH和FOVV)的限定下存在点云数据的坐标范围(即前述的与划分块对应的视野限定坐标范围),正如图4所示的。

图4示出根据本发明一个实施例的根据采集设备视野范围限定的点云分布范围示意图。如图4所示,最小距离对应视点中心点

Figure BDA0002585554380000124

最大距离对应视点中心点

Figure BDA0002585554380000125

则对于当前划分块内所含有的点云数据点一定落在图4中根据最小距离、最大距离以及采集设备视野范围限定的四棱台体内。可以将该四棱台体的坐标范围与当前用于空间划分的划分块的原始坐标范围进行比较,以确定是否需要调整当前划分块的坐标范围。

下面以点云数据的采集设备的视野范围为一个圆锥体为例进行解释。可以理解的是,点云数据的采集设备的视野范围可以有其他形状,不做限制。下面结合图5和图6描述根据本发明另一实施例的视野限定坐标范围的确定方法。图5示出根据本发明另一个实施例的点云数据采集示意图,图6示出根据本发明另一个实施例的根据采集设备视野范围限定的点云分布范围示意图。如图5所示,点O为采集设备所在位置,用来采集点云数据的射线均从这里出射,在未经过量化的坐标系下该位置通常为坐标原点,设这个位置在未经量化的坐标系下的坐标为(xo,yo,zo),设某一个反射面的视点中心位置如图5中所示的点A,对应的坐标为(xA,yA,zA)。设点O到反射面的直线距离为dist,则可以根据采集设备上的视野范围(FOV)求得反射面的大小(用该反射面的直径D表示),如式11所示的。

Figure BDA0002585554380000121

对点O与点A的位置坐标按照与量化位置坐标相同的方法进行量化。具体过程可以如式3、式4、式5所示。根据点O与点A这两个点就可以确定在量化之后的坐标系中对应的点与点

Figure BDA0002585554380000123

的位置坐标分别为其中,点所在的位置可以称为采集设备的设备位置坐标,其并非采集设备的实际位置坐标,而是该实际位置坐标经过量化后的坐标。

如前所述,基于划分块的每个顶点的位置坐标计算所述每个顶点对应的映射面视点中心的位置坐标,其中任一顶点对应的映射面视点中心是指该顶点到预设矢量上的投影点,所述预设矢量的起点为所述采集设备的位置坐标经所述预处理得到的所述设备位置坐标,所述预设矢量的终点为所述采集设备的视野范围内的预设参考点的位置坐标经所述预处理得到的参考位置坐标。在结合图5所示的示例中,预设参考点即为点A,预设参考点的位置坐标经所述预处理得到的参考位置坐标即为点

Figure BDA0002585554380000134

的位置坐标所述预设矢量的起点为点

Figure BDA0002585554380000136

所述预设矢量的终点为点所述预设矢量即为向量设点为量化后的坐标系内某次空间划分过程中的一个块的顶点,位置坐标为

Figure BDA00025855543800001310

则该顶点对应的映射面视点中心的位置坐标的计算方法可以如图3所示。最终,根据前述的式6到式10,可以计算得到任一划分块的任一顶点的位置坐标对应的映射面视点中心的位置坐标,以及该顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离。基于划分块的每个顶点对应的映射面视点中心的位置坐标到所述采集设备的设备位置坐标的距离,即可确定与所述划分块对应的、在所述采集设备的视野范围(FOV)的限定下存在点云数据的坐标范围(即前述的与划分块对应的视野限定坐标范围),正如图6所示的。

如图6所示,最小距离对应视点中心点

Figure BDA00025855543800001311

最大距离对应视点中心点

Figure BDA00025855543800001312

则对于当前划分块内所含有的点云数据点一定落在图4中根据最小距离、最大距离以及采集设备视野范围限定的圆台体内。可以将该圆台体的坐标范围与当前用于空间划分的划分块的原始坐标范围进行比较,以确定是否需要调整当前划分块的坐标范围。

以上示例性地示出了任一划分块对应的视野限定坐标范围的确定方法。应理解,这仅是示例性的,根据采集设备视野范围的不同,任一划分块对应的视野限定坐标范围的确定还可以是其他的方法。

下面举例说明如何基于划分块对应的视野限定坐标范围的取值范围与所述划分块的原始坐标范围的比较结果确定是否调整所述划分块的坐标范围,以及如何调整所述划分块的坐标范围。应理解,划分块对应的视野限定坐标范围以及划分块的原始坐标范围均在三维方向上具有取值范围,因此可以针对三维方向的至少一个方向实施比较操作,并且需要的话对经比较的该方向的坐标的取值范围进行调整。下面以一个方向为例来具体描述,应理解其他两个方向的操作也是相同的。

在本发明的一个实施例中,所述基于所述比较的结果确定是否调整所述划分块的坐标范围,可以包括:对于三维方向中的至少一个方向,当所述视野限定坐标范围在该方向的取值范围与所述原始坐标范围在该方向的取值范围有交叉部分,且基于所述交叉部分确定的第一新边长小于所述划分块在该方向的原始边长时,将所述划分块的边长调整为所述第一新边长,并基于所述第一新边长和所述交叉部分调整所述划分块在该方向的坐标范围。

在该实施例中,划分块对应的视野限定坐标范围与该划分块的原始坐标范围在某一方向上有交叉部分,即以下两种情况:(1)视野限定坐标范围在该方向上的最小值小于等于原始坐标范围在该方向上的最小值,且视野限定坐标范围在该方向上的最大值介于原始坐标范围在该方向上的最小值和最大值之间;(2)视野限定坐标范围在该方向上的最小值介于原始坐标范围在该方向上的最小值和最大值之间,且视野限定坐标范围在该方向上的最大值大于等于原始坐标范围在该方向上的最大值。设原始坐标范围在该方向上的最小值为A1,原始坐标范围在该方向上的最大值为B1,视野限定坐标范围在该方向上的最小值为A2,视野限定坐标范围在该方向上的最大值为B2,则上述第一种情况即为A2≤A1且A1<B2<B1;上述第二情况即为A1<A2<B1且B2≥B1。

针对第一种情况,交叉部分可以表示区间[A1,B2],可基于该区间的最大值与最小值之间的差值(即B2-A1)确定第一新边长L1。示例性地,第一新边长L1可以为大于等于并且最接近该差值的2的整数次幂。可将该第一新边长L1与划分块在该方向上的原始边长L0(即B1-A1)进行比较,当L1<L0时,可将该划分块的边长从L0调整为L1,并基于L1和区间[A1,B2]调整该划分块在该方向上的坐标范围。例如,可以将该划分块在该方向上的最小值A1加上第一新边长L1得到该划分块在该方向上的新最大值B1’(B1’=A1+L1),即经过调整后该划分块在该方向的边长为L1,在该方向的坐标范围为[A1,B1’]。

针对第二种情况,交叉部分可以表示区间[A2,B1],可基于该区间的最大值与最小值之间的差值(即B1-A2)确定第一新边长L1’。示例性地,第一新边长L1’可以为大于等于并且最接近该差值的2的整数次幂。可将该第一新边长L1’与划分块在该方向上的原始边长L0(即B1-A1)进行比较,当L1’<L0时,可将该划分块的边长从L0调整为L1’,并基于L1’和区间[A2,B1]调整该划分块在该方向上的坐标范围。例如,可以将该划分块在该方向上的最大值B1减去第二新边长L1’得到该划分块在该方向上的新最小值A1’(A1’=B1-L1’),即经过调整后该划分块在该方向的边长为L1’,在该方向的坐标范围为[A1’,B1]。

在本发明的另一个实施例中,所述基于所述比较的结果确定是否调整所述划分块的坐标范围,可以包括:对于三维方向中的至少一个方向,当所述视野限定坐标范围在该方向的取值范围落入所述原始坐标范围在该方向的取值范围,且所述基于视野限定坐标范围确定的第二新边长小于所述划分块在该方向的原始边长时,将所述划分块的边长调整为所述第二新边长,并基于所述第二新边长和所述视野限定坐标范围调整所述划分块在该方向的坐标范围。

在该实施例中,划分块对应的视野限定坐标范围在某一方向上的取值范围落入该划分块的原始坐标范围在该方向上的取值范围,即视野限定坐标范围在该方向上的最小值大于原始坐标范围在该方向上的最小值,且视野限定坐标范围在该方向上的最大值小于原始坐标范围在该方向上的最大值。仍然设原始坐标范围在该方向上的最小值为A1,原始坐标范围在该方向上的最大值为B1,视野限定坐标范围在该方向上的最小值为A2,视野限定坐标范围在该方向上的最大值为B2,则该实施例中的情况即为A2>A1且B2<B1。

在该实施例中,可基于视野限定坐标范围在该方向上的最大值与最小值之间的差值(即B2-A2)确定第二新边长L2。示例性地,第二新边长L2可以为大于等于并且最接近该差值的2的整数次幂。可将该第二新边长L2与划分块在该方向上的原始边长L0(即B1-A1)进行比较,当L2<L0时,可将该划分块的边长从L0调整为L2,并基于L2和视野限定坐标范围在该方向上的取值范围[A2,B2]调整该划分块在该方向上的坐标范围。在一个示例中,可以将视野限定坐标范围在该方向的最小值A2加上第二新边长L2得到该划分块在该方向的新最大值B1’,将视野限定坐标范围在该方向的最小值A2作为该划分块在该方向的新最小值A1’,因此,该划分块在该方向上的经调整的坐标范围为[A1’,B1’],其中A1’=A2,B1’=A2+L2。在另一个示例中,可以将视野限定坐标范围在该方向的最大值B2减去第二新边长L2得到该划分块在该方向的新最小值A1’,将视野限定坐标范围在该方向的最大值B2作为该划分块在该方向的新最大值B1’,因此,该划分块在该方向上的经调整的坐标范围为[A1’,B1’],其中A1’=B2-L2,B1’=B2。

在其他实施例中,对于三维方向中的任一方向,当划分块在该方向上的取值范围落入视野限定坐标范围在该方向的取值范围,或者划分块在该方向上的取值范围与视野限定坐标范围在该方向的取值范围完全重合时,即视野限定坐标范围在该方向上的最小值小于等于该划分块在该方向上的最小值,且视野限定坐标范围在该方向上的最大值大于等于该划分块在该方向上的最大值(采用上面示例中的符号即为A2≤A1且B2≥B1),则说明该划分块在该方向上完全落入采集设备的视野范围之内,此时无需调整该划分块在该方向上的坐标范围。

在又一实施例中,对于三维方向中的任一方向,划分块在该方向上的取值范围与视野限定坐标范围在该方向的取值范围完全没有一点交集,即视野限定坐标范围在该方向上的最大值小于该划分块在该方向上的最小值,且视野限定坐标范围在该方向上的最小值大于该划分块在该方向上的最大值(采用上面示例中的符号即为B2<A1且A2>B1),则说明该划分块在该方向上完全落入采集设备的视野范围之外,即该划分块内不存在任何点云数据点。然而由于是对存在点云数据点的块才继续进行划分编码,因此在实际中这种情况不会出现。

以上结合图2到图6示例性地描述了基于采集点云数据的采集设备的视野范围确定是否调整以及如何调整划分块的坐标范围的具体细节。本领域技术人员应理解,上面的描述仅是示例性的,还可以采用任何其他合适的方式来基于采集点云数据的采集设备的视野范围调整划分块的坐标范围。

下面继续描述根据本发明实施例的点云数据的位置坐标的编码方法。在根据采集设备视野范围调整了块划分编码过程中的块大小后接着会继续进行空间划分编码。在编码过程中,逐层进行子块划分,并逐个编码每个块的划分情况。在编码过程中,每层可以均按照取中值的方法进行划分。当三个方向的边长均没有达到最小边长时,则采用八叉树划分编码。每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分成八个小的子块。设当前长方体块的中心点坐标为(xmid,ymid,zmid),则八叉树划分过程中八个小的子块的坐标取值范围如下所示:第一个块的坐标取值范围为x≤xmid、y≤ymid、z≤zmid;第二个块的坐标取值范围为x≤xmid、y≤ymid、z>zmid;第三个块的坐标取值范围为x≤xmid、y>ymid、z≤zmid;第四个块的坐标取值范围为x≤xmid、y>ymid、z>zmid;第五个块的坐标取值范围为x>xmid、y≤ymid、z≤zmid;第六个块的坐标取值范围为x>xmid、y≤ymid、z>zmid;第七个块的坐标取值范围为x>xmid、y>ymid、z≤zmid;第八个块的坐标取值范围为x>xmid、y>ymid、z>zmid。在八叉树编码过程中,依次判断当前块内包含的所有点云数据点分别属于八个子块中的哪一个,当该块内包含的所有点云数据点属于哪个子块都判定结束后,接着会用8bit来编码当前块对应子块划分的情况,若当前块内含有点云数据点则对应为会被置为1,否则会被置为0。例如当第三个子块内含有点云数据点,第六子块内含有点云数据点,其他子块内均不含有点云数据点时,此时编码出来的8bit二进制码流为0010 0100。

值得注意的是,与传统八叉树划分编码方案不同的是,根据本发明的实施例,由于在不同位置对块大小的调整可能是不同的,因此可能会出现在相同层内的块的边长大小不相等、并且在一个块内也会出现三个方向的边长不相等的情况。基于此,根据本发明的实施例,提供了两种示例性的编码方法。

在本发明的一个实施例中,在对坐标范围经调整的划分块进行空间划分编码时,当所述划分块在三维方向中的一个或两个方向上的边长达到预设最小边长(通常可以取值为1)时,对于达到预设最小边长的方向不再进行划分但仍进行编码。

在该实施例中,当一个方向上的边长先达到预设最小边长时,则在接下来的划分过程中,在这个方向上即不进行划分,该方向上的坐标取值可以均选择小于等于中值的那半边区间。示例性地,当所述划分块在三维方向中的一个方向上的边长达到预设最小边长时,可以采用八比特对尚未达到所述预设最小边长的剩余两个方向的八叉树划分结果进行编码,其中,所述八比特的最高四位比特的取值取决于所述划分块在所述剩余两个方向上划分得到的子块内是否包含点云数据,所述八比特的其余四位比特取值为0。下面以x轴先达到预设最小边长时为例进行说明,这时的划分过程只存在四种可能,分别为可能一:x≤xmid、y≤ymid、z≤zmid,可能二:x≤xmid、y≤ymid、z>zmid,可能三:x≤xmid、y>ymid、z≤zmid,以及可能四:x≤xmid、y>ymid、z>zmid。四种可能对应的描述八叉树划分的8bit数为xxxx 0000,其中的x需要根据前面四个子块内含有点云数据点与否来确定对应位为0或为1。

类似地,若两个方向上的边长达到预设最小边长时,则这两个方向在接下来的划分过程中不进行划分,这两个方向上的坐标取值可以均选择小于等于中值的那半边区间。示例性地,当所述划分块在三维方向中的两个方向上的边长达到预设最小边长时,采用八比特对尚未达到所述预设最小边长的剩余一个方向的八叉树划分结果进行编码,其中,所述八比特的最高两位比特的取值取决于所述划分块在所述剩余一个方向上划分得到的子块内是否包含点云数据,所述八比特的其余六位比特取值为0。下面以x、y轴两个方向先达到预设最小边长时为例进行说明,这时的划分过程只存在两种可能,分别为可能一:x≤xmid、y≤ymid、z≤zmid,可能二:,x≤xmid、y≤ymid、z>zmid。两种可能对应的描述八叉树划分的8bit数为xx00 0000,其中的x需要根据前面两个子块内含有点云数据点与否来确定对应位为0或为1。若三个方向上的边均达到预约最小边长时,则树划分结构编码过程结束。

在本发明的另一个实施例中,在对坐标范围经调整的划分块进行空间划分编码时,当所述划分块在三维方向中的一个或两个方向上的边长达到预设最小边长时,对于达到预设最小边长的方向不再进行划分且不再进行编码。

在该实施例中,当一个方向上的边长先到预约最小边长时,则在接下来的划分过程中,以剩下两个方向进行划分编码,已经达到预约最小边长方向上的坐标不参与接下来的划分编码,此时树划分变为四叉树划分。示例性地,当所述划分块在三维方向中的一个方向上的边长达到预设最小边长时,可以采用四比特对尚未达到所述预设最小边长的剩余两个方向的四叉树划分结果进行编码,其中,所述四比特的取值取决于所述划分块在所述剩余两个方向上划分得到的子块内是否包含点云数据。下面以x轴先达到最小边长时为例进行说明,这时的划分中心为(ymid,zmid),这时的划分过程存在以下四种可能,分别为可能一:y≤ymid、z≤zmid,可能二:y≤ymid、z>zmid,可能三:y>ymid、z≤zmid,可能四:y>ymid,z>zmid。这时只需要利用4bit即可描述当前的划分情况。例如当第一个块内含有点云数据点,第四个块内含有点云数据点,其他子块内均不含有点云数据点时,此时编码出来的4bit二进制码流为1001。

类似地,若两个方向上的边长达到预约最小边长时,则在接下来的划分过程中,以剩下一个方向进行划分编码,已经达到预约最小边长方向上的坐标不参与接下来的划分编码,此时树划分变为二叉树划分。示例性地,当所述划分块在三维方向中的两个方向上的边长达到预设最小边长时,采样二比特对尚未达到所述预设最小边长的剩余一个方向的二叉树划分结果进行编码,其中,所述二比特的取值取决于所述划分块在所述剩余一个方向上划分得到的子块内是否包含点云数据。下面以x、y轴两个方向先达到预约最小边长时为例进行说明,这时的划分中心为(zmid),这时的划分过程存在以下两种可能,分别为可能一:z≤zmid,以及可能二:z>zmid。这时只需要利用2bit即可描述当前的划分情况。例如当第一个块内含有点云数据点,第二个块内不含有点云数据点,此时编码出来的2bit二进制码流为10。若三条边达到预约最小边长时,则树划分结构编码过程结束。

以上示例性地描述了基于采集点云数据的采集设备的视野范围调整划分块的坐标范围之后的树划分编码过程。本领域技术人员应理解,上面的描述仅是示例性的,还可以采用任何其他合适的方式来对经调整坐标范围的划分块实施树划分编码过程。

下面继续描述根据本发明实施例的点云数据的位置坐标的编码方法。在树划分编码过程结束后,接着需要编码每个在三个方向上都达到预设最小边长的块内含有的点云点的个数。值得注意的是,由于对于不同的块在根据采集设备视野范围进行调整时得到的坐标范围值可能不一样,因此不同的块在三个方向上都到预设最小边长的层数可能不一致,如图7所示。图7示出本发明实施例的树划分编码过程示意图。在图7中,第m层中右边块在第m层三个方向上均已经达到预设最小边长,而第m层中左边的块仍然需要继续进行划分编码。针对编码每个在三个方向上都达到最小边长的块内含有的点云点的个数的编码,根据本发明的实施例,提供了两种示例性的编码方法。

在本发明的一个实施例中,在八叉树划分编码的过程中,当任一子块在三维方向上均达到预设最小边长时,对所述子块内包含的点云数据的个数进行编码。在该实施例中,当一个块在三个方向的边长均已经达到预设最小边长时,紧接着就编码这个块内含有的点云点的数目。当该块内含有一个点云数据点时,直接编码一个bit的0进行表示。当该块内含有不止一个点云数据点时,设该块内含有n个点云数据点,此时会先编码一个bit的1进行表示,接着会编码数值(n-1)。根据上述的流程即可实现对块内含有点云点数目的编码过程。

在本发明的另一个实施例中,在空间划分编码的过程中,当所有子块在三维方向上均达到预设最小边长时,依次对每个子块内包含的点云数据的个数进行编码。在该实施例中,当一个块在三个方向的边长均已经达到预设最小边长时,会判断当前划分过程是否已经全部结束。如果仍存在块需要划分,则会直接将当前块传往下一层,直至全部的划分过程已经结束。当全部块在三个方向的边长均已经达到预设最小边长时,接着会依次编码每个块内含有的点云点数目。对于每一个块,当该块内含有一个点云数据点时,直接编码一个bit的0进行表示。当该块内含有不止一个点云数据点时,设该块内含有n个点云数据点(其中n为大于1的自然数),此时会先编码一个bit的1进行表示,接着会编码数值(n-1)。根据上述的流程即可实现对块内含有点云点数目的编码过程。

以上示例性地描述了根据本发明实施例的点云数据的位置坐标的编码方法100的步骤S120的过程,下面继续参考图1,描述编码方法100的后续步骤。

在步骤S130,对所述中间编码结果进行算术编码得到最终编码结果。

在本发明的实施例中,中间编码结果即为对预处理的位置坐标进行步骤S120中所述的八叉树划分编码得到的编码结果,为了与点云数据的位置坐标的最终编码结果相区分,将其称为中间编码结果。在本发明的实施例中,可将该中间编码结果(二进制码流)送入算术编码引擎中进行算术编码,即可得到点云数据的位置坐标的最终编码结果。

基于上面的描述,根据本发明实施例的点云数据的位置坐标的编码方法结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标编码过程中划分编码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少编码过程中的时间开销,提高编码效率。

以上示例性地描述了根据本发明实施例的点云数据的位置坐标的编码方法。示例性地,根据本发明实施例的点云数据的位置坐标的编码方法可以在具有存储器和处理器的设备、装置或者系统中实现。示例性地,根据本发明实施例的点云数据的位置坐标的编码方法还可以包括将与所述采集设备的视野范围相关的参数写入码流(例如码流的头信息)中,以用于解码端使用。当然,也可以不包括该步骤,而是事先在解码端设置有所述采集设备的视野范围相关的参数,以用于执行下文中稍后将描述的根据本发明实施例的点云数据的位置坐标的解码方法。

下面结合图8描述根据本发明实施例的点云数据的位置坐标的编码系统。图8示出了根据本发明实施例的点云数据的位置坐标的编码系统800的示意性框图。点云数据的位置坐标的编码系统800包括存储装置810以及处理器820。

其中,存储装置810存储用于实现根据本发明实施例的点云数据的位置坐标的编码方法中的相应步骤的程序。处理器820用于运行存储装置810中存储的程序,以执行上文所述的根据本发明实施例的点云数据的位置坐标的编码方法的相应步骤。为了简洁,此处不再赘述。

此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的点云数据的位置坐标的编码方法的相应步骤。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。在一个实施例中,所述计算机程序指令在被计算机运行时可以执行上文所述的根据本发明实施例的点云数据的位置坐标的编码方法。为了简洁,此处不再赘述。

根据本发明的另一方面,还提供了一种点云数据的位置坐标的解码方法。由于根据本发明实施例的点云数据的位置坐标的解码方法是与根据本发明实施例的点云数据的位置坐标的编码方法是相对应的,为了简洁,解码过程中的一些与编码过程相似或相同的过程不再详细赘述。

图9示出根据本发明实施例的点云数据的位置坐标的解码方法900的示意性流程图。如图9所示,点云数据的位置坐标的解码方法900可以包括如下步骤:

在步骤S910,对点云数据位置坐标编码结果进行算术解码得到算术解码结果。

在本发明的实施例中,步骤S910是与根据实施例的点云数据的位置坐标的编码方法100的步骤S130相对应的,在该步骤对点云数据位置坐标编码结果进行算术编码的逆过程,即算术解码,得到算术解码结果。

在步骤S920,对所述算术解码结果进行空间划分解码得到中间解码结果,其中,在所述空间划分解码的过程中,确定用于空间划分的初始块的坐标范围,并基于采集所述点云数据的采集设备的视野范围确定是否调整划分块的坐标范围。其中,可以从码流中解码出与所述采集设备的视野范围相关的参数,以确定用于空间划分的初始块的坐标范围。进一步地,与所述采集设备的视野范围相关的参数是从所述码流的头信息中解码得到的。

在本发明的实施例中,步骤S920是与根据实施例的点云数据的位置坐标的编码方法100的步骤S120相对应的,在该步骤,对步骤S920得到的算术解码结果进行基于空间划分解码的解码。首先可以对编码结果的头信息进行解码,得到点云数据的位置坐标在三个方向中每个方向的最大值中的最大值,然后基于该值确定用于空间划分的初始块的坐标范围(边长)。基于对初始块的边长的确定,可以开始进行空间划分解码。与编码方法100类似的,由于初始化的立方体(即初始块)是根据所有点云点的位置坐标分布所确定,其取值一定是落在采集设备的视野范围内所能选择的最小的立方体,所以在第一次划分时不需要利用采集设备的视野范围进行剪枝操作。故仅针对划分块来确定是否需要基于采集设备的视野范围调整其坐标范围。

下面详细本发明提出的上述对算术解码结果进行的基于空间划分解码的解码。

设当前长方体块的中心点坐标为(xmid,ymid,zmid),当前块的三个方向上的最小值分别为xmin、ymin、zmin,当前块在三个方向上的最大值分别为xmax、ymax、zmax,则八叉树划分过程中八个小的子块的坐标取值范围如下所示。第一个块的坐标取值范围为xmin≤x≤xmid、ymin≤y≤ymid、zmin≤z≤zmid;第二个块的坐标取值范围为xmin≤x≤xmid、ymin≤y≤ymid、zmid≤z≤zmax;第三个块的坐标取值范围为xmin≤x≤xmid、ymid≤y≤ymax、zmin≤z≤zmid;第四个块的坐标取值范围为xmin≤x≤xmid、ymid≤y≤ymax、zmid≤z≤zmax;第五个块的坐标取值范围为xmid≤x≤xmax、ymin≤y≤ymid、zmin≤z≤zmid;第六个块的坐标取值范围为xmid≤x≤xmax、ymin≤y≤ymid、zmid≤z≤zmax;第七个块的坐标取值范围为xmid≤x≤xmax、ymid≤y≤ymax、zmin≤z≤zmid;第八个块的坐标取值范围为xmid≤x≤xmax,ymid≤y≤ymax,zmid≤z≤zmax。在八叉树划分解码过程中,依次解码8bit数值来确定对应子块内是否含有点云数据点,若当前块内含有点云数据点则对应位会被置为1,否则会被置为0。因此,若解码出8bit二进制码流位0010 0100,则表明当前块的第三个子块内含有点云数据点,第六个子块内含有点云点,在下一层的划分过程中,会对含有点云数据点的块继续进行划分解码。其中,如前所述,对待进行空间划分解码的划分块需要确定是否需要基于采集设备的视野范围调整其坐标范围,确定是否调整以及如何调整与结合图1到图6描述的编码方法100中的类似,为了简洁,此处不再赘述。

在根据采集设备视野范围调整了块划分解码过程中的块大小后接着会继续进行空间划分解码。在解码过程中,逐层进行划分解码重建,逐个解码出每个块的划分情况。此处,与编码过程相对应,根据本发明的实施例,提供了两种示例性的解码方法。

在本发明的一个实施例中,在对坐标范围经调整的划分块进行空间划分解码时,每次解码8比特,得到所述划分块的8个子块内是否含有点云数据点的情况,并对所述子块中含有点云数据点的子块进行下一层的划分解码。以此类推,直至每个块的三个方向的边长均达到最小边长时说明划分解码过程结束。示例性地,当所述划分块在三维方向中的一个方向上的边长达到预设最小边长时,可以根据所述算术解码结果获取八比特位,所述八比特位的最低四位比特的取值为0,根据所述八比特位的最高四位比特确定所述划分块在尚未达到所述预设最小边长的剩余两个方向上划分得到的子块内是否包含点云数据。当所述划分块在三维方向中的两个方向上的边长达到预设最小边长时,根据所述算术解码结果获取八比特位,所述八比特位的最低六位比特的取值为0,根据所述八比特位的最高两位比特确定所述划分块在尚未达到所述预设最小边长的剩余一个方向上划分得到的子块内是否包含点云数据。

在本发明的另一个实施例中,在对坐标范围经调整的划分块进行划分解码时,当该划分块三个方向上的边长均未达到(即均大于)预设最小边长时,需要进行八叉树划分解码,通过解码8bit,来重建出编码时的树形结构。当该划分块的某一个方向的边长达到预设最小边长时,接下来会解码4bit,每1bit对应四叉树划分中四个子块中的一个,当对应位为1时即会对对应子块继续进行划分,对应位为0时即不会对对应子块再进一步进行划分。当该划分块的某两个方向的边长达到最小边长时,接下来会解码2bit,每1bit对应二叉树划分中两个子块中的一个,当对应位为1时即会对对应子块继续进行划分,对应位为0时即不会对对应子块再进一步进行划分。直至每个块的三个方向的边长均达到最小边长时说明划分解码过程结束。示例性地,当所述划分块在三维方向中的一个方向上的边长达到预设最小边长时,可以根据所述算术解码结果获取四比特位,根据所述四比特位确定所述划分块在尚未达到所述预设最小边长的剩余两个方向上划分得到的子块内是否包含点云数据。当所述划分块在三维方向中的两个方向上的边长达到预设最小边长时,根据所述算术解码结果获取二比特位,根据所述二比特位确定所述划分块在尚未达到所述预设最小边长的剩余一个方向上划分得到的子块内是否包含点云数据。

在树划分解码过程结束后,接着需要解码每个在三个方向上都达到预设最小边长的块内含有的点云点的个数。此处,与编码过程相对应,根据本发明的实施例,提供了两种示例性的解码方法。

在本发明的一个实施例中,当任一子块在三维方向上均达到预设最小边长时,对所述子块内包含的点云数据的个数进行解码。在该实施例中,当一个块在三个方向上的边长均已经达到预设最小边长时,紧接着解码该块内含有的点云点的数目。当解码出一个0时,则该块内仅含有一个点云数据点。当解码出一个1时,则该块内含有不止一个点云数据点,接着会解码数值(n-1),表示该块内含有n个点云数据点(其中n为大于1的自然数)。接着会继续进行划分解码,直至重建出整个树划分结构并解码出所有块内含有的点云点的数目。

在本发明的另一个实施例中,当所有子块在三维方向上均达到预设最小边长时,依次对每个子块内包含的点云数据的个数进行解码。在该实施例中,当一个块在三个方向上的边长均已经达到预设最小边长时,会判断当前划分过程是否已经全部结束,如果仍存在块需要划分,则会直接将当前块传往下一层,直至全部的划分过程已经结束。当全部块在三个方向上的边长均已经达到预设最小边长时,接着会依次解码每个块内含有的点云点数目。对于任一含有的点云点的块,当解码出一个0时,则该块内仅含有一个点云数据点;当解码出一个1时,则该块内含有不止一个点云数据点,接着会解码数值(n-1),表示该块内含有n个点云数据点。顺序解码出每个块内含有的点云点数目,即得到点云数据位置坐标编码结果的中间解码结果。

在本发明的实施例中,中间解码结果即为算术解码结果进行步骤S920中所述的空间划分解码得到的解码结果,为了与点云数据位置坐标编码结果的最终解码结果相区分,将其称为中间解码结果。

在步骤S930,对所述中间解码结果进行逆预处理得到所述点云数据的位置坐标。

在本发明的实施例中,步骤S930是与根据实施例的点云数据的位置坐标的编码方法100的步骤S110相对应的,在该步骤,对步骤S920得到的中间解码结果进行逆预处理(与步骤S110相对应的,该逆预处理可以为逆量化,即前文所述的量化过程的逆过程),从而得到最终解码结果,即得到点云数据的位置坐标。

基于上面的描述,根据本发明实施例的点云数据的位置坐标的解码方法结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标解码过程中划分解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少解码过程中的时间开销,提高解码效率。

以上示例性地描述了根据本发明实施例的点云数据的位置坐标的解码方法。示例性地,根据本发明实施例的点云数据的位置坐标的解码方法可以在具有存储器和处理器的设备、装置或者系统中实现。

下面结合图10描述根据本发明实施例的点云数据的位置坐标的解码系统。图10示出了根据本发明实施例的点云数据的位置坐标的解码系统1000的示意性框图。点云数据的位置坐标的解码系统1000包括存储装置1010以及处理器1020。

其中,存储装置1010存储用于实现根据本发明实施例的点云数据的位置坐标的解码方法中的相应步骤的程序。处理器1020用于运行存储装置1010中存储的程序,以执行上文所述的根据本发明实施例的点云数据的位置坐标的解码方法的相应步骤。为了简洁,此处不再赘述。

此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的点云数据的位置坐标的解码方法的相应步骤。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。在一个实施例中,所述计算机程序指令在被计算机运行时可以执行上文所述的根据本发明实施例的点云数据的位置坐标的解码方法。为了简洁,此处不再赘述。

此外,根据本发明实施例,上文中所述的采集点云数据的采集设备可以是激光雷达、激光测距设备等测距装置。在一种实施方式中,测距装置用于感测外部环境信息,例如,环境目标的距离信息、方位信息、反射强度信息、速度信息等。一个点云点可以包括测距装置所测到的外部环境信息中的至少一种。

一种实现方式中,测距装置可以通过测量测距装置和探测物之间光传播的时间,即光飞行时间(Time-of-Flight,TOF),来探测探测物到测距装置的距离。或者,测距装置也可以通过其他技术来探测探测物到测距装置的距离,例如基于相位移动(phase shift)测量的测距方法,或者基于频率移动(frequency shift)测量的测距方法,在此不做限制。

为了便于理解,以下将结合图11所示的测距装置1100对产生本文中提到的三维数据点的测距装置的工作流程进行举例描述。

如图11所示,测距装置1100可以包括发射电路1110、接收电路1120、采样电路1130和运算电路1140。

发射电路1110可以发射光脉冲序列(例如激光脉冲序列)。接收电路1120可以接收经过被探测物反射的光脉冲序列,并对该光脉冲序列进行光电转换,以得到电信号,再对电信号进行处理之后可以输出给采样电路1130。采样电路1130可以对电信号进行采样,以获取采样结果。运算电路1140可以基于采样电路1130的采样结果,以确定测距装置1100与被探测物之间的距离。

可选地,该测距装置1100还可以包括控制电路1150,该控制电路1150可以实现对其他电路的控制,例如,可以控制各个电路的工作时间和/或对各个电路进行参数设置等。

应理解,虽然图11示出的测距装置中包括一个发射电路、一个接收电路、一个采样电路和一个运算电路,用于出射一路光束进行探测,但是本申请实施例并不限于此,发射电路、接收电路、采样电路、运算电路中的任一种电路的数量也可以是至少两个,用于沿相同方向或分别沿不同方向出射至少两路光束;其中,该至少两束光路可以是同时出射,也可以是分别在不同时刻出射。一个示例中,该至少两个发射电路中的发光芯片封装在同一个模块中。例如,每个发射电路包括一个激光发射芯片,该至少两个发射电路中的激光发射芯片中的die封装到一起,容置在同一个封装空间中。

一些实现方式中,除了图11所示的电路,测距装置1100还可以包括扫描模块(未在图11中示出),用于将发射电路出射的至少一路激光脉冲序列改变传播方向出射。

其中,可以将包括发射电路1110、接收电路1120、采样电路1130和运算电路1140的模块,或者,包括发射电路1110、接收电路1120、采样电路1130、运算电路1140和控制电路1150的模块称为测距模块,该测距模块可以独立于其他模块,例如,扫描模块。

测距装置中可以采用同轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内共用至少部分光路。例如,发射电路出射的至少一路激光脉冲序列经扫描模块改变传播方向出射后,经探测物反射回来的激光脉冲序列经过扫描模块后入射至接收电路。或者,测距装置也可以采用异轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内分别沿不同的光路传输。图12示出了本发明的测距装置采用同轴光路的一种实施例的示意图。

测距装置1200包括测距模块1201,测距模块1201包括发射器1203(可以包括上述的发射电路)、准直元件1204、探测器1205(可以包括上述的接收电路、采样电路和运算电路)和光路改变元件1206。测距模块1201用于发射光束,且接收回光,将回光转换为电信号。其中,发射器1203可以用于发射光脉冲序列。在一个实施例中,发射器1203可以发射激光脉冲序列。可选的,发射器1203发射出的激光束为波长在可见光范围之外的窄带宽光束。准直元件1204设置于发射器的出射光路上,用于准直从发射器1203发出的光束,将发射器1203发出的光束准直为平行光出射至扫描模块。准直元件还用于会聚经探测物反射的回光的至少一部分。该准直元件1204可以是准直透镜或者是其他能够准直光束的元件。

在图12所示实施例中,通过光路改变元件1206来将测距装置内的发射光路和接收光路在准直元件1204之前合并,使得发射光路和接收光路可以共用同一个准直元件,使得光路更加紧凑。在其他的一些实现方式中,也可以是发射器1203和探测器1205分别使用各自的准直元件,将光路改变元件1206设置在准直元件之后的光路上。

在图12所示实施例中,由于发射器1203出射的光束的光束孔径较小,测距装置所接收到的回光的光束孔径较大,所以光路改变元件可以采用小面积的反射镜来将发射光路和接收光路合并。在其他的一些实现方式中,光路改变元件也可以采用带通孔的反射镜,其中该通孔用于透射发射器1203的出射光,反射镜用于将回光反射至探测器1205。这样可以减小采用小反射镜的情况中小反射镜的支架会对回光的遮挡。

测距装置1200还包括扫描模块1202。扫描模块1202放置于测距模块1201的出射光路上,扫描模块1202用于改变经准直元件1204出射的准直光束1219的传输方向并投射至外界环境,并将回光投射至准直元件1204。回光经准直元件1204汇聚到探测器1205上。

在一个实施例中,扫描模块1202可以包括至少一个光学元件,用于改变光束的传播路径,其中,该光学元件可以通过对光束进行反射、折射、衍射等等方式来改变光束传播路径。例如,扫描模块1202包括透镜、反射镜、棱镜、振镜、光栅、液晶、光学相控阵(OpticalPhased Array)或上述光学元件的任意组合。一个示例中,至少部分光学元件是运动的,例如通过驱动模块来驱动该至少部分光学元件进行运动,该运动的光学元件可以在不同时刻将光束反射、折射或衍射至不同的方向。在一些实施例中,扫描模块1202的多个光学元件可以绕共同的轴1209旋转或振动,每个旋转或振动的光学元件用于不断改变入射光束的传播方向。在一个实施例中,扫描模块1202的多个光学元件可以以不同的转速旋转,或以不同的速度振动。在另一个实施例中,扫描模块1202的至少部分光学元件可以以基本相同的转速旋转。在一些实施例中,扫描模块的多个光学元件也可以是绕不同的轴旋转。在一些实施例中,扫描模块的多个光学元件也可以是以相同的方向旋转,或以不同的方向旋转;或者沿相同的方向振动,或者沿不同的方向振动,在此不作限制。

在一个实施例中,扫描模块1202包括第一光学元件1214和与第一光学元件1214连接的驱动器1216,驱动器1216用于驱动第一光学元件1214绕转动轴1209转动,使第一光学元件1214改变准直光束1219的方向。第一光学元件1214将准直光束1219投射至不同的方向。在一个实施例中,准直光束1219经第一光学元件改变后的方向与转动轴1209的夹角随着第一光学元件1214的转动而变化。在一个实施例中,第一光学元件1214包括相对的非平行的一对表面,准直光束1219穿过该对表面。在一个实施例中,第一光学元件1214包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第一光学元件1214包括楔角棱镜,对准直光束1219进行折射。

在一个实施例中,扫描模块1202还包括第二光学元件1215,第二光学元件1215绕转动轴1209转动,第二光学元件1215的转动速度与第一光学元件1214的转动速度不同。第二光学元件1215用于改变第一光学元件1214投射的光束的方向。在一个实施例中,第二光学元件1215与另一驱动器1217连接,驱动器1217驱动第二光学元件1215转动。第一光学元件1214和第二光学元件1215可以由相同或不同的驱动器驱动,使第一光学元件1214和第二光学元件1215的转速和/或转向不同,从而将准直光束1219投射至外界空间不同的方向,可以扫描较大的空间范围。在一个实施例中,控制器1218控制驱动器1216和1217,分别驱动第一光学元件1214和第二光学元件1215。第一光学元件1214和第二光学元件1215的转速可以根据实际应用中预期扫描的区域和样式确定。驱动器1216和1217可以包括电机或其他驱动器。

在一个实施例中,第二光学元件1215包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第二光学元件1215包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第二光学元件1215包括楔角棱镜。

一个实施例中,扫描模块1202还包括第三光学元件(图未示)和用于驱动第三光学元件运动的驱动器。可选地,该第三光学元件包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第三光学元件包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第三光学元件包括楔角棱镜。第一、第二和第三光学元件中的至少两个光学元件以不同的转速和/或转向转动。

扫描模块1202中的各光学元件旋转可以将光投射至不同的方向,例如方向1211和1213,如此对测距装置1200周围的空间进行扫描。如图3所示,图13为测距装置1200的一种扫描图案的示意图。可以理解的是,扫描模块内的光学元件的速度变化时,扫描图案也会随之变化。

当扫描模块1202投射出的光1211打到探测物1210时,一部分光被探测物1210沿与投射的光1211相反的方向反射至测距装置1200。探测物1210反射的回光1212经过扫描模块1202后入射至准直元件1204。

探测器1205与发射器1203放置于准直元件1204的同一侧,探测器1205用于将穿过准直元件1204的至少部分回光转换为电信号。

测距装置1200探测到的距离和方位可以用于遥感、避障、测绘、建模、导航等。在一种实施方式中,本发明实施方式的测距装置可应用于移动平台,测距装置可安装在移动平台的平台本体。具有测距装置的移动平台可对外部环境进行测量,例如,测量移动平台与障碍物的距离用于避障等用途,和对外部环境进行二维或三维的测绘。在某些实施方式中,移动平台包括无人飞行器、汽车、遥控车、机器人、相机中的至少一种。当测距装置应用于无人飞行器时,平台本体为无人飞行器的机身。当测距装置应用于汽车时,平台本体为汽车的车身。该汽车可以是自动驾驶汽车或者半自动驾驶汽车,在此不做限制。当测距装置应用于遥控车时,平台本体为遥控车的车身。当测距装置应用于机器人时,平台本体为机器人。当测距装置应用于相机时,平台本体为相机本身。

以上示例性地描述了根据本发明实施例的点云数据的位置坐标的编解码方法、系统、存储介质以及采集点云数据的采集设备。基于上面的描述,根据本发明实施例的点云数据的位置坐标的编解码方法、系统和存储介质结合点云数据的采集设备在采集过程中的视野范围的取值范围来限定对位置坐标编解码过程中划分编解码过程的取值范围,可以较快减少一些一定不存在点云数据点的区域,从而减少编解码过程中的时间开销,提高编解码效率。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

35页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于生成物体的3D重建的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!