基于深度学习的点云无损压缩方法和装置

文档序号:32522773发布日期:2022-12-13 20:06阅读:59来源:国知局
基于深度学习的点云无损压缩方法和装置

1.本发明涉及点云压缩技术领域,尤其涉及基于深度学习的点云无损压缩方法和装置。


背景技术:

2.随着3d扫描技术的飞速发展,人们现在可以通过细粒度的点云来有效捕捉复杂的几何信息。而点云压缩对点云数据的存储和传输至关重要,因此点云压缩技术的发展受到广泛关注。
3.目前,常见的点云压缩方法有octattention和voxelcontext-net;其中,octattention是基于self-attention的压缩方法,其将点云转化为八叉树;把八叉树按照广度优先遍历的方式拉成一个节点序列,节点信息包含节点在八叉树中的层数,节点在父节点中的位置以及节点的octvalue;接着基于上下文,利用含有self-attention的神经网络,对八叉树每个节点的octvalue概率分布进行学习;最后对八叉树每个节点的octvalue概率分布进行熵编码,得到点云压缩文件。因为这种方式在编码每个节点时仅将该节点之前节点的节点信息作为上下文,导致上下文在空间当中的分布不均匀,影响octvalue概率分布的预测准确性,进而影响编码效果。voxelcontext-net不同于octattention的地方在于,编码每个节点时以与该节点空间中相近的节点的节点信息作为上下文,采用卷积神经网络进行octvalue概率分布的预测。这种方式在编码每个节点时较少用到同层节点的octvalue,而且卷积神经网络运算能力有限,不能囊括很大的空间,导致能用到的上下文信息非常少,octvalue概率分布的预测准确性较差,进而致使编码效果差。


技术实现要素:

