CN114972551A - 一种点云的压缩和解压缩方法 - Google Patents
一种点云的压缩和解压缩方法 Download PDFInfo
- Publication number
- CN114972551A CN114972551A CN202210127272.2A CN202210127272A CN114972551A CN 114972551 A CN114972551 A CN 114972551A CN 202210127272 A CN202210127272 A CN 202210127272A CN 114972551 A CN114972551 A CN 114972551A
- Authority
- CN
- China
- Prior art keywords
- node
- compressed
- information
- matrix
- point cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007906 compression Methods 0.000 title claims abstract description 98
- 230000006835 compression Effects 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000006837 decompression Effects 0.000 title description 37
- 238000009826 distribution Methods 0.000 claims abstract description 63
- 238000003062 neural network model Methods 0.000 claims abstract description 37
- 239000011159 matrix material Substances 0.000 claims description 111
- 238000013139 quantization Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 8
- 150000001875 compounds Chemical class 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 9
- 239000000047 product Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了一种点云的压缩和解压缩方法,其中,点云的压缩方法包括:将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码;对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点;将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布;根据待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。本申请解决了现有技术中计算量大以及压缩效率低的技术问题,达到了提高压缩效果和减少计算量的技术效果。
Description
技术领域
本申请涉及点云数据压缩与解压缩技术领域,尤其涉及一种点云的压缩和解压缩方法。
背景技术
点云数据是三维表示的重要数据结构,因此有效的压缩技术对3D点云的存储和传输是十分必要的。目前,先将点云体素化并建立八叉树结构,并对每个八叉树结构的节点对应的体素结构的上下文信息,再利用3D卷积神经网络对二进制编码进行特征学习,进而得出该八叉树节点的八个子节点的占用状态,从而实现对八叉树无损压缩。
然而,使用体素结构的上下文信息,容易造成计算量过大的技术问题,为了减少计算量势必需要较少的体素结构的上下文信息,而使用较少的体素结构的上下文信息,容易产生预测不准确,压缩效果差的技术问题。
发明内容
有鉴于此,本申请的目的在于至少提供一种点云的压缩和解压缩方法,通过待压缩节点的节点占用码和属性信息进行压缩和解压缩处理,并且在进行压缩和解压缩时,将待压缩节点对应的同层节点和父亲节点的节点占用码和位置信息,作为待压缩节点的上下文信息,解决了现有技术中计算量大以及压缩效率低的技术问题,达到了提高压缩效果和减少计算量的技术效果。
本申请主要包括以下几个方面:
第一方面,本申请实施例提供一种点云的压缩方法,其中,该压缩方法包括:将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码;对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点;将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布;根据待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。
可选地,当前待压缩节点的上下文信息,包括:当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及待压缩节点的位置信息;将当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及当前待压缩节点的位置信息,作为待压缩节点对应的上下文信息,包括:将当前待压缩节点的前序同层节点和前序同层节点对应的多层父亲节点的节点占用码和位置信息,作为当前待压缩节点对应的第一上下文信息;将当前待压缩节点的位置信息、当前待压缩节点的前一个已压缩的同层节点的节点占用码,以及当前待压缩节点对应的多层父亲节点的节点占用码和位置信息,作为当前待压缩节点对应的第二上下文信息,将第一上下文信息和第二上下文信息,作为当前待压缩节点对应的上下文信息;当前待压缩节点对应的待压缩信息,包括:当前待压缩节点的节点占用码。
可选地,当前待压缩节点的上下文信息,还包括:当前待压缩节点对应的同层节点的多层父亲节点的节点占用码和位置信息、同层节点的节点占用码和位置信息、前序同层节点对应的节点属性和/或节点属性残差;当前待压缩节点对应的待压缩信息,还包括:当前待压缩节点的节点属性和/或节点属性残差。
可选地,将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:将当前待压缩节点的上下文信息输入至注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵;将第一加权上下文矩阵和上下文信息相加,将相加的结果输入至第一层多层感知机网络中,得到第二加权上下文矩阵;再将第二加权上下文矩阵输入至第二层注意力操作网络中,得到第三加权上下文矩阵;将第三加权上下文矩阵与第二加权上下文矩阵相加,将相加的结果输入至第二层多层感知机网络中,得出第四加权上下文矩阵;将第四加权上下文矩阵输入至第三层多层感知机网络中,得出第五加权上下文矩阵;将第五加权上下文矩阵通过softmax函数,预测出当前待压缩节点对应的待压缩信息的概率分布。
可选地,将当前待压缩节点的上下文信息输入至注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵,包括:将当前待压缩节点的上下文信息输入至第一多层感知机,得出第一输出矩阵;将当前待压缩节点的上下文信息输入至第二多层感知机,得出第二输出矩阵;将当前待压缩节点的上下文信息输入至第三多层感知机,得出第三输出矩阵;将第二输出矩阵的转置矩阵与第一输出矩阵相乘,得出矩阵内积;将矩阵内积与遮罩矩阵相加,将相加后的结果输入至softmax函数,得出注意力矩阵;将注意力矩阵与第三输出矩阵相乘,得到当前待压缩节点的第一加权上下文矩阵。
可选地,注意力矩阵中的每一个元素为注意力值;通过以下公式计算注意力矩阵的注意力值:
公式(1)中,指的是第j个节点与第k个节点上下文之间的注意力值,第j个节点是同层节点中的第j个节点并且是当前待压缩节点,fj是第j个节点的上下文信息,fk是第k个节点的上下文信息,第k个节点是第j个节点的前序同层节点;分子代表第j个节点与第k个节点上下文之间的相似值,分母指的是第j个节点与第1个节点至第j个节点上下文之间的相似值的和;MLP2(fj)指的是将第j个节点的上下文信息输入至第二多层感知机,得出第j个节点对应的第二输出矩阵;指的是将第k个节点的上下文信息输入至第一多层感知机,得出第k个节点对应的第一输出矩阵的转置矩阵。
可选地,将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:将当前待压缩节点的上下文信息进行扩维,生成扩维上下文信息;将扩维上下文信息输入至预先训练好的注意力神经网络模型中,预测出当前待压缩节点对应的待压缩信息的概率分布。
第二方面,本申请实施例还提供一种点云的解压缩方法,该方法包括:对树结构移动预置窗口,将每次移动预置窗口内的未解压缩的节点确定为当前待解压缩节点,将当前待解压缩节点的上下文信息,输入至预先训练好的注意力神经网络模型中,预测当前待解压缩节点对应的待压缩信息的概率分布;将当前待解压缩节点对应的待解压缩信息的概率分布和点云码流,输入至算数解码器进行熵解码,得到待解压缩节点对应的待解压缩信息;将待解压缩信息构建树结构,从树结构中获取点云,再通过反量化,得到解压缩点云。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线进行通信,机器可读指令被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的点云的压缩方法的步骤,和/或,上述第二方面中的点云的解压缩方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的点云的压缩方法的步骤,和/或,上述第二方面中的点云的解压缩方法的步骤。
本申请实施例提供的一种点云的压缩和解压缩方法,点云的压缩方法为:将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码;对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点;将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布;根据待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。本申请舍弃了体素结构的上下文信息,通过将当前待压缩节点对应的同层节点和父亲节点的节点占用码和位置信息,作为当前待压缩节点的上下文信息,在对待压缩节点进行压缩和解压缩时,考虑了当前待压缩节点的同层节点和父亲节点,解决了现有技术中计算量大以及压缩效率低的技术问题,达到了提高压缩效果和减少计算量的技术效果。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种点云的压缩方法的流程图。
图2示出了本申请实施例所提供的一种点云的几何压缩方法的流程图。
图3示出了本申请实施例所提供的一种点云的属性压缩方法的流程图。
图4示出了本申请实施例所提供的一种点云的解压缩方法的流程图。
图5示出了本申请实施例所提供的一种点云的几何解压缩方法的流程图。
图6示出了本申请实施例所提供的一种点云的属性解压缩方法的流程图。
图7示出了本申请实施例所提供的属性补全的示意图。
图8示出了本申请实施例所提供的预置窗口的示意图。
图9示出了本申请实施例所提供的注意力神经网络模型的示意图。
图10示出了本申请实施例所提供的一种点云的压缩和解压缩的示意图。
图11示出了本申请实施例所提供的一种点云的压缩装置的示意图。
图12示出了本申请实施例所提供的一种点云的解压缩装置的示意图。
图13示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
现有技术中,对点云数据进行压缩和解压缩时,将待压缩节点对应的体素结构作为上下文信息,造成计算量过大且预测结果不准确的技术问题,或者,没有将待压缩节点的同层节点作为待压缩节点的上下文信息,造成预测结果不准确,进而导致压缩效果差的技术问题。
基于此,本申请实施例提供了一种点云的压缩和解压缩方法,对待压缩节点进行压缩和解压缩处理时,将待压缩节点对应的同层节点和父亲节点的节点占用码和位置信息,作为待压缩节点的上下文信息,解决了现有技术中计算量大以及压缩效率低的技术问题,达到了提高压缩效果和减少计算量的技术效果,具体方式如下:
请参阅图1,图1为本申请实施例所提供的一种点云的压缩方法的流程图。如图1所示,本申请实施例提供的一种点云的压缩方法,包括以下步骤:
S101、将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码。
示例性的,在将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码之前,方法包括,对点云进行量化。将点云进行量化可以理解为,将点云大量可能的坐标或者属性的离散取值近似为较少的离散值。以便后续将量化后的点云构建树结构。在无损压缩的实施例中,不进行量化。本申请提供的一种实施例中,树结构为八叉树结构。
对点云进行量化时,需要对点云进行几何量化和属性量化。在进行几何量化(即,坐标量化)时,确定点云中的最小三维坐标值(即,右下角的点的三维坐标值,参考附图7),将点云中的所有点的三维坐标值与最小三维坐标值作差(即,将点云数据平移,使得平移后的点云数据中右下角的点位于原点处),再将差值与量化步长作比后取整,将取整后的比值作为几何量化后的点云数据中各点的三维坐标值。在进行属性量化(即,颜色(RGB值或YUV值)和/或反射率量化)时,将原始的点云属性与量化步长做比后取整,将取整后的比值作为属性量化后的点云的各点的节点属性。
其中,量化步长(qs)是用户可调的参数,其取值取决于想要压缩的程度和能接受的失真。量化步长越大,点云数据的失真越大,但是码率越小。这也表示了我们的模型可以适用于变码率(同一个模型,实现不同的压缩大小和失真)的压缩。其中,几何量化与属性量化的量化步长可以是不同的。
节点占用码指的是点云中各点的排列位置,并将各点的排列位置情况的八位二进制编码转换为十进制编码,将十进制编码作为此节点的节点占用码。
示例性的,请参阅图7,图7示出了本申请实施例所提供的属性补全的示意图。图7中节点占用码为73对应的节点指代的体素包括八个子体素,并将子体素进行编号,编号的范围为编号0-编号7。其中,编号1、编号4和编号7所在的子体素存在点,其对应的二进制编码为01001001(对应图7中的0a00b00c),转换为十进制为73,则73为此节点的节点占用码。
S102、对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点。
对点云的压缩分为几何压缩和属性压缩,当进行几何压缩时,对应的是几何预置窗口。
示例性的,请参阅图8,图8示出了本申请实施例所提供的预置窗口的示意图。图8中,“xi”节点指的是当前待压缩节点,N1指的是几何预置窗口中的待压缩节点对应的同层节点数量;N2指的是属性预置窗口中的待压缩节点对应的同层节点数量;W1指的是当前待压缩节点的同层节点数量(N1)为8,层高为4的几何预置窗口;W2指的是当前待压缩节点的同层节点数量(N2)为7,层高为1的属性预置窗口。
S103、将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布。
其中,预置窗口是根据广度优先原则进行移动的。
移动预置窗口时,依据广度优先原则将树结构的节点排成广度优先序列,将广度优先序列中前面的节点作为待压缩节点对应的同层节点,直到预置窗口的同层节点数量满足预设的数量(N1或者N2)。当预置窗口的同层节点的数量和/或同层节点的多层父亲节点的数量不能满足时(即树结构中不存在更多的节点了),用默认节点补充预置窗口内的节点,这种情况出现在树结构靠近根部的一些层中。
当前待压缩节点对应的同层节点包括当前待压缩节点、当前待压缩节点的前序同层节点,和/或,当前待压缩节点的后序同层节点。
一优选实施例,当进行几何压缩时,当前待压缩节点的上下文信息(即,当前压缩节点的几何上下文信息),包括:当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及待压缩节点的位置信息。
当前待压缩节点对应的上下文信息中并不包括当前待压缩节点的节点占用码,是由于解压缩的目的是解码当前待压缩节点的节点占用码,也即解压缩时当前待压缩节点的节点占用码是未知的,因此在压缩时,也不考虑自身的节点占用码。
将当前待压缩节点的前序同层节点和前序同层节点对应的多层父亲节点的节点占用码和位置信息,作为待压缩节点对应的第一上下文信息;将待压缩节点的位置信息、待压缩节点的前一个已压缩的同层节点的节点占用码,以及待压缩节点对应的多层父亲节点的节点占用码和位置信息,作为待压缩节点对应的第二上下文信息,将第一上下文信息和第二上下文信息,作为待压缩节点对应的上下文信息。
其中,位置信息包括:节点索引,和/或节点深度,和/或节点的包围盒坐标。节点索引指的是此节点在其同父节点的兄弟节点中的位置,节点索引的范围为0至7;节点深度指的是节点在的八叉树结构的深度,八叉树结构中根节点的深度为1。包围盒指的是节点对应的体素的立方体空间,包围盒坐标指的是立方体空间的斜对角线的两个顶点的坐标,同一点云对应的多个包围盒的斜对角线方向相同,如图8所示,(x0,y0,z0,x1,y1,z1)为节点占用码73对应的体素的包围盒坐标。
示例性的,返回图8,图8中节点占用码为9的节点,其节点深度为1,节点索引为7,节点包围盒坐标为(0,0,0,7,7,7)。
当进行属性压缩时,当前待压缩节点的上下文信息,还包括:当前待压缩节点对应的同层节点的多层父亲节点的节点占用码和位置信息、同层节点的节点占用码和位置信息、前序同层节点对应的节点属性和/或节点属性残差。
一优选实施例,当进行属性压缩时,当前待压缩节点的上下文信息(即,当前压缩节点的节点属性(节点属性残差)上下文信息),包括:当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点、后序同层节点、待压缩节点的节点占用码和位置信息,以及前序同层节点对应的节点属性和/或节点属性残差。
具体的,将当前待压缩节点的前序同层节点和前序同层节点对应的多层父亲节点的节点占用码和位置信息,作为待压缩节点对应的第一上下文信息;将当前待压缩节点的后序同层节点和后序同层节点对应的多层父亲节点的节点占用码和位置信息,作为待压缩节点对应的第二上下文信息;将待压缩节点的节点占用码和位置信息,以及待压缩节点对应的多层父亲节点的节点占用码和位置信息,作为待压缩节点对应的第三上下文信息;将当前待压缩节点的前序同层节点对应的节点属性和/或节点属性残差,作为待压缩节点对应的第四上下文信息;将第一上下文信息、第二上下文信息、第三上下文信息和第四上下文信息,作为待压缩节点对应的上下文信息。
其中,进行属性压缩时,当前待压缩节点对应的同层节点,为树结构的最深层的叶节点,即,树结构中没有子节点的节点。只有叶节点才有节点属性和/或节点属性残差。
节点属性指的是节点的3位RGB值或者YUV值或者反射率或其他属性,节点属性残差指的是将节点的属性补全后,此节点与前序节点的属性编码差。其中,3位RGB值的三原色通道的取值范围为0-255,即,节点属性为3位RGB值。属性补全是为了便于构造上下文和便于神经网络的计算,补充的属性值(属性值残差)并不进入熵编码。
示例性的,节点的属性补全方式,请参阅图7,图7示出了本申请实施例所提供的属性补全的示意图。如图7所示,例如就颜色中的R属性来说,节点占用码为73对应的节点中,编号1的子体素对应的节点属性值为a,编号4的子体素对应的节点属性值为b,编号7的子体素对应的节点属性值为c,则节点占用码为73对应的节点对应的属性编码为0a00b00c,0代表子体素中不存在点云点。将属性编码循环左移补全,第一次循环左移补全为aa0bb0cc,第一次属性补全后的属性编码依然存在属性为零的编码,则进行第二次循环左移补全为aabbbccc,第二次属性补全后的属性编码无零编码,则属性补全完成,属性补全后的属性编码为aabbbccc。若前序节点属性补全后的属性编码为dddeeedd,则节点占用码为73的节点,对应的节点属性残差为:(d-a)(d-a)(d-b)(e-b)(e-b)(e-c)(d-c)(d-c)。
当进行几何压缩时,当前待压缩节点对应的待压缩信息,包括:当前待压缩节点的节点占用码;当进行属性压缩时,当前待压缩节点对应的待压缩信息,包括:当前待压缩节点的节点属性和/或节点属性残差。
当进行几何压缩时,将第i个待压缩节点确定为当前待压缩节点,将第i个待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测出第i个待压缩节点对应的节点占用码的概率分布qi(x),即,qi(x)为第i个待压缩节点的节点占用码为1-255的概率分布。例如,当前待压缩节点对应的概率分布为(0.01,0.2,0.056,…,0.36),指的是当前待压缩节点的节点占用码为1的概率是0.01,为2的概率是0.2,为3的概率是0.056,…,为255的概率是0.36),概率分布之和为1。
训练注意力神经网络模型的步骤为:步骤一,从样本点云中构建树结构,并确定样本节点的上下文信息和节点的待压缩信息(其中,样本点云与测试的点云是不同的,但是样本点云与测试的点云是相似的,例如,为同一个序列点云的不同帧或者类似的点云);步骤二,将样本节点的上下文信息输入至注意力神经网络模型的第一层注意力操作网络中,得到样本节点的第一加权上下文矩阵;步骤三,将第一加权上下文矩阵与上下文信息相加,将相加的结果输入至第一层多层感知机网络中,得到第二加权上下文矩阵;步骤四,再将第二加权上下文矩阵输入至第二层注意力操作网络中,得到第三加权上下文矩阵;步骤五,将第三加权上下文矩阵与第二加权上下文矩阵相加,将相加的结果输入至第二层多层感知机网络中,得出预测待压缩节点对应的待压缩信息的概率分布;步骤六:将多个样本节点对应的待压缩信息的概率分布和待压缩信息带入到损失函数中,计算损失值;其中,几何压缩的损失函数为:
loss1=-∑ilog2 qi(xi|f;w1) (2)
公式(2)中,loss1指的是几何压缩的损失函数,xi指的是当前待压缩节点(第i个待压缩节点),f指的是进行扩维之后的第i个待压缩节点的上下文信息,w1指的是几何压缩注意力神经网络的权重,qi指的是第i个待压缩节点对应的节点占用码的概率分布,i指代的范围是全部的待压缩节点,∑ilog2 qi(xi|f;w1)指的是全部待压缩节点对应的估计码率的求和;属性压缩的损失函数设计为只计算属性存在的点云点的属性残差(即,本申请实施中属性补全之前的属性0a00b00c的J={1,4,7}),属性压缩的损失函数为:
其中,公式(3)中,loss2指的是属性压缩的损失函数,w2指的是属性压缩注意力神经网络的权重,是每个属性在属性码流中的权重,nA指的是第nA个属性(即,RGB值中的第几个属性,例如R是RGB值中的第1个属性),NA指的是节点属性的总个数(例如RGB值为3个属性),i指代的范围是全部的待压缩节点(即,属性压缩时,是全部的叶节点)。步骤七:使用基于深度学习的优化算法进行反向传播,来优化损失值,更新注意力神经网络模型的权重w1和/或w2。多次执行步骤一至步骤七,当损失函数输出的损失值的变化率达到预置阈值时(即,损失函数的输出值收敛),则得到训练好的注意力神经网络模型。
将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:将当前待压缩节点的上下文信息进行扩维,生成扩维上下文信息;将扩维上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布。
本申请中,先将当前待压缩节点的上下文信息通过独热码操作进行扩维,生成上下文信息的独热码,再将上下文信息的独热码通过嵌入操作生成扩维上下文信息。
独热码操作(one-hot code),是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。例如,某个节点的节点索引是1,则其独热码是(0,1,0,0,0,0,0,0),将一维的数据扩维成8维。嵌入操作(Embedding),将独热码操作后的结果线性映射到预置维度。
具体的,将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:
将当前待压缩节点的上下文信息输入至注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵;将第一加权上下文矩阵和上下文信息相加,将相加的结果输入至第一层多层感知机网络中,得到第二加权上下文矩阵;再将第二加权上下文矩阵输入至第二层注意力操作网络中,得到第三加权上下文矩阵;将第三加权上下文矩阵与第二加权上下文矩阵相加,将相加的结果输入至第二层多层感知机网络中,得出第三加权上下文矩阵;将第三加权上下文矩阵输入至第三层多层感知机网络中,得出第四加权上下文矩阵;将第四加权上下文矩阵输入至第三层多层感知机网络中,得出第五加权上下文矩阵;将第五加权上下文矩阵通过softmax函数,预测出当前待压缩节点对应的待压缩信息的概率分布。
一优选实施例,请参阅图9示出了本申请实施例所提供的注意力神经网络模型的示意图。图9中,N指的是当前待压缩节点对应的同层节点的数量(几何预置窗口为N1,属性预置窗口为N2,默认在执行属性压缩时N1=N2=N);H指的是预置窗口的层高(几何预置窗口的层高为K,属性预置窗口的层高为1),C指的是上下文信息的维度(几何压缩对应的维度为CG,属性压缩对应的维度为CA+K×CG);H×C指的是预置窗口内上下文信息的维度;N0指的是待压缩节点的数量;C0指的是待压缩节点对应的概率分布的维度(几何压缩对应的维度是255,属性压缩例如RGB的维度是3×256×8维(每个叶节点的属性编码有8位))。
将当前待压缩节点的上下文信息(N,H,C),输入至第一层注意力操作网络中,得出第一加权上下文矩阵(N,H×C);再将第一加权上下文矩阵与上下文信息相加,将相加后的结果输入至第一层多层感知机中,得到第二加权上下文矩阵(N,H×C);再将第二加权上下文矩阵输入至第二层注意力操作网络中,得到第三加权上下文矩阵(N,H×C);将第三加权上下文矩阵与第二加权上下文矩阵相加,将相加的结果输入至第二层多层感知机网络中,得到第四加权上下文矩阵(N,H×C),将第四加权上下文矩阵输入至第三层多层感知机网络中,得出第五加权上下文矩阵(N,C0);将第五加权上下文矩阵通过softmax函数,预测出当前待压缩节点对应的待压缩信息的概率分布(N0,C0)。
将当前待压缩节点的上下文信息输入至注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵,包括:
将当前待压缩节点的上下文信息输入至第一多层感知机,得出第一输出矩阵;将当前待压缩节点的上下文信息输入至第二多层感知机,得出第二输出矩阵;将当前待压缩节点的上下文信息输入至第三多层感知机,得出第三输出矩阵;将第二输出矩阵的转置矩阵与第一输出矩阵相乘,得出矩阵内积;将矩阵内积与遮罩矩阵相加,将相加后的结果输入至softmax函数,得出注意力矩阵;将注意力矩阵与第三输出矩阵相乘,得到当前待压缩节点的第一加权上下文矩阵。
其中,通过遮罩矩阵(右上角为-∞,左下角为0的矩阵)使得预测当前待压缩节点对应的概率分布时,只考虑当前待压缩节点前面的已压缩节点,进而导致注意力值分母求和的长度不同。例如,当第j个节点为当前待压缩节点时,第j+1以后的节点的上下文信息将不存在于第j个节点的结果中。因此,在一次计算中便可以根据输出的N个结果,通过截断得出后N0个结果,作为后N0个待压缩节点的概率分布,以减少网络传播次数,加快压缩速度。
其中,注意力矩阵中的每一个元素为注意力值,通过以下公式计算注意力矩阵的注意力值:
公式(1)中,指的是第j个节点与第k个节点上下文之间的注意力值,第j个节点是同层节点中的第j个节点并且是当前待压缩节点,fj是第j个节点的上下文信息,fk是第k个节点的上下文信息,第k个节点是第j个节点的前序同层节点;分子代表第j个节点与第k个节点上下文之间的相似值,分母指的是第j个节点与第1个节点至第j个节点上下文之间的相似值的和;MLP2(fj)指的是将第j个节点的上下文信息输入至第二多层感知机,得出第j个节点对应的第二输出矩阵;指的是将第k个节点的上下文信息输入至第一多层感知机,得出第k个节点对应的第一输出矩阵的转置矩阵。
也就是说,第k个节点位于第1个节点至第j个节点之间。
S104、根据待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。
即,将全部待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。其中,根据点云压缩的对象,点云码流分为几何码流和属性码流,即,进行几何压缩时,压缩得到的是几何码流;进行属性压缩时,压缩得到的是属性码流。
算数编码器将输入的待压缩节点对应的概率分布和待压缩信息,转换为一个小于1的小数,此小数的保存方式为二进制,也即为生成的点云码流。点云码流是压缩后的一串二进制的比特流。例如,可以将原本大小为1.94MB(2038480字节)的点云文件压缩为大小55.5KB(56890字节)的文件,节省了97.2%的存储空间。
一优选实施例,请参阅图2,图2示出了本申请实施例所提供的一种点云的几何压缩方法的流程图。一种点云的几何压缩方法的步骤如下:
S201、获取当前待压缩节点对应的几何上下文信息,得出N1×K×3维的几何上下文信息。
获取当前待压缩节点对应的几何上下文信息,得出N1×K×3维的几何上下文信息。其中,N1个节点指的是几何预置窗口中,当前待压缩节点的同层节点数量,K指的是几何预置窗口的高度,3指的是节点占用码、节点深度、节点索引。也就是说,N1个节点是包括当前待压缩节点的。
S202、将N1×K×3维的几何上下文信息,通过独热码操作和嵌入操作进行扩维,生成扩维几何上下文信息,为N1×K×CG维的扩维几何上下文信息。
本申请实施例中,节点占用码的范围是1-255,进而节点占用码的进行独热码操作后是255维;节点深度的范围是1-16,进而节点索引的进行独热码操作后是16维;节点索引的范围是0-7,进而节点深度的进行独热码操作后是8维。再将255维的节点占用码通过嵌入操作转换为128维,将16维的节点深度通过嵌入操作转换为6维,将8维的节点索引通过嵌入操作转换为4维。因此,通过独热码操作和嵌入操作进行扩维后,几何上下文信息的3维数据转换成CG维(共138维,为128维、6维、4维的和值)。
S203、将N1×K×CG维的扩维几何上下文信息输入至训练好的注意力神经网络模型中,预测当前待压缩节点对应的节点占用码的概率分布。
S204、判断是否全部待压缩节点对应的节点占用码的概率分布都获取完成。
若全部待压缩节点对应的节点占用码的概率分布没有获取完成,则返回步骤S201;若全部待压缩节点对应的节点占用码的概率分布均获取完成,则将全部待压缩节点对应的节点占用码的概率分布和待压缩节点的节点占用码输入至算数编码器中进行熵编码,得到几何码流,将几何码流作为点云的几何压缩结果。
一优选实施例,请参阅图3,图3示出了本申请实施例所提供的一种点云的属性压缩方法的流程图。一种点云的属性压缩方法的步骤如下:
S301、获取当前待压缩节点对应的节点属性(节点属性残差)上下文信息,得出N2×8×NA维的节点属性(节点属性残差)上下文信息。
获取当前待压缩节点对应的节点属性上下文信息,得出N2×8×NA维的属性上下文信息。其中,N2个节点指的是属性预置窗口中,当前待压缩节点对应的同层节点数量,8指的是每个节点包括的补全后的属性编码的位数(即,上述中提出的节点占用码为73对应的属性编码补全后为aabbbccc),NA指的是节点属性个数(即,3位RGB值或者1位反射率值)。
S302、将N2×8×NA维的节点属性(节点属性残差)上下文信息,通过独热码操作和嵌入操作进行扩维,生成扩维节点属性(节点属性残差)上下文信息,为N2×CA维的扩维节点属性(节点属性残差)上下文信息。
本申请实施例中的节点属性采用3位RGB值,则NA维对应的是红色值、蓝色值和绿色值。红色值、蓝色值和绿色值的取值范围均为0-255,因此,将红色值进行独热码操作后转换为256维,蓝色值进行独热码操作后转换为256维,绿色值进行独热码操作后转换为256维。再将256维的红色值通过嵌入操作转换为128维,将256维的蓝色值通过嵌入操作转换为128维,将256维的绿色值通过嵌入操作转换为128维。因此,通过独热码操作和嵌入操作进行扩维后,属性上下文信息的NA维数据转换成CA维(共384维,为128维、128维、128维的和值)。
S303、将N2×CA维的扩维节点属性(节点属性残差)上下文信息和N2×K×CG维的扩维几何上下文信息,输入至训练好的注意力神经网络模型中,预测当前待压缩节点对应的节点属性(节点属性残差)的概率分布。
也就是说,在属性压缩时也需要几何上下文信息,当进行属性压缩时需要的几何上下文信息对应的几何窗口,与进行几何压缩时对应的几何窗口可以是不同的。
S304、判断是否全部待压缩节点对应的节点属性(节点属性残差)的概率分布都获取完成。
若全部待压缩节点对应的节点属性(节点属性残差)的概率分布没有获取完成,则返回步骤S301;若全部待压缩节点对应的节点属性(节点属性残差)的概率分布均获取完成,则将全部待压缩节点对应的节点属性(节点属性残差)的概率分布和待压缩节点的节点属性(节点属性残差)输入至算数编码器中进行熵编码,得到属性码流,将属性码流作为点云的属性压缩结果。
基于同一申请构思,本申请实施例中还提供了与上述实施例提供的点云的压缩方法对应的点云的解压缩方法,由于本申请实施例中的点云的解压缩方法其解决问题的原理与本申请上述实施例的点云的压缩方法相似,因此点云的解压缩的实施可以参见点云的压缩方法的实施,重复之处不再赘述。请参阅图10,图10示出了本申请实施例所提供的一种点云的压缩和解压缩的示意图。图10中的几何预测网络与属性预测网络,为本申请实施例中的注意力神经网络。
请参阅图4,图4示出了本申请实施例所提供的一种点云的解压缩方法的流程图。一种点云的解压缩方法的步骤如下:
S401、对树结构移动预置窗口,将每次移动预置窗口内的未解压缩的节点确定为当前待解压缩节点。
点云解压缩分为几何解压缩和属性解压缩。
S402、将当前待解压缩节点的上下文信息,输入至预先训练好的注意力神经网络模型中,预测当前待解压缩节点对应的待解压缩信息的概率分布。
当进行几何解压缩时,将当前待解压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及当前待解压缩节点的位置信息,作为当前待解压缩节点对应的上下文信息。
当进行属性解压缩时,将当前待压缩节点对应的同层节点的多层父亲节点的节点占用码和位置信息、同层节点的节点占用码和位置信息、前序同层节点对应的节点属性和/或节点属性残差,作为待解压缩节点对应的上下文信息。
进行点云的解压缩的注意力神经网络与点云的压缩方法的注意力神经网络相同,具体的注意力神经网络的产生方式在此不在赘述。
需要说明的是,由于压缩和解压缩的注意力神经网络模型是相同的,输入的上下文信息也相同,进而压缩时得出的预测待解压缩节点对应的概率分布,与解压缩时得出的预测待解压缩节点对应的概率分布相同。
S403、将当前待解压缩节点对应的待解压缩信息的概率分布和点云码流,输入至算数解码器进行熵解码,得到当前待解压缩节点对应的待解压缩信息。
当进行几何解压缩时,待解压缩信息指的是节点占用码,点云码流指的是几何码流;当进行属性解压缩时,待解压缩信息指的是节点属性和/或节点属性残差,属性码流指的是属性码流。
S404、将待解压缩信息构建树结构,从树结构中获取点云,再通过反量化,得到解压缩点云。
将逐步解压缩得到的待解压缩信息构建树结构,从树结构中获取点云,再通过反量化,得到解压缩点云。
一优选实施例,请参阅图5,图5示出了本申请实施例所提供的一种点云的几何解压缩方法的流程图。一种点云的几何解压缩方法的步骤如下:
S501、获取当前待解压缩节点对应的几何上下文信息,得出N1×K×3维的几何上下文信息。
S502、将N1×K×3维的几何上下文信息,通过独热码操作和嵌入操作进行扩维,生成扩维几何上下文信息,为N1×K×CG维的扩维几何上下文信息。
S503、将N1×K×CG维的扩维几何上下文信息输入至训练好的注意力神经网络模型中,预测当前待解压缩节点的节点占用码的概率分布。
S504、将当前待解压缩节点的节点占用码的概率分布和几何码流,输入至算数解码器进行熵解码,解码出当前待解压缩节点的节点占用码。
S505、判断是否全部待解压缩节点的节点占用码都获取完成。
若全部待解压缩节点的节点占用码没有获取完成,则返回步骤S501。
若全部待解压缩节点的节点占用码获取完成(即,全部待解压缩节点均解压缩完成),将逐步解码得到的节点占用码构建树结构。从构建的完整的树结构中获得量化后的点云,将量化后的点云进行反量化,获得解压缩点云的坐标。
一优选实施例,请参阅图6,图6示出了本申请实施例所提供的一种点云的属性解压缩方法的流程图。一种点云的属性解压缩方法的步骤如下:
S601、获取当前待解压缩节点对应的节点属性(节点属性残差)上下文信息,得出N2×8×NA维的节点属性(节点属性残差)上下文信息。
S602、将N2×8×NA维的节点属性(节点属性残差)上下文信息,通过独热码操作和嵌入操作进行扩维,生成扩维节点属性(节点属性残差)上下文信息,为N2×CA维的扩维节点属性(节点属性残差)上下文信息。
S603、将N2×CA维的扩维节点属性(节点属性残差)上下文信息和N2×K×CG维的扩维几何上下文信息,输入至训练好的注意力神经网络模型中,预测当前待解压缩节点对应的节点属性(节点属性残差)的概率分布。
S604、将当前待解压缩节点的节点属性(节点属性残差)的概率分布和属性码流,输入至算数解码器进行熵解码,解码出待解压缩节点的节点属性(节点属性残差)。
S605、判断是否全部待解压缩节点的节点属性(节点属性残差)都获取完成。
若全部待解压缩节点的节点属性(节点属性残差)没有获取完成,则返回步骤S601。
若全部待解压缩节点的节点属性(节点属性残差)获取完成,将逐步解压缩得到的待解压缩节点的节点属性(节点属性残差)构建树结构的叶节点的将节点属性(节点属性残差)。将节点属性(节点属性残差)进行反量化,重构点云属性。
本实施例中提到注意力神经网络是深度学习的一种框架,指附图10中和公式(1)说明的操作。类似名为“Transformer”的网络均属于本发明所述的注意力神经网络范畴。
本申请实施例中还提供了与上述实施例提供的点云的压缩方法对应的点云的压缩装置,由于本申请实施例中的点云的压缩装置其解决问题的原理与本申请上述实施例的点云的压缩方法相似,因此点云的压缩装置的实施可以参见点云的压缩方法的实施,重复之处不再赘述。
请参见图11,图11示出了本申请实施例所提供的一种点云的压缩装置的示意图。点云的压缩装置100,包括第一量化模块101、第一确定模块102、第一预测模块103和第一压缩模块104。其中,第一量化模块101,用于将点云通过树结构对点的坐标进行二进制编码,将二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码;第一确定模块102,用于对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点;第一预测模块103,用于将当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布;第一压缩模块104,用于将待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将点云码流作为点云的压缩结果。
本申请实施例中还提供了与上述实施例提供的点云的解压缩方法对应的点云的解压缩装置,由于本申请实施例中的点云的解压缩装置其解决问题的原理与本申请上述实施例的点云的解压缩方法相似,因此点云的解压缩装置的实施可以参见点云的解压缩方法的实施,重复之处不再赘述。
图12示出了本申请实施例所提供的一种点云的解压缩装置的示意图。请参见图12。点云的解压缩装置200,包括第二确定模块201、第二预测模块202、第一解压缩模块203和第二量化模块204。其中,第二确定模块201,用于对树结构移动预置窗口,将每次移动预置窗口内的未解压缩的节点确定为当前待解压缩节点;第二预测模块202,用于将当前待解压缩节点的上下文信息,输入至预先训练好的注意力神经网络模型中,预测当前待解压缩节点对应的待解压缩信息的概率分布;第一解压缩模块203,用于将当前待解压缩节点对应的待解压缩信息的概率分布和点云码流,输入至算数解码器进行熵解码,得到当前待解压缩节点对应的待解压缩信息;第二量化模块204,用于将待解压缩信息构建树结构,从树结构中获取点云,再通过反量化,得到解压缩点云。
请参见图13,图13示出了本申请实施例提供的一种电子设备300的结构示意图,包括:处理器310、存储器320和总线330,存储器320存储有处理器310可执行的机器可读指令,当电子设备300运行时,处理器310与存储器320之间通过总线330进行通信,机器可读指令被处理器310运行时执行如上述实施例中的点云的压缩方法的步骤,和/或,点云的解压缩方法的步骤。
基于同一申请构思,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例提供的点云的压缩方法的步骤,和/或,点云的解压缩方法的步骤。具体地,存储介质能够为通用的存储介质,如移动磁盘、硬盘等,存储介质上的计算机程序被运行时,能够执行上述点云的压缩方法的步骤,和/或,点云的解压缩方法的步骤,通过将待压缩节点对应的同层节点和父亲节点的节点占用码和位置信息,作为待压缩节点的上下文信息,考虑待压缩节点的同层节点和父亲节点,解决了现有技术中计算量大以及压缩效率低的技术问题,达到了提高压缩效果和减少计算量的技术效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者技术方案的部分可以以软件产品的形式体现出来,计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种点云的压缩方法,其特征在于,所述方法包括:
将点云通过树结构对点的坐标进行二进制编码,将所述二进制编码转化为十进制编码,作为树结构中每个节点对应的节点占用码;
对树结构中的节点移动预置窗口,将预置窗口内的未压缩的节点确定为当前待压缩节点;
将所述当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布;
根据待压缩节点对应的待压缩信息的概率分布和待压缩信息,输入至算数编码器进行熵编码,得到点云码流,将所述点云码流作为点云的压缩结果。
2.根据权利要求1所述的压缩方法,其特征在于,所述当前待压缩节点的上下文信息,包括:当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及当前待压缩节点的位置信息;
将当前待压缩节点对应的同层节点的多层父亲节点、前序同层节点的节点占用码和位置信息,以及当前待压缩节点的位置信息,作为待压缩节点对应的上下文信息,包括:
将所述当前待压缩节点的前序同层节点和所述前序同层节点对应的多层父亲节点的节点占用码和位置信息,作为当前待压缩节点对应的第一上下文信息;
将所述当前待压缩节点的位置信息、所述当前待压缩节点的前一个已压缩的同层节点的节点占用码,以及所述当前待压缩节点对应的多层父亲节点的节点占用码和位置信息,作为当前待压缩节点对应的第二上下文信息,
将所述第一上下文信息和所述第二上下文信息,作为当前待压缩节点对应的上下文信息;
所述当前待压缩节点对应的待压缩信息,包括:当前待压缩节点的节点占用码。
3.根据权利要求1所述的压缩方法,其特征在于,所述当前待压缩节点的上下文信息,还包括:当前待压缩节点对应的同层节点的多层父亲节点的节点占用码和位置信息、同层节点的节点占用码和位置信息、前序同层节点对应的节点属性和/或节点属性残差;
所述当前待压缩节点对应的待压缩信息,还包括:当前待压缩节点的节点属性和/或节点属性残差。
4.根据权利要求1所述的压缩方法,其特征在于,所述将所述当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:
将当前待压缩节点的上下文信息输入至所述注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵;
将所述第一加权上下文矩阵和所述上下文信息相加,将相加的结果输入至第一层多层感知机网络中,得到第二加权上下文矩阵;
再将所述第二加权上下文矩阵输入至第二层注意力操作网络中,得到第三加权上下文矩阵;
将所述第三加权上下文矩阵与第二加权上下文矩阵相加,将相加的结果输入至第二层多层感知机网络中,得出第四加权上下文矩阵;
将所述第四加权上下文矩阵输入至第三层多层感知机网络中,得出第五加权上下文矩阵;
将所述第五加权上下文矩阵通过softmax函数,预测出当前待压缩节点对应的待压缩信息的概率分布。
5.根据权利要求4所述的压缩方法,其特征在于,所述将当前待压缩节点的上下文信息输入至所述注意力神经网络模型的第一层注意力操作网络中,得到当前待压缩节点的第一加权上下文矩阵,包括:
将所述当前待压缩节点的上下文信息输入至第一多层感知机,得出第一输出矩阵;
将所述当前待压缩节点的上下文信息输入至第二多层感知机,得出第二输出矩阵;
将所述当前待压缩节点的上下文信息输入至第三多层感知机,得出第三输出矩阵;
将所述第二输出矩阵的转置矩阵与所述第一输出矩阵相乘,得出矩阵内积;
将所述矩阵内积与遮罩矩阵相加,将相加后的结果输入至softmax函数,得出注意力矩阵;
将所述注意力矩阵与第三输出矩阵相乘,得到当前待压缩节点的第一加权上下文矩阵。
6.根据权利要求5所述的压缩方法,其特征在于,所述注意力矩阵中的每一个元素为注意力值;
通过以下公式计算注意力矩阵的注意力值:
公式(1)中,指的是第j个节点与第k个节点上下文之间的注意力值,第j个节点是同层节点中的第j个节点并且是当前待压缩节点,fj是第j个节点的上下文信息,fk是第k个节点的上下文信息,第k个节点是第j个节点的前序同层节点;
7.根据权利要求1所述的压缩方法,其特征在于,所述将所述当前待压缩节点的上下文信息输入至预先训练好的注意力神经网络模型中,预测当前待压缩节点对应的待压缩信息的概率分布,包括:
将所述当前待压缩节点的上下文信息进行扩维,生成扩维上下文信息;
将所述扩维上下文信息输入至预先训练好的注意力神经网络模型中,预测出当前待压缩节点对应的待压缩信息的概率分布。
8.一种点云的解压缩方法,其特征在于,所述方法包括:
对树结构移动预置窗口,将每次移动预置窗口内的未解压缩的节点确定为当前待解压缩节点;
将所述当前待解压缩节点的上下文信息,输入至预先训练好的注意力神经网络模型中,预测当前待解压缩节点对应的待解压缩信息的概率分布;
将当前待解压缩节点对应的待解压缩信息的概率分布和点云码流,输入至算数解码器进行熵解码,得到当前待解压缩节点对应的待解压缩信息;
将待解压缩信息构建树结构,从树结构中获取点云,再通过反量化,得到解压缩点云。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至7任一所述的点云的压缩方法的步骤,和/或,如权利要求8所述的点云的解压缩方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的点云的压缩方法的步骤,和/或,如权利要求8所述的点云的解压缩方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127272.2A CN114972551B (zh) | 2022-02-11 | 2022-02-11 | 一种点云的压缩和解压缩方法 |
PCT/CN2022/085657 WO2023151170A1 (zh) | 2022-02-11 | 2022-04-07 | 一种点云的压缩和解压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127272.2A CN114972551B (zh) | 2022-02-11 | 2022-02-11 | 一种点云的压缩和解压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114972551A true CN114972551A (zh) | 2022-08-30 |
CN114972551B CN114972551B (zh) | 2024-12-17 |
Family
ID=82975288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210127272.2A Active CN114972551B (zh) | 2022-02-11 | 2022-02-11 | 一种点云的压缩和解压缩方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114972551B (zh) |
WO (1) | WO2023151170A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119518A1 (zh) * | 2022-12-09 | 2024-06-13 | Oppo广东移动通信有限公司 | 编解码方法、解码器、编码器、码流及存储介质 |
CN118379373A (zh) * | 2024-06-21 | 2024-07-23 | 深圳市家鸿口腔医疗股份有限公司 | 一种义齿三维成像的数据处理方法及系统 |
WO2024157768A1 (ja) * | 2023-01-23 | 2024-08-02 | ソニーグループ株式会社 | 情報処理装置および方法 |
WO2024221458A1 (zh) * | 2023-04-28 | 2024-10-31 | Oppo广东移动通信有限公司 | 点云编解码方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118283276A (zh) * | 2024-03-29 | 2024-07-02 | 中钢集团马鞍山矿山研究总院股份有限公司 | 基于自适应点云压缩算法的点云Web可视化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113284203A (zh) * | 2021-05-04 | 2021-08-20 | 北京航空航天大学 | 基于八叉树编码和体素上下文的点云压缩及解压缩方法 |
CN113473127A (zh) * | 2020-03-30 | 2021-10-01 | 鹏城实验室 | 一种点云几何编码方法、解码方法、编码设备及解码设备 |
CN113574540A (zh) * | 2019-09-16 | 2021-10-29 | 腾讯美国有限责任公司 | 点云压缩方法和装置 |
CN113613010A (zh) * | 2021-07-07 | 2021-11-05 | 南京大学 | 基于稀疏卷积神经网络的点云几何无损压缩方法 |
US20210407147A1 (en) * | 2020-06-24 | 2021-12-30 | Apple Inc. | Point Cloud Compression Using Octrees with Slicing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3514968B1 (en) * | 2018-01-18 | 2023-03-08 | BlackBerry Limited | Methods and devices for entropy coding point clouds |
CN116132671A (zh) * | 2020-06-05 | 2023-05-16 | Oppo广东移动通信有限公司 | 点云压缩方法、编码器、解码器及存储介质 |
-
2022
- 2022-02-11 CN CN202210127272.2A patent/CN114972551B/zh active Active
- 2022-04-07 WO PCT/CN2022/085657 patent/WO2023151170A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113574540A (zh) * | 2019-09-16 | 2021-10-29 | 腾讯美国有限责任公司 | 点云压缩方法和装置 |
CN113473127A (zh) * | 2020-03-30 | 2021-10-01 | 鹏城实验室 | 一种点云几何编码方法、解码方法、编码设备及解码设备 |
WO2021196392A1 (zh) * | 2020-03-30 | 2021-10-07 | 鹏城实验室 | 一种点云几何编码方法、解码方法、编码设备及解码设备 |
US20210407147A1 (en) * | 2020-06-24 | 2021-12-30 | Apple Inc. | Point Cloud Compression Using Octrees with Slicing |
CN113284203A (zh) * | 2021-05-04 | 2021-08-20 | 北京航空航天大学 | 基于八叉树编码和体素上下文的点云压缩及解压缩方法 |
CN113613010A (zh) * | 2021-07-07 | 2021-11-05 | 南京大学 | 基于稀疏卷积神经网络的点云几何无损压缩方法 |
Non-Patent Citations (4)
Title |
---|
HAIYAN XU: "Context-based compression of point cloud octree structure", 대한전자공학회 학술대회, 29 July 2017 (2017-07-29) * |
SEBASTIEN LASSERRE: "Using neighbor nodes for the compression of octrees representating the geometry of point clouds", PROCEEDINGS OF THE 10TH ACM MULTIMEDIA SYSTEM CONFERENCE, 18 June 2019 (2019-06-18) * |
律帅;达飞鹏;黄源;: "基于数据类型转换的点云快速有损压缩算法", 图学学报, no. 02, 15 April 2016 (2016-04-15) * |
李娇娇: "基于深度学习的3维点云处理综述", 计算机研究与发展, 26 August 2021 (2021-08-26) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119518A1 (zh) * | 2022-12-09 | 2024-06-13 | Oppo广东移动通信有限公司 | 编解码方法、解码器、编码器、码流及存储介质 |
WO2024157768A1 (ja) * | 2023-01-23 | 2024-08-02 | ソニーグループ株式会社 | 情報処理装置および方法 |
WO2024221458A1 (zh) * | 2023-04-28 | 2024-10-31 | Oppo广东移动通信有限公司 | 点云编解码方法、装置、设备及存储介质 |
CN118379373A (zh) * | 2024-06-21 | 2024-07-23 | 深圳市家鸿口腔医疗股份有限公司 | 一种义齿三维成像的数据处理方法及系统 |
CN118379373B (zh) * | 2024-06-21 | 2024-08-20 | 深圳市家鸿口腔医疗股份有限公司 | 一种义齿三维成像的数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023151170A1 (zh) | 2023-08-17 |
CN114972551B (zh) | 2024-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114972551A (zh) | 一种点云的压缩和解压缩方法 | |
CN111405281A (zh) | 一种点云属性信息的编码方法、解码方法、存储介质及终端设备 | |
JP7408799B2 (ja) | ニューラルネットワークモデルの圧縮 | |
US9111333B2 (en) | Predictive position encoding | |
US20240257404A1 (en) | Methods for level partition of point cloud, and decoder | |
CN110691243A (zh) | 一种基于深度卷积网络的点云几何压缩方法 | |
US20140303944A1 (en) | Predictive position decoding | |
CN113613010A (zh) | 基于稀疏卷积神经网络的点云几何无损压缩方法 | |
CN115379190A (zh) | 一种点云处理方法、装置及计算机设备、存储介质 | |
US12347150B2 (en) | System and method for scene graph lossless compression by context-based graph convolution | |
US20240087176A1 (en) | Point cloud decoding method and apparatus, point cloud encoding method and apparatus, computer device, computer-readable storage medium | |
TW202406344A (zh) | 一種點雲幾何資料增強、編解碼方法、裝置、碼流、編解碼器、系統和儲存媒介 | |
CN112256652B (zh) | 一种三维点云属性压缩方法、系统及终端 | |
WO2023205969A1 (zh) | 点云几何信息的压缩、解压缩及点云视频编解码方法、装置 | |
CN115471576A (zh) | 基于深度学习的点云无损压缩方法和装置 | |
CN114025146A (zh) | 基于场景流网络与时间熵模型的动态点云几何压缩方法 | |
CN113810058A (zh) | 数据压缩方法、数据解压缩方法、装置及电子设备 | |
CN115714864A (zh) | 点云属性编码方法、装置、解码方法以及装置 | |
CN118982613A (zh) | 点云重建方法、点云压缩方法、电子设备及可读存储介质 | |
CN116843774A (zh) | 点云数据压缩方法、装置、设备及存储介质 | |
CN117692662A (zh) | 一种基于双八叉树结构的点云编码及解码方法 | |
CN114450692B (zh) | 神经网络解码的方法、装置、计算机设备及计算机可读介质 | |
CN116458158B (zh) | 帧内预测方法及装置、编解码器、设备、存储介质 | |
CN119722825B (zh) | 一种基于层间残差和irn连接残差的点云几何压缩方法及系统 | |
CN115272499A (zh) | 一种基于混合上下文熵模型的点云几何编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |