技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于八叉树保留模型的静态点云编码方法  >  正文

一种基于八叉树保留模型的静态点云编码方法

  • 国知局
  • 2024-08-02 13:54:53

本发明涉及一种点云编码方法,尤其是一种基于八叉树保留模型的静态点云编码方法。

背景技术:

1、静态点云是一种由众多空间点构成的数据结构,能够有效地捕捉并呈现现实世界的物理形态。近年来,静态点云因其提供了高度精确和详细的三维空间数据,已广泛应用于虚拟现实、自动驾驶、文化遗产保护、地理信息系统等多个领域。然而,由于静态点云数据量庞大,存储和传输方面面临巨大挑战。因此,研究有效的静态点云压缩方法具有重要的研究意义和广泛的应用价值。

2、目前深度学习技术在静态点云压缩领域迅速发展,主要包括基于点、投影、体素和树结构的静态点云压缩方法。基于点的静态点云压缩方法直接处理原始点云数据,利用点与点之间的相关性进行特征提取和压缩,这种方法可以保留点云的原始几何信息,避免信息丢失或量化误差,但在处理大规模或高密度点云时,其编码效率可能有所不足;基于投影的静态点云压缩方法将点云投影到二维图像上,并利用二维图像压缩技术进行压缩,这种方法在处理某些特定类型的点云数据(例如近似平面的点云)时表现出色,但在处理复杂的三维结构时可能存在局限性,从而影响编码压缩效果;基于体素的静态点云压缩方法将点云转化为规则的三维网格,点云中的点就被转化为三维网格中的体素,使用0-1来标识体素是否被占用,然后利用三维卷积神经网络来提取点云的特征和语义信息,然而,这种方法对点云的密度敏感,在处理稀疏点云时可能会受到影响,如体素化的精度损失,同时计算和内存成本也可能较高;基于树的静态点云压缩方法使用八叉树来递归地划分点云,直到达到所需的八叉树深度,然后使用预训练好的上下文模型进行预测每个节点的概率再使用编码器编码成比特流,通过自适应空间划分,该方法专注于包含点的区域,并具有分层描述的能力,但是该方法在处理非均匀分布的静态点云数据时,可能会产生许多空的或者只包含少量点的节点,这会导致存储的空间利用率降低,并且构建和遍历基于树的数据结构需要较高的计算复杂性,编码压缩效率低。

技术实现思路

1、本发明所要解决的技术问题是提供一种基于八叉树保留模型的静态点云编码方法,能够在保证较高的峰值信噪比的同时,降低比特率,从而提升了编码压缩效果。

2、本发明解决上述技术问题所采用的技术方案为:一种基于八叉树保留模型的静态点云编码方法,包括以下步骤:

3、步骤①,获取待编码的静态点云对象,并通过八叉树进行表示;

4、步骤②,遍历步骤①中的八叉树得到节点序列;

5、步骤③,获取节点序列中的所有节点的占用概率;

6、步骤④,将所有节点的占用概率输入到算术编码器中,输出一个高度压缩的比特流,完成静态点云编码;

7、所述的步骤③中,先通过滑动上下文窗口对节点序列进行特征提取,得到节点序列中待编码节点的上下文信息,再将待编码节点的上下文信息输入至预训练的八叉树保留模型中进行概率预测,得到待编码节点的占用概率,最终得到节点序列中的所有节点的占用概率。

8、与现有技术相比,本发明的优点在于先使用八叉树结构对静态点云对象进行划分;然后通过上下文窗口来提取待编码节点的相关兄弟和祖先节点的重要特征;最后使用预训练的八叉树保留模型进行编码预测,可以更有效的提取相邻节点之间的先验知识;经过实验证明,在semantickitti数据集中,本发明平均比g-pcc方法节省了25.4%的比特率,比voxelcontext-net方法节省了20.5%的比特率,比octformer方法节省了6.35%的比特率;在mpeg 8i数据集中,本文与现有的方法相比平均节省了44.3%的比特率,综上所述,本发明提升了编码压缩效果。