4.本发明提供基于深度学习的点云无损压缩方法和装置,用以解决现有技术中点云压缩效果不佳的缺陷,通过划分小段序列并利用自注意力神经网络模型对各个小段序列进行分组编码的方式,将更多地节点上下文信息应用到编码过程中,进而提升编码的压缩率。
5.第一方面,本发明提供一种基于深度学习的点云无损压缩方法,包括:
6.利用八叉树表示目标点云;
7.对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;
8.利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;
9.按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;
10.其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
11.根据本发明提供的基于深度学习的点云无损压缩方法,所述利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列,包括:
12.以上下文窗口长度为小段序列长度划分所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列。
13.根据本发明提供的基于深度学习的点云无损压缩方法,对小段序列进行无损压缩,包括:
14.对所述小段序列中的节点进行分组;
15.利用自注意力神经网络模型、第一掩码张量、第二掩码张量以及所述小段序列中每一个节点及其祖先节点的节点信息,确定所述小段序列中每一个节点的octvalue概率分布;
16.基于所述小段序列中每一个节点的octvalue概率分布,按照组号递增顺序对所述小段序列进行节点分组编码,得到所述小段序列的编码结果;
17.其中,所述上下文节点包括节点所处八叉树的层数、节点在父节点中的位置以及节点的octvalue;所述节点的octvalue为表示节点八个子空间点存在情况的八位二进制数;
18.所述第一掩码张量旨在掩盖所述小段序列中所有节点的octvalue;所述第二掩码张量旨在于所述小段序列中每一个节点的octvalue概率分布的学习过程中,掩盖所述小段序列中组号大于相应节点所属组号的节点的octvalue。
19.根据本发明提供的基于深度学习的点云无损压缩方法,所述对所述小段序列中的节点进行分组,包括:
20.令同组节点之间的节点序号相隔lm;
21.其中,m为分组组数,l为大于等于1的整数。
22.根据本发明提供的基于深度学习的点云无损压缩方法,所述利用自注意力神经网络模型、第一掩码张量、第二掩码张量以及所述小段序列中每一个节点及其祖先节点的上下文节点,确定所述小段序列中每一个节点的octvalue概率分布,包括:
23.以三维张量形式表示所述小段序列中每一个节点及其祖先节点的上下文节点;
24.基于所述第一掩码张量和所述第二掩码张量,利用所述自注意力神经网络模型处理所述三维张量,得到所述小段序列中每一个节点的octvalue概率分布。
25.根据本发明提供的基于深度学习的点云无损压缩方法,所述三维张量大小为(n,k,3),所述神经网络模块包括embedding层、第一reshape层、第一transformer网络结构、第二transformer网络结构、第二reshape层、第一linear层和softmax层;
26.所述基于所述第一掩码张量和所述第二掩码张量,利用所述自注意力神经网络模型处理所述三维张量,得到所述小段序列中每一个节点的octvalue概率分布,包括:
27.在所述embedding层中将所述三维张量大小转换为(n,k,s);
28.在所述第一reshape层中将(n,k,s)大小的三维张量整形为(n,ks)的二维张量;
29.在所述第一transformer网络结构中,利用所述第一掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第一学习张量;
30.在所述第二transformer网络结构中,利用所述第二掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第二学习张量;
31.在所述第二reshape层中将所述第一学习张量和所述第二学习张量的加和结果整形为(n,ks)的二维张量;
32.利用所述第一linear层,对所述第二reshape层输出的二维张量进行正则化,得到大小为(n,255)的二维张量;
33.在softmax层中对大小为(n,255)的二维张量进行归一化处理,以从归一化处理结果中得到所述小段序列中每一个节点的octvalue概率分布;其中,n为小段序列中包含的节点个数,k为向上追溯的祖先节点个数,s为大于3的任意整数。
34.根据本发明提供的基于深度学习的点云无损压缩方法,所述第一transformer网络结构和所述第二transformer网络结构结构一致,均由r个编码器串联堆叠而成;
35.所述编码器包括第一个子层连接结构及其连接的第二个子层连接结构;
36.所述第一个子层连接结构包括多头自注意力子层、规范化层和一个残差连接;
37.所述第二个子层连接结构包括第二linear层、规范化层和一个残差连接;
38.在所述第一transformer网络结构中,利用所述第一掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第一学习张量,包括:
39.将所述二维张量作为所述第一transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第一掩码张量作为所述第一transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第一transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第一学习张量;
40.在所述第二transformer网络结构中,利用所述第二掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第二学习张量,包括:
41.将所述二维张量作为所述第二transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第二掩码张量作为所述第二transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第二transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第二学习张量。
42.根据本发明提供的基于深度学习的点云无损压缩方法,所述自注意力神经网络模型是在预训练神经网络的基础构建的;
43.所述预训练神经网络,是以节点octvalue随机置零的八叉树节点小段序列样本训练的。
44.第二方面,本发明提供一种基于深度学习的点云无损压缩装置,包括:
45.八叉树表示模块,用于利用八叉树表示目标点云;
46.广度优先遍历模块,用于对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;
47.分离模块,用于利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;
48.压缩模块,用于按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;
49.其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
50.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述基于深度学习的点云无损压缩方法。
51.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述基于深度学习的点云无损压缩方法。
52.本发明提供的基于深度学习的点云无损压缩方法和装置,改进了利用八叉树实现点云压缩的技术,具体包括:将目标点云转换为八叉树;按广度优先顺序将八叉树每一层节点铺平为节点序列;然后利用上下文窗口将八叉树每一层节点铺平后的节点序列进行分段,得到所述八叉树每一层对应的小段序列;按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果。本发明通过对小段序列进行分层的并行压缩,大大提升点云压缩速度;同时对于任意一个小段序列,利用自注意力神经网络模型对小段序列进行分组编码,使得编码能够利用更多的节点上下文信息,进而提升编码的压缩率。
附图说明
53.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1是本发明提供的基于深度学习的点云无损压缩方法的流程示意图;
55.图2是本发明提供的transformer网络结构的结构示意图;
56.图3是本发明提供的基于深度学习的点云无损压缩装置的结构示意图;
57.图4是本发明提供的实现基于深度学习的点云无损压缩方法的电子设备的结构示意图。
具体实施方式
58.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.下面解释专业领域特有的缩略语:
60.体素:用固定大小的立方块作为最小单元,来表示三维物体的一种数据结构。
61.八叉树:一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,对应正方体的八个等分子空间,将八个子节点所表示的体积元素加在一起就等于父节点的体积。
62.octvalue:八叉树节点的八个子节点构成的八位二进制数。
63.压缩率(bpp):点云压缩后平均每个点所占用的比特数。
64.context window:上下文窗口。
65.bptt:以上下文窗口划分的小段序列。
66.下面结合图1-图4描述本发明的基于深度学习的点云无损压缩方法和装置。
67.第一方面,本发明提供一种基于深度学习的点云无损压缩方法,如图1所示,所述方法包括:
68.s11、利用八叉树表示目标点云;
69.利用八叉树表示目标点云可以减少空间冗余。
70.具体的,八叉树是描述3d空间的树形数据结构,其内每个内部节点有八个子节点。八叉树的每个节点可以代表一个空间,相应的八个子节点将这个空间细分成八个三元模型,因此采用由8个子立方体点存在情况(存在记为1,不存在记为0)组成的8位二进制数来抽象地描述这个空间的点云信息。
71.s12、对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;
72.广度优先遍历又叫层次遍历,从上往下对每一层依次访问,在每一层中从左往右(也可以从右往左)访问节点,访问完一层就进入下一层,直到没有节点可以访问为止。
73.s13、利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;
74.可以理解的是,分离表示八叉树任一层节点的节点序列,可相应得到多个小段序列。
75.s14、按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;
76.换句话讲,同属于一个八叉树层级的小段序列同时编码,靠近根节点的八叉树层级所对应的小段序列较远离根节点的八叉树层级所对应的小段序列优先编码。对每一组节点进行编码时采用熵编码方式。
77.例如八叉树有七层,由上至下分别为第一层、第二层、

