发明内容
针对目前的计点云数据压缩技术无法兼顾对多种点云的压缩以及压缩性能低等至少一个技术问题,本发明的目的在于提供一种基于深度熵编码的点云属性压缩方法、计算机装置和存储介质。
一方面,本发明实施例包括一种基于深度熵编码的点云属性压缩方法,包括:
获取点云数据;
获取所述点云数据的属性信息和几何信息;
使用变换编码算法,对所述属性信息进行变换编码,获得变换系数;
记录所述变换编码的过程中产生的中间信息;
对所述几何信息和所述变换系数进行逐点特征提取,获得点云信息特征;
对所述中间信息进行逐点特征提取,获得变换编码信息特征;
对所述点云信息特征和所述变换编码信息特征融合后进行概率预测,获得概率分布;
对所述变换系数和所述概率分布进行熵编码,获得压缩文件。
进一步地,所述变换编码算法为三维小波变换算法。
进一步地,所述对所述属性信息进行变换编码,包括:
对所述属性信息进行体素化,获得多个点云属性体素;
排列各所述点云属性体素;
设定变换方向;
从位于所述变换方向上初始位置的所述点云属性体素开始,依次进行多级变换;在其中每一级变换中,对于相邻的两个所述点云属性体素,则根据相邻的两个所述点云属性体素生成高频分量和低频分量,将所述高频分量和所述低频分量传递至下一级变换,作为下一级变换中的点云属性体素,对于不与其他点云属性体素相邻的所述点云属性体素,将所述点云属性体素传递至下一级变换,作为下一级变换中的点云属性体素;
记录最后一级变换所得的高频分量和低频分量,作为所述变换系数。
进一步地,所述根据相邻的两个所述点云属性体素生成高频分量和低频分量,将所述高频分量和所述低频分量传递至下一级变换,作为下一级变换中的点云属性体素,所使用的公式为:
其中,d表示变换的级数,x,y,z表示所述变换方向,ld,2x,y,z表示根据相邻的两个所述点云属性体素中的一个所述点云属性体素的低频分量,ld,2x+1,y,z表示根据相邻的两个所述点云属性体素中的另一个所述点云属性体素的低频分量,ld+1,x,y,z表示下一级变换中的点云属性体素中的低频分量,hd+1,x,y,z表示下一级变换中的点云属性体素中的高频分量,w1表示第d级变换中与变换方向2x,y,z对应的权重,w2表示第d级变换中与变换方向2x+1,y,z对应的权重。
进一步地,所述基于深度熵编码的点云属性压缩方法还包括:
在所述使用变换编码算法,对所述属性信息进行变换编码之前,对所述属性信息进行去噪、切块和色彩空间变换处理;
在获得变换系数之后,对所述变换系数进行结构化处理。
进一步地,所述对所述中间信息进行逐点特征提取,获得变换编码信息特征,包括:
获取每一级变换中的权重w和低频分量l作为所述中间信息;
使用多层全连接神经网络MLP对所述权重w和所述低频分量l进行逐点特征提取,获得第一逐点特征fPt=MLPs(w,l);
使用三维神经网络3DConv对所述权重w和所述低频分量l进行领域点的特征聚合,获得第一空间特征fSt=3DConv(w,l);
将所述第一逐点特征fPt与所述第一空间特征fSt按通道维度拼接,获得所述变换编码信息特征ftrans=MLPs(fPt,fSt)。
进一步地,所述对所述几何信息和所述变换系数进行逐点特征提取,获得点云信息特征,包括:
使用多层全连接神经网络MLP对所述几何信息xyz和所述变换系数a进行逐点特征提取,获得第二逐点特征fP=MLPs(xyz,a);
使用三维神经网络3DConv对所述几何信息xyz和所述变换系数a进行领域点的特征聚合,获得第二空间特征fS=3DConv(xyz,a);
将所述第二逐点特征fP与所述第二空间特征fS按通道维度拼接,获得所述点云信息特征fpc=MLPs(fP,fS)。
进一步地,所述对所述点云信息特征和所述变换编码信息特征融合后进行概率预测,获得概率分布,包括:
使用多层全连接神经网络MLP对所述点云信息特征fpc和所述变换编码信息ftrans进行特征融合,获得特征信息f=MLPs(fpc,ftrans);
使用多层全连接神经网络MLP对所述特征信息f回归所述概率分布P=MLPs(f)。
另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例中的基于深度熵编码的点云属性压缩方法。
另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行实施例中的基于深度熵编码的点云属性压缩方法。
本发明的有益效果是:实施例中的基于深度熵编码的点云属性压缩方法,可以通过神经网络深度学习的方式拟合符号概率分布,通过提取属性信息和几何信息等点云信息以及变换编码信息,有利于符号概率分布预测,相较于目前的相关技术,本实施例中的基于深度熵编码的点云属性压缩方法更好地利用了数据自身隐含的信息,能够处理复杂多样的点云数据,较少了专家设计成本,更好地实现了符号概率预测,提高了压缩性能。
具体实施方式
本实施例中,参照图1,基于深度熵编码的点云属性压缩方法包括以下步骤:
S1.获取点云数据;
S2.获取点云数据的属性信息和几何信息;
S3.使用变换编码算法,对属性信息进行变换编码,获得变换系数;
S4.记录变换编码的过程中产生的中间信息;
S5.对几何信息和变换系数进行逐点特征提取,获得点云信息特征;
S6.对中间信息进行逐点特征提取,获得变换编码信息特征;
S7.对点云信息特征和变换编码信息特征融合后进行概率预测,获得概率分布;
S8.对变换系数和概率分布进行熵编码,获得压缩文件。
步骤S1-S8的原理如图2所示,图2中的虚线框表示要处理的数据、中间过程的数据或者最终处理得到的数据,实线框表示用于处理数据的模块,这些模块可以是具有相应功能的软件模块或者硬件模块。
步骤S2中,通过对点云数据进行解析,获取点云数据的属性信息和几何信息。其中,点云数据的属性信息包括点云的颜色、反射率等用于描述其光学特性的信息,点云数据的几何信息包括点云的x、y、z坐标等信息。
步骤S3中,参照图2,使通过变换编码模块执行变换编码算法,对属性信息进行变换编码,获得变换系数。具体地,可以使用基于深度神经网络构造的自编码器执行变换编码算法,或者使用三维小波变换算法(RAHT)作为变换编码算法。
本实施例中,在执行步骤S3,也就是使用变换编码算法,对属性信息进行变换编码这一步骤之前,可以先对属性信息进行预处理,其中预处理包括去噪、切块和色彩空间变换处理等至少一个处理过程。在对属性信息进行预处理之后,执行步骤S3,也就是使用变换编码算法,对经过预处理的属性信息进行变换编码。
当使用三维小波变换算法作为变换编码算法,在执行步骤S3中的对属性信息进行变换编码这一步骤时,具体可以执行以下步骤:
S301.对属性信息进行体素化,获得多个点云属性体素;
S302.排列各点云属性体素;
S303.设定变换方向;
S304.从位于变换方向上初始位置的点云属性体素开始,依次进行多级变换;在其中每一级变换中,对于相邻的两个点云属性体素,则根据相邻的两个点云属性体素生成高频分量和低频分量,将高频分量和低频分量传递至下一级变换,作为下一级变换中的点云属性体素,对于不与其他点云属性体素相邻的点云属性体素,将点云属性体素传递至下一级变换,作为下一级变换中的点云属性体素;
S305.记录最后一级变换所得的高频分量和低频分量,作为变换系数。
步骤S301-S305的原理如图3所示。
步骤S301中,可将属性信息按RAHT的空间划分关系,构造为二叉树。为了易于展示,图3用简单的二维示例体现了RAHT与其对应二叉树构造方式,该方法同样适应于三维情况。参照图3(a),RAHT首先将属性信息体素化,获得l1、l2与l3等多个点云属性体素。
步骤S302中,对l1、l2与l3等点云属性体素进行排列,使得其具有一定的位置关系,例如图3(a)中最左侧便示出了l1、l2与l3等点云属性体素之间的一种位置关系。
步骤S303中,设定x、y、z等变换方向,图3(a)中示出了x和y两个变换方向。
步骤S304中,分别沿x、y、z等变换方向进行变换,从位于变换方向上初始位置的点云属性体素开始,依次进行多级变换,每级变换中,如果存在相邻点,则生成低频与高频分量,若无相邻点,则将低频分量直接传至于下一级。
例如,参照图3(a),第一级变换沿x方向进行,先找出位于x方向初始位置的点云属性体素l1,点云属性体素l1无相邻点,也就是点云属性体素l1不与其他点云属性体素相邻,那么将点云属性体素l1传递至下一级变换;而点云属性体素l2与点云属性体素l3相邻,那么根据点云属性体素l2与点云属性体素l3生成低频分量l4与高频分量h1,将低频分量l4与高频分量h1传递至下一级变换,作为下一级变换中的点云属性体素;第二级变换沿y方向进行,在第二级变换中,点云属性体素l1与低频分量l4相邻,根据点云属性体素l1与低频分量l4生成低频分量l5与高频分量h2。相应的,如图3(b)所示,可按照层次变换的结构,构造二叉树,若存在相邻点,则节点聚合并生成父节点,若无相邻点,则直接生成父节点。按各方向逐级变换,直至所有点聚合,生成根节点。
在执行步骤S304中的根据相邻的两个点云属性体素生成高频分量和低频分量,将高频分量和低频分量传递至下一级变换,作为下一级变换中的点云属性体素这一步骤时,具体可以使用公式
进行计算。
该公式中,d表示变换的级数,也就是说ld,2x,y,z和ld,2x+1,y,z表示第d级变换所得到的数据,ld+1,x,y,z和hd+1,x,y,z表示第d+1级变换所得到的数据;x,y,z表示变换方向,ld,2x,y,z表示根据相邻的两个点云属性体素中的一个点云属性体素的低频分量,ld,2x+1,y,z表示根据相邻的两个点云属性体素中的另一个点云属性体素的低频分量,ld+1,x,y,z表示下一级变换中的点云属性体素中的低频分量,hd+1,x,y,z表示下一级变换中的点云属性体素中的高频分量,w1表示第d级变换中与变换方向2x,y,z对应的权重,w2表示第d级变换中与变换方向2x+1,y,z对应的权重。
当建立了图3(b)所示的二叉树,w1也可以表示二叉树中对应ld,2x,y,z的节点的权重(叶子节点数目),w2也可以表示二叉树中对应ld,2x+1,y,z的节点的权重(叶子节点数目)。
步骤S304中执行完全部各级变换后,步骤S305中,记录最后一级变换所得的高频分量和低频分量,作为执行步骤S3所得的变换系数。
本实施例中,在执行完步骤S3获得变换系数之后,还可以对变换系数进行结构化处理,从而将无序的变换系数组织成结构化数据,以利于后续的变换编码信息提取。
步骤S4中,记录变换编码的过程中产生的中间信息。具体地,执行变换编码的过程中产生的中间信息包括节点低频分量、二叉树的结构化信息(例如每个节点的权重即叶子节点数目)、变换编码重建所得的点云属性以及节点空间位置等。
在执行步骤S5,也就是对几何信息和变换系数进行逐点特征提取,获得点云信息特征这一步骤时,具体可以执行以下步骤:
S501.使用多层全连接神经网络MLP对几何信息xyz和变换系数a进行逐点特征提取,获得第二逐点特征fP=MLPs(xyz,a);
S502.使用三维神经网络3DConv对几何信息xyz和变换系数a进行领域点的特征聚合,获得第二空间特征fS=3DConv(xyz,a);
S503.将第二逐点特征fP与第二空间特征fS按通道维度拼接,获得点云信息特征fpc=MLPs(fP,fS)。
在执行步骤S6,也就是对中间信息进行逐点特征提取,获得变换编码信息特征这一步骤时,具体可以执行以下步骤:
S601.获取每一级变换中的权重w和低频分量l作为中间信息;
S602.使用多层全连接神经网络MLP对权重w和低频分量l进行逐点特征提取,获得第一逐点特征fPt=MLPs(w,l);
S603.使用三维神经网络3DConv对权重w和低频分量l进行领域点的特征聚合,获得第一空间特征fSt=3DConv(w,l);
S604.将第一逐点特征fPt与第一空间特征fSt按通道维度拼接,获得变换编码信息特征ftrans=MLPs(fPt,fSt)。
步骤S601中,只使用了权重w和低频分量l这两种信息作为中间信息,也可以使用变换编码过程中产生的更多的中间信息(例如表示为m的其他中间信息)加入第一逐点特征fPt与第一空间特征fSt的计算过程,例如通过fPt=MLPs(w,l,m)计算得到第一逐点特征fPt,通过fSt=3DConv(w,l,m)计算得到第一空间特征fSt。
在执行步骤S7,也就是对点云信息特征和变换编码信息特征融合后进行概率预测,获得概率分布这一步骤时,具体可以执行以下步骤:
S701.使用多层全连接神经网络MLP对点云信息特征fpc和变换编码信息ftrans进行特征融合,获得特征信息f=MLPs(fpc,ftrans);
S702.使用多层全连接神经网络MLP对特征信息f回归概率分布P=MLPs(f)。
本实施例中,除了通过执行上述步骤S701-S702,也就是采用多层全连接神经网络,直接回归符号的概率分布之外,还可以采用神经网络回归符号的概率密度函数,具体可使用多层全连接神经网络MLPs,对有限个输入符号,即变换系数h,可直接回归其概率值P,得P=MLPs(f)。
步骤S8中,参照图2,使用熵编码器对变换系数和概率分布进行熵编码,获得压缩文件,该压缩文件中包含了与点云数据相关的被压缩过的信息。
本实施例中,通过深度学习,实现对符号概率分布的拟合。对应于不同的测试场景,如稠密人体点云或稀疏LiDAR点云等,在训练阶段,可以设计并采集相应数据集进行训练。举例而言,对于稠密人体点云,可以首先构建相应的人体点云训练集,对于稀疏LiDAR点云,可以首先构建LiDAR点云训练集。训练过程中,因为训练集中的变换系数(输入符号)的概率分布已知,即可使用包括但不限于交叉熵等损失函数,拟合预测概率分布与真实概率分布。相较于现有技术,该策略使本实施例中的基于深度熵编码的点云属性压缩方法能够对同时存在稠密点云、LiDAR点云等复杂多样的点云数据进行处理。
本实施例中的基于深度熵编码的点云属性压缩方法,可以通过神经网络深度学习的方式拟合符号概率分布,而目前的相关技术普遍采用基于手工规则的方式预测概率;相较于目前的相关技术,本实施例中的基于深度熵编码的点云属性压缩方法更好地利用了数据自身隐含的信息,能够处理复杂多样的点云数据,较少了专家设计成本,提高了压缩性能;本实施例中的基于深度熵编码的点云属性压缩方法通过提取属性信息和几何信息等点云信息,有利于符号概率分布预测,而目前的相关技术没有有效利用点云信息,相较于目前的相关技术,本实施例中的基于深度熵编码的点云属性压缩方法更好地实现了符号概率预测,从而提升了压缩性能;本实施例中的基于深度熵编码的点云属性压缩方法通过提取变换编码信息,有利于符号概率分布预测,而目前的相关技术没有有效利用该信息,相较于目前的相关技术,本实施例中的基于深度熵编码的点云属性压缩方法更好地实现了符号概率预测,从而提升了压缩性能。
可以通过编写执行本实施例中的基于深度熵编码的点云属性压缩方法的计算机程序,将该计算机程序写入至计算机装置或者存储介质中,当计算机程序被读取出来运行时,执行本实施例中的基于深度熵编码的点云属性压缩方法,从而实现与实施例中的基于深度熵编码的点云属性压缩方法相同的技术效果。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。