Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models

1、四个问题

  1. 要解决什么问题?

    • 3D点云识别任务。
  2. 用了什么方法解决?
    • 参考KD树的结构,提出了一种新的树形结构的神经网络,用来处理不规则的点云数据。
  3. 效果如何?
    • 在形状分类任务、形状检索任务以及形状部件分割任务中都取得了领先的效果。
  4. 还存在什么问题?
    • 如果点云存在旋转,那么KD树在X/Y/Z轴方向进行切分时会得到不同的结果,影响最终的效果。
    • 每次网络做前向操作时,都需要先将输入的点云转为KD树,预处理时必须要占用一定时间。

2、论文概述

2.1、简介

  • 我们都知道,由于点云是非欧式结构的数据,无法对其直接应用CNN。常用的思路是将其转换为体素网格,但是这样会带来额外的内存消耗和很大的计算量。
  • 作者认为:诸如KD树、八叉树等数据结构常被用于表示不规则的数据。那么,是否能将这些数据结构扩展到深度神经网络中呢?这样的网络结构也就能够处理那些不规则结构的数据。
  • 由此,作者提出了KD网络,主要是模仿卷积神经网络的思想,但是又使用KD树的结构来构建计算图。

2.2、KD-Networks

  • 图1是KD-Netwoks的示意图。图中只考虑二维的情况。
  • 在一个有8个点的点云上建立KD树,在每一层都从X/Y轴选择一个维度进行划分。
  • 从根节点到叶节点对KD树的每个节点进行编号,根节点编号为0,往后递增。
  • KD数最左边的8到15号节点实际就是原始点云,右边的0号节点可以看做输出的类别预测v0v_0v0​。
  • 从左到右,可以看做这个KD-Network的特征前向传播的方向。
  • 图中的圆圈表示的是特征传播并聚合的过程,对应卷积核,其参数是可学习的。相同的颜色表示共享参数,即如果是在相同维度对点集进行划分,认为其卷积参数也应该共享。

2.2.1、输入

  • 由于KD-Network每次都要从3D点云构建KD树,而KD树的节点数是N=2DN=2^{D}N=2D,因此点云的点数也必须是2D2^{D}2D。如果点云的点数不同,还需要对其做上采样或者下采样。
  • 构建KD树时,我们以自顶向下的方式递归地生成每个树节点。每次都选取能最好地分割整个点集的坐标轴作为划分标准,将点集划分为两个一样大的子集,然后递归生成。
  • 一个深度为DDD的平衡KD树包含有N−1=2D−1N-1=2^{D}-1N−1=2D−1个非叶节点。
  • 每个非叶节点Vi∈TV_{i} \in \mathcal{T}Vi​∈T都与三个划分方向did_idi​(X/Y/Z轴,di∈{X,Y,Z}d_i \in \{X, Y, Z\}di​∈{X,Y,Z})以及划分位置ti\mathcal{t}_iti​有关。
  • KD树上的节点还与层数li∈{1,…,D−1}l_{i} \in\{1, \ldots, D-1\}li​∈{1,…,D−1}有关,li=1l_{i}=1li​=1是根节点,li=Dl_{i}=Dli​=D是叶节点,也对应着3D点云上的点。
  • 假设KD树是平衡树,那么第iii号节点的子节点的编号分别是c1(i)=2ic_{1}(i)=2 ic1​(i)=2i和c2(i)=2i+1c_{2}(i)=2 i + 1c2​(i)=2i+1。

