一种基于邻近点投影分布特征的点云快速投影方法

文档序号:1173036 发布日期:2020-09-18 浏览:8次 >En<

阅读说明:本技术 一种基于邻近点投影分布特征的点云快速投影方法 (Point cloud rapid projection method based on adjacent point projection distribution characteristics ) 是由 王军 方猛 于 2020-04-30 设计创作,主要内容包括:本发明提出一种基于邻近点投影分布特征的点云快速投影方法,包括以下步骤:将点云划分为固定大小的网格;计算首个网格对应的邻近网格的全零列索引final;根据所述全零列索引final,计算当前网格对应的邻近网格中全零列索引final对应的平面以外的平面的scoreSmooth累加值,然后计算当前网格中每个平面的scoreSmooth累加值及当前网格的scoreNromal值的加权和,取所述加权和数值最大时对应的平面作为当前网格的投影平面;计算次个网格对应的邻近网格的全零列索引final,并重复上述步骤至所有网格完成遍历,得到点云中每个点的投影情况。(The invention provides a point cloud rapid projection method based on adjacent point projection distribution characteristics, which comprises the following steps: dividing the point cloud into grids with fixed sizes; calculating all zero column index final of the adjacent grid corresponding to the first grid; according to the all-zero-column index final, calculating the scoreSimoth accumulated value of the plane except the plane corresponding to the all-zero-column index final in the adjacent grid corresponding to the current grid, then calculating the weighted sum of the scoreSimoth accumulated value of each plane in the current grid and the scoreMale value of the current grid, and taking the plane corresponding to the maximum value of the weighted sum as the projection plane of the current grid; and calculating the all-zero-column index final of the adjacent grid corresponding to the next grid, and repeating the steps until all grids are traversed to obtain the projection condition of each point in the point cloud.)

一种基于邻近点投影分布特征的点云快速投影方法

技术领域

本发明涉及点云编码技术领域,更具体地,涉及一种基于邻近点投影分布特征的点云快速投影方法。

背景技术

V-PCC(Video-based Point Cloud Compression,基于视频的点云压缩编码)是目前MPEG正在制定的点云压缩编码的标准。目前的V-PCC(Video-based Point CloudCompression,基于视频的点云压缩编码)的参考软件TMC2的编码过程中,patch生成的过程主要包括三个步骤:初始划分、改进划分和patch生成,其中初始划分和改进划分过程的功能用于确定点云中的每个点投影在包围盒六面体的哪一个平面上。

然而,在点云压缩的改进划分过程中,通过将点云划分成网格进行,对于每一个网格都会进行邻近网格搜索,对于所有的邻近网格都需要计算其六个平面的scoreSmooth值的累加和,需要耗费大量时间。此外,当点云中每个点的邻近网格中的投影情况中,可能会存在一个点的所有邻近网格中的点普遍只投影在六个平面的某几个平面上的情况,甚至有时会全部只投影在一个平面上。如图1所示,为部分邻近网格的点的投影情况,其中,每一行数值表示每个网格中的点投影到六个平面的情况,每一个数值表示当前网格中投影到该平面的点的数量。由此可见,在原始的程序中如果对六个平面进行遍历会产生大量非必要的计算量,因为如果某些平面没有被投影,比如第k个平面没有被投影,那么scoreSmooth[k]的值就会出现很多0进行累加的情况,虽然改进划分过程中是对每一个网格进行遍历,但依然是一个庞大的数据量,因此在点云压缩的改进划分过程中存在非必要计算量过大的问题。

发明内容

本发明为克服上述现有技术所述的在点云压缩的改进划分过程中非必要计算量大的缺陷,提供一种基于邻近点投影分布特征的点云快速投影方法。

为解决上述技术问题,本发明的技术方案如下:

一种基于邻近点投影分布特征的点云快速投影方法,包括以下步骤:

S1:将点云划分为固定大小的网格;

S2:计算首个网格所有邻近网格的全零列索引final;其中,所述全零列索引final为当前网格对应的邻近网格中没有投影的平面索引组成的字符串;

S3:根据所述全零列索引final,计算当前网格对应的邻近网格中全零列索引final对应的平面以外的平面的scoreSmooth累加值,然后计算当前网格中每个所述平面的scoreSmooth累加值及当前网格的scoreNromal值的加权和,取所述加权和数值最大时对应的平面作为当前网格的投影平面;所述scoreSmooth值为每一个网格的固有属性,用于反映当前网格的投影情况;

S4:计算次个网格对应的邻近网格的全零列索引final,并跳转执行S3步骤,重复本步骤至所有网格完成遍历,得到点云中每个点的投影平面。