9、进一步的,将所述的步骤②中得到的所述的节点序列记为x,x={x1,x2,...,xi,...xn},其中,1≤i≤n,n表示八叉树节点的总数,xi表示第i个八叉树节点。

10、进一步的,所述的步骤③中,得到节点序列中的所有节点的占用概率的具体操作过程为:

11、步骤③-1,将节点序列中第i个八叉树节点的特征集合记为fi,fi={αi,ti},其中,αi表示第i个八叉树节点的祖先特征集合,ti表示第i个八叉树节点的原始特征,ti包括第i个八叉树节点的占用码、第i个八叉树节点在八叉树中的级别以及第i个八叉树节点在八叉树的索引位置;

12、步骤③-2,滑动上下文窗口的后端从节点序列的第一个节点开始以步长为1向后滑动;

13、步骤③-3,将节点序列的第一个节点作为待编码节点,执行步骤③-4;

14、步骤③-4,判断滑动上下文窗口截取的一组节点集中是否有占用节点,若否,则将待编码节点的祖先特征集合作为该待编码节点的上下文信息,执行步骤③-5;若是,则将所有占用节点的特征集合作为该待编码节点的上下文信息,执行步骤③-5;

15、步骤③-5,将待编码节点的上下文信息输入到预训练的八叉树保留模型中进行概率预测,得到待编码节点的占用概率,若待编码节点的占用概率为0则将其记为空节点,若待编码节点的占用概率不为0则将其记为占用节点,且滑动上下文窗口中占用节点数量+1,执行步骤③-6;

16、步骤③-6,判断滑动上下文窗口中占用节点数量是否大于滑动上下文窗口预设的长度,若否,执行步骤③-7;若是,将滑动上下文窗口的第一个占用节点舍去,执行步骤③-7;

17、步骤③-7,将节点序列中下一个节点作为新的待编码节点,返回执行步骤③-4,直至得到节点序列中所有节点的占用概率。

18、进一步的,所述的八叉树保留模型由输入嵌入层、保留机制层、第一残差连接与归一化层、多层感知机层、第二残差连接与归一化层以及softmax函数输出层组成;

19、所述的输入嵌入层对待编码节点的上下文信息进行嵌入,得到128维的输入序列;

20、所述的保留机制层对输入序列进行处理,得到最终的保留机制输出;

21、所述的第一残差连接与归一化层将输入序列与最终的保留机制输出进行逐元素相加并进行归一化操作得到新的输出序列;

22、所述的多层感知机层中对新的输出序列进行多层感知机操作,得到多层感知机后的输出序列;

23、所述的第二残差连接与归一化层将新的输出序列与多层感知机后的输出序列进行逐元素相加与归一化操作得到最终输出序列;

24、所述的softmax函数输出层通过softmax函数对最终输出序列进行处理,得到待编码节点的占用概率并输出。

25、进一步的,所述的保留机制层包括第一归一化层、第一线性层、第二线性层、第三线性层、第四线性层、位置嵌入层、第一矩阵乘法层、掩码操作层、第二矩阵乘法层、连接层、第二归一化层、门控层、第三矩阵乘法层和第五线性层;

26、所述的第一归一化层对输入序列进行归一化操作,得到归一化后的输入序列;

27、所述的第一线性层对归一化后的输入序列进行投影得到查询矩阵,并以多头表示;

28、所述的第二线性层对归一化后的输入序列进行投影得到键矩阵,并以多头表示;

29、所述的第三线性层对归一化后的输入序列进行投影得到值矩阵,并以多头表示;

30、所述的位置嵌入层通过位置编码器对多头表示的查询矩阵和多头表示的键矩阵进行位置编码,得到多头表示的位置编码查询矩阵和多头表示的位置编码键矩阵;

