文章目录

  • OctAttention: Octree-based Large-scale Contexts Model for Point Cloud Compression
    • 方法
      • 模型架构
      • Octree Structure
      • Context Model
      • Tree-structured Attention
      • Learning
    • 结果
    • 消融实验

OctAttention: Octree-based Large-scale Contexts Model for Point Cloud Compression

https://arxiv.org/pdf/2202.06028v2.pdf
传送门

OctAttention采用八叉树对点云进行编码,并利用八叉树中兄弟节点和祖先节点(大范围)的信息,通过自注意力模型(Transformer那一套东西)对八叉树各个节点进行概率建模以进行进一步的熵编码。

方法

模型架构

OctAttention的架构如图:

图中的八叉树有 K = 4 K=4 K=4个级别,各个节点中的数字为占用码(十进制),叶节点标记为红色,其他三层祖先节点标记为绿色。

模型流程:

首先,将点云编码为八叉树,其中八叉树节点由其占用码(Occupancy)、级别(Level)和卦限(Octant)表示。

然后,将当前节点( 1 1 1个)及其祖先节点( K − 1 K-1 K−1个)和兄弟节点( N − 1 N-1 N−1个)及其祖先节点( ( N − 1 ) × ( K − 1 ) (N-1)\times(K-1) (N−1)×(K−1)个)的占用码、级别和卦限分别嵌入到128,6,4维的特征向量中。得到 ( N , K , 128 + 6 + 4 ) (N,K,128+6+4) (N,K,128+6+4)的上下文嵌入表示。

最后,使用由上下文嵌入表示估计的概率分布将串行化的占用码编码通过熵编码器得到压缩的比特流。

Octree Structure

八叉树表示点云效果图:

给定点云 P P P,首先将点坐标减去其相对于 ( 0 , 0 , 0 ) (0,0,0) (0,0,0)的偏移量 offset = ( min ⁡ ( P x ) , min ⁡ ( P y ) , min ⁡ ( P z ) ) \text{offset}=(\min(P_x),\min(P_y),\min(P_z)) offset=(min(Px​),min(Py​),min(Pz​)),然后通过量化步长 qs \text{qs} qs进行量化:


如果 qs \text{qs} qs取等号,则 P Q P_Q PQ​的坐标值属于 { 0 , 1 , . . . , 2 L − 1 } \{0,1,...,2^L-1\} {0,1,...,2L−1}

八叉树沿着 P Q P_Q PQ​边界框的最大边长将立方体空间递归地划分为的8个相同大小的卦限(子立方体),其中每个子立方体的占用状态构成8位二进制占用码。只有非空的立方体将标记为1并进一步划分;其他未占用的立方体将标记为0,不再进一步划分。空间划分将在给定的深度 L L L处停止。

在叶节点处,8位占用码表示边长等于量化步长 qs \text{qs} qs的8个立方体(整个立方被划分为多个边长为量化步长的小立方体)。

构建Octree时,原始点云 P P P中的点并入与其最近的立方体得到 P Q P_Q PQ​。重建点云通过 P Q P_Q PQ​逆量化得到: P ^ = P Q ∗ qs + offset \hat{P}=P_Q*\text{qs}+\text{offset} P^=PQ​∗qs+offset。重建点云 P ^ \hat{P} P^与原始点云原始点云 P P P的重建误差将控制在:


OctAttention的几何压缩误差仅来自量化误差,且可以通过增加八叉树深度 L L L以达到任意所需的精度。

Context Model

根据香农信源编码定理,给定一个由八叉树广度优先搜索得到的序列: x = { x 1 , … , x i , … } x = \{x_1,…, x_i,…\} x={x1​,…,xi​,…},其比特率以其信息熵下界。各个节点的真实概率分布 P ( x ) P(x) P(x)是高维且未知的,但我们可以通过具有先验信息的网络估计概率 Q ( x ) Q(x) Q(x),以指导熵编码器。

OctAttention首先以广度优先顺序遍历八叉树。然后,对于序列中的每个当前编码节点 n i n_i ni​,构建长度为 N N N(图中为8)的上下文窗口 { n i − N + 1 , … , n k , … , n i − 1 , n i } \{n_{i−N+1},…,n_k,…,n_{i−1},n_i \} {ni−N+1​,…,nk​,…,ni−1​,ni​}:

其中当前编码节点位于窗口的末尾,窗口随着节点顺序向前滑动。

具有相似祖先和兄弟节点的节点倾向于服从相似的分布。因此,OctAttention的上下文模型利用了各个节点的兄弟节点及其祖先节点的特征进行概率分布推断。OctAttention集成了 N × K N\times K N×K个相关节点( N N N个同级节点都有对应的 K − 1 K-1 K−1个祖先节点,总共有 N ⋅ ( K − 1 ) N\cdot(K-1) N⋅(K−1)个祖先节点,包括其自身则有 N ⋅ ( K − 1 ) + N = N × K N\cdot(K-1)+N=N\times K N⋅(K−1)+N=N×K个节点),大大扩展了上下文。也就是说,OctAttention将分布 Q ( x ) Q(x) Q(x)分解为每个占用码 x i x_i xi​的条件概率的乘积:


其中 x i ∈ { 1 , 2 , . . . , 255 } x_i\in\{1,2,...,255\} xi​∈{1,2,...,255}为当前编码节点 n i n_i ni​的占用码。 f k = [ h k ( 0 ) , h k ( 1 ) , h k ( 2 ) , … , h k ( K − 1 ) ] \boldsymbol{f}_k=\left[\boldsymbol{h}_{k}^{(0)}, \boldsymbol{h}_{k}^{(1)}, \boldsymbol{h}_{k}^{(2)}, \ldots, \boldsymbol{h}_{k}^{(K-1)}\right] fk​=[hk(0)​,hk(1)​,hk(2)​,…,hk(K−1)​]表示节点 n k n_k nk​的嵌入特征与其 K − 1 K−1 K−1个祖先节点的特征的拼接,节点的特征定义为其占用率、深度和卦限的嵌入。 w \mathbf{w} w表示上下文模型的参数。

Tree-structured Attention

【推荐阅读:注意力足矣(Attention Is All You Need)https://binaryai.blog.csdn.net/article/details/125106066】

基于体素的方法自然地利用了体素表示所保留的低级几何特征。在八叉树中,这些低级特征则隐藏在节点中。OctAttention首先将上下文窗口中的每个节点的节点信息(包括one-hot编码的占用率 S k S_k Sk​,级别索引 L k L_k Lk​,卦限索引 O k O_k Ok​)分别通过变换矩阵 W 1 , W 2 , W 3 W_1,W_2,W_3 W1​,W2​,W3​嵌入到固定长度的特征向量中并拼接为 h k = [ S k W 1 , L k W 2 , O k W 3 ] \boldsymbol{h}_k=[S_kW_1,L_kW_2,O_kW_3] hk​=[Sk​W1​,Lk​W2​,Ok​W3​]。

然后,上下文窗口(红色)中 ( N , K , 128 + 6 + 4 ) (N,K,128+6+4) (N,K,128+6+4)的上下文随后被馈送到多头注意力模块(右)中,并最终通过多层感知器(MLP)用于对占用码分布进行建模:

现有的方法不考虑兄弟节点,而只利用了祖先节点的信息。因此,它们可以轻易地对同级的节点并行编码和解码,从而减少编码时间。如果同时考虑了兄弟节点和祖先节点,在一次传播中对最后一个节点进行编码(如图3(a)所示,利用滑动窗口中前 N − 1 N−1 N−1个兄弟节点对上下文窗口中的最后一个节点进行预测),则很难实现并行化。

为了减少编码时间,OctAttention引入了掩码操作,该操作为每个节点分配了可变长度的感受野,每个节点都被限制为只能访问上下文窗口中的先前节点。如图3(b)所示,通过这种方式可以并行化计算最后 N 0 N_0 N0​个节点的概率分布。与图3(a)中最大感受野的方式相比,平均每个节点的感受野从 N N N缩小到 ( 2 N − N 0 + 1 ) / 2 (2N−N_0 + 1)/2 (2N−N0​+1)/2,编码时间减少了 N 0 N_0 N0​倍。虽然感受野变小,但作者发现在训练过程中由于掩码操作而导致的性能损失可以忽略不计。

Learning

损失函数:

其中 q i ( x i ∣ f ; w ) q_i(x_i| \boldsymbol{f};\mathbf{w}) qi​(xi​∣f;w)为节点 n i n_i ni​占用码 x i x_i xi​的预测概率。

结果

Results for Static LiDAR Compression

Results for Object Point Cloud Compression

消融实验

Context Window Length

Effectiveness of Attention and Sibling Context



Robustness to Varying Point Densities


Runtime

【AAAI 2022】OctAttention: Octree-based Large-scale Contexts Model for Point Cloud Compression相关推荐

  1. Self-Training Multi-Sequence Learning with Transformer for Weakly Supervised VAD 【AAAI 2022】

    Self-Training Multi-Sequence Learning with Transformer for Weakly Supervised Video Anomaly Detection ...

  2. 【AAAI 2021】全部接受论文列表(五)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2021-01-14 马上春节了,疫情又卷土而来,希望大家注意防护,爱护自己的身体 AAAI ...

  3. 【AAAI 2020】全部接受论文列表(三)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-22 最近武汉肺炎形势严峻,请小伙伴们带好口罩,做好防护,大家新年快乐~    ...

  4. 【AAAI 2020】全部接受论文列表(四)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-22 最近武汉肺炎形势严峻,请小伙伴们带好口罩,做好防护,大家新年快乐~    ...

  5. 【AAAI 2021】全部接受论文列表(二)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2021-01-14 马上春节了,疫情又卷土而来,希望大家注意防护,爱护自己的身体 AAAI ...

  6. 【AAAI 2020】全部接受论文列表(二)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-22 最近武汉肺炎形势严峻,请小伙伴们带好口罩,做好防护,大家新年快乐~    ...

  7. 【AAAI 2021】自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning

    [AAAI 2021]自监督目标检测知识蒸馏:Distilling Localization for Self-Supervised Representation Learning 论文地址: 代码地 ...

  8. 【AAAI 2021】跨层知识蒸馏:Cross-Layer Distillation with Semantic Calibration

    [AAAI 2021]跨层知识蒸馏:Cross-Layer Distillation with Semantic Calibration 论文地址: 代码地址: 主要问题: 主要思路: 具体实现: 基 ...

  9. 【AAAI 2021】多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures

    [AAAI 2021]多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures ...

最新文章

  1. 09_分类算法--k近邻算法(KNN)、案例、欧氏距离、k-近邻算法API、KNeighborsClassifier、及其里面的案例(网络资料+学习资料整理笔记)
  2. Nacos OPEN API配置管理测试
  3. 6月共处理钓鱼网站8186个:非CN域名达8029个
  4. MySQL调优(四):MySQL索引优化实现细节
  5. azure linux 多磁盘 lvm,EVE-NG扩展磁盘空间(扩展LVM卷)
  6. seaborn的一些画图
  7. Spark —— RDD、DataFrame 与 Dataset
  8. 城市间紧急救援 (25 分)(Dijkstra)
  9. 解决Excel 闪退问题(如果你最近装了visio的话点进来)
  10. linux如何卸载anaconda
  11. Hibernate 缓存机制浅析
  12. 用计算机绘制函数图像,用计算机绘制函数图像
  13. 链家租房数据基本分析
  14. IceWarp邮件监控功能
  15. centos7安装dcos
  16. 笔记本电脑无法连接自己家的网络
  17. 10-22- “知人者智,自知者明”(小结)
  18. 月入2万的10个小生意项目
  19. CAD文字显示号问题原因和解决办法
  20. 过年各路红包玩法总结,都是上亿的项目!!!

热门文章

  1. 如何在cmd下查询mongodb数据库
  2. CNN卷积神经网络 入门案例
  3. 北京大学董豪:招具身智能、智能机器人、计算机视觉科研实习生
  4. 我国三种专利申请发证后的年费标准
  5. Android英语单词记忆程序源码
  6. java网络请求失败后,一段时间后重新尝试建立连接
  7. 学会这3个小技巧,轻松去图片水印
  8. 国际象棋走棋步数(Distance on Chessboard)计算程序
  9. wincc服务器需要显示器吗,如何配置WINCC作为OPC服务器?
  10. 【信息安全】知识总结