本技术方案对V-PCC中patch生成的过程中改进划分步骤进行改进。本技术方案中的改进划分步骤是基于网格进行的,先通过将点云划分得到固定大小的网格,其中网格为类正方体结构,包括六个可投影平面;在遍历当前网格对应的邻近网格之前,先统计当前网格对应的所有邻近网格均没有投影到的平面索引,得到当前网格的全零列索引final,再将全零列索引final作为判断条件进行改进划分,计算全零列索引final字符串中的平面索引对应的平面以外的所有平面的scoreSmooth值,即计算存在邻近网格投影的平面的scoreSmooth值,然后计算每个平面的scoreSmooth值及当前网格的scoreNromal值的加权和,取加权和数值最大时对应的平面作为当前网格的点的投影平面,即完成当前网格投影平面的确定。本技术方案能够减少计算没有投影的平面的scoreSmooth值,从而减少大量非必要的计算量。

优选地,S2步骤中,计算当前网格的所有邻近网格的全零列索引final的具体步骤如下:

S2.1:获取当前网格的首个邻近网格的scoreSmooth值,并将其保存在临时字符串变量temp中,同时将临时字符串变量temp的值赋给全零列索引final字符串中;

S2.2:将临时字符串变量temp清空,获取当前网格的次个邻近网格的六个平面的scoreSmooth值,并将其保存在临时字符串变量temp中;

S2.3:将临时字符串变量temp与全零列索引final的值进行与运算,保留二者相同的字符并保存在全零列索引final中;

S2.4:重复执行S2.2~S2.4步骤,至当前网格的邻近网格完成遍历,得到当前网格的所有邻近网格的全零列索引final。

优选地,S2.2步骤中处理的次个邻近网格与上一步骤处理的邻近网格之间相隔n个邻近网格,其中,n为正整数。本优选方案通过间隔一定数量的邻近网格进行处理,能够在保证当前网格投影平面确定的准确度的同时,进一步减少改进划分过程中非必要计算量。

优选地,依次遍历的邻近网格之间相隔的邻近网格数n的取值范围为5~20。

优选地,邻近网格的数量由点云的搜索半径及网格的尺寸决定。

优选地,S3步骤中当前网格的scoreNromal值由当前网格对应的点云的法向量与其每个平面的法向量进行内积运算得到。

与现有技术相比,本发明技术方案的有益效果是:通过提前统计当前网格的所有临近网格不投影的平面,然后在执行改进划分过程中跳过计算统计得到的无投影平面的scoreSmooth累加值,避免非必要计算,有效减少了点云压缩的改进划分过程中的计算量,减少了点云编码过程的运行时间。

附图说明

图1为部分邻近网格的点的投影情况示意图。

图2为本实施例的基于邻近点投影分布特征的点云快速投影方法的流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

本实施例提出一种基于邻近点投影分布特征的点云快速投影方法,如图2所示,为本实施例的基于邻近点投影分布特征的点云快速投影方法的流程图。

本实施例提出的基于邻近点投影分布特征的点云快速投影方法中,包括以下步骤:

S1:将点云划分为固定大小的网格。

S2:计算首个网格所有邻近网格的全零列索引final;其中,所述全零列索引final为当前网格对应的邻近网格中没有投影的平面索引组成的字符串。

本步骤中,全零列索引final是通过判断当前网格的0、1、2、3、4、5六个平面中哪个平面的scoreSmooth[k]值为0得到的;计算当前网格的所有邻近网格的全零列索引final的具体步骤如下:

S2.1:获取当前网格的首个邻近网格的六个平面的scoreSmooth值,并将其保存在临时字符串变量temp中,同时将临时字符串变量temp的值赋给全零列索引final字符串中;

S2.2:将临时字符串变量temp清空,获取当前网格的次个邻近网格的六个平面的scoreSmooth值,并将其保存在临时字符串变量temp中;

S2.3:将临时字符串变量temp与全零列索引final的值进行与运算,保留二者相同的字符并保存在全零列索引final中;

S2.4:重复执行S2.2~S2.4步骤,至当前网格的邻近网格完成遍历,得到当前网格的所有邻近网格的全零列索引final。

本实施例中,S2.2步骤中处理的次个邻近网格与上一步骤处理的邻近网格之间相隔20个邻近网格。

S3:根据全零列索引final,计算当前网格对应的邻近网格中全零列索引final对应的平面以外的平面的scoreSmooth累加值,然后计算当前网格中每个平面的scoreSmooth累加值及当前网格的scoreNromal值的加权和,取加权和数值最大时对应的平面作为当前网格的投影平面。其中,scoreSmooth值为每一个网格的固有属性,用于反映当前网格的投影情况,scoreNromal值由所述当前网格对应的点云的法向量与其每个平面的法向量进行内积运算得到。