31、所述的第一矩阵乘法层对多头表示的位置编码查询矩阵和多头表示的位置编码键矩阵进行相乘得到多头表示的权值;

32、所述的掩码操作层对多头表示的权值进行掩码操作得到多头表示的掩码数据,掩码操作包括指数衰减机制;

33、所述的第二矩阵乘法层对多头表示的掩码数据和多头表示的值矩阵进行相乘,得到多头表示的保留率;

34、上述操作表示为:

35、其中,op表示多头表示的保留率,1≤m≤p≤p,y表示衰减因子,qp表示输入序列的位置索引为p时对应的查询矩阵,einθ表示位置编码后的qp,km表示输入序列的位置索引为m时对应的键矩阵,eimθ表示位置编码后的km,表示共轭转置,vm表示输入序列的位置索引为m时对应的值矩阵,p和m分别表示输入序列的位置索引,p表示输入序列的整个长度;

36、所述的连接层将多头表示的保留率组合得到单一的输出向量;

37、所述的第二归一化层对输出向量进行归一化操作,得到归一化后的输出向量;

38、所述的第四线性层对输入序列进行线性变换得到预处理后的数据;

39、所述的门控层通过relu激活函数对预处理后的数据进行处理,得到激活值;

40、所述的第三矩阵乘法层对归一化后的输出向量和激活值进行相乘,得到输出权重;

41、所述的第五线性层对输出权重进行线性操作得到最终的保留机制输出。

42、进一步的,所述的归一化操作为减去均值并除以标准差,得到均值接近0,方差接近1的数据分布。

43、进一步的,所述的softmax函数输出层通过soffmax函数对最终输出序列进行处理,得到待编码节点的占用概率并输出的操作表示为:q(y|c;w)=softmax(l),其中,q表示待编码节点的占用概率,y表示待编码节点,c表示待编码节点的上下文信息,w表示预训练的八叉树保留模型的权值,softmax(·)表示softmax函数,l表示最终输出序列。

44、进一步的,所述的预训练的八叉树保留模型的训练过程如下:

45、根据待编码的静态点云对象的形状选择训练集:

46、若待编码的静态点云对象的形状为稀疏点云,则选用公开的semantickitti数据集的前11组序列作为训练集;

47、若待编码的静态点云对象的形状为密集点云,则选用公开的mpeg 8i数据集中solider10和longdress10作为训练集;

48、设置训练参数包括:批量大小设置为32,学习率设置为0.001;

49、将训练集输入至待训练的八叉树保留模型中进行训练,

50、定义待编码节点的交叉熵损失函数为l,l=-∑dlogqd(yd|cd;w),其中,logqd(yd|cd;w)表示第d个待编码节点的占用分布,qd表示第d个待编码节点的占用概率分布,yd表示第d个待编码节点,cd第d个待编码节点对应的上下文信息,w表示预训练的八叉树保留模型的权值;

51、设置最大迭代次数为8,根据交叉熵损失函数,使用adam优化器对待训练的八叉树保留模型进行迭代优化,直到达到设置的最大迭代次数时,停止迭代过程,每10个批次记录八叉树保留模型的权值,选择交叉熵最小化时对应的八叉树保留模型作为预训练的八叉树保留模型。

52、进一步的,所述的步骤①中,用八叉树表示待编码的静态点云对象的过程如下:

53、初始化一个立方体边界框,作为包含整个静态点云对象的八叉树的根节点;

54、从该根节点出发,采用递归方法将立方体边界框均匀划分为八个子立方体,

55、判断每个子立方体是否含有点云数据,若是,则将其占用状态标记为非空,并进行进一步的细分;若否,则将其占用状态标记为空,并停止进一步的细分;

56、当每个子立方体均达到预设的最大树深度或不包含任何点云数据,则停止细分;

57、根据每个子立方体的占用状态构建得到用八叉树表示的点云数据。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241079.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。