Enhancing Octree-Based Context Models for Point Cloud Geometry Compression 论文笔记

1. 论文基本信息

发布于: IEEE SPL 2024

2. 创新点

  1. 分析了基于 one-hot 编码的交叉熵损失函数为什么不能准确衡量标签与预测概率分布之间的差异。
  2. 介绍了 ACNP 模块,该模块通过预测占用的子节点数量来增强上下文模型的表现。
  3. 实验证明了ACNP模块在基于八叉树的上下文模型中的有效性。

3. 背景

  • 现有上下文模型的局限性:

现有的上下文模型使用交叉熵作为损失函数,但交叉熵更适用于分类问题,无法准确衡量标签与预测概率分布之间的差异。在这些模型中,节点的占用情况被转换为255维的one-hot编码,作为训练标签。然后使用交叉熵来计算标签与上下文模型估计的概率分布之间的差异。这种方法可以衡量子节点之间的位置信息差异,但对于衡量实际占用的子节点数量和预测的差异不够准确。这实际上是一个回归问题,而不是分类问题。

  • ACNP模块的提出:

为了应对上述问题,作者提出了一个基于注意力的ACNP模块,该模块直接预测占用的子节点数量,并将其映射为一个8维向量,该向量包含占用子节点数量的信息。这个8维向量作为特征,帮助上下文模型的训练。该模块是通用的,能够提升多种上下文模型的性能。

核心问题所在:

当前使用的交叉熵损失函数适合分类问题,但在八叉树几何压缩上下文中使用它来衡量预测与真实占用子节点数量之间的差异(这里本身是一个回归问题)时是不合适的。

举例说明:假设一个八叉树节点的真实占用状态是 11100000 (224),即只有第六、第七和第八个子节点被占用(实际占用数量为3个)。但如果模型预测状态是11111111(255),交叉熵可能会产生一个相对较小的损失,因为 one-hot 编码没有显著差异。但实际上,两者的子节点占用数量相差很大:预测的数量是8个,而实际只有3个。

当占用子节点的数量已知时,占用子节点的位置成为一个分类问题。在这种情况下,交叉熵损失适用。

因此,交叉熵损失只是在判断两者one-hot编码的差异,但并未直接衡量预测与实际占用子节点数量的误差。这种差异对于几何压缩来说是重要的,因为目标是在尽可能少的比特中准确表示点云。 在这个场景下,模型的任务不仅是预测每个子节点是否被占用(分类),而且是要准确预测占用的子节点数量(回归)。

4. pipeline

ACNP 模块的核心思想是通过注意力机制来预测当前节点的占用子节点数量,并将这一信息融入到上下文模型中以提升模型性能。

结构组成:

  1. 注意力层:首先,将节点的上下文信息输入注意力层,生成加权后的上下文信息。这一步通过注意力机制强调重要的上下文特征。

  2. 两层 MLP:然后,将加权后的上下文信息输入一个两层的多层感知机(MLP),它聚合这些信息并输出预测的子节点占用数量

  3. 预测映射到 8 维向量:由于一维的

    不能直接用于 MLP 训练,系统将其映射到 8 维向量


    这个向量通过如下公式计算:

  1. Softmax 层:接着,将 Oi 输入到 Softmax 层,生成一个 8 维的概率向量 Vi。其中,第 k 维表示节点 Xi 具有 k 个占用子节点的概率。
  1. 上下文模型整合:最终,Vi 被整合到上下文模型中,作为一种特征信息用于上下文模型的训练,从而生成增强的概率分布 Pi 。
  2. 损失函数:

5. 💎实验成果展示

相关推荐
Y1nhl1 分钟前
Pyspark学习一:概述
数据库·人工智能·深度学习·学习·spark·pyspark·大数据技术
明.2443 分钟前
DFS 洛谷P1123 取数游戏
算法·深度优先
维度攻城狮2 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
简简单单做算法2 小时前
基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码
人工智能·python·深度学习·算法·分类·mediapipe·限定半径最近邻分类树
hvinsion3 小时前
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理
开发语言·python·自动化·自动化任务管理
Tisfy3 小时前
LeetCode 2360.图中的最长环:一步一打卡(不撞南墙不回头) - 通过故事讲道理
算法·leetcode··题解
LuckyAnJo3 小时前
Leetcode-100 链表常见操作
算法·leetcode·链表
就决定是你啦!3 小时前
机器学习 第一章 绪论
人工智能·深度学习·机器学习
飞飞翼4 小时前
python-flask
后端·python·flask
双叶8364 小时前
(C语言)虚数运算(结构体教程)(指针解法)(C语言教程)
c语言·开发语言·数据结构·c++·算法·microsoft