S4:计算次个网格对应的邻近网格的全零列索引final,并跳转执行S3步骤,重复本步骤至所有网格完成遍历,得到点云中每个点的投影平面。

在一个具体实施过程中,先根据用户预设的网格尺寸将点云划分为固定大小的网格,采用TMC2编码器中refineSegmentationGridBased函数中遍历邻近网格部分的内容进行网格遍历。

定义一个全零列索引字符串变量final,用于存储当前网格所有邻近网格均没有投影的平面索引;定义一个临时字符串变量temp,用于临时存储当前邻近网格中没有投影的平面索引。

获取当前网格的邻近网格列表adj,定义一个迭代器用于遍历当前网格的邻近网格,并设置迭代器的指向间隔20个元素,即表示间隔20个邻近网格进行遍历处理。

迭代器从邻近网格列表adj中第一个元素进行遍历,即从当前网格的首个邻近网格开始处理:对迭代器指向的邻近网格的六个scoreSmooth[k]值进行判断,其中k表示平面索引,k的取值为0,1,2,3,4,5,分别表示第一个平面至第六个平面;若scoreSmooth[k]的值为0,则表示平面索引为k的平面是没有投影的,例如当scoreSmooth[0]=3、scoreSmooth[1]=0、scoreSmooth[2]=3、scoreSmooth[3]=0、scoreSmooth[4]=0、scoreSmooth[5]=0,则当前遍历的邻近网格中第一平面、第三平面为有投影平面,其他平面为无投影平面,此时临时字符串变量temp赋值为“1345”,同时全零列索引字符串变量final赋值为“1345”,并将临时字符串变量temp清零。

然后迭代器指向第21个元素,即跳过20个邻近网格进行遍历,然后根据迭代器指向的邻近网格中的六个scoreSmooth[k]值对临时字符串变量temp进行赋值,得到该邻近网格中无投影平面的索引,例如该邻近网格中的scoreSmooth[k]为:scoreSmooth[0]=0、scoreSmooth[1]=4、scoreSmooth[2]=3、scoreSmooth[3]=0、scoreSmooth[4]=2、scoreSmooth[5]=0,即表示当前遍历的邻近网格中第一平面、第四平面、第六平面为无投影平面,此时临时字符串变量temp赋值为“035”,然后将该临时字符串变量temp=“035”与全零列索引字符串变量final=“1345”进行与运算,得到全零列索引字符串变量final=“35”,并将临时字符串变量temp清零。

重复上述步骤至迭代器完成邻近网格列表adj的遍历,根据最终得到的全零列索引字符串变量final中的数值,将邻近网格列表adj中的每个邻近网格除全零列索引字符串变量final以外的平面scoreSmooth[k]值进行累加。例如,当最终得到的全零列索引字符串变量final=“35”时,即表示所有邻近网格均没有在第四平面、第六平面上有投影,则跳过对scoreSmooth[3]、scoreSmooth[5]的累加计算,只对每个邻近网格的scoreSmooth[0]、scoreSmooth[1]、scoreSmooth[2]、scoreSmooth[4]进行累加计算,得到scoreSmooth累加值,然后计算每个所述平面的scoreSmooth累加值及当前网格的scoreNromal值的加权和,取所述加权和数值最大时对应的平面作为当前网格的投影平面。

重复执行上述步骤完成所有网格的遍历,得到点云中每个点的投影平面,应用于patch生成步骤。

本实施例通过提前统计当前查询网格的所有临近网格不投影的平面,然后在执行改进划分过程中跳过计算统计得到的无投影平面的scoreSmooth累加值,避免非必要计算,有效减少了点云压缩的改进划分过程中的计算量,减少了点云编码过程的运行时间。

本实施例中,以loot序列为例,经过实验统计,在六个投影平面中会有2个平面对于每一个当前查询网格的邻近网格列表中的所有点来说是无投影平面,采用本实施例提出的基于邻近点投影分布特征的点云快速投影方法后,在遍历网格过程中能够减少1/3的计算时间,而遍历网格这一过程的运行时间约占总编码时间的40%,而本实施例提出的基于邻近点投影分布特征的点云快速投影方法能够使总编码过程的运行时间降低10%。本实施例提出的基于邻近点投影分布特征的点云快速投影方法对于其他序列同样能够起一定的编码时间下降的效果。

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种图像数据的压缩方法以及接口电路

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类