2.2.2、KD-Networks的数据处理

  • 给定一个输入的KD树T\mathcal{T}T,KD-Network会计算KD树的每个节点上的特征向量vi\mathbf{v}_ivi​。
  • 叶节点即输入是一个kkk维向量,由输入点云的维度确定。
  • 第l(i)l(i)l(i)层上的非叶节点iii,其子节点c1(i)c_1(i)c1​(i)和c2(i)c_2(i)c2​(i)在第l(i)+1l(i) + 1l(i)+1层,其特征向量vc1(i)\mathbf{v}_{c_{1}(i)}vc1​(i)​和vc1(i)\mathbf{v}_{c_{1}(i)}vc1​(i)​已经计算好了。那么当前节点iii的特征向量vi\mathbf{v}_ivi​的计算公式如下:
    • vi={ϕ(Wxli[vc1(i);vc2(i)]+bxli),ifdi=xϕ(Wyli[vc1(i);vc2(i)]+byli),ifdi=yϕ(Wzli[vc1(i);vc2(i)]+bzli),ifdi=z\mathbf{v}_{i}=\left\{\begin{array}{l}{\phi\left(W_{\mathrm{x}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{x}}^{l_{i}}\right)}, if \ d_i = x \\ {\phi\left(W_{\mathrm{y}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{\mathrm{y}}^{l_{i}}\right)}, if \ d_i = y \\ {\phi\left(W_{\mathrm{z}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{z}^{l_{i}}\right)}, if \ d_i = z \end{array}\right.vi​=⎩⎨⎧​ϕ(Wxli​​[vc1​(i)​;vc2​(i)​]+bxli​​),if di​=xϕ(Wyli​​[vc1​(i)​;vc2​(i)​]+byli​​),if di​=yϕ(Wzli​​[vc1​(i)​;vc2​(i)​]+bzli​​),if di​=z​
    • 或简写为:vi=ϕ(Wdili[vc1(i);vc2(i)]+bdili)\mathbf{v}_{i}=\phi\left(W_{d_{i}}^{l_{i}}\left[\mathbf{v}_{c_{1}(i)} ; \mathbf{v}_{c_{2}(i)}\right]+\mathbf{b}_{d_{i}}^{l_{i}}\right)vi​=ϕ(Wdi​li​​[vc1​(i)​;vc2​(i)​]+bdi​li​​)
    • ϕ(⋅)\phi(\cdot)ϕ(⋅)是非线性单元(ReLU)。
    • 第lil_ili​层的可学习的参数是{Wxli,Wyli,Wzli,bxli,byli,bzli}\left\{W_{\mathrm{x}}^{l_{i}}, W_{\mathrm{y}}^{l_{i}}, W_{\mathrm{z}}^{l_{i}}, \mathbf{b}_{\mathrm{x}}^{l_{i}}, \mathbf{b}_{\mathrm{y}}^{l_{i}}, \mathbf{b}_{\mathrm{z}}^{l_{i}}\right\}{Wxli​​,Wyli​​,Wzli​​,bxli​​,byli​​,bzli​​}。
    • 根据KD树的划分方向did_idi​,选取上面三组参数中的一组进行计算。
  • 每层的矩阵WWW和bbb的维度为m1,m2,…,mDm^{1}, m^{2}, \ldots, m^{D}m1,m2,…,mD。
  • 第lll层的WxlW_{\mathrm{x}}^{l}Wxl​、WylW_{\mathrm{y}}^{l}Wyl​、WzlW_{\mathrm{z}}^{l}Wzl​维度是ml×2ml+1m^{l} \times 2 m^{l+1}ml×2ml+1(因为每个非叶节点有两个子节点),而bxl\mathbf{b}_{\mathrm{x}}^{l}bxl​、byl\mathbf{b}_{\mathrm{y}}^{l}byl​、bzl\mathbf{b}_{\mathrm{z}}^{l}bzl​的维度是mlm^lml。

2.2.3、分类网络结构

  • 对于分类网络来说,只要让根节点输出的特征向量的维度数为类别数,即可得到分类结果。

    • v0(T)=W0v1(T)+b0\mathbf{v}_{0}(\mathcal{T})=W^{0} \mathbf{v}_{1}(\mathcal{T})+\mathbf{b}^{0}v0​(T)=W0v1​(T)+b0
    • W0W^0W0和b0\mathbf{b}^{0}b0是最后的分类层的参数。

2.2.4、形状检索网络结构

  • 与分类网络类似,但是最后的根节点输出的不是分类预测结果而是一个描述子(特征向量)。训练时加上度量学习的损失函数:histogram loss,siamese loss,triplet loss等,来约束输出的特征向量,使得同类形状的特征向量之间距离更小,不同类的特征向量之间距离更大。

2.2.5、分割网络结构

  • 在部件分割任务上,KD-Network参考了卷积神经网络对结构进行了更改,也使用了编码器-解码器(encoder-decoder)的结构,并加入了跳跃连接(skip connections)。

  • 上图是分割网络的示意图。
  • 这里的分割网络可以看成是将两个KD树拼接在了一起,左半边与分类网络和检索网络结构一样,是encoder;右半边是decoder,也就是倒过来的KD树,将根节点的特征传播到所有的叶节点上。
  • 设右半部分的KD树的根节点为v1\mathbf{v}_{1}v1​,而节点iii上的特征向量为vi\mathbf{v}_{i}vi​。
  • 特征传播时的更新公式如下:
    • v~c1(i)=ϕ([W~dc1(i)liv~i+b~dc1(i)li;Slivc1(i)+tli])v~c2(i)=ϕ([W~dc2(i)liv~i+b~dc2(i)li;Slivc2(i)+tli])\begin{aligned} \tilde{\mathbf{v}}_{c_{1}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{1}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{1}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{1}(i)}+\mathbf{t}^{l_{i}}\right]\right) \\ \tilde{\mathbf{v}}_{c_{2}(i)} &=\phi\left(\left[\tilde{W}_{d_{c_{2}(i)}}^{l_{i}} \tilde{\mathbf{v}}_{i}+\tilde{\mathbf{b}}_{d_{c_{2}(i)}}^{l_{i}} ; S^{l_{i}} \mathbf{v}_{c_{2}(i)}+\mathbf{t}^{l_{i}}\right]\right) \end{aligned}v~c1​(i)​v~c2​(i)​​=ϕ([W~dc1​(i)​li​​v~i​+b~dc1​(i)​li​​;Sli​vc1​(i)​+tli​])=ϕ([W~dc2​(i)​li​​v~i​+b~dc2​(i)​li​​;Sli​vc2​(i)​+tli​])​
    • W~dc∗(i)li\tilde{W}_{d_{c *(i)}^{l_{i}}}W~dc∗(i)li​​​和b~dc,(i)li\tilde{\mathbf{b}}_{d_{c,(i)}}^{l_{i}}b~dc,(i)​li​​分别是网络中的权重和偏置参数。
    • SliS^{l_{i}}Sli​和tlit^{l_{i}}tli​分别是跳跃连接上的权重和偏置参数。
  • 整个网络的结构类似U-Net,在encoder-decoder结构的基础之上加入了shortcut,避免一些信息的损失。

2.2.6、实现细节

  • 预处理,所有点云都事先归一化到[−1;1]3[-1 ; 1]^{3}[−1;1]3。

2.3、实验

3、参考资料

  1. Escape from Cells: Deep Kd-Networks for the Recognition of 3D Point Cloud Models

论文笔记:KD-Net相关推荐

  1. 论文笔记目录(ver2.0)

    1 时间序列 1.1 时间序列预测 论文名称 来源 主要内容 论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Dr ...

  2. 论文笔记(十四):PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking

    PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking 文章概括 摘要 1. 介绍 2. 相关工作 3. ...

  3. 【论文笔记】3D LiDAR-Based Global Localization Using Siamese Neural Network

    [论文笔记]3D LiDAR-Based Global Localization Using Siamese Neural Network ~~~   ~~~~     在本文基于从神经网络中学习到的 ...

  4. [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit

    [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit IEEE TITS 2019 YangJian 简 ...

  5. [论文笔记]AAAI-2021-Continual Learning for Named Entity Recognition

    [论文笔记] 2021-AAAI-Continual Learning for Named Entity Recognition 0 写在前面 什么是持续学习? 我们人类有能够将一个任务的知识用到另一 ...

  6. ORB-SLAM3 论文笔记

    ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...

  7. 【论文笔记】 LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION

    一.简介 这篇论文由IBM Watson发表在2016 ICLR,目前引用量92.这篇论文的研究主题是answer selection,作者在这篇论文基础上[Applying Deep Learnin ...

  8. 最新图神经网络论文笔记汇总(附pdf下载)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]近年来,图神经网络变得非常火热,每年顶会在该领域内都会出现大量的研究论文,本文为大家提 ...

  9. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  10. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

最新文章

  1. 把三千行代码重构为15行
  2. 程序员的疯狂:打工与创业的残酷区别
  3. 用Delphi设计能携带附件的EMail
  4. Gradle学习网站
  5. Vue全家桶实战01_【从入门到放弃系列】
  6. 阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年
  7. excel文件修复工具_win10上使用SFC工具修复损坏的系统文件,安全高效,维修电脑必会...
  8. bm算法java,图解 BM 算法
  9. 大平房到朝阳环路时间表_冰蓄冷系统设计计算10大要点
  10. svnadmin hotcopy
  11. 基于单片机的水温液位自动控制系统设计
  12. matlab 脉冲频域压缩,大作业-雷达线性调频脉冲压缩的原理及其MATLAB仿真.doc
  13. 6.2 Characteristic Values
  14. vue3运行npm run serve报错ERROR Error: Cannot find module ‘babel-plugin-import‘ Require stack:
  15. 疫情居家想做点副业?推荐五个居家兼职,总有一个适合你
  16. 云计算、社交网络和移动互联网------转自月光博客
  17. 拼多多2021校招2020.9.1笔试题 T2 and T4
  18. 信号强度从百分比到分贝的转换
  19. SQP质量验厂有哪些要求?
  20. qt vs tools

热门文章

  1. 浏览器直接连接mysql_在IE中直接连接SQL数据库_MySQL
  2. 简单的复数运算(类和对象)_JAVA
  3. 【C++】41. std::copy和assign的用法
  4. 做俯卧撑的10个技巧
  5. 简单提升编译速度的一个方法
  6. 程序员面试题精选100题(02)-设计包含min函数的栈[数据结构]
  7. 不知道被谁删了微信好友?用 Python 来帮忙呀
  8. (EM算法)The EM Algorithm
  9. Git与GitHub的使用
  10. 防火墙如可禁止tracert但允许ping