、第七层。各层节点序列分离出的小段序列并行压缩,且第一层节点序列分离出的小段序列先于第二层节点序列分离出的小段序列压缩,第二层节点序列分离出的小段序列先于第三层节点序列分离出的小段序列压缩,以此类推,最终得到所述目标点云的压缩结果。
78.为了加快解码速度,本发明提出按八叉树层级编码的方法,且规定同层小段序列并行编码,编码每层时能够用到上k层所有八叉树节点的信息。
79.其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
80.现有研究表明,祖先节点和兄弟节点的信息对于当前节点的编码同样重要。
81.而现有的压缩技术,要么采用不充分的上下文信息。要么带来不可容忍的解码复杂度(例如octattention方法每次只能解码一个节点,导致解码一个节点需要调用一次self-attention神经网络,这造成了非常大的时间开销,解码时间极其慢),因此本发明提出了基于自注意力神经网络模型的分组编码策略,为每个节点开发一个充分而有效的上下文,并且在解码时每次解码一组节点,减少解码复杂度,提高解码速率。
82.本发明提供的基于深度学习的点云无损压缩方法,改进了利用八叉树实现点云压缩的技术,具体包括:将目标点云转换为八叉树;按广度优先顺序将八叉树每一层节点铺平为节点序列;然后利用上下文窗口将八叉树每一层节点铺平后的节点序列进行分段,得到所述八叉树每一层对应的小段序列;按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果。本发明通过对小段序列进行分层的并行压缩,大大提升点云压缩速度;同时对于任意一个小段序列,利用自注意力神经网络模型对小段序列进行分组编码,使得编码能够利用更多的节点上下文信
息,进而提升编码的压缩率。
83.在上述实施例的基础上,作为一种可选实施例,所述利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列,包括:
84.以上下文窗口长度为小段序列长度划分所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列。
85.即对于表示每一层节点的节点序列来讲,先在节点序列的末尾补充零节点,以使节点序列的长度为所述上下文窗口长度的整数倍;
86.然后以上下文窗口长度为小段序列长度,从左至右划分节点序列,得到多个小段序列。
87.例如节点序列为{x1、x2…
x
36
},上下文窗口可涵盖8个节点,可分离为{x1、x2…
x8}、{x8、x9…
x
16
}、{x
17
、x
18

x
24
}、{x
25
、x
26

x
32
}、{x
33
、x
34
、x
35
、x
36
,0,0,0,0}五个小段序列。
88.这一操作保证每一个上下文窗口内节点组成一个小段序列,便于在自注意力神经网络模型中处理。
89.在上述实施例的基础上,作为一种可选实施例,所述对小段序列进行无损压缩,包括:
90.对所述小段序列中的节点进行分组;
91.即为所述小段序列中每一个节点分别对应的组号,分组最好采用均匀分配方式,以保证上下文信息在空间当中分布均匀。
92.利用自注意力神经网络模型、第一掩码张量、第二掩码张量以及所述小段序列中每一个节点及其祖先节点的节点信息,确定所述小段序列中每一个节点的octvalue概率分布;其中,所述节点信息包括节点所处八叉树的层数、节点在父节点中的位置以及节点的octvalue;所述节点的octvalue为表示节点八个子空间点存在情况的八位二进制数;所述第一掩码张量旨在掩盖所述小段序列中所有节点的octvalue;所述第二掩码张量旨在于所述小段序列中每一个节点的octvalue概率分布的学习过程中,掩盖所述小段序列中组号大于相应节点所属组号的节点的octvalue。
93.自注意力神经网络模型中包含两个transformer结构,第一transformer结构引入第一掩码张量使的学习所述小段序列中每一个节点octvalue概率分布时,采用的上下文信息包括所述小段序列中各节点追溯的祖先节点的节点信息、所述小段序列中各节点所处八叉树的层数以及所述小段序列中各节点在父节点中的位置,不采用所述小段序列中任一节点的octvalue;
94.第二transformer结构引入第二掩码张量使的学习所述小段序列中每一个节点octvalue概率分布时,采用的上下文信息包括所述小段序列中各节点追溯的祖先节点的节点信息、所述小段序列中各节点所处八叉树的层数、所述小段序列中各节点在父节点中的位置以及所述小段序列中已编码组别的节点的octvalue(对于第p组来讲已编码组别为第p-1组至第1组),不采用所述小段序列中未编码组别的节点的octvalue(对于第p组来讲未编码组别为第p+1组至第m组)。
95.由于分组解码存在先后顺序,因此要加入的掩码张量需保证编码时不会用到后解码节点的octvalue,上述设置方式符合解码规律。第一transformer结构的输入和第二transformer结构的输入之间的加和后通过线性层得到即可学习到octvalue概率分布。
96.假设分组组别为4,则第二掩码张量可以如表1所示。
97.表1
[0098] 1234123410
ꢀꢀꢀ0ꢀꢀꢀ
200
ꢀꢀ
00
ꢀꢀ
3000 000 40000000010
ꢀꢀꢀ0ꢀꢀꢀ
200
ꢀꢀ
00
ꢀꢀ
3000 000 400000000
[0099]
其中,0代表可以用到octvalue信息,即后面的组可以用到前面的组的octvalue信息,但是前面的组不可以用到后面的组的octvalue信息。
[0100]
与之对应的,用图表示时0对应黑色,其余对应白色。
[0101]
本发明设计了两个transformer通道,并采用不同掩码操作来编码八叉树,以实现有效解码,降低解码复杂度。
[0102]
基于所述小段序列中每一个节点的octvalue概率分布,按照组号递增顺序对所述小段序列进行节点分组编码,得到所述小段序列的编码结果。
[0103]
实际应用时,因为小段序列中各个节点的octvalue已知,因此允许同时进行各个分组节点的编码。
[0104]
解码是编码的反过程,由于解码后一组节点需要用到前一组节点的octvalue,而前一组节点octvalue只要在前一组节点解码后才能获得,因此必须严格按照组号递增顺序进行解码,这里第一组节点octvalue初始化为0。
[0105]
本发明利用自注意力神经网络模型,可以为每个节点开发充分而有效的上下文信息,以提升octvalue的预测效果,进而提高压缩bpp。
[0106]
在上述实施例的基础上,作为一种可选实施例,所述对所述小段序列中的节点进行分组,包括:
[0107]
令同组节点之间的节点序号相隔lm;
[0108]
其中,m为按照需求选定的分组组数,l为大于等于1的整数。
[0109]
例如:设定m为4,现有小段序列为{y1、y2…y16
},分组后{y1、y5、y9、y
13
}属于第一组,{y2、y6、y
10
、y
14
}属于第二组,{y3、y7、y
11
、y
15
}属于第三组,{y4、y8、y
12
、y
16
}属于第四组,
[0110]
本发明采用均匀分组方式,使编码小段序列中每一个节点时,兄弟节点中可用octvalue信息的节点,部分位于该节点之前,部分位于该节点之后,且分布均匀,有利于提升节点上下文信息,有利于提升压缩率。
[0111]
在上述实施例的基础上,作为一种可选实施例,所述利用自注意力神经网络模型、第一掩码张量、第二掩码张量以及所述小段序列中每一个节点及其祖先节点的节点信息,确定所述小段序列中每一个节点的octvalue概率分布,包括:
[0112]
以三维张量形式表示所述小段序列中每一个节点及其祖先节点的节点信息;
[0113]
即三维张量大小可以为(n,k,3),n为小段序列中包含的节点个数,k为向上追溯的
祖先节点个数,3指代3类节点信息。
[0114]
基于所述第一掩码张量和所述,利用所述自注意力神经网络模型处理所述三维张量,得到所述小段序列中每一个节点的octvalue概率分布。
[0115]
本发明采用self-attention技术提取八叉树节点的上下文信息,使八叉树节点编码时更够利用较多的上下文信息,提高压缩结果。
[0116]
在上述实施例的基础上,作为一种可选实施例,所述三维张量大小为(n,k,3),所述神经网络模块包括embedding层、第一reshape层、第一transformer网络结构、第二transformer网络结构、第二reshape层、第一linear层和softmax层;
[0117]
所述基于所述第一掩码张量和所述第二掩码张量,利用所述自注意力神经网络模型处理所述三维张量,得到所述小段序列中每一个节点的octvalue概率分布,包括:
[0118]
在所述embedding层中将所述三维张量大小转换为(n,k,s);
[0119]
在所述第一reshape层中将(n,k,s)大小的三维张量整形为(n,ks)的二维张量;
[0120]
在所述第一transformer网络结构中,利用所述第一掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第一学习张量;
[0121]
在所述第二transformer网络结构中,利用所述第二掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第二学习张量;
[0122]
在所述第二reshape层中将所述第一学习张量和所述第二学习张量的加和结果整形为(n,ks)的二维张量;
[0123]
利用所述第一linear层,对所述第二reshape层输出的二维张量进行正则化,得到大小为(n,255)的二维张量;
[0124]
在softmax层中对大小为(n,255)的二维张量进行归一化处理,以从归一化处理结果中得到所述小段序列中每一个节点的octvalue概率分布;其中,n为小段序列中包含的节点个数,k为向上追溯的祖先节点个数,s为大于3的任意整数。
[0125]
需要说明的是,在第一reshape层与transformer网络结构之间,还可以包括positional encoding层,用于标注序列节点的位置。第一linear层与softmax层之间,还包括truncate层,用于截除大小为(n,255)的二维张量中的零节点部分,得到大小为(n0,255)的二维张量;以便softmax层中对大小为(n0,255)的二维张量进行归一化处理得到n0个节点的octvalue概率分布,n0为小段序列中非零节点个数。第一reshape层可以选择多层感知器(mpl)。
[0126]
本发明自注意力神经网络模型,用到类似transformer编码器结构,掩码张量mask按照分组解码顺序,掩盖掉解码过程中无法用到的信息,兼顾上下文信息以及解码复杂度,提高了压缩速度以及压缩率。
[0127]
在上述实施例的基础上,作为一种可选实施例,所述第一transformer网络结构和所述第二transformer网络结构一致,图2示例了第二transformer网络结构的结构示意图,如图2所示,包括由r个编码器堆叠而成;
[0128]
所述编码器包括第一个子层连接结构以及以所述第一个子层连接结构的输出为输入的第二个子层连接结构;
[0129]
所述第一个子层连接结构包括多头自注意力子层、规范化层和一个残差连接;
[0130]
所述第二个子层连接结构包括第二linear层、规范化层和一个残差连接;
[0131]
在所述第一transformer网络结构中,利用所述第一掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第一学习张量,包括:
[0132]
将所述二维张量作为所述第一transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第一掩码张量作为所述第一transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第一transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第一学习张量;
[0133]
在所述第二transformer网络结构中,利用所述第二掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第二学习张量,包括:
[0134]
将所述二维张量作为所述第二transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第二掩码张量作为所述第二transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第二transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第二学习张量。
[0135]
具体的,第二linear层可选多层感知器(mlp),第一transformer网络结构和第二transformer网络结构除输入掩码张量不同之外,其余完全相同,下面对第二transformer网络结构执行过程进行说明:
[0136]
因为编码器是串联堆叠的,第二transformer网络结构中首个编码器的输入为所述二维张量,第二transformer网络结构中最末一个编码器的输出为第二transformer网络结构的输出,第a个编码器输出为第a+1个编码器输入。
[0137]
第二transformer网络结构首个编码器处理所述二维张量的过程如下:
[0138]
在第一个子层连接结构中,利用多头自注意力子层对所述二维张量进行自注意力学习,得到加权二维张量;
[0139]
加权二维张量经规范化层处理后的结果,通过残差连接与所述二维张量相加,而后输入第二个子层连接结构;
[0140]
在第二个子层连接结构中,输入经第二linear层和规范化层处理后的结果,通过残差连接与输入相加,相加结果即为第二transformer网络结构首个编码器的输出。
[0141]
其它编码器类似,不再赘述。
[0142]
其中,利用多头自注意力子层对所述二维张量进行自注意力学习,得到加权二维张量,包括:
[0143]
将所述二维张量分裂为k张,每张为
[0144]
将k张二维张量作为一个整体,输入至第四linear层、第五linear层、第六linear层;第四linear层、第五linear层、第六linear层均可采用多层感知器(mlp),mlp可以让特征向量在不同维度之间做充分的交叉,让网络能抓取到更多的非线性特征和组合特征;
[0145]
第四linear层k个头的输出矩阵与第五linear层k个头的输出矩阵的转置带入第一matmui层进行矩阵相乘,得到k个头分别对应的大小为的矩阵;
[0146]
在scale层中将大小为(n,n)的第二掩码矩阵与k个头分别对应的大小为的矩阵按元素相乘,其结果经softmax层后,在第二matmui层中与第六linear层输出矩阵进
行矩阵相乘,拼接后即可得到加权二维张量。
[0147]
这里,多头注意力机制,有助于网络捕捉到丰富的特征信息,残差连接可以解决梯度小时的问题,还可以解决权重矩阵弱化的问题。
[0148]
本发明采用多头注意力机制,深度学习所述二维张量的特征,并基于掩码张量进行权重分配,提升octvalue概率分布学习准确度。
[0149]
在上述实施例的基础上,作为一种可选实施例,所述自注意力神经网络模型是在预训练神经网络的基础构建的;
[0150]
所述预训练神经网络,是以节点octvalue随机置零的八叉树节点小段序列样本训练的。
[0151]
本发明采用的pretrain策略收到bert启发,将输入样本的octvalue以50%概率置零,以原始octvalue作为目标训练预训练神经网络得到网络初始权值,而后在此基础上进行正式训练,实现表明经过预训练的自注意力神经网络模型效果明显超过没有预训练的自注意力神经网络模型。
[0152]
本发明预训练的操作提高了自注意力神经网络模型的学习效果以及泛化能力。
[0153]
综上,本方案引入的分层分组点云编解码策略能够有效提高深度学习无损点云压缩的压缩率,相比与sota的octattention,在lidar和object数据集上均有提高。更重要的是由于引入分层和分组方法,点云压缩速度相较octattention缩短97%,相当于原来的1/30,这一进步能够推进神经网络在点云压缩上的实际应用。
[0154]
此外,在本方案的基础上,采用更大的上下文窗口,调节层参数,通道数,注意力模块等,均可能达到更好的效果。同时,在实际应用中可以考虑并行实现神经网络的运算,能够更大幅提高压缩/解压速度。
[0155]
因此完整的点云压缩还包括解码部分,而解码部分是编码部分的反过程,因此解码流程如下所示:
[0156]
按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损解压缩,以得到解压缩八叉树;
[0157]
通过解压缩八叉树转换为点云结构;
[0158]
其中,对小段序列进行无损解压缩,是通过利用自注意力神经网络模型对小段序列进行分组解码的方式实现的。
[0159]
具体的,对小段序列进行无损解压缩,包括:
[0160]
初始化octvalue值为0;
[0161]
利用自注意力神经网络模型对小段序列第一组节点进行解码,得到小段序列第一组节点的octvalue;
[0162]
基于小段序列第一组节点的octvalue,利用自注意力神经网络模型对小段序列第二组节点进行解码,得到小段序列第二组节点的octvalue;
[0163]
基于小段序列第二组节点的octvalue,利用自注意力神经网络模型对小段序列第三组节点进行解码,得到小段序列第三组节点的octvalue;
[0164]
以此类推,得到小段序列解压缩结果。
[0165]
下面对本发明提供的基于深度学习的点云无损压缩装置进行描述,下文描述的基于深度学习的点云无损压缩装置与上文描述的基于深度学习的点云无损压缩方法可相互
对应参照。图3示例了基于深度学习的点云无损压缩装置的结构示意图,如图3所示,包括:
[0166]
八叉树表示模块21,用于利用八叉树表示目标点云;
[0167]
广度优先遍历模块22,用于对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;
[0168]
分离模块23,用于利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;
[0169]
压缩模块24,用于按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;
[0170]
其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
[0171]
在上述实施例的基础上,作为一种可选实施例,所述分离模块,具体用于:
[0172]
以上下文窗口长度为小段序列长度划分所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列。
[0173]
在上述实施例的基础上,作为一种可选实施例,所述压缩模块,具体包括:
[0174]
分组单元,用于对所述小段序列中的节点进行分组;
[0175]
确定单元,用于利用自注意力神经网络模型、第一掩码张量、第二掩码张量以及所述小段序列中每一个节点及其祖先节点的节点信息,确定所述小段序列中每一个节点的octvalue概率分布;
[0176]
分组编码单元,用于基于所述小段序列中每一个节点的octvalue概率分布,按照组号递增顺序对所述小段序列进行节点分组编码,得到所述小段序列的编码结果;
[0177]
其中,所述节点信息包括节点所处八叉树的层数、节点在父节点中的位置以及节点的octvalue;所述节点的octvalue为表示节点八个子空间点存在情况的八位二进制数;
[0178]
所述第一掩码张量旨在掩盖所述小段序列中所有节点的octvalue;所述第二掩码张量旨在于所述小段序列中每一个节点的octvalue概率分布的学习过程中,掩盖所述小段序列中组号大于相应节点所属组号的节点的octvalue。
[0179]
在上述实施例的基础上,作为一种可选实施例,所述分组单元,具体用于:
[0180]
令同组节点之间的节点序号相隔lm;
[0181]
其中,m为分组组数,l为大于等于1的整数。
[0182]
在上述实施例的基础上,作为一种可选实施例,所述确定单元,包括
[0183]
三维张量表示子模块,用于以三维张量形式表示所述小段序列中每一个节点及其祖先节点的节点信息;
[0184]
处理子模块,用于基于所述第一掩码张量和所述第二掩码张量,利用所述自注意力神经网络模型处理所述三维张量,得到所述小段序列中每一个节点的octvalue概率分布。
[0185]
在上述实施例的基础上,作为一种可选实施例,所述三维张量大小为(n,k,3),所述神经网络模块包括embedding层、第一reshape层、第一transformer网络结构、第二transformer网络结构、第二reshape层、第一linear层和softmax层;
[0186]
所述处理子模块,具体包括:
[0187]
张量转换子单元,用于在所述embedding层中将所述三维张量大小转换为(n,k,
s);
[0188]
第一整形子单元,用于在所述第一reshape层中将(n,k,s)大小的三维张量整形为(n,ks)的二维张量;
[0189]
第一学习子单元,用于在所述第一transformer网络结构中,利用所述第一掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第一学习张量;
[0190]
第二学习子单元,用于在所述第二transformer网络结构中,利用所述第二掩码张量对所述二维张量进行节点octvalue概率分布学习,得到大小为(n,ks)的第二学习张量;
[0191]
第二整形子单元,用于在所述第二reshape层中将所述第一学习张量和所述第二学习张量的加和结果整形为(n,ks)的二维张量;
[0192]
正则化子单元,用于利用所述第一linear层,对所述第二reshape层输出的二维张量进行正则化,得到大小为(n,255)的二维张量;
[0193]
归一化处理子单元,用于在softmax层中对大小为(n,255)的二维张量进行归一化处理,以从归一化处理结果中得到所述小段序列中每一个节点的octvalue概率分布;其中,n为小段序列中包含的节点个数,k为向上追溯的祖先节点个数,s为大于3的任意整数。
[0194]
在上述实施例的基础上,作为一种可选实施例,所述第一transformer网络结构和所述第二transformer网络结构结构一致,均由r个编码器串联堆叠而成;
[0195]
所述编码器包括第一个子层连接结构及其连接的第二个子层连接结构;
[0196]
所述第一个子层连接结构包括多头自注意力子层、规范化层和一个残差连接;
[0197]
所述第二个子层连接结构包括第二linear层、规范化层和一个残差连接;
[0198]
所述第一学习子单元,具体用于:
[0199]
将所述二维张量作为所述第一transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第一掩码张量作为所述第一transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第一transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第一学习张量;
[0200]
所述第二学习子单元,具体用于:
[0201]
将所述二维张量作为所述第二transformer网络结构内首个编码器的多头自注意力子层的输入,将所述第二掩码张量作为所述第二transformer网络结构中每一个编码器的多头自注意力子层的输入掩码张量,利用所述第二transformer网络结构学习所述二维张量进行节点octvalue概率分布,得到得到大小为(n,ks)的第二学习张量;
[0202]
在上述实施例的基础上,作为一种可选实施例,所述自注意力神经网络模型是在预训练神经网络的基础构建的;
[0203]
所述预训练神经网络,是以节点octvalue随机置零的八叉树节点小段序列样本训练的。
[0204]
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行基于深度学习的点云无损压缩方法,该方法包括:利用八叉树表示目标点云;对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;利用上下文窗口分离所述八叉树每一层对应的节点序列,得
到所述八叉树每一层对应的小段序列;按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
[0205]
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0206]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行基于深度学习的点云无损压缩方法,该方法包括:利用八叉树表示目标点云;对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行基于深度学习的点云无损压缩方法,该方法包括:利用八叉树表示目标点云;对所述八叉树进行广度优先遍历,得到所述八叉树每一层对应的节点序列;利用上下文窗口分离所述八叉树每一层对应的节点序列,得到所述八叉树每一层对应的小段序列;按照八叉树层级由上至下的顺序,对所述八叉树每一层对应的小段序列进行并行无损压缩,以得到所述目标点云的压缩结果;其中,对小段序列进行无损压缩,是通过利用自注意力神经网络模型对小段序列进行分组编码的方式实现的。
[0207]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0208]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0209]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1