基于树结构划分的点云编码方法和装置

未命名 08-06 阅读:66 评论:0


1.本技术涉及点云压缩技术领域,尤其涉及基于树结构划分的点云编码方法和装置。


背景技术:

2.点云由三维空间中的许多点组成,每个点除了自身在三维(3d)空间中的位置(即几何位置属性)外,还包含许多其他属性,例如,颜色、反射率、表面法线等,这些点之间不存在空间连接或排序的关系。点云可以广泛应用于文化遗产/博物馆、3d自由视点视频、实时沉浸式远程呈现、具有交互式视差的虚拟现实(virtual reality,vr)、移动地图绘制和自主导航等领域。而逼真的视觉体验的背后是庞大的点云数据作为支撑,显然,实时动态更新的点云数据相比于静态点云数据能够提供更好的交互体验。但是,在现有的传输带宽条件下,实时传输如此大的点云数据是一件非常具有挑战性的事情。因此,高效的点云压缩技术迫在眉睫。
3.相关技术中,每个点被量化在由体素组成的立方网格内,该立方网格对应一个节点,节点经过几何划分得到多个子节点,以及该节点的占位码(occupancy code),占位码中的每个比特对应一个子节点,若子节点为空节点,则其对应的比特置为0,若子节点为非空节点,则其对应的比特置为1。例如,节点经过八叉树(octree,ot)划分得到8个子节点,那么该节点的占位码包括8个比特,每个比特对应一个子节点。对占位码进行熵编码得到二进制码流。
4.但是,在进行几何划分的过程中,节点内的点的数量逐渐减少,当节点内点的数量少到一定程度,例如少于指定阈值(此时节点内的点称之为孤立点)时,进一步的几何划分会带来编码性能的下降。


技术实现要素:

5.本技术实施例提供一种基于树结构划分的点云编码方法和装置,可以提高孤立点的预测的准确度,提高点云的编码效率。
6.第一方面,本技术实施例提供一种基于树结构划分的点云编码方法,包括:获取待处理节点的目标信息;将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率;当目标概率大于或等于第二阈值时,对待处理节点进行编码;当目标概率小于第二阈值时,对待处理节点进行划分。
7.本技术实施例,通过将待处理节点的目标信息输入概率网络得到待处理节点包含孤立点的概率,从而基于该概率确定是对待处理节点进行编码还是对待处理节点进行划分,可以提高孤立点的预测的准确度,提高点云的编码效率。
8.根据上文内容,将待编码点云初始化为一个有外接长方体或正方体的数据结构,使用树结构(例如,八叉树)划分该长方体或正方体,以达到划分待编码点云的目的。八叉树上的每一个节点即为node,节点是包含或不包含点(point)的长方体或正方体。待处理节点
可以是将点云初始化为一个有外接长方体或正方体的数据结构后,对其所对应的树结构划分过程中的任意一个节点,待处理节点包含待编码点云中的一个或多个点,即本技术实施例中的待处理节点是非空节点。
9.可选的,待处理节点可以是预先设定的划分层(深度)中的任意一个非空节点。为了提高点云编码效率,本技术实施例中可以不用对树结构上的所有节点均进行如下处理,而是基于历史数据或经验预先确定要处理的划分层(深度)。
10.可选的,待处理节点不是叶节点。考虑到如下处理可以确定是对待处理节点直接编码还是对待处理节点进行划分,因此为了提高效率,可以只对非叶节点的节点进行如下处理,这是因为叶节点已经不需要再划分了,直接对其编码即可,因而不需要做前述判断。
11.目标信息可以包括以下至少一种信息:
12.(1)待处理节点的尺寸。
13.如上所述,待处理节点是包含点(point)的长方体或正方体,因此可以用长方体或正方体的长宽高来表示待处理节点的尺寸,例如,待处理节点由尺寸体素组成,因此待处理节点的尺寸为
14.(2)待处理节点中的指定点的坐标。
15.待处理节点包含一个或多个点,可以选取该一个或多个点的全部或部分,并获取其坐标,坐标例如可以是三维坐标(x,y,z)。指定点的坐标可以是指定点在根节点所在坐标系下的绝对坐标值,也可以是指定点在待处理节点中相对于待处理节点的左下角的点的相对坐标,本技术实施例对此不做具体限定。部分点例如可以是一个或多个点中位于最中央的点,或者可以是一个或多个点中位于最左侧/最右侧/最上方/最下方的点。需要说明的是,本技术实施例对指定点的选取方法不做具体限定。
16.(3)待处理节点的划分深度。
17.如上所述,树结构划分的节点具有划分的深度,对此不再赘述。
18.(4)待处理节点的父节点的占位码。
19.待处理节点的父节点的占位码可以参照上文描述,对此不再赘述。
20.(5)待处理节点的父节点的相邻节点的权重和。
21.节点的相邻节点可以是指该节点的上下左右前后六个方向的相邻节点。图6为相邻节点的示意图,如图6所示,标有1(20),2(21),4(22),8(23),16(24),32 (25)的节点可以视作中间深色节点的相邻节点。本技术实施例中,可以对节点的相邻节点设置索引值,例如,0-5,以该索引值作为2的幂次值,当某个相邻节点非空时,对该相邻节点赋权重值1,当某个相邻节点空时,对该相邻节点赋权重值0,加权求和得到节点的相邻节点的权重和,例如,节点的相邻节点的权重和sum=1
×25
+0
×24
+1
×23
+ 1
×22
+0
×
21+1
×
20=45。
22.(6)待处理节点的父节点和父节点的兄弟节点中非空节点的总数。
23.如果按照八叉树划分,待处理节点的父节点所在的划分层共有8个节点,该8个节点除了父节点外,其它的节点可以称作父节点的兄弟节点,这里获取的即为前述待处理节点的父节点所在的划分层的8个节点中非空节点的总数。
24.(7)待处理节点和待处理节点的兄弟节点中非空节点的总数。
25.同理,如果按照八叉树划分,待处理节点所在的划分层也有8个节点,该8个节点除了待处理节点外,其它的节点可以称作待处理节点的兄弟节点,这里获取的即为前述待处
理节点所在的划分层的8个节点中非空节点的总数。
26.(8)待处理节点在兄弟节点中的索引。
27.该索引可以是图1中的(a)所示的序号。
28.需要说明的是,本技术实施例中,待处理节点的目标信息可以是上述8种信息的其中一种或多种,此外待处理节点的目标信息还可以包括除上述8种信息之外的其它信息,只要该信息可以描述待处理节点中包含孤立点的关联性均可用作目标信息,本技术实施例对此不做具体限定。
29.概率网络的输入可以是待处理节点的目标信息,输出可以是目标概率,该目标概率指示待处理节点包含的点的数据小于或等于第一阈值的概率,亦即待处理节点中包含孤立点的概率,这是因为孤立点的定义可以是当节点中包含的点的数目小于或等于第一阈值时,该节点包含的点可以称作孤立点。第一阈值可以预先设定,例如第一阈值为1,2,3等值,本技术实施例对第一阈值的取值不做具体限定。
30.目标概率大于或等于第二阈值表示待处理节点包含孤立点的可能性较大,可以认为待处理节点包含的就是孤立点,此时即使待处理节点不是叶节点,如果继续划分并不会节省码流的比特,因此可以结束对待处理节点的划分,直接编码待处理节点中包含的孤立点。可选的,可以对待处理节点包含的一个或多个点的坐标进行编码。本技术实施例中,待处理节点包含的任意点的坐标可以采用任意一种用于点在三维空间内的位置的坐标体系,例如,三维坐标(x,y,z)。任意点的坐标可以是该任意点相对于根节点的左下角顶点的绝对坐标,例如,基于根节点建立三维坐标系,根节点的左下角顶点的坐标设为(0,0,0),该任意点在根节点中的位置所对应的x,y,z组成该任意点的绝对坐标;任意点的坐标也可以是该任意点相对于待处理节点的左下角顶点的相对坐标,例如,基于待处理节点建立三维坐标系,待处理节点的左下角顶点的坐标设为(0,0,0),该任意点在待处理节点中的位置所对应的x,y,z组成该任意点的相对坐标。或者,例如,基于根节点建立三维坐标系,根节点的左下角顶点的坐标设为(0,0,0),待处理节点在根节点中的位置所对应的x1,y1,z1组成待处理节点的绝对坐标,该任意点在根节点中的位置所对应的x2,y2,z2组成该任意点的绝对坐标,那么该任意点的相对坐标可以是(x2-x1,y2-y1,z2-z1)。需要说明的是,本技术实施例对任意点的坐标的表示方式不做具体限定。
31.目标概率小于第二阈值表示待处理节点包含孤立点的可能性较小,存在概率网络输出有误的情况,此时可以认为待处理节点不包含孤立点,那么可以对待处理节点继续进行划分。该情况下,可以针对划分后的待处理节点,根据待处理节点的各个子节点分别确定是否包含待编码点云中的点,从而得到各个子节点所对应的比特位的取值,进而得到待处理节点的占位码,对待处理节点的占位码进行编码。
32.在一种可能的实现方式中,当目标概率大于或等于第二阈值时,获取待处理节点包含的点的数目;当待处理节点包含的点的数目小于或等于第一阈值时,对待处理节点进行编码;当待处理节点包含的点的数目大于第一阈值时,对待处理节点进行划分。
33.在上述方法的基础上,本技术实施例在得到目标概率,并基于目标概率确定待处理节点包含孤立点的概率较大时,为了结果的准确性,可以再基于待处理节点包含的点的数目进一步明确待处理节点是否包含孤立点。因此,在目标概率大于或等于第二阈值的情况下,获取处理节点包含的点的数目。
34.待处理节点包含的点的数目小于或等于第一阈值表示待处理节点中包含的点的数目较少,例如,第一阈值设置为2,那么此时待处理节点中只包含1个或2个点,可以认为该1个或2个点为孤立点。在基于概率网络输出目标概率的基础上,进一步基于待处理节点包含的点的数目进一步明确待处理节点是否包含孤立点,可以准确地得到待处理节点包含孤立点的结论,如果继续划分并不会节省码流的比特,因此可以结束对待处理节点的划分,直接编码待处理节点中包含的孤立点,既可以节省码流,又可以提高编码效率。
35.在一种可能的实现方式中,编码端可以设置编码标识,用于指示解码端节点是否包含孤立点。可选的,当待处理节点包含的点的数目小于或等于第一阈值时,将编码标识置为 1;或者,当待处理节点包含的点的数目大于第一阈值时,将编码标识置为0;对编码标识进行编码。
36.需要说明的是,编码端也可以当待处理节点包含的点的数目小于或等于第一阈值时,将编码标识置为0;或者,当待处理节点包含的点的数目大于第一阈值时,将编码标识置为1。编码端也可以对编码标识置赋其他值,本技术实施例对此不做具体限定。
37.在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。特征提取模块可以由多个mlp层、bn层、relu层堆叠而成。特征聚合模块也可以包括多个 mlp层和relu层,但是不包括bn层。
38.第二方面,本技术实施例提供一种基于树结构划分的点云解码方法,包括:解析码流以得到待处理节点的目标信息;将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率;当目标概率大于或等于第二阈值时,对码流进行解码以得到待处理节点包含的一个或多个点;当目标概率小于第二阈值时,对码流进行解码以得到待处理节点的占位码。
39.解码端接收来自编码端的码流,解码可以得到待处理节点的目标信息。该目标信息可以参照上述描述,此处不再赘述。
40.解码端可以采用与编码端相同的方式获取目标概率。为了保持一致性,解码端和编码端采用相同的概率网络。概率网络可以由编码端或者云端或其它第三方设备训练得到,然后将该概率网络在编码端和解码端上同步。
41.本技术实施例中,解码端和编码端的判断逻辑是一致的,获取待处理节点的目标信息,将该目标信息输入概率网络得到目标概率,然后基于目标概率确定是解码码流得到待处理节点包含的一个或多个点,还是解码码流得到待处理节点的占位码。这样不再需要编码端专门在码流中编入编码标识,从而节省码流比特。
42.在一种可能的实现方式中,当目标概率大于或等于第二阈值时,对码流进行解码以得到待处理节点的编码标识;当编码标识为1时,对码流进行解码以得到待处理节点包含的一个或多个点;当编码标识为0时,对码流进行解码以得到待处理节点的占位码;当目标概率小于第二阈值时,对码流进行解码以得到待处理节点的占位码。
43.本技术实施例中,解码端和编码端的判断逻辑是一致的,获取待处理节点的目标信息,将该目标信息输入概率网络得到目标概率,如果目标概率小于第二阈值,则码流中不需要编码标识去占用比特,如果目标概率大于或等于第二阈值时码流中才有编码标识,从而节省码流比特。
44.在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。
45.第三方面,本技术提供一种点云编码装置,包括:获取模块,用于获取待处理节点的目标信息,所述待处理节点包含待编码点云中的一个或多个点;概率预测模块,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;编码模块,用于当所述目标概率大于或等于第二阈值时,对所述待处理节点进行编码。
46.在一种可能的实现方式中,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。
47.在一种可能的实现方式中,所述编码模块,还用于当所述目标概率小于所述第二阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。
48.在一种可能的实现方式中,所述编码模块,具体用于获取所述待处理节点包含的点的数目;当所述待处理节点包含的点的数目小于或等于所述第一阈值时,对所述待处理节点包含的所述一个或多个点进行编码。
49.在一种可能的实现方式中,所述编码模块,还用于当所述待处理节点包含的点的数目大于所述第一阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。
50.在一种可能的实现方式中,所述编码模块,具体用于对所述待处理节点包含的所述一个或多个点的坐标进行编码。
51.在一种可能的实现方式中,所述编码模块,还用于当所述待处理节点包含的点的数目小于或等于所述第一阈值时,将编码标识置为1;或者,当所述待处理节点包含的点的数目大于所述第一阈值时,将编码标识置为0;对所述编码标识进行编码。
52.在一种可能的实现方式中,所述待处理节点是预先设定的划分层中的任意一个非空节点。
53.在一种可能的实现方式中,还包括:训练模块,用于选取预先设定的划分层中的任意一个非空节点;根据所述任意一个非空节点的所述目标信息训练以得到所述概率网络。
54.在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。
55.在一种可能的实现方式中,所述待处理节点不是叶节点。
56.第四方面,本技术提供一种点云解码装置,包括:解码模块,用于解析码流以得到待处理节点的目标信息;概率预测模块,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;所述解码模块,还用于当所述目标概率大于或等于第二阈值时,对所述码流进行解码以得到所述待处理节点包含的一个或多个点。
57.在一种可能的实现方式中,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的
兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。
58.在一种可能的实现方式中,所述解码模块,还用于当所述目标概率小于所述第二阈值时,对所述码流进行解码以得到所述待处理节点的占位码。
59.在一种可能的实现方式中,所述解码模块,具体用于对所述码流进行解码以得到所述待处理节点的编码标识;当所述编码标识为1时,对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点。
60.在一种可能的实现方式中,所述解码模块,具体用于当所述编码标识为0时,对所述码流进行解码以得到所述待处理节点的占位码。
61.在一种可能的实现方式中,所述解码模块,具体用于对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点的坐标。
62.在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。
63.第五方面,本技术提供一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行上述第一方面中任一项所述的方法。
64.第六方面,本技术提供一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行上述第二方面中任一项所述的方法。
65.第七方面,本技术提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一至二方面中任一项所述的方法。
66.第八方面,本技术提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述第一至二方面任意一项所述的方法。
67.第九方面,本技术实施例提供一种芯片,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于调用所述存储器中存储的计算机指令,以执行如上述第一至二方面中任一项所述的方法。
附图说明
68.图1为节点和占位码的示意图;
69.图2a为本技术实施例的编解码系统10的示例性框图;
70.图2b是编解码系统10的实例的说明图;
71.图3为本发明实施例提供的译码设备400的示意图;
72.图4为示例性实施例提供的装置50的简化框图;
73.图5为本技术实施例的基于树结构划分的点云编码方法的过程500的流程图;
74.图6为相邻节点的示意图;
75.图7-图9为特征提取模块的示意图;
76.图10为特征聚合模块的示意图;
77.图11和图12为预测精度示意图;
78.图13为本技术实施例的基于树结构划分的点云编码方法的过程1300的流程图;
79.图14为本技术实施例的基于树结构划分的点云编码方法的过程1400的流程图;
80.图15为本技术实施例的基于树结构划分的点云编码方法的过程1500的流程图;
81.图16为本技术实施例编码装置1600的一个示例性的结构示意图;
82.图17为本技术实施例解码装置1700的一个示例性的结构示意图。
具体实施方式
83.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
84.本技术的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
85.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/ 或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
86.以下是本技术实施例涉及到的术语和技术的说明:
87.1、点云(point cloud):点云是某个坐标系下的点的数据集。其包含了丰富的信息,例如,点的三维坐标(x,y,z)、颜色、分类值、强度值等信息。使用密集的点云可以还原三维的现实世界。
88.2、点(point):组成点云的任意一个点。一个点云是由多个点组成,用于表示三维目标的数据结构。
89.3、节点(node):将点云初始化为一个有外接长方体或正方体的数据结构,使用树结构(例如,八叉树)划分该长方体或正方体,以达到划分点云的目的。八叉树上的每一个节点即为node,节点是包含或不包含点(point)的长方体或正方体。
90.4、叶节点(leaf node):使用树结构划分点云的过程中,不可再进行划分的节点。
91.5、占位码(occupancy code):使用树结构(例如八叉树)划分点云外接的长方体或正方体,点云中的多个点会被划分至不同的子区域内,每一个子区域也是一个长方体或正方体,称作子节点。划分前的父节点的占位码包含多个比特,每个比特对应一个划分后的子节点,若子节点为空节点(其中不包含点),则其对应的比特置为0,若子节点为非空节点(其中包含一个或多个点),则其对应的比特置为1。
92.图1为节点和占位码的示意图,如图1中的(a)所示,父节点经过八叉树划分后得到8个子节点,该8个子节点的序号是0-7,深色子节点内包含点云中的点,称该子节点为非空子节点(non-empty sub-node),白色子节点内不包含点云中的点,称该子节点为空子节点(empty sub-node)。非空子节点可以继续进行八叉树划分,而非空子节点不能进一步划分。
93.为了解码端能够解码每个节点的划分情况,针对每个子节点,使用一个比特(bit)表示该子节点是否非空,bit值为1表示该子节点非空,bit值为0表示该子节点空。按照图 1中8个子节点的序号先后顺序,将8个子节点的bit值组成一个8bit的二进制数,将其称作父节点的占位码(occupancy code),也可以称作占位地图(occupancy map)。图1 中的(a)所示的父节点的占位码为10000001,如图1中的(c)所示。
94.如图1中的(b)所示,将图1中的(a)中的子节点0和子节点7分别作为父节点再进行八叉树划分,得到这两个父节点各自的8个子节点,深色子节点内包含点云中的点,称该子节点为非空子节点(non-empty sub-node),白色子节点内不包含点云中的点,称该子节点为空子节点(empty sub-node)。根据该两个父节点各自的8个子节点是否为空节点得到该两个父节点的占位码,序号0的占位码为11000101,序号7的占位码为 10001101,如图1中的(c)所示。
95.如图1中的(c)所示,树结构中的多个节点中,根节点为深度0(depth 0),对根节点划分得到的子节点为深度1(depth 1),对深度1的节点划分得到的子节点为深度2(depth2)。深度亦可以称作划分层,以划分层的层号表示节点的深度。
96.6、孤立点:点云在采用树结构划分的过程中,由于点云中的点的不规则分布,每个节点内的点数不尽相同,并且随着划分的进行,节点内包含的点的数目逐渐减少。一般而言,当节点包含的点的数目不大于2时,该节点内的点可以称作孤立点。
97.由于本技术实施例涉及神经网络的应用,为了便于理解,下面先对本技术实施例所使用到的相关名词或术语进行解释说明:
98.1、神经网络
99.神经网络(neural network,nn)是机器学习模型,神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
[0100][0101]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。 f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是relu等非线性函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部感受野(local receptive field)相连,来提取局部感受野的特征,局部感受野可以是由若干个神经单元组成的区域。
[0102]
2、多层感知器(multi-layer perception,mlp)
[0103]
mlp是一种简单的深度神经网络(deep neural network,dnn)(不同层之间是全连接的),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,
w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0104]
3、卷积神经网络
[0105]
卷积神经网络(convolutional neuron network,cnn)是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈 (feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。卷积神经网络包含了一个由卷积层和池化层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。
[0106]
卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。卷积层可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络进行正确的预测。当卷积神经网络有多个卷积层的时候,初始的卷积层往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络深度的加深,越往后的卷积层提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于
待解决的问题。
[0107]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0108]
在经过卷积层/池化层的处理后,卷积神经网络还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络需要利用神经网络层来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层中可以包括多层隐含层,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0109]
可选的,在神经网络层中的多层隐含层之后,还包括整个卷积神经网络的输出层,该输出层具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络的前向传播完成,反向传播就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络的损失,及卷积神经网络通过输出层输出的结果和理想结果之间的误差。
[0110]
4、循环神经网络
[0111]
循环神经网络(recurrent neural networks,rnn)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将rnn进行网络展开,那么其中的参数,如w,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法(back propagation through time,bptt)。
[0112]
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn 就应运
而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。
[0113]
5、损失函数
[0114]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0115]
6、反向传播算法
[0116]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
[0117]
7、生成式对抗网络
[0118]
生成式对抗网络(generative adversarial networks,gan)是一种深度学习模型。该模型中至少包括两个模块:一个模块是生成模型(generative model),另一个模块是判别模型(discriminative model),通过这两个模块互相博弈学习,从而产生更好的输出。生成模型和判别模型都可以是神经网络,具体可以是深度神经网络,或者卷积神经网络。gan 的基本原理如下:以生成图片的gan为例,假设有两个网络,g(generator)和d (discriminator),其中g是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做g(z);d是一个判别网络,用于判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出d(x)代表x为真实图片的概率,如果为1,就代表130%是真实的图片,如果为0,就代表不可能是真实的图片。在对该生成式对抗网络进行训练的过程中,生成网络g的目标就是尽可能生成真实的图片去欺骗判别网络d,而判别网络d的目标就是尽量把g生成的图片和真实的图片区分开来。这样,g和d就构成了一个动态的“博弈”过程,也即“生成式对抗网络”中的“对抗”。最后博弈的结果,在理想的状态下,g可以生成足以“以假乱真”的图片g(z),而d难以判定g生成的图片究竟是不是真实的,即d(g(z))=0.5。这样就得到了一个优异的生成模型g,它可以用来生成图片。
[0119]
图2a为本技术实施例的编解码系统10的示例性框图。编解码系统10中的压缩器12 和解压缩器16代表可用于根据本技术实施例中描述的各种示例执行各技术的设备等。
[0120]
如图2a所示,编解码系统10包括编码端和解码端,编码端用于压缩点云数据,将压缩后得到的码流提供给解码端,解码端对码流进行解压缩得到重建的点云数据。
[0121]
编码端包括压缩器12,另外即可选地,可包括数据源11和通信接口13。
[0122]
数据源11可以包括或可以为任意类型的激光雷达,用于获取测量数据。数据源11也可以包括或可以为任意类型的内存或存储器。数据源11输出的数据为点云数据。
[0123]
压缩器12用于接收点云数据,对点云数据压缩后得到码流。
[0124]
通信接口13可用于接收码流,并通过通信信道14向解码端发送该码流。
[0125]
解码端包括解压缩器16,另外即可选地,可包括通信接口15和后处理器17。
[0126]
通信接口15用于直接从编码端或从存储设备等任意其它设备接收码流,并将码流提供给解压缩器16。
[0127]
通信接口13和通信接口15可用于通过编码端与解码端之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收码流。
[0128]
通信接口13和通信接口15均可配置为如图2a中从编码端指向解码端的对应通信信道14的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
[0129]
后处理器17用于对解码后的数据(也称为重建后的点云数据)进行后处理,得到后处理点云数据。后处理器17执行的后处理可以包括例如udp数据/分组数据到点云的转换。
[0130]
尽管图2a示出了编码端和解码端作为独立的设备,但设备实施例也可以同时包括编码设备和解码设备或同时包括编码和解码的功能,即同时包括编码端或对应功能和解码端或对应功能。在这些实施例中,编码端或对应功能和解码端或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
[0131]
根据描述,图2a所示的编码端和/或解码端中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
[0132]
编码端和解码端可包括各种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、智能手机、平板或平板电脑、台式计算机,等等,并可以不使用或使用任意类型的操作系统。在一些情况下,编码端和解码端可配备用于无线通信的组件。因此,编码端和解码端可以是无线通信设备。
[0133]
需要说明的是,图2a所示的编解码系统10仅仅是示例性的,在一些情况下,编码端和解码端可以应用于同一设备或不同设备,本技术实施例对点云数据的编解码系统不做具体限定。
[0134]
编解码系统10还包括训练引擎18,训练引擎18用于训练概率网络,该概率网络用于压缩器12或解压缩器16,以实现点云的编解码。需要说明的是,训练引擎18可以是独立于编码端和解码端的独立的执行主体,训练引擎18也可以是应用于编码端的一个组件/模块,训练引擎18还可以是应用于解码端的一个组件/模块,本技术实施例对此不做具体限定。
[0135]
本技术实施例中训练数据可以存入数据库(未示意)中,训练引擎18基于训练数据训练得到概率网络。
[0136]
尽管图2a示出了编码端和解码端作为独立的设备,但设备实施例也可以同时包括编码端和解码端或同时包括编码端和解码端的功能,即同时包括编码端或对应功能和解码端或对应功能。在这些实施例中,编码端或对应功能和解码端或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
的解压缩器20和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的解压缩器20可以包含(通过处理电路46或内存存储器44 实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的解压缩器20,以实施参照图3和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。
[0145]
在一些实例中,天线42可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。视频译码系统40还可包含耦合至天线42并用于解码经编码比特流的解压缩器20。显示设备45用于呈现视频帧。
[0146]
应理解,本技术实施例中对于参考压缩器20所描述的实例,解压缩器20可以用于执行相反过程。关于信令语法元素,解压缩器20可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,压缩器20可以将语法元素熵编码成经编码视频比特流。在此类实例中,解压缩器20可以解析这种语法元素,并相应地解码相关视频数据。
[0147]
为便于描述,参考通用视频编码(versatile video coding,vvc)参考软件或由itu-t 视频编码专家组(video coding experts group,vceg)和iso/iec运动图像专家组(motionpicture experts group,mpeg)的视频编码联合工作组(joint collaboration team on videocoding,jct-vc)开发的高性能视频编码(high-efficiency video coding,hevc)描述本发明实施例。本领域普通技术人员理解本发明实施例不限于hevc或vvc。
[0148]
图3为本发明实施例提供的译码设备400的示意图。译码设备400适用于实现本文描述的公开实施例。在一个实施例中,译码设备400可以是解压缩器,例如图2a中的解压缩器16,也可以是压缩器,例如图2a中的压缩器12。
[0149]
译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(receiverunit,rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit, cpu)430;例如,这里的处理器430可以是神经网络处理器430;用于传输数据的发送单元(transmitter unit,tx)440和出端口450(或输出端口450);用于存储数据的存储器 460。译码设备400还可包括耦合到入端口410、接收单元420、发送单元440和出端口 450的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光信号或电信号的出口或入口。
[0150]
处理器430通过硬件和软件实现。处理器430可实现为一个或多个处理器芯片、核(例如,多核处理器)、fpga、asic和dsp。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470(例如,基于神经网络nn的译码模块470)。译码模块470实施上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种编码操作。因此,通过译码模块470为译码设备400 的功能提供了实质性的改进,并且影响了译码设备400到不同状态的切换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
[0151]
存储器460包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储此类程序,并且存储在程序执行过程中读取的指令和数据。
存储器460可以是易失性和/或非易失性的,可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternarycontent-addressable memory,tcam)和/或静态随机存取存储器(static random-accessmemory,sram)。
[0152]
图4为示例性实施例提供的装置50的简化框图,装置50可用作图2a中的编码端和解码端中的任一个或两个。
[0153]
装置50中的处理器51可以是中央处理器。或者,处理器51可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型设备或多个设备。虽然可以使用如图所示的处理器51等单个处理器来实施已公开的实现方式,但使用一个以上的处理器速度更快和效率更高。
[0154]
在一种实现方式中,装置50中的存储器52可以是只读存储器(rom)设备或随机存取存储器(ram)设备。任何其它合适类型的存储设备都可以用作存储器52。存储器 52可以包括处理器51通过总线56访问的代码和数据53。存储器52还可包括操作系统 54和应用程序55,应用程序55包括允许处理器51执行本文所述方法的至少一个程序。例如,应用程序55可以包括应用1至n,还包括执行本文所述方法的点云压缩应用。
[0155]
装置50还可以包括一个或多个输出设备,例如显示器57。在一个示例中,显示器57 可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器57可以通过总线56耦合到处理器51。
[0156]
虽然装置50中的总线56在本文中描述为单个总线,但是总线56可以包括多个总线。此外,辅助储存器可以直接耦合到装置50的其它组件或通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置50可以具有各种各样的配置。
[0157]
图5为本技术实施例的基于树结构划分的点云编码方法的过程500的流程图。过程 500可由上述实施例中的编码端执行。过程500描述为一系列的步骤或操作,应当理解的是,过程500可以以各种顺序执行和/或同时发生,不限于图5所示的执行顺序。过程500 包括如下步骤:
[0158]
步骤501、获取待处理节点的目标信息。
[0159]
根据上文内容,将待编码点云初始化为一个有外接长方体或正方体的数据结构,使用树结构(例如,八叉树)划分该长方体或正方体,以达到划分待编码点云的目的。八叉树上的每一个节点即为node,节点是包含或不包含点(point)的长方体或正方体。待处理节点可以是将点云初始化为一个有外接长方体或正方体的数据结构后,对其所对应的树结构划分过程中任意一个节点,待处理节点包含待编码点云中的一个或多个点,即本技术实施例中的待处理节点要是非空节点。
[0160]
可选的,待处理节点可以是预先设定的划分层(深度)中的任意一个非空节点。为了提高点云编码效率,本技术实施例中可以不用对树结构上的所有节点均进行如下处理,而是基于历史数据或经验预先确定要处理的划分层(深度),例如划分层3,或者0-最大层中的中间层,只对位于该划分层中的节点进行如下处理。需要说明的是,本技术实施例对要处理的划分层的确定方法不做具体限定。
[0161]
本技术实施例可以只对部分节点进行如下处理,可以提高效率。
[0162]
可选的,待处理节点不是叶节点。考虑到如下处理可以确定是对待处理节点直接
编码还是对待处理节点进行划分,因此为了提高效率,可以只对非叶节点的节点进行如下处理,这是因为叶节点已经不需要再划分了,直接对其编码即可,因而不需要做前述判断。
[0163]
目标信息可以包括以下至少一种信息:
[0164]
(1)待处理节点的尺寸。
[0165]
如上所述,待处理节点是包含点(point)的长方体或正方体,因此可以用长方体或正方体的长宽高来表示待处理节点的尺寸,例如,待处理节点由尺寸体素组成,因此待处理节点的尺寸为
[0166]
(2)待处理节点中的指定点的坐标。
[0167]
待处理节点包含一个或多个点,可以选取该一个或多个点的全部或部分,并获取其坐标,坐标例如可以是三维坐标(x,y,z)。指定点的坐标可以是指定点在根节点所在坐标系下的绝对坐标值,也可以是指定点在待处理节点中相对于待处理节点的左下角的点的相对坐标,本技术实施例对此不做具体限定。部分点例如可以是一个或多个点中位于最中央的点,或者可以是一个或多个点中位于最左侧/最右侧/最上方/最下方的点。需要说明的是,本技术实施例对指定点的选取方法不做具体限定。
[0168]
(3)待处理节点的划分深度。
[0169]
如上所述,树结构划分的节点具有划分的深度,对此不再赘述。
[0170]
(4)待处理节点的父节点的占位码。
[0171]
待处理节点的父节点的占位码可以参照上文描述,对此不再赘述。
[0172]
(5)待处理节点的父节点的相邻节点的权重和。
[0173]
节点的相邻节点可以是指该节点的上下左右前后六个方向的相邻节点。图6为相邻节点的示意图,如图6所示,标有1(20),2(21),4(22),8(23),16(24),32 (25)的节点可以视作中间深色节点的相邻节点。本技术实施例中,可以对节点的相邻节点设置索引值,例如,0-5,以该索引值作为2的幂次值,当某个相邻节点非空时,对该相邻节点赋权重值1,当某个相邻节点空时,对该相邻节点赋权重值0,加权求和得到节点的相邻节点的权重和,例如,节点的相邻节点的权重和sum=1
×25
+0
×24
+1
×23
+ 1
×22
+0
×
21+1
×
20=45。
[0174]
(6)待处理节点的父节点和父节点的兄弟节点中非空节点的总数。
[0175]
如果按照八叉树划分,待处理节点的父节点所在的划分层共有8个节点,该8个节点除了父节点外,其它的节点可以称作父节点的兄弟节点,这里获取的即为前述8个节点中非空节点的总数。
[0176]
(7)待处理节点和待处理节点的兄弟节点中非空节点的总数。
[0177]
同理,如果按照八叉树划分,待处理节点所在的划分层也有8个节点,该8个节点除了待处理节点外,其它的节点可以称作待处理节点的兄弟节点,这里获取的即为前述8个节点中非空节点的总数。
[0178]
(8)待处理节点在兄弟节点中的索引。
[0179]
该索引可以是图1中的(a)所示的序号。
[0180]
需要说明的是,本技术实施例中,待处理节点的目标信息可以是上述8种信息的其中一种或多种,此外待处理节点的目标信息还可以包括除上述8种信息之外的其它信息,只要该信息可以描述待处理节点中包含孤立点的关联性均可用作目标信息,本技术实施例对此不做具体限定。
[0181]
步骤502、将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率。
[0182]
概率网络的输入可以是待处理节点的目标信息,输出可以是目标概率,该目标概率指示待处理节点包含的点的数据小于或等于第一阈值的概率,亦即待处理节点中包含孤立点的概率,这是因为孤立点的定义可以是当节点中包含的点的数目小于或等于第一阈值时,该节点包含的点可以称作孤立点。第一阈值可以预先设定,例如第一阈值为2,本技术实施例对第一阈值的取值不做具体限定。
[0183]
在一种可能的实现方式中,可以选取预先设定的划分层中的任意一个非空节点,根据该任意一个非空节点的目标信息训练得到概率网络。概率网络可以包括特征提取模块和特征聚合模块。
[0184]
图7-图9为特征提取模块的示意图,如图7-图9所示,mlps包括多个mlp层、bn 层、relu层堆叠。本实施例的特征提取模块具有以下特点:
[0185]
1.层次化特征提取与聚合。聚合中间层特征,避免部分特征层信息丢失。
[0186]
2.自适应特征加权聚合。为每一层输出特征自适应赋予权重,提升网络输出特征的表现力。
[0187]
3.树结构特征聚合。聚合父节点、爷爷节点等特征,拟合上述节点同当前节点的特征的关联性。
[0188]
图10为特征聚合模块的示意图,如图10所示,h和x分别代表来自父节点和待处理节点的特征。
[0189]
步骤503、当目标概率大于或等于第二阈值时,对待处理节点进行编码。
[0190]
目标概率大于或等于第二阈值表示待处理节点包含孤立点的可能性较大,可以认为待处理节点包含的就是孤立点,此时即使待处理节点不是叶节点,如果继续划分并不会节省码流的比特,因此可以结束对待处理节点的划分,直接编码待处理节点中包含的孤立点。可选的,可以对待处理节点包含的一个或多个点的坐标进行编码。本技术实施例中,待处理节点包含的任意点的坐标可以采用任意一种用于点在三维空间内的位置的坐标体系,例如,三维坐标(x,y,z)。任意点的坐标可以是该任意点相对于根节点的左下角顶点的绝对坐标,例如,基于根节点建立三维坐标系,根节点的左下角顶点的坐标设为(0,0,0),该任意点在根节点中的位置所对应的x,y,z组成该任意点的绝对坐标;任意点的坐标也可以是该任意点相对于待处理节点的左下角顶点的相对坐标,例如,基于待处理节点建立三维坐标系,待处理节点的左下角顶点的坐标设为(0,0,0),该任意点在待处理节点中的位置所对应的x,y,z组成该任意点的相对坐标。或者,例如,基于根节点建立三维坐标系,根节点的左下角顶点的坐标设为(0,0,0),待处理节点在根节点中的位置所对应的x1,y1,z1组成待处理节点的绝对坐标,该任意点在根节点中的位置所对应的x2,y2,z2组成该任意点的绝对坐标,那么该任意点的相对坐标可以是(x2-x1,y2-y1,z2-z1)。需要说明的是,本技术实施例对任意点的坐标的表示方式不做具体限定。
[0191]
步骤504、当目标概率小于第二阈值时,对待处理节点进行划分。
[0192]
目标概率小于第二阈值表示待处理节点包含孤立点的可能性较小,存在概率网络输出有误的情况,此时可以认为待处理节点不包含孤立点,那么可以对待处理节点继续进行划分。该情况下,可以针对划分后的待处理节点,根据待处理节点的各个子节点分别确定
是否包含待编码点云中的点,从而得到各个子节点所对应的比特位的取值,进而得到待处理节点的占位码,对待处理节点的占位码进行编码,占位码的获取可以参照图1所示实施例。
[0193]
本技术实施例可以显著提升点云中孤立点的预测的准确度,图11和图12为预测精度示意图,如图11和图12所示,仅示范了部分划分层的节点是否包含孤立点的预测,其中蓝色线是使用可推断的直接编码模式(inferred direct code mode,idcm)方案预测孤立点的准确度,红色线条是部分划分层使用本技术实施例的方法预测孤立点的准确度,剩余层使用idcm方案预测孤立点的准确度。从图中可以看出,本技术实施例能够显著提升点云中孤立点的预测的准确度。
[0194]
本技术实施例,通过将待处理节点的目标信息输入概率网络得到待处理节点包含孤立点的概率,从而基于该概率确定是对待处理节点进行编码还是对待处理节点进行划分,可以提高孤立点的预测的准确度,提高点云的编码效率。
[0195]
图13为本技术实施例的基于树结构划分的点云编码方法的过程1300的流程图。过程 1300可由上述实施例中的编码端执行。过程1300描述为一系列的步骤或操作,应当理解的是,过程1300可以以各种顺序执行和/或同时发生,不限于图13所示的执行顺序。过程1300包括如下步骤:
[0196]
步骤1301、获取待处理节点的目标信息。
[0197]
步骤1301可以参照图5所示实施例的步骤501,此处不再赘述。
[0198]
步骤1302、将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率。
[0199]
步骤1302可以参照图5所示实施例的步骤502,此处不再赘述。
[0200]
步骤1303、当目标概率大于或等于第二阈值时,获取待处理节点包含的点的数目。
[0201]
在图5所示实施例的步骤503的基础上,本技术实施例在得到目标概率,并基于目标概率确定待处理节点包含孤立点的概率较大时,为了结果的准确性,可以再基于待处理节点包含的点的数目进一步明确待处理节点是否包含孤立点。因此,在目标概率大于或等于第二阈值的情况下,获取处理节点包含的点的数目。
[0202]
步骤1304、当待处理节点包含的点的数目小于或等于第一阈值时,对待处理节点进行编码。
[0203]
待处理节点包含的点的数目小于或等于第一阈值表示待处理节点中包含的点的数目较少,例如,第一阈值设置为2,那么此时待处理节点中只包含1个或2个点,可以认为该1个或2个点为孤立点。在基于概率网络输出目标概率的基础上,进一步基于待处理节点包含的点的数目进一步明确待处理节点是否包含孤立点,可以准确地得到待处理节点包含孤立点的结论,如果继续划分并不会节省码流的比特,因此可以结束对待处理节点的划分,直接编码待处理节点中包含的孤立点,既可以节省码流,又可以提高编码效率。
[0204]
步骤1305、当待处理节点包含的点的数目大于第一阈值时,对待处理节点进行划分。
[0205]
待处理节点包含的点的数目大于第一阈值表示待处理节点中包含的点的数目较多,还不能认为待处理节点包含的一个或多个点是孤立点,此时的处理过程可以参照图5所示实施例的步骤504。
[0206]
在一种可能的实现方式中,编码端可以设置编码标识,用于指示解码端节点是否包含孤立点。可选的,当待处理节点包含的点的数目小于或等于第一阈值时,将编码标识置为 1;或者,当待处理节点包含的点的数目大于第一阈值时,将编码标识置为0;对编码标识进行编码。
[0207]
需要说明的是,编码端也可以当待处理节点包含的点的数目小于或等于第一阈值时,将编码标识置为0;或者,当待处理节点包含的点的数目大于第一阈值时,将编码标识置为1。编码端也可以对编码标识置赋其他值,本技术实施例对此不做具体限定。
[0208]
步骤1306、当目标概率小于第二阈值时,对待处理节点进行划分。
[0209]
本技术实施例,通过将待处理节点的目标信息输入概率网络得到待处理节点包含孤立点的概率,当概率较大时,进一步基于待处理节点包含的点的数目进一步明确待处理节点是否包含孤立点,可以准确地得到待处理节点包含孤立点的结论,从而确定是对待处理节点进行编码还是对待处理节点进行划分,可以提高孤立点的预测的准确度,提高点云的编码效率。
[0210]
图14为本技术实施例的基于树结构划分的点云解码方法的过程1400的流程图。过程 1400可由上述实施例中的解码端执行。过程1400描述为一系列的步骤或操作,应当理解的是,过程1400可以以各种顺序执行和/或同时发生,不限于图14所示的执行顺序。过程1400包括如下步骤:
[0211]
步骤1401、解析码流以得到待处理节点的目标信息。
[0212]
解码端接收来自编码端的码流,解码可以得到待处理节点的目标信息。该目标信息可以参照图5所示实施例的步骤501的描述,此处不再赘述。
[0213]
步骤1402、将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率。
[0214]
步骤1402可以参照图5所示实施例的步骤502,即解码端可以采用与编码端相同的方式获取目标概率。为了保持一致性,解码端和编码端采用相同的概率网络。概率网络可以由编码端或者云端或其它第三方设备训练得到,然后将该概率网络在编码端和解码端上同步。
[0215]
步骤1403、当目标概率大于或等于第二阈值时,对码流进行解码以得到待处理节点包含的一个或多个点。
[0216]
步骤1403可以参照图5所示实施例的步骤503,此处不再赘述。
[0217]
步骤1404、当目标概率小于第二阈值时,对码流进行解码以得到待处理节点的占位码。
[0218]
步骤1404可以参照图5所示实施例的步骤504,此处不再赘述。
[0219]
本技术实施例中,解码端和编码端的判断逻辑是一致的,获取待处理节点的目标信息,将该目标信息输入概率网络得到目标概率,然后基于目标概率确定是解码码流得到待处理节点包含的一个或多个点,还是解码码流得到待处理节点的占位码。这样不再需要编码端专门在码流中编入编码标识,从而节省码流比特。
[0220]
图15为本技术实施例的基于树结构划分的点云编码方法的过程1500的流程图。过程 1500可由上述实施例中的解码端执行。过程1500描述为一系列的步骤或操作,应当理解的是,过程1500可以以各种顺序执行和/或同时发生,不限于图15所示的执行顺序。过程
1500包括如下步骤:
[0221]
步骤1501、解析码流以得到待处理节点的目标信息。
[0222]
步骤1501可以参照图14所示实施例的步骤1401的描述,此处不再赘述。
[0223]
步骤1502、将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率。
[0224]
步骤1502可以参照图14所示实施例的步骤1402,此处不再赘述。
[0225]
步骤1503、当目标概率大于或等于第二阈值时,对码流进行解码以得到待处理节点的编码标识。
[0226]
与图13所示实施例类似,考虑到概率网络可能存在误差,因此解码端可以在判断出目标概率大于或等于第二阈值时,进一步解码码流得到编码标识,然后根据该编码标识确定解码后续码流得到的是待处理节点包含的一个或多个点,还是待处理节点的占位码。
[0227]
步骤1504、当编码标识为1时,对码流进行解码以得到待处理节点包含的一个或多个点。
[0228]
步骤1505、当编码标识为0时,对码流进行解码以得到待处理节点的占位码。
[0229]
步骤1506、当目标概率小于第二阈值时,对码流进行解码以得到待处理节点的占位码。
[0230]
步骤1504可以参照图14所示实施例的步骤1404,此处不再赘述。
[0231]
本技术实施例中,解码端和编码端的判断逻辑是一致的,获取待处理节点的目标信息,将该目标信息输入概率网络得到目标概率,如果目标概率小于第二阈值,则码流中不需要编码标识去占用比特,如果目标概率大于或等于第二阈值时码流中才有编码标识,从而节省码流比特。
[0232]
图16为本技术实施例编码装置1600的一个示例性的结构示意图,如图16所示,本实施例的装置1600可以应用于压缩器12。该装置1600可以包括:获取模块1601、概率预测模块1602、编码模块1603和训练模块1604。需要说明的是,训练模块1604可以是指上述图2a所示实施例中的训练引擎18。其中,
[0233]
获取模块1601,用于获取待处理节点的目标信息,所述待处理节点包含待编码点云中的一个或多个点;概率预测模块1602,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;编码模块1603,用于当所述目标概率大于或等于第二阈值时,对所述待处理节点进行编码。
[0234]
在一种可能的实现方式中,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。
[0235]
在一种可能的实现方式中,所述编码模块1603,还用于当所述目标概率小于所述第二阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。
[0236]
在一种可能的实现方式中,所述编码模块1603,具体用于获取所述待处理节点包含的点的数目;当所述待处理节点包含的点的数目小于或等于所述第一阈值时,对所述待
处理节点包含的所述一个或多个点进行编码。
[0237]
在一种可能的实现方式中,所述编码模块1603,还用于当所述待处理节点包含的点的数目大于所述第一阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。
[0238]
在一种可能的实现方式中,所述编码模块1603,具体用于对所述待处理节点包含的所述一个或多个点的坐标进行编码。
[0239]
在一种可能的实现方式中,所述编码模块1603,还用于当所述待处理节点包含的点的数目小于或等于所述第一阈值时,将编码标识置为1;或者,当所述待处理节点包含的点的数目大于所述第一阈值时,将编码标识置为0;对所述编码标识进行编码。
[0240]
在一种可能的实现方式中,所述待处理节点是预先设定的划分层中的任意一个非空节点。
[0241]
在一种可能的实现方式中,训练模块1604,用于选取预先设定的划分层中的任意一个非空节点;根据所述任意一个非空节点的所述目标信息训练以得到所述概率网络。
[0242]
在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。
[0243]
在一种可能的实现方式中,所述待处理节点不是叶节点。
[0244]
本实施例的装置,可以用于执行图5-图13所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0245]
图17为本技术实施例解码装置1700的一个示例性的结构示意图,如图17所示,本实施例的装置1700可以应用于解压缩器16。该装置1700可以包括:解码模块1701和概率预测模块1702。其中,
[0246]
解码模块1701,用于解析码流以得到待处理节点的目标信息;概率预测模块1702,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;所述解码模块1701,还用于当所述目标概率大于或等于第二阈值时,对所述码流进行解码以得到所述待处理节点包含的一个或多个点。
[0247]
在一种可能的实现方式中,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。
[0248]
在一种可能的实现方式中,所述解码模块1701,还用于当所述目标概率小于所述第二阈值时,对所述码流进行解码以得到所述待处理节点的占位码。
[0249]
在一种可能的实现方式中,所述解码模块1701,具体用于对所述码流进行解码以得到所述待处理节点的编码标识;当所述编码标识为1时,对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点。
[0250]
在一种可能的实现方式中,所述解码模块1701,具体用于当所述编码标识为0时,对所述码流进行解码以得到所述待处理节点的占位码。
[0251]
在一种可能的实现方式中,所述解码模块1701,具体用于对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点的坐标。
[0252]
在一种可能的实现方式中,所述概率网络包括特征提取模块和特征聚合模块。
[0253]
本实施例的装置,可以用于执行图14-图15所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0254]
在一种可能的实现方式中,本技术实施例提供一种芯片,包括处理器和存储器,存储器用于存储计算机程序,处理器用于调用并运行存储器中存储的计算机程序,以执行如上述方法实施例中的方法。示例性的,该芯片可以是图16所示实施例中的编码装置1600,也可以是图17所示实施例中的解码装置1700。
[0255]
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,dsp)、特定应用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本技术实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0256]
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory, rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器 (erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom) 或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器 (enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram, sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0257]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0258]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0259]
在本技术实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所
显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0260]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0261]
另外,在本技术实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0262]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本技术实施例各个实施例所述方法的全部或部分步骤。或者该计算机软件产品可以从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线 (例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd)、只读存储器(read-onlymemory,rom)、随机存取存储器(random access memory,ram))等。
[0263]
以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种基于树结构划分的点云编码方法,其特征在于,包括:获取待处理节点的目标信息,所述待处理节点包含待编码点云中的一个或多个点;将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;当所述目标概率大于或等于第二阈值时,对所述待处理节点进行编码。2.根据权利要求1所述的方法,其特征在于,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:当所述目标概率小于所述第二阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。4.根据权利要求1或2所述的方法,其特征在于,所述对所述待处理节点进行编码,包括:获取所述待处理节点包含的点的数目;当所述待处理节点包含的点的数目小于或等于所述第一阈值时,对所述待处理节点包含的所述一个或多个点进行编码。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述待处理节点包含的点的数目大于所述第一阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述对所述待处理节点进行编码,包括:对所述待处理节点包含的所述一个或多个点的坐标进行编码。7.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述待处理节点包含的点的数目小于或等于所述第一阈值时,将编码标识置为1;或者,当所述待处理节点包含的点的数目大于所述第一阈值时,将编码标识置为0;对所述编码标识进行编码。8.根据权利要求1-7中任一项所述的方法,其特征在于,所述待处理节点是预先设定的划分层中的任意一个非空节点。9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:选取预先设定的划分层中的任意一个非空节点;
根据所述任意一个非空节点的所述目标信息训练以得到所述概率网络。10.根据权利要求1-9中任一项所述的方法,其特征在于,所述概率网络包括特征提取模块和特征聚合模块。11.根据权利要求1-10中任一项所述的方法,其特征在于,所述待处理节点不是叶节点。12.一种基于树结构划分的点云解码方法,其特征在于,包括:解析码流以得到待处理节点的目标信息;将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;当所述目标概率大于或等于第二阈值时,对所述码流进行解码以得到所述待处理节点包含的一个或多个点。13.根据权利要求12所述的方法,其特征在于,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:当所述目标概率小于所述第二阈值时,对所述码流进行解码以得到所述待处理节点的占位码。15.根据权利要求12或13所述的方法,其特征在于,所述对所述码流进行解码以得到所述待处理节点包含的一个或多个点,包括:对所述码流进行解码以得到所述待处理节点的编码标识;当所述编码标识为1时,对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点。16.根据权利要求15所述的方法,其特征在于,所述方法还包括:当所述编码标识为0时,对所述码流进行解码以得到所述待处理节点的占位码。17.根据权利要求12-16中任一项所述的方法,其特征在于,所述对所述码流进行解码以得到所述待处理节点包含的一个或多个点,包括:对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点的坐标。18.根据权利要求12-17中任一项所述的方法,其特征在于,所述概率网络包括特征提取模块和特征聚合模块。19.一种点云编码装置,其特征在于,包括:获取模块,用于获取待处理节点的目标信息,所述待处理节点包含待编码点云中的一个或多个点;概率预测模块,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指
示所述待处理节点包含的点的数目小于或等于第一阈值的概率;编码模块,用于当所述目标概率大于或等于第二阈值时,对所述待处理节点进行编码。20.根据权利要求19所述的装置,其特征在于,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。21.根据权利要求19或20所述的装置,其特征在于,所述编码模块,还用于当所述目标概率小于所述第二阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。22.根据权利要求19或20所述的装置,其特征在于,所述编码模块,具体用于获取所述待处理节点包含的点的数目;当所述待处理节点包含的点的数目小于或等于所述第一阈值时,对所述待处理节点包含的所述一个或多个点进行编码。23.根据权利要求22所述的装置,其特征在于,所述编码模块,还用于当所述待处理节点包含的点的数目大于所述第一阈值时,对所述待处理节点进行划分;根据所述划分的结果获取所述待处理节点的占位码;对所述待处理节点的占位码进行编码。24.根据权利要求19-23中任一项所述的装置,其特征在于,所述编码模块,具体用于对所述待处理节点包含的所述一个或多个点的坐标进行编码。25.根据权利要求22所述的装置,其特征在于,所述编码模块,还用于当所述待处理节点包含的点的数目小于或等于所述第一阈值时,将编码标识置为1;或者,当所述待处理节点包含的点的数目大于所述第一阈值时,将编码标识置为0;对所述编码标识进行编码。26.根据权利要求19-25中任一项所述的装置,其特征在于,所述待处理节点是预先设定的划分层中的任意一个非空节点。27.根据权利要求19-26中任一项所述的装置,其特征在于,还包括:训练模块,用于选取预先设定的划分层中的任意一个非空节点;根据所述任意一个非空节点的所述目标信息训练以得到所述概率网络。28.根据权利要求19-27中任一项所述的装置,其特征在于,所述概率网络包括特征提取模块和特征聚合模块。29.根据权利要求19-28中任一项所述的装置,其特征在于,所述待处理节点不是叶节点。30.一种点云解码装置,其特征在于,包括:解码模块,用于解析码流以得到待处理节点的目标信息;概率预测模块,用于将所述目标信息输入概率网络以得到目标概率,所述目标概率指示所述待处理节点包含的点的数目小于或等于第一阈值的概率;所述解码模块,还用于当所述目标概率大于或等于第二阈值时,对所述码流进行解码
以得到所述待处理节点包含的一个或多个点。31.根据权利要求30所述的装置,其特征在于,所述目标信息包括以下至少一种信息:所述待处理节点的尺寸;所述待处理节点中的指定点的坐标;所述待处理节点的划分深度;所述待处理节点的父节点的占位码;所述待处理节点的父节点的相邻节点的权重和;所述待处理节点的父节点和所述父节点的兄弟节点中非空节点的总数;所述待处理节点和所述待处理节点的兄弟节点中非空节点的总数;所述待处理节点在兄弟节点中的索引。32.根据权利要求30或31所述的装置,其特征在于,所述解码模块,还用于当所述目标概率小于所述第二阈值时,对所述码流进行解码以得到所述待处理节点的占位码。33.根据权利要求30或31所述的装置,其特征在于,所述解码模块,具体用于对所述码流进行解码以得到所述待处理节点的编码标识;当所述编码标识为1时,对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点。34.根据权利要求33所述的装置,其特征在于,所述解码模块,具体用于当所述编码标识为0时,对所述码流进行解码以得到所述待处理节点的占位码。35.根据权利要求30-34中任一项所述的装置,其特征在于,所述解码模块,具体用于对所述码流进行解码以得到所述待处理节点包含的所述一个或多个点的坐标。36.根据权利要求30-35中任一项所述的装置,其特征在于,所述概率网络包括特征提取模块和特征聚合模块。37.一种编码器,其特征在于,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行权利要求1-11中任一项所述的方法。38.一种解码器,其特征在于,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行权利要求12-18中任一项所述的方法。39.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-18任意一项所述的方法。40.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-18任意一项所述的方法。

技术总结
本申请提供一种基于树结构划分的点云编码方法和装置。本申请基于树结构划分的点云编码方法,包括:获取待处理节点的目标信息;将目标信息输入概率网络以得到目标概率,该目标概率指示待处理节点包含的点的数目小于或等于第一阈值的概率;当目标概率大于或等于第二阈值时,对待处理节点进行编码;当目标概率小于第二阈值时,对待处理节点进行划分。本申请实施例可以提高孤立点的预测的准确度,提高点云的编码效率。的编码效率。的编码效率。


技术研发人员:魏紫威 涂晨曦 蔡康颖 牛犇犇 何芸 曹潇然
受保护的技术使用者:清华大学
技术研发日:2022.01.25
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